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 at...@apache.org on 2007/12/10 01:26:04 UTC

svn commit: r602760 - in /portals/jetspeed-2/trunk: components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/ jetspeed-api/src/main/java/org/apache/jetspeed/tools/pamanager/ jetspeed-commons/src/main/java/org/apache/jetspeed/container/

Author: ate
Date: Sun Dec  9 16:26:03 2007
New Revision: 602760

URL: http://svn.apache.org/viewvc?rev=602760&view=rev
Log:
Merging patch for JS2-799 made to the 2.1.3 branch by Scott, r593180
See: https://issues.apache.org/jira/browse/JS2-799

Modified:
    portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
    portals/jetspeed-2/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManagement.java
    portals/jetspeed-2/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/container/JetspeedContainerServlet.java

Modified: portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java?rev=602760&r1=602759&r2=602760&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java (original)
+++ portals/jetspeed-2/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java Sun Dec  9 16:26:03 2007
@@ -162,7 +162,7 @@
 		throws RegistryException
 	{
         checkStarted();
-        startPA(contextName, warStruct, paClassLoader, MutablePortletApplication.LOCAL);
+        startPA(contextName, "/"+contextName, warStruct, paClassLoader, MutablePortletApplication.LOCAL);
 	}
 
     public void startInternalApplication(String contextName) throws RegistryException
@@ -178,7 +178,7 @@
             app.setApplicationType(MutablePortletApplication.INTERNAL);
             registry.updatePortletApplication(app);
         }
-        startPA(contextName, dir, contextClassLoader, MutablePortletApplication.INTERNAL);
+        startPA(contextName, "/"+contextName, dir, contextClassLoader, MutablePortletApplication.INTERNAL);
         // startInternal(contextName, warStruct, paClassLoader, true);        
     }
     
@@ -186,18 +186,25 @@
 		ClassLoader paClassLoader)
 		throws RegistryException
 	{
+         startPortletApplication(contextName, "/"+contextName, warStruct, paClassLoader);
+	}
+	
+    public void startPortletApplication(String contextName, String contextPath, FileSystemHelper warStruct,
+            ClassLoader paClassLoader) throws RegistryException
+    {
         checkStarted();
         ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
         Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
         try
         {
-            startPA(contextName, warStruct, paClassLoader, MutablePortletApplication.WEBAPP);
+            startPA(contextName, contextPath, warStruct, paClassLoader, MutablePortletApplication.WEBAPP);
         }
         finally
         {
             Thread.currentThread().setContextClassLoader(contextClassLoader);
         }
-	}
+        
+    }    
 
 	public void stopLocalPortletApplication(String contextName)
 		throws RegistryException
@@ -412,14 +419,14 @@
 		}
 	}
 
-	protected void startPA(String contextName, FileSystemHelper warStruct,
+	protected void startPA(String contextName, String contextPath, FileSystemHelper warStruct,
 	        ClassLoader paClassLoader, int paType)
 	throws RegistryException
 	{
-	    startPA(contextName, warStruct, paClassLoader, paType, 0);
+	    startPA(contextName, contextPath, warStruct, paClassLoader, paType, 0);
 	}
 	
-	protected void startPA(String contextName, FileSystemHelper warStruct,
+	protected void startPA(String contextName, String contextPath, FileSystemHelper warStruct,
 	        ClassLoader paClassLoader, int paType, long checksum)
 	throws RegistryException
 	{
@@ -428,7 +435,8 @@
 		{
             boolean register = true;
             boolean monitored = checksum != 0;
-            paWar = new PortletApplicationWar(warStruct, contextName, "/" + contextName, checksum);
+            // paWar = new PortletApplicationWar(warStruct, contextName, "/" + contextName, checksum);
+            paWar = new PortletApplicationWar(warStruct, contextName, contextPath, checksum);
             try
             {
                 if (paClassLoader == null)
@@ -553,7 +561,7 @@
             DescriptorChangeMonitor changeMonitor = this.monitor;
             if (!monitored && changeMonitor != null)
             {
-                changeMonitor.monitor(contextName,paClassLoader, paType, warStruct.getRootDirectory(), checksum);
+                changeMonitor.monitor(contextName, contextPath, paClassLoader, paType, warStruct.getRootDirectory(), checksum);
             }
 		}
 		finally
@@ -732,6 +740,7 @@
         private static class DescriptorChangeMonitorInfo
         {
             private String contextName;
+            private String contextPath;
             private ClassLoader paClassLoader;
             private int  paType;
             private File paDir;
@@ -749,9 +758,10 @@
                 this.contextName = contextName;
             }
             
-            public DescriptorChangeMonitorInfo(String contextName, ClassLoader paClassLoader, int paType, File paDir, long checksum)
+            public DescriptorChangeMonitorInfo(String contextName, String contextPath, ClassLoader paClassLoader, int paType, File paDir, long checksum)
             {
                 this.contextName = contextName;
+                this.contextPath = contextPath;
                 this.paClassLoader = paClassLoader;
                 this.paType = paType;
                 this.paDir = paDir.isAbsolute() ? paDir : paDir.getAbsoluteFile();
@@ -822,6 +832,11 @@
             {
                 return obsolete;
             }
+
+            public String getContextPath()
+            {
+                return contextPath;
+            }
         }        
 
         private PortletApplicationManager pam;
@@ -872,9 +887,9 @@
             monitorInfos.clear();
         }
         
-        public synchronized void monitor(String contextName, ClassLoader paClassLoader, int paType, File paDir, long checksum)
+        public synchronized void monitor(String contextName, String contextPath, ClassLoader paClassLoader, int paType, File paDir, long checksum)
         {
-            monitorInfos.add(new DescriptorChangeMonitorInfo(contextName, paClassLoader, paType, paDir, checksum));
+            monitorInfos.add(new DescriptorChangeMonitorInfo(contextName, contextPath, paClassLoader, paType, paDir, checksum));
         }
         
         public synchronized void remove(String contextName)
@@ -919,7 +934,7 @@
                                 {
                                     try
                                     {
-                                        pam.startPA(monitorInfo.getContextName(), new DirectoryHelper(monitorInfo.getPADir()),
+                                        pam.startPA(monitorInfo.getContextName(), monitorInfo.getContextPath(), new DirectoryHelper(monitorInfo.getPADir()),
                                                 monitorInfo.getPAClassLoader(), monitorInfo.getPortletApplicationType(), monitorInfo.getChecksum());
                                     }
                                     catch (Exception e)
@@ -938,5 +953,7 @@
                 }
             }
         }        
-    }    
+    }
+
+
 }

