[jboss-svn-commits] JBL Code SVN: r10706 - in labs/jbosslabs/trunk/portal-extensions-adam: binaries/portal/to-copy/jboss-portal.sar/conf and 47 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Apr 3 05:17:30 EDT 2007


Author: adamw
Date: 2007-04-03 05:17:29 -0400 (Tue, 03 Apr 2007)
New Revision: 10706

Added:
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/freemarker.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-core-samples-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/common/editProperties.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/editProperties.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/renameObject.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/dyna.js
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/templates/
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/templates/user/
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/templates/user/emailTemplate.tpl
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/templates/user/emailTemplate_fr.tpl
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/META-INF/jboss-service.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/lib/portal-core-samples-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/classes/NewsResource.properties
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/classes/NewsResource_fr.properties
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/default-object.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jboss-app.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jboss-portlet.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/info/view.jsp
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/news/edit.jsp
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/theme/wsrpSelectorTest.jsp
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/weather/edit.jsp
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/portlet-instances.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/portlet.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/web.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/news/Rss1.xsl
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/news/Rss2.xsl
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/weather/Rss.xsl
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir1/
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir1/bar.txt
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir1/foo.txt
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir2/
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir2/foo.txt
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/accessorize.gif
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/developers_banner.gif
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/dodemo.gif
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/getcode.gif
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/portlet-styles/HeaderContent.css
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/portlet-styles/HeaderContent.js
   labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.old.xml
   labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.old.xml
Removed:
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/tabTemplate.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet.tld
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/event.js
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/content/
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/portal-cms.war/WEB-INF/portlet.tld
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/help.jsp
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/index.jsp
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/normal.jsp
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet.tld
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/theme/portal-layout.tld
   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/portal-server.war/WEB-INF/web.xml.old
Modified:
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/META-INF/jboss-service.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/conf/login-config.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/jboss-portlet-api-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-api-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-bridge-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-common-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-core-admin-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-core-cms-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-core-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-core-management-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-format-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-identity-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-jems-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-portlet-federation-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-portlet-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-portlet-server-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-registration-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-samples-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-search-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-security-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-server-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-theme-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portlet-api-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/lib/portal-core-admin-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/lib/portal-faces-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/faces-config.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jboss-portlet.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/common/editPageLayout.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/editPage.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/instancesTemplate.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objectNavigation.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objectTemplate.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objects.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/portletsTemplate.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/wizard/newWindowTpl.xhtml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet-instances.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/style.css
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/builder.js
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/controls.js
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/dragdrop.js
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/effects.js
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/prototype.js
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/scriptaculous.js
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/slider.js
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/unittest.js
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/META-INF/jboss-service.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/lib/portal-cms-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/lib/portal-core-cms-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/portal-cms.war/WEB-INF/jsp/cms/editor/main.jsp
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/portal-workflow.sar/portal-workflow-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource.properties
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_es.properties
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_fr.properties
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_pt_BR.properties
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jboss-portlet.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/user/menu.jsp
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet-instances.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-management.sar/lib/portal-core-management-lib.jar
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml
   labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-server.war/error.jsp
   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/forge-blog/binaries/jboss-blog.sar/META-INF/jboss-service.xml
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/blog-object.xml
   labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet-instances.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/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/web.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-portlets/project.xml
   labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/web/WEB-INF/web.xml
Log:
New portal

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/META-INF/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/META-INF/jboss-service.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/META-INF/jboss-service.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -101,6 +101,13 @@
       <xmbean/>
    </mbean>
    <mbean
+      code="org.jboss.portal.core.event.user.UserEventInterceptor"
+      name="portal:service=Interceptor,type=Server,name=UserEvent"
+      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=""
@@ -138,6 +145,7 @@
       <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=UserEvent</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>
@@ -147,6 +155,20 @@
 
    <!-- Command stack -->
    <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.NavigationalStateInterceptor"
+      name="portal:service=Interceptor,type=Command,name=NavigationalState"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
       code="org.jboss.portal.core.aspects.controller.node.PortalNodeInterceptor"
       name="portal:service=Interceptor,type=Command,name=PortalNode"
       xmbean-dd=""
@@ -171,13 +193,6 @@
          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=""
@@ -194,10 +209,11 @@
       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=Ajax</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Command,name=NavigationalState</depends-list-element>
          <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>
@@ -560,53 +576,73 @@
       <depends
          optional-attribute-name="InstanceContainer"
          proxy-type="attribute">portal:container=Instance</depends>
+      <depends
+         optional-attribute-name="ContentProviderRegistry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
       <attribute name="SessionFactoryJNDIName">java:/portal/PortalObjectSessionFactory</attribute>
       <attribute name="CacheNaturalId">true</attribute>
    </mbean>
+
+   <!-- Customization manager -->
    <mbean
-      code="org.jboss.portal.core.impl.model.content.portlet.PortletContentHandler"
-      name="portal:service=ContentHandler,type=portlet"
+      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="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>
+      <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>
+
+   <!-- The content provider framework -->
    <mbean
-      code="org.jboss.portal.core.impl.model.content.generic.GenericContentHandler"
-      name="portal:service=ContentHandler,type=generic"
+      code="org.jboss.portal.core.impl.model.content.ContentProviderRegistryService"
+      name="portal:service=ContentProviderRegistry"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
       <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.impl.model.content.portlet.InternalPortletContentProvider"
+      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:container=PortalObject</depends>
-      <attribute name="ContentType">generic</attribute>
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
+      <depends
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
    </mbean>
-
-   <!-- Customization manager -->
    <mbean
-      code="org.jboss.portal.core.impl.model.CustomizationManagerService"
-      name="portal:service=CustomizationManager"
+      code="org.jboss.portal.core.impl.model.content.generic.GenericContentProviderRegistry"
+      name="portal:service=GenericContentProviderRegistry"
       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="Registry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
+      <depends
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</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 -->
@@ -855,44 +891,6 @@
          proxy-type="attribute">portal:service=PortletInvoker,type=Federating</depends>
    </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>
-   <mbean
-      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/>
-      <attribute name="ContentType">generic</attribute>
-      <attribute name="DecorateContent">true</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"
@@ -926,7 +924,7 @@
          proxy-type="attribute">portal:service=CustomizationManager</depends>
       <depends
          optional-attribute-name="ContentRendererRegistry"
-         proxy-type="attribute">portal:service=ContentRendererRegistry</depends>
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
    </mbean>
 
    <!-- The ajax controller -->
@@ -960,8 +958,26 @@
       <depends
          optional-attribute-name="CustomizationManager"
          proxy-type="attribute">portal:service=CustomizationManager</depends>
+      <depends
+         optional-attribute-name="ContentRendererRegistry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
    </mbean>
 
+   <!-- The controller factory -->
+   <mbean
+      code="org.jboss.portal.core.controller.ControllerFactory"
+      name="portal:service=ControllerFactory"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="ClassicController"
+         proxy-type="attribute">portal:controller=Core</depends>
+      <depends
+         optional-attribute-name="AjaxController"
+         proxy-type="attribute">portal:controller=Ajax</depends>
+   </mbean>
+
    <!-- -->
    <mbean
       code="org.jboss.portal.server.impl.ServerImpl"
@@ -1018,8 +1034,8 @@
          optional-attribute-name="PortalObjectContainer"
          proxy-type="attribute">portal:container=PortalObject</depends>
       <depends
-         optional-attribute-name="ContentHandlerRegistry"
-         proxy-type="attribute">portal:container=PortalObject</depends>
+         optional-attribute-name="ContentProviderRegistry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
       <depends
          optional-attribute-name="PortalObjectEntityResolver"
          proxy-type="attribute">portal:service=EntityResolver</depends>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/conf/login-config.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/conf/login-config.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/conf/login-config.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -42,6 +42,7 @@
             <module-option name="unauthenticatedIdentity">guest</module-option>
             <module-option name="userModuleJNDIName">java:/portal/UserModule</module-option>
             <module-option name="roleModuleJNDIName">java:/portal/RoleModule</module-option>
+            <module-option name="userProfileModuleJNDIName">java:/portal/UserProfileModule</module-option>
             <module-option name="membershipModuleJNDIName">java:/portal/MembershipModule</module-option>
             <module-option name="additionalRole">Authenticated</module-option>
             <module-option name="password-stacking">useFirstPass</module-option>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/freemarker.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/freemarker.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/jboss-portlet-api-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-api-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-bridge-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-common-lib.jar
===================================================================
(Binary files differ)

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

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

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

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

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-core-samples-lib.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-core-samples-lib.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-format-lib.jar
===================================================================
(Binary files differ)

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

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-jems-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-portlet-federation-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-portlet-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-portlet-server-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-registration-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-samples-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-search-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-security-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-server-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portal-theme-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/lib/portlet-api-lib.jar
===================================================================
(Binary files differ)

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

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/lib/portal-faces-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/faces-config.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/faces-config.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/faces-config.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -255,6 +255,21 @@
       </managed-property>
    </managed-bean>
 
+   <managed-bean>
+      <managed-bean-name>renameAction</managed-bean-name>
+      <managed-bean-class>org.jboss.portal.core.admin.ui.actions.RenameAction</managed-bean-class>
+      <managed-bean-scope>request</managed-bean-scope>
+      <managed-property>
+         <property-name>portalObjectManager</property-name>
+         <value>#{sessionScope.portalobjectmgr}</value>
+      </managed-property>
+      <managed-property>
+         <property-name>domainConfigurator</property-name>
+         <value>#{applicationScope.AuthorizationDomainRegistry.portalobject.configurator}</value>
+      </managed-property>
+      
+   </managed-bean>
+
    <navigation-rule>
       <navigation-case>
          <from-outcome>index</from-outcome>
@@ -289,6 +304,10 @@
          <to-view-id>/WEB-INF/jsf/editPageSecurity.xhtml</to-view-id>
       </navigation-case>
       <navigation-case>
+         <from-outcome>editProperties</from-outcome>
+         <to-view-id>/WEB-INF/jsf/editProperties.xhtml</to-view-id>
+      </navigation-case>
+      <navigation-case>
          <from-outcome>editPageTheme</from-outcome>
          <to-view-id>/WEB-INF/jsf/editPageTheme.xhtml</to-view-id>
       </navigation-case>
@@ -297,6 +316,11 @@
          <to-view-id>/WEB-INF/jsf/editWindowSecurity.xhtml</to-view-id>
       </navigation-case>
       <navigation-case>
+         <from-outcome>renameObject</from-outcome>
+         <to-view-id>/WEB-INF/jsf/renameObject.xhtml</to-view-id>
+      </navigation-case>
+      
+      <navigation-case>
          <from-outcome>editWindowTheme</from-outcome>
          <to-view-id>/WEB-INF/jsf/editWindowTheme.xhtml</to-view-id>
       </navigation-case>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jboss-portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jboss-portlet.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jboss-portlet.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -36,15 +36,6 @@
       </header-content>
    </portlet>
    <portlet>
-      <portlet-name>PortletContentEditorPortlet</portlet-name>
-      <transaction>
-         <trans-attribute>RequiresNew</trans-attribute>
-      </transaction>
-      <header-content>
-         <link rel="stylesheet" type="text/css" href="/style.css" title="" media="screen"/>
-      </header-content>
-   </portlet>
-   <portlet>
       <portlet-name>DashboardConfigPortlet</portlet-name>
       <transaction>
          <trans-attribute>Required</trans-attribute>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/common/editPageLayout.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/common/editPageLayout.xhtml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/common/editPageLayout.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -112,8 +112,7 @@
          </td>
          <td class="widget">
             <h:form id="windowForm">
-               <h:inputText id="windowName" value="#{assignWindowsAction.windowName}"
-                            styleClass="portlet-form-input-field"/>
+               <h:inputText id="windowName" value="#{pageManager.windowName}" styleClass="portlet-form-input-field"/>
                <h:message for="windowName" errorClass="portlet-msg-error"/>
             </h:form>
          </td>
@@ -124,7 +123,7 @@
          </td>
          <td class="widget">
             <h:form id="regionForm">
-               <h:selectOneMenu id="targetRegion" styleClass="portlet-form-input-field">
+               <h:selectOneMenu id="targetRegion" value="#{pageManager.targetRegion}" styleClass="portlet-form-input-field">
                   <f:selectItems value="#{pageManager.regionItems}"/>
                </h:selectOneMenu>
                <h:message for="targetRegion" errorClass="portlet-msg-error"/>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/common/editProperties.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/common/editProperties.xhtml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/common/editProperties.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,62 @@
+<div
+      xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:h="http://java.sun.com/jsf/html"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:c="http://java.sun.com/jstl/core">
+
+   <h:form>
+      <table width="100%">
+         <thead class="portlet-section-header" style="text-align:left;">
+            <tr>
+               <th>Name</th>
+               <th>Value</th>
+               <th>Delete</th>
+            </tr>
+         </thead>
+         <tbody>
+            <c:forEach items="#{properties.entries}" var="prop" varStatus="status">
+               <tr class="#{status.index % 2 == 0 ? 'portlet-section-body' : 'portlet-section-alternate'}">
+                  <td>
+                     <h:outputText>#{prop.name}</h:outputText>
+                  </td>
+                  <td>
+                     <h:inputText value="#{prop.value}"/>
+                  </td>
+                  <td>
+                     <h:commandLink action="#{propertyAction.removeProperty}">
+                        <h:outputText>Delete</h:outputText>
+                        <f:param name="name" value="#{prop.name}"/>
+                     </h:commandLink>
+                  </td>
+               </tr>
+            </c:forEach>
+         </tbody>
+      </table>
+      <h:commandButton value="Update" styleClass="portlet-form-button"/>
+   </h:form>
+
+   <h:form>
+      <table width="100%">
+         <thead class="portlet-section-header" style="text-align:left;">
+            <tr>
+               <th>Property name</th>
+               <th>Property value</th>
+            </tr>
+         </thead>
+         <tbody>
+            <tr class="#{status.index % 2 == 0 ? 'portlet-section-body' : 'portlet-section-alternate'}">
+               <td>
+                  <h:inputText value="#{propertyAction.selectedProperty}"
+                       validator="#{propertyAction.validatePropertyName}" />
+               </td>
+               <td>
+                  <h:inputText value="#{propertyAction.propertyValue}"/>
+               </td>
+            </tr>
+         </tbody>
+      </table>
+      <h:commandButton value="Add property" styleClass="portlet-form-button" action="#{propertyAction.updateProperty}"/>
+   </h:form>
+
+</div>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/editPage.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/editPage.xhtml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/editPage.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -7,32 +7,57 @@
    <ui:composition template="objectTemplate.xhtml">
 
       <ui:define name="content">
+        
+        <h:form>
+         <h:panelGroup rendered="#{portalobjectmgr.selectedObject.type == 2}"><h:commandLink action="editPageLayout" actionListener="#{portalobjectmgr.selectObject}">
+            <h:outputText value="Page layout"/>
+            <f:param name="id" value="#{portalobjectmgr.selectedObject.id}"/>
+         </h:commandLink> | </h:panelGroup><h:commandLink action="editPageSecurity" actionListener="#{portalobjectmgr.selectObject}">
+            <h:outputText value="Security"/>
+            <f:param name="id" value="#{portalobjectmgr.selectedObject.id}"/>
+         </h:commandLink> | <h:commandLink action="editProperties" actionListener="#{portalobjectmgr.selectObject}">
+                  <h:outputText value="Properties"/>
+                  <f:param name="id" value="#{portalobjectmgr.selectedObject.id}"/>
+               </h:commandLink> | <h:commandLink action="editPageTheme" actionListener="#{portalobjectmgr.selectObject}">
+            <h:outputText value="Theme"/>
+            <f:param name="id" value="#{portalobjectmgr.selectedObject.id}"/>
+         </h:commandLink> | <h:panelGroup rendered="#{!((portalobjectmgr.selectedObject.type == 1) and ((portalobjectmgr.selectedObject.name == 'admin') or (portalobjectmgr.selectedObject.name == 'template') or (portalobjectmgr.selectedObject.name == 'default')))}"><h:commandLink action="renameObject" actionListener="#{portalobjectmgr.selectObject}">
+            <h:outputText value="Rename"/>
+            <f:param name="id" value="#{portalobjectmgr.selectedObject.id}"/>
+         </h:commandLink> | </h:panelGroup><h:commandLink action="confirm" actionListener="#{portalobjectmgr.selectObject}">
+            <h:outputText value="Destroy"/>
+            <f:param name="id" value="#{portalobjectmgr.selectedObject.id}"/>
+         </h:commandLink>
+        </h:form>
 
          <!-- Sub page addition -->
          <div style="padding:1em 0 0 0">
-            <div class="portlet-font">Create a nested page:</div>
-            <div style="padding:1em 0 1em 0">
-               <h:form id="addPageForm">
+            <h:form id="addPageForm">
+               <span class="portlet-font">Create a nested page:</span>
+               <span style="padding:1em 0 1em 0">
                   <h:inputText id="pageName" value="#{addPageAction.pageName}" styleClass="portlet-form-input-field" required="true"/>
                   <h:commandButton action="#{addPageAction.execute}" value="Add" styleClass="portlet-form-button"/>
                   <h:message for="pageName" errorClass="portlet-msg-error"/>
-               </h:form>
-            </div>
+               </span>
+            </h:form>
          </div>
 
          <!-- Default page -->
          <div style="padding:1em 0 0 0">
-            <div class="portlet-font">Default page:</div>
-            <div style="padding:1em 0 1em 0">
                <h:form>
+                  <span class="portlet-font">Default page:</span>
+                  <span style="padding:1em 0 1em 0">
                   <h:selectOneMenu id="name" styleClass="portlet-form-field" value="#{portalAction.defaultPageName}">
                      <f:selectItems value="#{portalobjectmgr.portalPageItems}" />
                   </h:selectOneMenu>
                   <h:commandButton styleClass="portlet-form-button" value="Update" action="objects"/>
+                  </span>
                </h:form>
-            </div>
          </div>
 
+         
+
+
          <!-- Separation -->
          <hr/>
 

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/editProperties.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/editProperties.xhtml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/editProperties.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,18 @@
+<div
+      xmlns="http://www.w3.org/1999/xhtml"
+      xmlns:f="http://java.sun.com/jsf/core"
+      xmlns:ui="http://java.sun.com/jsf/facelets"
+      xmlns:h="http://java.sun.com/jsf/html">
+
+   <ui:composition template="objectTemplate.xhtml">
+
+      <ui:define name="content">
+      	
+      	<ui:include src="common/editProperties.xhtml">
+  	       <ui:param name="properties" value="#{portalobjectmgr.selectedProperties}"/>
+        </ui:include>
+      
+      </ui:define>
+      
+   </ui:composition>
+</div>
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/instancesTemplate.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/instancesTemplate.xhtml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/instancesTemplate.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -10,9 +10,7 @@
          <li>
             <h:commandLink value="Portal Objects" action="objects" actionListener="#{portalobjectmgr.selectRootObject}"/>
          </li>
-         <li id="currentTab">
-            <h:commandLink value="Portlet Instances" action="instances"/>
-         </li>
+         <li id="currentTab">Portlet Instances</li>
          <li>
             <h:commandLink value="Portlet Definitions" action="portlets"/>
          </li>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objectNavigation.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objectNavigation.xhtml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objectNavigation.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -30,11 +30,17 @@
                <h:commandLink action="editPortalSecurity" actionListener="#{portalobjectmgr.selectObject}">
                   <h:outputText value="Security"/>
                   <f:param name="id" value="#{object.id}"/>
+               </h:commandLink> | <h:commandLink action="editProperties" actionListener="#{portalobjectmgr.selectObject}">
+                  <h:outputText value="Properties"/>
+                  <f:param name="id" value="#{object.id}"/>
                </h:commandLink> | <h:commandLink action="editPortalTheme"
                                                  actionListener="#{portalobjectmgr.selectObject}">
                <h:outputText value="Theme"/>
                <f:param name="id" value="#{object.id}"/>
-               </h:commandLink> | <h:commandLink action="confirm" actionListener="#{portalobjectmgr.selectObject}">
+               </h:commandLink><h:panelGroup rendered="#{(object.name != 'admin') and (object.name != 'template') and (object.name != 'default')}"> | <h:commandLink action="renameObject" actionListener="#{portalobjectmgr.selectObject}">
+                  <h:outputText value="Rename"/>
+                  <f:param name="id" value="#{object.id}"/>
+               </h:commandLink></h:panelGroup> | <h:commandLink action="confirm" actionListener="#{portalobjectmgr.selectObject}">
                   <h:outputText value="Destroy"/>
                   <f:param name="id" value="#{object.id}"/>
                </h:commandLink>
@@ -62,16 +68,22 @@
             </td>
             <td>
                <h:commandLink action="editPageLayout" actionListener="#{portalobjectmgr.selectObject}">
-                  <h:outputText value="Layout"/>
+                  <h:outputText value="Page layout"/>
                   <f:param name="id" value="#{object.id}"/>
                </h:commandLink> | <h:commandLink action="editPageSecurity"
                                                  actionListener="#{portalobjectmgr.selectObject}">
                <h:outputText value="Security"/>
                <f:param name="id" value="#{object.id}"/>
-            </h:commandLink> | <h:commandLink action="editPageTheme" actionListener="#{portalobjectmgr.selectObject}">
+            </h:commandLink> | <h:commandLink action="editProperties" actionListener="#{portalobjectmgr.selectObject}">
+                  <h:outputText value="Properties"/>
+                  <f:param name="id" value="#{object.id}"/>
+               </h:commandLink> | <h:commandLink action="editPageTheme" actionListener="#{portalobjectmgr.selectObject}">
                <h:outputText value="Theme"/>
                <f:param name="id" value="#{object.id}"/>
-            </h:commandLink> | <h:commandLink action="confirm" actionListener="#{portalobjectmgr.selectObject}">
+            </h:commandLink> | <h:commandLink action="renameObject" actionListener="#{portalobjectmgr.selectObject}">
+                  <h:outputText value="Rename"/>
+                  <f:param name="id" value="#{object.id}"/>
+               </h:commandLink> | <h:commandLink action="confirm" actionListener="#{portalobjectmgr.selectObject}">
                <h:outputText value="Destroy"/>
                <f:param name="id" value="#{object.id}"/>
             </h:commandLink>
@@ -101,6 +113,12 @@
                <h:commandLink action="editWindowTheme" actionListener="#{portalobjectmgr.selectObject}">
                   <h:outputText value="Theme"/>
                   <f:param name="id" value="#{object.id}"/>
+               </h:commandLink> | <h:commandLink action="editProperties" actionListener="#{portalobjectmgr.selectObject}">
+                  <h:outputText value="Properties"/>
+                  <f:param name="id" value="#{object.id}"/>
+               </h:commandLink> | <h:commandLink action="renameObject" actionListener="#{portalobjectmgr.selectObject}">
+                  <h:outputText value="Rename"/>
+                  <f:param name="id" value="#{object.id}"/>
                </h:commandLink> | <h:commandLink action="confirm" actionListener="#{portalobjectmgr.selectObject}">
                   <h:outputText value="Destroy"/>
                   <f:param name="id" value="#{object.id}"/>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objectTemplate.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objectTemplate.xhtml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objectTemplate.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -9,9 +9,7 @@
    <!-- Common nav -->
    <h:form>
       <ul class="topnav">
-         <li id="currentTab">
-            <h:commandLink value="Portal Objects" action="objects" actionListener="#{portalobjectmgr.selectRootObject}"/>
-         </li>
+         <li id="currentTab">Portal Objects</li>
          <li>
             <h:commandLink value="Portlet Instances" action="instances"/>
          </li>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objects.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objects.xhtml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/objects.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -21,7 +21,7 @@
    </c:choose>
 
    <h:form>
-      <p style="text-align: right"><h:commandLink action="wizardMode">Go to wizard mode</h:commandLink></p>
+      <p style="text-align: right"><h:commandLink action="wizardMode">Switch to wizard mode</h:commandLink></p>
    </h:form>
 
 </div>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/portletsTemplate.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/portletsTemplate.xhtml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/portletsTemplate.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -13,9 +13,7 @@
          <li>
             <h:commandLink value="Portlet Instances" action="instances"/>
          </li>
-         <li id="currentTab">
-            <h:commandLink value="Portlet Definitions" action="portlets"/>
-         </li>
+         <li id="currentTab">Portlet Definitions</li>
       </ul>
    </h:form>
    

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/renameObject.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/renameObject.xhtml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/renameObject.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,18 @@
+<div
+   xmlns="http://www.w3.org/1999/xhtml"
+   xmlns:ui="http://java.sun.com/jsf/facelets"
+   xmlns:h="http://java.sun.com/jsf/html"
+   xmlns:f="http://java.sun.com/jsf/core"
+   xmlns:c="http://java.sun.com/jstl/core">
+   <ui:composition template="/WEB-INF/jsf/objectTemplate.xhtml">
+      <ui:define name="content">
+         <h3>Renaming:</h3>
+         <h:form id="renameForm">
+           <h:inputText id="newName" value="#{renameAction.newName}"/>
+           <h:message for="newName"/>
+           <br />
+           <h:commandButton value="Update" action="#{renameAction.execute}" styleClass="portlet-form-button"/>
+         </h:form>
+      </ui:define>
+   </ui:composition>
+</div>

Deleted: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/tabTemplate.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/tabTemplate.xhtml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/tabTemplate.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,19 +0,0 @@
-<div xmlns="http://www.w3.org/1999/xhtml"
-     xmlns:h="http://java.sun.com/jsf/html"
-     xmlns:ui="http://java.sun.com/jsf/facelets">
-      
-   <h:form>
-      <ul class="topnav">
-         <li>
-            <h:commandLink value="Portal Objects" action="objects" actionListener="#{portalobjectmgr.selectRootObject}"/>
-         </li>
-         <li id="currentTab">
-            <h:commandLink value="Portlet Instances" action="instances"/>
-         </li>
-         <li>
-            <h:commandLink value="Portlet Definitions" action="portlets"/>
-         </li>
-      </ul>
-   </h:form>
-
-</div>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/wizard/newWindowTpl.xhtml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/wizard/newWindowTpl.xhtml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/jsf/wizard/newWindowTpl.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -5,112 +5,113 @@
    xmlns:c="http://java.sun.com/jstl/core"
    class="admin-ui">
 
-<div class="portlet-section-header">Adding a new Portlet</div>
-<h:form>
-   <p style="text-align: right;"><h:commandLink action="advancedMode">Go to advanced mode</h:commandLink></p>
-</h:form>
+   <div class="portlet-section-header">Adding a new Portlet</div>
+   
+   <c:choose>
+      <c:when test="#{newWindowWizard.currentStep == 0}">
+         <div class="wizardStepBox" id="selected">
+            <p class="stepNumber">Step 1</p>
 
-<c:choose>
-   <c:when test="#{newWindowWizard.currentStep == 0}">
-      <div class="wizardStepBox" id="selected">
-         <p class="stepNumber">Step 1</p>
+            <p class="stepText">Select Portlet</p>
+         </div>
+      </c:when>
+      <c:otherwise>
+         <div class="wizardStepBox">
+            <p class="stepNumber">Step 1</p>
 
-         <p class="stepText">Select Portlet</p>
-      </div>
-   </c:when>
-   <c:otherwise>
-      <div class="wizardStepBox">
-         <p class="stepNumber">Step 1</p>
+            <p class="stepText">Select Portlet</p>
+         </div>
+      </c:otherwise>
+   </c:choose>
 
-         <p class="stepText">Select Portlet</p>
-      </div>
-   </c:otherwise>
-</c:choose>
+   <c:choose>
+      <c:when test="#{newWindowWizard.currentStep == 1}">
+         <div class="wizardStepBox" id="selected">
+            <p class="stepNumber">Step 2</p>
 
-<c:choose>
-   <c:when test="#{newWindowWizard.currentStep == 1}">
-      <div class="wizardStepBox" id="selected">
-         <p class="stepNumber">Step 2</p>
+            <p class="stepText">Select Portal</p>
+         </div>
+      </c:when>
+      <c:otherwise>
+         <div class="wizardStepBox">
+            <p class="stepNumber">Step 2</p>
 
-         <p class="stepText">Select Portal</p>
-      </div>
-   </c:when>
-   <c:otherwise>
-      <div class="wizardStepBox">
-         <p class="stepNumber">Step 2</p>
+            <p class="stepText">Select Portal</p>
+         </div>
+      </c:otherwise>
+   </c:choose>
 
-         <p class="stepText">Select Portal</p>
-      </div>
-   </c:otherwise>
-</c:choose>
+   <c:choose>
+      <c:when test="#{newWindowWizard.currentStep == 2}">
+         <div class="wizardStepBox" id="selected">
+            <p class="stepNumber">Step 3</p>
 
-<c:choose>
-   <c:when test="#{newWindowWizard.currentStep == 2}">
-      <div class="wizardStepBox" id="selected">
-         <p class="stepNumber">Step 3</p>
+            <p class="stepText">Select Page</p>
+         </div>
+      </c:when>
+      <c:otherwise>
+         <div class="wizardStepBox">
+            <p class="stepNumber">Step 3</p>
 
-         <p class="stepText">Select Page</p>
-      </div>
-   </c:when>
-   <c:otherwise>
-      <div class="wizardStepBox">
-         <p class="stepNumber">Step 3</p>
+            <p class="stepText">Select Page</p>
+         </div>
+      </c:otherwise>
+   </c:choose>
 
-         <p class="stepText">Select Page</p>
-      </div>
-   </c:otherwise>
-</c:choose>
+   <c:choose>
+      <c:when test="#{newWindowWizard.currentStep == 3}">
+         <div class="wizardStepBox" id="selected">
+            <p class="stepNumber">Step 4</p>
 
-<c:choose>
-   <c:when test="#{newWindowWizard.currentStep == 3}">
-      <div class="wizardStepBox" id="selected">
-         <p class="stepNumber">Step 4</p>
+            <p class="stepText">Select Region</p>
+         </div>
+      </c:when>
+      <c:otherwise>
+         <div class="wizardStepBox">
+            <p class="stepNumber">Step 4</p>
 
-         <p class="stepText">Select Region</p>
-      </div>
-   </c:when>
-   <c:otherwise>
-      <div class="wizardStepBox">
-         <p class="stepNumber">Step 4</p>
+            <p class="stepText">Select Region</p>
+         </div>
+      </c:otherwise>
+   </c:choose>
 
-         <p class="stepText">Select Region</p>
-      </div>
-   </c:otherwise>
-</c:choose>
+   <c:choose>
+      <c:when test="#{newWindowWizard.currentStep == 4}">
+         <div class="wizardStepBox" id="selected">
+            <p class="stepNumber">Step 5</p>
 
-<c:choose>
-   <c:when test="#{newWindowWizard.currentStep == 4}">
-      <div class="wizardStepBox" id="selected">
-         <p class="stepNumber">Step 5</p>
+            <p class="stepText">Confirm</p>
+         </div>
+      </c:when>
+      <c:otherwise>
+         <div class="wizardStepBox">
+            <p class="stepNumber">Step 5</p>
 
-         <p class="stepText">Confirm</p>
-      </div>
-   </c:when>
-   <c:otherwise>
-      <div class="wizardStepBox">
-         <p class="stepNumber">Step 5</p>
+            <p class="stepText">Confirm</p>
+         </div>
+      </c:otherwise>
+   </c:choose>
 
-         <p class="stepText">Confirm</p>
-      </div>
-   </c:otherwise>
-</c:choose>
+   <!-- Status message -->
+   <h:message id="status" for="status"/>
 
-<!-- Status message -->
-<h:message id="status" for="status"/>
 
+   <!-- Content -->
+   <div class="wizardContent">
+      <ui:insert name="content">Content</ui:insert>
+   </div>
 
-<!-- Content -->
-<div class="wizardContent">
-   <ui:insert name="content">Content</ui:insert>
-</div>
+   <div class="wizardButtonBox">
+      <h:form>
+         <h:commandButton rendered="#{newWindowWizard.currentStep gt 0}" value="Previous"
+                          action="#{newWindowWizard.previous}" styleClass="portlet-form-button"/>
+         <h:commandButton disabled="#{!newWindowWizard.nextEnabled}" rendered="#{newWindowWizard.currentStep lt 4}"
+                          value="Next" action="#{newWindowWizard.next}" styleClass="portlet-form-button"/>
+      </h:form>
+   </div>
 
-<div class="wizardButtonBox">
    <h:form>
-      <h:commandButton rendered="#{newWindowWizard.currentStep gt 0}" value="Previous"
-                       action="#{newWindowWizard.previous}" styleClass="portlet-form-button"/>
-      <h:commandButton disabled="#{!newWindowWizard.nextEnabled}" rendered="#{newWindowWizard.currentStep lt 4}"
-                       value="Next" action="#{newWindowWizard.next}" styleClass="portlet-form-button"/>
+      <p style="text-align: right;"><h:commandLink action="advancedMode">Switch to advanced mode</h:commandLink></p>
    </h:form>
-</div>
 
 </div>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet-instances.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet-instances.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet-instances.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -45,16 +45,4 @@
          <portlet-ref>DashboardConfigPortlet</portlet-ref>
       </instance>
    </deployment>
-   <deployment>
-      <instance>
-         <instance-id>PortletContentEditorInstance</instance-id>
-         <portlet-ref>PortletContentEditorPortlet</portlet-ref>
-         <security-constraint>
-            <policy-permission>
-               <role-name>Admin</role-name>
-               <action-name>view</action-name>
-            </policy-permission>
-         </security-constraint>
-      </instance>
-   </deployment>
 </deployments>
\ No newline at end of file

Deleted: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet.tld
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet.tld	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet.tld	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-
-   <tlib-version>1.0</tlib-version>
-   <jsp-version>1.2</jsp-version>
-   <short-name>portlet</short-name>
-
-   <uri>http://java.sun.com/portlet</uri>
-
-   <tag>
-
-      <name>param</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.URLParameterTag</tag-class>
-      <body-content>empty</body-content>
-
-      <attribute>
-         <name>name</name>
-         <required>true</required>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>value</name>
-         <required>true</required>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-
-   </tag>
-   <tag>
-
-      <name>renderURL</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.RenderURLTag</tag-class>
-      <tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.GenerateURLTagTEI</tei-class>
-      <body-content>JSP</body-content>
-
-      <attribute>
-         <name>portletMode</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>secure</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>var</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>windowState</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-
-   </tag>
-   <tag>
-
-      <name>defineObjects</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.DefineObjectsTag</tag-class>
-      <tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.DefineObjectsTagTEI</tei-class>
-      <body-content>empty</body-content>
-
-   </tag>
-   <tag>
-
-      <name>actionURL</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.ActionURLTag</tag-class>
-      <tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.GenerateURLTagTEI</tei-class>
-      <body-content>JSP</body-content>
-
-      <attribute>
-         <name>portletMode</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>secure</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>var</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>windowState</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-
-   </tag>
-   <tag>
-
-      <name>namespace</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.NamespaceTag</tag-class>
-      <body-content>empty</body-content>
-
-   </tag>
-
-</taglib>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/WEB-INF/portlet.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -65,18 +65,4 @@
          <keywords>management,admin</keywords>
       </portlet-info>
    </portlet>
-   <portlet>
-      <description>Portlet Content Editor</description>
-      <portlet-name>PortletContentEditorPortlet</portlet-name>
-      <display-name>Portlet Content Editor</display-name>
-      <portlet-class>org.jboss.portal.core.admin.ui.portlet.PortletContentEditorPortlet</portlet-class>
-      <supports>
-         <mime-type>text/html</mime-type>
-         <portlet-mode>VIEW</portlet-mode>
-      </supports>
-      <portlet-info>
-         <title>Portlet Content Portlet</title>
-         <keywords>management,admin</keywords>
-      </portlet-info>
-   </portlet>
 </portlet-app>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/style.css
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/style.css	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-admin.sar/portal-admin.war/style.css	2007-04-03 09:17:29 UTC (rev 10706)
@@ -55,11 +55,7 @@
    list-style-type: none;
    display: inline;
    margin: 0;
