Browse Source

#5204 Include demo portlets in demo package; portlet configuration files are no longer generated at build, cleaned up manually maintained versions

svn changeset:13806/svn branch:6.4
tags/6.7.0.beta1
Henri Sara 14 years ago
parent
commit
7d113f4680

+ 12
- 22
WebContent/WEB-INF/liferay-display.xml View File

@@ -2,26 +2,16 @@
<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 4.0.0//EN" "http://www.liferay.com/dtd/liferay-display_4_0_0.dtd">

<display>
<category name="Vaadin">
<portlet id="PortletDemoPortlet" />
<portlet id="SelectDemoPortlet" />
<portlet id="TableDemoPortlet" />
<portlet id="FilterSelectPortlet" />
<portlet id="FeatureBrowserPortlet" />
<portlet id="ModalWindowPortlet" />
<portlet id="CalcPortlet" />
<portlet id="NotificationDemoPortlet" />
<portlet id="ChatServletPortlet" />
<portlet id="BrowserDemoPortlet" />
<portlet id="HelloWorldPortlet" />
<portlet id="AddressBookPortlet" />
<portlet id="CalcPortlet"/>
<portlet id="SamplerPortlet"/>
<!--
<portlet id="InterPortletEventPortlet" />
<portlet id="VaadinInterPortletEventPortlet" />
-->
<portlet id="Portlet Mode Example"/>
<portlet id="Portlet HTML Mode Example"/>
</category>
<category name="Vaadin">
<portlet id="PortletDemoPortlet" />
<portlet id="CalcPortlet" />
<portlet id="SamplerPortlet" />
<portlet id="Portlet Mode Example" />
<portlet id="Portlet HTML Mode Example" />
<portlet id="AddressBookPortlet" />

<!-- These should be used together -->
<portlet id="InterPortletEventPortlet" />
<portlet id="VaadinInterPortletEventPortlet" />
</category>
</display>

+ 48
- 98
WebContent/WEB-INF/liferay-portlet.xml View File

@@ -2,102 +2,52 @@
<!DOCTYPE liferay-portlet-app PUBLIC "-//Liferay//DTD Portlet Application 4.3.0//EN" "http://www.liferay.com/dtd/liferay-portlet-app_4_3_0.dtd">

<liferay-portlet-app>
<portlet>
<portlet-name>PortletDemoPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>SelectDemoPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>TableDemoPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>FilterSelectPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>FeatureBrowserPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>ModalWindowPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>CalcPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>NotificationDemoPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>ChatServletPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>BrowserDemoPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>HelloWorldPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>AddressBookPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>CalcPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>SamplerPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>Portlet Mode Example</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>Portlet HTML Mode Example</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<role-mapper>
<role-name>administrator</role-name>
<role-link>Administrator</role-link>
</role-mapper>
<role-mapper>
<role-name>guest</role-name>
<role-link>Guest</role-link>
</role-mapper>
<role-mapper>
<role-name>power-user</role-name>
<role-link>Power User</role-link>
</role-mapper>
<role-mapper>
<role-name>user</role-name>
<role-link>User</role-link>
</role-mapper>
<portlet>
<portlet-name>PortletDemoPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>CalcPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>SamplerPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>Portlet Mode Example</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>Portlet HTML Mode Example</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<portlet>
<portlet-name>AddressBookPortlet</portlet-name>
<instanceable>true</instanceable>
<ajaxable>false</ajaxable>
</portlet>
<role-mapper>
<role-name>administrator</role-name>
<role-link>Administrator</role-link>
</role-mapper>
<role-mapper>
<role-name>guest</role-name>
<role-link>Guest</role-link>
</role-mapper>
<role-mapper>
<role-name>power-user</role-name>
<role-link>Power User</role-link>
</role-mapper>
<role-mapper>
<role-name>user</role-name>
<role-link>User</role-link>
</role-mapper>
</liferay-portlet-app>

+ 128
- 163
WebContent/WEB-INF/portlet.xml View File

@@ -11,10 +11,9 @@
<name>application</name>
<value>PortletDemo</value>
</init-param>

<init-param>
<name>widgetset</name>
<value>com.vaadin.demo.sampler.gwt.SamplerWidgetSet</value>
<value>com.vaadin.portal.gwt.PortalDefaultWidgetSet</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
@@ -40,31 +39,26 @@
<role-name>user</role-name>
</security-role-ref>
</portlet>

