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