summaryrefslogtreecommitdiffstats
path: root/documentation/portal/portal-osgi.asciidoc
diff options
context:
space:
mode:
authorHenri Sara <henri.sara@gmail.com>2017-05-02 12:43:10 +0300
committerIlia Motornyi <elmot@vaadin.com>2017-05-02 12:43:10 +0300
commit1f070e124d628ea439a3369e99bbc07bdd917e8d (patch)
tree6bbb7557f64b3154a98437995594846b28486050 /documentation/portal/portal-osgi.asciidoc
parentd0a64a804920bff30d586e7700af895247a1fad2 (diff)
downloadvaadin-framework-1f070e124d628ea439a3369e99bbc07bdd917e8d.tar.gz
vaadin-framework-1f070e124d628ea439a3369e99bbc07bdd917e8d.zip
Update portlet documentation for OSGi portlets
Diffstat (limited to 'documentation/portal/portal-osgi.asciidoc')
-rw-r--r--documentation/portal/portal-osgi.asciidoc63
1 files changed, 63 insertions, 0 deletions
diff --git a/documentation/portal/portal-osgi.asciidoc b/documentation/portal/portal-osgi.asciidoc
new file mode 100644
index 0000000000..2c02edbbe1
--- /dev/null
+++ b/documentation/portal/portal-osgi.asciidoc
@@ -0,0 +1,63 @@
+---
+title: Portlet UI
+order: 3
+layout: page
+---
+
+[[portal.osgi]]
+= OSGi Portlets on Liferay 7
+
+IMPORTANT: The OSGi support as described above is currently being developed and only available in the Framework 8.1 prerelease versions, starting from 8.1.0.beta1.
+
+Lifeary 7 supports modular portlet development using OSGi, and enables e.g.
+using multiple different Vaadin versions in different portlets on a page.
+
+For general OSGi considerations with Vaadin Framework such as packaging and
+bundle manifests, and how to publish static resources such as themes and
+widget sets, see
+<<dummy/../../../framework/advanced/advanced-osgi#advanced.osgi,"Vaadin OSGi Support">>.
+
+
+[[portal.osgi.portlet]]
+== Publishing a Portlet With OSGi
+
+Publishing an OSGi portlet on Liferay 7+ can be done in two ways: using
+annotations or using properties.
+
+Annotating a UI class with [interfacename]#@VaadinLiferayPortletConfiguration#
+(available in `vaadin-liferay-integration`) and making it an OSGi service of type
+[classname]#UI# is the easiest way to automatically publish the UI as a portlet
+and configure it to use the correct static resources.
+
+[source, java]
+----
+@Theme(MyTheme.THEME_NAME)
+@VaadinLiferayPortletConfiguration(name = "Vaadin.Tutorial.1", displayName = "Vaadin Tutorial App")
+@Component(service = UI.class)
+public class MyUI extends UI {
+ ...
+}
+----
+
+When using this approach, it is not necessary to create all the portlet
+property files that plain JSR-362 portlets require.
+
+Alternatively, the property [literal]#com.vaadin.osgi.liferay.portlet-ui=true#
+can be used when publishing a UI as an OSGi service to publish the UI as a portlet.
+
+[source, java]
+----
+@Theme(MyTheme.THEME_NAME)
+@Component(service = UI.class, property = {
+ "com.liferay.portlet.display-category=category.vaadin",
+ "javax.portlet.name=my.vaadin.app.app.1.0.0",
+ "javax.portlet.display-name=Tutorial Portlet",
+ "javax.portlet.security-role-ref=power-user,user",
+ "com.vaadin.osgi.liferay.portlet-ui=true"})
+public class MyUI extends UI {
+ ...
+}
+----
+
+An OSGi portlet should be packaged as a JAR with a proper OSGi bundle
+manifest, and deployed to a portal that has its required bundles installed.