<portlet>
<portlet-name>FeatureBrowserPortlet</portlet-name>
<display-name>Vaadin FeatureBrowser</display-name>
<portlet-name>CalcPortlet</portlet-name>
<display-name>Calc</display-name>
<portlet-class>com.vaadin.terminal.gwt.server.ApplicationPortlet2</portlet-class>
<init-param>
<name>application</name>
<value>com.vaadin.tests.featurebrowser.FeaturesApplication</value>
</init-param>
<init-param>
<name>style</name>
<value>height:650px</value>
<value>com.vaadin.demo.Calc</value>
</init-param>
<init-param>
<name>widgetset</name>
<value>com.vaadin.demo.sampler.gwt.SamplerWidgetSet</value>
<value>com.vaadin.portal.gwt.PortalDefaultWidgetSet</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
<portlet-mode>help</portlet-mode>
</supports>
<portlet-info>
<title>FeatureBrowser</title>
<short-title>FeatureBrowser</short-title>
<title>Calc</title>
<short-title>Calc</short-title>
</portlet-info>

<security-role-ref>
@@ -82,76 +76,56 @@
</portlet>

<portlet>
<portlet-name>HelloWorldPortlet</portlet-name>
<display-name>Hello World</display-name>
<portlet-name>SamplerPortlet</portlet-name>
<display-name>Sampler</display-name>
<portlet-class>com.vaadin.terminal.gwt.server.ApplicationPortlet2</portlet-class>
<init-param>
<name>application</name>
<value>com.vaadin.demo.HelloWorld</value>
<value>com.vaadin.demo.sampler.SamplerApplication</value>
</init-param>
<init-param>
<name>widgetset</name>
<value>com.vaadin.portal.gwt.PortalDefaultWidgetSet</value>
</init-param>
<init-param>
<name>style</name>
<value>height:650px</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
<portlet-info>
<title>HelloWorld</title>
<short-title>HelloWorld</short-title>
<title>Sampler</title>
<short-title>Sampler</short-title>
</portlet-info>

<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
</portlet>

<!--
<portlet> <portlet-name>VaadinInterPortletEventPortlet</portlet-name>
<display-name>Hello World Event</display-name>
<portlet-class>com.vaadin.terminal.gwt.server.ApplicationPortlet2</portlet-class>
<init-param> <name>application</name>
<value>com.vaadin.demo.portlet.VaadinInterPortletEventPortlet</value>
</init-param> <init-param> <name>widgetset</name>
<value>com.vaadin.demo.sampler.gwt.SamplerWidgetSet</value>
</init-param> <supports> <mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode> </supports> <portlet-info>
<title>Inter-portlet events</title> <short-title>Inter-portlet
events</short-title> </portlet-info> <supported-processing-event>
<qname xmlns:vaadin="http://www.vaadin.com/hello">vaadin:Hello</qname>
</supported-processing-event> <supported-processing-event> <qname
xmlns:vaadin="http://www.vaadin.com/hello">vaadin:ReplyToVaadin</qname>
</supported-processing-event> <supported-publishing-event> <qname
xmlns:vaadin="http://www.vaadin.com/hello">vaadin:Reply</qname>
</supported-publishing-event> <supported-publishing-event> <qname
xmlns:vaadin="http://www.vaadin.com/hello">vaadin:FromVaadin</qname>
</supported-publishing-event>
<supported-public-render-parameter>HelloState</supported-public-render-parameter>
</portlet> <portlet>
<portlet-name>InterPortletEventPortlet</portlet-name>
<display-name>Hello World Event (non-Vaadin)</display-name>
<portlet-class>com.vaadin.demo.portlet.InterPortletEventPortlet</portlet-class>
<supports> <mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode> </supports> <portlet-info>
<title>Inter-portlet events (non-Vaadin)</title>
<short-title>Inter-portlet events (non-Vaadin)</short-title>
</portlet-info> <supported-processing-event> <qname
xmlns:vaadin="http://www.vaadin.com/hello">vaadin:Reply</qname>
</supported-processing-event> <supported-processing-event> <qname
xmlns:vaadin="http://www.vaadin.com/hello">vaadin:FromVaadin</qname>
</supported-processing-event> <supported-publishing-event> <qname
xmlns:vaadin="http://www.vaadin.com/hello">vaadin:Hello</qname>
</supported-publishing-event> <supported-publishing-event> <qname
xmlns:vaadin="http://www.vaadin.com/hello">vaadin:ReplyToVaadin</qname>
</supported-publishing-event>
<supported-public-render-parameter>HelloState</supported-public-render-parameter>
</portlet>
-->
<portlet>
<portlet-name>Portlet Mode Example</portlet-name>
<display-name>Portlet Mode Example</display-name>
<portlet-class>com.vaadin.demo.portlet.PortletModePortlet</portlet-class>
<init-param>
<name>widgetset</name>
<value>com.vaadin.portal.gwt.PortalDefaultWidgetSet</value>
</init-param>
<init-param>
<name>application</name>
<value>com.vaadin.demo.portlet.PortletModeExample</value>
</init-param>
<init-param>
<name>widgetset</name>
<value>com.vaadin.portal.gwt.PortalDefaultWidgetSet</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
@@ -164,12 +138,29 @@
<title>PortletModeExample</title>
<short-title>PortletModeExample</short-title>
</portlet-info>

