[jboss-svn-commits] JBL Code SVN: r9561 - in labs/jbosslabs/trunk/portal-extensions: forge-mapper/src/java/org/jboss/labs/mapper and 1 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Feb 16 16:13:39 EST 2007


Author: adamw
Date: 2007-02-16 16:13:38 -0500 (Fri, 16 Feb 2007)
New Revision: 9561

Added:
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsBaseCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsProjectsCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsBaseCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCmsCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsMainCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPagesCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactoryImpl.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsPagesCommandFactory.java
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/PathParser.java
Removed:
   labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java
Modified:
   labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml
   labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml
Log:
http://jira.jboss.com/jira/browse/JBLAB-837

Modified: labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml	2007-02-16 20:07:42 UTC (rev 9560)
+++ labs/jbosslabs/trunk/portal-extensions/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml	2007-02-16 21:13:38 UTC (rev 9561)
@@ -24,1134 +24,1190 @@
 
 <server>
 
-    <!-- Server configuration service -->
-    <mbean
-            code="org.jboss.portal.server.config.ServerConfigService"
-            name="portal:service=ServerConfig"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="ConfigLocation">conf/config.xml</attribute>
-    </mbean>
+   <!-- Server configuration service -->
+   <mbean
+      code="org.jboss.portal.server.config.ServerConfigService"
+      name="portal:service=ServerConfig"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="ConfigLocation">conf/config.xml</attribute>
+   </mbean>
 
-    <mbean
-            code="org.jboss.portal.server.impl.xml.EntityResolverService"
-            name="portal:service=EntityResolver"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="DTDMapping">
-            <properties>
-                <entry key="-//JBoss Portal//DTD JBoss Portlet 2.6//EN">dtd/jboss-portlet_2_6.dtd</entry>
-                <entry key="-//JBoss Portal//DTD JBoss App 2.6//EN">dtd/jboss-app_2_6.dtd</entry>
-                <entry key="-//JBoss Portal//DTD Portal Object 2.6//EN">dtd/portal-object_2_6.dtd</entry>
-                <entry key="-//JBoss Portal//DTD Portlet Instances 2.6//EN">dtd/portlet-instances_2_6.dtd</entry>
-            </properties>
-        </attribute>
-    </mbean>
+   <mbean
+      code="org.jboss.portal.server.impl.xml.EntityResolverService"
+      name="portal:service=EntityResolver"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="DTDMapping">
+         <properties>
+            <entry key="-//JBoss Portal//DTD JBoss Portlet 2.6//EN">dtd/jboss-portlet_2_6.dtd</entry>
+            <entry key="-//JBoss Portal//DTD JBoss App 2.6//EN">dtd/jboss-app_2_6.dtd</entry>
+            <entry key="-//JBoss Portal//DTD Portal Object 2.6//EN">dtd/portal-object_2_6.dtd</entry>
+            <entry key="-//JBoss Portal//DTD Portlet Instances 2.6//EN">dtd/portlet-instances_2_6.dtd</entry>
+         </properties>
+      </attribute>
+   </mbean>
 
-    <!-- Portal security services-->
-    <mbean
-            code="org.jboss.portal.security.impl.JBossAuthorizationDomainRegistryImpl"
-            name="portal:service=AuthorizationDomainRegistry"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManagerFactory"
-            name="portal:service=PortalAuthorizationManagerFactory"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="AuthorizationDomainRegistry"
-                proxy-type="attribute">portal:service=AuthorizationDomainRegistry</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.impl.security.JBossPortletSecurityService"
-            name="portal:service=PortletSecurityService"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="PortalAuthorizationManagerFactory"
-                proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
-        <depends
-                optional-attribute-name="AuthorizationDomainRegistry"
-                proxy-type="attribute">portal:service=AuthorizationDomainRegistry</depends>
-    </mbean>
+   <!-- Portal security services-->
+   <mbean
+      code="org.jboss.portal.security.impl.JBossAuthorizationDomainRegistryImpl"
+      name="portal:service=AuthorizationDomainRegistry"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/> 
+   </mbean>
+   <mbean
+      code="org.jboss.portal.security.impl.jacc.JACCPortalAuthorizationManagerFactory"
+      name="portal:service=PortalAuthorizationManagerFactory"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="AuthorizationDomainRegistry"
+         proxy-type="attribute">portal:service=AuthorizationDomainRegistry</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.impl.security.JBossPortletSecurityService"
+      name="portal:service=PortletSecurityService"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+	   <depends
+         optional-attribute-name="PortalAuthorizationManagerFactory"
+         proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
+      <depends
+         optional-attribute-name="AuthorizationDomainRegistry"
+         proxy-type="attribute">portal:service=AuthorizationDomainRegistry</depends>
+   </mbean>
 
-    <!-- Server stack -->
-    <mbean
-            code="org.jboss.portal.core.aspects.server.TransactionInterceptor"
-            name="portal:service=Interceptor,type=Server,name=Transaction"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.server.aspects.server.SessionInvalidatorInterceptor"
-            name="portal:service=Interceptor,type=Server,name=SessionInvalidator"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.aspects.server.UserInterceptor"
-            name="portal:service=Interceptor,type=Server,name=User"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends>portal:service=Module,type=IdentityServiceController</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.aspects.server.LocaleInterceptor"
-            name="portal:service=Interceptor,type=Server,name=Locale"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.server.aspects.server.ContentTypeInterceptor"
-            name="portal:service=Interceptor,type=Server,name=ContentType"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.server.impl.invocation.JBossInterceptorStackFactory"
-            name="portal:service=InterceptorStackFactory,type=Server"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends-list optional-attribute-name="InterceptorNames">
-            <depends-list-element>portal:service=Interceptor,type=Server,name=Transaction</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Server,name=SessionInvalidator</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Server,name=User</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Server,name=Locale</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Server,name=ContentType</depends-list-element>
-        </depends-list>
-    </mbean>
+   <!-- Server stack -->
+   <mbean
+      code="org.jboss.portal.core.aspects.server.TransactionInterceptor"
+      name="portal:service=Interceptor,type=Server,name=Transaction"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.server.aspects.server.SessionInvalidatorInterceptor"
+      name="portal:service=Interceptor,type=Server,name=SessionInvalidator"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.aspects.server.UserInterceptor"
+      name="portal:service=Interceptor,type=Server,name=User"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>portal:service=Module,type=IdentityServiceController</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.aspects.server.LocaleInterceptor"
+      name="portal:service=Interceptor,type=Server,name=Locale"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.server.aspects.server.ContentTypeInterceptor"
+      name="portal:service=Interceptor,type=Server,name=ContentType"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.server.impl.invocation.JBossInterceptorStackFactory"
+      name="portal:service=InterceptorStackFactory,type=Server"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends-list optional-attribute-name="InterceptorNames">
+         <depends-list-element>portal:service=Interceptor,type=Server,name=Transaction</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Server,name=SessionInvalidator</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Server,name=User</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Server,name=Locale</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Server,name=ContentType</depends-list-element>
+      </depends-list>
+   </mbean>
 
-    <!-- Command stack -->
-    <mbean
-            code="org.jboss.portal.core.aspects.controller.node.PortalNodeInterceptor"
-            name="portal:service=Interceptor,type=Command,name=PortalNode"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor"
-            name="portal:service=Interceptor,type=Command,name=PolicyEnforcement"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.aspects.controller.PageCustomizerInterceptor"
-            name="portal:service=Interceptor,type=Command,name=PageCustomizer"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="PortalAuthorizationManagerFactory"
-                proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.controller.ajax.AjaxInterceptor"
-            name="portal:service=Interceptor,type=Command,name=Ajax"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.aspects.controller.node.EventBroadcasterInterceptor"
-            name="portal:service=Interceptor,type=Command,name=EventBroadcaster"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="ListenerRegistry"
-                proxy-type="attribute">portal:service=ListenerRegistry</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.server.impl.invocation.JBossInterceptorStackFactory"
-            name="portal:service=InterceptorStackFactory,type=Command"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends-list optional-attribute-name="InterceptorNames">
-            <depends-list-element>portal:service=Interceptor,type=Command,name=PortalNode</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Command,name=PolicyEnforcement</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Command,name=PageCustomizer</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Command,name=Ajax</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Command,name=EventBroadcaster</depends-list-element>
-        </depends-list>
-    </mbean>
+   <!-- Command stack -->
+   <mbean
+      code="org.jboss.portal.core.aspects.controller.node.PortalNodeInterceptor"
+      name="portal:service=Interceptor,type=Command,name=PortalNode"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.aspects.controller.PolicyEnforcementInterceptor"
+      name="portal:service=Interceptor,type=Command,name=PolicyEnforcement"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.aspects.controller.PageCustomizerInterceptor"
+      name="portal:service=Interceptor,type=Command,name=PageCustomizer"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="PortalAuthorizationManagerFactory"
+         proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.controller.ajax.AjaxInterceptor"
+      name="portal:service=Interceptor,type=Command,name=Ajax"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.aspects.controller.node.EventBroadcasterInterceptor"
+      name="portal:service=Interceptor,type=Command,name=EventBroadcaster"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="ListenerRegistry"
+         proxy-type="attribute">portal:service=ListenerRegistry</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.server.impl.invocation.JBossInterceptorStackFactory"
+      name="portal:service=InterceptorStackFactory,type=Command"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends-list optional-attribute-name="InterceptorNames">
+         <depends-list-element>portal:service=Interceptor,type=Command,name=PortalNode</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Command,name=PolicyEnforcement</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Command,name=PageCustomizer</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Command,name=Ajax</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Command,name=EventBroadcaster</depends-list-element>
+      </depends-list>
+   </mbean>
 
-    <!-- Instance stack -->
-    <mbean
-            code="org.jboss.portal.core.model.instance.InstanceSecurityInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=InstanceSecurity"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends optional-attribute-name="PortalAuthorizationManagerFactory" proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.aspects.portlet.ConsumerCacheInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=ConsumerCache"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.aspects.portlet.PortalSessionSynchronizationInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=PortalSessionSynchronization"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.server.impl.invocation.JBossInterceptorStackFactory"
-            name="portal:service=InterceptorStackFactory,type=Instance"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends-list optional-attribute-name="InterceptorNames">
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=ConsumerCache</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=InstanceSecurity</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=PortalSessionSynchronization</depends-list-element>
-        </depends-list>
-    </mbean>
+   <!-- Instance stack -->
+   <mbean
+      code="org.jboss.portal.core.model.instance.InstanceSecurityInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=InstanceSecurity"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends optional-attribute-name="PortalAuthorizationManagerFactory" proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.aspects.portlet.ConsumerCacheInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=ConsumerCache"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.aspects.portlet.PortalSessionSynchronizationInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=PortalSessionSynchronization"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.server.impl.invocation.JBossInterceptorStackFactory"
+      name="portal:service=InterceptorStackFactory,type=Instance"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends-list optional-attribute-name="InterceptorNames">
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=ConsumerCache</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=InstanceSecurity</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=PortalSessionSynchronization</depends-list-element>
+      </depends-list>
+   </mbean>
 
