[jboss-cvs] jboss-portal/core/src/main/org/jboss/portal/core/metadata ...

Julien Viet julien at jboss.com
Wed Jul 12 05:29:54 EDT 2006


  User: julien  
  Date: 06/07/12 05:29:54

  Modified:    core/src/main/org/jboss/portal/core/metadata  
                        InstanceMetaData.java InstancesMetaData.java
  Log:
  - encode properly meta parameter in a URL
  - take prefs metadata for instances and use them to personalize the portlet to instantiate
  
  Revision  Changes    Path
  1.29      +86 -6     jboss-portal/core/src/main/org/jboss/portal/core/metadata/InstanceMetaData.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: InstanceMetaData.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/metadata/InstanceMetaData.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -b -r1.28 -r1.29
  --- InstanceMetaData.java	10 Jul 2006 22:51:45 -0000	1.28
  +++ InstanceMetaData.java	12 Jul 2006 09:29:54 -0000	1.29
  @@ -39,6 +39,7 @@
   import org.jboss.portal.security.SecurityConstants;
   import org.jboss.portal.security.metadata.SecurityConstraintsMetaData;
   import org.w3c.dom.Element;
  +import org.apache.log4j.Logger;
    
   import java.util.Iterator;
   import java.util.Map;
  @@ -49,10 +50,14 @@
    * Represent metadata of an instance.
    *
    * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
  - * @version $Revision: 1.28 $
  + * @version $Revision: 1.29 $
    */
   public class InstanceMetaData implements MetaData
   {
  +
  +   /** The logger. */
  +   private static final Logger log = Logger.getLogger(InstanceMetaData.class);
  +
      /** The instance id. */
      private String id;
   
  @@ -111,8 +116,8 @@
   
      public static InstanceMetaData buildMetaData(Element instanceElt)
      {
  -      String instanceName = XML.asString(XML.getUniqueChild(instanceElt, "instance-name", true));
  -      String componentRef = XML.asString(XML.getUniqueChild(instanceElt, "component-ref", true));
  +      String instanceName = XML.asString(XML.getUniqueChild(instanceElt, "instance-id", true));
  +      String componentRef = XML.asString(XML.getUniqueChild(instanceElt, "portlet-ref", true));
   
         // Configure preferences override
         PreferencesMetaData preferencesMD = new PreferencesMetaData();
  @@ -144,6 +149,81 @@
         return instanceMD;
      }
   
  +   /**
  +    * @param instanceElt the instance xml element
  +    * @param pwaId the portlet application id
  +    */
  +   public static InstanceMetaData buildLegacyMetaData(Element instanceElt, String pwaId)
  +   {
  +      Element instanceNameElt = XML.getUniqueChild(instanceElt, "instance-name", true);
  +      Element componentRefElt = XML.getUniqueChild(instanceElt, "component-ref", true);
  +
  +      //
  +      String instanceName = XML.asString(instanceNameElt);
  +      String componentRef = XML.asString(componentRefElt);
  +
  +      //
  +      int dotIndex = componentRef.indexOf('.');
  +
  +      //
  +      if (dotIndex == -1)
  +      {
  +         log.warn("Bad component ref " + componentRef);
  +      }
  +      else
  +      {
  +         String appId = componentRef.substring(0, dotIndex);
  +         if (appId.equals(pwaId) == false)
  +         {
  +            log.warn("The instance " + instanceName + " will not be created because the component referenced is outside of the same web app " + componentRef);
  +         }
  +         else
  +         {
  +            String portletRef = componentRef.substring(dotIndex + 1);
  +
  +            if (portletRef.length() == 0)
  +            {
  +               log.warn("Zero portlet ref length are not considered " + componentRef);
  +            }
  +            else
  +            {
  +               log.debug("Adding legacy instance " + instanceName);
  +
  +               //
  +               InstanceMetaData instanceMD = new InstanceMetaData();
  +               instanceMD.setId(instanceName);
  +               instanceMD.setPortletRef(portletRef);
  +
  +               // Configure preferences
  +               PreferencesMetaData preferencesMD = new PreferencesMetaData();
  +               Element preferencesElt = XML.getUniqueChild(instanceElt, "preferences", false);
  +               if (preferencesElt != null)
  +               {
  +                  for (Iterator j = InstanceMetaData.buildPreferencesMetaData(preferencesElt).values().iterator();j.hasNext();)
  +                  {
  +                     PreferenceMetaData preferenceMD = (PreferenceMetaData)j.next();
  +                     preferencesMD.addPreference(preferenceMD);
  +                  }
  +               }
  +
  +               // Add the security constraints
  +               Element securityConstraintElt = XML.getUniqueChild(instanceElt, "security-constraint", false);
  +               if (securityConstraintElt != null)
  +               {
  +                  SecurityConstraintsMetaData securityConstraintsMD = SecurityConstraintsMetaData.buildSecurityConstraintMetaData(securityConstraintElt);
  +                  instanceMD.setSecurityConstraints(securityConstraintsMD);
  +               }
  +
  +               //
  +               return instanceMD;
  +            }
  +         }
  +      }
  +
  +      //
  +      return null;
  +   }
  +
      public static Map buildPreferencesMetaData(Element portletPreferencesElt)
      {
         Map preferences = new HashMap();
  @@ -205,8 +285,8 @@
         // Create the instance
         Instance instance = instanceContainer.createInstance(id, resolvedRef);
   
  -      // Configure preferences
  -      if (preferences != null)
  +      // Configure preferences only if needed
  +      if (preferences != null && preferences.size() > 0)
         {
            ValueMap prefs = new SimpleValueMap();
            for (Iterator i = preferences.iterator();i.hasNext();)
  
  
  
  1.14      +1 -14     jboss-portal/core/src/main/org/jboss/portal/core/metadata/InstancesMetaData.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: InstancesMetaData.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-portal/core/src/main/org/jboss/portal/core/metadata/InstancesMetaData.java,v
  retrieving revision 1.13
  retrieving revision 1.14
  diff -u -b -r1.13 -r1.14
  --- InstancesMetaData.java	26 May 2006 14:12:53 -0000	1.13
  +++ InstancesMetaData.java	12 Jul 2006 09:29:54 -0000	1.14
  @@ -34,7 +34,7 @@
   
   /**
    * @author <a href="mailto:julien at jboss.org">Julien Viet</a>
  - * @version $Revision: 1.13 $
  + * @version $Revision: 1.14 $
    */
   public class InstancesMetaData
   {
  @@ -62,19 +62,6 @@
         String resolvePortletRef(String ref);
      }
   
  -   public static InstancesMetaData buildInstancesMD(Element instancesElt)
  -   {
  -      InstancesMetaData instancesMD = new InstancesMetaData();
  -      List instanceElts = XML.getChildren(instancesElt, "instance");
  -      for (int i = 0;i < instanceElts.size();i++)
  -      {
  -         Element instanceElt = (Element)instanceElts.get(i);
  -         InstanceMetaData instanceMD = InstanceMetaData.buildMetaData(instanceElt);
  -         instancesMD.getInstances().put(instanceMD.getId(), instanceMD);
  -      }
  -      return instancesMD;
  -   }
  -
      public void destroy(InstanceContainer container)
      {
         for (Iterator i = instances.values().iterator(); i.hasNext();)
  
  
  



More information about the jboss-cvs-commits mailing list