<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
</portlet>

<portlet>
<portlet-name>Portlet HTML Mode Example</portlet-name>
<display-name>Portlet HTML Mode Example</display-name>
<portlet-class>com.vaadin.demo.portlet.HtmlModePortlet</portlet-class>
<init-param>
<name>widgetset</name>
<value>com.vaadin.portal.gwt.PortalDefaultWidgetSet</value>
</init-param>

<supports>
<mime-type>text/html</mime-type>
@@ -181,6 +172,19 @@
<title>Portlet HTML Mode Example</title>
<short-title>Portlet HTML Mode Example</short-title>
</portlet-info>

<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
</portlet>

<portlet>
@@ -191,81 +195,17 @@
<name>application</name>
<value>com.vaadin.demo.tutorial.addressbook.AddressBookApplication</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
<portlet-info>
<title>Address Book</title>
<short-title>Address Book</short-title>
</portlet-info>
</portlet>

<portlet>
<portlet-name>SamplerPortlet</portlet-name>
<display-name>Sampler</display-name>
<portlet-class>com.vaadin.terminal.gwt.server.ApplicationPortlet2</portlet-class>
<init-param>
<name>application</name>
<value>com.vaadin.demo.sampler.SamplerApplication</value>
</init-param>
<init-param>
<name>widgetset</name>
<value>com.vaadin.demo.sampler.gwt.SamplerWidgetSet</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
<portlet-info>
<title>Sampler</title>
<short-title>Sampler</short-title>
</portlet-info>
</portlet>

<portlet>
<portlet-name>CalcPortlet</portlet-name>
<display-name>Calc</display-name>
<portlet-class>com.vaadin.terminal.gwt.server.ApplicationPortlet2</portlet-class>
<init-param>
<name>application</name>
<value>com.vaadin.demo.Calc</value>
</init-param>
<init-param>
<name>widgetset</name>
<value>com.vaadin.demo.sampler.gwt.SamplerWidgetSet</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
<portlet-info>
<title>Calc</title>
<short-title>Calc</short-title>
</portlet-info>
</portlet>
<portlet>
<portlet-name>ChatServletPortlet</portlet-name>
<display-name>Vaadin ChatServlet</display-name>
<portlet-class>com.vaadin.terminal.gwt.server.ApplicationPortlet</portlet-class>
<init-param>
<name>application</name>
<value>chat</value>
</init-param>

<init-param>
<name>widgetset</name>
<value>com.vaadin.demo.sampler.gwt.SamplerWidgetSet</value>
<value>com.vaadin.portal.gwt.PortalDefaultWidgetSet</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
<portlet-mode>help</portlet-mode>
</supports>
<portlet-info>
<title>ChatServlet</title>
<short-title>ChatServlet</short-title>
<title>Address Book</title>
<short-title>Address Book</short-title>
</portlet-info>

<security-role-ref>
@@ -281,47 +221,70 @@
<role-name>user</role-name>
</security-role-ref>
</portlet>

