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 sh...@apache.org on 2004/09/20 00:28:10 UTC
cvs commit: jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/deployment/impl DeployPortletAppEventListener.java
shinsuke 2004/09/19 15:28:10
Modified: commons/src/java/org/apache/jetspeed/factory
JetspeedPortletFactoryProxy.java
components/portlet-factory/src/java/org/apache/jetspeed/factory
JetspeedPortletFactory.java
jetspeed-api/src/java/org/apache/jetspeed/factory
PortletFactory.java
portal/src/java/org/apache/jetspeed/deployment/impl
DeployPortletAppEventListener.java
Log:
Fixed JS2-122.
http://issues.apache.org/jira/browse/JS2-122
Revision Changes Path
1.3 +4 -3 jakarta-jetspeed-2/commons/src/java/org/apache/jetspeed/factory/JetspeedPortletFactoryProxy.java
Index: JetspeedPortletFactoryProxy.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/commons/src/java/org/apache/jetspeed/factory/JetspeedPortletFactoryProxy.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- JetspeedPortletFactoryProxy.java 19 Aug 2004 17:29:22 -0000 1.2
+++ JetspeedPortletFactoryProxy.java 19 Sep 2004 22:28:10 -0000 1.3
@@ -98,12 +98,13 @@
*
* Adds a ClassLoader to the search path, <code>classLoaders</code>, of the JetspeedPortletFactory.
*
+ * @param paId
* @param cl
*/
- public static void addClassLoader(ClassLoader cl)
+ public static void addClassLoader(String paId, ClassLoader cl)
{
verifyState();
- portletFactory.addClassLoader(cl);
+ portletFactory.addClassLoader(paId, cl);
}
public static void reset()
1.4 +24 -12 jakarta-jetspeed-2/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletFactory.java
Index: JetspeedPortletFactory.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/components/portlet-factory/src/java/org/apache/jetspeed/factory/JetspeedPortletFactory.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JetspeedPortletFactory.java 15 Sep 2004 22:51:02 -0000 1.3
+++ JetspeedPortletFactory.java 19 Sep 2004 22:28:10 -0000 1.4
@@ -16,7 +16,7 @@
package org.apache.jetspeed.factory;
import java.io.FileNotFoundException;
-import java.util.ArrayList;
+import java.util.HashMap;
import java.util.Iterator;
import javax.portlet.Portlet;
@@ -48,8 +48,8 @@
{
private PortletCache portletCache;
- private final ArrayList classLoaders;
private static final Log log = LogFactory.getLog(JetspeedPortletFactory.class);
+ private final HashMap classLoaderMap;
/**
*
@@ -58,7 +58,7 @@
{
super();
this.portletCache = portletCache;
- classLoaders = new ArrayList();
+ classLoaderMap = new HashMap();
}
/**
@@ -71,16 +71,18 @@
*
* @param cl
*/
- public void addClassLoader( ClassLoader cl )
+ public void addClassLoader(String paId, ClassLoader cl)
{
- synchronized(classLoaders)
+ if (paId != null && !paId.equals(""))
{
- if (!classLoaders.contains(cl))
+ synchronized (classLoaderMap)
{
- classLoaders.add(cl);
+ if (classLoaderMap.get(paId) == null)
+ {
+ classLoaderMap.put(paId, cl);
+ }
}
}
-
}
/**
@@ -109,10 +111,10 @@
}
catch (ClassNotFoundException e)
{
- synchronized(classLoaders)
+ synchronized (classLoaderMap)
{
- Iterator itr = classLoaders.iterator();
- while(itr.hasNext() && portlet == null)
+ Iterator itr = classLoaderMap.values().iterator();
+ while (itr.hasNext() && portlet == null)
{
ClassLoader cl = (ClassLoader) itr.next();
try
@@ -155,6 +157,7 @@
String portletName = portletDefinition.getId().toString();
//String portletName = portletDefinition.getName();
String className = portletDefinition.getClassName();
+ String paId = portletDefinition.getPortletApplicationDefinition().getWebApplicationDefinition().getId().toString();
try
{
@@ -172,7 +175,16 @@
throw new FileNotFoundException("Could not located portlet "+className+" in any classloader.");
}
+ ClassLoader cl = (ClassLoader) classLoaderMap.get(paId);
+ if (cl != null)
+ {
+ ((PortletDefinitionCtrl) portletDefinition).setPortletClassLoader(cl);
+ }
+ else
+ {
((PortletDefinitionCtrl) portletDefinition).setPortletClassLoader(portlet.getClass().getClassLoader());
+ }
+
ServletContext servletContext = servletConfig.getServletContext();
PortletContext portletContext =
PortalAccessor.createPortletContext(servletContext,
1.2 +2 -2 jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/factory/PortletFactory.java
Index: PortletFactory.java
===================================================================
RCS file: /home/cvs/jakarta-jetspeed-2/jetspeed-api/src/java/org/apache/jetspeed/factory/PortletFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- PortletFactory.java 1 Aug 2004 15:41:50 -0000 1.1
+++ PortletFactory.java 19 Sep 2004 22:28:10 -0000 1.2
@@ -35,7 +35,7 @@
*/
public interface PortletFactory
{
- void addClassLoader( ClassLoader cl );
+ void addClassLoader(String paId, ClassLoader cl);
Portlet loadPortletClass( String className ) throws InstantiationException, IllegalAccessException;
1.18 +19 -4 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.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- DeployPortletAppEventListener.java 16 Aug 2004 18:31:19 -0000 1.17
+++ DeployPortletAppEventListener.java 19 Sep 2004 22:28:10 -0000 1.18
@@ -21,6 +21,7 @@
import org.apache.jetspeed.deployment.DeploymentException;
import org.apache.jetspeed.deployment.DeploymentObject;
import org.apache.jetspeed.factory.PortletFactory;
+import org.apache.jetspeed.om.common.portlet.MutablePortletApplication;
import org.apache.jetspeed.tools.pamanager.PortletApplicationManagement;
import org.apache.jetspeed.util.DirectoryHelper;
import org.apache.jetspeed.util.FileSystemHelper;
@@ -214,7 +215,9 @@
appNameToFile.put(deploymentObj.getPath(), id);
if (isLocal)
{
- portletFactory.addClassLoader(paWar.createClassloader(getClass().getClassLoader()));
+ portletFactory.addClassLoader(
+ registry.getPortletApplicationByIdentifier(id).getId().toString(),
+ paWar.createClassloader(getClass().getClassLoader()));
}
else
{
@@ -223,7 +226,9 @@
ClassLoader classloader = createPortletClassloader(getClass().getClassLoader(), id);
if (classloader != null)
{
- portletFactory.addClassLoader(classloader);
+ portletFactory.addClassLoader(
+ registry.getPortletApplicationByIdentifier(id).getId().toString(),
+ classloader);
}
}
catch (IOException e1)
@@ -243,7 +248,13 @@
{
log.info(fileName + " will be registered as a local portlet applicaiton.");
pam.register(paWar);
- portletFactory.addClassLoader(paWar.createClassloader(getClass().getClassLoader()));
+ MutablePortletApplication mpa = registry.getPortletApplicationByIdentifier(id);
+ if (mpa != null)
+ {
+ portletFactory.addClassLoader(
+ mpa.getId().toString(),
+ paWar.createClassloader(getClass().getClassLoader()));
+ }
}
else
{
@@ -254,7 +265,11 @@
ClassLoader classloader = createPortletClassloader(getClass().getClassLoader(), id);
if (classloader != null)
{
- portletFactory.addClassLoader(classloader);
+ MutablePortletApplication mpa = registry.getPortletApplicationByIdentifier(id);
+ if (mpa != null)
+ {
+ portletFactory.addClassLoader(mpa.getId().toString(), classloader);
+ }
}
}
catch (IOException e1)
---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: jetspeed-dev-help@jakarta.apache.org