-    <!-- Producer stack -->
-    <mbean
-            code="org.jboss.portal.portlet.aspects.portlet.ValveInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=Valve"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.aspects.portlet.ContextTrackerInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=ContextTracker"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.aspects.portlet.SecureTransportInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=SecureTransport"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.aspects.portlet.ContextDispatcherInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=ContextDispatcher"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.aspects.portlet.PortletSessionSynchronizationInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=PortletSessionSynchronization"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.bridge.BridgeInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=Bridge"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.aspects.portlet.WindowStatesInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=WindowStates"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.aspects.portlet.ModesInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=Modes"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.aspects.portlet.ProducerCacheInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=ProducerCache"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.aspects.portlet.TransactionInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=Transaction"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.aspects.portlet.HeaderInterceptor"
-            name="portal:service=Interceptor,type=Portlet,name=Header"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.server.impl.invocation.JBossInterceptorStackFactory"
-            name="portal:service=InterceptorStackFactory,type=Producer"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends-list optional-attribute-name="InterceptorNames">
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=Valve</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=SecureTransport</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=ContextDispatcher</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=ContextTracker</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=PortletSessionSynchronization</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=WindowStates</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=Bridge</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=Modes</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=ProducerCache</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=Header</depends-list-element>
-            <depends-list-element>portal:service=Interceptor,type=Portlet,name=Transaction</depends-list-element>
-        </depends-list>
-    </mbean>
+   <!-- Producer stack -->
+   <mbean
+      code="org.jboss.portal.portlet.aspects.portlet.ValveInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=Valve"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.aspects.portlet.ContextTrackerInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=ContextTracker"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.aspects.portlet.SecureTransportInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=SecureTransport"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.aspects.portlet.ContextDispatcherInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=ContextDispatcher"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.aspects.portlet.PortletSessionSynchronizationInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=PortletSessionSynchronization"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.bridge.BridgeInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=Bridge"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.aspects.portlet.WindowStatesInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=WindowStates"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.aspects.portlet.ModesInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=Modes"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.aspects.portlet.ProducerCacheInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=ProducerCache"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.aspects.portlet.TransactionInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=Transaction"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.aspects.portlet.HeaderInterceptor"
+      name="portal:service=Interceptor,type=Portlet,name=Header"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.server.impl.invocation.JBossInterceptorStackFactory"
+      name="portal:service=InterceptorStackFactory,type=Producer"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends-list optional-attribute-name="InterceptorNames">
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=Valve</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=SecureTransport</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=ContextDispatcher</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=ContextTracker</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=PortletSessionSynchronization</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=WindowStates</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=Bridge</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=Modes</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=ProducerCache</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=Header</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Portlet,name=Transaction</depends-list-element>
+      </depends-list>
+   </mbean>
 
-    <!-- Theme and layout services -->
-    <mbean
-            code="org.jboss.portal.theme.impl.ThemeServiceImpl"
-            name="portal:service=ThemeService"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.theme.impl.LayoutServiceImpl"
-            name="portal:service=LayoutService"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.theme.impl.page.PageServiceImpl"
-            name="portal:service=PageService"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="LayoutService"
-                proxy-type="attribute">portal:service=LayoutService</depends>
-        <depends
-                optional-attribute-name="ThemeService"
-                proxy-type="attribute">portal:service=ThemeService</depends>
-    </mbean>
+   <!-- Theme and layout services -->
+   <mbean
+      code="org.jboss.portal.theme.impl.ThemeServiceImpl"
+      name="portal:service=ThemeService"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.theme.impl.LayoutServiceImpl"
+      name="portal:service=LayoutService"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.theme.impl.page.PageServiceImpl"
+      name="portal:service=PageService"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="LayoutService"
+         proxy-type="attribute">portal:service=LayoutService</depends>
+      <depends
+         optional-attribute-name="ThemeService"
+         proxy-type="attribute">portal:service=ThemeService</depends>
+   </mbean>
 
-    <!--
-       | Uncomment in clustered mode : replicated cache for hibernate
+   <!--
+      | Uncomment in clustered mode : replicated cache for hibernate
+      
+      <mbean
+      code="org.jboss.cache.TreeCache"
+      name="portal:service=TreeCache,type=hibernate">
+      <depends>jboss:service=Naming</depends>
+      <depends>jboss:service=TransactionManager</depends>
+      <attribute name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>
+      <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
+      <attribute name="CacheMode">REPL_SYNC</attribute>
+      <attribute name="ClusterName">portal.hibernate</attribute>
+      </mbean>
+      
+      <mbean
+      code="org.jboss.portal.jems.hibernate.JBossTreeCacheProvider"
+      name="portal:service=TreeCacheProvider,type=hibernate">
+      <depends optional-attribute-name="CacheName">portal:service=TreeCache,type=hibernate</depends>
+      </mbean>
+   
+   -->
 
-       <mbean
-       code="org.jboss.cache.TreeCache"
-       name="portal:service=TreeCache,type=hibernate">
-       <depends>jboss:service=Naming</depends>
-       <depends>jboss:service=TransactionManager</depends>
-       <attribute name="TransactionManagerLookupClass">org.jboss.cache.JBossTransactionManagerLookup</attribute>
-       <attribute name="IsolationLevel">REPEATABLE_READ</attribute>
-       <attribute name="CacheMode">REPL_SYNC</attribute>
-       <attribute name="ClusterName">portal.hibernate</attribute>
-       </mbean>
+   <!-- Session factories -->
+   <mbean
+      code="org.jboss.portal.jems.hibernate.SessionFactoryBinder"
+      name="portal:service=Hibernate"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>
+      <!-- Uncomment in clustered mode : hibernate depends on its tree cache service 
+         <depends>portal:service=TreeCacheProvider,type=hibernate</depends>
+       -->
+      <attribute name="DoChecking">true</attribute>
+      <attribute name="ConfigLocation">conf/hibernate/user/hibernate.cfg.xml</attribute>
+      <attribute name="SetupLocation">conf/hibernate/user/setup.txt</attribute>
+      <attribute name="JNDIName">java:/portal/IdentitySessionFactory</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.jems.hibernate.SessionFactoryBinder"
+      name="portal:service=Hibernate,type=Instance"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>
+      <depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>
+      <!-- Uncomment in clustered mode : hibernate depends on its tree cache service 
+         <depends>portal:service=TreeCacheProvider,type=hibernate</depends>
+       -->
+      <attribute name="DoChecking">true</attribute>
+      <attribute name="ConfigLocation">conf/hibernate/instance/hibernate.cfg.xml</attribute>
+      <attribute name="JNDIName">java:/portal/InstanceSessionFactory</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.jems.hibernate.SessionFactoryBinder"
+      name="portal:service=Hibernate,type=PortalObject"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>
+      <!-- Uncomment in clustered mode : hibernate depends on its tree cache service 
+         <depends>portal:service=TreeCacheProvider,type=hibernate</depends>
+       -->
+      <attribute name="DoChecking">true</attribute>
+      <attribute name="ConfigLocation">conf/hibernate/portal/hibernate.cfg.xml</attribute>
+      <attribute name="JNDIName">java:/portal/PortalObjectSessionFactory</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.jems.hibernate.SessionFactoryBinder"
+      name="portal:service=Hibernate,type=Portlet"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>
+      <!-- Uncomment in clustered mode : hibernate depends on its tree cache service 
+         <depends>portal:service=TreeCacheProvider,type=hibernate</depends>
+       -->
+      <attribute name="DoChecking">true</attribute>
+      <attribute name="ConfigLocation">conf/hibernate/portlet/hibernate.cfg.xml</attribute>
+      <attribute name="JNDIName">java:/portal/PortletSessionFactory</attribute>
+   </mbean>
 
-       <mbean
-       code="org.jboss.portal.jems.hibernate.JBossTreeCacheProvider"
-       name="portal:service=TreeCacheProvider,type=hibernate">
-       <depends optional-attribute-name="CacheName">portal:service=TreeCache,type=hibernate</depends>
-       </mbean>
+   <!--Identity-->
+   <mbean
+      code="org.jboss.portal.identity.IdentityServiceControllerImpl"
+      name="portal:service=Module,type=IdentityServiceController"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>portal:service=Hibernate</depends>
+      <!--<depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>-->
+      <attribute name="JndiName">java:/portal/IdentityServiceController</attribute>
+      <attribute name="RegisterMBeans">true</attribute>
+      <attribute name="ConfigFile">conf/identity/identity-config.xml</attribute>
+      <attribute name="DefaultConfigFile">conf/identity/standardidentity-config.xml</attribute>
+   </mbean>
 
-    -->
+   <mbean
+      code="org.jboss.portal.core.impl.mail.MailModuleImpl"
+      name="portal:service=Module,type=Mail"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>jboss:service=Mail</depends>
+      <depends>portal:service=Module,type=IdentityServiceController</depends>
+      <attribute name="QueueCapacity">-1</attribute>
+      <attribute name="Gateway">localhost</attribute>
+      <attribute name="SmtpUser"></attribute>
+      <attribute name="SmtpPassword"></attribute>
+      <attribute name="JavaMailDebugEnabled">false</attribute>
+      <attribute name="SMTPConnectionTimeout">100000</attribute>
+      <attribute name="SMTPTimeout">10000</attribute>
+      <attribute name="JNDIName">java:portal/MailModule</attribute>
+   </mbean>
 
-    <!-- Session factories -->
-    <mbean
-            code="org.jboss.portal.jems.hibernate.SessionFactoryBinder"
-            name="portal:service=Hibernate"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>
-        <!-- Uncomment in clustered mode : hibernate depends on its tree cache service
-          <depends>portal:service=TreeCacheProvider,type=hibernate</depends>
-        -->
-        <attribute name="DoChecking">true</attribute>
-        <attribute name="ConfigLocation">conf/hibernate/user/hibernate.cfg.xml</attribute>
-        <attribute name="SetupLocation">conf/hibernate/user/setup.txt</attribute>
-        <attribute name="JNDIName">java:/portal/IdentitySessionFactory</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.jems.hibernate.SessionFactoryBinder"
-            name="portal:service=Hibernate,type=Instance"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>
-        <depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>
-        <!-- Uncomment in clustered mode : hibernate depends on its tree cache service
-          <depends>portal:service=TreeCacheProvider,type=hibernate</depends>
-        -->
-        <attribute name="DoChecking">true</attribute>
-        <attribute name="ConfigLocation">conf/hibernate/instance/hibernate.cfg.xml</attribute>
-        <attribute name="JNDIName">java:/portal/InstanceSessionFactory</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.jems.hibernate.SessionFactoryBinder"
-            name="portal:service=Hibernate,type=PortalObject"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>
-        <!-- Uncomment in clustered mode : hibernate depends on its tree cache service
-          <depends>portal:service=TreeCacheProvider,type=hibernate</depends>
-        -->
-        <attribute name="DoChecking">true</attribute>
-        <attribute name="ConfigLocation">conf/hibernate/portal/hibernate.cfg.xml</attribute>
-        <attribute name="JNDIName">java:/portal/PortalObjectSessionFactory</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.jems.hibernate.SessionFactoryBinder"
-            name="portal:service=Hibernate,type=Portlet"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>
-        <!-- Uncomment in clustered mode : hibernate depends on its tree cache service
-          <depends>portal:service=TreeCacheProvider,type=hibernate</depends>
-        -->
-        <attribute name="DoChecking">true</attribute>
-        <attribute name="ConfigLocation">conf/hibernate/portlet/hibernate.cfg.xml</attribute>
-        <attribute name="JNDIName">java:/portal/PortletSessionFactory</attribute>
-    </mbean>
+   <mbean
+      code="org.jboss.security.auth.login.DynamicLoginConfig"
+      name="portal:service=JAASLoginModule">
+      <depends optional-attribute-name="LoginConfigService">jboss.security:service=XMLLoginConfig</depends>
+      <depends optional-attribute-name="SecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
+      <attribute name="AuthConfig">conf/login-config.xml</attribute>
+   </mbean>
 
