Author: julien(a)jboss.com
Date: 2008-01-12 19:40:13 -0500 (Sat, 12 Jan 2008)
New Revision: 9487
Added:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerPortletApplicationInfo.java
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/container/PortletApplicationContextImpl.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerInfoBuilder.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerPortletInfo.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletApplicationImpl.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletContainerImpl.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletConfigImpl.java
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletContextImpl.java
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortletApplicationDeployment.java
Log:
added notion of ContainerPortletApplicationInfo to hold the various items related to the
application in 286
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/container/PortletApplicationContextImpl.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/container/PortletApplicationContextImpl.java 2008-01-12
23:16:50 UTC (rev 9486)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/container/PortletApplicationContextImpl.java 2008-01-13
00:40:13 UTC (rev 9487)
@@ -27,15 +27,11 @@
import org.jboss.portal.portlet.container.PortletApplicationRegistry;
import org.jboss.portal.portlet.container.PortletContainer;
import org.jboss.portal.portlet.impl.jsr168.PortletApplicationImpl;
-import org.jboss.portal.portlet.impl.jsr168.PortletContainerImpl;
-import org.jboss.portal.portlet.impl.jsr168.ContainerInfoBuilderContextImpl;
import org.jboss.portal.portlet.impl.jsr168.spi.PortletAPIFactory;
import org.jboss.portal.portlet.impl.jsr168.spi.PortletInfoFactory;
import org.jboss.portal.portlet.impl.metadata.PortletApplication10MetaData;
-import org.jboss.portal.portlet.impl.info.ContainerPortletInfo;
-import org.jboss.portal.portlet.impl.info.ContainerInfoBuilder;
-import org.jboss.portal.portlet.impl.info.ContainerInfoBuilderContext;
import org.jboss.portal.portlet.metadata.JBossApplicationMetaData;
+import org.jboss.portal.common.FixMe;
import javax.servlet.ServletContext;
@@ -101,6 +97,8 @@
public void startPortletApplication() throws Exception
{
+ throw new FixMe("Not used anymore for now, check or reimplement in
2.6");
+/*
portletApp = new PortletApplicationImpl(portletAppMD, jbossAppMD, this,
portletAPIFactory);
portletApp.start();
@@ -113,7 +111,7 @@
builder.build();
//
- for (ContainerPortletInfo containerInfo : builder.getContainerInfos())
+ for (ContainerPortletInfo containerInfo : builder.getPortlets())
{
// JBossPortletMetaData jBossPortletMD = null;
// if (jbossAppMD != null)
@@ -140,6 +138,7 @@
e.printStackTrace();
}
}
+*/
}
public void stopPortletApplication()
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerInfoBuilder.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerInfoBuilder.java 2008-01-12
23:16:50 UTC (rev 9486)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerInfoBuilder.java 2008-01-13
00:40:13 UTC (rev 9487)
@@ -55,6 +55,8 @@
import java.util.ResourceBundle;
import java.util.MissingResourceException;
import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashMap;
import java.net.URI;
import java.net.URISyntaxException;
@@ -81,12 +83,15 @@
private final ContainerInfoBuilderContext context;
/** . */
- private final List<ContainerPortletInfo> containerInfos;
+ private final Map<QName, ContainerEventInfo> events;
/** . */
- private final Map<QName, ContainerEventInfo> events;
+ private ContainerPortletApplicationInfo portletApplication;
/** . */
+ private final Map<String, ContainerPortletInfo> portlets;
+
+ /** . */
private final Logger log = Logger.getLogger(ContainerInfoBuilder.class);
public ContainerInfoBuilder(
@@ -95,17 +100,22 @@
{
this.portletApplicationMD = portletApplicationMD;
this.context = context;
- this.containerInfos = new ArrayList<ContainerPortletInfo>();
this.events = new HashMap<QName, ContainerEventInfo>();
+ this.portlets = new LinkedHashMap<String, ContainerPortletInfo>();
}
- public List<ContainerPortletInfo> getContainerInfos()
+ public ContainerPortletApplicationInfo getApplication()
{
- return containerInfos;
+ return portletApplication;
}
- private void fixMetaData()
+ public Collection<ContainerPortletInfo> getPortlets()
{
+ return portlets.values();
+ }
+
+ private void fixMetaData(PortletApplication10MetaData portletApplicationMD)
+ {
if (portletApplicationMD instanceof PortletApplication20MetaData)
{
PortletApplication20MetaData tmp =
(PortletApplication20MetaData)portletApplicationMD;
@@ -212,14 +222,30 @@
public void build()
{
- fixMetaData();
+ portletApplication = build(portletApplicationMD);
//
- if (portletApplicationMD instanceof PortletApplication20MetaData)
+ for (PortletMetaData portletMD : portletApplicationMD.getPortletCollection())
{
- PortletApplication20MetaData tmp =
(PortletApplication20MetaData)portletApplicationMD;
+ ContainerPortletInfo portlet = build(portletMD);
+ portlets.put(portlet.getName(), portlet);
+ }
+ }
+ private ContainerPortletApplicationInfo build(PortletApplication10MetaData
portletApplicationMD)
+ {
+ fixMetaData(portletApplicationMD);
+
+ //
+ String defaultNamespace = XMLConstants.NULL_NS_URI;
+ if (this.portletApplicationMD instanceof PortletApplication20MetaData)
+ {
+ PortletApplication20MetaData tmp =
(PortletApplication20MetaData)this.portletApplicationMD;
+
//
+ defaultNamespace = tmp.getDefaultNamespace() != null ?
tmp.getDefaultNamespace().toString() : null;
+
+ //
for (EventDefinitionMetaData eventDefinitionMD : tmp.getEvents())
{
try
@@ -235,11 +261,7 @@
}
//
- for (PortletMetaData portletMD : portletApplicationMD.getPortletCollection())
- {
- ContainerPortletInfo portletInfo = build(portletMD);
- containerInfos.add(portletInfo);
- }
+ return new ContainerPortletApplicationInfo(defaultNamespace);
}
private ContainerEventInfo build(EventDefinitionMetaData eventDefinitionMD) throws
NoSuchClassException
@@ -281,9 +303,6 @@
ContainerPortletInfo containerPortletInfo;
if (portletApplicationMD instanceof PortletApplication20MetaData)
{
- PortletApplication20MetaData tmp =
(PortletApplication20MetaData)portletApplicationMD;
-
- //
ContainerEventsInfo containerEvents = buildContainerEventsInfo(portletMD);
//
@@ -298,7 +317,6 @@
portletMD.getPortletName(),
portletMD.getPortletClass(),
false,
- tmp.getDefaultNamespace().toString(),
context.getBundleManager(portletMD)
);
}
Added:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerPortletApplicationInfo.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerPortletApplicationInfo.java
(rev 0)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerPortletApplicationInfo.java 2008-01-13
00:40:13 UTC (rev 9487)
@@ -0,0 +1,44 @@
+/******************************************************************************
+ * JBoss, a division of Red Hat *
+ * Copyright 2006, Red Hat Middleware, LLC, and individual *
+ * contributors as indicated by the @authors tag. See the *
+ * copyright.txt in the distribution for a full listing of *
+ * individual contributors. *
+ * *
+ * This is free software; you can redistribute it and/or modify it *
+ * under the terms of the GNU Lesser General Public License as *
+ * published by the Free Software Foundation; either version 2.1 of *
+ * the License, or (at your option) any later version. *
+ * *
+ * This software is distributed in the hope that it will be useful, *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
+ * Lesser General Public License for more details. *
+ * *
+ * You should have received a copy of the GNU Lesser General Public *
+ * License along with this software; if not, write to the Free *
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA *
+ * 02110-1301 USA, or see the FSF site:
http://www.fsf.org. *
+ ******************************************************************************/
+package org.jboss.portal.portlet.impl.info;
+
+/**
+ * @author <a href="mailto:julien@jboss.org">Julien Viet</a>
+ * @version $Revision: 630 $
+ */
+public class ContainerPortletApplicationInfo
+{
+
+ /** . */
+ private final String defaultNamespace;
+
+ public ContainerPortletApplicationInfo(String defaultNamespace)
+ {
+ this.defaultNamespace = defaultNamespace;
+ }
+
+ public String getDefaultNamespace()
+ {
+ return defaultNamespace;
+ }
+}
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerPortletInfo.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerPortletInfo.java 2008-01-12
23:16:50 UTC (rev 9486)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/info/ContainerPortletInfo.java 2008-01-13
00:40:13 UTC (rev 9487)
@@ -74,9 +74,6 @@
private final Boolean remotable;
/** . */
- private final String defaultNamespace;
-
- /** . */
private final ResourceBundleManager bundleManager;
public ContainerPortletInfo(
@@ -102,11 +99,10 @@
this.className = className;
this.initParameters = new HashMap<String, String>();
this.remotable = remotable;
- this.defaultNamespace = XMLConstants.NULL_NS_URI;
this.bundleManager = bundleManager;
}
- public ContainerPortletInfo(
+ ContainerPortletInfo(
ContainerCapabilitiesInfo capabilities,
ContainerPreferencesInfo preferences,
ContainerMetaInfo meta,
@@ -117,7 +113,6 @@
String name,
String className,
Boolean remotable,
- String defaultNamespace,
ResourceBundleManager bundleManager)
{
this.capabilities = capabilities;
@@ -131,7 +126,6 @@
this.className = className;
this.initParameters = new HashMap<String, String>();
this.remotable = remotable;
- this.defaultNamespace = defaultNamespace;
this.bundleManager = bundleManager;
}
@@ -140,11 +134,6 @@
return name;
}
- public String getDefaultNamespace()
- {
- return defaultNamespace;
- }
-
public ResourceBundleManager getBundleManager()
{
return bundleManager;
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletApplicationImpl.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletApplicationImpl.java 2008-01-12
23:16:50 UTC (rev 9486)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletApplicationImpl.java 2008-01-13
00:40:13 UTC (rev 9487)
@@ -25,6 +25,7 @@
import org.jboss.portal.portlet.impl.jsr168.api.PortletContextImpl;
import org.jboss.portal.portlet.impl.jsr168.spi.PortletAPIFactory;
import org.jboss.portal.portlet.impl.metadata.PortletApplication10MetaData;
+import org.jboss.portal.portlet.impl.info.ContainerPortletApplicationInfo;
import org.jboss.portal.portlet.metadata.JBossApplicationMetaData;
import org.jboss.portal.portlet.container.PortletApplication;
import org.jboss.portal.portlet.container.PortletApplicationContext;
@@ -43,6 +44,9 @@
{
/** . */
+ protected final ContainerPortletApplicationInfo info;
+
+ /** . */
protected final PortletApplication10MetaData metaData;
/** . */
@@ -58,17 +62,28 @@
protected LinkedHashMap<String, PortletContainer> portlets;
/** . */
- protected PortletContext portletContext;
+ protected PortletContextImpl portletContext;
/** . */
protected String version;
+ /**
+ * Todo remove meta data reference and use info instead.
+ *
+ * @param info
+ * @param metaData
+ * @param jbossMetaData
+ * @param context
+ * @param portletAPIFactory
+ */
public PortletApplicationImpl(
+ ContainerPortletApplicationInfo info,
PortletApplication10MetaData metaData,
JBossApplicationMetaData jbossMetaData,
PortletApplicationContext context,
PortletAPIFactory portletAPIFactory)
{
+ this.info = info;
this.metaData = metaData;
this.jbossMetaData = jbossMetaData;
this.portletAPIFactory = portletAPIFactory;
@@ -81,6 +96,11 @@
return metaData.getId();
}
+ public ContainerPortletApplicationInfo getInfo()
+ {
+ return info;
+ }
+
public PortletAPIFactory getPortletAPIFactory()
{
return portletAPIFactory;
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletContainerImpl.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletContainerImpl.java 2008-01-12
23:16:50 UTC (rev 9486)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/PortletContainerImpl.java 2008-01-13
00:40:13 UTC (rev 9487)
@@ -26,6 +26,7 @@
import org.jboss.portal.common.i18n.ResourceBundleManager;
import org.jboss.portal.common.invocation.InvocationException;
import org.jboss.portal.portlet.PortletInvokerException;
+import org.jboss.portal.portlet.info.PortletInfo;
import org.jboss.portal.portlet.aspects.portlet.ContextDispatcherInterceptor;
import org.jboss.portal.portlet.container.PortletApplication;
import org.jboss.portal.portlet.container.PortletContainer;
@@ -68,7 +69,7 @@
protected final Logger log;
/** Return info. */
- protected final ContainerPortletInfo info;
+ final ContainerPortletInfo info;
/** . */
protected PortletApplicationImpl application;
@@ -175,7 +176,7 @@
ResourceBundleManager bundleManager =
PortletResourceBundleFactory.createResourceBundleManager(info.getBundleManager(), info);
// Portlet config object
- PortletConfig config = new PortletConfigImpl(application.getPortletContext(), info,
bundleManager);
+ PortletConfig config = new PortletConfigImpl(info, application.info,
application.portletContext, bundleManager);
// Finally initialize the porlet instance
try
@@ -263,6 +264,7 @@
return portlet;
}
+ // Cannot use covariant here as it will break the javabean property getter convention
used by MC.
public PortletApplication getApplication()
{
return application;
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletConfigImpl.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletConfigImpl.java 2008-01-12
23:16:50 UTC (rev 9486)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletConfigImpl.java 2008-01-13
00:40:13 UTC (rev 9487)
@@ -26,6 +26,7 @@
import org.jboss.portal.common.NotYetImplemented;
import org.jboss.portal.common.util.Tools;
import org.jboss.portal.portlet.impl.info.ContainerPortletInfo;
+import org.jboss.portal.portlet.impl.info.ContainerPortletApplicationInfo;
import org.jboss.portal.portlet.info.EventInfo;
import javax.portlet.PortletConfig;
@@ -47,12 +48,15 @@
{
/** . */
- private PortletContext portletContext;
+ private final ContainerPortletInfo portletInfo;
/** . */
- private ContainerPortletInfo info;
+ private final ContainerPortletApplicationInfo portletApplicationInfo;
/** . */
+ private final PortletContextImpl portletContext;
+
+ /** . */
private ResourceBundleManager bundleMgr;
/** . */
@@ -61,22 +65,29 @@
/** . */
private List<QName> processingEventQNames;
- public PortletConfigImpl(PortletContext portletContext, ContainerPortletInfo info,
ResourceBundleManager bundleMgr)
+ public PortletConfigImpl(
+ ContainerPortletInfo portletInfo,
+ ContainerPortletApplicationInfo portletApplicationInfo,
+ PortletContextImpl portletContext,
+ ResourceBundleManager bundleMgr)
{
List<QName> publishingEventQNames = new ArrayList<QName>();
- for (EventInfo event : info.getEvents().getProducedEvents())
+ for (EventInfo event : portletInfo.getEvents().getProducedEvents())
{
publishingEventQNames.add(event.getName());
}
+ //
List<QName> processingEventQNames = new ArrayList<QName>();
- for (EventInfo event : info.getEvents().getConsumedEvents())
+ for (EventInfo event : portletInfo.getEvents().getConsumedEvents())
{
processingEventQNames.add(event.getName());
}
+ //
+ this.portletInfo = portletInfo;
+ this.portletApplicationInfo = portletApplicationInfo;
this.portletContext = portletContext;
- this.info = info;
this.bundleMgr = bundleMgr;
this.publishingEventQNames = publishingEventQNames;
this.processingEventQNames = processingEventQNames;
@@ -84,7 +95,7 @@
public String getPortletName()
{
- return info.getName();
+ return portletInfo.getName();
}
public PortletContext getPortletContext()
@@ -104,12 +115,12 @@
{
throw new IllegalArgumentException("name must not be null");
}
- return info.getInitParameter(s);
+ return portletInfo.getInitParameter(s);
}
public Enumeration<String> getInitParameterNames()
{
- return Collections.enumeration(info.getInitParameterNames());
+ return Collections.enumeration(portletInfo.getInitParameterNames());
}
public Enumeration<String> getPublicRenderParameterNames()
@@ -119,7 +130,7 @@
public String getDefaultNamespace()
{
- return info.getDefaultNamespace();
+ return portletApplicationInfo.getDefaultNamespace();
}
public Enumeration<QName> getPublishingEventQNames()
Modified:
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletContextImpl.java
===================================================================
---
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletContextImpl.java 2008-01-12
23:16:50 UTC (rev 9486)
+++
modules/portlet/trunk/portlet/src/main/java/org/jboss/portal/portlet/impl/jsr168/api/PortletContextImpl.java 2008-01-13
00:40:13 UTC (rev 9487)
@@ -23,6 +23,7 @@
package org.jboss.portal.portlet.impl.jsr168.api;
import org.jboss.portal.common.NotYetImplemented;
+import org.jboss.portal.portlet.impl.info.ContainerPortletApplicationInfo;
import javax.portlet.PortletContext;
import javax.portlet.PortletRequestDispatcher;
@@ -41,8 +42,12 @@
public class PortletContextImpl implements PortletContext
{
+ /** . */
private ServletContext servletContext;
+ /** . */
+ private ContainerPortletApplicationInfo info;
+
public PortletContextImpl(ServletContext servletContext)
{
this.servletContext = servletContext;
Modified:
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortletApplicationDeployment.java
===================================================================
---
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortletApplicationDeployment.java 2008-01-12
23:16:50 UTC (rev 9486)
+++
modules/portlet/trunk/test/src/main/java/org/jboss/portal/portlet/test/PortletApplicationDeployment.java 2008-01-13
00:40:13 UTC (rev 9487)
@@ -31,6 +31,7 @@
import org.jboss.portal.portlet.impl.info.ContainerPortletInfo;
import org.jboss.portal.portlet.impl.info.ContainerInfoBuilder;
import org.jboss.portal.portlet.impl.info.ContainerInfoBuilderContext;
+import org.jboss.portal.portlet.impl.info.ContainerPortletApplicationInfo;
import org.jboss.portal.portlet.metadata.JBossApplicationMetaData;
import org.jboss.portal.web.WebApp;
import org.jboss.portal.common.util.Tools;
@@ -49,16 +50,14 @@
import org.jboss.beans.metadata.spi.PropertyMetaData;
import org.jboss.beans.metadata.spi.ParameterMetaData;
import org.jboss.beans.metadata.spi.InstallMetaData;
+import org.jboss.dependency.spi.ControllerState;
import org.apache.log4j.Logger;
import javax.servlet.ServletContext;
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;
-import java.util.LinkedList;
-import java.util.Iterator;
import java.util.LinkedHashMap;
-import java.util.Set;
/**
* @author <a href="mailto:julien@jboss.org">Julien Viet</a>
@@ -119,7 +118,7 @@
List<AbstractBeanMetaData> toInstall = new
ArrayList<AbstractBeanMetaData>();
//
- for (ContainerPortletInfo containerInfo : builder.getContainerInfos())
+ for (ContainerPortletInfo containerInfo : builder.getPortlets())
{
//
String portletContainerId = "PortletContainer[" +
webApp.getContextPath() + "," + containerInfo.getName() + "]";
@@ -157,7 +156,8 @@
AbstractBeanMetaData applicationBMD = new
AbstractBeanMetaData(portletApplicationId, PortletApplicationImpl.class.getName());
AbstractConstructorMetaData ctormd = new AbstractConstructorMetaData();
ctormd.setParameters(Tools.toList(
- (ParameterMetaData)new
AbstractParameterMetaData(PortletApplication10MetaData.class.getName(), metaData),
+ (ParameterMetaData)new
AbstractParameterMetaData(ContainerPortletApplicationInfo.class.getName(),
builder.getApplication()),
+ new AbstractParameterMetaData(PortletApplication10MetaData.class.getName(),
metaData),
new AbstractParameterMetaData(JBossApplicationMetaData.class.getName(),
(Object)null),
new AbstractParameterMetaData(PortletApplicationContext.class.getName(), this),
new AbstractParameterMetaData(PortletAPIFactory.class.getName(), new
AbstractDependencyValueMetaData("PortletAPIFactory"))));
@@ -198,7 +198,14 @@
for (KernelControllerContext kcc : installed.values())
{
- log.debug("Bean " + kcc.getName() + " was installed with
state" + kcc.getState());
+ if (kcc.getState() == ControllerState.ERROR)
+ {
+ log.error("Bean " + kcc.getName() + " threw an error during
start", kcc.getError());
+ }
+ else
+ {
+ log.debug("Bean " + kcc.getName() + " was installed with
state" + kcc.getState());
+ }
}
}