Modified: portals/jetspeed-2/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManagement.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManagement.java?rev=602760&r1=602759&r2=602760&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManagement.java (original)
+++ portals/jetspeed-2/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManagement.java Sun Dec  9 16:26:03 2007
@@ -31,6 +31,17 @@
   public static final String LOCAL_PA_PREFIX = "jetspeed-";
   
   public boolean isStarted();
+  /**
+   * Allows deployment to override the default of using the <code>contextName</code> as the
+   * context path.
+   * 
+   * @param contextName
+   * @param contextPath
+   * @param warStruct
+   * @param paClassLoader
+   * @throws RegistryException
+   */
+  void startPortletApplication(String contextName, String contextPath, FileSystemHelper warStruct, ClassLoader paClassLoader) throws RegistryException;
   void startPortletApplication(String contextName, FileSystemHelper warStruct, ClassLoader paClassLoader) throws RegistryException;
   void stopPortletApplication(String contextName) throws RegistryException;
   void startLocalPortletApplication(String contextName, FileSystemHelper warStruct, ClassLoader paClassLoader) throws RegistryException;

Modified: portals/jetspeed-2/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/container/JetspeedContainerServlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/container/JetspeedContainerServlet.java?rev=602760&r1=602759&r2=602760&view=diff
==============================================================================
--- portals/jetspeed-2/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/container/JetspeedContainerServlet.java (original)
+++ portals/jetspeed-2/trunk/jetspeed-commons/src/main/java/org/apache/jetspeed/container/JetspeedContainerServlet.java Sun Dec  9 16:26:03 2007
@@ -59,6 +59,7 @@
     private boolean started = false;
     private Timer   startTimer = null;
     private PortalSessionsManager psm;
+    private String contextPath;
 
     // -------------------------------------------------------------------
     // I N I T I A L I Z A T I O N
@@ -82,14 +83,26 @@
 
             started = false;
             startTimer = null;            
-            contextName = config.getInitParameter("contextName");
+            contextName = config.getInitParameter("contextName");            
+            contextPath = config.getInitParameter("contextPath");
 
             if (null == contextName || contextName.length() == 0)
             {
                 contextName = null; // just to make sure for the destroy method
                 
                 throw new ServletException(JCS + "Portlet Application contextName not supplied in Init Parameters.");
-            }            
+            }
+            
+            if (null == contextPath || contextPath.length() == 0)
+            {
+                contextPath = "/"+contextName;
+            }
+            else if(!contextPath.startsWith("/"))
+            {
+                throw new ServletException(JCS + "Portlet Application contextPath must start with a  \"/\"."); 
+            }
+            
+            
             String paDir = context.getRealPath("/");
             if ( paDir == null )
                 {
@@ -141,7 +154,7 @@
                       {
                         if (startTimer != null)
                         {
-                          if (attemptStart(context, contextName, paDir, paClassLoader)) {
+                          if (attemptStart(context, contextName, contextPath, paDir, paClassLoader)) {
                             startTimer.cancel();
                             startTimer = null;
                         } else {
@@ -156,7 +169,7 @@
                 10000);
     }
 
-    private boolean attemptStart(ServletContext context, String contextPath, String paDir, ClassLoader paClassLoader) 
+    private boolean attemptStart(ServletContext context, String contextName, String contextPath, String paDir, ClassLoader paClassLoader) 
     {
         try
         {
@@ -170,7 +183,7 @@
                 if (pam != null && pam.isStarted())
                 {
                     DirectoryHelper paDirHelper = new DirectoryHelper(new File(paDir));
-                    pam.startPortletApplication(contextPath, paDirHelper, paClassLoader);
+                    pam.startPortletApplication(contextName, contextPath, paDirHelper, paClassLoader);
                     started = true;
                     psm = (PortalSessionsManager)services.getService(PortalSessionsManager.SERVICE_NAME);
 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-dev-help@portals.apache.org