-}
-
-.admin-ui ul.topnav li a {
    padding: 3px 0.5em;
-   display: inline;
    margin-left: 5px;
    border: 1px solid #777;
    border-bottom: none;
@@ -70,7 +66,7 @@
    background-color: #ccf;
 }
 
-.admin-ui ul.topnav li#currentTab a {
+.admin-ui ul.topnav li#currentTab {
    background-color: white;
    border-bottom: 1px solid white;
 }

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/builder.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/builder.js	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/builder.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,8 +1,9 @@
-// script.aculo.us builder.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006
+// script.aculo.us builder.js v1.7.0, Fri Jan 19 19:16:36 CET 2007
 
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
 //
-// See scriptaculous.js for full license.
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
 
 var Builder = {
   NODEMAP: {
@@ -35,7 +36,7 @@
     var element = parentElement.firstChild || null;
       
     // see if browser added wrapping tags
-    if(element && (element.tagName != elementName))
+    if(element && (element.tagName.toUpperCase() != elementName))
       element = element.getElementsByTagName(elementName)[0];
     
     // fallback to createElement approach
@@ -63,7 +64,7 @@
               for(attr in arguments[1]) 
                 element[attr == 'class' ? 'className' : attr] = arguments[1][attr];
             }
-            if(element.tagName != elementName)
+            if(element.tagName.toUpperCase() != elementName)
               element = parentElement.getElementsByTagName(elementName)[0];
             }
         } 
@@ -77,10 +78,16 @@
   _text: function(text) {
      return document.createTextNode(text);
   },
+
+  ATTR_MAP: {
+    'className': 'class',
+    'htmlFor': 'for'
+  },
+
   _attributes: function(attributes) {
     var attrs = [];
     for(attribute in attributes)
-      attrs.push((attribute=='className' ? 'class' : attribute) +
+      attrs.push((attribute in this.ATTR_MAP ? this.ATTR_MAP[attribute] : attribute) +
           '="' + attributes[attribute].toString().escapeHTML() + '"');
     return attrs.join(" ");
   },
@@ -100,6 +107,11 @@
   _isStringOrNumber: function(param) {
     return(typeof param=='string' || typeof param=='number');
   },
+  build: function(html) {
+    var element = this.node('div');
+    $(element).update(html.strip());
+    return element.down();
+  },
   dump: function(scope) { 
     if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope 
   
@@ -116,4 +128,4 @@
       } 
     });
   }
-}
\ No newline at end of file
+}

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/controls.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/controls.js	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/controls.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,14 +1,15 @@
-// script.aculo.us controls.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006
+// script.aculo.us controls.js v1.7.0, Fri Jan 19 19:16:36 CET 2007
 
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//           (c) 2005 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
-//           (c) 2005 Jon Tirsen (http://www.tirsen.com)
+// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//           (c) 2005, 2006 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
+//           (c) 2005, 2006 Jon Tirsen (http://www.tirsen.com)
 // Contributors:
 //  Richard Livsey
 //  Rahul Bhargava
 //  Rob Wills
 // 
-// See scriptaculous.js for full license.
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
 
 // Autocompleter.Base handles all the autocompletion functionality 
 // that's independent of the data source for autocompletion. This
@@ -264,11 +265,11 @@
     if(!this.changed && this.hasFocus) {
       this.update.innerHTML = choices;
       Element.cleanWhitespace(this.update);
-      Element.cleanWhitespace(this.update.firstChild);
+      Element.cleanWhitespace(this.update.down());
 
-      if(this.update.firstChild && this.update.firstChild.childNodes) {
+      if(this.update.firstChild && this.update.down().childNodes) {
         this.entryCount = 
-          this.update.firstChild.childNodes.length;
+          this.update.down().childNodes.length;
         for (var i = 0; i < this.entryCount; i++) {
           var entry = this.getEntry(i);
           entry.autocompleteIndex = i;
@@ -474,6 +475,7 @@
     this.element = $(element);
 
     this.options = Object.extend({
+      paramName: "value",
       okButton: true,
       okText: "ok",
       cancelLink: true,
@@ -605,7 +607,7 @@
       var textField = document.createElement("input");
       textField.obj = this;
       textField.type = "text";
-      textField.name = "value";
+      textField.name = this.options.paramName;
       textField.value = text;
       textField.style.backgroundColor = this.options.highlightcolor;
       textField.className = 'editor_field';
@@ -618,7 +620,7 @@
       this.options.textarea = true;
       var textArea = document.createElement("textarea");
       textArea.obj = this;
-      textArea.name = "value";
+      textArea.name = this.options.paramName;
       textArea.value = this.convertHTMLLineBreaks(text);
       textArea.rows = this.options.rows;
       textArea.cols = this.options.cols || 40;

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/dragdrop.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/dragdrop.js	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/dragdrop.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,12 +1,11 @@
-// script.aculo.us dragdrop.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006
+// script.aculo.us dragdrop.js v1.7.0, Fri Jan 19 19:16:36 CET 2007
 
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//           (c) 2005 Sammi Williams (http://www.oriontransfer.co.nz, sammi at oriontransfer.co.nz)
-//
-// See scriptaculous.js for full license.
+// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//           (c) 2005, 2006 Sammi Williams (http://www.oriontransfer.co.nz, sammi at oriontransfer.co.nz)
+// 
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
 
-/*--------------------------------------------------------------------------*/
-
 if(typeof Effect == 'undefined')
   throw("dragdrop.js requires including script.aculo.us' effects.js library");
 
@@ -29,14 +28,14 @@
     if(options.containment) {
       options._containers = [];
       var containment = options.containment;
-      if((typeof containment == 'object') &&
+      if((typeof containment == 'object') && 
         (containment.constructor == Array)) {
         containment.each( function(c) { options._containers.push($(c)) });
       } else {
         options._containers.push($(containment));
       }
     }
-
+    
     if(options.accept) options.accept = [options.accept].flatten();
 
     Element.makePositioned(element); // fix IE
@@ -44,34 +43,34 @@
 
     this.drops.push(options);
   },
-
+  
   findDeepestChild: function(drops) {
     deepest = drops[0];
-
+      
     for (i = 1; i < drops.length; ++i)
       if (Element.isParent(drops[i].element, deepest.element))
         deepest = drops[i];
-
+    
     return deepest;
   },
 
   isContained: function(element, drop) {
     var containmentNode;
     if(drop.tree) {
-      containmentNode = element.treeNode;
+      containmentNode = element.treeNode; 
     } else {
       containmentNode = element.parentNode;
     }
     return drop._containers.detect(function(c) { return containmentNode == c });
   },
-
+  
   isAffected: function(point, element, drop) {
     return (
       (drop.element!=element) &&
       ((!drop._containers) ||
         this.isContained(element, drop)) &&
       ((!drop.accept) ||
-        (Element.classNames(element).detect(
+        (Element.classNames(element).detect( 
           function(v) { return drop.accept.include(v) } ) )) &&
       Position.within(drop.element, point[0], point[1]) );
   },
@@ -91,19 +90,19 @@
   show: function(point, element) {
     if(!this.drops.length) return;
     var affected = [];
-
+    
     if(this.last_active) this.deactivate(this.last_active);
     this.drops.each( function(drop) {
       if(Droppables.isAffected(point, element, drop))
         affected.push(drop);
     });
-
+        
     if(affected.length>0) {
       drop = Droppables.findDeepestChild(affected);
       Position.within(drop.element, point[0], point[1]);
       if(drop.onHover)
         drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));
-
+      
       Droppables.activate(drop);
     }
   },
@@ -113,7 +112,7 @@
     Position.prepare();
 
     if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active))
-      if (this.last_active.onDrop)
+      if (this.last_active.onDrop) 
         this.last_active.onDrop(element, this.last_active.element, event);
   },
 
@@ -126,20 +125,20 @@
 var Draggables = {
   drags: [],
   observers: [],
-
+  
   register: function(draggable) {
     if(this.drags.length == 0) {
       this.eventMouseUp   = this.endDrag.bindAsEventListener(this);
       this.eventMouseMove = this.updateDrag.bindAsEventListener(this);
       this.eventKeypress  = this.keyPress.bindAsEventListener(this);
-
+      
       Event.observe(document, "mouseup", this.eventMouseUp);
       Event.observe(document, "mousemove", this.eventMouseMove);
       Event.observe(document, "keypress", this.eventKeypress);
     }
     this.drags.push(draggable);
   },
-
+  
   unregister: function(draggable) {
     this.drags = this.drags.reject(function(d) { return d==draggable });
     if(this.drags.length == 0) {
@@ -148,24 +147,24 @@
       Event.stopObserving(document, "keypress", this.eventKeypress);
     }
   },
-
+  
   activate: function(draggable) {
-    if(draggable.options.delay) {
-      this._timeout = setTimeout(function() {
-        Draggables._timeout = null;
-        window.focus();
-        Draggables.activeDraggable = draggable;
-      }.bind(this), draggable.options.delay);
+    if(draggable.options.delay) { 
+      this._timeout = setTimeout(function() { 
+        Draggables._timeout = null; 
+        window.focus(); 
+        Draggables.activeDraggable = draggable; 
+      }.bind(this), draggable.options.delay); 
     } else {
       window.focus(); // allows keypress events if window isn't currently focused, fails for Safari
       this.activeDraggable = draggable;
     }
   },
-
+  
   deactivate: function() {
     this.activeDraggable = null;
   },
-
+  
   updateDrag: function(event) {
     if(!this.activeDraggable) return;
     var pointer = [Event.pointerX(event), Event.pointerY(event)];
@@ -173,36 +172,36 @@
     // the same coordinates, prevent needless redrawing (moz bug?)
     if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;
     this._lastPointer = pointer;
-
+    
     this.activeDraggable.updateDrag(event, pointer);
   },
-
+  
   endDrag: function(event) {
-    if(this._timeout) {
-      clearTimeout(this._timeout);
-      this._timeout = null;
+    if(this._timeout) { 
+      clearTimeout(this._timeout); 
+      this._timeout = null; 
     }
     if(!this.activeDraggable) return;
     this._lastPointer = null;
     this.activeDraggable.endDrag(event);
     this.activeDraggable = null;
   },
-
+  
   keyPress: function(event) {
     if(this.activeDraggable)
       this.activeDraggable.keyPress(event);
   },
-
+  
   addObserver: function(observer) {
     this.observers.push(observer);
     this._cacheObserverCallbacks();
   },
-
+  
   removeObserver: function(element) {  // element instead of observer fixes mem leaks
     this.observers = this.observers.reject( function(o) { return o.element==element });
     this._cacheObserverCallbacks();
   },
-
+  
   notify: function(eventName, draggable, event) {  // 'onStart', 'onEnd', 'onDrag'
     if(this[eventName+'Count'] > 0)
       this.observers.each( function(o) {
@@ -210,7 +209,7 @@
       });
     if(draggable.options[eventName]) draggable.options[eventName](draggable, event);
   },
-
+  
   _cacheObserverCallbacks: function() {
     ['onStart','onEnd','onDrag'].each( function(eventName) {
       Draggables[eventName+'Count'] = Draggables.observers.select(
@@ -237,12 +236,12 @@
       },
       endeffect: function(element) {
         var toOpacity = typeof element._opacity == 'number' ? element._opacity : 1.0;
-        new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity,
+        new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity, 
           queue: {scope:'_draggable', position:'end'},
-          afterFinish: function(){
-            Draggable._dragging[element] = false
+          afterFinish: function(){ 
+            Draggable._dragging[element] = false 
           }
-        });
+        }); 
       },
       zindex: 1000,
       revert: false,
@@ -252,91 +251,90 @@
       snap: false,  // false, or xy or [x,y] or function(x,y){ return [x,y] }
       delay: 0
     };
-
-    if(arguments[1] && typeof arguments[1].endeffect == 'undefined')
+    
+    if(!arguments[1] || typeof arguments[1].endeffect == 'undefined')
       Object.extend(defaults, {
         starteffect: function(element) {
           element._opacity = Element.getOpacity(element);
           Draggable._dragging[element] = true;
-          new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7});
+          new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7}); 
         }
       });
-
+    
     var options = Object.extend(defaults, arguments[1] || {});
 
     this.element = $(element);
-
-    if(options.handle && (typeof options.handle == 'string')) {
-      var h = Element.childrenWithClassName(this.element, options.handle, true);
-      if(h.length>0) this.handle = h[0];
-    }
+    
+    if(options.handle && (typeof options.handle == 'string'))
+      this.handle = this.element.down('.'+options.handle, 0);
+    
     if(!this.handle) this.handle = $(options.handle);
     if(!this.handle) this.handle = this.element;
-
+    
     if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) {
       options.scroll = $(options.scroll);
       this._isScrollChild = Element.childOf(this.element, options.scroll);
     }
 
-    Element.makePositioned(this.element); // fix IE
+    Element.makePositioned(this.element); // fix IE    
 
     this.delta    = this.currentDelta();
     this.options  = options;
-    this.dragging = false;
+    this.dragging = false;   
 
     this.eventMouseDown = this.initDrag.bindAsEventListener(this);
     Event.observe(this.handle, "mousedown", this.eventMouseDown);
-
+    
     Draggables.register(this);
   },
-
+  
   destroy: function() {
     Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);
     Draggables.unregister(this);
   },
-
+  
   currentDelta: function() {
     return([
       parseInt(Element.getStyle(this.element,'left') || '0'),
       parseInt(Element.getStyle(this.element,'top') || '0')]);
   },
-
+  
   initDrag: function(event) {
     if(typeof Draggable._dragging[this.element] != 'undefined' &&
       Draggable._dragging[this.element]) return;
-    if(Event.isLeftClick(event)) {
+    if(Event.isLeftClick(event)) {    
       // abort on form elements, fixes a Firefox issue
       var src = Event.element(event);
-      if(src.tagName && (
-        src.tagName=='INPUT' ||
-        src.tagName=='SELECT' ||
-        src.tagName=='OPTION' ||
-        src.tagName=='BUTTON' ||
-        src.tagName=='TEXTAREA')) return;
-
+      if((tag_name = src.tagName.toUpperCase()) && (
+        tag_name=='INPUT' ||
+        tag_name=='SELECT' ||
+        tag_name=='OPTION' ||
+        tag_name=='BUTTON' ||
+        tag_name=='TEXTAREA')) return;
+        
       var pointer = [Event.pointerX(event), Event.pointerY(event)];
       var pos     = Position.cumulativeOffset(this.element);
       this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });
-
+      
       Draggables.activate(this);
       Event.stop(event);
     }
   },
-
+  
   startDrag: function(event) {
     this.dragging = true;
-
+    
     if(this.options.zindex) {
       this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);
       this.element.style.zIndex = this.options.zindex;
     }
-
+    
     if(this.options.ghosting) {
       this._clone = this.element.cloneNode(true);
       Position.absolutize(this.element);
       this.element.parentNode.insertBefore(this._clone, this.element);
     }
-
+    
     if(this.options.scroll) {
       if (this.options.scroll == window) {
         var where = this._getWindowScroll(this.options.scroll);
@@ -347,35 +345,31 @@
         this.originalScrollTop = this.options.scroll.scrollTop;
       }
     }
-
+    
     Draggables.notify('onStart', this, event);
-
+        
     if(this.options.starteffect) this.options.starteffect(this.element);
   },
-
+  
   updateDrag: function(event, pointer) {
     if(!this.dragging) this.startDrag(event);
     Position.prepare();
     Droppables.show(pointer, this.element);
     Draggables.notify('onDrag', this, event);
-
+    
     this.draw(pointer);
     if(this.options.change) this.options.change(this);
-
+    
     if(this.options.scroll) {
       this.stopScrolling();
-
+      
       var p;
       if (this.options.scroll == window) {
         with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; }
       } else {
         p = Position.page(this.options.scroll);
-        p[0] += this.options.scroll.scrollLeft;
-        p[1] += this.options.scroll.scrollTop;
-
-        p[0] += (window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft || 0);
-        p[1] += (window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0);
-
+        p[0] += this.options.scroll.scrollLeft + Position.deltaX;
+        p[1] += this.options.scroll.scrollTop + Position.deltaY;
         p.push(p[0]+this.options.scroll.offsetWidth);
         p.push(p[1]+this.options.scroll.offsetHeight);
       }
@@ -386,13 +380,13 @@
       if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity);
       this.startScrolling(speed);
     }
-
+    
     // fix AppleWebKit rendering
     if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);
-
+    
     Event.stop(event);
   },
-
+  
   finishDrag: function(event, success) {
     this.dragging = false;
 
@@ -407,10 +401,10 @@
 
     var revert = this.options.revert;
     if(revert && typeof revert == 'function') revert = revert(this.element);
-
+    
     var d = this.currentDelta();
     if(revert && this.options.reverteffect) {
-      this.options.reverteffect(this.element,
+      this.options.reverteffect(this.element, 
         d[1]-this.delta[1], d[0]-this.delta[0]);
     } else {
       this.delta = d;
@@ -419,46 +413,45 @@
     if(this.options.zindex)
       this.element.style.zIndex = this.originalZ;
 
-    if(this.options.endeffect)
+    if(this.options.endeffect) 
       this.options.endeffect(this.element);
-
+      
     Draggables.deactivate(this);
     Droppables.reset();
   },
-
+  
   keyPress: function(event) {
     if(event.keyCode!=Event.KEY_ESC) return;
     this.finishDrag(event, false);
     Event.stop(event);
   },
-
+  
   endDrag: function(event) {
     if(!this.dragging) return;
     this.stopScrolling();
     this.finishDrag(event, true);
     Event.stop(event);
   },
-
+  
   draw: function(point) {
     var pos = Position.cumulativeOffset(this.element);
     if(this.options.ghosting) {
       var r   = Position.realOffset(this.element);
-      window.status = r.inspect();
       pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY;
     }
-
+    
     var d = this.currentDelta();
     pos[0] -= d[0]; pos[1] -= d[1];
-
+    
     if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) {
       pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft;
       pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop;
     }
-
-    var p = [0,1].map(function(i){
-      return (point[i]-pos[i]-this.offset[i])
+    
+    var p = [0,1].map(function(i){ 
+      return (point[i]-pos[i]-this.offset[i]) 
     }.bind(this));
-
+    
     if(this.options.snap) {
       if(typeof this.options.snap == 'function') {
         p = this.options.snap(p[0],p[1],this);
@@ -471,16 +464,16 @@
           return Math.round(v/this.options.snap)*this.options.snap }.bind(this))
       }
     }}
-
+    
     var style = this.element.style;
     if((!this.options.constraint) || (this.options.constraint=='horizontal'))
       style.left = p[0] + "px";
     if((!this.options.constraint) || (this.options.constraint=='vertical'))
       style.top  = p[1] + "px";
-
+    
     if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering
   },
-
+  
   stopScrolling: function() {
     if(this.scrollInterval) {
       clearInterval(this.scrollInterval);
@@ -488,14 +481,14 @@
       Draggables._lastScrollPointer = null;
     }
   },
-
+  
   startScrolling: function(speed) {
     if(!(speed[0] || speed[1])) return;
     this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];
     this.lastScrolled = new Date();
     this.scrollInterval = setInterval(this.scroll.bind(this), 10);
   },
-
+  
   scroll: function() {
     var current = new Date();
     var delta = current - this.lastScrolled;
@@ -511,7 +504,7 @@
       this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000;
       this.options.scroll.scrollTop  += this.scrollSpeed[1] * delta / 1000;
     }
-
+    
     Position.prepare();
     Droppables.show(Draggables._lastPointer, this.element);
     Draggables.notify('onDrag', this);
@@ -525,10 +518,10 @@
         Draggables._lastScrollPointer[1] = 0;
       this.draw(Draggables._lastScrollPointer);
     }
-
+    
     if(this.options.change) this.options.change(this);
   },
-
+  
   _getWindowScroll: function(w) {
     var T, L, W, H;
     with (w.document) {
@@ -563,11 +556,11 @@
     this.observer  = observer;
     this.lastValue = Sortable.serialize(this.element);
   },
-
+  
   onStart: function() {
     this.lastValue = Sortable.serialize(this.element);
   },
-
+  
   onEnd: function() {
     Sortable.unmark();
     if(this.lastValue != Sortable.serialize(this.element))
@@ -577,11 +570,11 @@
 
 var Sortable = {
   SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,
-
+  
   sortables: {},
-
+  
   _findRootElement: function(element) {
-    while (element.tagName != "BODY") {
+    while (element.tagName.toUpperCase() != "BODY") {  
       if(element.id && Sortable.sortables[element.id]) return element;
       element = element.parentNode;
     }
@@ -592,22 +585,22 @@
     if(!element) return;
     return Sortable.sortables[element.id];
   },
-
+  
   destroy: function(element){
     var s = Sortable.options(element);
-
+    
     if(s) {
       Draggables.removeObserver(s.element);
       s.droppables.each(function(d){ Droppables.remove(d) });
       s.draggables.invoke('destroy');
-
+      
       delete Sortable.sortables[s.element.id];
     }
   },
 
   create: function(element) {
     element = $(element);
-    var options = Object.extend({
+    var options = Object.extend({ 
       element:     element,
       tag:         'li',       // assumes li children, override with tag: 'tagname'
       dropOnEmpty: false,
@@ -660,16 +653,15 @@
     if(options.zindex)
       options_for_draggable.zindex = options.zindex;
 
-    // build options for the droppables
+    // build options for the droppables  
     var options_for_droppable = {
       overlap:     options.overlap,
       containment: options.containment,
       tree:        options.tree,
       hoverclass:  options.hoverclass,
       onHover:     Sortable.onHover
-      //greedy:      !options.dropOnEmpty
     }
-
+    
     var options_for_tree = {
       onHover:      Sortable.onEmptyHover,
       overlap:      options.overlap,
@@ -678,7 +670,7 @@
     }
 
     // fix for gecko engine
-    Element.cleanWhitespace(element);
+    Element.cleanWhitespace(element); 
 
     options.draggables = [];
     options.droppables = [];
@@ -691,15 +683,15 @@
 
     (this.findElements(element, options) || []).each( function(e) {
       // handles are per-draggable
-      var handle = options.handle ?
-        Element.childrenWithClassName(e, options.handle)[0] : e;
+      var handle = options.handle ? 
+        $(e).down('.'+options.handle,0) : e;    
       options.draggables.push(
         new Draggable(e, Object.extend(options_for_draggable, { handle: handle })));
       Droppables.add(e, options_for_droppable);
       if(options.tree) e.treeNode = element;
-      options.droppables.push(e);
+      options.droppables.push(e);      
     });
-
+    
     if(options.tree) {
       (Sortable.findTreeElements(element, options) || []).each( function(e) {
         Droppables.add(e, options_for_tree);
@@ -721,7 +713,7 @@
     return Element.findChildren(
       element, options.only, options.tree ? true : false, options.tag);
   },
-
+  
   findTreeElements: function(element, options) {
     return Element.findChildren(
       element, options.only, options.tree ? true : false, options.treeTag);
@@ -737,51 +729,38 @@
       if(dropon.previousSibling != element) {
         var oldParentNode = element.parentNode;
         element.style.visibility = "hidden"; // fix gecko rendering
-
-        Sortable.createGuide(element);
         dropon.parentNode.insertBefore(element, dropon);
-        dropon.parentNode.insertBefore(Sortable._guide, element);
-        Sortable.markEmptyPlace(element);
-
-        if(dropon.parentNode!=oldParentNode)
+        if(dropon.parentNode!=oldParentNode) 
           Sortable.options(oldParentNode).onChange(element);
         Sortable.options(dropon.parentNode).onChange(element);
       }
     } else {
       Sortable.mark(dropon, 'after');
       var nextElement = dropon.nextSibling || null;
-
       if(nextElement != element) {
         var oldParentNode = element.parentNode;
         element.style.visibility = "hidden"; // fix gecko rendering
-
-        Sortable.createGuide(element);
         dropon.parentNode.insertBefore(element, nextElement);
-        dropon.parentNode.insertBefore(Sortable._guide, element);
-        Sortable.markEmptyPlace(element);
-
-        if(dropon.parentNode!=oldParentNode)
+        if(dropon.parentNode!=oldParentNode) 
           Sortable.options(oldParentNode).onChange(element);
         Sortable.options(dropon.parentNode).onChange(element);
       }
     }
   },
-
-
-
+  
   onEmptyHover: function(element, dropon, overlap) {
     var oldParentNode = element.parentNode;
     var droponOptions = Sortable.options(dropon);
-
+        
     if(!Element.isParent(dropon, element)) {
       var index;
-
+      
       var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only});
       var child = null;
-
+            
       if(children) {
         var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap);
-
+        
         for (index = 0; index < children.length; index += 1) {
           if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) {
             offset -= Element.offsetSize (children[index], droponOptions.overlap);
@@ -794,133 +773,68 @@
           }
         }
       }
-
-      Sortable.createGuide(element);
+      
       dropon.insertBefore(element, child);
-      dropon.insertBefore(Sortable._guide, element);
-      Sortable.markEmptyPlace(element);
-
+      
       Sortable.options(oldParentNode).onChange(element);
       droponOptions.onChange(element);
     }
   },
-  createGuide : function (element) {
-    if(!Sortable._guide) {
-          Sortable._guide = $('_guide') || document.createElement('DIV');
-          Sortable._guide.style.position = 'relative';
-          Sortable._guide.style.width = '1px';
-          Sortable._guide.style.height = '0px';
-          Sortable._guide.style.left == '0px';
-          Sortable._guide.style.top == '0px';
 
-          Sortable._guide.style.cssFloat = 'left';
-          Sortable._guide.id = 'guide';
-
-          document.getElementsByTagName("body").item(0).appendChild(Sortable._guide);
-    }
-
-  },
-
-  markEmptyPlace: function(element) {
-
-    if(!Sortable._emptyPlaceMarker) {
-      Sortable._emptyPlaceMarker = $('emptyPlaceMarker') || document.createElement('DIV');
-      Element.hide(Sortable._emptyPlaceMarker);
-      Element.addClassName(Sortable._emptyPlaceMarker, 'emptyPlaceMarker');
-      Sortable._emptyPlaceMarker.style.position = 'absolute';
-      document.getElementsByTagName("body").item(0).appendChild(Sortable._emptyPlaceMarker);
-    }
-
-    var pos = Position.cumulativeOffset(Sortable._guide);
-    Sortable._emptyPlaceMarker.style.left = (pos[0] + 5)+ 'px';
-    Sortable._emptyPlaceMarker.style.top = (pos[1] + 5) + 'px';
-
-    var dim = {};
-    dim.width = (Element.getDimensions(element).width-5) + 'px';
-    dim.height = (Element.getDimensions(element).height-5) + 'px';
-    Sortable._emptyPlaceMarker.setStyle(dim);
-
-    var mg = Element.getStyle(element, 'margin');
-    if(mg && mg != '') {
-        Sortable._emptyPlaceMarker.setStyle({margin : mg});
-    } else  {
-        Sortable._emptyPlaceMarker.setStyle({ margin : ''});
-    }
-
-    Element.show(Sortable._emptyPlaceMarker);
-  },
-
   unmark: function() {
-    if(Sortable._marker) Element.hide(Sortable._marker);
-    if(Sortable._guide && Sortable._guide.parentNode){
-        Sortable._guide.parentNode.removeChild(Sortable._guide);
-    }
-    if(Sortable._emptyPlaceMarker) Element.hide(Sortable._emptyPlaceMarker);
+    if(Sortable._marker) Sortable._marker.hide();
   },
 
   mark: function(dropon, position) {
     // mark on ghosting only
     var sortable = Sortable.options(dropon.parentNode);
-    if(sortable && !sortable.ghosting) return;
+    if(sortable && !sortable.ghosting) return; 
 
     if(!Sortable._marker) {
-      Sortable._marker = $('dropmarker') || document.createElement('DIV');
-      Element.hide(Sortable._marker);
-      Element.addClassName(Sortable._marker, 'dropmarker');
-      Sortable._marker.style.position = 'absolute';
+      Sortable._marker = 
+        ($('dropmarker') || Element.extend(document.createElement('DIV'))).
+          hide().addClassName('dropmarker').setStyle({position:'absolute'});
       document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);
-    }
+    }    
     var offsets = Position.cumulativeOffset(dropon);
-    Sortable._marker.style.left = offsets[0] + 'px';
-    Sortable._marker.style.top = offsets[1] + 'px';
-
+    Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'});
+    
     if(position=='after')
-      if(sortable.overlap == 'horizontal')
-        Sortable._marker.style.left = (offsets[0]+dropon.clientWidth) + 'px';
+      if(sortable.overlap == 'horizontal') 
+        Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'});
       else
-        Sortable._marker.style.top = (offsets[1]+dropon.clientHeight) + 'px';
-
-    Element.show(Sortable._marker);
+        Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'});
+    
+    Sortable._marker.show();
   },
-
+  
   _tree: function(element, options, parent) {
     var children = Sortable.findElements(element, options) || [];
-
+  
     for (var i = 0; i < children.length; ++i) {
       var match = children[i].id.match(options.format);
 
       if (!match) continue;
-
+      
       var child = {
         id: encodeURIComponent(match ? match[1] : null),
         element: element,
         parent: parent,
-        children: new Array,
+        children: [],
         position: parent.children.length,
-        container: Sortable._findChildrenElement(children[i], options.treeTag.toUpperCase())
+        container: $(children[i]).down(options.treeTag)
       }
-
+      
       /* Get the element containing the children and recurse over it */
       if (child.container)
         this._tree(child.container, options, child)
-
+      
       parent.children.push (child);
     }
 
-    return parent;
+    return parent; 
   },
 
-  /* Finds the first element of the given tag type within a parent element.
-    Used for finding the first LI[ST] within a L[IST]I[TEM].*/
-  _findChildrenElement: function (element, containerTag) {
-    if (element && element.hasChildNodes)
-      for (var i = 0; i < element.childNodes.length; ++i)
-        if (element.childNodes[i].tagName == containerTag)
-          return element.childNodes[i];
-
-    return null;
-  },
-
   tree: function(element) {
     element = $(element);
     var sortableOptions = this.options(element);
@@ -931,16 +845,16 @@
       name: element.id,
       format: sortableOptions.format
     }, arguments[1] || {});
-
+    
     var root = {
       id: null,
       parent: null,
-      children: new Array,
+      children: [],
       container: element,
       position: 0
     }
-
-    return Sortable._tree (element, options, root);
+    
+    return Sortable._tree(element, options, root);
   },
 
   /* Construct a [i] index for a particular node */
@@ -955,7 +869,7 @@
   sequence: function(element) {
     element = $(element);
     var options = Object.extend(this.options(element), arguments[1] || {});
-
+    
     return $(this.findElements(element, options) || []).map( function(item) {
       return item.id.match(options.format) ? item.id.match(options.format)[1] : '';
     });
@@ -964,14 +878,14 @@
   setSequence: function(element, new_sequence) {
     element = $(element);
     var options = Object.extend(this.options(element), arguments[2] || {});
-
+    
     var nodeMap = {};
     this.findElements(element, options).each( function(n) {
         if (n.id.match(options.format))
             nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];
         n.parentNode.removeChild(n);
     });
-
+   
     new_sequence.each(function(ident) {
       var n = nodeMap[ident];
       if (n) {
@@ -980,16 +894,16 @@
       }
     });
   },
-
+  
   serialize: function(element) {
     element = $(element);
     var options = Object.extend(Sortable.options(element), arguments[1] || {});
     var name = encodeURIComponent(
       (arguments[1] && arguments[1].name) ? arguments[1].name : element.id);
-
+    
     if (options.tree) {
       return Sortable.tree(element, arguments[1]).children.map( function (item) {
-        return [name + Sortable._constructIndex(item) + "[id]=" +
+        return [name + Sortable._constructIndex(item) + "[id]=" + 
                 encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));
       }).flatten().join('&');
     } else {
@@ -1000,16 +914,14 @@
   }
 }
 
-/* Returns true if child is contained within element */
+// Returns true if child is contained within element
 Element.isParent = function(child, element) {
   if (!child.parentNode || child == element) return false;
-
   if (child.parentNode == element) return true;
-
   return Element.isParent(child.parentNode, element);
 }
 
-Element.findChildren = function(element, only, recursive, tagName) {
+Element.findChildren = function(element, only, recursive, tagName) {    
   if(!element.hasChildNodes()) return null;
   tagName = tagName.toUpperCase();
   if(only) only = [only].flatten();
@@ -1028,8 +940,5 @@
 }
 
 Element.offsetSize = function (element, type) {
-  if (type == 'vertical' || type == 'height')
-    return element.offsetHeight;
-  else
-    return element.offsetWidth;
-}
\ No newline at end of file
+  return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')];
+}

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/dyna.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/dyna.js	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/dyna.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,219 @@
+function sendData(action, windowId, fromPos, fromRegionId, toPos, toRegionId) {
+   var options = {
+      method: "post",
+      postBody: "action=" + action + "&windowId=" + windowId + "&fromPos=" + fromPos + "&fromRegion=" + fromRegionId + "&toPos=" + toPos + "&toRegion=" + toRegionId,
+      onSuccess: function(t)
+      {
+      },
+      on404: function(t)
+      {
+         alert("Error 404: location " + t.statusText + " was not found.");
+      },
+      onFailure: function(t)
+      {
+         alert("Error " + t.status + " -- " + t.statusText);
+      },
+      onLoading: function(t)
+      {
+      }
+   }
+   new Ajax.Request(async_server_url, options);
+}
+
+function snapshot() {
+
+   // Find draggable regions
+   var regions_on_page = document.getElementsByClassName("dyna-region");
+
+   // Save current state in the DOM itself
+   for(var i = 0;i < regions_on_page.length;i++) {
+      var regionDiv = regions_on_page[i]
+      for (var j = 0;j < regionDiv.childNodes.length;j++) {
+         var child = regionDiv.childNodes[j];
+         child["regionId"] = regionDiv.id;
+         child["pos"] = j;
+       }
+   }
+}
+
+function bilto(event)
+{
+
+   // Locate the div container of the window
+   var source = Event.element(event);
+   var container = Element.up(source, "div.dyna-window");
+
+   // We found the window
+   if (container != null) {
+
+
+      var form = source.nodeName == "FORM";
+      var link = !form & source.nodeName == "A";
+
+      var url;
+      var body;
+      var method;
+
+      if (source.nodeName == "A")
+      {
+         url = source.href;
+         method = "get";
+         body = "";
+      }
+//      else if (source.nodeName == "INPUT" && source.type == "submit")
+//      {
+//         // Find enclosing form
+//         var current = source.parentNode;
+//         while (current.nodeName != 'FORM' && current.nodeName != 'BODY') {
+//            current = current.parentNode;
+//         }
+//
+//         // Check we have a form and use it
+//         if (current.nodeName == 'FORM') {
+//
+//            //
+//            url = current.action;
+//
+//            // Get body if needed
+//            if (current.method.toLowerCase() == "post") {
+//               body = Form.serialize(current);
+//               method = "post";
+//            }
+//            else
+//            {
+//               body = "";
+//               method = "get";
+//            }
+//         }
+//      }
+
+      // Handle links here
+      if (url != null) {
+
+         var parameters = "";
+         var pos = url.indexOf("?");
+         if (pos != -1) {
+            parameters = url.substring(pos + 1);
+            url = url.substring(0, pos);
+         }
+
+         //
+         var headers = ["ajax","true"];
+         if (view_state !== undefined)
+         {
+            headers.view_state = view_state;
+         }
+
+         //
+         var options = {
+            parameters:parameters,
+            asynchronous:true,
+            method: method,
+            postBody: body,
+            requestHeaders:headers,
+            onSuccess: function(t)
+            {
+               var resp = "";
+               eval("resp =" + t.responseText + ";");
+               if (resp.type == "update_markup")
+               {
+                  // Iterate all changes
+                  for (var id in resp.fragments)
+                  {
+                     var matchingElts = document.getElementsByClassName(id);
+
+                     // Different than 1 is not good
+                     if (matchingElts.length == 1)
+                     {
+                        var markup = resp.fragments[id];
+                        markup = markup.substring(25, markup.length - 7);
+
+                        var markupContainer = Element.up(matchingElts[0]);
+                        markupContainer.innerHTML = markup;
+                     }
+                  }
+               }
+               else if (resp.type == "update_page")
+               {
+                  document.location = resp.location;
+               }
+            }
+         };
+
+         // Add the form post body
+         // todo : detect file upload
+         if (form)
+         {
+            options.postBody = Form.serialize(source);
+         }
+
+         //
+         Event.stop(event);
+         new Ajax.Request(url, options);
+      }
+
+   }
+
+}
+
+
+function footer()
+{
+   //
+   var WindowMoveObserver = Class.create();
+   WindowMoveObserver.prototype =
+   {
+      initialize: function(element)
+      {
+         this.element = $(element);
+      },
+      onStart: function()
+      {
+      },
+      onEnd: function()
+      {
+         var elt = Draggables.activeDraggable.element;
+         var fromRegionId = elt["regionId"];
+         var fromPos = elt["pos"];
+         snapshot();
+         var toRegionId = elt["regionId"];
+         var toPos = elt["pos"];
+         sendData("windowmove", elt.id, fromPos, fromRegionId, toPos, toRegionId);
+      }
+   };
+
+   // Find the draggable regions
+   var regions_on_page = document.getElementsByClassName("dyna-region");
+
+   // Create draggable regions
+   for(var i = 0;i < regions_on_page.length;i++) {
+      var region = regions_on_page[i];
+      Sortable.create(region, {dropOnEmpty:true,handle:"handle",tag:"div",containment:regions_on_page,constraint:false});
+   }
+
+   //
+   Draggables.addObserver(new WindowMoveObserver());
+   snapshot();
+
+   // Find the dyna portlets
+   var portlets_on_page = document.getElementsByClassName("dyna-window");
+
+   // Add listener for the dyna windows
+   for(var i = 0;i < portlets_on_page.length;i++) {
+      var portlet = portlets_on_page[i];
+      Event.observe(portlet, "click", bilto);
+   }
+}
+
+
+//            String u = "" +
+//               "function removeWindow(elementId)\n" +
+//               "{\n" +
+//               "   var effectElement = document.getElementById(elementId)\n" +
+//               "   new Effect.BlindUp(effectElement);\n" +
+//               "\n" +
+//               "   //removeElement(effectElement);\n" +
+//               "\n" +
+//               "   sendData('windowremove', elementId);\n" +
+//               "}\n";
+//            markup.append(u);

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/effects.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/effects.js	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/effects.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,17 +1,18 @@
-// script.aculo.us effects.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006
+// script.aculo.us effects.js v1.7.0, Fri Jan 19 19:16:36 CET 2007
 
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
 // Contributors:
 //  Justin Palmer (http://encytemedia.com/)
 //  Mark Pilgrim (http://diveintomark.org/)
 //  Martin Bialasinki
 // 
-// See scriptaculous.js for full license.  
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/ 
 
 // converts rgb() and #xxx to #xxxxxx format,  
 // returns self (or first argument) if not convertable  
 String.prototype.parseColor = function() {  
-  var color = '#';  
+  var color = '#';
   if(this.slice(0,4) == 'rgb(') {  
     var cols = this.slice(4,this.length-1).split(',');  
     var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);  
@@ -43,48 +44,21 @@
 
 Element.setContentZoom = function(element, percent) {
   element = $(element);  
-  Element.setStyle(element, {fontSize: (percent/100) + 'em'});   
+  element.setStyle({fontSize: (percent/100) + 'em'});   
   if(navigator.appVersion.indexOf('AppleWebKit')>0) window.scrollBy(0,0);
+  return element;
 }
 
-Element.getOpacity = function(element){  
-  var opacity;
-  if (opacity = Element.getStyle(element, 'opacity'))  
-    return parseFloat(opacity);  
-  if (opacity = (Element.getStyle(element, 'filter') || '').match(/alpha\(opacity=(.*)\)/))  
-    if(opacity[1]) return parseFloat(opacity[1]) / 100;  
-  return 1.0;  
+Element.getOpacity = function(element){
+  return $(element).getStyle('opacity');
 }
 
-Element.setOpacity = function(element, value){  
-  element= $(element);  
-  if (value == 1){
-    Element.setStyle(element, { opacity: 
-      (/Gecko/.test(navigator.userAgent) && !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? 
-      0.999999 : 1.0 });
-    if(/MSIE/.test(navigator.userAgent) && !window.opera)  
-      Element.setStyle(element, {filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'')});  
-  } else {  
-    if(value < 0.00001) value = 0;  
-    Element.setStyle(element, {opacity: value});
-    if(/MSIE/.test(navigator.userAgent) && !window.opera)  
-     Element.setStyle(element, 
-       { filter: Element.getStyle(element,'filter').replace(/alpha\([^\)]*\)/gi,'') +
-                 'alpha(opacity='+value*100+')' });  
-  }
-}  
- 
-Element.getInlineOpacity = function(element){  
+Element.setOpacity = function(element, value){
+  return $(element).setStyle({opacity:value});
+}
+
+Element.getInlineOpacity = function(element){
   return $(element).style.opacity || '';
-}  
-
-Element.childrenWithClassName = function(element, className, findFirst) {
-  var classNameRegExp = new RegExp("(^|\\s)" + className + "(\\s|$)");
-  var results = $A($(element).getElementsByTagName('*'))[findFirst ? 'detect' : 'select']( function(c) { 
-    return (c.className && c.className.match(classNameRegExp));
-  });
-  if(!results) results = [];
-  return results;
 }
 
 Element.forceRerendering = function(element) {
@@ -116,6 +90,7 @@
       
     var tagifyStyle = 'position:relative';
     if(/MSIE/.test(navigator.userAgent) && !window.opera) tagifyStyle += ';zoom:1';
+    
     element = $(element);
     $A(element.childNodes).each( function(child) {
       if(child.nodeType==3) {
@@ -168,33 +143,36 @@
 
 /* ------------- transitions ------------- */
 
-Effect.Transitions = {}
+Effect.Transitions = {
+  linear: Prototype.K,
+  sinoidal: function(pos) {
+    return (-Math.cos(pos*Math.PI)/2) + 0.5;
+  },
+  reverse: function(pos) {
+    return 1-pos;
+  },
+  flicker: function(pos) {
+    return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;
+  },
+  wobble: function(pos) {
+    return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;
+  },
+  pulse: function(pos, pulses) { 
+    pulses = pulses || 5; 
+    return (
+      Math.round((pos % (1/pulses)) * pulses) == 0 ? 
+            ((pos * pulses * 2) - Math.floor(pos * pulses * 2)) : 
+        1 - ((pos * pulses * 2) - Math.floor(pos * pulses * 2))
+      );
+  },
+  none: function(pos) {
+    return 0;
+  },
+  full: function(pos) {
+    return 1;
+  }
+};
 
-Effect.Transitions.linear = Prototype.K;
-
-Effect.Transitions.sinoidal = function(pos) {
-  return (-Math.cos(pos*Math.PI)/2) + 0.5;
-}
-Effect.Transitions.reverse  = function(pos) {
-  return 1-pos;
-}
-Effect.Transitions.flicker = function(pos) {
-  return ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4;
-}
-Effect.Transitions.wobble = function(pos) {
-  return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5;
-}
-Effect.Transitions.pulse = function(pos) {
-  return (Math.floor(pos*10) % 2 == 0 ? 
-    (pos*10-Math.floor(pos*10)) : 1-(pos*10-Math.floor(pos*10)));
-}
-Effect.Transitions.none = function(pos) {
-  return 0;
-}
-Effect.Transitions.full = function(pos) {
-  return 1;
-}
-
 /* ------------- core effects ------------- */
 
 Effect.ScopedQueue = Class.create();
@@ -220,6 +198,9 @@
             e.finishOn += effect.finishOn;
           });
         break;
+      case 'with-last':
+        timestamp = this.effects.pluck('startOn').max() || timestamp;
+        break;
       case 'end':
         // start effect after last queued effect has finished
         timestamp = this.effects.pluck('finishOn').max() || timestamp;
@@ -233,7 +214,7 @@
       this.effects.push(effect);
     
     if(!this.interval) 
-      this.interval = setInterval(this.loop.bind(this), 40);
+      this.interval = setInterval(this.loop.bind(this), 15);
   },
   remove: function(effect) {
     this.effects = this.effects.reject(function(e) { return e==effect });
@@ -244,7 +225,8 @@
   },
   loop: function() {
     var timePos = new Date().getTime();
-    this.effects.invoke('loop', timePos);
+    for(var i=0, len=this.effects.length;i<len;i++) 
+      if(this.effects[i]) this.effects[i].loop(timePos);
   }
 });
 
@@ -264,7 +246,7 @@
 Effect.DefaultOptions = {
   transition: Effect.Transitions.sinoidal,
   duration:   1.0,   // seconds
-  fps:        25.0,  // max. 25fps due to Effect.Queue implementation
+  fps:        60.0,  // max. 60fps due to Effect.Queue implementation
   sync:       false, // true for combining
   from:       0.0,
   to:         1.0,
@@ -332,7 +314,10 @@
     if(this.options[eventName]) this.options[eventName](this);
   },
   inspect: function() {
-    return '#<Effect:' + $H(this).inspect() + ',options:' + $H(this.options).inspect() + '>';
+    var data = $H();
+    for(property in this)
+      if(typeof this[property] != 'function') data[property] = this[property];
+    return '#<Effect:' + data.inspect() + ',options:' + $H(this.options).inspect() + '>';
   }
 }
 
@@ -356,6 +341,17 @@
   }
 });
 
