[jboss-svn-commits] JBL Code SVN: r8934 - in labs/jbosslabs/trunk/portal-extensions-2.6: configuration/to-copy/server/default/deploy/jboss-portal.sar and 3 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Sat Jan 20 06:22:46 EST 2007


Author: adamw
Date: 2007-01-20 06:22:46 -0500 (Sat, 20 Jan 2007)
New Revision: 8934

Added:
   labs/jbosslabs/trunk/portal-extensions-2.6/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/
   labs/jbosslabs/trunk/portal-extensions-2.6/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml
   labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java
Removed:
   labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java_old
Modified:
   labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/maven.xml
   labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/project.xml
   labs/jbosslabs/trunk/portal-extensions-2.6/maven.xml
Log:
Command mapper working for 2.6

Added: labs/jbosslabs/trunk/portal-extensions-2.6/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-2.6/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-2.6/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml	2007-01-20 11:22:46 UTC (rev 8934)
@@ -0,0 +1,1149 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ JBoss, a division of Red Hat                                              ~
+  ~ Copyright 2006, Red Hat Middleware, LLC, and individual                   ~
+  ~ contributors as indicated by the @authors tag. See the                    ~
+  ~ copyright.txt in the distribution for a full listing of                   ~
+  ~ individual contributors.                                                  ~
+  ~                                                                           ~
+  ~ This is free software; you can redistribute it and/or modify it           ~
+  ~ under the terms of the GNU Lesser General Public License as               ~
+  ~ published by the Free Software Foundation; either version 2.1 of          ~
+  ~ the License, or (at your option) any later version.                       ~
+  ~                                                                           ~
+  ~ This software is distributed in the hope that it will be useful,          ~
+  ~ but WITHOUT ANY WARRANTY; without even the implied warranty of            ~
+  ~ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU          ~
+  ~ Lesser General Public License for more details.                           ~
+  ~                                                                           ~
+  ~ You should have received a copy of the GNU Lesser General Public          ~
+  ~ License along with this software; if not, write to the Free               ~
+  ~ Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA        ~
+  ~ 02110-1301 USA, or see the FSF site: http://www.fsf.org.                  ~
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<server>
+   <!--  Management -->
+   
+   <!-- Portlet discovery executed every 30 seconds -->
+   <mbean code="org.jboss.varia.scheduler.Scheduler"
+          name="portal:service=Management,type=Scheduler">
+     <attribute name="SchedulableMBean">portal:service=Management,type=PortletDiscoveryManagement,name=Default</attribute>
+     <attribute name="SchedulableMBeanMethod">processPortletDiscovery()</attribute>
+     <attribute name="InitialStartDate">NOW</attribute>
+     <attribute name="SchedulePeriod">30000</attribute>
+     <attribute name="InitialRepetitions">-1</attribute>
+   </mbean>
+
+   <mbean
+      code="org.jboss.portal.core.management.PortalImpl"
+      name="portal.management:service=Management,type=Portal,name=Default"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+      <xmbean/>
+   </mbean>  
+      
+   <mbean
+      code="org.jboss.portal.identity.management.Identity"
+      name="portal.management:service=Management,type=Identity,name=Default"
+      >
+      <depends>portal:service=Module,type=IdentityServiceController</depends>
+      <xmbean/>
+   </mbean>  
+   
+   <mbean
+      code="org.jboss.portal.core.management.PortletDiscoveryService"
+      name="portal:service=Management,type=PortletDiscoveryManagement,name=Default"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <depends
+         optional-attribute-name="FederatingPortletInvoker"
+         proxy-type="attribute">portal:service=PortletInvoker,type=Federating</depends>
+      <depends
+         optional-attribute-name="Interceptor"
+         proxy-type="attribute">portal:service=Interceptor,type=Portlet,name=PortletContainerManagement</depends>
+      <xmbean/>
+   </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>
+
+   <!-- 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>
+
+   <!-- 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.PageNavigationInterceptor"
+      name="portal:service=Interceptor,type=Command,name=PageNavigation"
+      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=PageNavigation</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 -->
+   <!-- Management MBean, can be removed if management is not used -->
+   <mbean
+      code="org.jboss.portal.portlet.management.PortletContainerManagementInterceptorImpl"
+      name="portal:service=Interceptor,type=Portlet,name=PortletContainerManagement"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <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=PortletContainerManagement</depends-list-element>
+         <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>
+
+   <!-- 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
+      
+      <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>
+   
+   -->
+
+   <!-- 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>
+
+   <!--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>
+
+   <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>
+
+   <!-- 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>
+
+   <!-- 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>
+
+   <!-- A sample listener -->
+   <mbean
+      code="org.jboss.portal.core.event.PortalEventListenerServiceImpl"
+      name="portal:service=ListenerService,type=test_listener"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:service=ListenerRegistry</depends>
+      <attribute name="RegistryId">test_listener</attribute>
+      <attribute name="ListenerClassName">org.jboss.portal.core.portlet.test.event.PortletB$Listener</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>
+
+   <!-- 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>
+
+   <!-- Labs command factory -->
+   <mbean
+     code="org.jboss.labs.mapper.LabsCommandFactory"
+     name="portal:commandFactory=Labs"
+     xmbean-dd=""
+     xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+     <xmbean/>
+     <depends>shotoku:service=svn</depends>
+     <depends
+       optional-attribute-name="NextFactory"
+       proxy-type="attribute">portal:commandFactory=DefaultPortal</depends>
+     <depends
+       optional-attribute-name="Container"
+       proxy-type="attribute">portal:container=PortalObject</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/>
+   </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>
+   <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>
+
+   <!-- 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 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>
+
+   <!-- 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=Labs</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.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>
+      <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>
+      <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>
+   </mbean>
+</server>