<!-- A Vaadin portlet and a non-Vaadin portlet that can communicate with each other -->
<portlet>
<portlet-name>BrowserDemoPortlet</portlet-name>
<display-name>Vaadin BrowserDemo</display-name>
<portlet-class>com.vaadin.terminal.gwt.server.ApplicationPortlet</portlet-class>
<portlet-name>VaadinInterPortletEventPortlet</portlet-name>
<display-name>Hello World Event</display-name>
<portlet-class>com.vaadin.terminal.gwt.server.ApplicationPortlet2</portlet-class>
<init-param>
<name>application</name>
<value>BrowserDemo</value>
</init-param>
<init-param>
<name>style</name>
<value>height:650px</value>
<value>com.vaadin.demo.portlet.VaadinInterPortletEventPortlet</value>
</init-param>
<init-param>
<name>widgetset</name>
<value>com.vaadin.demo.sampler.gwt.SamplerWidgetSet</value>
<value>com.vaadin.portal.gwt.PortalDefaultWidgetSet</value>
</init-param>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
<portlet-mode>edit</portlet-mode>
<portlet-mode>help</portlet-mode>
</supports>
<portlet-info>
<title>BrowserDemo</title>
<short-title>BrowserDemo</short-title>
<title>Inter-portlet events</title>
<short-title>Inter-portlet
events</short-title>
</portlet-info>
<security-role-ref>
<role-name>administrator</role-name>
</security-role-ref>
<security-role-ref>
<role-name>guest</role-name>
</security-role-ref>
<security-role-ref>
<role-name>power-user</role-name>
</security-role-ref>
<security-role-ref>
<role-name>user</role-name>
</security-role-ref>
<supported-processing-event>
<qname xmlns:vaadin="http://vaadin.com/hello">vaadin:Hello</qname>
</supported-processing-event>
<supported-processing-event>
<qname xmlns:vaadin="http://vaadin.com/hello">vaadin:ReplyToVaadin</qname>
</supported-processing-event>
<supported-publishing-event>
<qname xmlns:vaadin="http://vaadin.com/hello">vaadin:Reply</qname>
</supported-publishing-event>
<supported-publishing-event>
<qname xmlns:vaadin="http://vaadin.com/hello">vaadin:FromVaadin</qname>
</supported-publishing-event>
<supported-public-render-parameter>HelloState</supported-public-render-parameter>
</portlet>

<portlet>
<portlet-name>InterPortletEventPortlet</portlet-name>
<display-name>Hello World Event (non-Vaadin)</display-name>
<portlet-class>com.vaadin.demo.portlet.InterPortletEventPortlet</portlet-class>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>view</portlet-mode>
</supports>
<portlet-info>
<title>Inter-portlet events (non-Vaadin)</title>
<short-title>Inter-portlet events (non-Vaadin)</short-title>
</portlet-info>
<supported-processing-event>
<qname xmlns:vaadin="http://vaadin.com/hello">vaadin:Reply</qname>
</supported-processing-event>
<supported-processing-event>
<qname xmlns:vaadin="http://vaadin.com/hello">vaadin:FromVaadin</qname>
</supported-processing-event>
<supported-publishing-event>
<qname xmlns:vaadin="http://vaadin.com/hello">vaadin:Hello</qname>
</supported-publishing-event>
<supported-publishing-event>
<qname xmlns:vaadin="http://vaadin.com/hello">vaadin:ReplyToVaadin</qname>
</supported-publishing-event>
<supported-public-render-parameter>HelloState</supported-public-render-parameter>
</portlet>
<!-- Used by the Portlet mode demo -->
<custom-portlet-mode>
<description>Custom mode</description>
@@ -334,24 +297,26 @@
be serializable and have JAXB binding.
-->
<event-definition>
<qname xmlns:vaadin="http://www.vaadin.com/hello">vaadin:Hello</qname>
<qname xmlns:vaadin="http://vaadin.com/hello">vaadin:Hello</qname>
<value-type>java.lang.String</value-type>
</event-definition>

<event-definition>
<qname xmlns:vaadin="http://www.vaadin.com/hello">vaadin:Reply</qname>
<qname xmlns:vaadin="http://vaadin.com/hello">vaadin:Reply</qname>
<value-type>java.lang.String</value-type>
</event-definition>

<public-render-parameter>
<identifier>HelloState</identifier>
<qname xmlns:vaadin="http://www.vaadin.com/params">vaadin:HelloState</qname>
<qname xmlns:vaadin="http://vaadin.com/params">vaadin:HelloState</qname>
</public-render-parameter>

<!--
This can be used to work around an issue in liferay 5.0-5.1.1

<container-runtime-option> <name>javax.portlet.escapeXml</name>
<value>false</value> </container-runtime-option>
<container-runtime-option>
<name>javax.portlet.escapeXml</name>
<value>false</value>
</container-runtime-option>
-->
</portlet-app>

+ 0
- 5
WebContent/WEB-INF/web.xml View File

