You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by at...@apache.org on 2009/04/24 15:02:26 UTC

svn commit: r768293 - in /portals/jetspeed-2/portal/trunk: components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/ components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/ components/jetspeed-registry/src/main/java/org/ap...

Author: ate
Date: Fri Apr 24 13:02:25 2009
New Revision: 768293

URL: http://svn.apache.org/viewvc?rev=768293&view=rev
Log:
JS2-954: Add support for JSR-286 Portlet Managed PortletModes

Modified:
    portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/JetspeedNavigationalStateCodec.java
    portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml
    portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java
    portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/registry-schema.xml

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/JetspeedNavigationalStateCodec.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/JetspeedNavigationalStateCodec.java?rev=768293&r1=768292&r2=768293&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/JetspeedNavigationalStateCodec.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/container/state/impl/JetspeedNavigationalStateCodec.java Fri Apr 24 13:02:25 2009
@@ -59,6 +59,7 @@
     protected static final char ACTION_SCOPE_ID_KEY = 'k';
     protected static final char PUBLIC_RENDER_PARAM_KEY = 'l';
     protected static final char RENDERED_ACTION_SCOPE_ID_KEY = 'm';
+    protected static final char PORTLET_MANAGED_MODE_KEY = 'n';
     protected static final char[] URLTYPE_ID_KEYS = { 'b', 'g', 'a' };
     
     protected static final String keytable = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
@@ -401,8 +402,22 @@
             if (state.getPortletMode() != null)
             {
                 buffer.append(PARAMETER_SEPARATOR);
-                buffer.append(MODE_KEY);
-                buffer.append(encodePortletMode(state.getPortletMode()));
+                boolean found = false;
+                for ( int i = 0; i < portletModes.length; i++ )
+                {
+                    if (portletModes[i].equals(state.getPortletMode()))
+                    {
+                        buffer.append(MODE_KEY);
+                        buffer.append(keytable.charAt(i));
+                        found = true;
+                        break;
+                    }
+                }
+                if (!found)
+                {
+                    buffer.append(PORTLET_MANAGED_MODE_KEY);
+                    buffer.append(state.getPortletMode().toString());
+                }
                 encoded = true;
             }
             if (state.getWindowState() != null)
@@ -562,6 +577,11 @@
                     }
                     break;
                 }
+                case PORTLET_MANAGED_MODE_KEY:
+                {
+                    currentState.setPortletMode(new PortletMode(parameter.substring(1)));
+                    break;
+                }
                 case STATE_KEY:
                 {
                     WindowState windowState = decodeWindowState(parameter.charAt(1));
@@ -722,16 +742,6 @@
         return portletMode;
     }
     
-    protected char encodePortletMode(PortletMode portletMode)
-    {
-        for ( int i = 0; i < portletModes.length; i++ )
-        {
-            if (portletModes[i].equals(portletMode))
-                return keytable.charAt(i);
-        }
-        throw new IllegalArgumentException("Unsupported PortletMode: "+portletMode);
-    }
-    
     protected WindowState decodeWindowState(char state)
     {
         WindowState windowState = null;

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml?rev=768293&r1=768292&r2=768293&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/JETSPEED-INF/ojb/registry_repository.xml Fri Apr 24 13:02:25 2009
@@ -1290,6 +1290,15 @@
          jdbc-type="VARCHAR"
       />
 
+      <field-descriptor
+          name="portalManaged"
+          column="PORTAL_MANAGED"
+          jdbc-type="INTEGER"
+          conversion="org.apache.ojb.broker.accesslayer.conversions.Boolean2IntFieldConversion"
+          nullable="false"
+      >
+      </field-descriptor>
+
       <collection-descriptor
          name="descriptions"
          element-class-ref="org.apache.jetspeed.om.portlet.impl.DescriptionImpl"

Modified: portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java?rev=768293&r1=768292&r2=768293&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java (original)
+++ portals/jetspeed-2/portal/trunk/components/jetspeed-registry/src/main/java/org/apache/jetspeed/om/portlet/impl/PortletApplicationDefinitionImpl.java Fri Apr 24 13:02:25 2009
@@ -489,13 +489,12 @@
         {
             return mode;
         }
-        else if (JetspeedActions.getExtendedPortletModes().contains(mode))
+        else
         {
             // make sure transient cache is setup
             getSupportedPortletModes();
             return supportedCustomModes.get(mode);
         }
-        return null;            
     }
     
     public List<CustomPortletMode> getCustomPortletModes()
@@ -589,7 +588,7 @@
             
             for (CustomPortletMode customMode : getCustomPortletModes())
             {
-                if ( !list.contains(customMode.getCustomMode()) && JetspeedActions.getExtendedPortletModes().contains(customMode.getMappedMode()) )
+                if ( !list.contains(customMode.getCustomMode()) && (!customMode.isPortalManaged() || JetspeedActions.getExtendedPortletModes().contains(customMode.getMappedMode())) )
                 {
                     list.add(customMode.getCustomMode());
                     supportedCustomModes.put(customMode.getMappedMode(), customMode.getCustomMode());

Modified: portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/registry-schema.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/registry-schema.xml?rev=768293&r1=768292&r2=768293&view=diff
==============================================================================
--- portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/registry-schema.xml (original)
+++ portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/ddl-schema/registry-schema.xml Fri Apr 24 13:02:25 2009
@@ -262,6 +262,7 @@
         <column name="APPLICATION_ID" required="true" type="INTEGER"/>
         <column name="CUSTOM_NAME" required="true" size="150" type="VARCHAR"/>
         <column name="MAPPED_NAME" size="150" type="VARCHAR"/>
+        <column name="PORTAL_MANAGED" required="true" type="BOOLEANINT"/>        
         <foreign-key foreignTable="PORTLET_APPLICATION" name="FK_CUSTOM_PORTLET_MODE_1" onDelete="cascade">
             <reference foreign="APPLICATION_ID" local="APPLICATION_ID"/>
         </foreign-key>        



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