[portal-commits] JBoss Portal SVN: r8887 - in branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal: wsrp/consumer/portlet/info and 1 other directory.

portal-commits at lists.jboss.org portal-commits at lists.jboss.org
Mon Nov 12 15:57:56 EST 2007


Author: chris.laprun at jboss.com
Date: 2007-11-12 15:57:56 -0500 (Mon, 12 Nov 2007)
New Revision: 8887

Modified:
   branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ProducerInfoTestCase.java
   branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java
Log:
- Test that getPortlet correctly works if there is no PortletManagement support on the producer
- Optimize WSRPPortletInfo a little by avoiding to create unnecessary (and costly) objects. In particular, changed behavior: if info is not present in WSRP, do not create empty data in MetaInfo.

Modified: branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ProducerInfoTestCase.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ProducerInfoTestCase.java	2007-11-12 18:28:53 UTC (rev 8886)
+++ branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/test/wsrp/consumer/ProducerInfoTestCase.java	2007-11-12 20:57:56 UTC (rev 8887)
@@ -365,4 +365,4 @@
             + " is not a valid value for " + PROP_NAME, null);
       }
    }
-}
+}
\ No newline at end of file

Modified: branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java
===================================================================
--- branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java	2007-11-12 18:28:53 UTC (rev 8886)
+++ branches/JBoss_Portal_Branch_2_6/wsrp/src/main/org/jboss/portal/wsrp/consumer/portlet/info/WSRPPortletInfo.java	2007-11-12 20:57:56 UTC (rev 8887)
@@ -59,7 +59,7 @@
 public class WSRPPortletInfo implements org.jboss.portal.portlet.info.PortletInfo
 {
 
-   private CapabilitiesInfo capabilities;
+   private WSRPCapabilitiesInfo capabilities;
    private MetaInfo metaInfo;
    private boolean usesMethodGet;
    private boolean defaultMarkupSecure;
@@ -144,8 +144,8 @@
                   {
                      PropertyDescription desc = descs[i];
                      String key = desc.getName();
-                     prefInfos.put(key, new WSRPPreferenceInfo(key, createPortalLocalizedStringFrom(desc.getLabel()),
-                        createPortalLocalizedStringFrom(desc.getHint())));
+                     prefInfos.put(key, new WSRPPreferenceInfo(key, getPortalLocalizedStringOrNullFrom(desc.getLabel()),
+                        getPortalLocalizedStringOrNullFrom(desc.getHint())));
                   }
                }
                else
@@ -252,31 +252,28 @@
    {
       final MarkupType[] markupTypes = portletDescription.getMarkupTypes();
       final Map mimeTypes = new HashMap(markupTypes.length);
-      final Set modes = new HashSet();
-      final Set windowStates = new HashSet();
-      final Set locales = new HashSet();
+      capabilities = new WSRPCapabilitiesInfo();
 
-      for (int i = 0; i < markupTypes.length; i++)
+      for (MarkupType markupType : markupTypes)
       {
-         MarkupType markupType = markupTypes[i];
          String mimeType = markupType.getMimeType();
          MIMETypeInfo mimeTypeInfo = new MIMETypeInfo(markupType);
          mimeTypes.put(mimeType, mimeTypeInfo);
-         modes.addAll(mimeTypeInfo.modes);
-         windowStates.addAll(mimeTypeInfo.windowStates);
-         locales.addAll(mimeTypeInfo.locales);
+         capabilities.addModes(mimeTypeInfo.modes);
+         capabilities.addWindowStates(mimeTypeInfo.windowStates);
+         capabilities.addLocales(mimeTypeInfo.locales);
       }
 
-      capabilities = new WSRPCapabilitiesInfo(mimeTypes, modes, windowStates, locales);
+      capabilities.setMimeTypes(mimeTypes);
    }
 
    private void createMetaInfo(PortletDescription portletDescription)
    {
       final Map metaInfos = new HashMap();
-      metaInfos.put(MetaInfo.DESCRIPTION, createPortalLocalizedStringFrom(portletDescription.getDescription()));
-      metaInfos.put(MetaInfo.DISPLAY_NAME, createPortalLocalizedStringFrom(portletDescription.getDisplayName()));
-      metaInfos.put(MetaInfo.SHORT_TITLE, createPortalLocalizedStringFrom(portletDescription.getShortTitle()));
-      metaInfos.put(MetaInfo.TITLE, createPortalLocalizedStringFrom(portletDescription.getTitle()));
+      metaInfos.put(MetaInfo.DESCRIPTION, getPortalLocalizedStringOrNullFrom(portletDescription.getDescription()));
+      metaInfos.put(MetaInfo.DISPLAY_NAME, getPortalLocalizedStringOrNullFrom(portletDescription.getDisplayName()));
+      metaInfos.put(MetaInfo.SHORT_TITLE, getPortalLocalizedStringOrNullFrom(portletDescription.getShortTitle()));
+      metaInfos.put(MetaInfo.TITLE, getPortalLocalizedStringOrNullFrom(portletDescription.getTitle()));
 
       // keywords need to be concatenated
       LocalizedString[] keywords = portletDescription.getKeywords();
@@ -308,15 +305,15 @@
       metaInfo = new WSRPMetaInfo(metaInfos);
    }
 