-    <!--Identity-->
-    <mbean
-            code="org.jboss.portal.identity.IdentityServiceControllerImpl"
-            name="portal:service=Module,type=IdentityServiceController"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends>portal:service=Hibernate</depends>
-        <!--<depends>jboss.jca:service=DataSourceBinding,name=PortalDS</depends>-->
-        <attribute name="JndiName">java:/portal/IdentityServiceController</attribute>
-        <attribute name="RegisterMBeans">true</attribute>
-        <attribute name="ConfigFile">conf/identity/identity-config.xml</attribute>
-        <attribute name="DefaultConfigFile">conf/identity/standardidentity-config.xml</attribute>
-    </mbean>
+   <!-- Registries -->
+   <mbean
+      code="org.jboss.portal.portlet.container.PortletApplicationRegistryImpl"
+      name="portal:service=WebAppRegistry"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
 
-    <mbean
-            code="org.jboss.portal.core.impl.mail.MailModuleImpl"
-            name="portal:service=Module,type=Mail"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends>jboss:service=Mail</depends>
-        <depends>portal:service=Module,type=IdentityServiceController</depends>
-        <attribute name="QueueCapacity">-1</attribute>
-        <attribute name="Gateway">localhost</attribute>
-        <attribute name="SmtpUser"></attribute>
-        <attribute name="SmtpPassword"></attribute>
-        <attribute name="JavaMailDebugEnabled">false</attribute>
-        <attribute name="SMTPConnectionTimeout">100000</attribute>
-        <attribute name="SMTPTimeout">10000</attribute>
-        <attribute name="JNDIName">java:portal/MailModule</attribute>
-    </mbean>
+   <!-- Listener registry -->
+   <mbean
+      code="org.jboss.portal.core.event.PortalEventListenerRegistryImpl"
+      name="portal:service=ListenerRegistry"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
 
-    <mbean
-            code="org.jboss.security.auth.login.DynamicLoginConfig"
-            name="portal:service=JAASLoginModule">
-        <depends optional-attribute-name="LoginConfigService">jboss.security:service=XMLLoginConfig</depends>
-        <depends optional-attribute-name="SecurityManagerService">jboss.security:service=JaasSecurityManager</depends>
-        <attribute name="AuthConfig">conf/login-config.xml</attribute>
-    </mbean>
+   <!-- The different containers -->
+   <mbean
+      code="org.jboss.portal.core.impl.model.instance.PersistentInstanceContainer"
+      name="portal:container=Instance"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>portal:service=Hibernate,type=Instance</depends>
+      <depends
+         optional-attribute-name="StackFactory"
+         proxy-type="attribute">portal:service=InterceptorStackFactory,type=Instance</depends>
+      <depends
+         optional-attribute-name="PortletInvoker"
+         proxy-type="attribute">portal:service=PortletInvoker,type=Federating</depends>
+      <depends
+         optional-attribute-name="PortalAuthorizationManagerFactory"
+         proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
+      <depends
+         optional-attribute-name="AuthorizationDomainRegistry"
+         proxy-type="attribute">portal:service=AuthorizationDomainRegistry</depends>
+      <attribute name="SessionFactoryJNDIName">java:/portal/InstanceSessionFactory</attribute>
+      <attribute name="CacheNaturalId">true</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer"
+      name="portal:container=PortalObject"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>portal:service=Hibernate,type=PortalObject</depends>
+	   <depends
+         optional-attribute-name="PortalAuthorizationManagerFactory"
+         proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
+      <depends
+         optional-attribute-name="AuthorizationDomainRegistry"
+         proxy-type="attribute">portal:service=AuthorizationDomainRegistry</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+      <attribute name="SessionFactoryJNDIName">java:/portal/PortalObjectSessionFactory</attribute>
+      <attribute name="CacheNaturalId">true</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.impl.model.content.portlet.PortletContentHandler"
+      name="portal:service=ContentHandler,type=portlet"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+      <attribute name="ContentType">portlet</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.impl.model.content.cms.CMSContentHandler"
+      name="portal:service=ContentHandler,type=cms"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <attribute name="ContentType">cms</attribute>
+   </mbean>
 
-    <!-- Registries -->
-    <mbean
-            code="org.jboss.portal.portlet.container.PortletApplicationRegistryImpl"
-            name="portal:service=WebAppRegistry"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
+   <!-- Customization manager -->
+   <mbean
+      code="org.jboss.portal.core.impl.model.CustomizationManagerService"
+      name="portal:service=CustomizationManager"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+	   <depends
+         optional-attribute-name="PortalAuthorizationManagerFactory"
+         proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+      <depends
+         optional-attribute-name="PortalObjectContainer"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends>portal:service=Module,type=IdentityServiceController</depends>
+      <attribute name="DashboardContextId">dashboard</attribute>
+   </mbean>
 
-    <!-- Listener registry -->
-    <mbean
-            code="org.jboss.portal.core.event.PortalEventListenerRegistryImpl"
-            name="portal:service=ListenerRegistry"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
+   <!-- Command factories -->
+   <mbean
+      code="org.jboss.portal.core.controller.command.mapper.DelegatingCommandFactoryService"
+      name="portal:commandFactory=Delegating"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <!-- LABS -->
+      <!--<depends
+         optional-attribute-name="NextFactory"
+         proxy-type="attribute">portal:commandFactory=LabsMain</depends>-->
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.model.portal.DefaultPortalCommandFactory"
+      name="portal:commandFactory=DefaultPortal"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="NextFactory"
+         proxy-type="attribute">portal:commandFactory=Delegating</depends>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.model.portal.PortalObjectCommandFactory"
+      name="portal:commandFactory=PortalObject"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+   </mbean>
+   <!-- LABS -->
+   <mbean
+      code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
+      name="portal:commandFactory=Delegate,path=portal"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">/portal</attribute>
+      <depends
+         optional-attribute-name="DelegatingFactory"
+         proxy-type="attribute">portal:commandFactory=Delegating</depends>
+      <depends
+         optional-attribute-name="DelegateFactory"
+         proxy-type="attribute">portal:commandFactory=PortalObject</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.controller.command.mapper.SimpleCommandFactory"
+      name="portal:commandFactory=SignOut"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="CommandClassName">org.jboss.portal.core.controller.command.SignOutCommand</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
+      name="portal:commandFactory=Delegate,path=signout"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">/signout</attribute>
+      <depends
+         optional-attribute-name="DelegatingFactory"
+         proxy-type="attribute">portal:commandFactory=Delegating</depends>
+      <depends
+         optional-attribute-name="DelegateFactory"
+         proxy-type="attribute">portal:commandFactory=SignOut</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.model.portal.DashboardCommandFactory"
+      name="portal:commandFactory=Dashboard"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
+      name="portal:commandFactory=Delegate,path=dashboard"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">/dashboard</attribute>
+      <depends
+         optional-attribute-name="DelegatingFactory"
+         proxy-type="attribute">portal:commandFactory=Delegating</depends>
+      <depends
+         optional-attribute-name="DelegateFactory"
+         proxy-type="attribute">portal:commandFactory=Dashboard</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.model.instance.InstanceCommandFactory"
+      name="portal:commandFactory=Configurator"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="InstanceId">ConfiguratorPortletInstance</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
+      name="portal:commandFactory=Delegate,path=configure"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">/configure</attribute>
+      <depends
+         optional-attribute-name="DelegatingFactory"
+         proxy-type="attribute">portal:commandFactory=Delegating</depends>
+      <depends
+         optional-attribute-name="DelegateFactory"
+         proxy-type="attribute">portal:commandFactory=Configurator</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
+      name="portal:commandFactory=Delegate,path=test"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">/test</attribute>
+      <depends
+         optional-attribute-name="DelegatingFactory"
+         proxy-type="attribute">portal:commandFactory=Delegating</depends>
+      <depends
+         optional-attribute-name="DelegateFactory"
+         proxy-type="attribute">portal:commandFactory=Test</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.model.instance.InstanceCommandFactory"
+      name="portal:commandFactory=Test"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="InstanceId">TestPortletInstance</attribute>
+   </mbean>
 
-    <!-- The different containers -->
-    <mbean
-            code="org.jboss.portal.core.impl.model.instance.PersistentInstanceContainer"
-            name="portal:container=Instance"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends>portal:service=Hibernate,type=Instance</depends>
-        <depends
-                optional-attribute-name="StackFactory"
-                proxy-type="attribute">portal:service=InterceptorStackFactory,type=Instance</depends>
-        <depends
-                optional-attribute-name="PortletInvoker"
-                proxy-type="attribute">portal:service=PortletInvoker,type=Federating</depends>
-        <depends
-                optional-attribute-name="PortalAuthorizationManagerFactory"
-                proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
-        <depends
-                optional-attribute-name="AuthorizationDomainRegistry"
-                proxy-type="attribute">portal:service=AuthorizationDomainRegistry</depends>
-        <attribute name="SessionFactoryJNDIName">java:/portal/InstanceSessionFactory</attribute>
-        <attribute name="CacheNaturalId">true</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer"
-            name="portal:container=PortalObject"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends>portal:service=Hibernate,type=PortalObject</depends>
-        <depends
-                optional-attribute-name="PortalAuthorizationManagerFactory"
-                proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
-        <depends
-                optional-attribute-name="AuthorizationDomainRegistry"
-                proxy-type="attribute">portal:service=AuthorizationDomainRegistry</depends>
-        <depends
-                optional-attribute-name="InstanceContainer"
-                proxy-type="attribute">portal:container=Instance</depends>
-        <attribute name="SessionFactoryJNDIName">java:/portal/PortalObjectSessionFactory</attribute>
-        <attribute name="CacheNaturalId">true</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.impl.model.content.portlet.PortletContentHandler"
-            name="portal:service=ContentHandler,type=portlet"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="Registry"
-                proxy-type="attribute">portal:container=PortalObject</depends>
-        <depends
-                optional-attribute-name="InstanceContainer"
-                proxy-type="attribute">portal:container=Instance</depends>
-        <attribute name="ContentType">portlet</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.impl.model.content.cms.CMSContentHandler"
-            name="portal:service=ContentHandler,type=cms"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="Registry"
-                proxy-type="attribute">portal:container=PortalObject</depends>
-        <attribute name="ContentType">cms</attribute>
-    </mbean>
+   <!-- LABS command factories -->
 
-    <!-- Customization manager -->
-    <mbean
-            code="org.jboss.portal.core.impl.model.CustomizationManagerService"
-            name="portal:service=CustomizationManager"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="PortalAuthorizationManagerFactory"
-                proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
-        <depends
-                optional-attribute-name="InstanceContainer"
-                proxy-type="attribute">portal:container=Instance</depends>
-        <depends
-                optional-attribute-name="PortalObjectContainer"
-                proxy-type="attribute">portal:container=PortalObject</depends>
-        <depends>portal:service=Module,type=IdentityServiceController</depends>
-        <attribute name="DashboardContextId">dashboard</attribute>
-    </mbean>
+   <mbean
+      code="org.jboss.labs.mapper.LabsMainCommandFactory"
+      name="portal:commandFactory=LabsMain"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="DelegatingCF"
+         proxy-type="attribute">portal:commandFactory=LabsProjectsDelegating</depends>
+      <depends
+         optional-attribute-name="CmsCF"
+         proxy-type="attribute">portal:commandFactory=LabsCms</depends>
+      <depends
+         optional-attribute-name="PagesCF"
+         proxy-type="attribute">portal:commandFactory=LabsPages</depends>
+      <depends>shotoku:service=shotoku</depends>
+   </mbean>
 