Modified: labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/maven.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/maven.xml	2007-01-20 09:33:16 UTC (rev 8933)
+++ labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/maven.xml	2007-01-20 11:22:46 UTC (rev 8934)
@@ -18,7 +18,7 @@
     
     <goal name="deploy">
 	<ant:copy
-	    tofile="${local.deploy.dir}/jboss-portal.sar/lib/forge-mapper.jar" 
+	    todir="${forge.jar.dest}" 
 	    file="target/forge-mapper.jar"
 	    overwrite="true" />
     </goal>

Modified: labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/project.xml	2007-01-20 09:33:16 UTC (rev 8933)
+++ labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/project.xml	2007-01-20 11:22:46 UTC (rev 8934)
@@ -51,6 +51,12 @@
                 <version>1.0</version>
                 <jar>portal-server-lib.jar</jar>
             </dependency>
+	    <dependency>
+                <groupId>jboss</groupId>
+                <artifactId>portal-jems-lib</artifactId>
+                <version>1.0</version>
+                <jar>portal-jems-lib.jar</jar>
+            </dependency>
         </dependencies>
 	
         <build>

Copied: labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java (from rev 8927, labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java_old)
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java	2007-01-20 11:22:46 UTC (rev 8934)
@@ -0,0 +1,304 @@
+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(ForgeHelper.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(
+                            ForgeHelper.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) {
+        // TODO temporary for freezone
+        String projectParam = invocation.getServerContext().getClientRequest()
+                .getParameter(Constants.PROJECT_PARAM);
+        if (projectParam != null) {
+            setAttribute(invocation, Constants.PROJECT_PARAM, projectParam);
+        }
+
+        // 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(ForgeHelper.LABS_PORTAL);
+        if ((tokens.length > 1) && (projects.projectExists(tokens[1]))) {
+            /*
+             * The user requested a project page (/projectId). It will be
+             * unset, if necessary, in the AttributesFilter.
+             */
+            setAttribute(invocation, Constants.PROJECT_PARAM, 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 {
+
+    }
+}

Deleted: labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java_old
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java_old	2007-01-20 09:33:16 UTC (rev 8933)
+++ labs/jbosslabs/trunk/portal-extensions-2.6/forge-mapper/src/java/org/jboss/labs/mapper/LabsCommandFactory.java_old	2007-01-20 11:22:46 UTC (rev 8934)
@@ -1,302 +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.controller.command.mapper.AbstractCommandFactory;
-import org.jboss.portal.core.controller.command.mapper.CommandFactory;
-import org.jboss.portal.core.controller.command.RenderPageCommand;
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.server.ServerInvocation;
-import org.jboss.portal.portlet.PortletRequestDecoder;
-import org.jboss.portal.common.invocation.InvocationException;
-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(String 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.getRequest().getContext().getClientRequest().setAttribute(name, value);
-        invocation.getRequest().getContext().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.getResponse().getContext().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(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(ForgeHelper.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(
-                            ForgeHelper.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 portalContextPath,
-                                       String portalRequestPath) {
-        // TODO temporary for freezone
-        String projectParam = invocation.getRequest().getContext().getClientRequest()
-                .getParameter(Constants.PROJECT_PARAM);
-        if (projectParam != null) {
-            setAttribute(invocation, Constants.PROJECT_PARAM, projectParam);
-        }
-
-        // 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.getRequest().getContext().getParameterMap().get(
-                PortletRequestDecoder.META_PARAMETER) != null) {
-            return nextFactory.doMapping(invocation, 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, portalContextPath, portalRequestPath);
-        }
-
-        ControllerCommand c;
-        String[] tokens = portalRequestPath.split("[/]", 3);
-        Projects projects = ProjectsHelper.getProjects(ForgeHelper.LABS_PORTAL);
-        if ((tokens.length > 1) && (projects.projectExists(tokens[1]))) {
-            /*
-             * The user requested a project page (/projectId). It will be
-             * unset, if necessary, in the AttributesFilter.
-             */
-            setAttribute(invocation, Constants.PROJECT_PARAM, 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 {
-
-    }
-}

Modified: labs/jbosslabs/trunk/portal-extensions-2.6/maven.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-2.6/maven.xml	2007-01-20 09:33:16 UTC (rev 8933)
+++ labs/jbosslabs/trunk/portal-extensions-2.6/maven.xml	2007-01-20 11:22:46 UTC (rev 8934)
@@ -260,6 +260,8 @@
 
 	<!-- Convenience goal that does clean, build, deploy -->
 	<goal name="all">
+		<ant:delete dir="${forge.jar.dest}" />
+
 		<attainGoal name="prepare-repo" />
 
 		<j:set var="goal" value="clean,build,deploy" />




More information about the jboss-svn-commits mailing list