portals-jetspeed-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From tay...@apache.org
Subject svn commit: r545987 - in /portals/jetspeed-2/trunk: components/portal/src/java/org/apache/jetspeed/engine/ components/portal/src/java/org/apache/jetspeed/tools/pamanager/ jetspeed-api/src/java/org/apache/jetspeed/om/common/portlet/ jetspeed-api/src/jav...
Date Mon, 11 Jun 2007 01:46:19 GMT
Author: taylor
Date: Sun Jun 10 18:46:18 2007
New Revision: 545987

URL: http://svn.apache.org/viewvc?view=rev&rev=545987
Log:
https://issues.apache.org/jira/browse/JS2-711
  -- looking into using INTERNAL portlet application type for layouts since we are having
troubles with the class loader and JSP in local portlet apps
  -- patch from Mohan to support configurations of JSP or VM

Modified:
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngine.java
    portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
    portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/om/common/portlet/MutablePortletApplication.java
    portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManagement.java
    portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java
    portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/deployment.xml

Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngine.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngine.java?view=diff&rev=545987&r1=545986&r2=545987
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngine.java
(original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/engine/JetspeedEngine.java
Sun Jun 10 18:46:18 2007
@@ -34,6 +34,7 @@
 import org.apache.jetspeed.request.RequestContext;
 import org.apache.jetspeed.request.RequestContextComponent;
 import org.apache.jetspeed.statistics.PortalStatistics;
+import org.apache.jetspeed.tools.pamanager.PortletApplicationManagement;
 import org.apache.ojb.broker.util.ClassHelper;
 import org.apache.pluto.PortletContainer;
 import org.apache.pluto.PortletContainerException;
@@ -123,6 +124,11 @@
                 // silenty ignore, its not configured
                 // TODO: statistics as an AOP advice
             }
+            // TODO: complete this work for JSP (https://issues.apache.org/jira/browse/JS2-711)
+            // I think config.getServletName is incorrect, need to fix this and change this
name to jetspeed-layouts:: when looking up in registry
+            // but not when dispatching, still trying to figure that out
+            //PortletApplicationManagement pam = (PortletApplicationManagement)componentManager.getComponent("PAM");
+            //pam.startInternalApplication(config.getServletName());                
             
         }
         catch (Throwable e)

Modified: portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java?view=diff&rev=545987&r1=545986&r2=545987
==============================================================================
--- portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
(original)
+++ portals/jetspeed-2/trunk/components/portal/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManager.java
Sun Jun 10 18:46:18 2007
@@ -73,7 +73,7 @@
     protected int  descriptorChangeMonitorInterval = DEFAULT_DESCRIPTOR_CHANGE_MONITOR_INTERVAL;
     protected DescriptorChangeMonitor monitor;
     protected boolean started;