-    <!-- Command factories -->
-    <mbean
-            code="org.jboss.portal.core.controller.command.mapper.DelegatingCommandFactoryService"
-            name="portal:commandFactory=Delegating"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <!--<depends
-                optional-attribute-name="NextFactory"
-                proxy-type="attribute">portal:commandFactory=Labs</depends>-->
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.model.portal.DefaultPortalCommandFactory"
-            name="portal:commandFactory=DefaultPortal"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="NextFactory"
-                proxy-type="attribute">portal:commandFactory=Delegating</depends>
-        <depends
-                optional-attribute-name="Container"
-                proxy-type="attribute">portal:container=PortalObject</depends>
-    </mbean>
+   <mbean
+      code="org.jboss.labs.mapper.LabsProjectsDelegatingCommandFactoryImpl"
+      name="portal:commandFactory=LabsProjectsDelegating"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.labs.mapper.LabsProjectsPagesCommandFactory"
+      name="portal:commandFactory=LabsProjectsPages"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">pages</attribute>
+      <depends
+         optional-attribute-name="DelegatingCF"
+         proxy-type="attribute">portal:commandFactory=LabsProjectsDelegating</depends>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+   </mbean>
 
-    <!--<mbean
-            code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
-            name="portal:commandFactory=Delegate,path=portal"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="DelegatingFactory"
-                proxy-type="attribute">portal:commandFactory=Delegating</depends>
-        <depends
-                optional-attribute-name="DelegateFactory"
-                proxy-type="attribute">portal:commandFactory=PortalObject</depends>
-    </mbean>-->
+   <mbean
+      code="org.jboss.labs.mapper.LabsPagesCommandFactory"
+      name="portal:commandFactory=LabsPages"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.labs.mapper.LabsCmsCommandFactory"
+      name="portal:commandFactory=LabsCms"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+   </mbean>
 
-    <mbean
-       code="org.jboss.portal.core.model.portal.PortalObjectCommandFactory"
-       name="portal:commandFactory=PortalObject"
-       xmbean-dd=""
-       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-       <xmbean/>
-       <depends
-          optional-attribute-name="Container"
-          proxy-type="attribute">portal:container=PortalObject</depends>
-    </mbean>
-    <mbean
-       code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
-       name="portal:commandFactory=Delegate,path=portal"
-       xmbean-dd=""
-       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-       <xmbean/>
-       <attribute name="Path">/portal</attribute>
-       <depends
-          optional-attribute-name="DelegatingFactory"
-          proxy-type="attribute">portal:commandFactory=Delegating</depends>
-       <depends
-          optional-attribute-name="DelegateFactory"
-          proxy-type="attribute">portal:commandFactory=PortalObject</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.controller.command.mapper.SimpleCommandFactory"
-            name="portal:commandFactory=SignOut"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="CommandClassName">org.jboss.portal.core.controller.command.SignOutCommand</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
-            name="portal:commandFactory=Delegate,path=signout"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="Path">/signout</attribute>
-        <depends
-                optional-attribute-name="DelegatingFactory"
-                proxy-type="attribute">portal:commandFactory=Delegating</depends>
-        <depends
-                optional-attribute-name="DelegateFactory"
-                proxy-type="attribute">portal:commandFactory=SignOut</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.model.portal.DashboardCommandFactory"
-            name="portal:commandFactory=Dashboard"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
-            name="portal:commandFactory=Delegate,path=dashboard"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="Path">/dashboard</attribute>
-        <depends
-                optional-attribute-name="DelegatingFactory"
-                proxy-type="attribute">portal:commandFactory=Delegating</depends>
-        <depends
-                optional-attribute-name="DelegateFactory"
-                proxy-type="attribute">portal:commandFactory=Dashboard</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.model.instance.InstanceCommandFactory"
-            name="portal:commandFactory=Configurator"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="InstanceId">ConfiguratorPortletInstance</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
-            name="portal:commandFactory=Delegate,path=configure"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="Path">/configure</attribute>
-        <depends
-                optional-attribute-name="DelegatingFactory"
-                proxy-type="attribute">portal:commandFactory=Delegating</depends>
-        <depends
-                optional-attribute-name="DelegateFactory"
-                proxy-type="attribute">portal:commandFactory=Configurator</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
-            name="portal:commandFactory=Delegate,path=test"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="Path">/test</attribute>
-        <depends
-                optional-attribute-name="DelegatingFactory"
-                proxy-type="attribute">portal:commandFactory=Delegating</depends>
-        <depends
-                optional-attribute-name="DelegateFactory"
-                proxy-type="attribute">portal:commandFactory=Test</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.model.instance.InstanceCommandFactory"
-            name="portal:commandFactory=Test"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="InstanceId">TestPortletInstance</attribute>
-    </mbean>
+   <!-- URL factories -->
+   <mbean
+      code="org.jboss.portal.core.controller.command.mapper.DelegatingURLFactoryService"
+      name="portal:urlFactory=Delegating"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.model.portal.PortalObjectURLFactory"
+      name="portal:urlFactory=PortalObject"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">/portal</attribute>
+      <depends
+         optional-attribute-name="Factory"
+         proxy-type="attribute">portal:urlFactory=Delegating</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.controller.command.mapper.SimpleURLFactory"
+      name="portal:urlFactory=SignOut"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">/signout</attribute>
+      <attribute name="ClassNames">org.jboss.portal.core.controller.command.SignOutCommand</attribute>
+      <depends
+         optional-attribute-name="Factory"
+         proxy-type="attribute">portal:urlFactory=Delegating</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.controller.command.mapper.SimpleURLFactory"
+      name="portal:urlFactory=Dashboard"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">/dashboard</attribute>
+      <attribute name="ClassNames">org.jboss.portal.core.model.portal.command.ViewDashboardCommand</attribute>
+      <depends
+         optional-attribute-name="Factory"
+         proxy-type="attribute">portal:urlFactory=Delegating</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.model.instance.InstanceURLFactory"
+      name="portal:urlFactory=Configurator"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="InstanceId">ConfiguratorPortletInstance</attribute>
+      <attribute name="Path">/configure</attribute>
+      <depends
+         optional-attribute-name="Factory"
+         proxy-type="attribute">portal:urlFactory=Delegating</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.model.instance.InstanceURLFactory"
+      name="portal:urlFactory=Test"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="InstanceId">TestPortletInstance</attribute>
+      <attribute name="Path">/test</attribute>
+      <depends
+         optional-attribute-name="Factory"
+         proxy-type="attribute">portal:urlFactory=Delegating</depends>
+   </mbean>
 
-    <!-- URL factories -->
-    <mbean
-            code="org.jboss.portal.core.controller.command.mapper.DelegatingURLFactoryService"
-            name="portal:urlFactory=Delegating"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.model.portal.PortalObjectURLFactory"
-            name="portal:urlFactory=PortalObject"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="Path">/portal</attribute>
-        <depends
-                optional-attribute-name="Factory"
-                proxy-type="attribute">portal:urlFactory=Delegating</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.controller.command.mapper.SimpleURLFactory"
-            name="portal:urlFactory=SignOut"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="Path">/signout</attribute>
-        <attribute name="ClassNames">org.jboss.portal.core.controller.command.SignOutCommand</attribute>
-        <depends
-                optional-attribute-name="Factory"
-                proxy-type="attribute">portal:urlFactory=Delegating</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.controller.command.mapper.SimpleURLFactory"
-            name="portal:urlFactory=Dashboard"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="Path">/dashboard</attribute>
-        <attribute name="ClassNames">org.jboss.portal.core.model.portal.command.ViewDashboardCommand</attribute>
-        <depends
-                optional-attribute-name="Factory"
-                proxy-type="attribute">portal:urlFactory=Delegating</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.model.instance.InstanceURLFactory"
-            name="portal:urlFactory=Configurator"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="InstanceId">ConfiguratorPortletInstance</attribute>
-        <attribute name="Path">/configure</attribute>
-        <depends
-                optional-attribute-name="Factory"
-                proxy-type="attribute">portal:urlFactory=Delegating</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.model.instance.InstanceURLFactory"
-            name="portal:urlFactory=Test"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="InstanceId">TestPortletInstance</attribute>
-        <attribute name="Path">/test</attribute>
-        <depends
-                optional-attribute-name="Factory"
-                proxy-type="attribute">portal:urlFactory=Delegating</depends>
-    </mbean>
+   <!-- The federating portlet invoker -->
+   <mbean
+      code="org.jboss.portal.federation.impl.FederatingPortletInvokerService"
+      name="portal:service=PortletInvoker,type=Federating"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
 
-    <!-- The federating portlet invoker -->
-    <mbean
-            code="org.jboss.portal.federation.impl.FederatingPortletInvokerService"
-            name="portal:service=PortletInvoker,type=Federating"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
+   <!-- The portlet container invoker -->
+   <mbean
+      code="org.jboss.portal.portlet.container.PortletContainerInvoker"
+      name="portal:service=PortletInvoker,type=Container"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="StackFactory"
+         proxy-type="attribute">portal:service=InterceptorStackFactory,type=Producer</depends>
+      <depends
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:service=WebAppRegistry</depends>
+   </mbean>
 
-    <!-- The portlet container invoker -->
-    <mbean
-            code="org.jboss.portal.portlet.container.PortletContainerInvoker"
-            name="portal:service=PortletInvoker,type=Container"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="StackFactory"
-                proxy-type="attribute">portal:service=InterceptorStackFactory,type=Producer</depends>
-        <depends
-                optional-attribute-name="Registry"
-                proxy-type="attribute">portal:service=WebAppRegistry</depends>
-    </mbean>
+   <!-- The producer portlet invoker -->
+   <mbean
+      code="org.jboss.portal.core.impl.portlet.state.PersistentPortletStatePersistenceManager"
+      name="portal:service=PersistenceManager,type=Producer"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>portal:service=Hibernate,type=Portlet</depends>
+      <attribute name="SessionFactoryJNDIName">java:/portal/PortletSessionFactory</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.impl.state.StateManagementPolicyService"
+      name="portal:service=StateManagementPolicy,type=Producer"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="PersistLocally">true</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.portlet.impl.state.StateConverterV0"
+      name="portal:service=StateConverter,type=Producer"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.impl.portlet.state.ProducerPortletInvoker"
+      name="portal:service=PortletInvoker,type=Producer"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="PortletInvoker"
+         proxy-type="attribute">portal:service=PortletInvoker,type=Container</depends>
+      <depends
+         optional-attribute-name="PersistenceManager"
+         proxy-type="attribute">portal:service=PersistenceManager,type=Producer</depends>
+      <depends
+         optional-attribute-name="StateManagementPolicy"
+         proxy-type="attribute">portal:service=StateManagementPolicy,type=Producer</depends>
+      <depends
+         optional-attribute-name="StateConverter"
+         proxy-type="attribute">portal:service=StateConverter,type=Producer</depends>
+   </mbean>
 
