You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by we...@apache.org on 2004/06/04 04:37:15 UTC
cvs commit: jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/deployment/impl DeployPortletAppEventListener.java
weaver 2004/06/03 19:37:15
Modified: commons/src/java/org/apache/jetspeed/factory
JetspeedPortletFactory.java
commons/src/java/org/apache/jetspeed/cache PortletCache.java
portal/src/java/org/apache/jetspeed/deployment/impl
DeployPortletAppEventListener.java
Log:
Fixed JS2-68: <http://nagoya.apache.org/jira/browse/JS2-68>
Revision Changes Path
1.3 +13 -9 jakarta-jetspeed-2/commons/src/java/org/apache/jetspeed/factory/JetspeedPortletFactory.java
Index: JetspeedPortletFactory.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/commons/src/java/org/apache/jetspeed/factory/JetspeedPortletFactory.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JetspeedPortletFactory.java 8 Mar 2004 00:41:59 -0000 1.2
+++ JetspeedPortletFactory.java 4 Jun 2004 02:37:15 -0000 1.3
@@ -15,14 +15,15 @@
*/
package org.apache.jetspeed.factory;
-import javax.servlet.ServletConfig;
-import javax.servlet.ServletContext;
-
import javax.portlet.Portlet;
-import javax.portlet.PortletException;
-import javax.portlet.PortletContext;
import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletException;
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletContext;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.apache.jetspeed.cache.PortletCache;
import org.apache.jetspeed.container.PortalAccessor;
import org.apache.pluto.om.portlet.PortletDefinition;
@@ -37,6 +38,8 @@
public abstract class JetspeedPortletFactory
{
+ private static final Log log = LogFactory.getLog(JetspeedPortletFactory.class);
+
/**
* Gets a portlet by either creating it or returning a handle to it from the portlet 'cache'
*
@@ -50,7 +53,8 @@
Portlet portlet = null;
Class portletClass = null;
String handle = null;
- String portletName = portletDefinition.getName();
+ String portletName = portletDefinition.getId().toString();
+ //String portletName = portletDefinition.getName();
String className = portletDefinition.getClassName();
try
@@ -74,9 +78,9 @@
}
catch (Throwable e)
{
- System.out.println(">>>> Exception Loading Class: " + e);
+ log.error("PortletFactory: Failed to load portlet "+className, e);
e.printStackTrace();
- throw new PortletException( "PortletFactory: Unable to load class " + className );
+ throw new PortletException( "PortletFactory: Failed to load portlet " + className +":"+e.toString(), e);
}
return portlet;
1.3 +20 -1 jakarta-jetspeed-2/commons/src/java/org/apache/jetspeed/cache/PortletCache.java
Index: PortletCache.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/commons/src/java/org/apache/jetspeed/cache/PortletCache.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- PortletCache.java 8 Mar 2004 00:40:36 -0000 1.2
+++ PortletCache.java 4 Jun 2004 02:37:15 -0000 1.3
@@ -16,9 +16,15 @@
package org.apache.jetspeed.cache;
import java.util.HashMap;
+import java.util.Iterator;
import javax.portlet.Portlet;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.pluto.om.portlet.PortletApplicationDefinition;
+import org.apache.pluto.om.portlet.PortletDefinition;
+
/**
* Very Simple Portlet Cache to manage portlets in container
* Keeps only one object instance of a portlet
@@ -33,6 +39,7 @@
public class PortletCache
{
static private HashMap portlets = new HashMap();
+ private static Log log = LogFactory.getLog(PortletCache.class);
/*
* Adds a portlet to the portlet cache. If it exists, replaces it
@@ -69,6 +76,18 @@
{
portlets.remove(portletName);
}
+ }
+
+ static public void removeAll(PortletApplicationDefinition portletApplication)
+ {
+ Iterator itr = portletApplication.getPortletDefinitionList().iterator();
+ log.info("Removing all portlets from cache for PA: "+portletApplication.getId());
+ while(itr.hasNext())
+ {
+ PortletDefinition portlet = (PortletDefinition) itr.next();
+ log.info("Removing portlet "+portlet.getId());
+ remove(portlet.getId().toString());
+ }
}
}
1.8 +12 -1 jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/deployment/impl/DeployPortletAppEventListener.java
Index: DeployPortletAppEventListener.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/deployment/impl/DeployPortletAppEventListener.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DeployPortletAppEventListener.java 9 Mar 2004 19:35:46 -0000 1.7
+++ DeployPortletAppEventListener.java 4 Jun 2004 02:37:15 -0000 1.8
@@ -14,6 +14,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.jetspeed.Jetspeed;
+import org.apache.jetspeed.cache.PortletCache;
import org.apache.jetspeed.components.portletregistry.PortletRegistryComponent;
import org.apache.jetspeed.deployment.DeploymentEvent;
import org.apache.jetspeed.deployment.DeploymentEventListener;
@@ -21,6 +22,7 @@
import org.apache.jetspeed.deployment.fs.FSObjectHandler;
import org.apache.jetspeed.tools.pamanager.Deployment;
import org.apache.jetspeed.tools.pamanager.PortletApplicationException;
+import org.apache.pluto.om.portlet.PortletApplicationDefinition;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.input.SAXBuilder;
@@ -119,6 +121,15 @@
log.warn(msg);
throw new DeploymentException(msg);
}
+
+ PortletRegistryComponent regsitry = (PortletRegistryComponent) Jetspeed.getComponentManager().getComponent(PortletRegistryComponent.class);
+ PortletApplicationDefinition pa = regsitry.getPortletApplicationByIdentifier(paName);
+ if(pa != null)
+ {
+ log.info("Removing a portlets from the PortletCache that belong to portlet application "+paName);
+ PortletCache.removeAll(pa);
+ }
+
log.info("Preparing to undeploy portlet application \""+paName+"\"");
pam.undeploy(webAppDir, paName);
log.info("Portlet application \""+paName+"\""+" was successfuly undeployed.");
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org