-
+    protected String appRoot;
     protected NodeManager nodeManager;
     
     /**
@@ -82,7 +82,7 @@
 	public PortletApplicationManager(PortletFactory portletFactory, PortletRegistry registry,
 		PortletEntityAccessComponent entityAccess, PortletWindowAccessor windowAccess,
         PermissionManager permissionManager, SearchEngine searchEngine,
-        RoleManager roleManager, List permissionRoles, NodeManager nodeManager)
+        RoleManager roleManager, List permissionRoles, NodeManager nodeManager, String appRoot)
 	{
 		this.portletFactory     = portletFactory;
 		this.registry		    = registry;
@@ -93,6 +93,7 @@
         this.roleManager        = roleManager;        
         this.permissionRoles    = permissionRoles;
         this.nodeManager		= nodeManager;
+        this.appRoot            = appRoot;
 	}
     
     public void start()
@@ -161,9 +162,19 @@
 		throws RegistryException
 	{
         checkStarted();
-        startPA(contextName, warStruct, paClassLoader, true);
+        startPA(contextName, warStruct, paClassLoader, MutablePortletApplication.LOCAL);
 	}
 
+    public void startInternalApplication(String contextName) throws RegistryException
+    {
+        checkStarted();
+        File webinf = new File (appRoot);
+        ClassLoader contextClassLoader = Thread.currentThread().getContextClassLoader();
       
+        DirectoryHelper dir = new DirectoryHelper(webinf);
+        startPA(contextName, dir, contextClassLoader, MutablePortletApplication.INTERNAL);
+        // startInternal(contextName, warStruct, paClassLoader, true);        
+    }
+    
 	public void startPortletApplication(String contextName, FileSystemHelper warStruct,
 		ClassLoader paClassLoader)
 		throws RegistryException
@@ -173,7 +184,7 @@
         Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
         try
         {
-            startPA(contextName, warStruct, paClassLoader, false);
+            startPA(contextName, warStruct, paClassLoader, MutablePortletApplication.WEBAPP);
         }
         finally
         {
@@ -184,7 +195,7 @@
 	public void stopLocalPortletApplication(String contextName)
 		throws RegistryException
 	{
-		stopPA(contextName, true);
+		stopPA(contextName, MutablePortletApplication.LOCAL);
 	}
 
 	public void stopPortletApplication(String contextName)
@@ -194,7 +205,7 @@
         Thread.currentThread().setContextClassLoader(this.getClass().getClassLoader());
         try
         {
-            stopPA(contextName, false);
+            stopPA(contextName, MutablePortletApplication.WEBAPP);
         }
         finally
         {
@@ -245,11 +256,6 @@
         }
 	}
     
-    protected int getApplicationType(boolean local)
-    {
-        return local ?  MutablePortletApplication.LOCAL : MutablePortletApplication.WEBAPP;
-    }
-
 	protected void checkValidContextName(String contextName, boolean local)
 		throws RegistryException
 	{
@@ -272,7 +278,7 @@
 	}
 
 	protected MutablePortletApplication registerPortletApplication(PortletApplicationWar paWar,
-		MutablePortletApplication oldPA, boolean local, ClassLoader paClassLoader)
+		MutablePortletApplication oldPA, int paType, ClassLoader paClassLoader)
 		throws RegistryException
 	{
 		if (oldPA != null)
@@ -289,25 +295,22 @@
 		{
 			log.info("Loading portlet.xml...." + paName);
 			pa = paWar.createPortletApp(paClassLoader);
-
-			if (local)
-			{
-				pa.setApplicationType(MutablePortletApplication.LOCAL);
-			}
-			else
-			{
-				pa.setApplicationType(MutablePortletApplication.WEBAPP);
-			}
+			pa.setApplicationType(paType);
 
 			// load the web.xml
 			log.info("Loading web.xml...." + paName);
 			MutableWebApplication wa = paWar.createWebApp();
 			paWar.validate();
 
-			if (local)
+			if (paType == MutablePortletApplication.LOCAL)
 			{
 				wa.setContextRoot("<portal>");
 			}
+            else if (paType == MutablePortletApplication.INTERNAL)
+            {
+                // TODO: this is screwing up the PSML as its set all over the place to "jetspeed-layouts",
not good
+                wa.setContextRoot("/" + paName);                
+            }
 
 			pa.setWebApplicationDefinition(wa);
             
@@ -390,7 +393,7 @@
 			{
 				try
 				{
-					unregisterPortletApplication(pa, local);
+					unregisterPortletApplication(pa, (paType == MutablePortletApplication.LOCAL));
 				}
 				catch (Exception re)
 				{
@@ -403,14 +406,14 @@
 	}
 
 	protected void startPA(String contextName, FileSystemHelper warStruct,
-	        ClassLoader paClassLoader, boolean local)
+	        ClassLoader paClassLoader, int paType)
 	throws RegistryException
 	{
-	    startPA(contextName, warStruct, paClassLoader, local, 0);
+	    startPA(contextName, warStruct, paClassLoader, paType, 0);
 	}
 	
 	protected void startPA(String contextName, FileSystemHelper warStruct,
-	        ClassLoader paClassLoader, boolean local, long checksum)
+	        ClassLoader paClassLoader, int paType, long checksum)
 	throws RegistryException
 	{
         PortletApplicationWar paWar = null;
@@ -443,16 +446,9 @@
 
             if (pa != null)
             {
-                if ( pa.getApplicationType() != getApplicationType(local) )
+                if ( pa.getApplicationType() != paType )
                 {
-                    if ( local )
-                    {
-                        throw new RegistryException("Cannot start local portlet application
"+contextName+": it is not a local application");
-                    }
-                    else
-                    {
-                        throw new RegistryException("Cannot start portlet application "+contextName+":
it is a local application");
-                    }                    
+                    throw new RegistryException("Cannot start portlet application "+contextName+":
as Application Types don't match: " + pa.getApplicationType() + " != " + paType);
                 }
                 DescriptorChangeMonitor changeMonitor = this.monitor;
                 if (!monitored && changeMonitor != null)
@@ -469,7 +465,7 @@
             		// new
 	                try
 	                {
-	                    pa = registerPortletApplication(paWar, pa, local, paClassLoader);
+	                    pa = registerPortletApplication(paWar, pa, paType, paClassLoader);
 	                }
 	                catch (Exception e)
 	                {
@@ -521,7 +517,7 @@
         				}
         			}
         			if (deploy)
-	                    pa = registerPortletApplication(paWar, pa, local, paClassLoader);
+	                    pa = registerPortletApplication(paWar, pa, paType, paClassLoader);
         			else
         				if (reregister)
         				{
@@ -550,7 +546,7 @@
             DescriptorChangeMonitor changeMonitor = this.monitor;
             if (!monitored && changeMonitor != null)
             {
-                changeMonitor.monitor(contextName,paClassLoader, local, warStruct.getRootDirectory(),
checksum);
+                changeMonitor.monitor(contextName,paClassLoader, paType, warStruct.getRootDirectory(),
checksum);
             }
 		}
 		finally
@@ -569,7 +565,7 @@
 		}
 	}
 
-	protected void stopPA(String contextName, boolean local)
+	protected void stopPA(String contextName, int paType)
 		throws RegistryException
 	{
 		MutablePortletApplication pa = null;
@@ -582,16 +578,9 @@
         {
             // ignore errors during portal shutdown
         }
-        if  (pa != null && pa.getApplicationType() != getApplicationType(local) )
+        if  (pa != null && pa.getApplicationType() != paType) 
         {
-            if ( local )
-            {
-                throw new RegistryException("Cannot stop local portlet application "+contextName+":
it is not a local application");
-            }
-            else
-            {
-                throw new RegistryException("Cannot stop portlet application "+contextName+":
it is a local application");
-            }
+            throw new RegistryException("Cannot stop portlet application "+contextName+":
as Application Types don't match: " + pa.getApplicationType() + " != " + paType);
         }
         DescriptorChangeMonitor monitor = this.monitor;
         if ( monitor != null )
@@ -737,7 +726,7 @@
         {
             private String contextName;
             private ClassLoader paClassLoader;
-            private boolean local;
+            private int  paType;
             private File paDir;
             private File[] descriptors;
             private long descriptorModificationTime;
@@ -753,11 +742,11 @@
                 this.contextName = contextName;
             }
             
-            public DescriptorChangeMonitorInfo(String contextName, ClassLoader paClassLoader,
boolean local, File paDir, long checksum)
+            public DescriptorChangeMonitorInfo(String contextName, ClassLoader paClassLoader,
int paType, File paDir, long checksum)
             {
                 this.contextName = contextName;
                 this.paClassLoader = paClassLoader;
-                this.local = local;
+                this.paType = paType;
                 this.paDir = paDir.isAbsolute() ? paDir : paDir.getAbsoluteFile();
                 this.checksum = checksum;
                 
@@ -780,9 +769,9 @@
                 return paClassLoader;
             }
             
-            public boolean isLocal()
+            public int getPortletApplicationType()
             {
-                return local;
+                return paType;
             }
             
             public File getPADir()
@@ -876,9 +865,9 @@
             monitorInfos.clear();
         }
         
-        public synchronized void monitor(String contextName, ClassLoader paClassLoader, boolean
local, File paDir, long checksum)
+        public synchronized void monitor(String contextName, ClassLoader paClassLoader, int
paType, File paDir, long checksum)
         {
-            monitorInfos.add(new DescriptorChangeMonitorInfo(contextName, paClassLoader,
local, paDir, checksum));
+            monitorInfos.add(new DescriptorChangeMonitorInfo(contextName, paClassLoader,
paType, paDir, checksum));
         }
         
         public synchronized void remove(String contextName)
@@ -924,7 +913,7 @@
                                     try
                                     {
                                         pam.startPA(monitorInfo.getContextName(), new DirectoryHelper(monitorInfo.getPADir()),
-                                                monitorInfo.getPAClassLoader(), monitorInfo.isLocal(),
monitorInfo.getChecksum());
+                                                monitorInfo.getPAClassLoader(), monitorInfo.getPortletApplicationType(),
monitorInfo.getChecksum());
                                     }
                                     catch (Exception e)
                                     {

Modified: portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/om/common/portlet/MutablePortletApplication.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/om/common/portlet/MutablePortletApplication.java?view=diff&rev=545987&r1=545986&r2=545987
==============================================================================
--- portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/om/common/portlet/MutablePortletApplication.java
(original)
+++ portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/om/common/portlet/MutablePortletApplication.java
Sun Jun 10 18:46:18 2007
@@ -139,7 +139,13 @@
      * stored in Jetspeed managed portlet application space.
      */
     public static final int LOCAL = 1;