-    <!-- The producer portlet invoker -->
-    <mbean
-            code="org.jboss.portal.core.impl.portlet.state.PersistentPortletStatePersistenceManager"
-            name="portal:service=PersistenceManager,type=Producer"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends>portal:service=Hibernate,type=Portlet</depends>
-        <attribute name="SessionFactoryJNDIName">java:/portal/PortletSessionFactory</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.impl.state.StateManagementPolicyService"
-            name="portal:service=StateManagementPolicy,type=Producer"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="PersistLocally">true</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.portlet.impl.state.StateConverterV0"
-            name="portal:service=StateConverter,type=Producer"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.impl.portlet.state.ProducerPortletInvoker"
-            name="portal:service=PortletInvoker,type=Producer"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="PortletInvoker"
-                proxy-type="attribute">portal:service=PortletInvoker,type=Container</depends>
-        <depends
-                optional-attribute-name="PersistenceManager"
-                proxy-type="attribute">portal:service=PersistenceManager,type=Producer</depends>
-        <depends
-                optional-attribute-name="StateManagementPolicy"
-                proxy-type="attribute">portal:service=StateManagementPolicy,type=Producer</depends>
-        <depends
-                optional-attribute-name="StateConverter"
-                proxy-type="attribute">portal:service=StateConverter,type=Producer</depends>
-    </mbean>
+   <!-- Register the state portlet invoker on the federating portlet invoker -->
+   <mbean
+      code="org.jboss.portal.federation.impl.PortletInvokerRegistrationService"
+      name="portal:service=PortletInvokerRegistration,id=local"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Id">local</attribute>
+      <depends
+         optional-attribute-name="PortletInvoker"
+         proxy-type="attribute">portal:service=PortletInvoker,type=Producer</depends>
+      <depends
+         optional-attribute-name="FederatingPortletInvoker"
+         proxy-type="attribute">portal:service=PortletInvoker,type=Federating</depends>
+   </mbean>
 
-    <!-- Register the state portlet invoker on the federating portlet invoker -->
-    <mbean
-            code="org.jboss.portal.federation.impl.PortletInvokerRegistrationService"
-            name="portal:service=PortletInvokerRegistration,id=local"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <attribute name="Id">local</attribute>
-        <depends
-                optional-attribute-name="PortletInvoker"
-                proxy-type="attribute">portal:service=PortletInvoker,type=Producer</depends>
-        <depends
-                optional-attribute-name="FederatingPortletInvoker"
-                proxy-type="attribute">portal:service=PortletInvoker,type=Federating</depends>
-    </mbean>
+   <!-- The core controller -->
+   <mbean
+      code="org.jboss.portal.core.controller.classic.ClassicController"
+      name="portal:controller=Core"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="PageService"
+         proxy-type="attribute">portal:service=PageService</depends>
+      <depends
+         optional-attribute-name="CommandFactory"
+         proxy-type="attribute">portal:commandFactory=DefaultPortal</depends>
+      <depends
+         optional-attribute-name="URLFactory"
+         proxy-type="attribute">portal:urlFactory=Delegating</depends>
+      <depends
+         optional-attribute-name="StackFactory"
+         proxy-type="attribute">portal:service=InterceptorStackFactory,type=Command</depends>
+      <depends
+         optional-attribute-name="PortalObjectContainer"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+      <depends
+         optional-attribute-name="PortalAuthorizationManagerFactory"
+         proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
+      <depends
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</depends>
+   </mbean>
 
-    <!-- The core controller -->
-    <mbean
-            code="org.jboss.portal.core.controller.classic.ClassicController"
-            name="portal:controller=Core"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="PageService"
-                proxy-type="attribute">portal:service=PageService</depends>
-        <depends
-                optional-attribute-name="CommandFactory"
-                proxy-type="attribute">portal:commandFactory=DefaultPortal</depends>
-        <depends
-                optional-attribute-name="URLFactory"
-                proxy-type="attribute">portal:urlFactory=Delegating</depends>
-        <depends
-                optional-attribute-name="StackFactory"
-                proxy-type="attribute">portal:service=InterceptorStackFactory,type=Command</depends>
-        <depends
-                optional-attribute-name="PortalObjectContainer"
-                proxy-type="attribute">portal:container=PortalObject</depends>
-        <depends
-                optional-attribute-name="InstanceContainer"
-                proxy-type="attribute">portal:container=Instance</depends>
-        <depends
-                optional-attribute-name="PortalAuthorizationManagerFactory"
-                proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
-        <depends
-                optional-attribute-name="CustomizationManager"
-                proxy-type="attribute">portal:service=CustomizationManager</depends>
-    </mbean>
+   <!-- The ajax controller -->
+   <mbean
+      code="org.jboss.portal.core.controller.ajax.AjaxController"
+      name="portal:controller=Ajax"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="PageService"
+         proxy-type="attribute">portal:service=PageService</depends>
+      <depends
+         optional-attribute-name="CommandFactory"
+         proxy-type="attribute">portal:commandFactory=DefaultPortal</depends>
+      <depends
+         optional-attribute-name="URLFactory"
+         proxy-type="attribute">portal:urlFactory=Delegating</depends>
+      <depends
+         optional-attribute-name="StackFactory"
+         proxy-type="attribute">portal:service=InterceptorStackFactory,type=Command</depends>
+      <depends
+         optional-attribute-name="PortalObjectContainer"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+      <depends
+         optional-attribute-name="PortalAuthorizationManagerFactory"
+         proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
+      <depends
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</depends>
+   </mbean>
 
-    <!-- The ajax controller -->
-    <mbean
-            code="org.jboss.portal.core.controller.ajax.AjaxController"
-            name="portal:controller=Ajax"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="PageService"
-                proxy-type="attribute">portal:service=PageService</depends>
-        <depends
-                optional-attribute-name="CommandFactory"
-                proxy-type="attribute">portal:commandFactory=DefaultPortal</depends>
-        <depends
-                optional-attribute-name="URLFactory"
-                proxy-type="attribute">portal:urlFactory=Delegating</depends>
-        <depends
-                optional-attribute-name="StackFactory"
-                proxy-type="attribute">portal:service=InterceptorStackFactory,type=Command</depends>
-        <depends
-                optional-attribute-name="PortalObjectContainer"
-                proxy-type="attribute">portal:container=PortalObject</depends>
-        <depends
-                optional-attribute-name="InstanceContainer"
-                proxy-type="attribute">portal:container=Instance</depends>
-        <depends
-                optional-attribute-name="PortalAuthorizationManagerFactory"
-                proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
-        <depends
-                optional-attribute-name="CustomizationManager"
-                proxy-type="attribute">portal:service=CustomizationManager</depends>
-    </mbean>
+   <!-- -->
+   <mbean
+      code="org.jboss.portal.server.impl.ServerImpl"
+      name="portal:service=Server"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Config"
+         proxy-type="attribute">portal:service=ServerConfig</depends>
+   </mbean>
 
-    <!-- -->
-    <mbean
-            code="org.jboss.portal.server.impl.ServerImpl"
-            name="portal:service=Server"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="Config"
-                proxy-type="attribute">portal:service=ServerConfig</depends>
-    </mbean>
+   <!-- -->
+   <mbean
+      code="org.jboss.portal.server.deployment.jboss.ServerDeployer"
+      name="portal:deployer=PortalWebApp">
+      <depends>jboss.system:service=MainDeployer</depends>
+      <depends>portal:container=PortalObject</depends>
+      <depends>portal:container=Instance</depends>
+      <depends
+         optional-attribute-name="PortalServer"
+         proxy-type="attribute">portal:service=Server</depends>
+   </mbean>
 
-    <!-- -->
-    <mbean
-            code="org.jboss.portal.server.deployment.jboss.ServerDeployer"
-            name="portal:deployer=PortalWebApp">
-        <depends>jboss.system:service=MainDeployer</depends>
-        <depends>portal:container=PortalObject</depends>
-        <depends>portal:container=Instance</depends>
-        <depends
-                optional-attribute-name="PortalServer"
-                proxy-type="attribute">portal:service=Server</depends>
-    </mbean>
+   <!-- Portal object deployment factory -->
+   <!--
+      | Uncomment in cluster mode : have the deployment of objects run as a clustered singleton
+      
+      <mbean
+      code="org.jboss.portal.jems.as.system.LifecycleInvoker"
+      name="portal:service=Controller,target=ObjectDeploymentFactory"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>jboss.ha:service=HASingletonDeployer,type=Barrier</depends>
+      <depends>jboss:service=${jboss.partition.name:DefaultPartition}</depends>
+      <depends>portal:container=PortalObject</depends>
+      <attribute name="Target">portal:deploymentFactory=Object</attribute>
+      <attribute name="OnStart">registerFactory</attribute>
+      <attribute name="OnStop">unregisterFactory</attribute>
+      </mbean>
+   
+   -->
+   <mbean
+      code="org.jboss.portal.core.deployment.jboss.ObjectDeploymentFactory"
+      name="portal:deploymentFactory=Object"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Deployer"
+         proxy-type="attribute">portal:deployer=PortalWebApp</depends>
+      <depends
+         optional-attribute-name="PortalObjectContainer"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="ContentHandlerRegistry"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="PortalObjectEntityResolver"
+         proxy-type="attribute">portal:service=EntityResolver</depends>
+      <attribute name="SetupLocation">conf/data/default-object.xml</attribute>
+      <!-- Set to false in clustered mode, otherwise set to true -->
+      <attribute name="RegistrationControlledByService">true</attribute>
+   </mbean>
 
