Author: julien(a)jboss.com
Date: 2007-08-21 09:49:37 -0400 (Tue, 21 Aug 2007)
New Revision: 8012
Modified:
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployer.java
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployment.java
modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml
modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/web.xml
Log:
leverage MC install/uninstall to update the PortletApplicationRegistry upon life cycle
changes
Modified:
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java
===================================================================
---
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java 2007-08-21
13:05:42 UTC (rev 8011)
+++
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortalServlet.java 2007-08-21
13:49:37 UTC (rev 8012)
@@ -22,8 +22,15 @@
******************************************************************************/
package org.jboss.portal.portlet.test;
+import org.jboss.portal.portlet.container.PortletApplicationRegistry;
+
import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
import javax.servlet.ServletException;
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Iterator;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -32,7 +39,19 @@
public class PortalServlet extends HttpServlet
{
- public void init() throws ServletException
+
+ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws
ServletException, IOException
{
+ PortletApplicationRegistry registry =
(PortletApplicationRegistry)getServletContext().getAttribute("PortletApplicationRegistry");
+
+
+ resp.setContentType("text/html");
+ PrintWriter writer = resp.getWriter();
+
+ for (Iterator i = registry.getPortletApplications().iterator(); i.hasNext();)
+ {
+ Object o = i.next();
+ System.out.println("o = " + o);
+ }
}
}
Modified:
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployer.java
===================================================================
---
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployer.java 2007-08-21
13:05:42 UTC (rev 8011)
+++
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployer.java 2007-08-21
13:49:37 UTC (rev 8012)
@@ -31,6 +31,10 @@
import org.jboss.portal.portlet.impl.jsr168.metadata.PortletApplicationMetaData;
import org.jboss.portal.portlet.deployment.PortletApplicationMetaDataFactory;
import org.jboss.portal.portlet.deployment.ValueTrimmingFilter;
+import org.jboss.portal.portlet.container.PortletApplication;
+import org.jboss.portal.portlet.container.PortletContainer;
+import org.jboss.portal.portlet.container.PortletApplicationRegistry;
+import org.jboss.portal.portlet.container.PortletApplicationRegistrationContext;
import org.jboss.portal.common.io.IOTools;
import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
import org.jboss.kernel.spi.dependency.KernelControllerContext;
@@ -57,6 +61,9 @@
private Logger log = Logger.getLogger(PortletApplicationDeployer.class);
/** . */
+ private PortletApplicationRegistry registry;
+
+ /** . */
private ServletContainerContext containerContext;
/** . */
@@ -68,6 +75,9 @@
/** . */
private ClassLoader classLoader;
+ /** . */
+ private final Map registrationContextMap = new HashMap();
+
public void onEvent(WebAppEvent event)
{
if (event instanceof WebAppLifeCycleEvent)
@@ -197,4 +207,37 @@
}
return null;
}
+
+ public void installPortletApplication(PortletApplication application)
+ {
+ PortletApplicationRegistrationContext context =
registry.registerPortletApplication(application);
+ registrationContextMap.put(application, context);
+ }
+
+ public void installPortletContainer(PortletContainer container)
+ {
+ PortletApplicationRegistrationContext context =
(PortletApplicationRegistrationContext)registrationContextMap.get(container.getApplication());
+ context.registerPortlet(container);
+ }
+
+ public void uninstallPortletApplication(PortletApplication application)
+ {
+ registry.unregisterPortletApplication(application);
+ }
+
+ public void uninstallPortletContainer(PortletContainer container)
+ {
+ PortletApplicationRegistrationContext context =
(PortletApplicationRegistrationContext)registrationContextMap.get(container.getApplication());
+ context.unregisterPortlet(container);
+ }
+
+ public PortletApplicationRegistry getRegistry()
+ {
+ return registry;
+ }
+
+ public void setRegistry(PortletApplicationRegistry registry)
+ {
+ this.registry = registry;
+ }
}
Modified:
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployment.java
===================================================================
---
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployment.java 2007-08-21
13:05:42 UTC (rev 8011)
+++
modules/portlet/trunk/test/src/main/org/jboss/portal/portlet/test/PortletApplicationDeployment.java 2007-08-21
13:49:37 UTC (rev 8012)
@@ -43,6 +43,8 @@
import org.jboss.beans.metadata.plugins.AbstractParameterMetaData;
import org.jboss.beans.metadata.plugins.AbstractLifecycleMetaData;
import org.jboss.beans.metadata.plugins.AbstractPropertyMetaData;
+import org.jboss.beans.metadata.plugins.AbstractInstallMetaData;
+import org.jboss.beans.metadata.plugins.ThisValueMetaData;
import org.jboss.dependency.spi.ControllerState;
import org.apache.log4j.Logger;
@@ -109,6 +111,16 @@
bmd.setStart(new AbstractLifecycleMetaData("start"));
bmd.setStop(new AbstractLifecycleMetaData("stop"));
bmd.setProperties(Collections.singleton(new
AbstractPropertyMetaData("application", new
AbstractDependencyValueMetaData(id))));
+ AbstractInstallMetaData installmd = new AbstractInstallMetaData();
+ installmd.setBean("PortletApplicationDeployer");
+ installmd.setParameters(Collections.singletonList(new
AbstractParameterMetaData(new ThisValueMetaData())));
+ installmd.setMethodName("installPortletContainer");
+ bmd.setInstalls(Collections.singletonList(installmd));
+ AbstractInstallMetaData uninstallmd = new AbstractInstallMetaData();
+ uninstallmd.setBean("PortletApplicationDeployer");
+ uninstallmd.setParameters(Collections.singletonList(new
AbstractParameterMetaData(new ThisValueMetaData())));
+ uninstallmd.setMethodName("uninstallPortletContainer");
+ bmd.setUninstalls(Collections.singletonList(uninstallmd));
try
{
KernelControllerContext portletContainerControllerContext =
kernel.getController().install(bmd);
@@ -133,6 +145,16 @@
bmd.setConstructor(ctormd);
bmd.setStart(new AbstractLifecycleMetaData("start"));
bmd.setStop(new AbstractLifecycleMetaData("stop"));
+ AbstractInstallMetaData installmd = new AbstractInstallMetaData();
+ installmd.setBean("PortletApplicationDeployer");
+ installmd.setParameters(Collections.singletonList(new AbstractParameterMetaData(new
ThisValueMetaData())));
+ installmd.setMethodName("installPortletApplication");
+ bmd.setInstalls(Collections.singletonList(installmd));
+ AbstractInstallMetaData uninstallmd = new AbstractInstallMetaData();
+ uninstallmd.setBean("PortletApplicationDeployer");
+ uninstallmd.setParameters(Collections.singletonList(new
AbstractParameterMetaData(new ThisValueMetaData())));
+ uninstallmd.setMethodName("uninstallPortletApplication");
+ bmd.setUninstalls(Collections.singletonList(uninstallmd));
//
try
Modified:
modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml
===================================================================
---
modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml 2007-08-21
13:05:42 UTC (rev 8011)
+++
modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/jboss-beans.xml 2007-08-21
13:49:37 UTC (rev 8012)
@@ -4,13 +4,14 @@
xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_2_0.xsd"
xmlns="urn:jboss:bean-deployer:2.0">
- <bean name="PortletApplicationDeployer"
class="org.jboss.portal.portlet.test.PortletApplicationDeployer">
- </bean>
-
<!-- An application registry mainly for listeners -->
<bean name="PortletApplicationRegistry"
class="org.jboss.portal.portlet.impl.container.PortletApplicationRegistryImpl">
</bean>
+ <bean name="PortletApplicationDeployer"
class="org.jboss.portal.portlet.test.PortletApplicationDeployer">
+ <property name="registry"><inject
bean="PortletApplicationRegistry"/></property>
+ </bean>
+
<bean name="PortletAPIFactory"
class="org.jboss.portal.portlet.impl.jsr168.PortletAPIFactoryImpl">
</bean>
Modified: modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/web.xml
===================================================================
--- modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/web.xml 2007-08-21
13:05:42 UTC (rev 8011)
+++ modules/portlet/trunk/test/src/resources/portlet-test-war/WEB-INF/web.xml 2007-08-21
13:49:37 UTC (rev 8012)
@@ -29,4 +29,12 @@
<listener>
<listener-class>org.jboss.portal.portlet.test.PortalKernelBootstrap</listener-class>
</listener>
+ <servlet>
+ <servlet-name>PortalServlet</servlet-name>
+
<servlet-class>org.jboss.portal.portlet.test.PortalServlet</servlet-class>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>PortalServlet</servlet-name>
+ <url-pattern>/</url-pattern>
+ </servlet-mapping>
</web-app>
Show replies by date