[jboss-svn-commits] JBL Code SVN: r10538 - in labs/jbosslabs/trunk/portal-extensions-adam: configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF and 10 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Mar 26 11:56:18 EDT 2007


Author: adamw
Date: 2007-03-26 11:56:17 -0400 (Mon, 26 Mar 2007)
New Revision: 10538

Added:
   labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml.old
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/tags/
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/tags/from_link.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/tags/post_link.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/AbstractProjectPortletDelegateCF.java
   labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/BlogCF.java
   labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/AbstractLabsProjectPortletUrlFactory.java
   labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/BlogUrlFactory.java
Modified:
   labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml
   labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml
   labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml.old
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/blog.taglib.xml
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/faces-config.xml
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet.xml
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/lib/jboss-blog-core.jar
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/lib/portal-identity-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/src/java/org/jboss/forge/common/facelets/LabsFaceletsResourceResolver.java
   labs/jbosslabs/trunk/portal-extensions-adam/forge-common/src/java/org/jboss/forge/common/FilesFromRepoFilter.java
   labs/jbosslabs/trunk/portal-extensions-adam/forge-common/src/java/org/jboss/forge/common/PermissionTools.java
   labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/PortalObjectCFImpl.java
   labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/DownloadCF.java
   labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/DownloadUrlFactory.java
   labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/java/org/jboss/forge/projects/downloads/Downloads.java
   labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/web/WEB-INF/jboss-portlet.xml
   labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/web/WEB-INF/web.xml
Log:
Blog mapper

Modified: labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml	2007-03-26 15:56:17 UTC (rev 10538)
@@ -34,6 +34,7 @@
       <attribute name="ConfigLocation">conf/config.xml</attribute>
    </mbean>
 
+   <!-- DTD repository -->
    <mbean
       code="org.jboss.portal.server.impl.xml.EntityResolverService"
       name="portal:service=EntityResolver"
@@ -50,6 +51,15 @@
       </attribute>
    </mbean>
 
+   <!-- Runtime context for running portlet container -->
+   <mbean
+      code="org.jboss.portal.web.jboss.JBossWebContext"
+      name="portal:service=ServletContainerContext"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+
    <!-- Portal security services-->
    <mbean
       code="org.jboss.portal.security.impl.JBossAuthorizationDomainRegistryImpl"
@@ -103,6 +113,7 @@
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
       <xmbean/>
+      <attribute name="CacheUser">true</attribute>
       <depends>portal:service=Module,type=IdentityServiceController</depends>
    </mbean>
    <mbean
@@ -255,6 +266,9 @@
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
       <xmbean/>
+      <depends
+         optional-attribute-name="ServletContainerContext"
+         proxy-type="attribute">portal:service=ServletContainerContext</depends>
    </mbean>
    <mbean
       code="org.jboss.portal.portlet.aspects.portlet.PortletSessionSynchronizationInterceptor"
@@ -491,7 +505,7 @@
 
    <!-- Registries -->
    <mbean
-      code="org.jboss.portal.portlet.container.PortletApplicationRegistryImpl"
+      code="org.jboss.portal.portlet.impl.container.PortletApplicationRegistryImpl"
       name="portal:service=WebAppRegistry"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
@@ -563,6 +577,17 @@
          proxy-type="attribute">portal:container=Instance</depends>
       <attribute name="ContentType">portlet</attribute>
    </mbean>
+   <mbean
+      code="org.jboss.portal.core.impl.model.content.generic.GenericContentHandler"
+      name="portal:service=ContentHandler,type=generic"
+      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">generic</attribute>
+   </mbean>
 
    <!-- Customization manager -->
    <mbean
@@ -661,7 +686,7 @@
       <depends
          optional-attribute-name="DelegateFactory"
          proxy-type="attribute">portal:commandFactory=PortalObject</depends>
-   </mbean>-->
+   </mbean> -->
    <mbean
       code="org.jboss.portal.core.controller.command.mapper.SimpleCommandFactory"
       name="portal:commandFactory=SignOut"
@@ -705,50 +730,6 @@
          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>
 
    <!-- LABS command factories -->
 
@@ -815,6 +796,23 @@
          optional-attribute-name="PortalObjectCF"
          proxy-type="attribute">portal:commandFactory=LabsPortalObject</depends>
    </mbean>
+   <mbean
+      code="org.jboss.labs.mapper.command.delegating.page.BlogCF"
+      name="portal:commandFactory=Blog"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">blog</attribute>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="PageDelegatingCF"
+         proxy-type="attribute">portal:commandFactory=LabsPageDelegating</depends>
+      <depends
+         optional-attribute-name="PortalObjectCF"
+         proxy-type="attribute">portal:commandFactory=LabsPortalObject</depends>
+   </mbean>
 
    <mbean
       code="org.jboss.labs.mapper.command.PortalObjectCFImpl"
@@ -886,30 +884,6 @@
          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>
 
    <!-- LABS URL factories -->
 
@@ -949,6 +923,20 @@
          optional-attribute-name="Factory"
          proxy-type="attribute">portal:urlFactory=Delegating</depends>
    </mbean>
+   <mbean
+      code="org.jboss.labs.mapper.url.BlogUrlFactory"
+      name="portal:urlFactory=Blog"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <attribute name="Path">blog</attribute>
+      <xmbean/>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="Factory"
+         proxy-type="attribute">portal:urlFactory=Delegating</depends>
+   </mbean>
 
    <!-- The federating portlet invoker -->
    <mbean
@@ -1035,44 +1023,36 @@
          proxy-type="attribute">portal:service=PortletInvoker,type=Federating</depends>
    </mbean>
 
-   <!-- The content editor registry -->
+   <!-- The content renderer registry -->
    <mbean
-      code="org.jboss.portal.core.portlet.dashboard.ContentEditorRegistryService"
-      name="portal:service=ContentEditorRegistry"
+      code="org.jboss.portal.core.impl.model.portal.content.ContentRendererRegistryService"
+      name="portal:service=ContentRendererRegistry"
       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"
+      code="org.jboss.portal.core.impl.model.portal.content.PortletContentRenderer"
+      name="portal:service=ContentRenderer,type=portlet"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
       <xmbean/>
+      <attribute name="ContentType">portlet</attribute>
       <depends
          optional-attribute-name="Registry"
-         proxy-type="attribute">portal:service=ContentEditorRegistry</depends>
+         proxy-type="attribute">portal:service=ContentRendererRegistry</depends>
       <depends
-         optional-attribute-name="InstanceContainer"
-         proxy-type="attribute">portal:container=Instance</depends>
-      <attribute name="ContentType">portlet</attribute>
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</depends>
    </mbean>
-
-   <!-- The content renderer registry -->
    <mbean
-      code="org.jboss.portal.core.impl.model.portal.content.ContentRendererRegistryService"
-      name="portal:service=ContentRendererRegistry"
+      code="org.jboss.portal.core.impl.model.portal.content.GenericPortletContentRenderer"
+      name="portal:service=ContentRenderer,type=generic"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
       <xmbean/>
-   </mbean>
-   <mbean
-      code="org.jboss.portal.core.impl.model.portal.content.PortletContentRenderer"
-      name="portal:service=ContentRenderer,type=portlet"
-      xmbean-dd=""
-      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-      <xmbean/>
-      <attribute name="ContentType">portlet</attribute>
+      <attribute name="ContentType">generic</attribute>
+      <attribute name="DecorateContent">true</attribute>
       <depends
          optional-attribute-name="Registry"
          proxy-type="attribute">portal:service=ContentRendererRegistry</depends>