-   private org.jboss.portal.common.i18n.LocalizedString createPortalLocalizedStringFrom(LocalizedString wsrpLocalizedString)
+   private org.jboss.portal.common.i18n.LocalizedString getPortalLocalizedStringOrNullFrom(LocalizedString wsrpLocalizedString)
    {
-      if (wsrpLocalizedString == null)
+      if (wsrpLocalizedString != null)
       {
-         return new org.jboss.portal.common.i18n.LocalizedString(Locale.ENGLISH);
+         return new org.jboss.portal.common.i18n.LocalizedString(wsrpLocalizedString.getValue(),
+            WSRPUtils.getLocale(wsrpLocalizedString.getLang()));
       }
 
-      return new org.jboss.portal.common.i18n.LocalizedString(wsrpLocalizedString.getValue(),
-         WSRPUtils.getLocale(wsrpLocalizedString.getLang()));
+      return null;
    }
 
    class MIMETypeInfo
@@ -414,11 +411,20 @@
 
    private class WSRPCapabilitiesInfo implements CapabilitiesInfo
    {
-      private final Map mimeTypes;
-      private final Set modes;
-      private final Set windowStates;
-      private final Set locales;
+      private Map mimeTypes;
+      private Set modes;
+      private Set windowStates;
+      private Set locales;
 
+      private WSRPCapabilitiesInfo()
+      {
+      }
+
+      private void setMimeTypes(Map mimeTypes)
+      {
+         this.mimeTypes = mimeTypes;
+      }
+
       public WSRPCapabilitiesInfo(Map mimeTypes, Set modes, Set windowStates, Set locales)
       {
          this.mimeTypes = mimeTypes;
@@ -479,6 +485,57 @@
 
          return Collections.unmodifiableSet(mimeTypeInfo.locales);
       }
+
+      private void addModes(Set modes)
+      {
+         if (modes != null)
+         {
+            int size = modes.size();
+            if (size != 0)
+            {
+               if (this.modes == null)
+               {
+                  this.modes = new HashSet(size);
+               }
+
+               this.modes.addAll(modes);
+            }
+         }
+      }
+
+      private void addWindowStates(Set windowStates)
+      {
+         if (windowStates != null)
+         {
+            int size = windowStates.size();
+            if (size != 0)
+            {
+               if (this.windowStates == null)
+               {
+                  this.windowStates = new HashSet(size);
+               }
+
+               this.windowStates.addAll(windowStates);
+            }
+         }
+      }
+
+      private void addLocales(Set locales)
+      {
+         if (locales != null)
+         {
+            int size = locales.size();
+            if (size != 0)
+            {
+               if (this.locales == null)
+               {
+                  this.locales = new HashSet(size);
+               }
+
+               this.locales.addAll(locales);
+            }
+         }
+      }
    }
 
    private static class WSRPMetaInfo implements MetaInfo




More information about the portal-commits mailing list