+Effect.Event = Class.create();
+Object.extend(Object.extend(Effect.Event.prototype, Effect.Base.prototype), {
+  initialize: function() {
+    var options = Object.extend({
+      duration: 0
+    }, arguments[0] || {});
+    this.start(options);
+  },
+  update: Prototype.emptyFunction
+});
+
 Effect.Opacity = Class.create();
 Object.extend(Object.extend(Effect.Opacity.prototype, Effect.Base.prototype), {
   initialize: function(element) {
@@ -469,7 +465,7 @@
     this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale);
   },
   finish: function(position) {
-    if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle);
+    if(this.restoreAfterFinish) this.element.setStyle(this.originalStyle);
   },
   setDimensions: function(height, width) {
     var d = {};
@@ -502,9 +498,11 @@
     // Prevent executing on elements not in the layout flow
     if(this.element.getStyle('display')=='none') { this.cancel(); return; }
     // Disable background image during the effect
-    this.oldStyle = {
-      backgroundImage: this.element.getStyle('background-image') };
-    this.element.setStyle({backgroundImage: 'none'});
+    this.oldStyle = {};
+    if (!this.options.keepBackgroundImage) {
+      this.oldStyle.backgroundImage = this.element.getStyle('background-image');
+      this.element.setStyle({backgroundImage: 'none'});
+    }
     if(!this.options.endcolor)
       this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');
     if(!this.options.restorecolor)
@@ -559,8 +557,7 @@
   to:   0.0,
   afterFinishInternal: function(effect) { 
     if(effect.options.to!=0) return;
-    effect.element.hide();
-    effect.element.setStyle({opacity: oldOpacity}); 
+    effect.element.hide().setStyle({opacity: oldOpacity}); 
   }}, arguments[1] || {});
   return new Effect.Opacity(element,options);
 }
@@ -575,8 +572,7 @@
     effect.element.forceRerendering();
   },
   beforeSetup: function(effect) {
-    effect.element.setOpacity(effect.options.from);
-    effect.element.show(); 
+    effect.element.setOpacity(effect.options.from).show(); 
   }}, arguments[1] || {});
   return new Effect.Opacity(element,options);
 }
@@ -600,8 +596,7 @@
         Position.absolutize(effect.effects[0].element)
       },
       afterFinishInternal: function(effect) {
-         effect.effects[0].element.hide();
-         effect.effects[0].element.setStyle(oldStyle); }
+         effect.effects[0].element.hide().setStyle(oldStyle); }
      }, arguments[1] || {})
    );
 }
@@ -614,8 +609,7 @@
       scaleX: false, 
       restoreAfterFinish: true,
       afterFinishInternal: function(effect) {
-        effect.element.hide();
-        effect.element.undoClipping();
+        effect.element.hide().undoClipping();
       } 
     }, arguments[1] || {})
   );
@@ -631,9 +625,7 @@
     scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
     restoreAfterFinish: true,
     afterSetup: function(effect) {
-      effect.element.makeClipping();
-      effect.element.setStyle({height: '0px'});
-      effect.element.show(); 
+      effect.element.makeClipping().setStyle({height: '0px'}).show(); 
     },  
     afterFinishInternal: function(effect) {
       effect.element.undoClipping();
@@ -653,14 +645,10 @@
         duration: 0.3, scaleFromCenter: true,
         scaleX: false, scaleContent: false, restoreAfterFinish: true,
         beforeSetup: function(effect) { 
-          effect.element.makePositioned();
-          effect.element.makeClipping();
+          effect.element.makePositioned().makeClipping();
         },
         afterFinishInternal: function(effect) {
-          effect.element.hide();
-          effect.element.undoClipping();
-          effect.element.undoPositioned();
-          effect.element.setStyle({opacity: oldOpacity});
+          effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity});
         }
       })
     }
@@ -682,9 +670,7 @@
           effect.effects[0].element.makePositioned(); 
         },
         afterFinishInternal: function(effect) {
-          effect.effects[0].element.hide();
-          effect.effects[0].element.undoPositioned();
-          effect.effects[0].element.setStyle(oldStyle);
+          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
         } 
       }, arguments[1] || {}));
 }
@@ -706,16 +692,14 @@
       { x:  40, y: 0, duration: 0.1,  afterFinishInternal: function(effect) {
     new Effect.Move(effect.element,
       { x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) {
-        effect.element.undoPositioned();
-        effect.element.setStyle(oldStyle);
+        effect.element.undoPositioned().setStyle(oldStyle);
   }}) }}) }}) }}) }}) }});
 }
 
 Effect.SlideDown = function(element) {
-  element = $(element);
-  element.cleanWhitespace();
+  element = $(element).cleanWhitespace();
   // SlideDown need to have the content of the element wrapped in a container element with fixed height!
-  var oldInnerBottom = $(element.firstChild).getStyle('bottom');
+  var oldInnerBottom = element.down().getStyle('bottom');
   var elementDimensions = element.getDimensions();
   return new Effect.Scale(element, 100, Object.extend({ 
     scaleContent: false, 
@@ -725,34 +709,24 @@
     restoreAfterFinish: true,
     afterSetup: function(effect) {
       effect.element.makePositioned();
-      effect.element.firstChild.makePositioned();
+      effect.element.down().makePositioned();
       if(window.opera) effect.element.setStyle({top: ''});
-      effect.element.makeClipping();
-      effect.element.setStyle({height: '0px'});
-      effect.element.show(); },
+      effect.element.makeClipping().setStyle({height: '0px'}).show(); 
+    },
     afterUpdateInternal: function(effect) {
-      effect.element.firstChild.setStyle({bottom:
+      effect.element.down().setStyle({bottom:
         (effect.dims[0] - effect.element.clientHeight) + 'px' }); 
     },
     afterFinishInternal: function(effect) {
-      effect.element.undoClipping(); 
-      // IE will crash if child is undoPositioned first
-      if(/MSIE/.test(navigator.userAgent) && !window.opera){
-        effect.element.undoPositioned();
-        effect.element.firstChild.undoPositioned();
-      }else{
-        effect.element.firstChild.undoPositioned();
-        effect.element.undoPositioned();
-      }
-      effect.element.firstChild.setStyle({bottom: oldInnerBottom}); }
+      effect.element.undoClipping().undoPositioned();
+      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); }
     }, arguments[1] || {})
   );
 }
 
 Effect.SlideUp = function(element) {
-  element = $(element);
-  element.cleanWhitespace();
-  var oldInnerBottom = $(element.firstChild).getStyle('bottom');
+  element = $(element).cleanWhitespace();
+  var oldInnerBottom = element.down().getStyle('bottom');
   return new Effect.Scale(element, window.opera ? 0 : 1,
    Object.extend({ scaleContent: false, 
     scaleX: false, 
@@ -761,32 +735,32 @@
     restoreAfterFinish: true,
     beforeStartInternal: function(effect) {
       effect.element.makePositioned();
-      effect.element.firstChild.makePositioned();
+      effect.element.down().makePositioned();
       if(window.opera) effect.element.setStyle({top: ''});
-      effect.element.makeClipping();
-      effect.element.show(); },  
+      effect.element.makeClipping().show();
+    },  
     afterUpdateInternal: function(effect) {
-      effect.element.firstChild.setStyle({bottom:
-        (effect.dims[0] - effect.element.clientHeight) + 'px' }); },
+      effect.element.down().setStyle({bottom:
+        (effect.dims[0] - effect.element.clientHeight) + 'px' });
+    },
     afterFinishInternal: function(effect) {
-      effect.element.hide();
-      effect.element.undoClipping();
-      effect.element.firstChild.undoPositioned();
-      effect.element.undoPositioned();
-      effect.element.setStyle({bottom: oldInnerBottom}); }
+      effect.element.hide().undoClipping().undoPositioned().setStyle({bottom: oldInnerBottom});
+      effect.element.down().undoPositioned();
+    }
    }, arguments[1] || {})
   );
 }
 
 // Bug in opera makes the TD containing this element expand for a instance after finish 
 Effect.Squish = function(element) {
-  return new Effect.Scale(element, window.opera ? 1 : 0, 
-    { restoreAfterFinish: true,
-      beforeSetup: function(effect) {
-        effect.element.makeClipping(effect.element); },  
-      afterFinishInternal: function(effect) {
-        effect.element.hide(effect.element); 
-        effect.element.undoClipping(effect.element); }
+  return new Effect.Scale(element, window.opera ? 1 : 0, { 
+    restoreAfterFinish: true,
+    beforeSetup: function(effect) {
+      effect.element.makeClipping(); 
+    },  
+    afterFinishInternal: function(effect) {
+      effect.element.hide().undoClipping(); 
+    }
   });
 }
 
@@ -842,9 +816,7 @@
     y: initialMoveY,
     duration: 0.01, 
     beforeSetup: function(effect) {
-      effect.element.hide();
-      effect.element.makeClipping();
-      effect.element.makePositioned();
+      effect.element.hide().makeClipping().makePositioned();
     },
     afterFinishInternal: function(effect) {
       new Effect.Parallel(
@@ -855,13 +827,10 @@
             sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})
         ], Object.extend({
              beforeSetup: function(effect) {
-               effect.effects[0].element.setStyle({height: '0px'});
-               effect.effects[0].element.show(); 
+               effect.effects[0].element.setStyle({height: '0px'}).show(); 
              },
              afterFinishInternal: function(effect) {
-               effect.effects[0].element.undoClipping();
-               effect.effects[0].element.undoPositioned();
-               effect.effects[0].element.setStyle(oldStyle); 
+               effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); 
              }
            }, options)
       )
@@ -915,13 +884,10 @@
       new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })
     ], Object.extend({            
          beforeStartInternal: function(effect) {
-           effect.effects[0].element.makePositioned();
-           effect.effects[0].element.makeClipping(); },
+           effect.effects[0].element.makePositioned().makeClipping(); 
+         },
          afterFinishInternal: function(effect) {
-           effect.effects[0].element.hide();
-           effect.effects[0].element.undoClipping();
-           effect.effects[0].element.undoPositioned();
-           effect.effects[0].element.setStyle(oldStyle); }
+           effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); }
        }, options)
   );
 }
@@ -931,10 +897,10 @@
   var options    = arguments[1] || {};
   var oldOpacity = element.getInlineOpacity();
   var transition = options.transition || Effect.Transitions.sinoidal;
-  var reverser   = function(pos){ return transition(1-Effect.Transitions.pulse(pos)) };
+  var reverser   = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) };
   reverser.bind(transition);
   return new Effect.Opacity(element, 
-    Object.extend(Object.extend({  duration: 3.0, from: 0,
+    Object.extend(Object.extend({  duration: 2.0, from: 0,
       afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }
     }, options), {transition: reverser}));
 }
@@ -946,7 +912,7 @@
     left: element.style.left,
     width: element.style.width,
     height: element.style.height };
-  Element.makeClipping(element);
+  element.makeClipping();
   return new Effect.Scale(element, 5, Object.extend({   
     scaleContent: false,
     scaleX: false,
@@ -955,15 +921,162 @@
       scaleContent: false, 
       scaleY: false,
       afterFinishInternal: function(effect) {
-        effect.element.hide();
-        effect.element.undoClipping(); 
-        effect.element.setStyle(oldStyle);
+        effect.element.hide().undoClipping().setStyle(oldStyle);
       } });
   }}, arguments[1] || {}));
 };
 
+Effect.Morph = Class.create();
+Object.extend(Object.extend(Effect.Morph.prototype, Effect.Base.prototype), {
+  initialize: function(element) {
+    this.element = $(element);
+    if(!this.element) throw(Effect._elementDoesNotExistError);
+    var options = Object.extend({
+      style: {}
+    }, arguments[1] || {});
+    if (typeof options.style == 'string') {
+      if(options.style.indexOf(':') == -1) {
+        var cssText = '', selector = '.' + options.style;
+        $A(document.styleSheets).reverse().each(function(styleSheet) {
+          if (styleSheet.cssRules) cssRules = styleSheet.cssRules;
+          else if (styleSheet.rules) cssRules = styleSheet.rules;
+          $A(cssRules).reverse().each(function(rule) {
+            if (selector == rule.selectorText) {
+              cssText = rule.style.cssText;
+              throw $break;
+            }
+          });
+          if (cssText) throw $break;
+        });
+        this.style = cssText.parseStyle();
+        options.afterFinishInternal = function(effect){
+          effect.element.addClassName(effect.options.style);
+          effect.transforms.each(function(transform) {
+            if(transform.style != 'opacity')
+              effect.element.style[transform.style.camelize()] = '';
+          });
+        }
+      } else this.style = options.style.parseStyle();
+    } else this.style = $H(options.style)
+    this.start(options);
+  },
+  setup: function(){
+    function parseColor(color){
+      if(!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff';
+      color = color.parseColor();
+      return $R(0,2).map(function(i){
+        return parseInt( color.slice(i*2+1,i*2+3), 16 ) 
+      });
+    }
+    this.transforms = this.style.map(function(pair){
+      var property = pair[0].underscore().dasherize(), value = pair[1], unit = null;
+
+      if(value.parseColor('#zzzzzz') != '#zzzzzz') {
+        value = value.parseColor();
+        unit  = 'color';
+      } else if(property == 'opacity') {
+        value = parseFloat(value);
+        if(/MSIE/.test(navigator.userAgent) && !window.opera && (!this.element.currentStyle.hasLayout))
+          this.element.setStyle({zoom: 1});
+      } else if(Element.CSS_LENGTH.test(value)) 
+        var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/),
+          value = parseFloat(components[1]), unit = (components.length == 3) ? components[2] : null;
+
+      var originalValue = this.element.getStyle(property);
+      return $H({ 
+        style: property, 
+        originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), 
+        targetValue: unit=='color' ? parseColor(value) : value,
+        unit: unit
+      });
+    }.bind(this)).reject(function(transform){
+      return (
+        (transform.originalValue == transform.targetValue) ||
+        (
+          transform.unit != 'color' &&
+          (isNaN(transform.originalValue) || isNaN(transform.targetValue))
+        )
+      )
+    });
+  },
+  update: function(position) {
+    var style = $H(), value = null;
+    this.transforms.each(function(transform){
+      value = transform.unit=='color' ?
+        $R(0,2).inject('#',function(m,v,i){
+          return m+(Math.round(transform.originalValue[i]+
+            (transform.targetValue[i] - transform.originalValue[i])*position)).toColorPart() }) : 
+        transform.originalValue + Math.round(
+          ((transform.targetValue - transform.originalValue) * position) * 1000)/1000 + transform.unit;
+      style[transform.style] = value;
+    });
+    this.element.setStyle(style);
+  }
+});
+
+Effect.Transform = Class.create();
+Object.extend(Effect.Transform.prototype, {
+  initialize: function(tracks){
+    this.tracks  = [];
+    this.options = arguments[1] || {};
+    this.addTracks(tracks);
+  },
+  addTracks: function(tracks){
+    tracks.each(function(track){
+      var data = $H(track).values().first();
+      this.tracks.push($H({
+        ids:     $H(track).keys().first(),
+        effect:  Effect.Morph,
+        options: { style: data }
+      }));
+    }.bind(this));
+    return this;
+  },
+  play: function(){
+    return new Effect.Parallel(
+      this.tracks.map(function(track){
+        var elements = [$(track.ids) || $$(track.ids)].flatten();
+        return elements.map(function(e){ return new track.effect(e, Object.extend({ sync:true }, track.options)) });
+      }).flatten(),
+      this.options
+    );
+  }
+});
+
+Element.CSS_PROPERTIES = $w(
+  'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + 
+  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
+  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
+  'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +
+  'fontSize fontWeight height left letterSpacing lineHeight ' +
+  'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+
+  'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +
+  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
+  'right textIndent top width wordSpacing zIndex');
+  
+Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;
+
+String.prototype.parseStyle = function(){
+  var element = Element.extend(document.createElement('div'));
+  element.innerHTML = '<div style="' + this + '"></div>';
+  var style = element.down().style, styleRules = $H();
+  
+  Element.CSS_PROPERTIES.each(function(property){
+    if(style[property]) styleRules[property] = style[property]; 
+  });
+  if(/MSIE/.test(navigator.userAgent) && !window.opera && this.indexOf('opacity') > -1) {
+    styleRules.opacity = this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1];
+  }
+  return styleRules;
+};
+
+Element.morph = function(element, style) {
+  new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || {}));
+  return element;
+};
+
 ['setOpacity','getOpacity','getInlineOpacity','forceRerendering','setContentZoom',
- 'collectTextNodes','collectTextNodesIgnoreClass','childrenWithClassName'].each( 
+ 'collectTextNodes','collectTextNodesIgnoreClass','morph'].each( 
   function(f) { Element.Methods[f] = Element[f]; }
 );
 

