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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]