@@ -370,13 +370,11 @@
<servlet-mapping>
<servlet-name>FeatureBrowser</servlet-name>
<url-pattern>/FeatureBrowser/*</url-pattern>
<!-- portlet style=height:650px -->
</servlet-mapping>
<servlet-mapping>
<servlet-name>Sampler</servlet-name>
<url-pattern>/sampler/*</url-pattern>
<!-- portlet style=height:650px -->
</servlet-mapping>
<servlet-mapping>
@@ -407,7 +405,6 @@
<servlet-mapping>
<servlet-name>ModalWindow</servlet-name>
<url-pattern>/ModalWindow/*</url-pattern>
<!-- portlet -->
</servlet-mapping>
<servlet-mapping>
@@ -418,7 +415,6 @@
<servlet-mapping>
<servlet-name>Calc</servlet-name>
<url-pattern>/Calc/*</url-pattern>
<!-- portlet -->
</servlet-mapping>
<servlet-mapping>
@@ -437,7 +433,6 @@
<servlet-mapping>
<servlet-name>ChatServlet</servlet-name>
<url-pattern>/chat/*</url-pattern>
<!-- portlet -->
</servlet-mapping>
<servlet-mapping>

+ 0
- 7
build/build.xml View File

@@ -562,13 +562,6 @@
<include name="**/*" />
</fileset>
</copy>
<java classname="com.vaadin.buildhelpers.PortletConfigurationGenerator" failonerror="yes" fork="yes" maxmemory="512m">
<arg value="${output-dir}/WebContent/WEB-INF" />
<arg value="com.vaadin.portal.gwt.PortalDefaultWidgetSet" />
<classpath>
<pathelement location="build/buildhelpers/" />
</classpath>
</java>
</target>

<target name="compile-fileupload">

+ 0
- 403
build/buildhelpers/com/vaadin/buildhelpers/PortletConfigurationGenerator.java View File