-        
+
+    /**
+     * Marks this application as a INTERNAL portlet application,
+     * stored in Jetspeed managed portlet application space.
+     */
+    public static final int INTERNAL = 2;
+    
     /**
      * Adds a Jetspeed component service to the collection of component services allowed
for this application.
      * 

Modified: portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManagement.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManagement.java?view=diff&rev=545987&r1=545986&r2=545987
==============================================================================
--- portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManagement.java
(original)
+++ portals/jetspeed-2/trunk/jetspeed-api/src/java/org/apache/jetspeed/tools/pamanager/PortletApplicationManagement.java
Sun Jun 10 18:46:18 2007
@@ -34,6 +34,7 @@
   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;
+  void startInternalApplication(String contextName) throws RegistryException;
   void stopLocalPortletApplication(String contextName) throws RegistryException;
   public void unregisterPortletApplication(String paName) throws RegistryException;
 }

Modified: portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java?view=diff&rev=545987&r1=545986&r2=545987
==============================================================================
--- portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java
(original)
+++ portals/jetspeed-2/trunk/layout-portlets/src/java/org/apache/jetspeed/portlets/layout/LayoutPortlet.java
Sun Jun 10 18:46:18 2007
@@ -17,7 +17,9 @@
 package org.apache.jetspeed.portlets.layout;
 
 import java.io.IOException;
+import java.util.HashMap;
 import java.util.Locale;
+import java.util.Map;
 import java.util.StringTokenizer;
 
 import javax.portlet.ActionRequest;
@@ -84,6 +86,14 @@
     protected PortletWindowAccessor windowAccess;
     protected TemplateLocator decorationLocator;
     
+    //B: mk
+    private Map layoutTemplateProperties = new HashMap();
+    public static final String DEFAULT_TEMPLATE_EXT = ".vm";
+    public static final String TEMPLATE_EXTENSION_KEY = "template.extension";
+    public static final String DEFAULT_TEMPLATE_TYPE = "velocity";
+    public static final String TEMPLATE_TYPE_KEY = "template.type";
+    
+    //E: mk
     public void init( PortletConfig config ) throws PortletException
     {
         super.init(config);
@@ -118,7 +128,6 @@
         
         templateLocator = (TemplateLocator) getPortletContext().getAttribute("TemplateLocator");
         decorationLocator = (TemplateLocator) getPortletContext().getAttribute("DecorationLocator");
-        
     }
 
     public void doHelp( RenderRequest request, RenderResponse response ) throws PortletException,
IOException
@@ -146,9 +155,10 @@
                 }
                 
 
-                // TODO: Need to retreive layout.properties instead of
-                // hard-coding ".vm"
-                absHelpPage = jpt.getTemplate(helpPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE
+ "-help.vm",
+                //Mohan: closed task
+                Configuration props = getConfiguration(request, helpPage);
+                String ext = (String) props.getString(TEMPLATE_EXTENSION_KEY);
+                absHelpPage = jpt.getTemplate(helpPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE
+ "-help" + ext,
                         JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAppRelativePath();
                 log.debug("Path to help page for LayoutPortlet " + absHelpPage);
                 request.setAttribute(PARAM_VIEW_PAGE, absHelpPage);
@@ -227,9 +237,13 @@
                             viewPage = "columns";
                     }
                 }
-                // TODO: Need to retrieve layout.properties instead of
-                // hard-coding ".vm"
-                absViewPage = jpt.getTemplate(viewPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE
+ ".vm",
+                
+                //Mohan: closed task
+                Configuration props = getConfiguration(request, viewPage);
+                String ext = (String) props.getString(TEMPLATE_EXTENSION_KEY);
+
+                
+                absViewPage = jpt.getTemplate(viewPage + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE
+ ext,
                         JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAppRelativePath();
                 log.debug("Path to view page for LayoutPortlet " + absViewPage);
                 request.setAttribute(PARAM_VIEW_PAGE, absViewPage);
@@ -585,4 +599,101 @@
             throw e;
         }
     }
+
+    /**
+     * Gets the configuration (layout.properties) object for the decoration.
+     * @param name Name of the Decoration.
+     * @return <code>java.util.Properties</code> representing the configuration
+     * object.
+     */
+    protected Configuration getConfiguration( RenderRequest request, String name )
+    {
+        Configuration props = null;
+        JetspeedPowerTool jpt = null;
+        String templatePropertiesPath = null;
+        String key = name;
+        try
+        {
+            jpt = getJetspeedPowerTool(request);
+            templatePropertiesPath = jpt.getTemplate(name + "/" + JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE
+ ".properties",
+                    JetspeedPowerTool.LAYOUT_TEMPLATE_TYPE).getAbsolutePath();
+        } 
+        catch (PortletException e)
+        {
+            log.warn("Could not acquire JetspeedPowerTool from request",e);
+        }
+        catch (TemplateLocatorException e)
+        {
+            log.warn("Could not find templatePorpertiesPath",e);
+        }
+        catch (Exception e)
+        {
+            log.warn("Could not determine Layout template properties file",e);
+        }
+        // if no path then set name to "default"
+        if (null == templatePropertiesPath)
+        {
+            key = "default";
+        }
+        else
+        {
+            key = templatePropertiesPath;
+        }
+        props = (Configuration)this.layoutTemplateProperties.get(key);
+        
+        if ( props != null )
+        {
+            return props;
+        }
+        if (log.isDebugEnabled()){
+            log.debug(
+                    "Template descriptor path:<" + templatePropertiesPath + ">"
+            );
+        }
+
+        // load Decoration.CONFIG_FILE_NAME (layout.properties)
+        try
+        {
+            props = new PropertiesConfiguration(templatePropertiesPath);
+            if (log.isDebugEnabled())
+                log.debug("Successfully read in: <" + templatePropertiesPath + "> ");
+        } 
+        catch (Exception e)
+        {
+            props = new PropertiesConfiguration();
+            log.warn( "Could not locate the " + templatePropertiesPath + " file for layout
template \"" + name + "\".  This layout template may not exist.",e );
+            props.setProperty( "id", name );
+            props.setProperty( TEMPLATE_TYPE_KEY, DEFAULT_TEMPLATE_TYPE );
+            props.setProperty( TEMPLATE_EXTENSION_KEY, DEFAULT_TEMPLATE_EXT);
+        }
+        finally
+        {
+            String templateIdPropVal = (String) props.getProperty( "id" );
+            String templateNamePropVal = (String) props.getProperty( TEMPLATE_TYPE_KEY );
+            String templateExtPropVal = (String) props.getProperty(TEMPLATE_EXTENSION_KEY);
+            
+            if ( templateIdPropVal == null )
+            {
+                templateIdPropVal = name;
+                props.setProperty( "id", templateIdPropVal );
+            }
+            
+            if ( templateNamePropVal == null )
+            {
+                props.setProperty( TEMPLATE_TYPE_KEY, DEFAULT_TEMPLATE_TYPE );
+            }
+            if ( templateExtPropVal == null )
+            {
+                props.setProperty( TEMPLATE_EXTENSION_KEY, DEFAULT_TEMPLATE_EXT );
+            }
+        }
+
+        this.layoutTemplateProperties.put(key, props);
+        if (log.isDebugEnabled())
+        {
+            log.debug("Template layout.properties extension is:<" + props.getString(TEMPLATE_EXTENSION_KEY));
+        }
+        return props;
+    }
+
 }

Modified: portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/deployment.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/deployment.xml?view=diff&rev=545987&r1=545986&r2=545987
==============================================================================
--- portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/deployment.xml (original)
+++ portals/jetspeed-2/trunk/src/webapp/WEB-INF/assembly/deployment.xml Sun Jun 10 18:46:18
2007
@@ -54,12 +54,19 @@
        </constructor-arg>
   	   <constructor-arg><ref bean="org.apache.jetspeed.cluster.NodeManager"/></constructor-arg>
                    
 
+       <!--  application root -->
+        <constructor-arg>
+            <value>${applicationRoot}</value>
+        </constructor-arg>
+
+
    <!-- optional configuration for automatic creation of not yet existing roles as defined
in the deployed web.xml:
        <property name="autoCreateRoles"><value>true</value></property>
    -->      
    <!-- optional descriptor change monitor check interval in seconds (0: disabled, default:
10):
        <property name="descriptorChangeMonitorInterval"><value>10</value></property>
    -->      
+   		
   </bean>
 
   <!-- Portlet Application and Decorator deployment event listeners -->



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


Mime
View raw message