-    <!-- Portal object deployment factory -->
-    <!--
-       | Uncomment in cluster mode : have the deployment of objects run as a clustered singleton
+   <!--  -->
+   <!--
+      | Uncomment in cluster mode : have the creation of instances run as a clustered singleton
+      
+      <mbean
+      code="org.jboss.portal.jems.as.system.LifecycleInvoker"
+      name="portal:service=Controller,target=PortletAppDeploymentFactory"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends>jboss.ha:service=HASingletonDeployer,type=Barrier</depends>
+      <depends>jboss:service=${jboss.partition.name:DefaultPartition}</depends>
+      <depends>portal:container=PortalObject</depends>
+      <attribute name="Target">portal:deploymentFactory=PortletApp</attribute>
+      <attribute name="OnStart">enableCreateInstances</attribute>
+      <attribute name="OnStop">disableCreateInstances</attribute>
+      </mbean>
+   
+   -->
+   <mbean
+      code="org.jboss.portal.core.deployment.jboss.PortletAppDeploymentFactory"
+      name="portal:deploymentFactory=PortletApp"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <!-- 
+      <depends>jboss.ha:service=HASingletonDeployer</depends>
+       -->
+      <depends>portal:service=PortletInvokerRegistration,id=local</depends>
+      <depends
+         optional-attribute-name="Deployer"
+         proxy-type="attribute">portal:deployer=PortalWebApp</depends>
+      <depends
+         optional-attribute-name="WebAppRegistry"
+         proxy-type="attribute">portal:service=WebAppRegistry</depends>
+      <depends
+         optional-attribute-name="Config"
+         proxy-type="attribute">portal:service=ServerConfig</depends>
+      <depends
+         optional-attribute-name="PortletSecurityService"
+         proxy-type="attribute">portal:service=PortletSecurityService</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+      <depends
+         optional-attribute-name="JBossPortletEntityResolver"
+         proxy-type="attribute">portal:service=EntityResolver</depends>
+      <depends
+         optional-attribute-name="PortalObjectEntityResolver"
+         proxy-type="attribute">portal:service=EntityResolver</depends>
+      <depends
+         optional-attribute-name="PortletInstancesEntityResolver"
+         proxy-type="attribute">portal:service=EntityResolver</depends>
+      <attribute name="StandardJBossApplicationMetaDataLocation">conf/standardjboss-portlet.xml</attribute>
+      <attribute name="APIFactoryClassName">org.jboss.portlet.JBossAPIFactory</attribute>
+      <!-- Set to false in clustered mode, otherwise set to true -->
+      <attribute name="CreateInstances">true</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.theme.deployment.jboss.LayoutDeploymentFactory"
+      name="portal:deploymentFactory=Layout"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Deployer"
+         proxy-type="attribute">portal:deployer=PortalWebApp</depends>
+      <depends
+         optional-attribute-name="LayoutService"
+         proxy-type="attribute">portal:service=LayoutService</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.theme.deployment.jboss.LayoutFeaturesDeploymentFactory"
+      name="portal:deploymentFactory=LayoutFeatures"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Deployer"
+         proxy-type="attribute">portal:deployer=PortalWebApp</depends>
+      <depends
+         optional-attribute-name="LayoutService"
+         proxy-type="attribute">portal:service=LayoutService</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.theme.deployment.jboss.ThemeDeploymentFactory"
+      name="portal:deploymentFactory=Theme"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Deployer"
+         proxy-type="attribute">portal:deployer=PortalWebApp</depends>
+      <depends
+         optional-attribute-name="ThemeService"
+         proxy-type="attribute">portal:service=ThemeService</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.server.deployment.WebAppAdapter"
+      name="portal:deployer=Adapter"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="InterceptedDeployer">jboss.web:service=WebServer</depends>
+      <depends
+         optional-attribute-name="Deployer"
+         proxy-type="attribute">portal:deployer=PortalWebApp</depends>
+      <depends
+         optional-attribute-name="JBossAppEntityResolver"
+         proxy-type="attribute">portal:service=EntityResolver</depends>
+   </mbean>
 