@@ -1,403 +0,0 @@
/**
*
*/
package com.vaadin.buildhelpers;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.nio.charset.Charset;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Generates portlet.xml, liferay-portlet.xml, liferay-display.xml from web.xml.
* Currently uses regular expressions to avoid dependencies; does not strictly
* adhere to xml rules, but should work with a 'normal' web.xml.
*
* To be included, the servlet-mapping must include a special comment: <!--
* portlet --> If the portlet requires some special styles (i.e height): <!--
* portlet style=height:400px -->
*
* @author marc
*/
public class PortletConfigurationGenerator {
// can be changed for debugging:
private static final String WEB_XML_FILE = "web.xml";
private static final String PORTLET_XML_FILE = "portlet.xml";
private static final String LIFERAY_PORTLET_XML_FILE = "liferay-portlet.xml";
private static final String LIFERAY_DISPLAY_XML_FILE = "liferay-display.xml";
private static final String JBOSS_OBJECT_FILE = "vaadin-object.xml";
private static final String JBOSS_INSTANCE_FILE = "portlet-instances.xml";
// "templates" follow;
private static final String PORTLET_XML_HEAD = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
+ "<portlet-app\n"
+ " xmlns=\"http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd\"\n"
+ " version=\"1.0\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
+ " xsi:schemaLocation=\"http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd\">\n";
private static final String PORTLET_XML_SECTION = " <portlet>\n"
+ " <portlet-name>%PORTLETNAME%</portlet-name>\n"
+ " <display-name>Vaadin %NAME%</display-name>\n"
+ " <portlet-class>com.vaadin.terminal.gwt.server.ApplicationPortlet</portlet-class>\n"
+ " <init-param>\n"
+ " <name>application</name>\n"
+ " <value>%URL%</value>\n"
+ " </init-param>\n"
+ " %EXTRAPARAMS%\n"
+ " <supports>\n"
+ " <mime-type>text/html</mime-type>\n"
+ " <portlet-mode>view</portlet-mode>\n"
+ " <portlet-mode>edit</portlet-mode>\n"
+ " <portlet-mode>help</portlet-mode>\n"
+ " </supports>\n"
+ " <portlet-info>\n"
+ " <title>%NAME%</title>\n"
+ " <short-title>%NAME%</short-title>\n"
+ " </portlet-info>\n" + " \n"
+ " <security-role-ref>\n"
+ " <role-name>administrator</role-name>\n"
+ " </security-role-ref>\n"
+ " <security-role-ref>\n"
+ " <role-name>guest</role-name>\n"
+ " </security-role-ref>\n"
+ " <security-role-ref>\n"
+ " <role-name>power-user</role-name>\n"
+ " </security-role-ref>\n"
+ " <security-role-ref>\n"
+ " <role-name>user</role-name>\n"
+ " </security-role-ref>\n" + " </portlet>\n";
private static final String PORTLET_XML_FOOT = "\n" + "</portlet-app>";
private static final String LIFERAY_PORTLET_XML_HEAD = "<?xml version=\"1.0\"?>\n"
+ "<!DOCTYPE liferay-portlet-app PUBLIC \"-//Liferay//DTD Portlet Application 4.3.0//EN\" \"http://www.liferay.com/dtd/liferay-portlet-app_4_3_0.dtd\">\n"
+ "\n" + "<liferay-portlet-app>\n" + "";
private static final String LIFERAY_PORTLET_XML_SECTION = " <portlet>\n"
+ " <portlet-name>%PORTLETNAME%</portlet-name>\n"
+ " <instanceable>true</instanceable> \n"
+ " <ajaxable>false</ajaxable>\n"
+ " </portlet>\n" + "";
private static final String LIFERAY_PORTLET_XML_FOOT = " \n"
+ " <role-mapper>\n"
+ " <role-name>administrator</role-name>\n"
+ " <role-link>Administrator</role-link>\n"
+ " </role-mapper>\n" + " <role-mapper>\n"
+ " <role-name>guest</role-name>\n"
+ " <role-link>Guest</role-link>\n"
+ " </role-mapper>\n" + " <role-mapper>\n"
+ " <role-name>power-user</role-name>\n"
+ " <role-link>Power User</role-link>\n"
+ " </role-mapper>\n" + " <role-mapper>\n"
+ " <role-name>user</role-name>\n"
+ " <role-link>User</role-link>\n"
+ " </role-mapper>\n" + " \n"
+ "</liferay-portlet-app>";
private static final String LIFERAY_DISPLAY_XML_HEAD = "<?xml version=\"1.0\"?>\n"
+ "<!DOCTYPE display PUBLIC \"-//Liferay//DTD Display 4.0.0//EN\" \"http://www.liferay.com/dtd/liferay-display_4_0_0.dtd\">\n"
+ "\n"
+ "<display>\n"
+ " <category name=\"Vaadin\">\n" + "";
private static final String LIFERAY_DISPLAY_XML_SECTION = " <portlet id=\"%PORTLETNAME%\" />\n";
private static final String LIFERAY_DISPLAY_XML_FOOT = "\n"
+ " </category>\n" + "</display>";
private static final String JBOSS_INSTANCE_HEAD = "<?xml version=\"1.0\" standalone=\"yes\"?>\r\n"
+ "<!DOCTYPE deployments PUBLIC\r\n"
+ " \"-//JBoss Portal//DTD Portlet Instances 2.6//EN\"\r\n"
+ " \"http://www.jboss.org/portal/dtd/portlet-instances_2_6.dtd\">\r\n"
+ "<deployments>\r\n";
private static final String JBOSS_INSTANCE_SECTION = " <deployment>\r\n <instance>\r\n"
+ " <instance-id>%PORTLETNAME%Instance</instance-id>\r\n"
+ " <portlet-ref>%PORTLETNAME%</portlet-ref>\r\n"
+ " </instance>\r\n </deployment>\r\n";
private static final String JBOSS_INSTANCE_FOOT = "</deployments>";
private static final String JBOSS_OBJECT_HEAD = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n"
+ "<!DOCTYPE deployments PUBLIC\r\n"
+ " \"-//JBoss Portal//DTD Portal Object 2.6//EN\"\r\n"
+ " \"http://www.jboss.org/portal/dtd/portal-object_2_6.dtd\">\r\n"
+ "<deployments>\r\n";
private static final String JBOSS_OBJECT_SECTION = " <deployment>\r\n"
+ " <parent-ref>default.default</parent-ref>\r\n"
+ " <if-exists>overwrite</if-exists>"
+ " <window>\r\n"
+ " <window-name>%PORTLETNAME%Window</window-name>\r\n"
+ " <content>\r\n"
+ " <content-type>portlet</content-type>\r\n"
+ " <content-uri>%PORTLETNAME%Instance</content-uri>\r\n"
+ " </content>\r\n"
+ " <region>center</region>\r\n"
+ " <height>1</height>\r\n"
+ " </window>\r\n </deployment>\r\n";
private static final String JBOSS_OBJECT_FOOT = "</deployments>";
/**
* @param args
* <path to directory with web.xml> [default widgetset to use]
*/
public static void main(String[] args) {
if (args.length < 1 || !new File(args[0]).isDirectory()) {
System.err
.println("Usage: PortletConfigurationGenerator <directory> [widgetset]");
return;
}
String widgetset = "";
if (args.length > 1) {
widgetset = args[1];
}
/*
* Read web.xml
*/
File dir = new File(args[0]);
File webxmlFile = new File(dir.getAbsolutePath() + File.separatorChar
+ WEB_XML_FILE);
String webXml = "";
BufferedReader in = null;
try {
in = new BufferedReader(new FileReader(webxmlFile));
String line = in.readLine();
while (line != null) {
webXml += line;
line = in.readLine();
}
} catch (FileNotFoundException e1) {
System.out.println(webxmlFile + " not found!");
return;
} catch (IOException e2) {
System.out.println("IOException while reading " + webxmlFile);
webXml = null;
}
try {
if (in != null) {
in.close();
}
} catch (IOException e1) {
System.out.println("IOException while closing " + webxmlFile);
}
if (webXml == null) {
System.out.println("Could not read web.xml!");
return;
}
/*
* Open outputs
*/
// Open portlet.xml
File portletXmlFile = new File(args[0] + File.separatorChar
+ PORTLET_XML_FILE);
OutputStreamWriter pout = null;
try {
pout = new OutputStreamWriter(new FileOutputStream(portletXmlFile),
Charset.forName("UTF-8"));
} catch (FileNotFoundException e) {
System.out.println(portletXmlFile + " not found!");
}
// open liferay-portlet.xml
File liferayPortletXmlFile = new File(args[0] + File.separatorChar
+ LIFERAY_PORTLET_XML_FILE);
OutputStreamWriter lpout = null;
try {
lpout = new OutputStreamWriter(new FileOutputStream(
liferayPortletXmlFile), Charset.forName("UTF-8"));
} catch (FileNotFoundException e) {
System.out.println(liferayPortletXmlFile + " not found!");
}
// open liferay-display.xml
File liferayDisplayXmlFile = new File(args[0] + File.separatorChar
+ LIFERAY_DISPLAY_XML_FILE);
OutputStreamWriter ldout = null;
try {
ldout = new OutputStreamWriter(new FileOutputStream(
liferayDisplayXmlFile), Charset.forName("UTF-8"));
} catch (FileNotFoundException e) {
System.out.println(liferayDisplayXmlFile + " not found!");
}
// open jboss object.xml
File jbossObjectXmlFile = new File(args[0] + File.separatorChar
+ JBOSS_OBJECT_FILE);
OutputStreamWriter joout = null;
try {
joout = new OutputStreamWriter(new FileOutputStream(
jbossObjectXmlFile), Charset.forName("UTF-8"));
} catch (FileNotFoundException e) {
System.out.println(jbossObjectXmlFile + " not found!");
}
// open jboss instance.xml
File jbossInstanceXmlFile = new File(args[0] + File.separatorChar
+ JBOSS_INSTANCE_FILE);
OutputStreamWriter jiout = null;
try {
jiout = new OutputStreamWriter(new FileOutputStream(
jbossInstanceXmlFile), Charset.forName("UTF-8"));
} catch (FileNotFoundException e) {
System.out.println(jbossInstanceXmlFile + " not found!");
}
if (pout != null && lpout != null && ldout != null && joout != null
&& jiout != null) {
String pstring = PORTLET_XML_HEAD;
String lpstring = LIFERAY_PORTLET_XML_HEAD;
String ldstring = LIFERAY_DISPLAY_XML_HEAD;
String jostring = JBOSS_OBJECT_HEAD;
String jistring = JBOSS_INSTANCE_HEAD;
Pattern p1 = Pattern
.compile("<servlet-mapping>.*?<servlet-name>(.*?)<\\/servlet-name>.*?<url-pattern>(.*?)<\\/url-pattern>(.*?)<\\/servlet-mapping>");
Pattern p2 = Pattern
.compile(".*?<!--\\s+portlet\\s?style=([^ ]*)?\\s+-->.*?");
Pattern findWidgetset = Pattern
.compile("<init-param>.*?<param-name>widgetset<\\/param-name>.*?<param-value>(.*?)<\\/param-value>");
Matcher m = p1.matcher(webXml);
while (m.find()) {
if (m.groupCount() < 3) {
// don't include
continue;
}
String name = m.group(1);
// remove leading- and trailing whitespace
name = name.replaceAll("^\\s*", "");
name = name.replaceAll("\\s*$", "");
String comment = m.group(3);
Matcher m2 = p2.matcher(comment);
if (!m2.find()) {
// don't include
continue;
}
String style = "";
if (m2.groupCount() == 1 && m2.group(1) != null
&& !m2.group(1).equals("")) {
style = "<init-param><name>style</name><value>"
+ m2.group(1) + "</value></init-param>";
}
// Find widgetset
Pattern findServlet = Pattern
.compile("<servlet>.*?<servlet-name>" + name
+ "<\\/servlet-name>(.*?)<\\/servlet>");
Matcher servletMatcher = findServlet.matcher(webXml);
if (servletMatcher.find()) {
String servletXml = servletMatcher.group(1);
Matcher widgetsetMatcher = findWidgetset
.matcher(servletXml);
if (widgetsetMatcher.find()) {
String definedWidgetSet = widgetsetMatcher.group(1);
if (!definedWidgetSet.equals(widgetset)) {
System.err
.println("WARNING: Widgetset in web.xml ("
+ definedWidgetSet
+ ") does not match used ("
+ widgetset + ")");
}
}
}
if (widgetset != null && !widgetset.equals("")) {
System.err.println("Using widgetset: " + widgetset);
style += "\n "
+ "<init-param><name>widgetset</name><value>"
+ widgetset + "</value></init-param>";
}
String pname = name + "Portlet";
String url = m.group(2);
// remove leading- and trailing whitespace
url = url.replaceAll("^\\s*", "");
url = url.replaceAll("\\s*$", "");
if (url.startsWith("/")) {
url = url.substring(1);
}
if (url.endsWith("*")) {
url = url.substring(0, url.length() - 1);
}
if (url.endsWith("/")) {
url = url.substring(0, url.length() - 1);
}
System.out.println("Mapping " + pname + " to " + url);
String s = PORTLET_XML_SECTION;
s = s.replaceAll("%NAME%", name);
s = s.replaceAll("%PORTLETNAME%", pname);
s = s.replaceAll("%URL%", url);
s = s.replaceAll("%EXTRAPARAMS%", style);
pstring += s;
s = LIFERAY_PORTLET_XML_SECTION;
s = s.replaceAll("%NAME%", name);
s = s.replaceAll("%PORTLETNAME%", pname);
s = s.replaceAll("%URL%", url);
lpstring += s;
s = LIFERAY_DISPLAY_XML_SECTION;
s = s.replaceAll("%NAME%", name);
s = s.replaceAll("%PORTLETNAME%", pname);
s = s.replaceAll("%URL%", url);
ldstring += s;
s = JBOSS_OBJECT_SECTION;
s = s.replaceAll("%NAME%", name);
s = s.replaceAll("%PORTLETNAME%", pname);
s = s.replaceAll("%URL%", url);
jostring += s;
s = JBOSS_INSTANCE_SECTION;
s = s.replaceAll("%NAME%", name);
s = s.replaceAll("%PORTLETNAME%", pname);
s = s.replaceAll("%URL%", url);
jistring += s;
}
pstring += PORTLET_XML_FOOT;
lpstring += LIFERAY_PORTLET_XML_FOOT;
ldstring += LIFERAY_DISPLAY_XML_FOOT;
jostring += JBOSS_OBJECT_FOOT;
jistring += JBOSS_INSTANCE_FOOT;
try {
pout.write(pstring);
lpout.write(lpstring);
ldout.write(ldstring);
joout.write(jostring);
jiout.write(jistring);
} catch (IOException e) {
System.out.println("Write FAILED:" + e);
}
}
try {
if (pout != null) {
pout.close();
}
if (lpout != null) {
lpout.close();
}
if (ldout != null) {
ldout.close();
}
if (joout != null) {
joout.close();
}
if (jiout != null) {
jiout.close();
}
} catch (IOException e) {
System.out.println("Close FAILED: " + e);
}
System.out.println("Done.");
}
}

+ 0
- 6
build/package/WebContent/WEB-INF/web.xml View File

@@ -135,8 +135,6 @@
<servlet-mapping>
<servlet-name>PortletDemo</servlet-name>
<url-pattern>/PortletDemo/*</url-pattern>
<!-- Hint for the automatic deployment descriptor generator -->
<!-- portlet style= -->
</servlet-mapping>
<servlet-mapping>
<servlet-name>VaadinApplicationRunner</servlet-name>
@@ -149,8 +147,6 @@
<servlet-mapping>
<servlet-name>Sampler</servlet-name>
<url-pattern>/sampler/*</url-pattern>
<!-- Hint for the automatic deployment descriptor generator -->
<!-- portlet style=height:650px -->
</servlet-mapping>
<servlet-mapping>
<servlet-name>AddressBook</servlet-name>
@@ -163,8 +159,6 @@
<servlet-mapping>
<servlet-name>Calc</servlet-name>
<url-pattern>/Calc/*</url-pattern>
<!-- Hint for the automatic deployment descriptor generator -->
<!-- portlet style= -->
</servlet-mapping>
<servlet-mapping>
<servlet-name>ColorPickerApplication</servlet-name>

Loading…
Cancel
Save