Added: labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml.old
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml.old	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml.old	2007-03-26 15:56:17 UTC (rev 10538)
@@ -0,0 +1,1332 @@
+<?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>
+
+   <!-- 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>
+
+   <!-- 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.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>
+
+   <!-- 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/>
+      <attribute name="DefaultThemeName">renaissance</attribute>
+   </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/>
+      <attribute name="DefaultLayoutName">generic</attribute>
+   </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.service.IdentityEventManagerService"
+      name="portal:service=IdentityEventManager"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <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
+         optional-attribute-name="IdentityEventBroadcaster"
+         proxy-type="attribute">portal:service=IdentityEventManager</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>
+
+   <!-- 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>
+
+   <!-- 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>
+
+   <!-- Integrate identity -->
+   <mbean
+      code="org.jboss.portal.core.identity.DashboardBridge"
+      name="portal:service=IdentityDashboardBridge"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="IdentityEventEmitter"
+         proxy-type="attribute">portal:service=IdentityEventManager</depends>
+      <depends
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.identity.SecurityBridge"
+      name="portal:service=IdentitySecurityBridge"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="IdentityEventEmitter"
+         proxy-type="attribute">portal:service=IdentityEventManager</depends>
+      <depends
+         optional-attribute-name="DynamicLoginConfig"
+         proxy-type="attribute">portal:service=JAASLoginModule</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/>
+      <!-- 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>
+
+   <!-- LABS command factories -->
+
+   <mbean
+      code="org.jboss.labs.mapper.command.MainCF"
+      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="PageDelegatingCF"
+         proxy-type="attribute">portal:commandFactory=LabsPageDelegating</depends>
+      <depends
+         optional-attribute-name="PortalObjectCF"
+         proxy-type="attribute">portal:commandFactory=LabsPortalObject</depends>
+   </mbean>
+
+   <mbean
+      code="org.jboss.labs.mapper.command.delegating.page.PageDelegatingCFImpl"
+      name="portal:commandFactory=LabsPageDelegating"
+      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.command.delegating.page.WikiCF"
+      name="portal:commandFactory=Wiki"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">wiki</attribute>
+      <attribute name="PageName">labswiki</attribute>
+      <attribute name="WindowName">WikiPortletWindow</attribute>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="PageDelegatingCF"
+         proxy-type="attribute">portal:commandFactory=LabsPageDelegating</depends>
+      <depends
+         optional-attribute-name="PortalObjectCF"
+         proxy-type="attribute">portal:commandFactory=LabsPortalObject</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.labs.mapper.command.delegating.page.DownloadCF"
+      name="portal:commandFactory=Download"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="Path">downloads</attribute>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="PageDelegatingCF"
+         proxy-type="attribute">portal:commandFactory=LabsPageDelegating</depends>
+      <depends
+         optional-attribute-name="PortalObjectCF"
+         proxy-type="attribute">portal:commandFactory=LabsPortalObject</depends>
+   </mbean>
+
+   <mbean
+      code="org.jboss.labs.mapper.command.PortalObjectCFImpl"
+      name="portal:commandFactory=LabsPortalObject"
+      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>shotoku:service=svn</depends>
+   </mbean>
+
+   <!-- URL factories -->
+   <!-- LABS -->
+   <mbean
+      code="org.jboss.labs.mapper.url.LabsDelegatingURLFactoryService"
+      name="portal:urlFactory=Delegating"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <!-- LABS -->
+      <depends
+         optional-attribute-name="NextFactory"
+         proxy-type="attribute">portal:urlFactory=LabsMain</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>-->
+   <!-- LABS
+   <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>
+
+   <!-- LABS URL factories -->
+
+   <mbean
+      code="org.jboss.labs.mapper.url.LabsMainUrlFactory"
+      name="portal:urlFactory=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>
+   </mbean>
+   <mbean
+      code="org.jboss.labs.mapper.url.WikiUrlFactory"
+      name="portal:urlFactory=Wiki"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <attribute name="Path">wiki</attribute>
+      <attribute name="PageName">labswiki</attribute>
+      <xmbean/>
+      <depends
+         optional-attribute-name="Factory"
+         proxy-type="attribute">portal:urlFactory=Delegating</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.labs.mapper.url.DownloadUrlFactory"
+      name="portal:urlFactory=Download"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <attribute name="Path">downloads</attribute>
+      <xmbean/>
+      <depends
+         optional-attribute-name="Container"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends
+         optional-attribute-name="Factory"
+         proxy-type="attribute">portal:urlFactory=Delegating</depends>
+   </mbean>
+
+   <!-- The federating portlet invoker -->
+   <mbean
+      code="org.jboss.portal.portlet.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.portlet.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 content editor registry -->
+   <mbean
+      code="org.jboss.portal.core.portlet.dashboard.ContentEditorRegistryService"
+      name="portal:service=ContentEditorRegistry"
+      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:service=ContentEditorRegistry</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+      <attribute name="ContentType">portlet</attribute>
+   </mbean>
+
+   <!-- The content renderer registry -->
+   <mbean
+      code="org.jboss.portal.core.impl.model.portal.content.ContentRendererRegistryService"
+      name="portal:service=ContentRendererRegistry"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.impl.model.portal.content.PortletContentRenderer"
+      name="portal:service=ContentRenderer,type=portlet"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <attribute name="ContentType">portlet</attribute>
+      <depends
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:service=ContentRendererRegistry</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>
+      <depends
+         optional-attribute-name="ContentRendererRegistry"
+         proxy-type="attribute">portal:service=ContentRendererRegistry</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>
+      <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>
+
+</server>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml	2007-03-26 15:56:17 UTC (rev 10538)
@@ -36,12 +36,12 @@
    	<servlet-name>loginServlet</servlet-name>
    	<servlet-class>org.jboss.forge.portal.LoginServlet</servlet-class>
    </servlet>
-   
+
    <servlet-mapping>
    	<servlet-name>loginServlet</servlet-name>
    	<url-pattern>/loginAction</url-pattern>
    </servlet-mapping>
-   
+
    <servlet>
    	<servlet-name>wrongLoginServlet</servlet-name>
    	<servlet-class>org.jboss.forge.portal.WrongLoginServlet</servlet-class>
@@ -51,7 +51,7 @@
 			<description>Page with information that the login was failed</description>
 	</init-param>
    </servlet>
-   
+
    <servlet-mapping>
    	<servlet-name>wrongLoginServlet</servlet-name>
    	<url-pattern>/loginFailed</url-pattern>
@@ -71,12 +71,12 @@
 			<description>Logout page that will get forwarded to</description>
 		</init-param>
 	</servlet>
-	
+
 	<servlet-mapping>
 		<servlet-name>ShowLoginPage</servlet-name>
 		<url-pattern>/showLogin</url-pattern>
 	</servlet-mapping>
-	
+
 	<servlet-mapping>
 		<servlet-name>ShowLoginPage</servlet-name>
 		<url-pattern>/logout</url-pattern>
@@ -96,17 +96,17 @@
       <filter-name>titleAndTimestampFilter</filter-name>
       <filter-class>org.jboss.forge.portal.TitleChangeFilter</filter-class>
    </filter>