Deleted: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/event.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/event.js	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/event.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,247 +0,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.
-*
-* @author <a href="mailto:roy at jboss.org">Roy Russo</a>
-*/
-
-var o_el_regionA = new Array();
-var o_el_regionB = new Array();
-
-/**
- AJAX Send function. Assembles post data, and handles process
- **/
-function sendData(action, windowId, fromPos, fromRegion, toPos, toRegion)
-{
-   var options = {
-      method: 'post',
-      postBody: 'action=' + action + '&windowId=' + windowId + '&fromPos=' + fromPos + '&fromRegion=' + fromRegion + '&toPos=' + toPos + '&toRegion=' + toRegion,
-      onSuccess: function(t)
-      {
-//         a = document.getElementById("ReqProgressIndicator");
-//         document.body.removeChild(a);
-      },
-      onSuccess: function(t)
-      {
-//         a = document.getElementById("ReqProgressIndicator");
-//         document.body.removeChild(a);
-      },
-      on404: function(t)
-      {
-//         a = document.getElementById("ReqProgressIndicator");
-//         document.body.removeChild(a);
-         alert('Error 404: location "' + t.statusText + '" was not found.');
-      },
-      onFailure: function(t)
-      {
-//         a = document.getElementById("ReqProgressIndicator");
-//         document.body.removeChild(a);
-         alert('Error ' + t.status + ' -- ' + t.statusText);
-      },
-      onLoading: function(t)
-      {
-      }
-   }
-
-   new Ajax.Request(remote_server_url, options);
-
-/*
-   a = document.createElement("div");
-   a.id = "ReqProgressIndicator";
-   a.style.position = "absolute";
-   a.style.left = "50%";
-   a.style.bottom = "50%";
-   a.style.width = "200px";
-   a.style.height = "20px"
-   a.style.verticalAlign = "bottom";
-   a.style.display = '';
-   a.innerHTML = "<img style='VERTICAL-ALIGN:bottom' src='images/roller.gif'>";
-   document.body.appendChild(a);
-*/
-}
-
-/**
- Class that tracks window movement and updates DOM on move end.
- **/
-try
-{
-   var WindowMoveObserver = Class.create();
-   WindowMoveObserver.prototype =
-   {
-      initialize: function(element)
-      {
-         this.element = $(element);
-      },
-      onStart: function()
-      {
-      },
-      onEnd: function()
-      {
-         var children = this.element.childNodes;
-         for(var i = 0; i < children.length; i = i + 1)
-         {
-            if(Draggables.activeDraggable.element == children[i])
-            {
-               fromPos = findWindowPos(children[i]);
-               fromRegion = findWindowRegion(children[i]);
-
-               //alert("Moved: " + thischild.id + " from: " + fromRegion  + " pos: " + fromPos);
-               //alert("Moved: " + thischild.id + " to: " + this.element.id + " pos: " + i);
-
-               // window moved, update DOM
-               updateDOM();
-
-               // send Data
-               sendData('windowmove', children[i].id, fromPos, fromRegion, i, this.element.id);
-               break;
-               // or FF continues looping.
-            }
-         }
-      }
-   }
-}
-catch(e)
-{
-   alert(e);
-}
-
-/**
- Creates sortables (drag/drop windows), attach observers and initialize the DOM
- **/
-try
-{
-   Sortable.create("regionA", {dropOnEmpty:true,handle:'handle',tag:'div',containment:["regionA","regionB"],constraint:false, ghosting: false,
-      onChange: function(el)
-      {
-      },
-      onUpdate: function (el)
-      {
-      }
-   });
-
-   Sortable.create("regionB", {dropOnEmpty:true,handle:'handle',tag:'div',containment:["regionA","regionB"],constraint:false, ghosting: false,
-      onChange: function(el)
-      {
-      },
-      onUpdate: function (el)
-      {
-      }
-   });
-
-   // attach observers to regions
-   Draggables.addObserver(new WindowMoveObserver($('regionA')));
-   Draggables.addObserver(new WindowMoveObserver($('regionB')));
-
-   // initialize DOM
-   updateDOM();
-}
-catch(e)
-{
-   alert(e);
-}
-
-/**
- Update th DOM order in our global array. Later used to compare move from/to
- **/
-function updateDOM()
-{
-   try
-   {
-      // reset to 0
-      o_el_regionA = new Array();
-      o_el_regionB = new Array();
-
-      var regionA = this.document.getElementById("regionA");
-      for(var i = 0; i < regionA.childNodes.length; i = i + 1)
-      {
-         o_el_regionA[i] = regionA.childNodes[i];
-      }
-      var regionB = this.document.getElementById("regionB");
-      for(var i = 0; i < regionB.childNodes.length; i = i + 1)
-      {
-         o_el_regionB[i] = regionB.childNodes[i];
-      }
-      //alert("New A: " + o_el_regionA.length + " New B: " + o_el_regionB.length);
-   }
-   catch(e)
-   {
-      alert("Error updateDOM: " + e);
-   }
-}
-
-/**
- Returns theoriginal Window position for a given window element
- **/
-function findWindowPos(element)
-{
-   for(var i = 0; i < o_el_regionA.length; i = i + 1)
-   {
-      currelement = o_el_regionA[i];
-      if(element == currelement)
-      {
-         return i;
-      }
-   }
-   for(var i = 0; i < o_el_regionB.length; i = i + 1)
-   {
-      currelement = o_el_regionB[i];
-      if(element = currelement)
-      {
-         return i;
-      }
-   }
-}
-
-/**
- Returns the original region where a window resided.
- **/
-function findWindowRegion(element)
-{
-   for(var i = 0; i < o_el_regionA.length; i = i + 1)
-   {
-      currelement = o_el_regionA[i];
-      if(element == currelement)
-      {
-         return "regionA";
-      }
-   }
-   for(var i = 0; i < o_el_regionB.length; i = i + 1)
-   {
-      currelement = o_el_regionB[i];
-      if(element = currelement)
-      {
-         return "regionB";
-      }
-   }
-}
-
-/**
- Removes window from page and calls server-side
- **/
-function removeWindow(elementId)
-{
-   var effectElement = document.getElementById(elementId)
-   new Effect.BlindUp(effectElement);
-
-   //removeElement(effectElement);
-
-   sendData('windowremove', elementId);
-}
-

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/prototype.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/prototype.js	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/prototype.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,5 +1,5 @@
-/*  Prototype JavaScript framework, version 1.5.0_rc1
- *  (c) 2005 Sam Stephenson <sam at conio.net>
+/*  Prototype JavaScript framework, version 1.5.0
+ *  (c) 2005-2007 Sam Stephenson
  *
  *  Prototype is freely distributable under the terms of an MIT-style license.
  *  For details, see the Prototype web site: http://prototype.conio.net/
@@ -7,11 +7,14 @@
 /*--------------------------------------------------------------------------*/
 
 var Prototype = {
-  Version: '1.5.0_rc1',
+  Version: '1.5.0',
+  BrowserFeatures: {
+    XPath: !!document.evaluate
+  },
+
   ScriptFragment: '(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',
-
   emptyFunction: function() {},
-  K: function(x) {return x}
+  K: function(x) { return x }
 }
 
 var Class = {
@@ -34,8 +37,8 @@
 Object.extend(Object, {
   inspect: function(object) {
     try {
-      if (object == undefined) return 'undefined';
-      if (object == null) return 'null';
+      if (object === undefined) return 'undefined';
+      if (object === null) return 'null';
       return object.inspect ? object.inspect() : object.toString();
     } catch (e) {
       if (e instanceof RangeError) return '...';
@@ -97,7 +100,7 @@
   these: function() {
     var returnValue;
 
-    for (var i = 0; i < arguments.length; i++) {
+    for (var i = 0, length = arguments.length; i < length; i++) {
       var lambda = arguments[i];
       try {
         returnValue = lambda();
@@ -142,6 +145,10 @@
     }
   }
 }
+String.interpret = function(value){
+  return value == null ? '' : String(value);
+}
+
 Object.extend(String.prototype, {
   gsub: function(pattern, replacement) {
     var result = '', source = this, match;
@@ -150,7 +157,7 @@
     while (source.length > 0) {
       if (match = source.match(pattern)) {
         result += source.slice(0, match.index);
-        result += (replacement(match) || '').toString();
+        result += String.interpret(replacement(match));
         source  = source.slice(match.index + match[0].length);
       } else {
         result += source, source = '';
@@ -215,16 +222,28 @@
   unescapeHTML: function() {
     var div = document.createElement('div');
     div.innerHTML = this.stripTags();
-    return div.childNodes[0] ? div.childNodes[0].nodeValue : '';
+    return div.childNodes[0] ? (div.childNodes.length > 1 ?
+      $A(div.childNodes).inject('',function(memo,node){ return memo+node.nodeValue }) :
+      div.childNodes[0].nodeValue) : '';
   },
 
-  toQueryParams: function() {
-    var pairs = this.match(/^\??(.*)$/)[1].split('&');
-    return pairs.inject({}, function(params, pairString) {
-      var pair  = pairString.split('=');
-      var value = pair[1] ? decodeURIComponent(pair[1]) : undefined;
-      params[decodeURIComponent(pair[0])] = value;
-      return params;
+  toQueryParams: function(separator) {
+    var match = this.strip().match(/([^?#]*)(#.*)?$/);
+    if (!match) return {};
+
+    return match[1].split(separator || '&').inject({}, function(hash, pair) {
+      if ((pair = pair.split('='))[0]) {
+        var name = decodeURIComponent(pair[0]);
+        var value = pair[1] ? decodeURIComponent(pair[1]) : undefined;
+
+        if (hash[name] !== undefined) {
+          if (hash[name].constructor != Array)
+            hash[name] = [hash[name]];
+          if (value) hash[name].push(value);
+        }
+        else hash[name] = value;
+      }
+      return hash;
     });
   },
 
@@ -232,22 +251,37 @@
     return this.split('');
   },
 
+  succ: function() {
+    return this.slice(0, this.length - 1) +
+      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
+  },
+
   camelize: function() {
-    var oStringList = this.split('-');
-    if (oStringList.length == 1) return oStringList[0];
+    var parts = this.split('-'), len = parts.length;
+    if (len == 1) return parts[0];
 
-    var camelizedString = this.indexOf('-') == 0
-      ? oStringList[0].charAt(0).toUpperCase() + oStringList[0].substring(1)
-      : oStringList[0];
+    var camelized = this.charAt(0) == '-'
+      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
+      : parts[0];
 
-    for (var i = 1, len = oStringList.length; i < len; i++) {
-      var s = oStringList[i];
-      camelizedString += s.charAt(0).toUpperCase() + s.substring(1);
-    }
+    for (var i = 1; i < len; i++)
+      camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
 
-    return camelizedString;
+    return camelized;
   },
 
+  capitalize: function(){
+    return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
+  },
+
+  underscore: function() {
+    return this.gsub(/::/, '/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();
+  },
+
+  dasherize: function() {
+    return this.gsub(/_/,'-');
+  },
+
   inspect: function(useDoubleQuotes) {
     var escapedString = this.replace(/\\/g, '\\\\');
     if (useDoubleQuotes)
@@ -277,7 +311,7 @@
     return this.template.gsub(this.pattern, function(match) {
       var before = match[1];
       if (before == '\\') return match[2];
-      return before + (object[match[3]] || '').toString();
+      return before + String.interpret(object[match[3]]);
     });
   }
 }
@@ -299,8 +333,16 @@
     } catch (e) {
       if (e != $break) throw e;
     }
+    return this;
   },
 
+  eachSlice: function(number, iterator) {
+    var index = -number, slices = [], array = this.toArray();
+    while ((index += number) < array.length)
+      slices.push(array.slice(index, index+number));
+    return slices.map(iterator);
+  },
+
   all: function(iterator) {
     var result = true;
     this.each(function(value, index) {
@@ -322,12 +364,12 @@
   collect: function(iterator) {
     var results = [];
     this.each(function(value, index) {
-      results.push(iterator(value, index));
+      results.push((iterator || Prototype.K)(value, index));
     });
     return results;
   },
 
-  detect: function (iterator) {
+  detect: function(iterator) {
     var result;
     this.each(function(value, index) {
       if (iterator(value, index)) {
@@ -368,6 +410,14 @@
     return found;
   },
 
+  inGroupsOf: function(number, fillWith) {
+    fillWith = fillWith === undefined ? null : fillWith;
+    return this.eachSlice(number, function(slice) {
+      while(slice.length < number) slice.push(fillWith);
+      return slice;
+    });
+  },
+
   inject: function(memo, iterator) {
     this.each(function(value, index) {
       memo = iterator(memo, value, index);
@@ -377,7 +427,7 @@
 
   invoke: function(method) {
     var args = $A(arguments).slice(1);
-    return this.collect(function(value) {
+    return this.map(function(value) {
       return value[method].apply(value, args);
     });
   },
@@ -429,7 +479,7 @@
   },
 
   sortBy: function(iterator) {
-    return this.collect(function(value, index) {
+    return this.map(function(value, index) {
       return {value: value, criteria: iterator(value, index)};
     }).sort(function(left, right) {
       var a = left.criteria, b = right.criteria;
@@ -438,7 +488,7 @@
   },
 
   toArray: function() {
-    return this.collect(Prototype.K);
+    return this.map();
   },
 
   zip: function() {
@@ -452,6 +502,10 @@
     });
   },
 
+  size: function() {
+    return this.toArray().length;
+  },
+
   inspect: function() {
     return '#<Enumerable:' + this.toArray().inspect() + '>';
   }
@@ -470,7 +524,7 @@
     return iterable.toArray();
   } else {
     var results = [];
-    for (var i = 0; i < iterable.length; i++)
+    for (var i = 0, length = iterable.length; i < length; i++)
       results.push(iterable[i]);
     return results;
   }
@@ -483,7 +537,7 @@
 
 Object.extend(Array.prototype, {
   _each: function(iterator) {
-    for (var i = 0; i < this.length; i++)
+    for (var i = 0, length = this.length; i < length; i++)
       iterator(this[i]);
   },
 
@@ -502,7 +556,7 @@
 
   compact: function() {
     return this.select(function(value) {
-      return value != undefined || value != null;
+      return value != null;
     });
   },
 
@@ -521,7 +575,7 @@
   },
 
   indexOf: function(object) {
-    for (var i = 0; i < this.length; i++)
+    for (var i = 0, length = this.length; i < length; i++)
       if (this[i] == object) return i;
     return -1;
   },
@@ -540,15 +594,78 @@
     });
   },
 
+  clone: function() {
+    return [].concat(this);
+  },
+
+  size: function() {
+    return this.length;
+  },
+
   inspect: function() {
     return '[' + this.map(Object.inspect).join(', ') + ']';
   }
 });
-var Hash = {
+
+Array.prototype.toArray = Array.prototype.clone;
+
+function $w(string){
+  string = string.strip();
+  return string ? string.split(/\s+/) : [];
+}
+
+if(window.opera){
+  Array.prototype.concat = function(){
+    var array = [];
+    for(var i = 0, length = this.length; i < length; i++) array.push(this[i]);
+    for(var i = 0, length = arguments.length; i < length; i++) {
+      if(arguments[i].constructor == Array) {
+        for(var j = 0, arrayLength = arguments[i].length; j < arrayLength; j++)
+          array.push(arguments[i][j]);
+      } else {
+        array.push(arguments[i]);
+      }
+    }
+    return array;
+  }
+}
+var Hash = function(obj) {
+  Object.extend(this, obj || {});
+};
+
+Object.extend(Hash, {
+  toQueryString: function(obj) {
+    var parts = [];
+
+	  this.prototype._each.call(obj, function(pair) {
+      if (!pair.key) return;
+
+      if (pair.value && pair.value.constructor == Array) {
+        var values = pair.value.compact();
+        if (values.length < 2) pair.value = values.reduce();
+        else {
+        	key = encodeURIComponent(pair.key);
+          values.each(function(value) {
+            value = value != undefined ? encodeURIComponent(value) : '';
+            parts.push(key + '=' + encodeURIComponent(value));
+          });
+          return;
+        }
+      }
+      if (pair.value == undefined) pair[1] = '';
+      parts.push(pair.map(encodeURIComponent).join('='));
+	  });
+
+    return parts.join('&');
+  }
+});
+
+Object.extend(Hash.prototype, Enumerable);
+Object.extend(Hash.prototype, {
   _each: function(iterator) {
     for (var key in this) {
       var value = this[key];
-      if (typeof value == 'function') continue;
+      if (value && value == Hash.prototype[key]) continue;
 
       var pair = [key, value];
       pair.key = key;
@@ -566,16 +683,30 @@
   },
 
   merge: function(hash) {
-    return $H(hash).inject($H(this), function(mergedHash, pair) {
+    return $H(hash).inject(this, function(mergedHash, pair) {
       mergedHash[pair.key] = pair.value;
       return mergedHash;
     });
   },
 
+  remove: function() {
+    var result;
+    for(var i = 0, length = arguments.length; i < length; i++) {
+      var value = this[arguments[i]];
+      if (value !== undefined){
+        if (result === undefined) result = value;
+        else {
+          if (result.constructor != Array) result = [result];
+          result.push(value)
+        }
+      }
+      delete this[arguments[i]];
+    }
+    return result;
+  },
+
   toQueryString: function() {
-    return this.map(function(pair) {
-      return pair.map(encodeURIComponent).join('=');
-    }).join('&');
+    return Hash.toQueryString(this);
   },
 
   inspect: function() {
@@ -583,14 +714,12 @@
       return pair.map(Object.inspect).join(': ');
     }).join(', ') + '}>';
   }
-}
+});
 
 function $H(object) {
-  var hash = Object.extend({}, object || {});
-  Object.extend(hash, Enumerable);
-  Object.extend(hash, Hash);
-  return hash;
-}
+  if (object && object.constructor == Hash) return object;
+  return new Hash(object);
+};
 ObjectRange = Class.create();
 Object.extend(ObjectRange.prototype, Enumerable);
 Object.extend(ObjectRange.prototype, {
@@ -640,18 +769,18 @@
     this.responders._each(iterator);
   },
 
-  register: function(responderToAdd) {
-    if (!this.include(responderToAdd))
-      this.responders.push(responderToAdd);
+  register: function(responder) {
+    if (!this.include(responder))
+      this.responders.push(responder);
   },
 
-  unregister: function(responderToRemove) {
-    this.responders = this.responders.without(responderToRemove);
+  unregister: function(responder) {
+    this.responders = this.responders.without(responder);
   },
 
   dispatch: function(callback, request, transport, json) {
     this.each(function(responder) {
-      if (responder[callback] && typeof responder[callback] == 'function') {
+      if (typeof responder[callback] == 'function') {
         try {
           responder[callback].apply(responder, [request, transport, json]);
         } catch (e) {}
@@ -666,7 +795,6 @@
   onCreate: function() {
     Ajax.activeRequestCount++;
   },
-
   onComplete: function() {
     Ajax.activeRequestCount--;
   }
@@ -679,19 +807,14 @@
       method:       'post',
       asynchronous: true,
       contentType:  'application/x-www-form-urlencoded',
+      encoding:     'UTF-8',
       parameters:   ''
     }
     Object.extend(this.options, options || {});
-  },
 
-  responseIsSuccess: function() {
-    return this.transport.status == undefined
-        || this.transport.status == 0
-        || (this.transport.status >= 200 && this.transport.status < 300);
-  },
-
-  responseIsFailure: function() {
-    return !this.responseIsSuccess();
+    this.options.method = this.options.method.toLowerCase();
+    if (typeof this.options.parameters == 'string')
+      this.options.parameters = this.options.parameters.toQueryParams();
   }
 }
 
@@ -700,6 +823,8 @@
   ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
 
 Ajax.Request.prototype = Object.extend(new Ajax.Base(), {
+  _complete: false,
+
   initialize: function(url, options) {
     this.transport = Ajax.getTransport();
     this.setOptions(options);
@@ -707,23 +832,27 @@
   },
 
   request: function(url) {
-    var parameters = this.options.parameters || '';
-    if (parameters.length > 0) parameters += '&_=';
+    this.url = url;
+    this.method = this.options.method;
+    var params = this.options.parameters;
 
-    /* Simulate other verbs over post */
-    if (this.options.method != 'get' && this.options.method != 'post') {
-      parameters += (parameters.length > 0 ? '&' : '') + '_method=' + this.options.method;
-      this.options.method = 'post';
+    if (!['get', 'post'].include(this.method)) {
+      // simulate other verbs over post
+      params['_method'] = this.method;
+      this.method = 'post';
     }
 
+    params = Hash.toQueryString(params);
+    if (params && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) params += '&_='
+
+    // when GET, append parameters to URL
+    if (this.method == 'get' && params)
+      this.url += (this.url.indexOf('?') > -1 ? '&' : '?') + params;
+
     try {
-      this.url = url;
-      if (this.options.method == 'get' && parameters.length > 0)
-        this.url += (this.url.match(/\?/) ? '&' : '?') + parameters;
-
       Ajax.Responders.dispatch('onCreate', this, this.transport);
 
-      this.transport.open(this.options.method, this.url,
+      this.transport.open(this.method.toUpperCase(), this.url,
         this.options.asynchronous);
 
       if (this.options.asynchronous)
@@ -732,97 +861,119 @@
       this.transport.onreadystatechange = this.onStateChange.bind(this);
       this.setRequestHeaders();
 
-      var body = this.options.postBody ? this.options.postBody : parameters;
-      this.transport.send(this.options.method == 'post' ? body : null);
+      var body = this.method == 'post' ? (this.options.postBody || params) : null;
 
+      this.transport.send(body);
+
       /* Force Firefox to handle ready state 4 for synchronous requests */
       if (!this.options.asynchronous && this.transport.overrideMimeType)
         this.onStateChange();
 
-    } catch (e) {
+    }
+    catch (e) {
       this.dispatchException(e);
     }
   },
 
+  onStateChange: function() {
+    var readyState = this.transport.readyState;
+    if (readyState > 1 && !((readyState == 4) && this._complete))
+      this.respondToReadyState(this.transport.readyState);
+  },
+
   setRequestHeaders: function() {
-    var requestHeaders =
-      ['X-Requested-With', 'XMLHttpRequest',
-       'X-Prototype-Version', Prototype.Version,
-       'Accept', 'text/javascript, text/html, application/xml, text/xml, */*'];
+    var headers = {
+      'X-Requested-With': 'XMLHttpRequest',
+      'X-Prototype-Version': Prototype.Version,
+      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
+    };
 
-    if (this.options.method == 'post') {
-      requestHeaders.push('Content-type', this.options.contentType);
+    if (this.method == 'post') {
+      headers['Content-type'] = this.options.contentType +
+        (this.options.encoding ? '; charset=' + this.options.encoding : '');
 
-      /* Force "Connection: close" for Mozilla browsers to work around
-       * a bug where XMLHttpReqeuest sends an incorrect Content-length
-       * header. See Mozilla Bugzilla #246651.
+      /* Force "Connection: close" for older Mozilla browsers to work
+       * around a bug where XMLHttpRequest sends an incorrect
+       * Content-length header. See Mozilla Bugzilla #246651.
        */
-      if (this.transport.overrideMimeType)
-        requestHeaders.push('Connection', 'close');
+      if (this.transport.overrideMimeType &&
+          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
+            headers['Connection'] = 'close';
     }
 
-    if (this.options.requestHeaders)
-      requestHeaders.push.apply(requestHeaders, this.options.requestHeaders);
+    // user-defined headers
+    if (typeof this.options.requestHeaders == 'object') {
+      var extras = this.options.requestHeaders;
 
-    for (var i = 0; i < requestHeaders.length; i += 2)
-      this.transport.setRequestHeader(requestHeaders[i], requestHeaders[i+1]);
-  },
+      if (typeof extras.push == 'function')
+        for (var i = 0, length = extras.length; i < length; i += 2)
+          headers[extras[i]] = extras[i+1];
+      else
+        $H(extras).each(function(pair) { headers[pair.key] = pair.value });
+    }
 
-  onStateChange: function() {
-    var readyState = this.transport.readyState;
-    if (readyState != 1)
-      this.respondToReadyState(this.transport.readyState);
+    for (var name in headers)
+      this.transport.setRequestHeader(name, headers[name]);
   },
 
-  header: function(name) {
-    try {
-      return this.transport.getResponseHeader(name);
-    } catch (e) {}
+  success: function() {
+    return !this.transport.status
+        || (this.transport.status >= 200 && this.transport.status < 300);
   },
 
-  evalJSON: function() {
-    try {
-      return eval('(' + this.header('X-JSON') + ')');
-    } catch (e) {}
-  },
-
-  evalResponse: function() {
-    try {
-      return eval(this.transport.responseText);
-    } catch (e) {
-      this.dispatchException(e);
-    }
-  },
-
   respondToReadyState: function(readyState) {
-    var event = Ajax.Request.Events[readyState];
+    var state = Ajax.Request.Events[readyState];
     var transport = this.transport, json = this.evalJSON();
 
-    if (event == 'Complete') {
+    if (state == 'Complete') {
       try {
+        this._complete = true;
         (this.options['on' + this.transport.status]
-         || this.options['on' + (this.responseIsSuccess() ? 'Success' : 'Failure')]
+         || this.options['on' + (this.success() ? 'Success' : 'Failure')]
          || Prototype.emptyFunction)(transport, json);
       } catch (e) {
         this.dispatchException(e);
       }
 
-      if ((this.header('Content-type') || '').match(/^text\/javascript/i))
-        this.evalResponse();
+      if ((this.getHeader('Content-type') || 'text/javascript').strip().
+        match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))
+          this.evalResponse();
     }
 
     try {
-      (this.options['on' + event] || Prototype.emptyFunction)(transport, json);
-      Ajax.Responders.dispatch('on' + event, this, transport, json);
+      (this.options['on' + state] || Prototype.emptyFunction)(transport, json);
+      Ajax.Responders.dispatch('on' + state, this, transport, json);
     } catch (e) {
       this.dispatchException(e);
     }
 
-    /* Avoid memory leak in MSIE: clean up the oncomplete event handler */
-    if (event == 'Complete')
+    if (state == 'Complete') {
+      // avoid memory leak in MSIE: clean up
       this.transport.onreadystatechange = Prototype.emptyFunction;
+    }
   },
 
+  getHeader: function(name) {
+    try {
+      return this.transport.getResponseHeader(name);
+    } catch (e) { return null }
+  },
+
+  evalJSON: function() {
+    try {
+      var json = this.getHeader('X-JSON');
+      return json ? eval('(' + json + ')') : null;
+    } catch (e) { return null }
+  },
+
+  evalResponse: function() {
+    try {
+      return eval(this.transport.responseText);
+    } catch (e) {
+      this.dispatchException(e);
+    }
+  },
+
   dispatchException: function(exception) {
     (this.options.onException || Prototype.emptyFunction)(this, exception);
     Ajax.Responders.dispatch('onException', this, exception);
@@ -833,41 +984,37 @@
 
 Object.extend(Object.extend(Ajax.Updater.prototype, Ajax.Request.prototype), {
   initialize: function(container, url, options) {
-    this.containers = {
-      success: container.success ? $(container.success) : $(container),
-      failure: container.failure ? $(container.failure) :
-        (container.success ? null : $(container))
+    this.container = {
+      success: (container.success || container),
+      failure: (container.failure || (container.success ? null : container))
     }
 
     this.transport = Ajax.getTransport();
     this.setOptions(options);
 
     var onComplete = this.options.onComplete || Prototype.emptyFunction;
-    this.options.onComplete = (function(transport, object) {
+    this.options.onComplete = (function(transport, param) {
       this.updateContent();
-      onComplete(transport, object);
+      onComplete(transport, param);
     }).bind(this);
 
     this.request(url);
   },
 
   updateContent: function() {
-    var receiver = this.responseIsSuccess() ?
-      this.containers.success : this.containers.failure;
+    var receiver = this.container[this.success() ? 'success' : 'failure'];
     var response = this.transport.responseText;
 
-    if (!this.options.evalScripts)
-      response = response.stripScripts();
+    if (!this.options.evalScripts) response = response.stripScripts();
 
-    if (receiver) {
-      if (this.options.insertion) {
+    if (receiver = $(receiver)) {
+      if (this.options.insertion)
         new this.options.insertion(receiver, response);
-      } else {
-        Element.update(receiver, response);
-      }
+      else
+        receiver.update(response);
     }
 
-    if (this.responseIsSuccess()) {
+    if (this.success()) {
       if (this.onComplete)
         setTimeout(this.onComplete.bind(this), 10);
     }
@@ -916,25 +1063,43 @@
     this.updater = new Ajax.Updater(this.container, this.url, this.options);
   }
 });
-function $() {
-  var results = [], element;
-  for (var i = 0; i < arguments.length; i++) {
-    element = arguments[i];
-    if (typeof element == 'string')
-      element = document.getElementById(element);
-    results.push(Element.extend(element));
+function $(element) {
+  if (arguments.length > 1) {
+    for (var i = 0, elements = [], length = arguments.length; i < length; i++)
+      elements.push($(arguments[i]));
+    return elements;
   }
-  return results.reduce();
+  if (typeof element == 'string')
+    element = document.getElementById(element);
+  return Element.extend(element);
 }
 
+if (Prototype.BrowserFeatures.XPath) {
+  document._getElementsByXPath = function(expression, parentElement) {
+    var results = [];
+    var query = document.evaluate(expression, $(parentElement) || document,
+      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
+    for (var i = 0, length = query.snapshotLength; i < length; i++)
+      results.push(query.snapshotItem(i));
+    return results;
+  };
+}
+
 document.getElementsByClassName = function(className, parentElement) {
-  var children = ($(parentElement) || document.body).getElementsByTagName('*');
-  return $A(children).inject([], function(elements, child) {
-    if (child.className.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
-      elements.push(Element.extend(child));
+  if (Prototype.BrowserFeatures.XPath) {
+    var q = ".//*[contains(concat(' ', @class, ' '), ' " + className + " ')]";
+    return document._getElementsByXPath(q, parentElement);
+  } else {
+    var children = ($(parentElement) || document.body).getElementsByTagName('*');
+    var elements = [], child;
+    for (var i = 0, length = children.length; i < length; i++) {
+      child = children[i];
+      if (Element.hasClassName(child, className))
+        elements.push(Element.extend(child));
+    }
     return elements;
-  });
-}
+  }
+};
 
 /*--------------------------------------------------------------------------*/
 
@@ -942,8 +1107,7 @@
   var Element = new Object();
 
 Element.extend = function(element) {
-  if (!element) return;
-  if (_nativeExtensions || element.nodeType == 3) return element;
+  if (!element || _nativeExtensions || element.nodeType == 3) return element;
 
   if (!element._extended && element.tagName && element != window) {
     var methods = Object.clone(Element.Methods), cache = Element.extend.cache;
@@ -953,16 +1117,18 @@
     if (['INPUT', 'TEXTAREA', 'SELECT'].include(element.tagName))
       Object.extend(methods, Form.Element.Methods);
 
+    Object.extend(methods, Element.Methods.Simulated);
+
     for (var property in methods) {
       var value = methods[property];
-      if (typeof value == 'function')
+      if (typeof value == 'function' && !(property in element))
         element[property] = cache.findOrStore(value);
     }
   }
 
   element._extended = true;
   return element;
-}
+};
 
 Element.extend.cache = {
   findOrStore: function(value) {
@@ -970,7 +1136,7 @@
       return value.apply(null, [this].concat($A(arguments)));
     }
   }
-}
+};
 
 Element.Methods = {
   visible: function(element) {
@@ -1000,6 +1166,7 @@
   },
 
   update: function(element, html) {
+    html = typeof html == 'undefined' ? '' : html.toString();
     $(element).innerHTML = html.stripScripts();
     setTimeout(function() {html.evalScripts()}, 10);
     return element;
@@ -1007,6 +1174,7 @@
 
   replace: function(element, html) {
     element = $(element);
+    html = typeof html == 'undefined' ? '' : html.toString();
     if (element.outerHTML) {
       element.outerHTML = html.stripScripts();
     } else {
@@ -1044,10 +1212,16 @@
   },
 
   descendants: function(element) {
-    element = $(element);
-    return $A(element.getElementsByTagName('*'));
+    return $A($(element).getElementsByTagName('*'));
   },
 
+  immediateDescendants: function(element) {
+    if (!(element = $(element).firstChild)) return [];
+    while (element && element.nodeType != 1) element = element.nextSibling;
+    if (element) return [element].concat($(element).nextSiblings());
+    return [];
+  },
+
   previousSiblings: function(element) {
     return $(element).recursivelyCollect('previousSibling');
   },
@@ -1062,10 +1236,9 @@
   },
 
   match: function(element, selector) {
-    element = $(element);
     if (typeof selector == 'string')
       selector = new Selector(selector);
-    return selector.match(element);
+    return selector.match($(element));
   },
 
   up: function(element, expression, index) {
@@ -1090,22 +1263,41 @@
   },
 
   getElementsByClassName: function(element, className) {
-    element = $(element);
     return document.getElementsByClassName(className, element);
   },
 
-  getHeight: function(element) {
+  readAttribute: function(element, name) {
     element = $(element);
-    return element.offsetHeight;
+    if (document.all && !window.opera) {
+      var t = Element._attributeTranslations;
+      if (t.values[name]) return t.values[name](element, name);
+      if (t.names[name])  name = t.names[name];
+      var attribute = element.attributes[name];
+      if(attribute) return attribute.nodeValue;
+    }
+    return element.getAttribute(name);
   },
 
+  getHeight: function(element) {
+    return $(element).getDimensions().height;
+  },
+
+  getWidth: function(element) {
+    return $(element).getDimensions().width;
+  },
+
   classNames: function(element) {
     return new Element.ClassNames(element);
   },
 
   hasClassName: function(element, className) {
     if (!(element = $(element))) return;
-    return Element.classNames(element).include(className);
+    var elementClassName = element.className;
+    if (elementClassName.length == 0) return false;
+    if (elementClassName == className ||
+        elementClassName.match(new RegExp("(^|\\s)" + className + "(\\s|$)")))
+      return true;
+    return false;
   },
 
   addClassName: function(element, className) {
@@ -1120,6 +1312,12 @@
     return element;
   },
 
+  toggleClassName: function(element, className) {
+    if (!(element = $(element))) return;
+    Element.classNames(element)[element.hasClassName(className) ? 'remove' : 'add'](className);
+    return element;
+  },
+
   observe: function() {
     Event.observe.apply(Event, arguments);
     return $A(arguments).first();
@@ -1147,7 +1345,7 @@
     return $(element).innerHTML.match(/^\s*$/);
   },
 
-  childOf: function(element, ancestor) {
+  descendantOf: function(element, ancestor) {
     element = $(element), ancestor = $(ancestor);
     while (element = element.parentNode)
       if (element == ancestor) return true;
@@ -1156,40 +1354,69 @@
 
   scrollTo: function(element) {
     element = $(element);
-    var x = element.x ? element.x : element.offsetLeft,
-        y = element.y ? element.y : element.offsetTop;
-    window.scrollTo(x, y);
+    var pos = Position.cumulativeOffset(element);
+    window.scrollTo(pos[0], pos[1]);
     return element;
   },
 
   getStyle: function(element, style) {
     element = $(element);
-    var value = element.style[style.camelize()];
+    if (['float','cssFloat'].include(style))
+      style = (typeof element.style.styleFloat != 'undefined' ? 'styleFloat' : 'cssFloat');
+    style = style.camelize();
+    var value = element.style[style];
     if (!value) {
       if (document.defaultView && document.defaultView.getComputedStyle) {
         var css = document.defaultView.getComputedStyle(element, null);
-        value = css ? css.getPropertyValue(style) : null;
+        value = css ? css[style] : null;
       } else if (element.currentStyle) {
-        value = element.currentStyle[style.camelize()];
+        value = element.currentStyle[style];
       }
     }
 
+    if((value == 'auto') && ['width','height'].include(style) && (element.getStyle('display') != 'none'))
+      value = element['offset'+style.capitalize()] + 'px';
+
     if (window.opera && ['left', 'top', 'right', 'bottom'].include(style))
       if (Element.getStyle(element, 'position') == 'static') value = 'auto';
-
+    if(style == 'opacity') {
+      if(value) return parseFloat(value);
+      if(value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
+        if(value[1]) return parseFloat(value[1]) / 100;
+      return 1.0;
+    }
     return value == 'auto' ? null : value;
   },
 
   setStyle: function(element, style) {
     element = $(element);
-    for (var name in style)
-      element.style[name.camelize()] = style[name];
+    for (var name in style) {
+      var value = style[name];
+      if(name == 'opacity') {
+        if (value == 1) {
+          value = (/Gecko/.test(navigator.userAgent) &&
+            !/Konqueror|Safari|KHTML/.test(navigator.userAgent)) ? 0.999999 : 1.0;
+          if(/MSIE/.test(navigator.userAgent) && !window.opera)
+            element.style.filter = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');
+        } else if(value === '') {
+          if(/MSIE/.test(navigator.userAgent) && !window.opera)
+            element.style.filter = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');
+        } else {
+          if(value < 0.00001) value = 0;
+          if(/MSIE/.test(navigator.userAgent) && !window.opera)
+            element.style.filter = element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'') +
+              'alpha(opacity='+value*100+')';
+        }
+      } else if(['float','cssFloat'].include(name)) name = (typeof element.style.styleFloat != 'undefined') ? 'styleFloat' : 'cssFloat';
+      element.style[name.camelize()] = value;
+    }
     return element;
   },
 
   getDimensions: function(element) {
     element = $(element);
-    if (Element.getStyle(element, 'display') != 'none')
+    var display = $(element).getStyle('display');
+    if (display != 'none' && display != null) // Safari bug
       return {width: element.offsetWidth, height: element.offsetHeight};
 
     // All *Width and *Height properties give 0 on elements with display none,
@@ -1197,12 +1424,13 @@
     var els = element.style;
     var originalVisibility = els.visibility;
     var originalPosition = els.position;
+    var originalDisplay = els.display;
     els.visibility = 'hidden';
     els.position = 'absolute';
-    els.display = '';
+    els.display = 'block';
     var originalWidth = element.clientWidth;
     var originalHeight = element.clientHeight;
-    els.display = 'none';
+    els.display = originalDisplay;
     els.position = originalPosition;
     els.visibility = originalVisibility;
     return {width: originalWidth, height: originalHeight};
@@ -1239,7 +1467,7 @@
 
   makeClipping: function(element) {
     element = $(element);
-    if (element._overflow) return;
+    if (element._overflow) return element;
     element._overflow = element.style.overflow || 'auto';
     if ((Element.getStyle(element, 'overflow') || 'visible') != 'hidden')
       element.style.overflow = 'hidden';
@@ -1248,19 +1476,73 @@
 
   undoClipping: function(element) {
     element = $(element);
-    if (!element._overflow) return;
+    if (!element._overflow) return element;
     element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
     element._overflow = null;
     return element;
   }
-}
+};
 
+Object.extend(Element.Methods, {childOf: Element.Methods.descendantOf});
+
+Element._attributeTranslations = {};
+
+Element._attributeTranslations.names = {
+  colspan:   "colSpan",
+  rowspan:   "rowSpan",
+  valign:    "vAlign",
+  datetime:  "dateTime",
+  accesskey: "accessKey",
+  tabindex:  "tabIndex",
+  enctype:   "encType",
+  maxlength: "maxLength",
+  readonly:  "readOnly",
+  longdesc:  "longDesc"
+};
+
+Element._attributeTranslations.values = {
+  _getAttr: function(element, attribute) {
+    return element.getAttribute(attribute, 2);
+  },
+
+  _flag: function(element, attribute) {
+    return $(element).hasAttribute(attribute) ? attribute : null;
+  },
+
+  style: function(element) {
+    return element.style.cssText.toLowerCase();
+  },
+
+  title: function(element) {
+    var node = element.getAttributeNode('title');
+    return node.specified ? node.nodeValue : null;
+  }
+};
+
+Object.extend(Element._attributeTranslations.values, {
+  href: Element._attributeTranslations.values._getAttr,
+  src:  Element._attributeTranslations.values._getAttr,
+  disabled: Element._attributeTranslations.values._flag,
+  checked:  Element._attributeTranslations.values._flag,
+  readonly: Element._attributeTranslations.values._flag,
+  multiple: Element._attributeTranslations.values._flag
+});
+
+Element.Methods.Simulated = {
+  hasAttribute: function(element, attribute) {
+    var t = Element._attributeTranslations;
+    attribute = t.names[attribute] || attribute;
+    return $(element).getAttributeNode(attribute).specified;
+  }
+};
+
 // IE is missing .innerHTML support for TABLE-related elements
-if(document.all){
+if (document.all && !window.opera){
   Element.Methods.update = function(element, html) {
     element = $(element);
+    html = typeof html == 'undefined' ? '' : html.toString();
     var tagName = element.tagName.toUpperCase();
-    if (['THEAD','TBODY','TR','TD'].indexOf(tagName) > -1) {
+    if (['THEAD','TBODY','TR','TD'].include(tagName)) {
       var div = document.createElement('div');
       switch (tagName) {
         case 'THEAD':
@@ -1289,34 +1571,36 @@
     setTimeout(function() {html.evalScripts()}, 10);
     return element;
   }
-}
+};
 
 Object.extend(Element, Element.Methods);
 
 var _nativeExtensions = false;
 
-if (!window.HTMLElement && /Konqueror|Safari|KHTML/.test(navigator.userAgent)) {
-  /* Emulate HTMLElement, HTMLFormElement, HTMLInputElement, HTMLTextAreaElement,
-     and HTMLSelectElement in Safari */
+if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))
   ['', 'Form', 'Input', 'TextArea', 'Select'].each(function(tag) {
-    var klass = window['HTML' + tag + 'Element'] = {};
+    var className = 'HTML' + tag + 'Element';
+    if(window[className]) return;
+    var klass = window[className] = {};
     klass.prototype = document.createElement(tag ? tag.toLowerCase() : 'div').__proto__;
   });
-}
 
 Element.addMethods = function(methods) {
   Object.extend(Element.Methods, methods || {});
 
-  function copy(methods, destination) {
+  function copy(methods, destination, onlyIfAbsent) {
+    onlyIfAbsent = onlyIfAbsent || false;
     var cache = Element.extend.cache;
     for (var property in methods) {
       var value = methods[property];
-      destination[property] = cache.findOrStore(value);
+      if (!onlyIfAbsent || !(property in destination))
+        destination[property] = cache.findOrStore(value);
     }
   }
 
   if (typeof HTMLElement != 'undefined') {
     copy(Element.Methods, HTMLElement.prototype);
+    copy(Element.Methods.Simulated, HTMLElement.prototype, true);
     copy(Form.Methods, HTMLFormElement.prototype);
     [HTMLInputElement, HTMLTextAreaElement, HTMLSelectElement].each(function(klass) {
       copy(Form.Element.Methods, klass.prototype);
@@ -1343,8 +1627,8 @@
       try {
         this.element.insertAdjacentHTML(this.adjacency, this.content);
       } catch (e) {
-        var tagName = this.element.tagName.toLowerCase();
-        if (tagName == 'tbody' || tagName == 'tr') {
+        var tagName = this.element.tagName.toUpperCase();
+        if (['TBODY', 'TR'].include(tagName)) {
           this.insertContent(this.contentFromAnonymousTable());
         } else {
           throw e;
@@ -1443,20 +1727,18 @@
 
   add: function(classNameToAdd) {
     if (this.include(classNameToAdd)) return;
-    this.set(this.toArray().concat(classNameToAdd).join(' '));
+    this.set($A(this).concat(classNameToAdd).join(' '));
   },
 
   remove: function(classNameToRemove) {
     if (!this.include(classNameToRemove)) return;
-    this.set(this.select(function(className) {
-      return className != classNameToRemove;
-    }).join(' '));
+    this.set($A(this).without(classNameToRemove).join(' '));
   },
 
   toString: function() {
-    return this.toArray().join(' ');
+    return $A(this).join(' ');
   }
-}
+};
 
 Object.extend(Element.ClassNames.prototype, Enumerable);
 var Selector = Class.create();
@@ -1503,15 +1785,15 @@
     if (params.wildcard)
       conditions.push('true');
     if (clause = params.id)
-      conditions.push('element.id == ' + clause.inspect());
+      conditions.push('element.readAttribute("id") == ' + clause.inspect());
     if (clause = params.tagName)
       conditions.push('element.tagName.toUpperCase() == ' + clause.inspect());
     if ((clause = params.classNames).length > 0)
-      for (var i = 0; i < clause.length; i++)
-        conditions.push('Element.hasClassName(element, ' + clause[i].inspect() + ')');
+      for (var i = 0, length = clause.length; i < length; i++)
+        conditions.push('element.hasClassName(' + clause[i].inspect() + ')');
     if (clause = params.attributes) {
       clause.each(function(attribute) {
-        var value = 'element.getAttribute(' + attribute.name.inspect() + ')';
+        var value = 'element.readAttribute(' + attribute.name.inspect() + ')';
         var splitValueBy = function(delimiter) {
           return value + ' && ' + value + '.split(' + delimiter.inspect() + ')';
         }
@@ -1524,7 +1806,7 @@
                           ); break;
           case '!=':      conditions.push(value + ' != ' + attribute.value.inspect()); break;
           case '':
-          case undefined: conditions.push(value + ' != null'); break;
+          case undefined: conditions.push('element.hasAttribute(' + attribute.name.inspect() + ')'); break;
           default:        throw 'Unknown operator ' + attribute.operator + ' in selector';
         }
       });
@@ -1535,6 +1817,7 @@
 
   compileMatcher: function() {
     this.match = new Function('element', 'if (!element.tagName) return false; \
+      element = $(element); \
       return ' + this.buildMatchExpression());
   },
 
@@ -1549,7 +1832,7 @@
     scope = (scope || document).getElementsByTagName(this.params.tagName || '*');
 
     var results = [];
-    for (var i = 0; i < scope.length; i++)
+    for (var i = 0, length = scope.length; i < length; i++)
       if (this.match(element = scope[i]))
         results.push(Element.extend(element));
 
@@ -1564,7 +1847,7 @@
 Object.extend(Selector, {
   matchElements: function(elements, expression) {
     var selector = new Selector(expression);
-    return elements.select(selector.match.bind(selector));
+    return elements.select(selector.match.bind(selector)).map(Element.extend);
   },
 
   findElement: function(elements, expression, index) {
@@ -1574,7 +1857,7 @@
 
   findChildElements: function(element, expressions) {
     return expressions.map(function(expression) {
-      return expression.strip().split(/\s+/).inject([null], function(results, expr) {
+      return expression.match(/[^\s"]+(?:"[^"]*"[^\s"]+)*/g).inject([null], function(results, expr) {
         var selector = new Selector(expr);
         return results.inject([], function(elements, result) {
           return elements.concat(selector.findElements(result || element));
@@ -1591,49 +1874,53 @@
   reset: function(form) {
     $(form).reset();
     return form;
+  },
+
+  serializeElements: function(elements, getHash) {
+    var data = elements.inject({}, function(result, element) {
+      if (!element.disabled && element.name) {
+        var key = element.name, value = $(element).getValue();
+        if (value != undefined) {
+          if (result[key]) {
+            if (result[key].constructor != Array) result[key] = [result[key]];
+            result[key].push(value);
+          }
+          else result[key] = value;
+        }
+      }
+      return result;
+    });
+
+    return getHash ? data : Hash.toQueryString(data);
   }
 };
 
 Form.Methods = {
-  serialize: function(form) {
-    var elements = Form.getElements($(form));
-    var queryComponents = new Array();
-
-    for (var i = 0; i < elements.length; i++) {
-      var queryComponent = Form.Element.serialize(elements[i]);
-      if (queryComponent)
-        queryComponents.push(queryComponent);
-    }
-
-    return queryComponents.join('&');
+  serialize: function(form, getHash) {
+    return Form.serializeElements(Form.getElements(form), getHash);
   },
 
   getElements: function(form) {
-    form = $(form);
-    var elements = new Array();
-
-    for (var tagName in Form.Element.Serializers) {
-      var tagElements = form.getElementsByTagName(tagName);
-      for (var j = 0; j < tagElements.length; j++)
-        elements.push(tagElements[j]);
-    }
-    return elements;
+    return $A($(form).getElementsByTagName('*')).inject([],
+      function(elements, child) {
+        if (Form.Element.Serializers[child.tagName.toLowerCase()])
+          elements.push(Element.extend(child));
+        return elements;
+      }
+    );
   },
 
   getInputs: function(form, typeName, name) {
     form = $(form);
     var inputs = form.getElementsByTagName('input');
 
-    if (!typeName && !name)
-      return inputs;
+    if (!typeName && !name) return $A(inputs).map(Element.extend);
 
-    var matchingInputs = new Array();
-    for (var i = 0; i < inputs.length; i++) {
+    for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
       var input = inputs[i];
-      if ((typeName && input.type != typeName) ||
-          (name && input.name != name))
+      if ((typeName && input.type != typeName) || (name && input.name != name))
         continue;
-      matchingInputs.push(input);
+      matchingInputs.push(Element.extend(input));
     }
 
     return matchingInputs;
@@ -1641,27 +1928,23 @@
 
   disable: function(form) {
     form = $(form);
-    var elements = Form.getElements(form);
-    for (var i = 0; i < elements.length; i++) {
-      var element = elements[i];
+    form.getElements().each(function(element) {
       element.blur();
       element.disabled = 'true';
-    }
+    });
     return form;
   },
 
   enable: function(form) {
     form = $(form);
-    var elements = Form.getElements(form);
-    for (var i = 0; i < elements.length; i++) {
-      var element = elements[i];
+    form.getElements().each(function(element) {
       element.disabled = '';
-    }
+    });
     return form;
   },
 
   findFirstElement: function(form) {
-    return Form.getElements(form).find(function(element) {
+    return $(form).getElements().find(function(element) {
       return element.type != 'hidden' && !element.disabled &&
         ['input', 'select', 'textarea'].include(element.tagName.toLowerCase());
     });
@@ -1669,7 +1952,7 @@
 
   focusFirstElement: function(form) {
     form = $(form);
-    Field.activate(Form.findFirstElement(form));
+    form.findFirstElement().activate();
     return form;
   }
 }
@@ -1693,29 +1976,21 @@
 Form.Element.Methods = {
   serialize: function(element) {
     element = $(element);
-    var method = element.tagName.toLowerCase();
-    var parameter = Form.Element.Serializers[method](element);
-
-    if (parameter) {
-      var key = encodeURIComponent(parameter[0]);
-      if (key.length == 0) return;
-
-      if (parameter[1].constructor != Array)
-        parameter[1] = [parameter[1]];
-
-      return parameter[1].map(function(value) {
-        return key + '=' + encodeURIComponent(value);
-      }).join('&');
+    if (!element.disabled && element.name) {
+      var value = element.getValue();
+      if (value != undefined) {
+        var pair = {};
+        pair[element.name] = value;
+        return Hash.toQueryString(pair);
+      }
     }
+    return '';
   },
 
   getValue: function(element) {
     element = $(element);
     var method = element.tagName.toLowerCase();
-    var parameter = Form.Element.Serializers[method](element);
-
-    if (parameter)
-      return parameter[1];
+    return Form.Element.Serializers[method](element);
   },
 
   clear: function(element) {
@@ -1730,27 +2005,29 @@
   activate: function(element) {
     element = $(element);
     element.focus();
-    if (element.select)
+    if (element.select && ( element.tagName.toLowerCase() != 'input' ||
+      !['button', 'reset', 'submit'].include(element.type) ) )
       element.select();
     return element;
   },
 
   disable: function(element) {
     element = $(element);
-    element.disabled = '';
+    element.disabled = true;
     return element;
   },
 
   enable: function(element) {
     element = $(element);
     element.blur();
-    element.disabled = 'true';
+    element.disabled = false;
     return element;
   }
 }
 
 Object.extend(Form.Element, Form.Element.Methods);
 var Field = Form.Element;
+var $F = Form.Element.getValue;
 
 /*--------------------------------------------------------------------------*/
 
@@ -1763,49 +2040,45 @@
       default:
         return Form.Element.Serializers.textarea(element);
     }
-    return false;
   },
 
   inputSelector: function(element) {
-    if (element.checked)
-      return [element.name, element.value];
+    return element.checked ? element.value : null;
   },
 
   textarea: function(element) {
-    return [element.name, element.value];
+    return element.value;
   },
 
   select: function(element) {
-    return Form.Element.Serializers[element.type == 'select-one' ?
+    return this[element.type == 'select-one' ?
       'selectOne' : 'selectMany'](element);
   },
 
   selectOne: function(element) {
-    var value = '', opt, index = element.selectedIndex;
-    if (index >= 0) {
-      opt = element.options[index];
-      value = opt.value || opt.text;
-    }
-    return [element.name, value];
+    var index = element.selectedIndex;
+    return index >= 0 ? this.optionValue(element.options[index]) : null;
   },
 
   selectMany: function(element) {
-    var value = [];
-    for (var i = 0; i < element.length; i++) {
+    var values, length = element.length;
+    if (!length) return null;
+
+    for (var i = 0, values = []; i < length; i++) {
       var opt = element.options[i];
-      if (opt.selected)
-        value.push(opt.value || opt.text);
+      if (opt.selected) values.push(this.optionValue(opt));
     }
-    return [element.name, value];
+    return values;
+  },
+
+  optionValue: function(opt) {
+    // extend element because hasAttribute may not be native
+    return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
   }
 }
 
 /*--------------------------------------------------------------------------*/
 
-var $F = Form.Element.getValue;
-
-/*--------------------------------------------------------------------------*/
-
 Abstract.TimedObserver = function() {}
 Abstract.TimedObserver.prototype = {
   initialize: function(element, frequency, callback) {
@@ -1823,7 +2096,9 @@
 
   onTimerEvent: function() {
     var value = this.getValue();
-    if (this.lastValue != value) {
+    var changed = ('string' == typeof this.lastValue && 'string' == typeof value
+      ? this.lastValue != value : String(this.lastValue) != String(value));
+    if (changed) {
       this.callback(this.element, value);
       this.lastValue = value;
     }
@@ -1868,9 +2143,7 @@
   },
 
   registerFormCallbacks: function() {
-    var elements = Form.getElements(this.element);
-    for (var i = 0; i < elements.length; i++)
-      this.registerCallback(elements[i]);
+    Form.getElements(this.element).each(this.registerCallback.bind(this));
   },
 
   registerCallback: function(element) {
@@ -1974,7 +2247,7 @@
 
   unloadCache: function() {
     if (!Event.observers) return;
-    for (var i = 0; i < Event.observers.length; i++) {
+    for (var i = 0, length = Event.observers.length; i < length; i++) {
       Event.stopObserving.apply(this, Event.observers[i]);
       Event.observers[i][0] = null;
     }
@@ -2061,7 +2334,8 @@
       valueL += element.offsetLeft || 0;
       element = element.offsetParent;
       if (element) {
-        p = Element.getStyle(element, 'position');
+        if(element.tagName=='BODY') break;
+        var p = Element.getStyle(element, 'position');
         if (p == 'relative' || p == 'absolute') break;
       }
     } while (element);
@@ -2197,10 +2471,10 @@
     element._originalHeight = element.style.height;
 
     element.style.position = 'absolute';
-    element.style.top    = top + 'px';;
-    element.style.left   = left + 'px';;
-    element.style.width  = width + 'px';;
-    element.style.height = height + 'px';;
+    element.style.top    = top + 'px';
+    element.style.left   = left + 'px';
+    element.style.width  = width + 'px';
+    element.style.height = height + 'px';
   },
 
   relativize: function(element) {

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/scriptaculous.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/scriptaculous.js	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/scriptaculous.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,6 +1,6 @@
-// script.aculo.us scriptaculous.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006
+// script.aculo.us scriptaculous.js v1.7.0, Fri Jan 19 19:16:36 CET 2007
 
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
 // 
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
@@ -20,9 +20,11 @@
 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+// For details, see the script.aculo.us web site: http://script.aculo.us/
 
 var Scriptaculous = {
-  Version: '1.6.4',
+  Version: '1.7.0',
   require: function(libraryName) {
     // inserting via DOM fails in Safari 2.0, so brute force approach
     document.write('<script type="text/javascript" src="'+libraryName+'"></script>');

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/slider.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/slider.js	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/slider.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,27 +1,9 @@
-// script.aculo.us slider.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006
+// script.aculo.us slider.js v1.7.0, Fri Jan 19 19:16:36 CET 2007
 
-// Copyright (c) 2005 Marty Haught, Thomas Fuchs 
+// Copyright (c) 2005, 2006 Marty Haught, Thomas Fuchs 
 //
-// See http://script.aculo.us for more info
-// 
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
 
 if(!Control) var Control = {};
 Control.Slider = Class.create();
@@ -241,14 +223,16 @@
           // find the handle (prevents issues with Safari)
           while((this.handles.indexOf(handle) == -1) && handle.parentNode) 
             handle = handle.parentNode;
-        
-          this.activeHandle    = handle;
-          this.activeHandleIdx = this.handles.indexOf(this.activeHandle);
-          this.updateStyles();
-        
-          var offsets  = Position.cumulativeOffset(this.activeHandle);
-          this.offsetX = (pointer[0] - offsets[0]);
-          this.offsetY = (pointer[1] - offsets[1]);
+            
+          if(this.handles.indexOf(handle)!=-1) {
+            this.activeHandle    = handle;
+            this.activeHandleIdx = this.handles.indexOf(this.activeHandle);
+            this.updateStyles();
+            
+            var offsets  = Position.cumulativeOffset(this.activeHandle);
+            this.offsetX = (pointer[0] - offsets[0]);
+            this.offsetY = (pointer[1] - offsets[1]);
+          }
         }
       }
       Event.stop(event);

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/unittest.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/unittest.js	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-ajax.war/js/portal/unittest.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,552 +1,564 @@
-// script.aculo.us unittest.js v1.6.4, Wed Sep 06 11:30:58 CEST 2006
-
-// Copyright (c) 2005 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//           (c) 2005 Jon Tirsen (http://www.tirsen.com)
-//           (c) 2005 Michael Schuerig (http://www.schuerig.de/michael/)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-// 
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-// 
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-
-// experimental, Firefox-only
-Event.simulateMouse = function(element, eventName) {
-  var options = Object.extend({
-    pointerX: 0,
-    pointerY: 0,
-    buttons: 0
-  }, arguments[2] || {});
-  var oEvent = document.createEvent("MouseEvents");
-  oEvent.initMouseEvent(eventName, true, true, document.defaultView, 
-    options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY, 
-    false, false, false, false, 0, $(element));
-  
-  if(this.mark) Element.remove(this.mark);
-  this.mark = document.createElement('div');
-  this.mark.appendChild(document.createTextNode(" "));
-  document.body.appendChild(this.mark);
-  this.mark.style.position = 'absolute';
-  this.mark.style.top = options.pointerY + "px";
-  this.mark.style.left = options.pointerX + "px";
-  this.mark.style.width = "5px";
-  this.mark.style.height = "5px;";
-  this.mark.style.borderTop = "1px solid red;"
-  this.mark.style.borderLeft = "1px solid red;"
-  
-  if(this.step)
-    alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options));
-  
-  $(element).dispatchEvent(oEvent);
-};
-
-// Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2.
-// You need to downgrade to 1.0.4 for now to get this working
-// See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much
-Event.simulateKey = function(element, eventName) {
-  var options = Object.extend({
-    ctrlKey: false,
-    altKey: false,
-    shiftKey: false,
-    metaKey: false,
-    keyCode: 0,
-    charCode: 0
-  }, arguments[2] || {});
-
-  var oEvent = document.createEvent("KeyEvents");
-  oEvent.initKeyEvent(eventName, true, true, window, 
-    options.ctrlKey, options.altKey, options.shiftKey, options.metaKey,
-    options.keyCode, options.charCode );
-  $(element).dispatchEvent(oEvent);
-};
-
-Event.simulateKeys = function(element, command) {
-  for(var i=0; i<command.length; i++) {
-    Event.simulateKey(element,'keypress',{charCode:command.charCodeAt(i)});
-  }
-};
-
-var Test = {}
-Test.Unit = {};
-
-// security exception workaround
-Test.Unit.inspect = Object.inspect;
-
-Test.Unit.Logger = Class.create();
-Test.Unit.Logger.prototype = {
-  initialize: function(log) {
-    this.log = $(log);
-    if (this.log) {
-      this._createLogTable();
-    }
-  },
-  start: function(testName) {
-    if (!this.log) return;
-    this.testName = testName;
-    this.lastLogLine = document.createElement('tr');
-    this.statusCell = document.createElement('td');
-    this.nameCell = document.createElement('td');
-    this.nameCell.appendChild(document.createTextNode(testName));
-    this.messageCell = document.createElement('td');
-    this.lastLogLine.appendChild(this.statusCell);
-    this.lastLogLine.appendChild(this.nameCell);
-    this.lastLogLine.appendChild(this.messageCell);
-    this.loglines.appendChild(this.lastLogLine);
-  },
-  finish: function(status, summary) {
-    if (!this.log) return;
-    this.lastLogLine.className = status;
-    this.statusCell.innerHTML = status;
-    this.messageCell.innerHTML = this._toHTML(summary);
-  },
-  message: function(message) {
-    if (!this.log) return;
-    this.messageCell.innerHTML = this._toHTML(message);
-  },
-  summary: function(summary) {
-    if (!this.log) return;
-    this.logsummary.innerHTML = this._toHTML(summary);
-  },
-  _createLogTable: function() {
-    this.log.innerHTML =
-    '<div id="logsummary"></div>' +
-    '<table id="logtable">' +
-    '<thead><tr><th>Status</th><th>Test</th><th>Message</th></tr></thead>' +
-    '<tbody id="loglines"></tbody>' +
-    '</table>';
-    this.logsummary = $('logsummary')
-    this.loglines = $('loglines');
-  },
-  _toHTML: function(txt) {
-    return txt.escapeHTML().replace(/\n/g,"<br/>");
-  }
-}
-
-Test.Unit.Runner = Class.create();
-Test.Unit.Runner.prototype = {
-  initialize: function(testcases) {
-    this.options = Object.extend({
-      testLog: 'testlog'
-    }, arguments[1] || {});
-    this.options.resultsURL = this.parseResultsURLQueryParameter();
-    if (this.options.testLog) {
-      this.options.testLog = $(this.options.testLog) || null;
-    }
-    if(this.options.tests) {
-      this.tests = [];
-      for(var i = 0; i < this.options.tests.length; i++) {
-        if(/^test/.test(this.options.tests[i])) {
-          this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"]));
-        }
-      }
-    } else {
-      if (this.options.test) {
-        this.tests = [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])];
-      } else {
-        this.tests = [];
-        for(var testcase in testcases) {
-          if(/^test/.test(testcase)) {
-            this.tests.push(
-               new Test.Unit.Testcase(
-                 this.options.context ? ' -> ' + this.options.titles[testcase] : testcase, 
-                 testcases[testcase], testcases["setup"], testcases["teardown"]
-               ));
-          }
-        }
-      }
-    }
-    this.currentTest = 0;
-    this.logger = new Test.Unit.Logger(this.options.testLog);
-    setTimeout(this.runTests.bind(this), 1000);
-  },
-  parseResultsURLQueryParameter: function() {
-    return window.location.search.parseQuery()["resultsURL"];
-  },
-  // Returns:
-  //  "ERROR" if there was an error,
-  //  "FAILURE" if there was a failure, or
-  //  "SUCCESS" if there was neither
-  getResult: function() {
-    var hasFailure = false;
-    for(var i=0;i<this.tests.length;i++) {
-      if (this.tests[i].errors > 0) {
-        return "ERROR";
-      }
-      if (this.tests[i].failures > 0) {
-        hasFailure = true;
-      }
-    }
-    if (hasFailure) {
-      return "FAILURE";
-    } else {
-      return "SUCCESS";
-    }
-  },
-  postResults: function() {
-    if (this.options.resultsURL) {
-      new Ajax.Request(this.options.resultsURL, 
-        { method: 'get', parameters: 'result=' + this.getResult(), asynchronous: false });
-    }
-  },
-  runTests: function() {
-    var test = this.tests[this.currentTest];
-    if (!test) {
-      // finished!
-      this.postResults();
-      this.logger.summary(this.summary());
-      return;
-    }
-    if(!test.isWaiting) {
-      this.logger.start(test.name);
-    }
-    test.run();
-    if(test.isWaiting) {
-      this.logger.message("Waiting for " + test.timeToWait + "ms");
-      setTimeout(this.runTests.bind(this), test.timeToWait || 1000);
-    } else {
-      this.logger.finish(test.status(), test.summary());
-      this.currentTest++;
-      // tail recursive, hopefully the browser will skip the stackframe
-      this.runTests();
-    }
-  },
-  summary: function() {
-    var assertions = 0;
-    var failures = 0;
-    var errors = 0;
-    var messages = [];
-    for(var i=0;i<this.tests.length;i++) {
-      assertions +=   this.tests[i].assertions;
-      failures   +=   this.tests[i].failures;
-      errors     +=   this.tests[i].errors;
-    }
-    return (
-      (this.options.context ? this.options.context + ': ': '') + 
-      this.tests.length + " tests, " + 
-      assertions + " assertions, " + 
-      failures   + " failures, " +
-      errors     + " errors");
-  }
-}
-
-Test.Unit.Assertions = Class.create();
-Test.Unit.Assertions.prototype = {
-  initialize: function() {
-    this.assertions = 0;
-    this.failures   = 0;
-    this.errors     = 0;
-    this.messages   = [];
-  },
-  summary: function() {
-    return (
-      this.assertions + " assertions, " + 
-      this.failures   + " failures, " +
-      this.errors     + " errors" + "\n" +
-      this.messages.join("\n"));
-  },
-  pass: function() {
-    this.assertions++;
-  },
-  fail: function(message) {
-    this.failures++;
-    this.messages.push("Failure: " + message);
-  },
-  info: function(message) {
-    this.messages.push("Info: " + message);
-  },
-  error: function(error) {
-    this.errors++;
-    this.messages.push(error.name + ": "+ error.message + "(" + Test.Unit.inspect(error) +")");
-  },
-  status: function() {
-    if (this.failures > 0) return 'failed';
-    if (this.errors > 0) return 'error';
-    return 'passed';
-  },
-  assert: function(expression) {
-    var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"';
-    try { expression ? this.pass() : 
-      this.fail(message); }
-    catch(e) { this.error(e); }
-  },
-  assertEqual: function(expected, actual) {
-    var message = arguments[2] || "assertEqual";
-    try { (expected == actual) ? this.pass() :
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) + 
-        '", actual "' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertEnumEqual: function(expected, actual) {
-    var message = arguments[2] || "assertEnumEqual";
-    try { $A(expected).length == $A(actual).length && 
-      expected.zip(actual).all(function(pair) { return pair[0] == pair[1] }) ?
-        this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) + 
-          ', actual ' + Test.Unit.inspect(actual)); }
-    catch(e) { this.error(e); }
-  },
-  assertNotEqual: function(expected, actual) {
-    var message = arguments[2] || "assertNotEqual";
-    try { (expected != actual) ? this.pass() : 
-      this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertIdentical: function(expected, actual) { 
-    var message = arguments[2] || "assertIdentical"; 
-    try { (expected === actual) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + Test.Unit.inspect(actual) + '"'); } 
-    catch(e) { this.error(e); } 
-  },
-  assertNotIdentical: function(expected, actual) { 
-    var message = arguments[2] || "assertNotIdentical"; 
-    try { !(expected === actual) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + Test.Unit.inspect(actual) + '"'); } 
-    catch(e) { this.error(e); } 
-  },
-  assertNull: function(obj) {
-    var message = arguments[1] || 'assertNull'
-    try { (obj==null) ? this.pass() : 
-      this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertMatch: function(expected, actual) {
-    var message = arguments[2] || 'assertMatch';
-    var regex = new RegExp(expected);
-    try { (regex.exec(actual)) ? this.pass() :
-      this.fail(message + ' : regex: "' +  Test.Unit.inspect(expected) + ' did not match: ' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertHidden: function(element) {
-    var message = arguments[1] || 'assertHidden';
-    this.assertEqual("none", element.style.display, message);
-  },
-  assertNotNull: function(object) {
-    var message = arguments[1] || 'assertNotNull';
-    this.assert(object != null, message);
-  },
-  assertType: function(expected, actual) {
-    var message = arguments[2] || 'assertType';
-    try { 
-      (actual.constructor == expected) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + (actual.constructor) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertNotOfType: function(expected, actual) {
-    var message = arguments[2] || 'assertNotOfType';
-    try { 
-      (actual.constructor != expected) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + (actual.constructor) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertInstanceOf: function(expected, actual) {
-    var message = arguments[2] || 'assertInstanceOf';
-    try { 
-      (actual instanceof expected) ? this.pass() : 
-      this.fail(message + ": object was not an instance of the expected type"); }
-    catch(e) { this.error(e); } 
-  },
-  assertNotInstanceOf: function(expected, actual) {
-    var message = arguments[2] || 'assertNotInstanceOf';
-    try { 
-      !(actual instanceof expected) ? this.pass() : 
-      this.fail(message + ": object was an instance of the not expected type"); }
-    catch(e) { this.error(e); } 
-  },
-  assertRespondsTo: function(method, obj) {
-    var message = arguments[2] || 'assertRespondsTo';
-    try {
-      (obj[method] && typeof obj[method] == 'function') ? this.pass() : 
-      this.fail(message + ": object doesn't respond to [" + method + "]"); }
-    catch(e) { this.error(e); }
-  },
-  assertReturnsTrue: function(method, obj) {
-    var message = arguments[2] || 'assertReturnsTrue';
-    try {
-      var m = obj[method];
-      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
-      m() ? this.pass() : 
-      this.fail(message + ": method returned false"); }
-    catch(e) { this.error(e); }
-  },
-  assertReturnsFalse: function(method, obj) {
-    var message = arguments[2] || 'assertReturnsFalse';
-    try {
-      var m = obj[method];
-      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
-      !m() ? this.pass() : 
-      this.fail(message + ": method returned true"); }
-    catch(e) { this.error(e); }
-  },
-  assertRaise: function(exceptionName, method) {
-    var message = arguments[2] || 'assertRaise';
-    try { 
-      method();
-      this.fail(message + ": exception expected but none was raised"); }
-    catch(e) {
-      (e.name==exceptionName) ? this.pass() : this.error(e); 
-    }
-  },
-  assertElementsMatch: function() {
-    var expressions = $A(arguments), elements = $A(expressions.shift());
-    if (elements.length != expressions.length) {
-      this.fail('assertElementsMatch: size mismatch: ' + elements.length + ' elements, ' + expressions.length + ' expressions');
-      return false;
-    }
-    elements.zip(expressions).all(function(pair, index) {
-      var element = $(pair.first()), expression = pair.last();
-      if (element.match(expression)) return true;
-      this.fail('assertElementsMatch: (in index ' + index + ') expected ' + expression.inspect() + ' but got ' + element.inspect());
-    }.bind(this)) && this.pass();
-  },
-  assertElementMatches: function(element, expression) {
-    this.assertElementsMatch([element], expression);
-  },
-  benchmark: function(operation, iterations) {
-    var startAt = new Date();
-    (iterations || 1).times(operation);
-    var timeTaken = ((new Date())-startAt);
-    this.info((arguments[2] || 'Operation') + ' finished ' + 
-       iterations + ' iterations in ' + (timeTaken/1000)+'s' );
-    return timeTaken;
-  },
-  _isVisible: function(element) {
-    element = $(element);
-    if(!element.parentNode) return true;
-    this.assertNotNull(element);
-    if(element.style && Element.getStyle(element, 'display') == 'none')
-      return false;
-    
-    return this._isVisible(element.parentNode);
-  },
-  assertNotVisible: function(element) {
-    this.assert(!this._isVisible(element), Test.Unit.inspect(element) + " was not hidden and didn't have a hidden parent either. " + ("" || arguments[1]));
-  },
-  assertVisible: function(element) {
-    this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1]));
-  },
-  benchmark: function(operation, iterations) {
-    var startAt = new Date();
-    (iterations || 1).times(operation);
-    var timeTaken = ((new Date())-startAt);
-    this.info((arguments[2] || 'Operation') + ' finished ' + 
-       iterations + ' iterations in ' + (timeTaken/1000)+'s' );
-    return timeTaken;
-  }
-}
-
-Test.Unit.Testcase = Class.create();
-Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), {
-  initialize: function(name, test, setup, teardown) {
-    Test.Unit.Assertions.prototype.initialize.bind(this)();
-    this.name           = name;
-    
-    if(typeof test == 'string') {
-      test = test.gsub(/(\.should[^\(]+\()/,'#{0}this,');
-      test = test.gsub(/(\.should[^\(]+)\(this,\)/,'#{1}(this)');
-      this.test = function() {
-        eval('with(this){'+test+'}');
-      }
-    } else {
-      this.test = test || function() {};
-    }
-    
-    this.setup          = setup || function() {};
-    this.teardown       = teardown || function() {};
-    this.isWaiting      = false;
-    this.timeToWait     = 1000;
-  },
-  wait: function(time, nextPart) {
-    this.isWaiting = true;
-    this.test = nextPart;
-    this.timeToWait = time;
-  },
-  run: function() {
-    try {
-      try {
-        if (!this.isWaiting) this.setup.bind(this)();
-        this.isWaiting = false;
-        this.test.bind(this)();
-      } finally {
-        if(!this.isWaiting) {
-          this.teardown.bind(this)();
-        }
-      }
-    }
-    catch(e) { this.error(e); }
-  }
-});
-
-// *EXPERIMENTAL* BDD-style testing to please non-technical folk
-// This draws many ideas from RSpec http://rspec.rubyforge.org/
-
-Test.setupBDDExtensionMethods = function(){
-  var METHODMAP = {
-    shouldEqual:     'assertEqual',
-    shouldNotEqual:  'assertNotEqual',
-    shouldEqualEnum: 'assertEnumEqual',
-    shouldBeA:       'assertType',
-    shouldNotBeA:    'assertNotOfType',
-    shouldBeAn:      'assertType',
-    shouldNotBeAn:   'assertNotOfType',
-    shouldBeNull:    'assertNull',
-    shouldNotBeNull: 'assertNotNull',
-    
-    shouldBe:        'assertReturnsTrue',
-    shouldNotBe:     'assertReturnsFalse',
-    shouldRespondTo: 'assertRespondsTo'
-  };
-  Test.BDDMethods = {};
-  for(m in METHODMAP) {
-    Test.BDDMethods[m] = eval(
-      'function(){'+
-      'var args = $A(arguments);'+
-      'var scope = args.shift();'+
-      'scope.'+METHODMAP[m]+'.apply(scope,(args || []).concat([this])); }');
-  }
-  [Array.prototype, String.prototype, Number.prototype].each(
-    function(p){ Object.extend(p, Test.BDDMethods) }
-  );
-}
-
-Test.context = function(name, spec, log){
-  Test.setupBDDExtensionMethods();
-  
-  var compiledSpec = {};
-  var titles = {};
-  for(specName in spec) {
-    switch(specName){
-      case "setup":
-      case "teardown":
-        compiledSpec[specName] = spec[specName];
-        break;
-      default:
-        var testName = 'test'+specName.gsub(/\s+/,'-').camelize();
-        var body = spec[specName].toString().split('\n').slice(1);
-        if(/^\{/.test(body[0])) body = body.slice(1);
-        body.pop();
-        body = body.map(function(statement){ 
-          return statement.strip()
-        });
-        compiledSpec[testName] = body.join('\n');
-        titles[testName] = specName;
-    }
-  }
-  new Test.Unit.Runner(compiledSpec, { titles: titles, testLog: log || 'testlog', context: name });
+// script.aculo.us unittest.js v1.7.0, Fri Jan 19 19:16:36 CET 2007
+
+// Copyright (c) 2005, 2006 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
+//           (c) 2005, 2006 Jon Tirsen (http://www.tirsen.com)
+//           (c) 2005, 2006 Michael Schuerig (http://www.schuerig.de/michael/)
+//
+// script.aculo.us is freely distributable under the terms of an MIT-style license.
+// For details, see the script.aculo.us web site: http://script.aculo.us/
+
+// experimental, Firefox-only
+Event.simulateMouse = function(element, eventName) {
+  var options = Object.extend({
+    pointerX: 0,
+    pointerY: 0,
+    buttons:  0,
+    ctrlKey:  false,
+    altKey:   false,
+    shiftKey: false,
+    metaKey:  false
+  }, arguments[2] || {});
+  var oEvent = document.createEvent("MouseEvents");
+  oEvent.initMouseEvent(eventName, true, true, document.defaultView, 
+    options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY, 
+    options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, 0, $(element));
+  
+  if(this.mark) Element.remove(this.mark);
+  this.mark = document.createElement('div');
+  this.mark.appendChild(document.createTextNode(" "));
+  document.body.appendChild(this.mark);
+  this.mark.style.position = 'absolute';
+  this.mark.style.top = options.pointerY + "px";
+  this.mark.style.left = options.pointerX + "px";
+  this.mark.style.width = "5px";
+  this.mark.style.height = "5px;";
+  this.mark.style.borderTop = "1px solid red;"
+  this.mark.style.borderLeft = "1px solid red;"
+  
+  if(this.step)
+    alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options));
+  
+  $(element).dispatchEvent(oEvent);
+};
+
+// Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2.
+// You need to downgrade to 1.0.4 for now to get this working
+// See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much
+Event.simulateKey = function(element, eventName) {
+  var options = Object.extend({
+    ctrlKey: false,
+    altKey: false,
+    shiftKey: false,
+    metaKey: false,
+    keyCode: 0,
+    charCode: 0
+  }, arguments[2] || {});
+
+  var oEvent = document.createEvent("KeyEvents");
+  oEvent.initKeyEvent(eventName, true, true, window, 
+    options.ctrlKey, options.altKey, options.shiftKey, options.metaKey,
+    options.keyCode, options.charCode );
+  $(element).dispatchEvent(oEvent);
+};
+
+Event.simulateKeys = function(element, command) {
+  for(var i=0; i<command.length; i++) {
+    Event.simulateKey(element,'keypress',{charCode:command.charCodeAt(i)});
+  }
+};
+
+var Test = {}
+Test.Unit = {};
+
+// security exception workaround
+Test.Unit.inspect = Object.inspect;
+
+Test.Unit.Logger = Class.create();
+Test.Unit.Logger.prototype = {
+  initialize: function(log) {
+    this.log = $(log);
+    if (this.log) {
+      this._createLogTable();
+    }
+  },
+  start: function(testName) {
+    if (!this.log) return;
+    this.testName = testName;
+    this.lastLogLine = document.createElement('tr');
+    this.statusCell = document.createElement('td');
+    this.nameCell = document.createElement('td');
+    this.nameCell.className = "nameCell";
+    this.nameCell.appendChild(document.createTextNode(testName));
+    this.messageCell = document.createElement('td');
+    this.lastLogLine.appendChild(this.statusCell);
+    this.lastLogLine.appendChild(this.nameCell);
+    this.lastLogLine.appendChild(this.messageCell);
+    this.loglines.appendChild(this.lastLogLine);
+  },
+  finish: function(status, summary) {
+    if (!this.log) return;
+    this.lastLogLine.className = status;
+    this.statusCell.innerHTML = status;
+    this.messageCell.innerHTML = this._toHTML(summary);
+    this.addLinksToResults();
+  },
+  message: function(message) {
+    if (!this.log) return;
+    this.messageCell.innerHTML = this._toHTML(message);
+  },
+  summary: function(summary) {
+    if (!this.log) return;
+    this.logsummary.innerHTML = this._toHTML(summary);
+  },
+  _createLogTable: function() {
+    this.log.innerHTML =
+    '<div id="logsummary"></div>' +
+    '<table id="logtable">' +
+    '<thead><tr><th>Status</th><th>Test</th><th>Message</th></tr></thead>' +
+    '<tbody id="loglines"></tbody>' +
+    '</table>';
+    this.logsummary = $('logsummary')
+    this.loglines = $('loglines');
+  },
+  _toHTML: function(txt) {
+    return txt.escapeHTML().replace(/\n/g,"<br/>");
+  },
+  addLinksToResults: function(){ 
+    $$("tr.failed .nameCell").each( function(td){ // todo: limit to children of this.log
+      td.title = "Run only this test"
+      Event.observe(td, 'click', function(){ window.location.search = "?tests=" + td.innerHTML;});
+    });
+    $$("tr.passed .nameCell").each( function(td){ // todo: limit to children of this.log
+      td.title = "Run all tests"
+      Event.observe(td, 'click', function(){ window.location.search = "";});
+    });
+  }
+}
+
+Test.Unit.Runner = Class.create();
+Test.Unit.Runner.prototype = {
+  initialize: function(testcases) {
+    this.options = Object.extend({
+      testLog: 'testlog'
+    }, arguments[1] || {});
+    this.options.resultsURL = this.parseResultsURLQueryParameter();
+    this.options.tests      = this.parseTestsQueryParameter();
+    if (this.options.testLog) {
+      this.options.testLog = $(this.options.testLog) || null;
+    }
+    if(this.options.tests) {
+      this.tests = [];
+      for(var i = 0; i < this.options.tests.length; i++) {
+        if(/^test/.test(this.options.tests[i])) {
+          this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"]));
+        }
+      }
+    } else {
+      if (this.options.test) {
+        this.tests = [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])];
+      } else {
+        this.tests = [];
+        for(var testcase in testcases) {
+          if(/^test/.test(testcase)) {
+            this.tests.push(
+               new Test.Unit.Testcase(
+                 this.options.context ? ' -> ' + this.options.titles[testcase] : testcase, 
+                 testcases[testcase], testcases["setup"], testcases["teardown"]
+               ));
+          }
+        }
+      }
+    }
+    this.currentTest = 0;
+    this.logger = new Test.Unit.Logger(this.options.testLog);
+    setTimeout(this.runTests.bind(this), 1000);
+  },
+  parseResultsURLQueryParameter: function() {
+    return window.location.search.parseQuery()["resultsURL"];
+  },
+  parseTestsQueryParameter: function(){
+    if (window.location.search.parseQuery()["tests"]){
+        return window.location.search.parseQuery()["tests"].split(',');
+    };
+  },
+  // Returns:
+  //  "ERROR" if there was an error,
+  //  "FAILURE" if there was a failure, or
+  //  "SUCCESS" if there was neither
+  getResult: function() {
+    var hasFailure = false;
+    for(var i=0;i<this.tests.length;i++) {
+      if (this.tests[i].errors > 0) {
+        return "ERROR";
+      }
+      if (this.tests[i].failures > 0) {
+        hasFailure = true;
+      }
+    }
+    if (hasFailure) {
+      return "FAILURE";
+    } else {
+      return "SUCCESS";
+    }
+  },
+  postResults: function() {
+    if (this.options.resultsURL) {
+      new Ajax.Request(this.options.resultsURL, 
+        { method: 'get', parameters: 'result=' + this.getResult(), asynchronous: false });
+    }
+  },
+  runTests: function() {
+    var test = this.tests[this.currentTest];
+    if (!test) {
+      // finished!
+      this.postResults();
+      this.logger.summary(this.summary());
+      return;
+    }
+    if(!test.isWaiting) {
+      this.logger.start(test.name);
+    }
+    test.run();
+    if(test.isWaiting) {
+      this.logger.message("Waiting for " + test.timeToWait + "ms");
+      setTimeout(this.runTests.bind(this), test.timeToWait || 1000);
+    } else {
+      this.logger.finish(test.status(), test.summary());
+      this.currentTest++;
+      // tail recursive, hopefully the browser will skip the stackframe
+      this.runTests();
+    }
+  },
+  summary: function() {
+    var assertions = 0;
+    var failures = 0;
+    var errors = 0;
+    var messages = [];
+    for(var i=0;i<this.tests.length;i++) {
+      assertions +=   this.tests[i].assertions;
+      failures   +=   this.tests[i].failures;
+      errors     +=   this.tests[i].errors;
+    }
+    return (
+      (this.options.context ? this.options.context + ': ': '') + 
+      this.tests.length + " tests, " + 
+      assertions + " assertions, " + 
+      failures   + " failures, " +
+      errors     + " errors");
+  }
+}
+
+Test.Unit.Assertions = Class.create();
+Test.Unit.Assertions.prototype = {
+  initialize: function() {
+    this.assertions = 0;
+    this.failures   = 0;
+    this.errors     = 0;
+    this.messages   = [];
+  },
+  summary: function() {
+    return (
+      this.assertions + " assertions, " + 
+      this.failures   + " failures, " +
+      this.errors     + " errors" + "\n" +
+      this.messages.join("\n"));
+  },
+  pass: function() {
+    this.assertions++;
+  },
+  fail: function(message) {
+    this.failures++;
+    this.messages.push("Failure: " + message);
+  },
+  info: function(message) {
+    this.messages.push("Info: " + message);
+  },
+  error: function(error) {
+    this.errors++;
+    this.messages.push(error.name + ": "+ error.message + "(" + Test.Unit.inspect(error) +")");
+  },
+  status: function() {
+    if (this.failures > 0) return 'failed';
+    if (this.errors > 0) return 'error';
+    return 'passed';
+  },
+  assert: function(expression) {
+    var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"';
+    try { expression ? this.pass() : 
+      this.fail(message); }
+    catch(e) { this.error(e); }
+  },
+  assertEqual: function(expected, actual) {
+    var message = arguments[2] || "assertEqual";
+    try { (expected == actual) ? this.pass() :
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) + 
+        '", actual "' + Test.Unit.inspect(actual) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertInspect: function(expected, actual) {
+    var message = arguments[2] || "assertInspect";
+    try { (expected == actual.inspect()) ? this.pass() :
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) + 
+        '", actual "' + Test.Unit.inspect(actual) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertEnumEqual: function(expected, actual) {
+    var message = arguments[2] || "assertEnumEqual";
+    try { $A(expected).length == $A(actual).length && 
+      expected.zip(actual).all(function(pair) { return pair[0] == pair[1] }) ?
+        this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) + 
+          ', actual ' + Test.Unit.inspect(actual)); }
+    catch(e) { this.error(e); }
+  },
+  assertNotEqual: function(expected, actual) {
+    var message = arguments[2] || "assertNotEqual";
+    try { (expected != actual) ? this.pass() : 
+      this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertIdentical: function(expected, actual) { 
+    var message = arguments[2] || "assertIdentical"; 
+    try { (expected === actual) ? this.pass() : 
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
+        '", actual "' + Test.Unit.inspect(actual) + '"'); } 
+    catch(e) { this.error(e); } 
+  },
+  assertNotIdentical: function(expected, actual) { 
+    var message = arguments[2] || "assertNotIdentical"; 
+    try { !(expected === actual) ? this.pass() : 
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
+        '", actual "' + Test.Unit.inspect(actual) + '"'); } 
+    catch(e) { this.error(e); } 
+  },
+  assertNull: function(obj) {
+    var message = arguments[1] || 'assertNull'
+    try { (obj==null) ? this.pass() : 
+      this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertMatch: function(expected, actual) {
+    var message = arguments[2] || 'assertMatch';
+    var regex = new RegExp(expected);
+    try { (regex.exec(actual)) ? this.pass() :
+      this.fail(message + ' : regex: "' +  Test.Unit.inspect(expected) + ' did not match: ' + Test.Unit.inspect(actual) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertHidden: function(element) {
+    var message = arguments[1] || 'assertHidden';
+    this.assertEqual("none", element.style.display, message);
+  },
+  assertNotNull: function(object) {
+    var message = arguments[1] || 'assertNotNull';
+    this.assert(object != null, message);
+  },
+  assertType: function(expected, actual) {
+    var message = arguments[2] || 'assertType';
+    try { 
+      (actual.constructor == expected) ? this.pass() : 
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
+        '", actual "' + (actual.constructor) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertNotOfType: function(expected, actual) {
+    var message = arguments[2] || 'assertNotOfType';
+    try { 
+      (actual.constructor != expected) ? this.pass() : 
+      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
+        '", actual "' + (actual.constructor) + '"'); }
+    catch(e) { this.error(e); }
+  },
+  assertInstanceOf: function(expected, actual) {
+    var message = arguments[2] || 'assertInstanceOf';
+    try { 
+      (actual instanceof expected) ? this.pass() : 
+      this.fail(message + ": object was not an instance of the expected type"); }
+    catch(e) { this.error(e); } 
+  },
+  assertNotInstanceOf: function(expected, actual) {
+    var message = arguments[2] || 'assertNotInstanceOf';
+    try { 
+      !(actual instanceof expected) ? this.pass() : 
+      this.fail(message + ": object was an instance of the not expected type"); }
+    catch(e) { this.error(e); } 
+  },
+  assertRespondsTo: function(method, obj) {
+    var message = arguments[2] || 'assertRespondsTo';
+    try {
+      (obj[method] && typeof obj[method] == 'function') ? this.pass() : 
+      this.fail(message + ": object doesn't respond to [" + method + "]"); }
+    catch(e) { this.error(e); }
+  },
+  assertReturnsTrue: function(method, obj) {
+    var message = arguments[2] || 'assertReturnsTrue';
+    try {
+      var m = obj[method];
+      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
+      m() ? this.pass() : 
+      this.fail(message + ": method returned false"); }
+    catch(e) { this.error(e); }
+  },
+  assertReturnsFalse: function(method, obj) {
+    var message = arguments[2] || 'assertReturnsFalse';
+    try {
+      var m = obj[method];
+      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
+      !m() ? this.pass() : 
+      this.fail(message + ": method returned true"); }
+    catch(e) { this.error(e); }
+  },
+  assertRaise: function(exceptionName, method) {
+    var message = arguments[2] || 'assertRaise';
+    try { 
+      method();
+      this.fail(message + ": exception expected but none was raised"); }
+    catch(e) {
+      ((exceptionName == null) || (e.name==exceptionName)) ? this.pass() : this.error(e); 
+    }
+  },
+  assertElementsMatch: function() {
+    var expressions = $A(arguments), elements = $A(expressions.shift());
+    if (elements.length != expressions.length) {
+      this.fail('assertElementsMatch: size mismatch: ' + elements.length + ' elements, ' + expressions.length + ' expressions');
+      return false;
+    }
+    elements.zip(expressions).all(function(pair, index) {
+      var element = $(pair.first()), expression = pair.last();
+      if (element.match(expression)) return true;
+      this.fail('assertElementsMatch: (in index ' + index + ') expected ' + expression.inspect() + ' but got ' + element.inspect());
+    }.bind(this)) && this.pass();
+  },
+  assertElementMatches: function(element, expression) {
+    this.assertElementsMatch([element], expression);
+  },
+  benchmark: function(operation, iterations) {
+    var startAt = new Date();
+    (iterations || 1).times(operation);
+    var timeTaken = ((new Date())-startAt);
+    this.info((arguments[2] || 'Operation') + ' finished ' + 
+       iterations + ' iterations in ' + (timeTaken/1000)+'s' );
+    return timeTaken;
+  },
+  _isVisible: function(element) {
+    element = $(element);
+    if(!element.parentNode) return true;
+    this.assertNotNull(element);
+    if(element.style && Element.getStyle(element, 'display') == 'none')
+      return false;
+    
+    return this._isVisible(element.parentNode);
+  },
+  assertNotVisible: function(element) {
+    this.assert(!this._isVisible(element), Test.Unit.inspect(element) + " was not hidden and didn't have a hidden parent either. " + ("" || arguments[1]));
+  },
+  assertVisible: function(element) {
+    this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1]));
+  },
+  benchmark: function(operation, iterations) {
+    var startAt = new Date();
+    (iterations || 1).times(operation);
+    var timeTaken = ((new Date())-startAt);
+    this.info((arguments[2] || 'Operation') + ' finished ' + 
+       iterations + ' iterations in ' + (timeTaken/1000)+'s' );
+    return timeTaken;
+  }
+}
+
+Test.Unit.Testcase = Class.create();
+Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), {
+  initialize: function(name, test, setup, teardown) {
+    Test.Unit.Assertions.prototype.initialize.bind(this)();
+    this.name           = name;
+    
+    if(typeof test == 'string') {
+      test = test.gsub(/(\.should[^\(]+\()/,'#{0}this,');
+      test = test.gsub(/(\.should[^\(]+)\(this,\)/,'#{1}(this)');
+      this.test = function() {
+        eval('with(this){'+test+'}');
+      }
+    } else {
+      this.test = test || function() {};
+    }
+    
+    this.setup          = setup || function() {};
+    this.teardown       = teardown || function() {};
+    this.isWaiting      = false;
+    this.timeToWait     = 1000;
+  },
+  wait: function(time, nextPart) {
+    this.isWaiting = true;
+    this.test = nextPart;
+    this.timeToWait = time;
+  },
+  run: function() {
+    try {
+      try {
+        if (!this.isWaiting) this.setup.bind(this)();
+        this.isWaiting = false;
+        this.test.bind(this)();
+      } finally {
+        if(!this.isWaiting) {
+          this.teardown.bind(this)();
+        }
+      }
+    }
+    catch(e) { this.error(e); }
+  }
+});
+
+// *EXPERIMENTAL* BDD-style testing to please non-technical folk
+// This draws many ideas from RSpec http://rspec.rubyforge.org/
+
+Test.setupBDDExtensionMethods = function(){
+  var METHODMAP = {
+    shouldEqual:     'assertEqual',
+    shouldNotEqual:  'assertNotEqual',
+    shouldEqualEnum: 'assertEnumEqual',
+    shouldBeA:       'assertType',
+    shouldNotBeA:    'assertNotOfType',
+    shouldBeAn:      'assertType',
+    shouldNotBeAn:   'assertNotOfType',
+    shouldBeNull:    'assertNull',
+    shouldNotBeNull: 'assertNotNull',
+    
+    shouldBe:        'assertReturnsTrue',
+    shouldNotBe:     'assertReturnsFalse',
+    shouldRespondTo: 'assertRespondsTo'
+  };
+  Test.BDDMethods = {};
+  for(m in METHODMAP) {
+    Test.BDDMethods[m] = eval(
+      'function(){'+
+      'var args = $A(arguments);'+
+      'var scope = args.shift();'+
+      'scope.'+METHODMAP[m]+'.apply(scope,(args || []).concat([this])); }');
+  }
+  [Array.prototype, String.prototype, Number.prototype].each(
+    function(p){ Object.extend(p, Test.BDDMethods) }
+  );
+}
+
+Test.context = function(name, spec, log){
+  Test.setupBDDExtensionMethods();
+  
+  var compiledSpec = {};
+  var titles = {};
+  for(specName in spec) {
+    switch(specName){
+      case "setup":
+      case "teardown":
+        compiledSpec[specName] = spec[specName];
+        break;
+      default:
+        var testName = 'test'+specName.gsub(/\s+/,'-').camelize();
+        var body = spec[specName].toString().split('\n').slice(1);
+        if(/^\{/.test(body[0])) body = body.slice(1);
+        body.pop();
+        body = body.map(function(statement){ 
+          return statement.strip()
+        });
+        compiledSpec[testName] = body.join('\n');
+        titles[testName] = specName;
+    }
+  }
+  new Test.Unit.Runner(compiledSpec, { titles: titles, testLog: log || 'testlog', context: name });
 };
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/META-INF/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/META-INF/jboss-service.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/META-INF/jboss-service.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -220,7 +220,7 @@
    -->
 
    <mbean
-      code="org.jboss.portal.core.cms.CMSObjectCommandFactory"
+      code="org.jboss.portal.core.cms.CMSObjectCommandFactoryService"
       name="portal:commandFactory=CMSObject"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
@@ -664,29 +664,19 @@
 
    <!-- Content renderer integration -->
    <mbean
-      code="org.jboss.portal.core.cms.content.CMSContentRenderer"
+      code="org.jboss.portal.core.cms.content.InternalCMSContentProvider"
       name="portal:service=ContentRenderer,type=cms"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
       <xmbean/>
       <attribute name="ContentType">cms</attribute>
       <attribute name="DecorateContent">false</attribute>
+      <attribute name="PortletInstanceName">CMSPortletInstance</attribute>
       <depends
          optional-attribute-name="Registry"
-         proxy-type="attribute">portal:service=ContentRendererRegistry</depends>
-      <depends optional-attribute-name="CommandFactory">portal:commandFactory=CMSObject</depends>
-   </mbean>
-
-   <!-- Content handler integration -->
-   <mbean
-      code="org.jboss.portal.core.cms.content.CMSContentHandler"
-      name="portal:service=ContentHandler,type=cms"
-      xmbean-dd=""
-      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-      <xmbean/>
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
       <depends
-         optional-attribute-name="Registry"
-         proxy-type="attribute">portal:container=PortalObject</depends>
-      <attribute name="ContentType">cms</attribute>
+         optional-attribute-name="CommandFactory"
+         proxy-type="attribute">portal:commandFactory=CMSObject</depends>
    </mbean>
 </server>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/lib/portal-cms-lib.jar
===================================================================
(Binary files differ)

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

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/portal-cms.war/WEB-INF/jsp/cms/editor/main.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/portal-cms.war/WEB-INF/jsp/cms/editor/main.jsp	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/portal-cms.war/WEB-INF/jsp/cms/editor/main.jsp	2007-04-03 09:17:29 UTC (rev 10706)
@@ -17,7 +17,7 @@
    String sCurrPath = (String)request.getAttribute("currpath");
    List folders = (List)request.getAttribute("folders");
    List files = (List)request.getAttribute("files");
-   String uri = (String)renderRequest.getParameter("uri");
+   String uri = (String)renderRequest.getParameter("content.uri");
    PortletURL url = renderResponse.createRenderURL();
    url.setParameter("op", CMSAdminConstants.OP_MAIN);
    url.setParameter("path", "/");
@@ -90,9 +90,9 @@
          File file = (File)files.get(j);
 
          PortletURL metaURL = renderResponse.createActionURL();
-         metaURL.setParameter("uri", file.getBasePath());
+         metaURL.setParameter("content.uri", file.getBasePath());
          metaURL.setParameter("path", sCurrPath);
-         metaURL.setParameter("meta_action", "select");
+         metaURL.setParameter("content.action.select", "select");
 
          if ((uri!=null) && (uri.equals(file.getBasePath())))
          {

Deleted: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/portal-cms.war/WEB-INF/portlet.tld
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/portal-cms.war/WEB-INF/portlet.tld	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/portal-cms.war/WEB-INF/portlet.tld	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-
-   <tlib-version>1.0</tlib-version>
-   <jsp-version>1.2</jsp-version>
-   <short-name>portlet</short-name>
-
-   <uri>http://java.sun.com/portlet</uri>
-
-   <tag>
-
-      <name>param</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.URLParameterTag</tag-class>
-      <body-content>empty</body-content>
-
-      <attribute>
-         <name>name</name>
-         <required>true</required>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>value</name>
-         <required>true</required>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-
-   </tag>
-   <tag>
-
-      <name>renderURL</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.RenderURLTag</tag-class>
-      <tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.GenerateURLTagTEI</tei-class>
-      <body-content>JSP</body-content>
-
-      <attribute>
-         <name>portletMode</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>secure</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>var</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>windowState</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-
-   </tag>
-   <tag>
-
-      <name>defineObjects</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.DefineObjectsTag</tag-class>
-      <tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.DefineObjectsTagTEI</tei-class>
-      <body-content>empty</body-content>
-
-   </tag>
-   <tag>
-
-      <name>actionURL</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.ActionURLTag</tag-class>
-      <tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.GenerateURLTagTEI</tei-class>
-      <body-content>JSP</body-content>
-
-      <attribute>
-         <name>portletMode</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>secure</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>var</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>windowState</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-
-   </tag>
-   <tag>
-
-      <name>namespace</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.NamespaceTag</tag-class>
-      <body-content>empty</body-content>
-
-   </tag>
-
-</taglib>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-cms.sar/portal-workflow.sar/portal-workflow-lib.jar
===================================================================
(Binary files differ)

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource.properties	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource.properties	2007-04-03 09:17:29 UTC (rev 10706)
@@ -177,6 +177,8 @@
 
 NAMENOTAVAILABLE=N/A
 
+MODIFIED_PROFILE=Your profile has been modified, the portal will be running with your former profile until you log back in.
+
 # Registration
 REGISTER_NOT_LOGGED_IN=You are currently not logged in.
 REGISTER_REGISTER=You can create an account.
@@ -303,12 +305,6 @@
 ROLE_TEXT_1=Use this portlet to create, edit, delete and add users to roles.
 ROLE_TEXT_2=These roles are used in the Management Portlet to set access rights.
 
-VALIDATIONEMAIL_1=A user with this email address has registered on our site.
-VALIDATIONEMAIL_2=Please keep this email for your records. Your account information is as follows
-VALIDATIONEMAIL_3=Your account is currently inactive. You cannot use it until you visit the following link
-VALIDATIONEMAIL_4=If you did not register for membership on our site, no further action is required.
-VALIDATIONEMAIL_5=Regards,\nThe staff.
-
 PERMISSION_PICKPORTLET=Portlet Permissions Administration
 PERMISSION_PERMISSIONS=Permissions to modify
 PERMISSION_TOP=Select a Component to Modify

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_es.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_es.properties	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_es.properties	2007-04-03 09:17:29 UTC (rev 10706)
@@ -286,12 +286,6 @@
 MENU_EDITROLE=Editar un rol existente
 MENU_EDITROLEMEMBERS=Editar los miembros de un rol
 
-VALIDATIONEMAIL_1=Un usuario con esta direcci?n de email se ha registado en nuestro sitio.
-VALIDATIONEMAIL_2=Por favor, mantenga este correo para su registro. La informaci?n de su cuenta es la siguiente
-VALIDATIONEMAIL_3=Su cuenta est? actualmente inactiva. No puede usarla hasta que visite el siguiente enlace
-VALIDATIONEMAIL_4=Si no se ha registrado como miembro en nuestro sitio, no es necesario que haga nada m?s.
-VALIDATIONEMAIL_5=Saludos,\nEl personal.
-
 PERMISSION_PICKPORTLET=Permisos de administraci?n de portlets
 PERMISSION_PERMISSIONS=Permisos para modificaci?n
 PERMISSION_TOP=Elegir un componente para modificar

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_fr.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_fr.properties	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_fr.properties	2007-04-03 09:17:29 UTC (rev 10706)
@@ -254,11 +254,6 @@
 MENU_CREATEROLE=Creer nouveau role
 MENU_EDITROLE=Editer un role existant
 
-VALIDATIONEMAIL_1=Un utilisateur s'est enregistre avec cette adresse email.
-VALIDATIONEMAIL_2=Merci de garder cet email. Vos informations sont les suivantes
-VALIDATIONEMAIL_3=Votre compte est desactive pour le moment. Vous en pouvez pas l'utiliser tant que vous n'aurez pas clique sur le lien suivant
-VALIDATIONEMAIL_4=Si vous n'avez pas demande a etre membre, ne faite rien.
-VALIDATIONEMAIL_5=Cordialement.
 TITLE_FILEBROWSE=Explorateur de fichier
 _ASREGISTERED=Vous n'avez pas de compte? vous pouvez en cr\u00E9er <a href\="">un</a>.
 Question=Question secr\u00E8te

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_pt_BR.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_pt_BR.properties	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/Resource_pt_BR.properties	2007-04-03 09:17:29 UTC (rev 10706)
@@ -284,12 +284,6 @@
 MENU_EDITROLE=Editar grupo
 MENU_EDITROLEMEMBERS=Editar membros do grupo
 
-VALIDATIONEMAIL_1=Um usu?rio com este endere?o de email j? existe em nosso sistema.
-VALIDATIONEMAIL_2=Mantenha esse email salvo. As informa??es de sua conta est?o a seguir
-VALIDATIONEMAIL_3=Sua conta esta atualmente inativa. Voc? n?o pode utiliz?-la at? visitar o link
-VALIDATIONEMAIL_4=Se voc? n?o se cadastrar em nosso site, nenhuma outra a??o ? necess?ria.
-VALIDATIONEMAIL_5=Atenciosamente,\nA Ger?ncia.
-
 PERMISSION_PICKPORTLET=Administra??o de Permiss?es de Portlet
 PERMISSION_PERMISSIONS=Permiss?es para modificar
 PERMISSION_TOP=Selecione um Componente para Modificar

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/templates/user/emailTemplate.tpl
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/templates/user/emailTemplate.tpl	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/templates/user/emailTemplate.tpl	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,15 @@
+Hello,
+
+you tried to create an account on ${emailDomain} 
+
+The user information are written here for your convenience:
+Username: ${username}
+Password: ${password}
+
+At this time, your account is not activated and you will need to access the following URL to be able to login.
+${activationLink}
+
+If you didn't ask to create an account, we apologize and no further action is required.
+
+Best regards,
+${emailDomain}

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/templates/user/emailTemplate_fr.tpl
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/templates/user/emailTemplate_fr.tpl	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/classes/templates/user/emailTemplate_fr.tpl	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,15 @@
+Bonjour
+
+vous avez cr???? un compte sur ${emailDomain} 
+
+Voici les informations de connexion relatives a ce compte:
+Identifiant: ${username}
+Mot de passe: ${password}
+
+Votre compte n'est pas actif pour le moment et vous devez vous rendre ?? l'adresse suivante pour l'activer.
+${activationLink}
+
+Si vous n'avez pas cr???? de compte, nous vous prions de bien vouloir nous excuser et vous pouvez simplement ignorer cet email.
+
+Cordialement,
+${emailDomain}

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jboss-portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jboss-portlet.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jboss-portlet.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -57,6 +57,17 @@
          <trans-attribute>Required</trans-attribute>
       </transaction>
    </portlet>
+   <portlet>
+      <portlet-name>PortletContentEditorPortlet</portlet-name>
+      <transaction>
+         <trans-attribute>RequiresNew</trans-attribute>
+      </transaction>
+<!--
+      <header-content>
+         <link rel="stylesheet" type="text/css" href="/style.css" title="" media="screen"/>
+      </header-content>
+-->
+   </portlet>
 
    <!-- Service injected in the portlet context. -->
    <service>

Deleted: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/help.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/help.jsp	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/help.jsp	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,34 +0,0 @@
-<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
-<portlet:defineObjects/>
-<p>This portlet manages portlet instances and windows.
-The combox box helps you to choose a deployed web application
-that contains portlet components.</p>
-
-<div align="center"><img border="1" src="<%= renderRequest.getContextPath() %>/images/admin/pic1.png"/></div>
-
-<p>Once a web application is chosen you can then look at all the component
-it contains and choose one by clicking on its component name.</p>
-
-<div align="center"><img border="1" src="<%= renderRequest.getContextPath() %>/images/admin/pic2.png"/></div>
-
-<p>Then you have a table that contains all the running instances
-of the selected component. You can :
-<ul><li>create one instance by filling the
-form. You mut pay attention to the fact that you cannot give to the
-instance a name that already exist in the selected portal.</li>
-<li>remove a running instance.</li>
-<li>click on a running instance to look at its associated windows.</li>
-</ul></p>
-
-<div align="center"><img border="1" src="<%= renderRequest.getContextPath() %>/images/admin/pic3.png"/></div>
-
-<p>Last but not least you see all the windows for a given instance component.
-You can :
-<ul>
-<li>remove a window</li>
-<li>create a new window by giving it a name, choosing a place on the screen
-with the combo box ans choose an height. You must pay attentien that the height
-must be a valid number like 0,1,2,....
-</ul></p>
-
-<div align="center"><img border="1" src="<%= renderRequest.getContextPath() %>/images/admin/pic4.png"/></div>

Deleted: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/index.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/index.jsp	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/index.jsp	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,270 +0,0 @@
-<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
-<%@ page import="java.util.Iterator,
-                 org.jboss.portal.theme.page.RegionNames,
-                 org.jboss.portal.server.PortalServer,
-                 org.jboss.portal.server.Application,
-                 org.jboss.portal.server.Component,
-                 org.jboss.portal.server.Instance,
-                 org.jboss.portal.server.Portal,
-                 org.jboss.portal.server.Window,
-                 org.jboss.portal.theme.page.RegionNames"%>
-<portlet:defineObjects/>
-<%
-      String targetAppName = renderRequest.getParameter("application");
-      String targetCompName = renderRequest.getParameter("component");
-      String targetInstanceName = renderRequest.getParameter("instance");
-      String targetPortalName = renderRequest.getParameter("portal");
-
-      PortalServer container = (PortalServer)renderRequest.getAttribute("CONTAINER");
-
-      Portal targetPortal = null;
-      Application targetApp = null;
-      Component targetComp = null;
-      Instance targetInstanceMD = null;
-%>
-<form method="post" action="<portlet:renderURL/>"/>
-   <select name="application" class="inputbox" size="1">
-      <option value=""></option>
-<%
-      for (Iterator i = container.getApplications().iterator();i.hasNext();)
-      {
-         Application app = (Application)i.next();
-         String appName = app.getName();
-         boolean selected = appName.equals(targetAppName);
-         if (selected)
-         {
-            targetApp = app;
-         }
-%>
-      <option value="<%= appName %>" <%= selected ? " selected=\"selected\"" : "" %>><%=appName%></option>
-<%
-}
-%>
-   </select>
-   <input type="submit" value="infos"/>
-</form>
-<%
-   if (targetApp != null)
-   {
-%>
-<form method="post" action="<portlet:actionURL>
-                               <portlet:param name="application" value="<%= targetApp.getName() %>"/>
-                               <portlet:param name="add" value="instance"/>
-                            </portlet:actionURL>"/>
-<table border="1" cellspacing="0" cellpadding="2">
-   <tr>
-      <th>Component</th>
-      <th>Expiration cache</th>
-      <th>Action</th>
-   </tr>
-<%
-      for (Iterator j = targetApp.getComponents().iterator();j.hasNext();)
-      {
-         Component comp = (Component)j.next();
-         Integer expirationCache = comp.getExpirationCache();
-         if (comp.getName().equals(targetCompName))
-         {
-            targetComp = comp;
-         }
-%>
-   <tr>
-      <td>
-         <a href="<portlet:renderURL>
-                     <portlet:param name="application" value="<%= targetApp.getName() %>"/>
-                     <portlet:param name="component" value="<%= comp.getName() %>"/>
-                  </portlet:renderURL>"><%=comp.getName()%>
-         </a>
-      </td>
-      <td>
-         <%=expirationCache != null ? expirationCache.toString() : "-"%>
-      </td>
-      <td>
-         <input type="submit" name="<%= comp.getName() %>" value="create"/>
-      </td>
-   </tr>
-<%
-}
-%>
-   <tr>
-      <td colspan="3">
-         instance name
-         <input type="text" name="instance" width="32"/>
-      </td>
-   </tr>
-   <tr>
-      <td colspan="3">
-         target portal :
-         <select name="portal">
-<%
-      for (Iterator j = container.getPortals().iterator();j.hasNext();)
-      {
-         Portal portal = (Portal)j.next();
-%>
-            <option name="<%= portal.getName() %>"><%=portal.getName()%></option>
-<%
-}
-%>
-         </select>
-      </td>
-   </tr>
-</table>
-</form>
-<%
-}
-%>
-
-<hr height="1"/>
-
-<form method="post" action="<portlet:actionURL>
-                               <portlet:param name="add" value="portal"/>
-                            </portlet:actionURL>">
-<table border="1" cellspacing="0" cellpadding="2">
-   <tr>
-      <th>portal</th>
-      <th>action</th>
-   </tr>
-<%
-      for (Iterator i = container.getPortals().iterator();i.hasNext();)
-      {
-         Portal portal = (Portal)i.next();
-         String portalName = portal.getName();
-         boolean selected = portalName.equals(targetPortalName);
-         if (selected)
-         {
-            targetPortal = portal;
-         }
-%>
-   <tr>
-      <td><a href="<portlet:renderURL >
-                      <portlet:param name="portal" value="<%= portal.getName()%>"/>
-                   </portlet:renderURL>"><%= portal.getName() %></a></td>
-      <td><a href="<portlet:actionURL >
-                      <portlet:param name="portal" value="<%= portal.getName()%>"/>
-                   </portlet:actionURL>">remove</a></td>
-   </tr>
-<%
-      }
-%>
-   <tr>
-      <td colspan="2">
-         <input type="text" name="portal" size="32"/>
-      </td>
-   </tr>
-   <tr>
-      <td colspan="2">
-         <input type="submit" value="create"/>
-      </td>
-   </tr>
-</table>
-</form>
-
-<%
-   if (targetPortal != null)
-   {
-
-%>
-<form method="post" action="<portlet:actionURL>
-                               <portlet:param name="add" value="instance"/>
-                            </portlet:actionURL>">
-<table border="1" cellspacing="0" cellpadding="2">
-   <tr>
-      <th>instance</th>
-      <th>portal</th>
-      <th>action</th>
-   </tr>
-<%
-      for (Iterator i = targetPortal.getInstances().iterator();i.hasNext();)
-      {
-         Instance instance = (Instance)i.next();
-         if (instance.getName().equals(targetInstanceName))
-         {
-            targetInstanceMD = instance;
-         }
-%>
-   <tr>
-      <td><a href="<portlet:renderURL>
-                     <portlet:param name="portal" value="<%= targetPortal.getName() %>"/>
-                     <portlet:param name="instance" value="<%= instance.getName() %>"/>
-                  </portlet:renderURL>">
-         <%= instance.getName() %></a>
-      </td>
-      <td>
-         <%= targetPortal.getName() %>
-      </td>
-      <td><a href="<portlet:actionURL>
-                     <portlet:param name="portal" value="<%= targetPortal.getName() %>"/>
-                     <portlet:param name="instance" value="<%= instance.getName() %>"/>
-                     <portlet:param name="remove" value="instance"/>
-                  </portlet:actionURL>">remove</a>
-      </td>
-   </tr>
-   <%
-      }
-   %>
-</table>
-</form>
-<%
-      if (targetInstanceMD != null)
-      {
-%>
-<form method="post" action="<portlet:actionURL>
-                               <portlet:param name="portal" value="<%= targetPortalName %>"/>
-                               <portlet:param name="instance" value="<%= targetInstanceName %>"/>
-                               <portlet:param name="add" value="window"/>
-                            </portlet:actionURL>">
-<table border="1" cellspacing="0" cellpadding="2">
-   <tr>
-      <th>Window</th>
-      <th>&nbsp;</th>
-   </tr>
-<%
-         for (Iterator i = targetInstanceMD.getWindows().iterator();i.hasNext();)
-         {
-            Window window = (Window)i.next();
-%>
-   <tr>
-      <td><%= window.getName() %></td>
-      <td><a href="<portlet:actionURL>
-                      <portlet:param name="portal" value="<%= targetPortalName %>"/>
-                      <portlet:param name="instance" value="<%= targetInstanceName %>"/>
-                      <portlet:param name="window" value="<%= window.getName() %>"/>
-                      <portlet:param name="remove" value="window"/>
-                  </portlet:actionURL>">remove</a>
-      </td>
-   </tr>
-<%
-         }
-%>
-   <tr>
-      <td colspan="2">
-         Region :
-         <select name="region">
-            <option name="<%= RegionNames.BOTTOM %>"><%= RegionNames.BOTTOM %></option>
-            <option name="<%= RegionNames.INSET %>"><%= RegionNames.INSET %></option>
-            <option name="<%= RegionNames.LEFT %>"><%= RegionNames.LEFT %></option>
-            <option name="<%= RegionNames.RIGHT %>"><%= RegionNames.RIGHT %></option>
-            <option name="<%= RegionNames.USER_1 %>"><%= RegionNames.USER_1 %></option>
-            <option name="<%= RegionNames.USER_2 %>"><%= RegionNames.USER_2 %></option>
-         </select>
-         </select>
-      </td>
-   </tr>
-   <tr>
-      <td colspan="2">
-         Height : <input type="text" name="height"/>
-      </td>
-   </tr>
-   <tr>
-      <td colspan="2">
-         Name : <input type="text" name="window"/>
-      </td>
-   </tr>
-   <tr>
-      <td colspan="2"><input type="submit" value="add"/></td>
-   </tr>
-</table>
-</form>
-<%
-      }
-   }
-%>

Deleted: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/normal.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/normal.jsp	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/admin/normal.jsp	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,3 +0,0 @@
-<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
-<portlet:defineObjects/>
-<a href="<portlet:renderURL windowState="maximized" />">Applications</a>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/user/menu.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/user/menu.jsp	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/jsp/user/menu.jsp	2007-04-03 09:17:29 UTC (rev 10706)
@@ -6,6 +6,10 @@
 
 <table width="100%" cellpadding="2" border="0">
 
+   <n:if ctx="modifiedProfile">
+     <p class="portlet-form-label">${n:i18n("MODIFIED_PROFILE")}</p>
+   </n:if>
+
    <n:if ctx="admin">
       <tr>
          <td class="portlet-section-body">

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet-instances.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet-instances.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet-instances.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -45,4 +45,16 @@
          <portlet-ref>CatalogPortlet</portlet-ref>
       </instance>
    </deployment>
+   <deployment>
+      <instance>
+         <instance-id>PortletContentEditorInstance</instance-id>
+         <portlet-ref>PortletContentEditorPortlet</portlet-ref>
+         <security-constraint>
+            <policy-permission>
+               <role-name>Admin</role-name>
+               <action-name>view</action-name>
+            </policy-permission>
+         </security-constraint>
+      </instance>
+   </deployment>
 </deployments>
\ No newline at end of file

Deleted: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet.tld
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet.tld	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet.tld	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,106 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">
-<taglib>
-
-   <tlib-version>1.0</tlib-version>
-   <jsp-version>1.2</jsp-version>
-   <short-name>portlet</short-name>
-
-   <uri>http://java.sun.com/portlet</uri>
-
-   <tag>
-
-      <name>param</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.URLParameterTag</tag-class>
-      <body-content>empty</body-content>
-
-      <attribute>
-         <name>name</name>
-         <required>true</required>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>value</name>
-         <required>true</required>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-
-   </tag>
-   <tag>
-
-      <name>renderURL</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.RenderURLTag</tag-class>
-      <tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.GenerateURLTagTEI</tei-class>
-      <body-content>JSP</body-content>
-
-      <attribute>
-         <name>portletMode</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>secure</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>var</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>windowState</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-
-   </tag>
-   <tag>
-
-      <name>defineObjects</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.DefineObjectsTag</tag-class>
-      <tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.DefineObjectsTagTEI</tei-class>
-      <body-content>empty</body-content>
-
-   </tag>
-   <tag>
-
-      <name>actionURL</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.ActionURLTag</tag-class>
-      <tei-class>org.jboss.portal.portlet.impl.jsr168.taglib.GenerateURLTagTEI</tei-class>
-      <body-content>JSP</body-content>
-
-      <attribute>
-         <name>portletMode</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>secure</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>var</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-      <attribute>
-         <name>windowState</name>
-         <rtexprvalue>true</rtexprvalue>
-
-      </attribute>
-
-   </tag>
-   <tag>
-
-      <name>namespace</name>
-      <tag-class>org.jboss.portal.portlet.impl.jsr168.taglib.NamespaceTag</tag-class>
-      <body-content>empty</body-content>
-
-   </tag>
-
-</taglib>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/portlet.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -40,10 +40,10 @@
       <init-param>
          <description>Subscription mode</description>
          <name>subscriptionMode</name>
+         <value>emailVerification</value>
          <!--
-         <value>emailVerification</value>
+         <value>automatic</value>
          -->
-         <value>automatic</value>
       </init-param>
       <init-param>
          <description>Domain of your website for email verification.</description>
@@ -110,6 +110,20 @@
          <title>Catalog</title>
       </portlet-info>
    </portlet>
+   <portlet>
+      <description>Portlet Content Editor</description>
+      <portlet-name>PortletContentEditorPortlet</portlet-name>
+      <display-name>Portlet Content Editor</display-name>
+      <portlet-class>org.jboss.portal.core.ui.content.portlet.PortletContentEditorPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>Portlet Content Portlet</title>
+         <keywords>management,admin</keywords>
+      </portlet-info>
+   </portlet>
    <user-attribute>
       <name>user.name.nickName</name>
    </user-attribute>

Deleted: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/theme/portal-layout.tld
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/theme/portal-layout.tld	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-core.war/WEB-INF/theme/portal-layout.tld	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,68 +0,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.                  ~
-  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
-
-<taglib
-   xmlns="http://java.sun.com/xml/ns/j2ee"
-   xmlns:xsi="http://www.w3c.org/2001/XMLSchema-instance"
-   xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
-   version="2.0">
-   <tlib-version>1.0</tlib-version>
-   <jsp-version>2.0</jsp-version>
-   <short-name></short-name>
-   <uri>http://www.jboss.org/portal</uri>
-   <tag>
-      <name>region</name>
-      <tag-class>org.jboss.portal.theme.tag.RegionTagHandler</tag-class>
-      <body-content>empty</body-content>
-      <attribute>
-         <name>orientation</name>
-      </attribute>
-      <attribute>
-         <name>regionName</name>
-      </attribute>
-      <attribute>
-         <name>regionID</name>
-      </attribute>
-   </tag>
-   <tag>
-      <name>portlet</name>
-      <tag-class>org.jboss.portal.theme.tag.PortletTagHandler</tag-class>
-      <body-content>empty</body-content>
-      <attribute>
-         <name>windowName</name>
-      </attribute>
-   </tag>
-   <tag>
-      <name>theme</name>
-      <tag-class>org.jboss.portal.theme.tag.ThemeTagHandler</tag-class>
-      <body-content>empty</body-content>
-      <attribute>
-         <name>themeName</name>
-      </attribute>
-   </tag>
-   <tag>
-      <name>headerContent</name>
-      <tag-class>org.jboss.portal.theme.tag.HeaderContentTagHandler</tag-class>
-      <body-content>empty</body-content>
-   </tag>
-</taglib>

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

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/META-INF/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/META-INF/jboss-service.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/META-INF/jboss-service.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,65 @@
+<?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>
+
+   <!-- A sample listener -->
+   <mbean
+      code="org.jboss.portal.core.event.PortalEventListenerServiceImpl"
+      name="portal:service=ListenerService,type=test_listener"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:service=ListenerRegistry</depends>
+      <attribute name="RegistryId">test_listener</attribute>
+      <attribute name="ListenerClassName">org.jboss.portal.core.portlet.test.event.PortletB$Listener</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.event.PortalEventListenerServiceImpl"
+      name="portal:service=ListenerService,type=window_listener"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:service=ListenerRegistry</depends>
+      <attribute name="RegistryId">window_event_listener</attribute>
+      <attribute name="ListenerClassName">org.jboss.portal.core.portlet.test.event.WindowConstraintEventListener</attribute>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.event.PortalEventListenerServiceImpl"
+      name="portal:service=ListenerService,type=user_listener"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:service=ListenerRegistry</depends>
+      <attribute name="RegistryId">user_listener</attribute>
+      <attribute name="ListenerClassName">org.jboss.portal.core.portlet.test.event.PortalEventListenerLogger</attribute>
+   </mbean>
+
+</server>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/lib/portal-core-samples-lib.jar
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/lib/portal-core-samples-lib.jar
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/classes/NewsResource.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/classes/NewsResource.properties	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/classes/NewsResource.properties	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,25 @@
+################################################################################
+# 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.                     #
+################################################################################
+
+javax.portlet.preference.description.RssXml=RSS feed URL
+javax.portlet.preference.description.expires=Expiration time

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/classes/NewsResource_fr.properties
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/classes/NewsResource_fr.properties	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/classes/NewsResource_fr.properties	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,25 @@
+################################################################################
+# 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.                     #
+################################################################################
+
+javax.portlet.preference.description.RssXml=URL du flux RSS
+javax.portlet.preference.description.expires=Temps d'expiration

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/default-object.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/default-object.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/default-object.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,308 @@
+<?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.                  ~
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<!DOCTYPE deployments PUBLIC
+   "-//JBoss Portal//DTD Portal Object 2.6//EN"
+   "http://www.jboss.org/portal/dtd/portal-object_2_6.dtd">
+   
+<deployments>
+   <deployment>
+      <parent-ref>default</parent-ref>
+      <if-exists>keep</if-exists>
+      <page>
+         <page-name>News</page-name>
+         <properties>
+            <property>
+               <name>order</name>
+               <value>3</value>
+            </property>
+         </properties>
+         <window>
+            <window-name>WeatherPortletWindow</window-name>
+            <instance-ref>WeatherPortletInstance</instance-ref>
+            <region>left</region>
+            <height>0</height>
+         </window>
+         <window>
+            <window-name>NewsPortletWindow</window-name>
+            <instance-ref>NewsPortletInstance</instance-ref>
+            <region>center</region>
+            <height>0</height>
+         </window>
+         <window>
+            <window-name>NewsPortletWindow2</window-name>
+            <instance-ref>NewsPortletInstance2</instance-ref>
+            <region>center</region>
+            <height>1</height>
+         </window>
+      </page>
+   </deployment>
+   <deployment>
+      <parent-ref>default</parent-ref>
+      <if-exists>keep</if-exists>
+      <page>
+         <page-name>Test</page-name>
+         <properties>
+            <property>
+               <name>theme.ajax.object_disabled</name>
+               <value>true</value>
+            </property>
+            <property>
+               <name>order</name>
+               <value>3</value>
+            </property>
+         </properties>
+         <window>
+            <window-name>TestPortletWindow</window-name>
+            <instance-ref>TestPortletInstance</instance-ref>
+            <region>center</region>
+            <height>0</height>
+         </window>
+         <window>
+            <window-name>CatalogPortletWindow</window-name>
+            <instance-ref>CatalogPortletInstance</instance-ref>
+            <region>left</region>
+            <height>0</height>
+         </window>
+         <page>
+            <page-name>event test</page-name>
+            <listener>test_listener</listener>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>PortletAWindow</window-name>
+               <instance-ref>PortletAInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>PortletBWindow</window-name>
+               <instance-ref>PortletBInstance</instance-ref>
+               <region>center</region>
+               <height>1</height>
+            </window>
+         </page>
+         <page>
+            <page-name>page event test</page-name>
+            <listener>window_event_listener</listener>
+            <window>
+               <window-name>CatalogPortletWindow1</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>CatalogPortletWindow2</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>1</height>
+            </window>
+            <window>
+               <window-name>CatalogPortletWindow3</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>2</height>
+            </window>
+            <window>
+               <window-name>CatalogPortletWindow4</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>CatalogPortletWindow5</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>center</region>
+               <height>1</height>
+            </window>
+            <window>
+               <window-name>CatalogPortletWindow6</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>center</region>
+               <height>2</height>
+            </window>
+         </page>
+         <page>
+            <page-name>secure test</page-name>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>SecuredTestPortletWindow</window-name>
+               <instance-ref>SecuredTestPortletInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+         </page>
+         <page>
+            <page-name>exception test</page-name>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>ExceptionPortletWindow</window-name>
+               <instance-ref>ExceptionPortletInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+         </page>
+         <page>
+            <page-name>cache test</page-name>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>CachedCounterPortletWindow</window-name>
+               <instance-ref>CachedCounterPortletInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>CounterPortletWindow</window-name>
+               <instance-ref>CounterPortletInstance</instance-ref>
+               <region>center</region>
+               <height>1</height>
+            </window>
+         </page>
+         <page>
+            <page-name>session test</page-name>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>PortletSessionPortletWindow</window-name>
+               <instance-ref>PortletSessionPortletInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+         </page>
+         <page>
+            <page-name>missing portlet</page-name>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>MissingPortletWindow</window-name>
+               <instance-ref>MissingPortletInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+         </page>
+         <page>
+            <page-name>URL portlet</page-name>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>URLPortletWindow</window-name>
+               <instance-ref>URLPortletInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+         </page>
+         <page>
+            <page-name>missing instance</page-name>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>MissingInstanceWindow</window-name>
+               <instance-ref>MissingInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+         </page>
+         <page>
+            <page-name>charset test</page-name>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>CharsetPortletWindow</window-name>
+               <instance-ref>CharsetPortletInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+         </page>
+         <page>
+            <page-name>encoding test</page-name>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>EncodingPortletWindow</window-name>
+               <instance-ref>EncodingPortletInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+         </page>
+         <page>
+            <page-name>header test</page-name>
+            <window>
+               <window-name>CatalogPortletWindow</window-name>
+               <instance-ref>CatalogPortletInstance</instance-ref>
+               <region>left</region>
+               <height>0</height>
+            </window>
+            <window>
+               <window-name>HeaderContentPortletWindow</window-name>
+               <instance-ref>HeaderContentPortletInstance</instance-ref>
+               <region>center</region>
+               <height>0</height>
+            </window>
+         </page>
+      </page>
+   </deployment>
+</deployments>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jboss-app.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jboss-app.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jboss-app.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,26 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.                  ~
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<jboss-app>
+   <app-name>samples</app-name>
+</jboss-app>
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jboss-portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jboss-portlet.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jboss-portlet.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,138 @@
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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 portlet-app PUBLIC
+   "-//JBoss Portal//DTD JBoss Portlet 2.6//EN"
+   "http://www.jboss.org/portal/dtd/jboss-portlet_2_6.dtd">
+
+<portlet-app>
+   <remotable>true</remotable>
+   <portlet>
+      <portlet-name>PortletSessionPortlet</portlet-name>
+      <session-config>
+         <distributed>true</distributed>
+      </session-config>
+   </portlet>
+   <portlet>
+      <portlet-name>HeaderContentPortlet</portlet-name>
+      <remotable>false</remotable>
+      <header-content>
+         <link rel="stylesheet" type="text/css" href="/portlet-styles/HeaderContent.css" media="screen"/>
+         <script type="text/javascript" src="/portlet-styles/HeaderContent.js"/>
+         <meta name="description" content="test"/>
+      </header-content>
+   </portlet>
+
+   <!--All portlets we want to expose in WSRP Producer must be mentioned here-->
+   <portlet>
+      <portlet-name>CounterPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>CachedCounterPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>ExceptionPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>PortletB</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>CharsetPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>EncodingPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>SecuredTestPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>WeatherPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>NewsPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>JSPPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>TestPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>URLPortlet</portlet-name>
+   </portlet>
+   <portlet>
+      <portlet-name>BasicPortlet</portlet-name>
+   </portlet>
+
+   <!-- Service injected in the portlet context. -->
+   <service>
+      <service-name>WebAppRegistry</service-name>
+      <service-class>org.jboss.portal.portlet.container.PortletApplicationRegistry</service-class>
+      <service-ref>:service=WebAppRegistry</service-ref>
+   </service>
+   <service>
+      <service-name>PortalObjectContainer</service-name>
+      <service-class>org.jboss.portal.core.model.portal.PortalObjectContainer</service-class>
+      <service-ref>:container=PortalObject</service-ref>
+   </service>
+   <service>
+      <service-name>InstanceContainer</service-name>
+      <service-class>org.jboss.portal.core.model.instance.InstanceContainer</service-class>
+      <service-ref>:container=Instance</service-ref>
+   </service>
+   <service>
+      <service-name>ThemeService</service-name>
+      <service-class>org.jboss.portal.theme.ThemeService</service-class>
+      <service-ref>:service=ThemeService</service-ref>
+   </service>
+   <service>
+      <service-name>LayoutService</service-name>
+      <service-class>org.jboss.portal.theme.LayoutService</service-class>
+      <service-ref>:service=LayoutService</service-ref>
+   </service>
+   <service>
+      <service-name>UserModule</service-name>
+      <service-class>org.jboss.portal.identity.UserModule</service-class>
+      <service-ref>:service=Module,type=User</service-ref>
+   </service>
+   <service>
+      <service-name>RoleModule</service-name>
+      <service-class>org.jboss.portal.identity.RoleModule</service-class>
+      <service-ref>:service=Module,type=Role</service-ref>
+   </service>
+   <service>
+      <service-name>UserProfileModule</service-name>
+      <service-class>org.jboss.portal.identity.UserProfileModule</service-class>
+      <service-ref>:service=Module,type=UserProfile</service-ref>
+   </service>
+   <service>
+      <service-name>MembershipModule</service-name>
+      <service-class>org.jboss.portal.identity.MembershipModule</service-class>
+      <service-ref>:service=Module,type=Membership</service-ref>
+   </service>
+   <service>
+      <service-name>MailModule</service-name>
+      <service-class>org.jboss.portal.core.modules.MailModule</service-class>
+      <service-ref>:service=Module,type=Mail</service-ref>
+   </service>
+</portlet-app>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/info/view.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/info/view.jsp	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/info/view.jsp	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,63 @@
+<%@ page import="org.jboss.portal.server.PortalConstants" %>
+<%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+~ 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.                 ~
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%>
+
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
+<%@ page isELIgnored="false" %>
+
+<portlet:defineObjects/>
+
+<table border="0" cellspacing="2" cellpadding="2">
+   <tr>
+      <td align="center"><a href="http://portal.demo.jboss.com" target="_blank"><img
+         src="<%= renderRequest.getContextPath() %>/images/dodemo.gif" border="0"
+         alt="Try the latest release of JBoss Portal, live and online."></a>
+         <a href="http://labs.jboss.com/portal/jbossportal/download/index.html" target="_blank"><img
+            src="<%= renderRequest.getContextPath() %>/images/getcode.gif" border="0"
+            alt="Download JBoss Portal and have it up and running in minutes."></a>
+         <a href="http://www.portletswap.com" target="_blank"><img
+            src="<%= renderRequest.getContextPath() %>/images/accessorize.gif" border="0"
+            alt="Download portlets and layouts for your new JBoss Portal installation."></a></td>
+   </tr>
+   <tr>
+      <td></td>
+   </tr>
+   <tr>
+      <td class="portlet-section-alternate">
+         <font class="portlet-font">This is a basic installation of <b><%= PortalConstants.VERSION %></b>. You may
+            log in at any time, using the <i>Login</i> link at the top-right of this page, with the following
+            credentials:</font>
+      </td>
+   </tr>
+   <tr>
+      <td class="portlet-section-alternate" align="center">
+         <b>user/user</b> or <b>admin/admin</b>
+      </td>
+   </tr>
+   <tr>
+      <td align="center">
+         If you are in need of guidance with regards to navigating, configuring, or operating the portal, please view
+         our <a href="http://labs.jboss.com/portal/jbossportal/docs/index.html" target="_blank">online documentation</a>.
+      </td>
+   </tr>
+</table>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/news/edit.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/news/edit.jsp	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/news/edit.jsp	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,40 @@
+<%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.                 ~
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%>
+
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
+<%@ page isELIgnored="false" %>
+
+<portlet:defineObjects/>
+
+<div align="center">
+   <br/>
+   <font class="portlet-font">Change News Feed URL:</font>
+
+   <form method="post" action="
+<portlet:actionURL></portlet:actionURL>">
+      <font class="portlet-font">URL:</font><br/>
+      <input class="portlet-form-input-field" type="text" value="" size="12" name="newurl">
+      <br/>
+      <input class="portlet-form-input-field" type="submit" name="submit" value="submit">
+   </form>
+</div>
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/theme/wsrpSelectorTest.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/theme/wsrpSelectorTest.jsp	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/theme/wsrpSelectorTest.jsp	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,142 @@
+<%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.                 ~
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%>
+
+<!-- this is static markup to test themes for wsrp css selector support -->
+<div id="wsrp_section_selectors">
+   <table border="0" width="100%" cellpadding="2">
+      <tr>
+         <td class="portlet-section-header">portlet-section-header</td>
+      </tr>
+      <tr>
+         <td class="portlet-section-subheader">portlet-section-subheader</td>
+      </tr>
+      <tr>
+         <td class="portlet-section-body">portlet-section-body</td>
+      </tr>
+      <tr>
+         <td class="portlet-section-text">portlet-section-text</td>
+      </tr>
+      <tr>
+         <td class="portlet-section-alternate">portlet-section-alternate</td>
+      </tr>
+      <tr>
+         <td class="portlet-section-selected">portlet-section-selected</td>
+      </tr>
+      <tr>
+         <td class="portlet-section-footer">portlet-section-footer</td>
+      </tr>
+   </table>
+</div>
+<br><span class="portlet-section-body">portlet-horizontal-seperator:</span><br>
+<hr class="portlet-horizontal-separator">
+<br>
+
+<div id="wsrp_table_selectors">
+   <table border="1" width="100%" cellpadding="2" cellspacing="0">
+      <tr>
+         <td class="portlet-table-header">portlet-table-header</td>
+      </tr>
+      <tr>
+         <td class="portlet-table-subheader">portlet-table-subheader</td>
+      </tr>
+      <tr>
+         <td class="portlet-table-alternate">portlet-table-alternate</td>
+      </tr>
+      <tr>
+         <td class="portlet-table-selected">portlet-table-selected</td>
+      </tr>
+      <tr>
+         <td class="portlet-table-body">portlet-table-body</td>
+      </tr>
+      <tr>
+         <td class="portlet-table-text">portlet-table-text</td>
+      </tr>
+      <tr>
+         <td class="portlet-table-footer">portlet-table-footer</td>
+      </tr>
+   </table>
+</div>
+<br>
+
+<div id="wsrp_form_selectors">
+   <form action="">
+      <fieldset>
+         <legend>A Sample Form:</legend>
+         <table border="0" width="100%" cellpadding="2">
+            <tr>
+               <td class="portlet-form-label" colspan="2">portlet-form-label</td>
+            </tr>
+            <tr>
+               <td class="portlet-form-field-label" width="140px"><label class="portlet-form-field-label"
+                                                                         for="text-field">
+                  portlet-form-field-label:</label></td>
+               <td align="left"><input type="text" id="text-field" class="portlet-form-input-field"
+                                       value="portlet-form-input-field" size="50"/></td>
+            </tr>
+            <tr>
+               <td class="portlet-form-field-label" width="140px"><label class="portlet-form-field-label"
+                                                                         for="select-control">
+                  portlet-form-field-label:</label></td>
+               <td>
+                  <select id="select-control" class="portlet-form-field">
+                     <option>portlet-form-field</option>
+                     <option>
+                        Option 2
+                     </option>
+                  </select>
+               </td>
+            </tr>
+            <tr>
+               <td colspan="2"><input type="button" class="portlet-form-button" value="portlet-form-button"/></td>
+            </tr>
+            <tr>
+               <td colspan="2"></td>
+            </tr>
+         </table>
+      </fieldset>
+   </form>
+</div>
+<br>
+
+<div id="wsrp_message_selectors">
+   <table border="0" width="100%" cellpadding="2">
+      <tr>
+         <td class="portlet-msg-status">portlet-msg-status</td>
+      </tr>
+      <tr>
+         <td class="portlet-msg-info">portlet-msg-info</td>
+      </tr>
+      <tr>
+         <td class="portlet-msg-error">portlet-msg-error</td>
+      </tr>
+      <tr>
+         <td class="portlet-msg-alert">portlet-msg-alert</td>
+      </tr>
+      <tr>
+         <td class="portlet-font-dim">portlet-font-dim</td>
+      </tr>
+      <tr>
+         <td class="portlet-font">portlet-font</td>
+      </tr>
+   </table>
+</div>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/weather/edit.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/weather/edit.jsp	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/jsp/weather/edit.jsp	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,40 @@
+<%--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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.                 ~
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~--%>
+
+<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
+<%@ page isELIgnored="false" %>
+
+<portlet:defineObjects/>
+
+<div align="center">
+   <br/>
+   <font class="portlet-font">Change Weather Location:</font>
+
+   <form method="post" action="
+<portlet:actionURL></portlet:actionURL>">
+      <font class="portlet-font">Zip Code:</font><br/>
+      <input class="portlet-form-input-field" type="text" value="" size="12" name="newzip">
+      <br/>
+      <input class="portlet-form-input-field" type="submit" name="submit" value="submit">
+   </form>
+</div>
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/portlet-instances.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/portlet-instances.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/portlet-instances.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,149 @@
+<?xml version="1.0" standalone="yes"?>
+<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+  ~ 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 deployments PUBLIC
+   "-//JBoss Portal//DTD Portlet Instances 2.6//EN"
+   "http://www.jboss.org/portal/dtd/portlet-instances_2_6.dtd">
+
+<deployments>
+   <deployment>
+      <instance>
+         <instance-id>JSPPortletInstance</instance-id>
+         <portlet-ref>JSPPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>NewsPortletInstance</instance-id>
+         <portlet-ref>NewsPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <if-exists>overwrite</if-exists>
+      <instance>
+         <instance-id>NewsPortletInstance2</instance-id>
+         <portlet-ref>NewsPortlet</portlet-ref>
+         <preferences>
+            <preference>
+               <name>expires</name>
+               <value>180</value>
+            </preference>
+            <preference>
+               <name>RssXml</name>
+               <value>http://finance.yahoo.com/rss/headline?s=rhat</value>
+            </preference>
+         </preferences>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>WeatherPortletInstance</instance-id>
+         <portlet-ref>WeatherPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>HeaderContentPortletInstance</instance-id>
+         <portlet-ref>HeaderContentPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>URLPortletInstance</instance-id>
+         <portlet-ref>URLPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>TestPortletInstance</instance-id>
+         <portlet-ref>TestPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>PortletAInstance</instance-id>
+         <portlet-ref>PortletA</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>PortletBInstance</instance-id>
+         <portlet-ref>PortletB</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>SecuredTestPortletInstance</instance-id>
+         <portlet-ref>SecuredTestPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>CharsetPortletInstance</instance-id>
+         <portlet-ref>CharsetPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>CounterPortletInstance</instance-id>
+         <portlet-ref>CounterPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>CachedCounterPortletInstance</instance-id>
+         <portlet-ref>CachedCounterPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>ExceptionPortletInstance</instance-id>
+         <portlet-ref>ExceptionPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>PortletSessionPortletInstance</instance-id>
+         <portlet-ref>PortletSessionPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>CharsetPortletInstance</instance-id>
+         <portlet-ref>CharsetPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>EncodingPortletInstance</instance-id>
+         <portlet-ref>EncodingPortlet</portlet-ref>
+      </instance>
+   </deployment>
+   <deployment>
+      <instance>
+         <instance-id>FSContentDrivenPortletInstance</instance-id>
+         <portlet-ref>FSContentDrivenPortlet</portlet-ref>
+      </instance>
+   </deployment>
+</deployments>
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/portlet.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/portlet.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/portlet.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,379 @@
+<?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.                  ~
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<portlet-app
+   xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
+   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+   xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
+   version="1.0">
+   <portlet>
+      <description>Simple JSP portlet</description>
+      <portlet-name>JSPPortlet</portlet-name>
+      <display-name>JSP Portlet</display-name>
+      <portlet-class>org.jboss.samples.portlet.jsp.JSPPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>Greetings!</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>Portlet to test modification of head content</description>
+      <portlet-name>HeaderContentPortlet</portlet-name>
+      <display-name>Header Content Portlet</display-name>
+
+      <portlet-class>org.jboss.portal.core.portlet.plugins.HeaderContentPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+      <portlet-info>
+         <title>Header Content portlet</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>A test portlet</description>
+      <description xml:lang="fr">C'est une portlet de test</description>
+      <portlet-name>TestPortlet</portlet-name>
+      <display-name>Test Portlet</display-name>
+      <display-name xml:lang="fr">Portlet Test</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.TestPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+         <portlet-mode>EDIT</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>Test portlet</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+      <portlet-preferences>
+         <preference>
+            <name>read-write foo</name>
+            <value>bar</value>
+         </preference>
+         <preference>
+            <name>read-only foo</name>
+            <value>bar</value>
+            <read-only>true</read-only>
+         </preference>
+         <preference>
+            <name>read-write foo[]</name>
+            <value>bar0</value>
+            <value>bar1</value>
+         </preference>
+         <preference>
+            <name>html chars</name>
+            <value><![CDATA[<&>"]]></value>
+         </preference>
+      </portlet-preferences>
+      <security-role-ref>
+         <role-name>Admin</role-name>
+      </security-role-ref>
+      <security-role-ref>
+         <role-name>User</role-name>
+      </security-role-ref>
+      <security-role-ref>
+         <role-name>Authenticated</role-name>
+      </security-role-ref>
+   </portlet>
+   <portlet>
+      <description>Portlet displaying the number of it's action/render calls</description>
+      <portlet-name>CounterPortlet</portlet-name>
+      <display-name>Counter Portlet</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.CounterPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+      <portlet-info>
+         <title>Counter portlet</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>Counter Portlet with cache support</description>
+      <portlet-name>CachedCounterPortlet</portlet-name>
+      <display-name>Cached Counter Portlet</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.CounterPortlet</portlet-class>
+      <expiration-cache>60</expiration-cache>
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+      <portlet-info>
+         <title>Cached Counter portlet</title>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>Portlet for testing behaviour on exceptions</description>
+      <portlet-name>ExceptionPortlet</portlet-name>
+      <display-name>Exception Portlet</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.ExceptionPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+      <portlet-info>
+         <title>Exception portlet</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>Portlet using portlet session</description>
+      <portlet-name>PortletSessionPortlet</portlet-name>
+      <display-name>Porltet Session Portlet</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.PortletSessionPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+      <portlet-info>
+         <title>Portlet session portlet</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>Portlet for demonstrating IPC</description>
+      <portlet-name>PortletA</portlet-name>
+      <display-name>Portlet A</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.event.PortletA</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>Test Event A</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>Portlet for demonstrating IPC</description>
+      <portlet-name>PortletB</portlet-name>
+      <display-name>Portlet B</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.event.PortletB</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>Test Event B</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>Portlet showing different ways to properly display and submit unicode text</description>
+      <portlet-name>CharsetPortlet</portlet-name>
+      <display-name>Charset Portlet</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.CharsetPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+         <portlet-mode>HELP</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>Test charset</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>Portlet for testing encoding</description>
+      <portlet-name>EncodingPortlet</portlet-name>
+      <display-name>Encoding Portlet</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.EncodingPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>Test charset</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>Secured Test Portlet</description>
+      <portlet-name>SecuredTestPortlet</portlet-name>
+      <display-name>Secured Test Portlet</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.TestPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+         <portlet-mode>HELP</portlet-mode>
+         <portlet-mode>EDIT</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>Secured test portlet</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>Portlet providing weather forecast</description>
+      <portlet-name>WeatherPortlet</portlet-name>
+      <display-name>Weather Portlet</display-name>
+      <portlet-class>org.jboss.samples.portlet.weather.WeatherPortlet</portlet-class>
+      <init-param>
+         <name>default_zipcode</name>
+         <value>33145</value>
+      </init-param>
+      <init-param>
+         <name>RSS_XSL</name>
+         <value>/WEB-INF/xsl/weather/Rss.xsl</value>
+      </init-param>
+      <init-param>
+         <name>base_url</name>
+         <value>http://xml.weather.yahoo.com/forecastrss?p=</value>
+      </init-param>
+      <expiration-cache>180</expiration-cache>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+         <portlet-mode>EDIT</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>Weather Portlet</title>
+         <keywords>sample,news</keywords>
+      </portlet-info>
+      <portlet-preferences>
+         <preference>
+            <name>expires</name>
+            <value>180</value>
+         </preference>
+         <preference>
+            <name>RssXml</name>
+            <value>http://xml.weather.yahoo.com/forecastrss?p=33145</value>
+            <read-only>false</read-only>
+         </preference>
+      </portlet-preferences>
+   </portlet>
+   <portlet>
+      <description>Portlet aggregating news from different feeds</description>
+      <portlet-name>NewsPortlet</portlet-name>
+      <display-name>News Portlet</display-name>
+      <portlet-class>org.jboss.samples.portlet.news.NewsPortlet</portlet-class>
+      <init-param>
+         <name>RSS1_XSL</name>
+         <value>/WEB-INF/Rss1.xsl</value>
+      </init-param>
+      <init-param>
+         <name>RSS2_XSL</name>
+         <value>/WEB-INF/Rss2.xsl</value>
+      </init-param>
+      <init-param>
+         <name>base_url</name>
+         <value>http://jboss.org/jbossBlog/blog/?flavor=rss2</value>
+      </init-param>
+      <expiration-cache>180</expiration-cache>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+         <portlet-mode>EDIT</portlet-mode>
+      </supports>
+      <supported-locale>en</supported-locale>
+      <supported-locale>fr</supported-locale>
+      <resource-bundle>NewsResource</resource-bundle>
+      <portlet-info>
+         <title>News Feeds</title>
+         <keywords>sample,news</keywords>
+      </portlet-info>
+      <portlet-preferences>
+         <preference>
+            <name>expires</name>
+            <value>180</value>
+         </preference>
+         <preference>
+            <name>RssXml</name>
+            <value>http://jboss.org/jbossBlog/blog/?flavor=rss2</value>
+            <read-only>false</read-only>
+         </preference>
+      </portlet-preferences>
+   </portlet>
+   <portlet>
+      <description>URL Portlet</description>
+      <portlet-name>URLPortlet</portlet-name>
+      <display-name>URL Portlet</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.URLPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>URL Portlet</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <portlet-name>BasicPortlet</portlet-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.BasicPortlet</portlet-class>
+      <display-name>Basic Portlet</display-name>
+      <supports>
+         <mime-type>text/html</mime-type>
+         <portlet-mode>VIEW</portlet-mode>
+      </supports>
+      <portlet-info>
+         <title>Basic Portlet</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <portlet>
+      <description>File System Content Driven Portlet</description>
+      <portlet-name>FSContentDrivenPortlet</portlet-name>
+      <display-name>File System Content Driven Portlet</display-name>
+      <portlet-class>org.jboss.portal.core.portlet.test.FSContentDrivenPortlet</portlet-class>
+      <supports>
+         <mime-type>text/html</mime-type>
+      </supports>
+      <portlet-info>
+         <title>File Portlet</title>
+         <keywords>sample,test</keywords>
+      </portlet-info>
+   </portlet>
+   <user-attribute>
+      <name>user.name.nickName</name>
+   </user-attribute>
+   <user-attribute>
+      <name>user.business-info.online.email</name>
+   </user-attribute>
+   <user-attribute>
+      <name>user.name.given</name>
+   </user-attribute>
+   <user-attribute>
+      <name>user.name.family</name>
+   </user-attribute>
+   <user-attribute>
+      <name>portal.user.locale</name>
+   </user-attribute>
+   <user-attribute>
+      <name>portal.user.signature</name>
+   </user-attribute>
+   <user-attribute>
+      <name>portal.user.last-login-date</name>
+   </user-attribute>
+   <security-constraint>
+      <portlet-collection>
+         <portlet-name>SecuredTestPortlet</portlet-name>
+      </portlet-collection>
+      <user-data-constraint>
+         <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+      </user-data-constraint>
+   </security-constraint>
+</portlet-app>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/web.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/web.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,43 @@
+<?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">
+<web-app>
+   <listener>
+      <listener-class> org.jboss.portal.portlet.session.SessionListener </listener-class>
+   </listener>
+   <context-param>
+      <param-name>org.jboss.portal.content_type</param-name>
+      <param-value>filesystem</param-value>
+   </context-param>
+   <context-param>
+      <param-name>org.jboss.portal.portlet_instance</param-name>
+      <param-value>FSContentDrivenPortletInstance</param-value>
+   </context-param>
+   <listener>
+      <listener-class>org.jboss.portlet.content.ContentTypeRegistration</listener-class>
+   </listener>
+</web-app>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/news/Rss1.xsl
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/news/Rss1.xsl	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/news/Rss1.xsl	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,54 @@
+<?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.                  ~
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<xsl:stylesheet
+   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+   version="1.0">
+
+   <xsl:output method="html"/>
+
+   <xsl:template match="/">
+      <TABLE WIDTH="100%" BORDER="0" CELLPADDING="2" CELLSPACING="0">
+         <xsl:apply-templates/>
+      </TABLE>
+   </xsl:template>
+
+   <xsl:template match="item">
+      <TR>
+         <TD>
+            -
+            <A TARGET="_popup" STYLE="text-decoration: none;">
+               <xsl:attribute name="HREF">
+                  <xsl:value-of select="link"/>
+               </xsl:attribute>
+               <xsl:value-of select="title"/>
+            </A>
+         </TD>
+      </TR>
+      <xsl:apply-templates/>
+   </xsl:template>
+
+   <xsl:template match="text()"/>
+</xsl:stylesheet>
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/news/Rss2.xsl
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/news/Rss2.xsl	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/news/Rss2.xsl	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,46 @@
+<?xml version="1.0" ?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+   <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
+   
+   <xsl:variable name="link-path">
+      <xsl:value-of select="rss/channel/link"/>
+   </xsl:variable>
+
+   <xsl:template match="/">
+      <div style="font-size: 1.5em;" class="portlet-section-header">
+         <a href="{$link-path}" target="_blank">
+            <xsl:value-of select="rss/channel/title"/> - <xsl:value-of select="rss/channel/description"/>
+         </a>
+      </div>
+      <ul>
+         <xsl:for-each select="rss/channel/item">
+            <xsl:variable name="this-link">
+               <xsl:value-of select="link"/>
+            </xsl:variable>
+            <li>
+               <div class="portlet-section-subheader">
+                 <a href="{$this-link}" target="_blank">
+                   <xsl:value-of select="title"/>
+                 </a>
+               </div>
+               <div class="portlet-font-dim">
+                   <xsl:if test="string(author)">
+                     <xsl:value-of select="author"/>
+                   </xsl:if>
+                   <xsl:if test="string(author) and string(pubDate)">
+                     &#160;-&#160;
+                   </xsl:if>
+                   <xsl:if test="string(pubDate)">
+                     <xsl:value-of select="pubDate"/>
+                   </xsl:if>
+               </div>
+            </li>
+            <!--         <xsl:value-of select="description" disable-output-escaping="yes"/>
+         <br/>-->
+         </xsl:for-each>
+      </ul>
+      <br/>
+      <br/>
+      <xsl:value-of select="rss/channel/copyright"/>
+   </xsl:template>
+</xsl:stylesheet>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/weather/Rss.xsl
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/weather/Rss.xsl	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/WEB-INF/xsl/weather/Rss.xsl	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,100 @@
+<?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.                  ~
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~-->
+
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+   <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
+   <xsl:variable name="image-path">http://us.i1.yimg.com/us.yimg.com/i/us/we/52/</xsl:variable>
+   <xsl:variable name="link-path">
+      <xsl:value-of select="rss/channel/link"/>
+   </xsl:variable>
+   <xsl:template match="/">
+      <br/>
+      <div align="center">
+         <font>
+            <b>
+               <xsl:for-each select="rss/channel/location">
+                  <xsl:value-of select="@city"/>, <xsl:value-of select="@region"/>, <xsl:value-of
+                  select="@country"/>
+               </xsl:for-each>
+            </b>
+         </font>
+         <br/>
+         <br/>
+         <table width="130" border="0">
+            <tr>
+               <xsl:for-each select="rss/channel/item/condition">
+                  <td>
+                     <table border="0" height="130">
+                        <tr>
+                           <td class="portlet-section-header" align="center">Currently</td>
+                        </tr>
+                        <tr>
+                           <td class="portlet-section-alternate" align="center" valign="top">
+                              <img src="{$image-path}/{@code}.gif"/>
+                           </td>
+                        </tr>
+                        <tr>
+                           <td class="portlet-section-alternate" align="center" valign="top">
+                              <xsl:value-of select="@text"/>
+                           </td>
+                        </tr>
+                        <tr>
+                           <td class="portlet-section-alternate" align="center" valign="top">
+                              <xsl:value-of select="@temp"/>F</td>
+                        </tr>
+                     </table>
+                  </td>
+               </xsl:for-each>
+               <xsl:for-each select="rss/channel/item/forecast">
+                  <td>
+                     <table border="0" height="130">
+                        <tr>
+                           <td class="portlet-section-header" align="center" valign="top">
+                              <xsl:value-of select="@day"/>
+                           </td>
+                        </tr>
+                        <tr>
+                           <td class="portlet-section-alternate" align="center" valign="top">
+                              <img src="{$image-path}/{@code}.gif"/>
+                           </td>
+                        </tr>
+                        <tr>
+                           <td class="portlet-section-alternate" align="center" valign="top">
+                              <xsl:value-of select="@text"/>
+                           </td>
+                        </tr>
+                        <tr>
+                           <td class="portlet-section-alternate" align="center" valign="top">
+                              <xsl:value-of select="@low"/>F/<xsl:value-of select="@high"/>F</td>
+                        </tr>
+                     </table>
+                  </td>
+               </xsl:for-each>
+            </tr>
+         </table>
+         <br/>
+         <a href="{$link-path}" target="_blank">Complete Forecast</a>
+      </div>
+   </xsl:template>
+</xsl:stylesheet>

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir1/bar.txt
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir1/bar.txt	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir1/bar.txt	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1 @@
+Bar content
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir1/foo.txt
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir1/foo.txt	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir1/foo.txt	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1 @@
+Foo content
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir2/foo.txt
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir2/foo.txt	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/dir2/foo.txt	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1 @@
+Foo content
\ No newline at end of file

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/accessorize.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/accessorize.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/developers_banner.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/developers_banner.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/dodemo.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/dodemo.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/getcode.gif
===================================================================
(Binary files differ)


Property changes on: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/images/getcode.gif
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/portlet-styles/HeaderContent.css
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/portlet-styles/HeaderContent.css	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/portlet-styles/HeaderContent.css	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,13 @@
+#Introducing-HeaderContent {
+/*	Original Logo...*/
+   background-image: url( ../images/developers_banner.gif );
+   background-repeat: no-repeat;
+   width: 187px;
+   height: 120px;
+}
+
+#Introducing-HeaderContentInput {
+   position: relative;
+   top: 85px;
+   left: 3px;
+}

Added: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/portlet-styles/HeaderContent.js
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/portlet-styles/HeaderContent.js	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-samples.sar/portal-samples.war/portlet-styles/HeaderContent.js	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,5 @@
+// simple test java script
+function injectJS()
+{
+   alert('hello from the injected java script!');
+}

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -31,6 +31,11 @@
    <distributable/>
    -->
 
+   <!-- Bridge portal user events -->
+   <listener>
+      <listener-class>org.jboss.portal.core.event.user.UserEventBridge</listener-class>
+   </listener>
+
    <!-- The portal servlet is the main entrance point -->
    <servlet>
       <servlet-name>PortalServletWithPathMapping</servlet-name>
@@ -41,9 +46,9 @@
          <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=Core</param-value>
-         <description>The request controller for the portal servlet</description>
+         <param-name>controllerFactoryName</param-name>
+         <param-value>portal:service=ControllerFactory</param-value>
+         <description>The request controller factory for the portal servlet</description>
       </init-param>
       <load-on-startup>0</load-on-startup>
       <security-role-ref>
@@ -62,9 +67,9 @@
          <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=Core</param-value>
-         <description>The request controller for the portal servlet</description>
+         <param-name>controllerFactoryName</param-name>
+         <param-value>portal:service=ControllerFactory</param-value>
+         <description>The request controller factory for the portal servlet</description>
       </init-param>
       <load-on-startup>0</load-on-startup>
       <security-role-ref>
@@ -230,9 +235,9 @@
          <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>
+         <param-name>controllerFactoryName</param-name>
+         <param-value>portal:service=ControllerFactory</param-value>
+         <description>The request controller factory for the portal servlet</description>
       </init-param>
       <load-on-startup>0</load-on-startup>
       <security-role-ref>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-server.war/error.jsp
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-server.war/error.jsp	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/binaries/portal/to-copy/jboss-portal.sar/portal-server.war/error.jsp	2007-04-03 09:17:29 UTC (rev 10706)
@@ -59,7 +59,7 @@
 				<!-- REAL CONTENT CELL : begin -->
 				<td style="background-color:#b4b4b4" align="center">
 					<b>JBoss Portal Login</b><br/><br/>
-					<p style="color:red">Login failed !</p>
+					<p style="color:red"><%= request.getAttribute("org.jboss.portal.loginError") %></p>
 					<table>
 				       <tr>
 					  <td align="right" width="50">

Added: labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.old.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.old.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.old.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,1320 @@
+<?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>
+
+   <!-- DTD repository -->
+   <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>
+
+   <!-- 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"
+      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.core.event.user.UserEventInterceptor"
+      name="portal:service=Interceptor,type=Server,name=UserEvent"
+      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/>
+      <attribute name="CacheUser">true</attribute>
+      <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=UserEvent</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/>
+      <depends
+         optional-attribute-name="ServletContainerContext"
+         proxy-type="attribute">portal:service=ServletContainerContext</depends>
+   </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.impl.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>
+      <depends
+         optional-attribute-name="ContentProviderRegistry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
+      <attribute name="SessionFactoryJNDIName">java:/portal/PortalObjectSessionFactory</attribute>
+      <attribute name="CacheNaturalId">true</attribute>
+   </mbean>
+
+   <!-- Customization manager -->
+   <mbean
+      code="org.jboss.portal.core.impl.model.CustomizationManagerService"
+      name="portal:service=CustomizationManager"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+	   <depends
+         optional-attribute-name="PortalAuthorizationManagerFactory"
+         proxy-type="attribute">portal:service=PortalAuthorizationManagerFactory</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+      <depends
+         optional-attribute-name="PortalObjectContainer"
+         proxy-type="attribute">portal:container=PortalObject</depends>
+      <depends>portal:service=Module,type=IdentityServiceController</depends>
+      <attribute name="DashboardContextId">dashboard</attribute>
+   </mbean>
+
+   <!-- The content provider framework -->
+   <mbean
+      code="org.jboss.portal.core.impl.model.content.ContentProviderRegistryService"
+      name="portal:service=ContentProviderRegistry"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.impl.model.content.portlet.InternalPortletContentProvider"
+      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=ContentProviderRegistry</depends>
+      <depends
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+   </mbean>
+   <mbean
+      code="org.jboss.portal.core.impl.model.content.generic.GenericContentProviderRegistry"
+      name="portal:service=GenericContentProviderRegistry"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
+      <depends
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</depends>
+      <depends
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
+   </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>
+
+   <!-- 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.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"
+      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>
+
+   <!-- 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>
+   <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
+      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 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=ContentProviderRegistry</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>
+      <depends
+         optional-attribute-name="ContentRendererRegistry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
+   </mbean>
+
+   <!-- The controller factory -->
+   <mbean
+      code="org.jboss.portal.core.controller.ControllerFactory"
+      name="portal:service=ControllerFactory"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="ClassicController"
+         proxy-type="attribute">portal:controller=Core</depends>
+      <depends
+         optional-attribute-name="AjaxController"
+         proxy-type="attribute">portal:controller=Ajax</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="ContentProviderRegistry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</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/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-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -101,6 +101,13 @@
       <xmbean/>
    </mbean>
    <mbean
+      code="org.jboss.portal.core.event.user.UserEventInterceptor"
+      name="portal:service=Interceptor,type=Server,name=UserEvent"
+      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=""
@@ -138,6 +145,7 @@
       <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=UserEvent</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>
@@ -147,6 +155,20 @@
 
    <!-- Command stack -->
    <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.NavigationalStateInterceptor"
+      name="portal:service=Interceptor,type=Command,name=NavigationalState"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+   </mbean>
+   <mbean
       code="org.jboss.portal.core.aspects.controller.node.PortalNodeInterceptor"
       name="portal:service=Interceptor,type=Command,name=PortalNode"
       xmbean-dd=""
@@ -171,13 +193,6 @@
          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=""
@@ -194,10 +209,11 @@
       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=Ajax</depends-list-element>
+         <depends-list-element>portal:service=Interceptor,type=Command,name=NavigationalState</depends-list-element>
          <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>
@@ -560,34 +576,12 @@
       <depends
          optional-attribute-name="InstanceContainer"
          proxy-type="attribute">portal:container=Instance</depends>
+      <depends
+         optional-attribute-name="ContentProviderRegistry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
       <attribute name="SessionFactoryJNDIName">java:/portal/PortalObjectSessionFactory</attribute>
       <attribute name="CacheNaturalId">true</attribute>
    </mbean>
-   <mbean
-      code="org.jboss.portal.core.impl.model.content.portlet.PortletContentHandler"
-      name="portal:service=ContentHandler,type=portlet"
-      xmbean-dd=""
-      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
-      <xmbean/>
-      <depends
-         optional-attribute-name="Registry"
-         proxy-type="attribute">portal:container=PortalObject</depends>
-      <depends
-         optional-attribute-name="InstanceContainer"
-         proxy-type="attribute">portal:container=Instance</depends>
-      <attribute name="ContentType">portlet</attribute>
-   </mbean>
-   <mbean
-      code="org.jboss.portal.core.impl.model.content.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
@@ -609,335 +603,377 @@
       <attribute name="DashboardContextId">dashboard</attribute>
    </mbean>
 
-   <!-- Integrate identity -->
+   <!-- The content provider framework -->
    <mbean
-      code="org.jboss.portal.core.identity.DashboardBridge"
-      name="portal:service=IdentityDashboardBridge"
+      code="org.jboss.portal.core.impl.model.content.ContentProviderRegistryService"
+      name="portal:service=ContentProviderRegistry"
       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"
+      code="org.jboss.portal.core.impl.model.content.portlet.InternalPortletContentProvider"
+      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="IdentityEventEmitter"
-         proxy-type="attribute">portal:service=IdentityEventManager</depends>
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</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 -->
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</depends>
       <depends
-         optional-attribute-name="NextFactory"
-         proxy-type="attribute">portal:commandFactory=LabsMain</depends>
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
    </mbean>
    <mbean
-      code="org.jboss.portal.core.model.portal.DefaultPortalCommandFactory"
-      name="portal:commandFactory=DefaultPortal"
+      code="org.jboss.portal.core.impl.model.content.generic.GenericContentProviderRegistry"
+      name="portal:service=GenericContentProviderRegistry"
       xmbean-dd=""
       xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
       <xmbean/>
       <depends
-         optional-attribute-name="NextFactory"
-         proxy-type="attribute">portal:commandFactory=Delegating</depends>
+         optional-attribute-name="Registry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</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/>
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</depends>
       <depends
-         optional-attribute-name="Container"
-         proxy-type="attribute">portal:container=PortalObject</depends>
+         optional-attribute-name="InstanceContainer"
+         proxy-type="attribute">portal:container=Instance</depends>
    </mbean>
-   <!-- LABS
+
+   <!-- Integrate identity -->
    <mbean
-      code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
-      name="portal:commandFactory=Delegate,path=portal"
+      code="org.jboss.portal.core.identity.DashboardBridge"
+      name="portal:service=IdentityDashboardBridge"
       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>
+         optional-attribute-name="IdentityEventEmitter"
+         proxy-type="attribute">portal:service=IdentityEventManager</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>
+         optional-attribute-name="CustomizationManager"
+         proxy-type="attribute">portal:service=CustomizationManager</depends>
    </mbean>
    <mbean
-      code="org.jboss.portal.core.controller.command.mapper.CommandFactoryDelegate"
-      name="portal:commandFactory=Delegate,path=signout"
+      code="org.jboss.portal.core.identity.SecurityBridge"
+      name="portal:service=IdentitySecurityBridge"
       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>
+         optional-attribute-name="IdentityEventEmitter"
+         proxy-type="attribute">portal:service=IdentityEventManager</depends>
       <depends
-         optional-attribute-name="DelegateFactory"
-         proxy-type="attribute">portal:commandFactory=SignOut</depends>
+         optional-attribute-name="DynamicLoginConfig"
+         proxy-type="attribute">portal:service=JAASLoginModule</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>
 
-   <!-- LABS command factories -->
+    <!-- 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.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>
+    <!-- LABS command factories -->
 
-   <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.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.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.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>
+    <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.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>
 
-   <!-- 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>
+    <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 -->
-   <!--<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>
+    <!-- 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>
 
-   <!-- LABS URL factories -->
+    <!-- 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.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>
-   <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>
+    <!-- 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>
+    <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
       code="org.jboss.portal.portlet.federation.impl.FederatingPortletInvokerService"
@@ -1023,44 +1059,6 @@
          proxy-type="attribute">portal:service=PortletInvoker,type=Federating</depends>
    </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>
-   <mbean
-      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/>
-      <attribute name="ContentType">generic</attribute>
-      <attribute name="DecorateContent">true</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"
@@ -1094,7 +1092,7 @@
          proxy-type="attribute">portal:service=CustomizationManager</depends>
       <depends
          optional-attribute-name="ContentRendererRegistry"
-         proxy-type="attribute">portal:service=ContentRendererRegistry</depends>
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
    </mbean>
 
    <!-- The ajax controller -->
@@ -1128,8 +1126,26 @@
       <depends
          optional-attribute-name="CustomizationManager"
          proxy-type="attribute">portal:service=CustomizationManager</depends>
+      <depends
+         optional-attribute-name="ContentRendererRegistry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
    </mbean>
 
+   <!-- The controller factory -->
+   <mbean
+      code="org.jboss.portal.core.controller.ControllerFactory"
+      name="portal:service=ControllerFactory"
+      xmbean-dd=""
+      xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+      <xmbean/>
+      <depends
+         optional-attribute-name="ClassicController"
+         proxy-type="attribute">portal:controller=Core</depends>
+      <depends
+         optional-attribute-name="AjaxController"
+         proxy-type="attribute">portal:controller=Ajax</depends>
+   </mbean>
+
    <!-- -->
    <mbean
       code="org.jboss.portal.server.impl.ServerImpl"
@@ -1186,8 +1202,8 @@
          optional-attribute-name="PortalObjectContainer"
          proxy-type="attribute">portal:container=PortalObject</depends>
       <depends
-         optional-attribute-name="ContentHandlerRegistry"
-         proxy-type="attribute">portal:container=PortalObject</depends>
+         optional-attribute-name="ContentProviderRegistry"
+         proxy-type="attribute">portal:service=ContentProviderRegistry</depends>
       <depends
          optional-attribute-name="PortalObjectEntityResolver"
          proxy-type="attribute">portal:service=EntityResolver</depends>

Deleted: 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	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/META-INF/jboss-service.xml.old	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,1332 +0,0 @@
-<?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>

Added: labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.old.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.old.xml	                        (rev 0)
+++ labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.old.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -0,0 +1,396 @@
+<?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">
+<web-app>
+   <description>JBoss Portal</description>
+   <!-- Comment/Uncomment to enable portal session replication
+   <distributable/>
+   -->
+
+   <!-- LABS FILTERS -->
+   <servlet>
+   	<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>
+   	<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>
+   	<servlet-name>wrongLoginServlet</servlet-name>
+   	<url-pattern>/loginFailed</url-pattern>
+   </servlet-mapping>
+
+	<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>
+		<servlet-name>ShowLoginPage</servlet-name>
+		<url-pattern>/showLogin</url-pattern>
+	</servlet-mapping>
+
+	<servlet-mapping>
+		<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>
+   </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>
+   </filter-mapping>
+
+   <filter>
+	<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>
+      <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>
+	<filter-name>BlockPagesFilter</filter-name>
+	<filter-class>org.jboss.forge.portal.BlockPagesFilter</filter-class>
+   </filter>
+
+   <filter-mapping>
+   	<filter-name>BlockPagesFilter</filter-name>
+	<servlet-name>PortalServlet</servlet-name>
+   </filter-mapping>
+   -->
+
+   <!-- SSL Processor -->
+   <filter>
+      <filter-name>SSLProcessor</filter-name>
+      <filter-class>org.jboss.forge.portal.SSLProcessor</filter-class>
+   </filter>
+
+   <filter-mapping>
+      <filter-name>SSLProcessor</filter-name>
+      <servlet-name>PortalServletWithPathMapping</servlet-name>
+   </filter-mapping>
+
+   <filter-mapping>
+      <filter-name>SSLProcessor</filter-name>
+      <servlet-name>PortalServletWithDefaultServletMapping</servlet-name>
+   </filter-mapping>
+
+   <filter>
+      <filter-name>PrimaryNavigationFilter</filter-name>
+      <filter-class>org.jboss.forge.portal.PrimaryNavigationFilter</filter-class>
+   </filter>
+
+   <filter-mapping>
+      <filter-name>PrimaryNavigationFilter</filter-name>
+      <servlet-name>PortalServletWithPathMapping</servlet-name>
+   </filter-mapping>
+
+   <filter-mapping>
+      <filter-name>PrimaryNavigationFilter</filter-name>
+      <servlet-name>PortalServletWithDefaultServletMapping</servlet-name>
+   </filter-mapping>
+
+   <!-- END OF LABS FILTERS -->
+
+   <!-- The portal servlet is the main entrance point -->
+   <servlet>
+      <servlet-name>PortalServletWithPathMapping</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=Core</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>
+
+   <!-- The portal servlet is the main entrance point -->
+   <servlet>
+      <servlet-name>PortalServletWithDefaultServletMapping</servlet-name>
+      <servlet-class>org.jboss.portal.server.servlet.PortalServlet</servlet-class>
+      <init-param>
+         <param-name>asDefaultServlet</param-name>
+         <param-value>true</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=Core</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 access to unauthenticated users -->
+   <servlet-mapping>
+      <servlet-name>PortalServletWithPathMapping</servlet-name>
+      <url-pattern>/*</url-pattern>
+   </servlet-mapping>
+
+   <!-- Provide secure access to unauthenticated users -->
+   <servlet-mapping>
+      <servlet-name>PortalServletWithPathMapping</servlet-name>
+      <url-pattern>/sec/*</url-pattern>
+   </servlet-mapping>
+
+   <!-- Provide access to authenticated users -->
+   <servlet-mapping>
+      <servlet-name>PortalServletWithPathMapping</servlet-name>
+      <url-pattern>/auth/*</url-pattern>
+   </servlet-mapping>
+
+   <!-- Provide secure access to authenticated users -->
+   <servlet-mapping>
+      <servlet-name>PortalServletWithPathMapping</servlet-name>
+      <url-pattern>/authsec/*</url-pattern>
+   </servlet-mapping>
+
+   <!-- 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>
+   </servlet-mapping>
+   <servlet-mapping>
+      <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>
+   </session-config>
+
+   <!--
+     | JDBC usage must be done with
+     | DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/PortalDS";
+     -->
+   <resource-ref>
+      <res-ref-name>jdbc/PortalDS</res-ref-name>
+      <res-type>javax.sql.DataSource</res-type>
+      <res-auth>Container</res-auth>
+      <res-sharing-scope>Shareable</res-sharing-scope>
+   </resource-ref>
+
+   <security-constraint>
+      <web-resource-collection>
+         <web-resource-name>Authenticated</web-resource-name>
+         <description></description>
+         <url-pattern>/auth/*</url-pattern>
+      </web-resource-collection>
+      <auth-constraint>
+         <role-name>Authenticated</role-name>
+      </auth-constraint>
+   </security-constraint>
+
+   <security-constraint>
+     <web-resource-collection>
+       <web-resource-name>Secure</web-resource-name>
+       <url-pattern>/sec/*</url-pattern>
+     </web-resource-collection>
+     <user-data-constraint>
+       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+     </user-data-constraint>
+   </security-constraint>
+
+   <security-constraint>
+     <web-resource-collection>
+       <web-resource-name>Secure+Authenticated</web-resource-name>
+       <url-pattern>/authsec/*</url-pattern>
+     </web-resource-collection>
+     <auth-constraint>
+       <role-name>Authenticated</role-name>
+     </auth-constraint>
+     <user-data-constraint>
+       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
+     </user-data-constraint>
+   </security-constraint>
+
+   <!--
+     | Uncomment to use BASIC authentication scheme. Don't forget to comment other
+     | form authentication.
+     -->
+   <!--
+   <login-config>
+      <auth-method>BASIC</auth-method>
+      <realm-name>JBoss Portal</realm-name>
+   </login-config>
+   -->
+
+   <!--
+     | Uncomment to use FORM authentication scheme. Don't forget to comment other
+     | form authentication.
+     -->
+   <!--
+   -->
+   <login-config>
+      <auth-method>FORM</auth-method>
+      <realm-name>JBoss Portal</realm-name>
+      <form-login-config>
+         <form-login-page>/login.jsp</form-login-page>
+         <form-error-page>/error.jsp</form-error-page>
+      </form-login-config>
+   </login-config>
+
+   <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/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-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -132,21 +132,8 @@
       <url-pattern>/*</url-pattern>
    </filter-mapping>
 
-   <!-- BlockPages filter -->
-   <!-- TAKEN FROM SOHIL'S WEB.XML
+    <!-- SSL Processor -->
    <filter>
-	<filter-name>BlockPagesFilter</filter-name>
-	<filter-class>org.jboss.forge.portal.BlockPagesFilter</filter-class>
-   </filter>
-
-   <filter-mapping>
-   	<filter-name>BlockPagesFilter</filter-name>
-	<servlet-name>PortalServlet</servlet-name>
-   </filter-mapping>
-   -->
-
-   <!-- SSL Processor -->
-   <filter>
       <filter-name>SSLProcessor</filter-name>
       <filter-class>org.jboss.forge.portal.SSLProcessor</filter-class>
    </filter>
@@ -178,6 +165,11 @@
 
    <!-- END OF LABS FILTERS -->
 
+   <!-- Bridge portal user events -->
+   <listener>
+      <listener-class>org.jboss.portal.core.event.user.UserEventBridge</listener-class>
+   </listener>
+
    <!-- The portal servlet is the main entrance point -->
    <servlet>
       <servlet-name>PortalServletWithPathMapping</servlet-name>
@@ -188,9 +180,9 @@
          <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=Core</param-value>
-         <description>The request controller for the portal servlet</description>
+         <param-name>controllerFactoryName</param-name>
+         <param-value>portal:service=ControllerFactory</param-value>
+         <description>The request controller factory for the portal servlet</description>
       </init-param>
       <load-on-startup>0</load-on-startup>
       <security-role-ref>
@@ -209,9 +201,9 @@
          <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=Core</param-value>
-         <description>The request controller for the portal servlet</description>
+         <param-name>controllerFactoryName</param-name>
+         <param-value>portal:service=ControllerFactory</param-value>
+         <description>The request controller factory for the portal servlet</description>
       </init-param>
       <load-on-startup>0</load-on-startup>
       <security-role-ref>
@@ -377,9 +369,9 @@
          <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>
+         <param-name>controllerFactoryName</param-name>
+         <param-value>portal:service=ControllerFactory</param-value>
+         <description>The request controller factory for the portal servlet</description>
       </init-param>
       <load-on-startup>0</load-on-startup>
       <security-role-ref>

Deleted: 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-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/configuration/to-copy/server/default/deploy/jboss-portal.sar/portal-server.war/WEB-INF/web.xml.old	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,408 +0,0 @@
-<?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">
-<web-app>
-   <description>JBoss Portal</description>
-   <!-- Comment/Uncomment to enable portal session replication
-   <distributable/>
-   -->
-
-   <!-- LABS FILTERS -->
-   <servlet>
-   	<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>
-   	<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>
-   	<servlet-name>wrongLoginServlet</servlet-name>
-   	<url-pattern>/loginFailed</url-pattern>
-   </servlet-mapping>
-
-	<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>
-		<servlet-name>ShowLoginPage</servlet-name>
-		<url-pattern>/showLogin</url-pattern>
-	</servlet-mapping>
-	
-	<servlet-mapping>
-		<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>
-   </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>
-   </filter-mapping>
-
-   <filter>
-	<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>
-      <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>
-	<filter-name>BlockPagesFilter</filter-name>
-	<filter-class>org.jboss.forge.portal.BlockPagesFilter</filter-class>
-   </filter>
-
-   <filter-mapping>
-   	<filter-name>BlockPagesFilter</filter-name>
-	<servlet-name>PortalServlet</servlet-name>
-   </filter-mapping>
-   -->
-   
-   <!-- SSL Processor -->
-   <filter>
-      <filter-name>SSLProcessor</filter-name>
-      <filter-class>org.jboss.forge.portal.SSLProcessor</filter-class>
-   </filter>
-
-   <filter-mapping>
-      <filter-name>SSLProcessor</filter-name>
-      <servlet-name>PortalServletWithPathMapping</servlet-name>
-   </filter-mapping>
-   
-   <filter-mapping>
-      <filter-name>SSLProcessor</filter-name>
-      <servlet-name>PortalServletWithDefaultServletMapping</servlet-name>
-   </filter-mapping>
-
-   <filter>
-      <filter-name>PrimaryNavigationFilter</filter-name>
-      <filter-class>org.jboss.forge.portal.PrimaryNavigationFilter</filter-class>
-   </filter>
-
-   <filter-mapping>
-      <filter-name>PrimaryNavigationFilter</filter-name>
-      <servlet-name>PortalServletWithPathMapping</servlet-name>
-   </filter-mapping>
-
-   <filter-mapping>
-      <filter-name>PrimaryNavigationFilter</filter-name>
-      <servlet-name>PortalServletWithDefaultServletMapping</servlet-name>
-   </filter-mapping>
-
-   <!-- END OF LABS FILTERS -->
-
-
-   <!-- The portal servlet is the main entrance point -->
-   <servlet>
-      <servlet-name>PortalServletWithPathMapping</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=Core</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>
-
-   <!-- The portal servlet is the main entrance point -->
-   <servlet>
-      <servlet-name>PortalServletWithDefaultServletMapping</servlet-name>
-      <servlet-class>org.jboss.portal.server.servlet.PortalServlet</servlet-class>
-      <init-param>
-         <param-name>asDefaultServlet</param-name>
-         <param-value>true</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=Core</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 access to unauthenticated users -->
-   <servlet-mapping>
-      <servlet-name>PortalServletWithPathMapping</servlet-name>
-      <url-pattern>/*</url-pattern>
-   </servlet-mapping>
-
-   <!-- Provide secure access to unauthenticated users -->
-   <servlet-mapping>
-      <servlet-name>PortalServletWithPathMapping</servlet-name>
-      <url-pattern>/sec/*</url-pattern>
-   </servlet-mapping>
-
-   <!-- Provide access to authenticated users -->
-   <servlet-mapping>
-      <servlet-name>PortalServletWithPathMapping</servlet-name>
-      <url-pattern>/auth/*</url-pattern>
-   </servlet-mapping>
-
-   <!-- Provide secure access to authenticated users -->
-   <servlet-mapping>
-      <servlet-name>PortalServletWithPathMapping</servlet-name>
-      <url-pattern>/authsec/*</url-pattern>
-   </servlet-mapping>
-
-   <!-- 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>
-   </servlet-mapping>
-   <servlet-mapping>
-      <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>
-   </session-config>
-
-   <!--
-     | JDBC usage must be done with
-     | DataSource ds = (DataSource)ctx.lookup("java:comp/env/jdbc/PortalDS";
-     -->
-   <resource-ref>
-      <res-ref-name>jdbc/PortalDS</res-ref-name>
-      <res-type>javax.sql.DataSource</res-type>
-      <res-auth>Container</res-auth>
-      <res-sharing-scope>Shareable</res-sharing-scope>
-   </resource-ref>
-
-   <security-constraint>
-      <web-resource-collection>
-         <web-resource-name>Authenticated</web-resource-name>
-         <description></description>
-         <url-pattern>/auth/*</url-pattern>
-      </web-resource-collection>
-      <auth-constraint>
-         <role-name>Authenticated</role-name>
-      </auth-constraint>
-   </security-constraint>
-
-   <security-constraint>
-     <web-resource-collection>
-       <web-resource-name>Secure</web-resource-name>
-       <url-pattern>/sec/*</url-pattern>
-     </web-resource-collection>
-     <user-data-constraint>
-       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-     </user-data-constraint>
-   </security-constraint>
-
-   <security-constraint>
-     <web-resource-collection>
-       <web-resource-name>Secure+Authenticated</web-resource-name>
-       <url-pattern>/authsec/*</url-pattern>
-     </web-resource-collection>
-     <auth-constraint>
-       <role-name>Authenticated</role-name>
-     </auth-constraint>
-     <user-data-constraint>
-       <transport-guarantee>CONFIDENTIAL</transport-guarantee>
-     </user-data-constraint>
-   </security-constraint>
-
-   <!--
-     | Uncomment to use BASIC authentication scheme. Don't forget to comment other
-     | form authentication.
-     -->
-   <!--
-   <login-config>
-      <auth-method>BASIC</auth-method>
-      <realm-name>JBoss Portal</realm-name>
-   </login-config>
-   -->
-
-   <!--
-     | Uncomment to use FORM authentication scheme. Don't forget to comment other
-     | form authentication.
-     -->
-   <!--
-   -->
-   <login-config>
-      <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-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>
-
-   <!-- 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/META-INF/jboss-service.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/META-INF/jboss-service.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/META-INF/jboss-service.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -35,6 +35,10 @@
         <attribute name="ViewPostsOnSeparatePageName">viewPostsOnSeparatePage</attribute>
         <attribute name="ViewAllPostsName">viewAllPosts</attribute>
         <attribute name="CommentsEnabledName">commentsEnabled</attribute>
+        <attribute name="ShowLinkToOriginalBlogName">showLinkToOriginalBlog</attribute>
+        <attribute name="ShowLinkToOriginalPostName">showLinkToOriginalPost</attribute>
+        <attribute name="LinkPostsToOriginalName">linkPostsToOriginal</attribute>
+        <attribute name="FeedLinksName">feedLinks</attribute>
     </mbean>
 
     <!-- Model service -->
@@ -57,4 +61,4 @@
            name="blog:service=Store"
            xmbean-dd="org/jboss/labs/blog/service/store/LabsStoreService.xml">
     </mbean>
-</server>
\ No newline at end of file
+</server>

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/blog-object.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/blog-object.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/blog-object.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,16 +1,3 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <deployments>
-    <deployment>
-        <if-exists>overwrite</if-exists>
-        <parent-ref>default</parent-ref>
-        <page>
-            <page-name>blogtest</page-name>
-            <window>
-                <window-name>BlogPortletTestWindow</window-name>
-                <instance-ref>BlogPortletTestInstance</instance-ref>
-                <region>center</region>
-                <height>2</height>
-            </window>
-        </page>
-    </deployment>
 </deployments>
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet-instances.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet-instances.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet-instances.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,32 +1,3 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <deployments>
-    <deployment>
-        <if-exists>overwrite</if-exists>
-        <instance>
-            <instance-id>BlogPortletTestInstance</instance-id>
-            <portlet-ref>BlogPortlet</portlet-ref>
-            <preferences>
-                <preference>
-                    <name>blogId</name>
-                    <value>matrix</value>
-                </preference>
-                <preference>
-                    <name>blogCategory</name>
-                    <value></value>
-                </preference>
-                <preference>
-                    <name>numberOfPostsPerPage</name>
-                    <value>4</value>
-                </preference>
-                <preference>
-                    <name>viewPostsOnSeparatePage</name>
-                    <value>true</value>
-                </preference>
-                <preference>
-                    <name>commentsEnabled</name>
-                    <value>false</value>
-                </preference>
-            </preferences>
-        </instance>
-    </deployment>
 </deployments>
\ No newline at end of file

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-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/portlet.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -39,6 +39,21 @@
                 <name>commentsEnabled</name>
                 <value>false</value>
             </preference>
+            <preference>
+                <name>showLinkToOriginalBlog</name>
+                <value>false</value>
+            </preference>
+            <preference>
+                <name>showLinkToOriginalPost</name>
+                <value>false</value>
+            </preference>
+            <preference>
+                <name>linkPostsToOriginal</name>
+                <value>false</value>
+            </preference>
+            <preference>
+                <name>feedLinks</name>
+            </preference>
         </portlet-preferences>
     </portlet>
 </portlet-app>

Modified: 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	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/tags/post_link.xhtml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -1,3 +1,8 @@
 <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>
+    <h:panelGroup rendered="#{blogView.linkPostsToOriginal and (not empty post.link)}">
+        <h:outputLink value="#{post.link}">#{value}</h:outputLink>
+    </h:panelGroup>
+    <h:panelGroup rendered="#{(not blogView.linkPostsToOriginal) or (empty post.link)}">
+        <h:outputLink value="#{blog:postLink(post.titleAsId)}">#{value}</h:outputLink>
+    </h:panelGroup>
 </ui:composition>
\ No newline at end of file

Modified: labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/web.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/web.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-blog/binaries/jboss-blog.sar/jboss-blog.war/WEB-INF/web.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -26,6 +26,11 @@
         <param-value>org.jboss.forge.common.facelets.LabsFaceletsResourceResolver</param-value>
     </context-param>
 
+    <context-param>
+        <param-name>facelets.REFRESH_PERIOD</param-name>
+        <param-value>1</param-value>
+    </context-param>
+
     <filter>
         <filter-name>filesFromRepoFilter</filter-name>
         <filter-class>org.jboss.forge.common.FilesFromRepoFilter</filter-class>

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-portlets/project.xml
===================================================================
--- labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/project.xml	2007-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/project.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -41,6 +41,12 @@
         </dependency>
         <dependency>
             <groupId>jboss</groupId>
+            <artifactId>javax.servlet.jsp</artifactId>
+            <version>1.0</version>
+            <jar>javax.servlet.jsp.jar</jar>
+        </dependency>
+        <dependency>
+            <groupId>jboss</groupId>
             <artifactId>javax.servlet</artifactId>
             <version>1.0</version>
             <jar>javax.servlet.jar</jar>

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-04-03 05:03:36 UTC (rev 10705)
+++ labs/jbosslabs/trunk/portal-extensions-adam/forge-portlets/src/web/WEB-INF/web.xml	2007-04-03 09:17:29 UTC (rev 10706)
@@ -15,6 +15,7 @@
     <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