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 we...@apache.org on 2004/06/18 22:48:23 UTC

cvs commit: jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/util/descriptor PortletRule.java PortletApplicationRule.java PortletApplicationRuleSet.java PortletPreferenceRule.java PortletPreferenceRuleSet.java PortletApplicationDescriptor.java

weaver      2004/06/18 13:48:23

  Modified:    portal/src/java/org/apache/jetspeed/util/descriptor
                        PortletApplicationDescriptor.java
  Added:       portal/src/java/org/apache/jetspeed/util/descriptor
                        PortletRule.java PortletApplicationRule.java
                        PortletApplicationRuleSet.java
                        PortletPreferenceRule.java
                        PortletPreferenceRuleSet.java
  Log:
  cleaned up PorletApplicationDescriptor by implementing custom Rules and RuleSets
  
  Revision  Changes    Path
  1.3       +14 -18    jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/util/descriptor/PortletApplicationDescriptor.java
  
  Index: PortletApplicationDescriptor.java
  ===================================================================
  RCS file: /home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/util/descriptor/PortletApplicationDescriptor.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- PortletApplicationDescriptor.java	11 Jun 2004 20:02:52 -0000	1.2
  +++ PortletApplicationDescriptor.java	18 Jun 2004 20:48:23 -0000	1.3
  @@ -34,8 +34,6 @@
   import org.apache.jetspeed.om.impl.UserAttributeImpl;
   import org.apache.jetspeed.om.portlet.impl.ContentTypeImpl;
   import org.apache.jetspeed.om.portlet.impl.PortletApplicationDefinitionImpl;
  -import org.apache.jetspeed.om.portlet.impl.PortletDefinitionImpl;
  -import org.apache.jetspeed.om.preference.impl.DefaultPreferenceImpl;
   import org.apache.jetspeed.tools.pamanager.PortletApplicationException;
   import org.apache.pluto.om.common.SecurityRoleRef;
   import org.apache.pluto.om.common.SecurityRoleRefSet;
  @@ -81,16 +79,21 @@
               // TODO move config to digester-rules.xml. Example: http://www.onjava.com/pub/a/onjava/2002/10/23/digester.html?page=3
               Digester digester = new Digester();
               digester.setValidating(false);
  -            digester.addObjectCreate("portlet-app", PortletApplicationDefinitionImpl.class);
  +                       
  +            // digester.addRuleSet(new PortletApplicationRuleSet(appName));
  +            
  +            digester.addRule("portlet-app", new PortletApplicationRule(appName));
               digester.addSetProperties("portlet-app", "id", "applicationIdentifier");
   
  -            digester.addObjectCreate("portlet-app/portlet", PortletDefinitionImpl.class);
  +
  +            digester.addRule("portlet-app/portlet", new PortletRule());
  +            
               digester.addSetProperties("portlet-app/portlet", "id", "portletIdentifier");
               digester.addBeanPropertySetter("portlet-app/portlet/portlet-name", "name");
               digester.addBeanPropertySetter("portlet-app/portlet/portlet-class", "className");
               digester.addBeanPropertySetter("portlet-app/portlet/expiration-cache", "expirationCache");
  -            digester.addSetNext("portlet-app/portlet", "addPortletDefinition");
  -
  +           
  +            
               digester.addObjectCreate("portlet-app/portlet/display-name", PortletDisplayNameImpl.class);
               digester.addSetProperties("portlet-app/portlet/display-name", "lang", "language");
               digester.addBeanPropertySetter("portlet-app/portlet/display-name", "displayName");
  @@ -121,16 +124,9 @@
               digester.addBeanPropertySetter("portlet-app/portlet/portlet-info/short-title", "shortTitle");
               digester.addCallMethod("portlet-app/portlet/portlet-info/keywords", "setKeywords", 0, new Class[]{String.class});
               digester.addSetNext("portlet-app/portlet/portlet-info", "addLanguage");
  +            
  +            digester.addRuleSet(new PortletPreferenceRuleSet());
   
  -            digester.addObjectCreate("portlet-app/portlet/portlet-preferences/preference", DefaultPreferenceImpl.class);
  -            digester.addBeanPropertySetter("portlet-app/portlet/portlet-preferences/preference/name", "name");
  -            digester.addCallMethod("portlet-app/portlet/portlet-preferences/preference/value", "addValue", 0);
  -            digester.addCallMethod(
  -                "portlet-app/portlet/portlet-preferences/preference/read-only",
  -                "setReadOnly",
  -                0,
  -                new Class[] { Boolean.class });
  -            digester.addSetNext("portlet-app/portlet/portlet-preferences/preference", "addPreference");
               
               digester.addObjectCreate("portlet-app/user-attribute", UserAttributeImpl.class);
               digester.addBeanPropertySetter("portlet-app/user-attribute/description", "description");
  @@ -146,10 +142,10 @@
               digester.addSetProperties("portlet-app/portlet/security-role-ref/description", "lang", "language");
               digester.addBeanPropertySetter("portlet-app/portlet/security-role-ref/description", "description");
               digester.addSetNext("portlet-app/portlet/security-role-ref/description", "addDescription");
  -
  +            
               PortletApplicationDefinitionImpl pd = (PortletApplicationDefinitionImpl) digester.parse(portletXmlReader);
   
  -            pd.setName(appName);
  +           
               if(pd.getApplicationIdentifier() == null)
               {
                   pd.setApplicationIdentifier(appName);
  
  
  
  1.1                  jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/util/descriptor/PortletRule.java
  
  Index: PortletRule.java
  ===================================================================
  /*
   * Created on Jun 18, 2004
   *
   * TODO To change the template for this generated file go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  package org.apache.jetspeed.util.descriptor;
  
  import org.apache.commons.digester.Rule;
  import org.apache.jetspeed.om.portlet.impl.PortletApplicationDefinitionImpl;
  import org.apache.jetspeed.om.portlet.impl.PortletDefinitionImpl;
  import org.xml.sax.Attributes;
  
  /**
   * @author scott
   *
   * TODO To change the template for this generated type comment go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  public class PortletRule extends Rule
  {
  
      /**
       * <p>
       * begin
       * </p>
       *
       * @see org.apache.commons.digester.Rule#begin(java.lang.String, java.lang.String, org.xml.sax.Attributes)
       * @param arg0
       * @param arg1
       * @param arg2
       * @throws java.lang.Exception
       */
      public void begin( String arg0, String arg1, Attributes arg2 ) throws Exception
      {
          PortletDefinitionImpl portlet = new PortletDefinitionImpl();
          PortletApplicationDefinitionImpl app = (PortletApplicationDefinitionImpl) digester.getRoot();
          app.addPortletDefinition(portlet);
          digester.push(portlet);
      }
      /**
       * <p>
       * end
       * </p>
       *
       * @see org.apache.commons.digester.Rule#end(java.lang.String, java.lang.String)
       * @param arg0
       * @param arg1
       * @throws java.lang.Exception
       */
      public void end( String arg0, String arg1 ) throws Exception
      {
          digester.pop();
      }
  }
  
  
  
  1.1                  jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/util/descriptor/PortletApplicationRule.java
  
  Index: PortletApplicationRule.java
  ===================================================================
  /*
   * Created on Jun 17, 2004
   *
   * TODO To change the template for this generated file go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  package org.apache.jetspeed.util.descriptor;
  
  import org.apache.commons.digester.Rule;
  import org.apache.jetspeed.om.portlet.impl.PortletApplicationDefinitionImpl;
  import org.xml.sax.Attributes;
  
  /**
   * @author scott
   *
   * TODO To change the template for this generated type comment go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  public class PortletApplicationRule extends Rule
  {
      protected String appName;
      
      public PortletApplicationRule(String appName)
      {
          this.appName = appName;
      }
  
  
      /**
       * <p>
       * begin
       * </p>
       *
       * @see org.apache.commons.digester.Rule#begin(java.lang.String, java.lang.String, org.xml.sax.Attributes)
       * @param arg0
       * @param arg1
       * @param arg2
       * @throws java.lang.Exception
       */
      public void begin( String arg0, String arg1, Attributes arg2 ) throws Exception
      {
          PortletApplicationDefinitionImpl app = new PortletApplicationDefinitionImpl();
          app.setName(appName);
          digester.push(app);        
      }
      
      
      /**
       * <p>
       * end
       * </p>
       *
       * @see org.apache.commons.digester.Rule#end(java.lang.String, java.lang.String)
       * @param arg0
       * @param arg1
       * @throws java.lang.Exception
       */
      public void end( String arg0, String arg1 ) throws Exception
      {
         // digester.pop();
      }
  }
  
  
  
  1.1                  jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/util/descriptor/PortletApplicationRuleSet.java
  
  Index: PortletApplicationRuleSet.java
  ===================================================================
  /*
   * Created on Jun 18, 2004
   *
   * TODO To change the template for this generated file go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  package org.apache.jetspeed.util.descriptor;
  
  import org.apache.commons.digester.Digester;
  import org.apache.commons.digester.RuleSetBase;
  
  /**
   * @author scott
   *
   * TODO To change the template for this generated type comment go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  public class PortletApplicationRuleSet extends RuleSetBase
  {
      protected String appName;
      
      public PortletApplicationRuleSet(String appName)
      {
          this.appName = appName;
      }
  
      /**
       * <p>
       * addRuleInstances
       * </p>
       *
       * @see org.apache.commons.digester.RuleSet#addRuleInstances(org.apache.commons.digester.Digester)
       * @param arg0
       */
      public void addRuleInstances( Digester digester )
      {
          digester.addRule("portlet-app", new PortletApplicationRule(appName));
          digester.addSetProperties("portlet-app", "id", "applicationIdentifier");
      }
  
  }
  
  
  
  1.1                  jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/util/descriptor/PortletPreferenceRule.java
  
  Index: PortletPreferenceRule.java
  ===================================================================
  /*
   * Created on Jun 17, 2004
   *
   * TODO To change the template for this generated file go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  package org.apache.jetspeed.util.descriptor;
  
  import java.util.ArrayList;
  import java.util.List;
  
  import org.apache.commons.digester.Rule;
  import org.apache.jetspeed.om.common.portlet.PortletDefinitionComposite;
  import org.apache.jetspeed.om.preference.impl.PrefsPreference;
  import org.apache.pluto.om.portlet.PortletApplicationDefinition;
  import org.xml.sax.Attributes;
  
  /**
   * @author scott
   *
   * TODO To change the template for this generated type comment go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  public class PortletPreferenceRule extends Rule
  {
      
  
      protected PortletDefinitionComposite portlet;
      
      protected String name;
      protected boolean readOnly;
      protected List values; 
   
      /**
       * <p>
       * begin
       * </p>
       *
       * @see org.apache.commons.digester.Rule#begin(java.lang.String, java.lang.String, org.xml.sax.Attributes)
       * @param arg0
       * @param arg1
       * @param arg2
       * @throws java.lang.Exception
       */
      public void begin( String arg0, String arg1, Attributes arg2 ) throws Exception
      {
          Object peeked = digester.peek();
          portlet = (PortletDefinitionComposite) peeked;
          portlet.setPortletApplicationDefinition((PortletApplicationDefinition) digester.getRoot());
          
          values = new ArrayList();
          
          TempValueObject temp = new TempValueObject();
          digester.push(temp);
      }
      /**
       * <p>
       * end
       * </p>
       *
       * @see org.apache.commons.digester.Rule#end(java.lang.String, java.lang.String)
       * @param arg0
       * @param arg1
       * @throws java.lang.Exception
       */
      public void end( String arg0, String arg1 ) throws Exception
      {       
          PrefsPreference pref = new PrefsPreference(portlet, name);
          pref.setValues(values);
          pref.setReadOnly(readOnly);
          digester.pop();
      }
      
      public class TempValueObject
      {
          public void setName(String name)
          {
              PortletPreferenceRule.this.name = name;
          }
          
          public void setReadOnly(boolean readOnly)
          {
              PortletPreferenceRule.this.readOnly = readOnly;
          }
          
          public void addValue(String value)
          {
              PortletPreferenceRule.this.values.add(value);
          }
      }
    
      /**
       * <p>
       * finish
       * </p>
       *
       * @see org.apache.commons.digester.Rule#finish()
       * @throws java.lang.Exception
       */
      public void finish() throws Exception
      {
          if(values != null)
          {
              values.clear();
          }
          super.finish();
      }
  }
  
  
  
  1.1                  jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/util/descriptor/PortletPreferenceRuleSet.java
  
  Index: PortletPreferenceRuleSet.java
  ===================================================================
  /*
   * Created on Jun 17, 2004
   *
   * TODO To change the template for this generated file go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  package org.apache.jetspeed.util.descriptor;
  
  import org.apache.commons.digester.Digester;
  import org.apache.commons.digester.RuleSetBase;
  
  /**
   * @author scott
   *
   * TODO To change the template for this generated type comment go to
   * Window - Preferences - Java - Code Generation - Code and Comments
   */
  public class PortletPreferenceRuleSet extends RuleSetBase
  {
  
    
  
      /**
       * <p>
       * addRuleInstances
       * </p>
       *
       * @see org.apache.commons.digester.RuleSet#addRuleInstances(org.apache.commons.digester.Digester)
       * @param arg0
       */
      public void addRuleInstances( Digester digester )
      {
         digester.addRule("portlet-app/portlet/portlet-preferences/preference", new PortletPreferenceRule());
         digester.addBeanPropertySetter("portlet-app/portlet/portlet-preferences/preference/name", "name");
         digester.addCallMethod("portlet-app/portlet/portlet-preferences/preference/value", "addValue", 0);
         digester.addCallMethod(
             "portlet-app/portlet/portlet-preferences/preference/read-only",
             "setReadOnly",
             0,
             new Class[] { Boolean.class });
  
      }
  
  }
  
  
  

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