-   
+
    <filter-mapping>
       <filter-name>titleAndTimestampFilter</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>
-   
+
    <filter>
       <filter-name>injectLoginLinkFilter</filter-name>
       <filter-class>org.jboss.forge.portal.InjectLoginLinks</filter-class>
    </filter>
-   
+
    <filter-mapping>
       <filter-name>injectLoginLinkFilter</filter-name>
       <url-pattern>/*</url-pattern>
@@ -116,22 +116,22 @@
 	<filter-name>autologinFilter</filter-name>
 	<filter-class>org.jboss.forge.portal.AutologinFilter</filter-class>
    </filter>
-   
+
    <filter-mapping>
       <filter-name>autologinFilter</filter-name>
       <url-pattern>/*</url-pattern>
-   </filter-mapping>   
-   
+   </filter-mapping>
+
    <filter>
       <filter-name>moveMeta</filter-name>
       <filter-class>org.jboss.forge.portal.MetaMoveFilter</filter-class>
    </filter>
-   
+
    <filter-mapping>
       <filter-name>moveMeta</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>
-   
+
    <!-- BlockPages filter -->
    <!-- TAKEN FROM SOHIL'S WEB.XML
    <filter>
@@ -144,7 +144,7 @@
 	<servlet-name>PortalServlet</servlet-name>
    </filter-mapping>
    -->
-   
+
    <!-- SSL Processor -->
    <filter>
       <filter-name>SSLProcessor</filter-name>
@@ -155,7 +155,7 @@
       <filter-name>SSLProcessor</filter-name>
       <servlet-name>PortalServletWithPathMapping</servlet-name>
    </filter-mapping>
-   
+
    <filter-mapping>
       <filter-name>SSLProcessor</filter-name>
       <servlet-name>PortalServletWithDefaultServletMapping</servlet-name>
@@ -178,7 +178,6 @@
 
    <!-- END OF LABS FILTERS -->
 
-
    <!-- The portal servlet is the main entrance point -->
    <servlet>
       <servlet-name>PortalServletWithPathMapping</servlet-name>
@@ -357,22 +356,11 @@
       <auth-method>FORM</auth-method>
       <realm-name>JBoss Portal</realm-name>
       <form-login-config>
-         <form-login-page>/showLogin</form-login-page>
-         <!-- <form-error-page>/portal/auth/portal/default/login/LoginWindow?action=1&amp;loginFailed=loginFailed</form-error-page>-->      
-         <form-error-page>/loginFailed</form-error-page>
+         <form-login-page>/login.jsp</form-login-page>
+         <form-error-page>/error.jsp</form-error-page>
       </form-login-config>
    </login-config>
 
-   <!-- TAKEN FROM SOHIL'S WEB.XML
-   <login-config>
-      <auth-method>JBOSS-FEDERATED-SSO</auth-method>
-      <realm-name>JBoss Portal</realm-name>
-      <form-login-config>
-         <form-login-page>/index.html?ctrl:id=page.default.login</form-login-page>
-         <form-error-page>/index.html?ctrl:id=window.default.LoginWindow&amp;ctrl:type=action&amp;action=loginFailed</form-error-page>
-      </form-login-config>
-   </login-config>-->
-
    <security-role>
       <role-name>Authenticated</role-name>
    </security-role>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml.old
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml.old	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml.old	2007-03-26 15:56:17 UTC (rev 10538)
@@ -1,4 +1,27 @@
 <?xml version="1.0"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.                  ~
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
 <!DOCTYPE web-app PUBLIC
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
@@ -22,6 +45,11 @@
    <servlet>
    	<servlet-name>wrongLoginServlet</servlet-name>
    	<servlet-class>org.jboss.forge.portal.WrongLoginServlet</servlet-class>
+   	<init-param>
+			<param-name>LOGIN_FAILED</param-name>
+			<param-value>/loginPage/LoginWindow?action=2&amp;loginFailed=loginFailed</param-value>
+			<description>Page with information that the login was failed</description>
+	</init-param>
    </servlet>
    
    <servlet-mapping>
@@ -32,6 +60,16 @@
 	<servlet>
 		<servlet-name>ShowLoginPage</servlet-name>
 		<servlet-class>org.jboss.forge.portal.ShowLoginPageServlet</servlet-class>
+		<init-param>
+			<param-name>LOGIN_PAGE</param-name>
+			<param-value>/loginPage</param-value>
+			<description>Login page that will get forwarded (dispatched) to</description>
+		</init-param>
+		<init-param>
+			<param-name>LOGOUT_PAGE</param-name>
+			<param-value>/</param-value>
+			<description>Logout page that will get forwarded to</description>
+		</init-param>
 	</servlet>
 	
 	<servlet-mapping>
@@ -43,7 +81,17 @@
 		<servlet-name>ShowLoginPage</servlet-name>
 		<url-pattern>/logout</url-pattern>
 	</servlet-mapping>
-   
+
+    <filter>
+      <filter-name>redirectFilter</filter-name>
+      <filter-class>org.jboss.forge.redirect.RootRedirectFilter</filter-class>
+   </filter>
+
+   <filter-mapping>
+      <filter-name>redirectFilter</filter-name>
+      <url-pattern>/*</url-pattern>
+   </filter-mapping>
+
    <filter>
       <filter-name>titleAndTimestampFilter</filter-name>
       <filter-class>org.jboss.forge.portal.TitleChangeFilter</filter-class>
@@ -53,6 +101,16 @@
       <filter-name>titleAndTimestampFilter</filter-name>
       <url-pattern>/*</url-pattern>
    </filter-mapping>
+   
+   <filter>
+      <filter-name>injectLoginLinkFilter</filter-name>
+      <filter-class>org.jboss.forge.portal.InjectLoginLinks</filter-class>
+   </filter>
+   
+   <filter-mapping>
+      <filter-name>injectLoginLinkFilter</filter-name>
+      <url-pattern>/*</url-pattern>
+   </filter-mapping>
 
    <filter>
 	<filter-name>autologinFilter</filter-name>
@@ -102,24 +160,23 @@
       <filter-name>SSLProcessor</filter-name>
       <servlet-name>PortalServletWithDefaultServletMapping</servlet-name>
    </filter-mapping>
-   
-   <!-- Attributes filter -->
+
    <filter>
-      <filter-name>AttributesFilter</filter-name>
-      <filter-class>org.jboss.forge.portal.AttributesFilter</filter-class>
+      <filter-name>PrimaryNavigationFilter</filter-name>
+      <filter-class>org.jboss.forge.portal.PrimaryNavigationFilter</filter-class>
    </filter>
 
    <filter-mapping>
-      <filter-name>AttributesFilter</filter-name>
+      <filter-name>PrimaryNavigationFilter</filter-name>
       <servlet-name>PortalServletWithPathMapping</servlet-name>
    </filter-mapping>
 
    <filter-mapping>
-      <filter-name>AttributesFilter</filter-name>
+      <filter-name>PrimaryNavigationFilter</filter-name>
       <servlet-name>PortalServletWithDefaultServletMapping</servlet-name>
    </filter-mapping>
 
-   <!-- END OF LABS FILTERS -->
+   <!-- END OF LABS FILTERS -->
 
 
    <!-- The portal servlet is the main entrance point -->
@@ -133,7 +190,7 @@
       </init-param>
       <init-param>
          <param-name>controllerName</param-name>
-         <param-value>portal:controller=Request</param-value>
+         <param-value>portal:controller=Core</param-value>
          <description>The request controller for the portal servlet</description>
       </init-param>
       <load-on-startup>0</load-on-startup>
@@ -154,7 +211,7 @@
       </init-param>
       <init-param>
          <param-name>controllerName</param-name>
-         <param-value>portal:controller=Request</param-value>
+         <param-value>portal:controller=Core</param-value>
          <description>The request controller for the portal servlet</description>
       </init-param>
       <load-on-startup>0</load-on-startup>
@@ -188,7 +245,7 @@
       <url-pattern>/authsec/*</url-pattern>
    </servlet-mapping>
 
-   <!-- Force the mapping of the index.jsp -->
+   <!-- Force the mapping of the jsp and images because of the default servlet replacement -->
    <servlet-mapping>
       <servlet-name>jsp</servlet-name>
       <url-pattern>/login.jsp</url-pattern>
@@ -197,6 +254,38 @@
       <servlet-name>jsp</servlet-name>
       <url-pattern>/error.jsp</url-pattern>
    </servlet-mapping>
+   <servlet-mapping>
+      <servlet-name>default</servlet-name>
+      <url-pattern>/images/login_bottom.png</url-pattern>
+   </servlet-mapping>
+   <servlet-mapping>
+      <servlet-name>default</servlet-name>
+      <url-pattern>/images/login_bottom_left.png</url-pattern>
+   </servlet-mapping>
+   <servlet-mapping>
+      <servlet-name>default</servlet-name>
+      <url-pattern>/images/login_bottom_right.png</url-pattern>
+   </servlet-mapping>
+   <servlet-mapping>
+      <servlet-name>default</servlet-name>
+      <url-pattern>/images/login_left.png</url-pattern>
+   </servlet-mapping>
+   <servlet-mapping>
+      <servlet-name>default</servlet-name>
+      <url-pattern>/images/login_right.png</url-pattern>
+   </servlet-mapping>
+   <servlet-mapping>
+      <servlet-name>default</servlet-name>
+      <url-pattern>/images/login_top.png</url-pattern>
+   </servlet-mapping>
+   <servlet-mapping>
+      <servlet-name>default</servlet-name>
+      <url-pattern>/images/login_top_left.png</url-pattern>
+   </servlet-mapping>
+   <servlet-mapping>
+      <servlet-name>default</servlet-name>
+      <url-pattern>/images/login_top_right.png</url-pattern>
+   </servlet-mapping>
 
    <session-config>
       <session-timeout>15</session-timeout>
@@ -270,7 +359,7 @@
       <form-login-config>
          <form-login-page>/showLogin</form-login-page>
          <!-- <form-error-page>/portal/auth/portal/default/login/LoginWindow?action=1&amp;loginFailed=loginFailed</form-error-page>-->      
-         <form-error-page>/portal/loginFailed</form-error-page>
+         <form-error-page>/loginFailed</form-error-page>
       </form-login-config>
    </login-config>
 
@@ -287,4 +376,33 @@
    <security-role>
       <role-name>Authenticated</role-name>
    </security-role>
+
+   <!-- AJAX -->
+
+   <!-- The portal servlet for ajax requests -->
+   <servlet>
+      <servlet-name>PortalServletForAjax</servlet-name>
+      <servlet-class>org.jboss.portal.server.servlet.PortalServlet</servlet-class>
+      <init-param>
+         <param-name>asDefaultServlet</param-name>
+         <param-value>false</param-value>
+         <description>The servlet needs to know wether it is set as a default servlet or not</description>
+      </init-param>
+      <init-param>
+         <param-name>controllerName</param-name>
+         <param-value>portal:controller=Ajax</param-value>
+         <description>The request controller for the portal servlet</description>
+      </init-param>
+      <load-on-startup>0</load-on-startup>
+      <security-role-ref>
+        <role-name>Authenticated</role-name>
+        <role-link>Authenticated</role-link>
+      </security-role-ref>
+   </servlet>
+
+   <!-- Provide secure access to authenticated users -->
+   <servlet-mapping>
+      <servlet-name>PortalServletForAjax</servlet-name>
+      <url-pattern>/ajax/*</url-pattern>
+   </servlet-mapping>
 </web-app>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/blog.taglib.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/blog.taglib.xml	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/blog.taglib.xml	2007-03-26 15:56:17 UTC (rev 10538)
@@ -8,4 +8,26 @@
         <tag-name>isAllowed</tag-name>
         <handler-class>org.jboss.blog.service.permissions.acl.ACLTagHandler</handler-class>
     </tag>
+
+    <tag>
+        <tag-name>postLink</tag-name>
+        <source>tags/post_link.xhtml</source>
+    </tag>
+
+    <tag>
+        <tag-name>fromLink</tag-name>
+        <source>tags/from_link.xhtml</source>
+    </tag>
+
+    <function>
+        <function-name>postLink</function-name>
+        <function-class>org.jboss.blog.tools.UITools</function-class>
+        <function-signature>java.lang.String createPostLink(java.lang.String)</function-signature>
+    </function>
+
+    <function>
+        <function-name>fromLink</function-name>
+        <function-class>org.jboss.blog.tools.UITools</function-class>
+        <function-signature>java.lang.String createFromLink(java.lang.Integer)</function-signature>
+    </function>
 </facelet-taglib>
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/faces-config.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/faces-config.xml	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/faces-config.xml	2007-03-26 15:56:17 UTC (rev 10538)
@@ -25,6 +25,14 @@
             <property-name>state</property-name>
             <value>#{state}</value>
         </managed-property>
+        <managed-property>
+            <property-name>postParam</property-name>
+            <value>#{param.post}</value>
+        </managed-property>
+        <managed-property>
+            <property-name>fromParam</property-name>
+            <value>#{param.from}</value>
+        </managed-property>
     </managed-bean>
 
     <managed-bean>
@@ -86,7 +94,7 @@
         <from-view-id>*</from-view-id>
         <navigation-case>
             <from-outcome>blog_view</from-outcome>
-            <to-view-id>/views/index.xhtml</to-view-id>
+            <to-view-id>/views/blog_view.xhtml</to-view-id>
         </navigation-case>
     </navigation-rule>
 
@@ -100,7 +108,7 @@
 
     <!-- Post edit/new/del -->
     <navigation-rule>
-        <from-view-id>/views/index.xhtml</from-view-id>
+        <from-view-id>/views/blog_view.xhtml</from-view-id>
         <navigation-case>
             <from-outcome>post_edit</from-outcome>
             <to-view-id>/views/post_edit.xhtml</to-view-id>
@@ -116,7 +124,7 @@
     </navigation-rule>
 
     <navigation-rule>
-        <from-view-id>/views/index.xhtml</from-view-id>
+        <from-view-id>/views/blog_view.xhtml</from-view-id>
         <navigation-case>
             <from-outcome>post_new</from-outcome>
             <to-view-id>/views/post_new.xhtml</to-view-id>
@@ -143,7 +151,7 @@
 
     <!-- Admin -->
     <navigation-rule>
-        <from-view-id>/views/index.xhtml</from-view-id>
+        <from-view-id>/views/blog_view.xhtml</from-view-id>
         <navigation-case>
             <from-outcome>admin_panel</from-outcome>
             <to-view-id>/views/admin_panel.xhtml</to-view-id>
@@ -168,7 +176,7 @@
 
     <!-- Blog edit/new/del -->
     <navigation-rule>
-        <from-view-id>/views/index.xhtml</from-view-id>
+        <from-view-id>/views/blog_view.xhtml</from-view-id>
         <navigation-case>
             <from-outcome>blog_edit</from-outcome>
             <to-view-id>/views/blog_edit.xhtml</to-view-id>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet.xml	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet.xml	2007-03-26 15:56:17 UTC (rev 10538)
@@ -7,7 +7,7 @@
         <portlet-class>org.jboss.blog.portlet.BlogFacesPortlet</portlet-class>
         <init-param>
             <name>default-view</name>
-            <value>/views/index.xhtml</value>
+            <value>/views/blog_view.xhtml</value>
         </init-param>
         <expiration-cache>0</expiration-cache>
         <supports>

Added: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/tags/from_link.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/tags/from_link.xhtml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/tags/from_link.xhtml	2007-03-26 15:56:17 UTC (rev 10538)
@@ -0,0 +1,3 @@
+<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html">
+    <h:outputLink value="#{blog:fromLink(from)}">#{value}</h:outputLink>
+</ui:composition>
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/tags/post_link.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/tags/post_link.xhtml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/tags/post_link.xhtml	2007-03-26 15:56:17 UTC (rev 10538)
@@ -0,0 +1,3 @@
+<ui:composition xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html">
+    <h:outputLink value="#{blog:postLink(post)}">#{value}</h:outputLink>
+</ui:composition>
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/lib/jboss-blog-core.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/lib/portal-identity-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/src/java/org/jboss/forge/common/facelets/LabsFaceletsResourceResolver.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/src/java/org/jboss/forge/common/facelets/LabsFaceletsResourceResolver.java	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/src/java/org/jboss/forge/common/facelets/LabsFaceletsResourceResolver.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -12,13 +12,19 @@
  */
 public class LabsFaceletsResourceResolver implements ResourceResolver {
     private URLStreamHandler ush;
+    private ResourceResolver defaultRR;
 
     public LabsFaceletsResourceResolver() {
         ush = new ShotokuURLStreamHandler();
+        defaultRR = new DefaultResourceResolver();
     }
 
     public URL resolveUrl(String file) {
         try {
+            if ((file != null) && (file.startsWith("/WEB-INF"))) {
+                return defaultRR.resolveUrl(file);
+            }
+
             return new URL("shotoku", "localhost", 80, file, ush);
         } catch (MalformedURLException e) {
             return null;

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-common/src/java/org/jboss/forge/common/FilesFromRepoFilter.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-common/src/java/org/jboss/forge/common/FilesFromRepoFilter.java	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-common/src/java/org/jboss/forge/common/FilesFromRepoFilter.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -103,14 +103,14 @@
 					.indexOf(ForgeHelper.REPO_ACCESS_DIR)
 					+ repoAccessDirLength + 1);
 
-			Node requestedNode;
+            Node requestedNode;
 			try {
 				requestedNode = contentManager.getNode(requestedFile);
 			} catch (ResourceDoesNotExist e) {
 				throw new ServletException(e);
 			}
-			
-			if (requestedFile.toLowerCase().endsWith("jsp")) {
+
+            if (requestedFile.toLowerCase().endsWith("jsp")) {
 				// If the requested page is a jsp, then we copy it (if a newer
                 // version is available) and dispatch a request for it.
                 String filePath = basePath + separator + requestedFile;

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-common/src/java/org/jboss/forge/common/PermissionTools.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-common/src/java/org/jboss/forge/common/PermissionTools.java	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-common/src/java/org/jboss/forge/common/PermissionTools.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -34,9 +34,18 @@
         }
     }
 
+    public static UserModule getUserModule() {
+        try {
+            return (UserModule)new InitialContext().lookup("java:portal/UserModule");
+        } catch (NamingException e) {
+            log.error(e);
+            return null;
+        }
+    }
+
     public static boolean isUserInRole(User user, String roleName) {
         try {
-            for (Object roleObj : getMembershipModule().getRoles(user)) {
+            for (Object roleObj : getMembershipModule().getRoles(getUserModule().findUserById(user.getId()))) {
                 Role role = (Role) roleObj;
 
                 if (Tools.objectsEqual(roleName, role.getName())) {
@@ -53,7 +62,7 @@
     public static List<String> getRoleNames(User user) {
         List<String> ret = new ArrayList<String>();
         try {
-            for (Object roleObj : getMembershipModule().getRoles(user)) {
+            for (Object roleObj : getMembershipModule().getRoles(getUserModule().findUserById(user.getId()))) {
                 ret.add(((Role) roleObj).getName());
             }
         } catch (IdentityException e) {
@@ -65,7 +74,7 @@
     
     public static void setRoles(User user, Set roles) {
     	try {
-			getMembershipModule().assignRoles(user, roles);
+			getMembershipModule().assignRoles(getUserModule().findUserById(user.getId()), roles);
 		} catch (IdentityException e) {
 			log.error(e);
 		}

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/PortalObjectCFImpl.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/PortalObjectCFImpl.java	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/PortalObjectCFImpl.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -89,7 +89,7 @@
 
         // If any additional navigational parameters where passed and if we
         // can add them, adding them.
-        StateString navState = decoder.getNavigationalstate();
+        StateString navState = decoder.getNavigationalState();
 
         // Returning an appropriate command.
         switch (decoder.getType())

Added: labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/AbstractProjectPortletDelegateCF.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/AbstractProjectPortletDelegateCF.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/AbstractProjectPortletDelegateCF.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -0,0 +1,75 @@
+package org.jboss.labs.mapper.command.delegating.page;
+
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.core.model.portal.Page;
+import org.jboss.portal.core.model.portal.Window;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.portal.portlet.impl.PortletRequestDecoder;
+import org.jboss.labs.mapper.PathParser;
+import org.jboss.forge.common.Constants;
+import org.jboss.forge.common.exceptions.ServiceRetrievalException;
+import org.jboss.forge.common.ejb3.ProjectPagesService;
+import org.jboss.forge.common.ejb3.LabsServices;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public abstract class AbstractProjectPortletDelegateCF extends AbstractPageDelegateCF {
+    public abstract String getPortletName();
+    public abstract void fillParams(PathParser parser, Map<String, Object> params);
+
+    public ControllerCommand doMapping(ServerInvocation invocation, String host,
+                                       String contextPath, PathParser parser, Page page) {
+        String projectId = page.getDeclaredProperty(Constants.PORTAL_OBJECT_LABS_MARKER);
+
+        // Only project pages are supported.
+        if (projectId == null) {
+            return null;
+        }
+
+        ProjectPagesService pps;
+
+        try {
+            pps = LabsServices.getProjectPagesService();
+        } catch (ServiceRetrievalException e) {
+            return null;
+        }
+
+        String pageName = null;
+        if (!projectId.equals(page.getName())) {
+            pageName = page.getName();
+        }
+
+        // First trying a window with a possible unique-id
+        Window portletWindow = page.getWindow(pps.createWindowId(getPortletName(), projectId, pageName,
+                parser.getFirstToken()));
+        if (portletWindow == null) {
+            // Trying if there is no single downloads window.
+            portletWindow = page.getWindow(pps.createWindowId(getPortletName(), projectId, pageName, null));
+        } else {
+            // Forgetting the unique-id.
+            parser.proceed();
+        }
+
+        // Checking if a downloads window was found on the page.
+        if (portletWindow == null) {
+            return null;
+        }
+
+        Map<String, Object> params = new HashMap<String, Object>();
+        fillParams(parser, params);
+
+        if (hasMetaParameter(invocation)) {
+			return getPortalObjectCF().doMapping(invocation, portletWindow,
+					params, false);
+		} else {
+			params.put(PortletRequestDecoder.META_PARAMETER, Integer
+					.toString(PortletRequestDecoder.RENDER_MASK));
+			return getPortalObjectCF().doMapping(invocation, portletWindow,
+					params, false);
+		}
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/BlogCF.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/BlogCF.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/BlogCF.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -0,0 +1,23 @@
+package org.jboss.labs.mapper.command.delegating.page;
+
+import org.jboss.labs.mapper.PathParser;
+
+import java.util.Map;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class BlogCF extends AbstractProjectPortletDelegateCF {
+    protected final static String DOWNLOAD_PORTLET_NAME = "downloads";
+
+    public String getPortletName() {
+        return "blog";
+    }
+
+    public void fillParams(PathParser parser, Map<String, Object> params) {
+        String current = parser.getCurrent();
+        if (current != null) {
+            params.put("post", parser.getCurrent());
+        }
+    }
+}

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/DownloadCF.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/DownloadCF.java	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/command/delegating/page/DownloadCF.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -1,75 +1,20 @@
 package org.jboss.labs.mapper.command.delegating.page;
 
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.core.model.portal.Page;
-import org.jboss.portal.core.model.portal.Window;
-import org.jboss.portal.core.model.portal.PortalObjectContainer;
-import org.jboss.portal.server.ServerInvocation;
-import org.jboss.portal.portlet.impl.PortletRequestDecoder;
 import org.jboss.labs.mapper.PathParser;
-import org.jboss.forge.common.Constants;
-import org.jboss.forge.common.exceptions.ServiceRetrievalException;
-import org.jboss.forge.common.ejb3.LabsServices;
-import org.jboss.forge.common.ejb3.ProjectPagesService;
 
 import java.util.Map;
-import java.util.HashMap;
 
 /**
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
  */
-public class DownloadCF extends AbstractPageDelegateCF {
+public class DownloadCF extends AbstractProjectPortletDelegateCF {
     protected final static String DOWNLOAD_PORTLET_NAME = "downloads";
 
-    public ControllerCommand doMapping(ServerInvocation invocation, String host,
-                                       String contextPath, PathParser parser, Page page) {
-        String projectId = page.getDeclaredProperty(Constants.PORTAL_OBJECT_LABS_MARKER);
+    public String getPortletName() {
+        return "downloads";
+    }
 
-        // Only project pages are supported.
-        if (projectId == null) {
-            return null;
-        }
-
-        ProjectPagesService pps;
-
-        try {
-            pps = LabsServices.getProjectPagesService();
-        } catch (ServiceRetrievalException e) {
-            return null;
-        }
-
-        String pageName = null;
-        if (!projectId.equals(page.getName())) {
-            pageName = page.getName();
-        }
-
-        // First trying a window with a possible unique-id
-        Window downloadsWindow = page.getWindow(pps.createWindowId(DOWNLOAD_PORTLET_NAME, projectId, pageName,
-                parser.getFirstToken()));
-        if (downloadsWindow == null) {
-            // Trying if there is no single downloads window.
-            downloadsWindow = page.getWindow(pps.createWindowId(DOWNLOAD_PORTLET_NAME, projectId, pageName, null));
-        } else {
-            // Forgetting the unique-id.
-            parser.proceed();
-        }
-
-        // Checking if a downloads window was found on the page.
-        if (downloadsWindow == null) {
-            return null;
-        }
-
-        Map<String, Object> params = new HashMap<String, Object>();
+    public void fillParams(PathParser parser, Map<String, Object> params) {
         params.put("category", parser.getCurrent());
-
-        if (hasMetaParameter(invocation)) {
-			return getPortalObjectCF().doMapping(invocation, downloadsWindow,
-					params, false);
-		} else {
-			params.put(PortletRequestDecoder.META_PARAMETER, Integer
-					.toString(PortletRequestDecoder.RENDER_MASK));
-			return getPortalObjectCF().doMapping(invocation, downloadsWindow,
-					params, false);
-		}
     }
 }

Added: labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/AbstractLabsProjectPortletUrlFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/AbstractLabsProjectPortletUrlFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/AbstractLabsProjectPortletUrlFactory.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -0,0 +1,88 @@
+package org.jboss.labs.mapper.url;
+
+import org.jboss.portal.core.model.portal.PortalObjectContainer;
+import org.jboss.portal.core.model.portal.PortalObjectId;
+import org.jboss.portal.core.model.portal.command.InvokeWindowCommand;
+import org.jboss.portal.core.model.portal.command.PortalObjectCommand;
+import org.jboss.portal.core.model.portal.command.InvokePortletWindowActionCommand;
+import org.jboss.portal.core.model.portal.command.InvokePortletWindowRenderCommand;
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.server.ServerURL;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.portlet.PortletParametersStateString;
+import org.jboss.forge.common.Constants;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public abstract class AbstractLabsProjectPortletUrlFactory extends AbstractLabsDelegateUrlFactory {
+    private PortalObjectContainer container;
+
+    public PortalObjectContainer getContainer() {
+        return container;
+    }
+
+    public void setContainer(PortalObjectContainer container) {
+        this.container = container;
+    }
+
+    public abstract void buildPathFromPortletParameters(StringBuffer sb, PortletParametersStateString ppss);
+    public abstract void finishUrl(ServerURL url);
+
+    public ServerURL doMapping(ServerInvocation invocation, ControllerCommand cmd) {
+        if (cmd == null) {
+            throw new IllegalArgumentException("No null command accepted");
+        }
+
+        if (cmd instanceof InvokeWindowCommand) {
+            PortalObjectCommand poc = (PortalObjectCommand) cmd;
+            PortalObjectId targetId = poc.getTargetId();
+
+            if (targetId.getLength() >= 0) {
+                return null;
+            }
+
+            if (targetId.getName(Math.abs(targetId.getLength()) - 1).toLowerCase().contains(getPath())) {
+                StringBuffer sb = new StringBuffer();
+                addToPath(sb, targetId, false);
+                addTokenToPath(sb, getPath());
+
+                InvokePortletWindowActionCommand actionCmd = null;
+                InvokePortletWindowRenderCommand renderCmd = null;
+
+                StateString navigationalState = null;
+
+                if (poc instanceof InvokePortletWindowActionCommand) {
+                    actionCmd = (InvokePortletWindowActionCommand) poc;
+                    navigationalState = actionCmd.getNavigationalState();
+                } else if (poc instanceof InvokePortletWindowRenderCommand) {
+                    renderCmd = (InvokePortletWindowRenderCommand) poc;
+                    navigationalState = renderCmd.getNavigationalState();
+                }
+
+                String uniqueId = getContainer().getObject(targetId).getDeclaredProperty(
+                        Constants.PORTAL_OBJECT_UNIQUE_ID_MARKER);
+                if (uniqueId != null) {
+                    addTokenToPath(sb, uniqueId);
+                }
+
+                if (navigationalState instanceof PortletParametersStateString) {
+                    PortletParametersStateString ppss =
+                            (PortletParametersStateString) navigationalState;
+
+                    buildPathFromPortletParameters(sb, ppss);
+                }
+
+                ServerURL url = convertToURL(sb);
+                encodeUrl(actionCmd, renderCmd, url, navigationalState);
+
+                finishUrl(url);
+
+                return url;
+            }
+        }
+
+        return null;
+    }
+}

Added: labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/BlogUrlFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/BlogUrlFactory.java	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/BlogUrlFactory.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -0,0 +1,84 @@
+package org.jboss.labs.mapper.url;
+
+import org.jboss.portal.server.ServerURL;
+import org.jboss.portal.server.ServerInvocation;
+import org.jboss.portal.portlet.PortletParametersStateString;
+import org.jboss.portal.portlet.StateString;
+import org.jboss.portal.core.controller.ControllerCommand;
+import org.jboss.portal.core.model.portal.command.InvokeWindowCommand;
+import org.jboss.portal.core.model.portal.command.PortalObjectCommand;
+import org.jboss.portal.core.model.portal.command.InvokePortletWindowActionCommand;
+import org.jboss.portal.core.model.portal.command.InvokePortletWindowRenderCommand;
+import org.jboss.portal.core.model.portal.PortalObjectId;
+import org.jboss.forge.common.Constants;
+
+/**
+ * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
+ */
+public class BlogUrlFactory extends AbstractLabsProjectPortletUrlFactory {
+    public void buildPathFromPortletParameters(StringBuffer sb, PortletParametersStateString ppss) {
+        if (ppss.getValue("post") != null) {
+            addTokenToPath(sb, ppss.getValue("post").toLowerCase());
+        }
+    }
+
+    public void finishUrl(ServerURL url) {
+        url.getParameterMap().remove("post");
+    }
+
+    public ServerURL doMapping(ServerInvocation invocation, ControllerCommand cmd) {
+        if (cmd == null) {
+            throw new IllegalArgumentException("No null command accepted");
+        }
+
+        if (cmd instanceof InvokeWindowCommand) {
+            PortalObjectCommand poc = (PortalObjectCommand) cmd;
+            PortalObjectId targetId = poc.getTargetId();
+            
+            if (targetId.getLength() <= 0) {
+                return null;
+            }
+            
+            if (targetId.getName(targetId.getLength() - 1).toLowerCase().contains(getPath())) {
+                StringBuffer sb = new StringBuffer();
+                addToPath(sb, targetId, false);
+                addTokenToPath(sb, getPath());
+
+                InvokePortletWindowActionCommand actionCmd = null;
+                InvokePortletWindowRenderCommand renderCmd = null;
+
+                StateString navigationalState = null;
+
+                if (poc instanceof InvokePortletWindowActionCommand) {
+                    actionCmd = (InvokePortletWindowActionCommand) poc;
+                    navigationalState = actionCmd.getNavigationalState();
+                } else if (poc instanceof InvokePortletWindowRenderCommand) {
+                    renderCmd = (InvokePortletWindowRenderCommand) poc;
+                    navigationalState = renderCmd.getNavigationalState();
+                }
+
+                String uniqueId = getContainer().getObject(targetId).getDeclaredProperty(
+                        Constants.PORTAL_OBJECT_UNIQUE_ID_MARKER);
+                if (uniqueId != null) {
+                    addTokenToPath(sb, uniqueId);
+                }
+
+                if (navigationalState instanceof PortletParametersStateString) {
+                    PortletParametersStateString ppss =
+                            (PortletParametersStateString) navigationalState;
+
+                    buildPathFromPortletParameters(sb, ppss);
+                }
+
+                ServerURL url = convertToURL(sb);
+                encodeUrl(actionCmd, renderCmd, url, navigationalState);
+
+                finishUrl(url);
+
+                return url;
+            }
+        }
+
+        return null;
+    }
+}

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/DownloadUrlFactory.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/DownloadUrlFactory.java	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-mapper/src/java/org/jboss/labs/mapper/url/DownloadUrlFactory.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -1,84 +1,19 @@
 package org.jboss.labs.mapper.url;
 
 import org.jboss.portal.server.ServerURL;
-import org.jboss.portal.server.ServerInvocation;
-import org.jboss.portal.core.controller.ControllerCommand;
-import org.jboss.portal.core.model.portal.command.*;
-import org.jboss.portal.core.model.portal.PortalObjectId;
-import org.jboss.portal.core.model.portal.PortalObjectContainer;
-import org.jboss.portal.portlet.StateString;
 import org.jboss.portal.portlet.PortletParametersStateString;
-import org.jboss.forge.common.Constants;
 
 /**
  * @author <a href="mailto:adamw at aster.pl">Adam Warski</a>
  */
-public class DownloadUrlFactory extends AbstractLabsDelegateUrlFactory {
-    private PortalObjectContainer container;
-
-    public PortalObjectContainer getContainer() {
-        return container;
+public class DownloadUrlFactory extends AbstractLabsProjectPortletUrlFactory {
+    public void buildPathFromPortletParameters(StringBuffer sb, PortletParametersStateString ppss) {
+        if (ppss.getValue("category") != null) {
+            addTokenToPath(sb, ppss.getValue("category").toLowerCase());
+        }
     }
 
-    public void setContainer(PortalObjectContainer container) {
-        this.container = container;
+    public void finishUrl(ServerURL url) {
+        url.getParameterMap().remove("category");
     }
-
-    public ServerURL doMapping(ServerInvocation invocation, ControllerCommand cmd) {
-        if (cmd == null) {
-            throw new IllegalArgumentException("No null command accepted");
-        }
-
-        if (cmd instanceof InvokeWindowCommand) {
-            PortalObjectCommand poc = (PortalObjectCommand) cmd;
-            PortalObjectId targetId = poc.getTargetId();
-
-            if (targetId.getLength() >= 0) {
-                return null;
-            }
-
-            if (targetId.getName(Math.abs(targetId.getLength()) - 1).toLowerCase().contains(getPath())) {
-                StringBuffer sb = new StringBuffer();
-                addToPath(sb, targetId, false);
-                addTokenToPath(sb, getPath());
-
-                InvokePortletWindowActionCommand actionCmd = null;
-                InvokePortletWindowRenderCommand renderCmd = null;
-
-                StateString navigationalState = null;
-
-                if (poc instanceof InvokePortletWindowActionCommand) {
-                    actionCmd = (InvokePortletWindowActionCommand) poc;
-                    navigationalState = actionCmd.getNavigationalState();                    
-                } else if (poc instanceof InvokePortletWindowRenderCommand) {
-                    renderCmd = (InvokePortletWindowRenderCommand) poc;
-                    navigationalState = renderCmd.getNavigationalState();
-                }
-
-                String uniqueId = getContainer().getObject(targetId).getDeclaredProperty(
-                        Constants.PORTAL_OBJECT_UNIQUE_ID_MARKER);
-                if (uniqueId != null) {
-                    addTokenToPath(sb, uniqueId);
-                }
-
-                if (navigationalState instanceof PortletParametersStateString) {
-                    PortletParametersStateString ppss =
-                            (PortletParametersStateString) navigationalState;
-
-                    if (ppss.getValue("category") != null) {
-                        addTokenToPath(sb, ppss.getValue("category").toLowerCase());
-                    }
-                }
-
-                ServerURL url = convertToURL(sb);
-                encodeUrl(actionCmd, renderCmd, url, navigationalState);
-                
-                url.getParameterMap().remove("category");
-
-                return url;
-            }
-        }
-
-        return null;
-    }
 }

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/java/org/jboss/forge/projects/downloads/Downloads.java
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/java/org/jboss/forge/projects/downloads/Downloads.java	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/java/org/jboss/forge/projects/downloads/Downloads.java	2007-03-26 15:56:17 UTC (rev 10538)
@@ -42,60 +42,58 @@
 
 /**
  * A portlet for project downloads.
- * 
+ *
  * @author adamw
  */
 public class Downloads extends JBossPortlet {
-	public void doView(JBossRenderRequest request, JBossRenderResponse response)
-			throws IOException {
-		response.setContentType("text/html");
+    public void doView(JBossRenderRequest request, JBossRenderResponse response)
+            throws IOException {
+        response.setContentType("text/html");
 
-		try {
-			String portalName = ForgeHelper.getPortalName(request);
-			Projects projects = ProjectsHelper.getProjects(portalName);
+        try {
+            String portalName = ForgeHelper.getPortalName(request);
+            Projects projects = ProjectsHelper.getProjects(portalName);
 
-			// Getting the selected project
-			String projectId = ProjectsHelper.getSelectedProjectId(request);
-			if (projectId == null)
-				throw new Exception("No project selected");
+            // Getting the selected project
+            String projectId = ProjectsHelper.getSelectedProjectId(request);
+            if (projectId == null)
+                throw new Exception("No project selected");
 
-			response.setTitle(projects.getProjectName(projectId) + " "
-					+ "Downloads");
+            response.setTitle(projects.getProjectName(projectId) + " "
+                    + "Downloads");
 
-			// Getting the selected category (null if no selected category)
-			String categoryId = request.getParameter("category");
+            // Getting the selected category (null if no selected category)
+            String categoryId = request.getParameter("category");
 
             request.setAttribute(DownloadsConstants.FILES, getAllFiles(projectId));
 
-			// Setting the attributes
-			request.setAttribute(ProjectsHelper.PROJECT_ID, projectId);
+            // Setting the attributes
+            request.setAttribute(ProjectsHelper.PROJECT_ID, projectId);
 
-			// set tagme attributes
-			request.setAttribute("DOWNLOAD-URL", "/" + projectId
-					+ "/downloads/" + ((categoryId != null) ? categoryId : ""));
+            // set tagme attributes
+            request.setAttribute("DOWNLOAD-URL", "/" + projectId
+                    + "/downloads/" + ((categoryId != null) ? categoryId : ""));
 
-			if (request.getUser() != null) {
-				request.setAttribute("DOWNLOAD-USER", request.getUser().getUserName());
-			}
+            if (request.getUser() != null) {
+                request.setAttribute("DOWNLOAD-USER", request.getUser().getUserName());
+            }
 
-			// Displaying the JSP
-			PortletRequestDispatcher rd = getPortletContext()
-					.getRequestDispatcher(
-							ForgeHelper.createRepoAccessPath(portalName,
-									"prj-downloads/downloads.jsp"));
-
-			rd.include(request, response);
-		} catch (Exception e) {
+            // Displaying the JSP
+            String path = ForgeHelper.createRepoAccessPath(portalName, "prj-downloads/downloads.jsp");
+            PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(path);
+                        
+            rd.include(request, response);
+        } catch (Exception e) {
             e.printStackTrace();
             response.getWriter().write("ERROR: " + e.getMessage());
-		}
-	}
+        }
+    }
 
-	private Set<File> getAllFiles(String projectId)
-			throws ServiceRetrievalException {
-		Set<File> allFiles = new TreeSet<File>(new Comparator<File>() {
+    private Set<File> getAllFiles(String projectId)
+            throws ServiceRetrievalException {
+        Set<File> allFiles = new TreeSet<File>(new Comparator<File>() {
 
-			public int compare(File o1, File o2) {
+            public int compare(File o1, File o2) {
                 if (o1 == null) {
                     if (o2 == null) return 0;
                     return -1;
@@ -110,36 +108,36 @@
                 }
 
                 return o1.getRelease().compareTo(o2.getRelease());
-			}
+            }
 
-		});
+        });
 
-		addFiles(allFiles, LabsServices.getProjectsService()
-				.getProjectDownloads(projectId).getFiles().getFile());
+        addFiles(allFiles, LabsServices.getProjectsService()
+                .getProjectDownloads(projectId).getFiles().getFile());
 
-		for (Category c : LabsServices.getProjectsService()
-				.getProjectDownloads(projectId).getCategories().getCategory()) {
-			addFilesFromCategory(allFiles, c);
-		}
+        for (Category c : LabsServices.getProjectsService()
+                .getProjectDownloads(projectId).getCategories().getCategory()) {
+            addFilesFromCategory(allFiles, c);
+        }
 
-		return allFiles;
-	}
+        return allFiles;
+    }
 
-	private void addFilesFromCategory(Set<File> allFiles, Category category) {
+    private void addFilesFromCategory(Set<File> allFiles, Category category) {
         if (category.getCategories() == null) {
             return;
         }
-        
+
         for (Category c : category.getCategories().getCategory()) {
-			addFilesFromCategory(allFiles, c);
-		}
+            addFilesFromCategory(allFiles, c);
+        }
 
-		addFiles(allFiles, category.getFiles().getFile());
-	}
+        addFiles(allFiles, category.getFiles().getFile());
+    }
 
-	private void addFiles(Set<File> allFiles, List<? extends File> filesToAdd) {
+    private void addFiles(Set<File> allFiles, List<? extends File> filesToAdd) {
 
-		allFiles.addAll(filesToAdd);
+        allFiles.addAll(filesToAdd);
 
-	}
+    }
 }

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/web/WEB-INF/jboss-portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/web/WEB-INF/jboss-portlet.xml	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/web/WEB-INF/jboss-portlet.xml	2007-03-26 15:56:17 UTC (rev 10538)
@@ -5,4 +5,34 @@
             <trans-attribute>Required</trans-attribute>
         </transaction>
     </portlet>
+    <portlet>
+        <portlet-name>InfoPortlet</portlet-name>
+        <transaction>
+            <trans-attribute>Required</trans-attribute>
+        </transaction>
+    </portlet>
+    <portlet>
+        <portlet-name>FreezonePortlet</portlet-name>
+        <transaction>
+            <trans-attribute>Required</trans-attribute>
+        </transaction>
+    </portlet>
+    <portlet>
+        <portlet-name>PodcastPortlet</portlet-name>
+        <transaction>
+            <trans-attribute>Required</trans-attribute>
+        </transaction>
+    </portlet>
+    <portlet>
+        <portlet-name>ProjectAdminPortlet</portlet-name>
+        <transaction>
+            <trans-attribute>Required</trans-attribute>
+        </transaction>
+    </portlet>
+    <portlet>
+        <portlet-name>MenuPortlet</portlet-name>
+        <transaction>
+            <trans-attribute>Required</trans-attribute>
+        </transaction>
+    </portlet>
 </portlet-app>
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/web/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/web/WEB-INF/web.xml	2007-03-26 15:55:16 UTC (rev 10537)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/web/WEB-INF/web.xml	2007-03-26 15:56:17 UTC (rev 10538)
@@ -15,7 +15,6 @@
     <filter-mapping>
         <filter-name>filesFromRepoFilter</filter-name>
         <url-pattern>/repo-access/*</url-pattern>
-        <dispatcher>INCLUDE</dispatcher>
     </filter-mapping>
 
     <!-- DEBUG only -->




More information about the jboss-svn-commits mailing list