From 0d944e6e8ea5963b94109401432814321add9068 Mon Sep 17 00:00:00 2001 From: Henri Muurimaa Date: Wed, 30 Aug 2017 15:35:53 +0300 Subject: [PATCH] Migrate first Wiki article (#9902) Created the folder "articles" under documentation, added img folder for article images and added one article. --- ...ortletsForTheWebsherePortalServer.asciidoc | 95 ++++++++++++++++++ documentation/articles/contents.asciidoc | 13 +++ .../img/Click_Me_2015-03-31_21-03-27.png | Bin 0 -> 12182 bytes 3 files changed, 108 insertions(+) create mode 100644 documentation/articles/DevelopingPortletsForTheWebsherePortalServer.asciidoc create mode 100644 documentation/articles/contents.asciidoc create mode 100644 documentation/articles/img/Click_Me_2015-03-31_21-03-27.png diff --git a/documentation/articles/DevelopingPortletsForTheWebsherePortalServer.asciidoc b/documentation/articles/DevelopingPortletsForTheWebsherePortalServer.asciidoc new file mode 100644 index 0000000000..1edcd0bb71 --- /dev/null +++ b/documentation/articles/DevelopingPortletsForTheWebsherePortalServer.asciidoc @@ -0,0 +1,95 @@ +[[developing-portlets-for-the-websphere-portal-server]] +Developing portlets for the Websphere Portal Server +--------------------------------------------------- + +When creating portlets for the Websphere Portal Server (aka WPS) you +have the choice between different frameworks + +* JSF (2.0) +* Spring Portlet MVC +* Vaadin 6 / 7 + +While using JSF seems to be a bit outdated, because WPS just supports an +old JSF Version (MyFaces 2.0.2) Spring Portlet MVC is a good and valid +options for developing portlets. + +On this page I will try to collect all information to +develop Vaadin portlets in a fast and easy to use way. I will also +handle topics like using CDI and the navigator in a portal environment +as well as some architectural ideas like using the MVP pattern for a +portlet project. As an example portlet I will use a simple master / +detail portlet just like the Vaadin address book application. I have +developed all code examples on this wiki pages with the current Vaadin +version (7.4.2 as I am writing this) and tested the portlets on WPS 8.0 +and 8.5. + +I use Maven for dependency management and SLF4J for logging. You can +download the small zipped project in the attachments section. Please, +feel free to leave comments and / or questions on the bottom of the +page. + +[[a-simple-portlet]] +A simple Portlet +~~~~~~~~~~~~~~~~ + +Lets start with a "Click Me" (aka "Hello World") Vaading portlet. + +The UI class is identical to servlet development (create a button with a +click listener and show a notification when clicking the button). The +interesting part is the configuration of the portlet.xml file. + +[[portlet.xml]] +Portlet.xml +^^^^^^^^^^^ + +[source] +.... + +      +          + Vaadin Click Me Portlet          + Vaadin Click Me Portlet          + Vaadin Click Me Portlet         + com.vaadin.server.VaadinPortlet + +            + UI            + com.gisag.vaadin.ClickMeUI          +          + +              + productionMode              + false          +      +      +            + Path of all static vaadin resources (configurable from context root)              + vaadin.resources.path              + PORTLET_CONTEXT        + + +          +              + text/html              + view          +      + + +.... + +In the `portlet` tag you have to set a value for the `portlet-class`. For +this simple we can use the default Vaadin portlet class +`com.vaadin.server.VaadinPortlet`; you also have to name you UI class as a +portlet init parameter. + +To let WPS find the Vaadin javascript and theme resources you have to +use the portlet init parameter `vaadin.resources.path`. The value +`PORTLET_CONTEXT` is a Vaadin constant value that makes the vaadin +resources available in the portlets resource path. + +Run the Maven build with `clean package` as goals and deploy the created +war file in the portal administration. Create a blank portal page and +add your portlet to the page. Your "Click me" portlet should look like +this: + +image:img/Click_Me_2015-03-31_21-03-27.png[Your first portlet] diff --git a/documentation/articles/contents.asciidoc b/documentation/articles/contents.asciidoc new file mode 100644 index 0000000000..a1c126f432 --- /dev/null +++ b/documentation/articles/contents.asciidoc @@ -0,0 +1,13 @@ += Community articles for Vaadin Framework + +Helpful articles about Vaadin Framework written by the users for the users. The +articles are presented as written by the author. Vaadin does not edit or maintain them. +Pull requests welcome! + +NOTE: All contributions are very welcome! Just write your article in link:asciidoctor.org/docs/asciidoc-writers-guide[AsciiDoc], +put it in this directory and send us a pull request. Updates to existing articles +are great, too. + +[discrete] +== Articles +- link:DevelopingPortletsForTheWebspherePortalServer.asciidoc[Developing Portlets for the Websphere Portal Server] diff --git a/documentation/articles/img/Click_Me_2015-03-31_21-03-27.png b/documentation/articles/img/Click_Me_2015-03-31_21-03-27.png new file mode 100644 index 0000000000000000000000000000000000000000..72f88a7d6437674701aba91a7459dccf5c007079 GIT binary patch literal 12182 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