-       <mbean
-       code="org.jboss.portal.jems.as.system.LifecycleInvoker"
-       name="portal:service=Controller,target=ObjectDeploymentFactory"
-       xmbean-dd=""
-       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-       <xmbean/>
-       <depends>jboss.ha:service=HASingletonDeployer,type=Barrier</depends>
-       <depends>jboss:service=${jboss.partition.name:DefaultPartition}</depends>
-       <depends>portal:container=PortalObject</depends>
-       <attribute name="Target">portal:deploymentFactory=Object</attribute>
-       <attribute name="OnStart">registerFactory</attribute>
-       <attribute name="OnStop">unregisterFactory</attribute>
-       </mbean>
-
-    -->
-    <mbean
-            code="org.jboss.portal.core.deployment.jboss.ObjectDeploymentFactory"
-            name="portal:deploymentFactory=Object"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="Deployer"
-                proxy-type="attribute">portal:deployer=PortalWebApp</depends>
-        <depends
-                optional-attribute-name="PortalObjectContainer"
-                proxy-type="attribute">portal:container=PortalObject</depends>
-        <depends
-                optional-attribute-name="ContentHandlerRegistry"
-                proxy-type="attribute">portal:container=PortalObject</depends>
-        <depends
-                optional-attribute-name="PortalObjectEntityResolver"
-                proxy-type="attribute">portal:service=EntityResolver</depends>
-        <attribute name="SetupLocation">conf/data/default-object.xml</attribute>
-        <!-- Set to false in clustered mode, otherwise set to true -->
-        <attribute name="RegistrationControlledByService">true</attribute>
-    </mbean>
-
-    <!--  -->
-    <!--
-       | Uncomment in cluster mode : have the creation of instances run as a clustered singleton
-
-       <mbean
-       code="org.jboss.portal.jems.as.system.LifecycleInvoker"
-       name="portal:service=Controller,target=PortletAppDeploymentFactory"
-       xmbean-dd=""
-       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-       <xmbean/>
-       <depends>jboss.ha:service=HASingletonDeployer,type=Barrier</depends>
-       <depends>jboss:service=${jboss.partition.name:DefaultPartition}</depends>
-       <depends>portal:container=PortalObject</depends>
-       <attribute name="Target">portal:deploymentFactory=PortletApp</attribute>
-       <attribute name="OnStart">enableCreateInstances</attribute>
-       <attribute name="OnStop">disableCreateInstances</attribute>
-       </mbean>
-
-    -->
-    <mbean
-            code="org.jboss.portal.core.deployment.jboss.PortletAppDeploymentFactory"
-            name="portal:deploymentFactory=PortletApp"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <!--
-       <depends>jboss.ha:service=HASingletonDeployer</depends>
-        -->
-        <depends>portal:service=PortletInvokerRegistration,id=local</depends>
-        <depends
-                optional-attribute-name="Deployer"
-                proxy-type="attribute">portal:deployer=PortalWebApp</depends>
-        <depends
-                optional-attribute-name="WebAppRegistry"
-                proxy-type="attribute">portal:service=WebAppRegistry</depends>
-        <depends
-                optional-attribute-name="Config"
-                proxy-type="attribute">portal:service=ServerConfig</depends>
-        <depends
-                optional-attribute-name="PortletSecurityService"
-                proxy-type="attribute">portal:service=PortletSecurityService</depends>
-        <depends
-                optional-attribute-name="InstanceContainer"
-                proxy-type="attribute">portal:container=Instance</depends>
-        <depends
-                optional-attribute-name="JBossPortletEntityResolver"
-                proxy-type="attribute">portal:service=EntityResolver</depends>
-        <depends
-                optional-attribute-name="PortalObjectEntityResolver"
-                proxy-type="attribute">portal:service=EntityResolver</depends>
-        <depends
-                optional-attribute-name="PortletInstancesEntityResolver"
-                proxy-type="attribute">portal:service=EntityResolver</depends>
-        <attribute name="StandardJBossApplicationMetaDataLocation">conf/standardjboss-portlet.xml</attribute>
-        <attribute name="APIFactoryClassName">org.jboss.portlet.JBossAPIFactory</attribute>
-        <!-- Set to false in clustered mode, otherwise set to true -->
-        <attribute name="CreateInstances">true</attribute>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.theme.deployment.jboss.LayoutDeploymentFactory"
-            name="portal:deploymentFactory=Layout"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="Deployer"
-                proxy-type="attribute">portal:deployer=PortalWebApp</depends>
-        <depends
-                optional-attribute-name="LayoutService"
-                proxy-type="attribute">portal:service=LayoutService</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.theme.deployment.jboss.LayoutFeaturesDeploymentFactory"
-            name="portal:deploymentFactory=LayoutFeatures"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="Deployer"
-                proxy-type="attribute">portal:deployer=PortalWebApp</depends>
-        <depends
-                optional-attribute-name="LayoutService"
-                proxy-type="attribute">portal:service=LayoutService</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.theme.deployment.jboss.ThemeDeploymentFactory"
-            name="portal:deploymentFactory=Theme"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="Deployer"
-                proxy-type="attribute">portal:deployer=PortalWebApp</depends>
-        <depends
-                optional-attribute-name="ThemeService"
-                proxy-type="attribute">portal:service=ThemeService</depends>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.server.deployment.WebAppAdapter"
-            name="portal:deployer=Adapter"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="InterceptedDeployer">jboss.web:service=WebServer</depends>
-        <depends
-                optional-attribute-name="Deployer"
-                proxy-type="attribute">portal:deployer=PortalWebApp</depends>
-        <depends
-                optional-attribute-name="JBossAppEntityResolver"
-                proxy-type="attribute">portal:service=EntityResolver</depends>
-    </mbean>
-
-    <mbean
-            code="org.jboss.portal.core.portlet.dashboard.ContentEditorRegistryService"
-            name="portal:registry=ContentEditor"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-    </mbean>
-    <mbean
-            code="org.jboss.portal.core.portlet.dashboard.PortletContentEditor"
-            name="portal:service=ContentEditor,type=portlet"
-            xmbean-dd=""
-            xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-        <xmbean/>
-        <depends
-                optional-attribute-name="Registry"
-                proxy-type="attribute">portal:registry=ContentEditor</depends>
-        <depends
-                optional-attribute-name="InstanceContainer"
-                proxy-type="attribute">portal:container=Instance</depends>
-        <attribute name="ContentType">portlet</attribute>
-    </mbean>
+   <mbean
+      code="org.jboss.portal.core.portlet.dashboard.ContentEditorRegistryService"
+      name="portal:registry=ContentEditor"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.portlet.dashboard.PortletContentEditor"
+      name="portal:service=ContentEditor,type=portlet"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:registry=ContentEditor</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+      <attribute name="ContentType">portlet</attribute>
+   </mbean>
 </server>

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsBaseCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsBaseCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsBaseCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,32 @@
+package org.jboss.labs.mapper;
+
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.portal.jems.as.system.AbstractJBossService;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public abstract class AbstractLabsBaseCommandFactory extends AbstractJBossService
+        implements LabsBaseCommandFactory {    
+    private PortalObjectContainer container;
+
+    public PortalObjectContainer getContainer() {
+        return container;
+    }
+
+    public void setContainer(PortalObjectContainer container) {
+        this.container = container;
+    }
+    
+    /*
+     * Service lifecycle methods.
+     */
+
+    protected void startService() throws Exception {
+
+    }
+
+    protected void stopService() throws Exception {
+
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsProjectsCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsProjectsCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/AbstractLabsProjectsCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,34 @@
+package org.jboss.labs.mapper;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public abstract class AbstractLabsProjectsCommandFactory extends AbstractLabsBaseCommandFactory
+        implements LabsProjectsCommandFactory {
+    private LabsProjectsDelegatingCommandFactory delegatingCF;
+    private String path;
+
+    public LabsProjectsDelegatingCommandFactory getDelegatingCF() {
+        return delegatingCF;
+    }
+
+    public void setDelegatingCF(LabsProjectsDelegatingCommandFactory delegatingCF) {
+        this.delegatingCF = delegatingCF;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+    /*
+     * Service lifecycle methods.
+     */
+
+    protected void startService() throws Exception {
+        getDelegatingCF().register(getPath(), this);
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsBaseCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsBaseCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsBaseCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,11 @@
+package org.jboss.labs.mapper;
+
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface LabsBaseCommandFactory {
+    public PortalObjectContainer getContainer();
+    public void setContainer(PortalObjectContainer container);
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCmsCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCmsCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCmsCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,15 @@
+package org.jboss.labs.mapper;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class LabsCmsCommandFactory extends AbstractLabsBaseCommandFactory
+        implements LabsCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
+                                       PathParser parser) {
+        return null;
+    }       
+}

Deleted: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java	2007-02-16 20:07:42 UTC (rev 9560)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -1,291 +0,0 @@
-package org.jboss.labs.mapper;
-
-import org.jboss.portal.core.model.portal.PortalObjectContainer;
-import org.jboss.portal.core.model.portal.Page;
-import org.jboss.portal.core.model.portal.Portal;
-import org.jboss.portal.core.model.portal.command.RenderPageCommand;
-import org.jboss.portal.core.controller.command.mapper.AbstractCommandFactory;
-import org.jboss.portal.core.controller.command.mapper.CommandFactory;
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.server.ServerInvocation;
-import org.jboss.portal.common.invocation.InvocationException;
-import org.jboss.portal.portlet.impl.PortletRequestDecoder;
-import org.jboss.shotoku.ContentManager;
-import org.jboss.shotoku.tools.Tools;
-import org.jboss.forge.common.projects.ProjectsHelper;
-import org.jboss.forge.common.projects.Projects;
-import org.jboss.forge.common.Constants;
-import org.jboss.forge.common.ForgeHelper;
-
-import java.io.IOException;
-
-/**
- * Command factory for labs. Uses following rules for URLs:
- * - / -> default page
- * - /projectId/pageName -> sets projectId as the selected project, goes to
- *   page pageName
- * - /projectId/otherPath -> sets projectId as the selected project, invokes
- *   freezone with otherPath
- * - /pageName -> goes to page pageName
- * - /otherPath -> invokes freezone with otherPath
- *
- * Currently, this supports only 1 portal (as set in
- * org.jboss.forge.common.Constants).
- *
- * @author Adam Warski (adamw at aster.pl)
- */
-public class LabsCommandFactory extends AbstractCommandFactory {
-    private PortalObjectContainer container;
-    private CommandFactory nextFactory;
-    private ContentManager cm;
-
-    /*
-     * Getters and setters.
-     */
-
-    public PortalObjectContainer getContainer() {
-        return container;
-    }
-
-    public void setContainer(PortalObjectContainer container) {
-        this.container = container;
-    }
-
-    public CommandFactory getNextFactory() {
-        return nextFactory;
-    }
-
-    public void setNextFactory(CommandFactory nextFactory) {
-        this.nextFactory = nextFactory;
-    }
-
-    /*
-     * Helper methods.
-     */
-
-    /**
-     * Gets a command to render a page with the given name.
-     * @return z
-     * @param name v
-     */
-    private ControllerCommand getPageCommand(ServerInvocation invocation, String name) {
-        Page p = ((Portal)container.getRootObject().getChild("default")).getPage(name);
-        //Page p = container.getContext().getDefaultPortal().getPage(name);
-
-        if (p == null) {
-            return null;
-        }
-
-        /*if ("wiki".equals(name)) {
-            
-            Parameters params = new Parameters();
-            setParamIfNotNull(params, "page", getParameter(invocation, "page"));
-            setParamIfNotNull(params, "language", getParameter(invocation, "language"));
-
-            return new InvokeWindowActionCommand("default.wiki.WikiPortletWindow", null,
-                    null, null, null, params);
-        }*/
-
-        return new RenderPageCommand(p.getId());
-    }
-
-    /**
-     * Gets path to the resource definied by the given parameters in the CMS.
-     * @return a
-     * @param portalName a
-     * @param projectId a
-     * @param path a
-     */
-    private String getCmsPath(String portalName, String projectId, String path) {
-        /*
-           * If the requested path references a project, getting the page from
-           * the project's freezone dir. Otherwise, getting the page from the
-           * default directory.
-           */
-        String cmsPath = portalName + "/" + ProjectsHelper.MEMBERS_DIR + "/" +
-                projectId + "/" + ProjectsHelper.FREEZONE_DIR + "/" + path;
-
-        /*
-           * Checking if we don't have to add a default page to the constructed
-           * path.
-           */
-        if (!cmsPath.contains(".")) {
-            if (!cmsPath.endsWith("/"))
-                cmsPath += "/";
-
-            cmsPath += Constants.DEFAULT_FREEZONE_PAGE;
-        }
-
-        return cmsPath;
-    }
-
-    /**
-     * Sets an attribute of the given  and value both in session and request.
-     */
-    private void setAttribute(ServerInvocation invocation, String name, String value) {
-        invocation.getServerContext().getClientRequest().setAttribute(name, value);
-        invocation.getServerContext().getClientRequest().getSession().setAttribute(name, value);
-    }
-
-    /**
-     * Sets the response to be a redirect to the given location/
-     */
-    private void sendRedirect(ServerInvocation invocation, String where) throws IOException {
-        invocation.getServerContext().getClientResponse().sendRedirect(where);
-    }
-
-    /**
-     * Gets the appropriate command basing on the given path and the selected
-     * project. Path must not be empty.
-     */
-    private ControllerCommand getCommand(ServerInvocation invocation, String path,
-                                         String projectId) {
-        String[] tokens = path.split("[/]", 2);
-
-        ControllerCommand c = getPageCommand(invocation, tokens[0]);
-        if (c == null) {
-            /*
-             * No such page. In this case, we have to invoke freezone. There
-             * are two possibilities:
-             * - the requested resource has an appropriate mime type to display
-             *   it (typically text/html) - then we call the freezone portlet.
-             * - the requested resource is of another mime type - in this case,
-             *   we send a redirect to the file-access servlet.
-             */
-            String cmsPath = getCmsPath(Constants.LABS_PORTAL, projectId, path);
-
-            try {
-                if (!Constants.PAGES_MIME_TYPE.equalsIgnoreCase(cm.getNode(cmsPath).getMimeType())) {
-                    sendRedirect(invocation, "/" + ForgeHelper.FILE_ACCESS_DIR + "/" + cmsPath);
-                    return getPageCommand(invocation, Constants.DEFAULT_PORTAL_PAGE);
-                }
-            } catch (Exception e) {
-                return getPageCommand(invocation, Constants.DEFAULT_PORTAL_PAGE);
-            }
-
-            setAttribute(invocation, Constants.ATTR_REQ_PATH, cmsPath);
-
-            return getPageCommand(invocation, Constants.FREEZONE_PAGE);
-        } else {
-            if (tokens.length == 2) {
-                /*
-                     * Setting the rest of the path as an attribute so the portlets
-                     * can use it.
-                     */
-                setAttribute(invocation, Constants.ATTR_REQ_PATH, tokens[1]);
-            }
-
-            return c;
-        }
-    }
-
-    /**
-     * Gets a command that should be executed, given the request path, if no
-     * project is selected.
-     */
-    private ControllerCommand getNormalCommand(ServerInvocation invocation, String path) {
-        if (Tools.isEmpty(path)) {
-            return getPageCommand(invocation, Constants.DEFAULT_PORTAL_PAGE);
-        }
-
-        return getCommand(invocation, path, Constants.GLOBAL_FREEZONE_PRJ);
-    }
-
-    /**
-     * Gets a command that should be executed, given the request path, if a
-     * project is selected.
-     */
-    private ControllerCommand getProjectCommand(ServerInvocation invocation, String path,
-                                                String projectId, Projects projects)
-            throws IOException {
-        if (Tools.isEmpty(path)) {
-            /*
-             * If the path is empty, we have to show the project's default
-             * page. This can be:
-             * - a normal info page
-             * - a freezone page - in this case we just redirect to a
-             *   freezone
-             * - an outside page - in this case, we redirect to this
-             *   outside page.
-             */
-            String freezonePage = projects.getProjectPageFreezone(projectId);
-            if (!Tools.isEmpty(freezonePage)) {
-                String redirect;
-                if (Tools.isOutsideLink(freezonePage)) {
-                    redirect = freezonePage;
-                } else {
-                    redirect = ProjectsHelper.createFreezonePageLink(
-                            Constants.LABS_PORTAL, projectId, freezonePage);
-                }
-
-                sendRedirect(invocation, redirect);
-            }
-
-            return getPageCommand(invocation, Constants.DEFAULT_PROJECT_PAGE);
-        }
-
-        return getCommand(invocation, path, projectId);
-    }
-
-    public ControllerCommand doMapping(ServerInvocation invocation, String host, String portalContextPath,
-                                       String portalRequestPath) {
-        // Removing unnecessary /.
-        while (portalRequestPath.indexOf("//") != -1) {
-            portalRequestPath = portalRequestPath.replace("//", "/");
-        }
-
-        /*
-         * If this is an action/ nav etc request (in canonical form), path
-         * parsing is not only not appropriate, it is not possible. So passing
-         * it higher.
-         */
-        if (invocation.getServerContext().getClientRequest().getParameterMap().get(
-                PortletRequestDecoder.META_PARAMETER) != null) {
-            return nextFactory.doMapping(invocation, host, portalContextPath, portalRequestPath);
-        }
-
-        /*
-         * If the user just logged in, showing the default page.
-         */
-        if (portalRequestPath.startsWith("/portal")) {
-            portalRequestPath = portalRequestPath.substring(7);
-            try {
-                sendRedirect(invocation, portalRequestPath);
-            } catch (IOException e) {
-                throw new InvocationException(e);
-            }
-            return nextFactory.doMapping(invocation, host, portalContextPath, portalRequestPath);
-        }
-
-        ControllerCommand c;
-        String[] tokens = portalRequestPath.split("[/]", 3);
-        Projects projects = ProjectsHelper.getProjects(Constants.LABS_PORTAL);
-        if ((tokens.length > 1) && (projects.projectExists(tokens[1]))) {
-            try {
-                c = getProjectCommand(invocation, tokens.length > 2 ? tokens[2] : null,
-                        tokens[1], projects);
-            } catch (IOException e) {
-                throw new InvocationException(e);
-            }
-        } else {
-            tokens = portalRequestPath.split("[/]", 2);
-            // The user requested a non-project page - default, portlet page or
-            // global freezone.
-            c = getNormalCommand(invocation, tokens.length > 1 ? tokens[1] : null);
-        }
-
-        return c;
-    }
-
-    /*
-     * Service management methods
-     */
-
-    protected void startService() throws Exception {
-        cm = ContentManager.getContentManager();
-    }
-
-    protected void stopService() throws Exception {
-
-    }
-}

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,13 @@
+package org.jboss.labs.mapper;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.portal.server.ServerInvocation;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface LabsCommandFactory extends LabsBaseCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
+                                       PathParser parser);
+}

Copied: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsMainCommandFactory.java (from rev 9555, labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsMainCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsMainCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,257 @@
+package org.jboss.labs.mapper;
+
+import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.core.model.portal.Portal;
+import org.jboss.portal.core.model.portal.command.RenderPageCommand;
+import org.jboss.portal.core.controller.command.mapper.CommandFactory;
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.shotoku.ContentManager;
+import org.jboss.shotoku.tools.Tools;
+import org.jboss.forge.common.projects.ProjectsHelper;
+import org.jboss.forge.common.projects.Projects;
+import org.jboss.forge.common.Constants;
+import org.jboss.forge.common.ForgeHelper;
+
+import java.io.IOException;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class LabsMainCommandFactory extends AbstractLabsBaseCommandFactory implements CommandFactory {
+    private LabsProjectsDelegatingCommandFactory delegatingCF;
+    private LabsCommandFactory pagesCF;
+    private LabsCommandFactory cmsCF;
+
+    private ContentManager cm;
+
+    /*
+     * Getters and setters.
+     */
+
+    public LabsProjectsDelegatingCommandFactory getDelegatingCF() {
+        return delegatingCF;
+    }
+
+    public void setDelegatingCF(LabsProjectsDelegatingCommandFactory delegatingCF) {
+        this.delegatingCF = delegatingCF;
+    }
+
+    public LabsCommandFactory getPagesCF() {
+        return pagesCF;
+    }
+
+    public void setPagesCF(LabsCommandFactory pagesCF) {
+        this.pagesCF = pagesCF;
+    }
+
+    public LabsCommandFactory getCmsCF() {
+        return cmsCF;
+    }
+
+    public void setCmsCF(LabsCommandFactory cmsCF) {
+        this.cmsCF = cmsCF;
+    }
+
+    /*
+     * Helper methods.
+     */
+
+    /**
+     * Gets a command to render a page with the given name.
+     * @return z
+     * @param name v
+     */
+    private ControllerCommand getPageCommand(ServerInvocation invocation, String name) {
+        Page p = ((Portal)getContainer().getRootObject().getChild("default")).getPage(name);
+        //Page p = container.getContext().getDefaultPortal().getPage(name);
+
+        if (p == null) {
+            return null;
+        }
+
+        /*if ("wiki".equals(name)) {
+            
+            Parameters params = new Parameters();
+            setParamIfNotNull(params, "page", getParameter(invocation, "page"));
+            setParamIfNotNull(params, "language", getParameter(invocation, "language"));
+
+            return new InvokeWindowActionCommand("default.wiki.WikiPortletWindow", null,
+                    null, null, null, params);
+        }*/
+
+        return new RenderPageCommand(p.getId());
+    }
+
+    /**
+     * Gets path to the resource definied by the given parameters in the CMS.
+     * @return a
+     * @param portalName a
+     * @param projectId a
+     * @param path a
+     */
+    private String getCmsPath(String portalName, String projectId, String path) {
+        /*
+           * If the requested path references a project, getting the page from
+           * the project's freezone dir. Otherwise, getting the page from the
+           * default directory.
+           */
+        String cmsPath = portalName + "/" + ProjectsHelper.MEMBERS_DIR + "/" +
+                projectId + "/" + ProjectsHelper.FREEZONE_DIR + "/" + path;
+
+        /*
+           * Checking if we don't have to add a default page to the constructed
+           * path.
+           */
+        if (!cmsPath.contains(".")) {
+            if (!cmsPath.endsWith("/"))
+                cmsPath += "/";
+
+            cmsPath += Constants.DEFAULT_FREEZONE_PAGE;
+        }
+
+        return cmsPath;
+    }
+
+    /**
+     * Sets an attribute of the given  and value both in session and request.
+     */
+    private void setAttribute(ServerInvocation invocation, String name, String value) {
+        invocation.getServerContext().getClientRequest().setAttribute(name, value);
+        invocation.getServerContext().getClientRequest().getSession().setAttribute(name, value);
+    }
+
+    /**
+     * Sets the response to be a redirect to the given location/
+     */
+    private void sendRedirect(ServerInvocation invocation, String where) throws IOException {
+        invocation.getServerContext().getClientResponse().sendRedirect(where);
+    }
+
+    /**
+     * Gets the appropriate command basing on the given path and the selected
+     * project. Path must not be empty.
+     */
+    private ControllerCommand getCommand(ServerInvocation invocation, String path,
+                                         String projectId) {
+        String[] tokens = path.split("[/]", 2);
+
+        ControllerCommand c = getPageCommand(invocation, tokens[0]);
+        if (c == null) {
+            /*
+             * No such page. In this case, we have to invoke freezone. There
+             * are two possibilities:
+             * - the requested resource has an appropriate mime type to display
+             *   it (typically text/html) - then we call the freezone portlet.
+             * - the requested resource is of another mime type - in this case,
+             *   we send a redirect to the file-access servlet.
+             */
+            String cmsPath = getCmsPath(Constants.LABS_PORTAL, projectId, path);
+
+            try {
+                if (!Constants.PAGES_MIME_TYPE.equalsIgnoreCase(cm.getNode(cmsPath).getMimeType())) {
+                    sendRedirect(invocation, "/" + ForgeHelper.FILE_ACCESS_DIR + "/" + cmsPath);
+                    return getPageCommand(invocation, Constants.DEFAULT_PORTAL_PAGE);
+                }
+            } catch (Exception e) {
+                return getPageCommand(invocation, Constants.DEFAULT_PORTAL_PAGE);
+            }
+
+            setAttribute(invocation, Constants.ATTR_REQ_PATH, cmsPath);
+
+            return getPageCommand(invocation, Constants.FREEZONE_PAGE);
+        } else {
+            if (tokens.length == 2) {
+                /*
+                     * Setting the rest of the path as an attribute so the portlets
+                     * can use it.
+                     */
+                setAttribute(invocation, Constants.ATTR_REQ_PATH, tokens[1]);
+            }
+
+            return c;
+        }
+    }
+
+    /**
+     * Gets a command that should be executed, given the request path, if no
+     * project is selected.
+     */
+    private ControllerCommand getNormalCommand(ServerInvocation invocation, String path) {
+        if (Tools.isEmpty(path)) {
+            return getPageCommand(invocation, Constants.DEFAULT_PORTAL_PAGE);
+        }
+
+        return getCommand(invocation, path, Constants.GLOBAL_FREEZONE_PRJ);
+    }
+
+    /**
+     * Gets a command that should be executed, given the request path, if a
+     * project is selected.
+     */
+    private ControllerCommand getProjectCommand(ServerInvocation invocation, String path,
+                                                String projectId, Projects projects)
+            throws IOException {
+        if (Tools.isEmpty(path)) {
+            /*
+             * If the path is empty, we have to show the project's default
+             * page. This can be:
+             * - a normal info page
+             * - a freezone page - in this case we just redirect to a
+             *   freezone
+             * - an outside page - in this case, we redirect to this
+             *   outside page.
+             */
+            String freezonePage = projects.getProjectPageFreezone(projectId);
+            if (!Tools.isEmpty(freezonePage)) {
+                String redirect;
+                if (Tools.isOutsideLink(freezonePage)) {
+                    redirect = freezonePage;
+                } else {
+                    redirect = ProjectsHelper.createFreezonePageLink(
+                            Constants.LABS_PORTAL, projectId, freezonePage);
+                }
+
+                sendRedirect(invocation, redirect);
+            }
+
+            return getPageCommand(invocation, Constants.DEFAULT_PROJECT_PAGE);
+        }
+
+        return getCommand(invocation, path, projectId);
+    }
+
+    public ControllerCommand doMapping(ServerInvocation invocation, String host,
+                                       String contextPath, String requestPath) {
+        PathParser parser = new PathParser(requestPath);
+
+        if (!parser.hasFirstToken()) {
+            return null;
+        }
+
+        Projects projects = ProjectsHelper.getProjects(Constants.LABS_PORTAL);
+        String firstToken = parser.getFirstToken();
+
+        if (projects.projectExists(firstToken)) {
+            parser.proceed();
+            return delegatingCF.doMapping(invocation, host, contextPath, parser, firstToken);
+        }
+
+        ControllerCommand command;
+        command = pagesCF.doMapping(invocation, host, contextPath, parser);
+
+        if (command != null) {
+            return command;
+        }
+
+        return cmsCF.doMapping(invocation, host, contextPath, parser);
+    }
+
+    /*
+     * Service lifecycle methods
+     */
+
+    protected void startService() throws Exception {
+        cm = ContentManager.getContentManager();
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPagesCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPagesCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsPagesCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,16 @@
+package org.jboss.labs.mapper;
+
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class LabsPagesCommandFactory extends AbstractLabsBaseCommandFactory
+        implements LabsCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
+                                       PathParser parser) {
+        return null;
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,19 @@
+package org.jboss.labs.mapper;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface LabsProjectsCommandFactory extends LabsBaseCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation,
+                                       String host, String contextPath,
+                                       PathParser parser, String projectName);
+
+    public LabsProjectsDelegatingCommandFactory getDelegatingCF();
+    public void setDelegatingCF(LabsProjectsDelegatingCommandFactory delegating);
+
+    public String getPath();
+    public void setPath(String path);
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,14 @@
+package org.jboss.labs.mapper;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public interface LabsProjectsDelegatingCommandFactory extends LabsBaseCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation,
+                                       String host, String contextPath,
+                                       PathParser parser, String projectName);
+    public void register(String path, LabsProjectsCommandFactory factory);
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactoryImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactoryImpl.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsDelegatingCommandFactoryImpl.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,40 @@
+package org.jboss.labs.mapper;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class LabsProjectsDelegatingCommandFactoryImpl extends AbstractLabsBaseCommandFactory
+        implements LabsProjectsDelegatingCommandFactory {
+    private Map<String, LabsProjectsCommandFactory> factories;
+
+    public LabsProjectsDelegatingCommandFactoryImpl() {
+        factories = new HashMap<String, LabsProjectsCommandFactory>();
+    }
+
+    public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
+                                       PathParser parser, String projectName) {
+        if (parser.hasFirstToken()) {
+            String firstToken = parser.getFirstToken();
+            for (String path : factories.keySet()) {
+                if (firstToken.equals(path)) {
+                    parser.proceed();
+                    return factories.get(path).doMapping(invocation, host, contextPath,
+                            parser, projectName);
+                }
+            }
+        }
+
+        // No match -> showing the default page.
+        return null;
+    }
+
+    public synchronized void register(String path, LabsProjectsCommandFactory factory) {
+        factories.put(path, factory);
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsPagesCommandFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsPagesCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/LabsProjectsPagesCommandFactory.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,14 @@
+package org.jboss.labs.mapper;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerInvocation;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class LabsProjectsPagesCommandFactory extends AbstractLabsProjectsCommandFactory {
+    public ControllerCommand doMapping(ServerInvocation invocation, String host, String contextPath,
+                                       PathParser parser, String projectName) {
+        return null;
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/PathParser.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/PathParser.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions/forge-mapper/src/java/org/jboss/labs/mapper/PathParser.java	2007-02-16 21:13:38 UTC (rev 9561)
@@ -0,0 +1,64 @@
+package org.jboss.labs.mapper;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class PathParser {
+    private String firstToken;
+    private String rest;
+
+    private String normalize(String path) {
+        while (path.indexOf("//") != -1) {
+            path = path.replace("//", "/");
+        }
+
+        if (path.startsWith("/")) {
+            path = path.substring(1);
+        }
+
+        return path;
+    }
+
+    private void doSplit(String path) {
+        if (path == null) {
+            firstToken = null;
+            rest = null;
+            return;
+        }
+
+        String[] tokens = path.split("[/]", 2);
+        firstToken = tokens[0];
+        rest = (tokens.length > 1 ? tokens[1] : null);
+    }
+
+    public PathParser(String path) {
+        if (path == null) {
+            return;
+        }
+
+        path = normalize(path);
+        doSplit(path);
+    }
+
+    public String getFirstToken() {
+        return firstToken;
+    }
+
+    public String getRest() {
+        return rest;
+    }
+
+    public boolean hasMoreTokens() {
+        return rest != null;
+    }
+
+    public boolean hasFirstToken() {
+        return firstToken != null;
+    }
+
+    public void proceed() {
+        if (hasMoreTokens()) {
+            doSplit(rest);
+        }
+    }
+}

Modified: labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml	2007-02-16 20:07:42 UTC (rev 9560)
+++ labs/jbosslabs/trunk/portal-extensions/portal-default/src/web/WEB-INF/default-object.xml	2007-02-16 21:13:38 UTC (rev 9561)
@@ -82,7 +82,14 @@
 					<height>0</height>
 				</window>
 
-				<window>
+                <window>
+					<window-name>FreezoneDefaultPortletWindow</window-name>
+					<instance-ref>FreezoneDefaultPageInstance</instance-ref>
+					<region>left</region>
+					<height>0</height>
+				</window>
+
+                <window>
 					<window-name>PodcastPortletWindow</window-name>
 					<instance-ref>
 						PodcastPortletInstanceSmall




More information about the jboss-svn-commits mailing list