You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by js...@apache.org on 2002/10/16 14:45:53 UTC
cvs commit: jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core UseBeanTag.java
jstrachan 2002/10/16 05:45:53
Modified: jelly/src/java/org/apache/commons/jelly/tags/jeez
JeezTagLibrary.java
jelly/src/java/org/apache/commons/jelly TagLibrary.java
jelly.properties
jelly/src/java/org/apache/commons/jelly/tags/define
BeanTag.java DynaBeanTag.java
jelly/src/java/org/apache/commons/jelly/impl
DefaultTagLibraryResolver.java TagScript.java
TagFactory.java DefaultTagFactory.java
DynamicTagLibrary.java StaticTagScript.java
jelly/src/test/org/apache/commons/jelly/ant suite.jelly
jelly/src/java/org/apache/commons/jelly/tags/swing
SwingTagLibrary.java ConstraintTag.java
jelly/src/java/org/apache/commons/jelly/parser
XMLParser.java
jelly/src/java/org/apache/commons/jelly/tags/ant
AntTagLibrary.java
jelly/src/test/org/apache/commons/jelly/impl
TestTagLibraryResolver.java
jelly/src/java/org/apache/commons/jelly/tags/core
UseBeanTag.java
Log:
Patch so that the internal TagFactory used by TagLibrary objects to create Tag instances now takes the name and XML attributes.
This makes support for dynamically created tags, like with Ant, a little easier to support as now a TagLibrary can just directly register a TagFactory.
Revision Changes Path
1.9 +10 -10 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/jeez/JeezTagLibrary.java
Index: JeezTagLibrary.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/jeez/JeezTagLibrary.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- JeezTagLibrary.java 3 Oct 2002 18:14:43 -0000 1.8
+++ JeezTagLibrary.java 16 Oct 2002 12:45:51 -0000 1.9
@@ -114,7 +114,7 @@
if ( name.equals( "tagdef" ) ) {
return new TagScript(
new TagFactory() {
- public Tag createTag() {
+ public Tag createTag(String name, Attributes attributes) {
return new TagDefTag( JeezTagLibrary.this );
}
}
@@ -123,7 +123,7 @@
if ( name.equals( "target" ) ) {
return new TagScript(
new TagFactory() {
- public Tag createTag() {
+ public Tag createTag(String name, Attributes attributes) {
return new TargetTag();
}
}
@@ -135,14 +135,14 @@
if ( script == null ) {
return new TagScript(
new TagFactory() {
- public Tag createTag() throws Exception {
+ public Tag createTag(String name, Attributes attributes) throws Exception {
// lets try create a dynamic tag first
- Tag tag = JeezTagLibrary.this.createTag(name);
+ Tag tag = JeezTagLibrary.this.createTag(name, attributes);
if ( tag != null ) {
return tag;
}
else {
- return antTagLib.createTag( name );
+ return antTagLib.createTag( name, attributes );
}
}
}
1.15 +36 -12 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/TagLibrary.java
Index: TagLibrary.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/TagLibrary.java,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- TagLibrary.java 24 Sep 2002 16:49:40 -0000 1.14
+++ TagLibrary.java 16 Oct 2002 12:45:51 -0000 1.15
@@ -73,6 +73,7 @@
import org.apache.commons.jelly.expression.ConstantExpression;
import org.apache.commons.jelly.expression.Expression;
import org.apache.commons.jelly.expression.ExpressionFactory;
+import org.apache.commons.jelly.impl.TagFactory;
import org.apache.commons.jelly.impl.TagScript;
import org.xml.sax.Attributes;
@@ -109,16 +110,21 @@
}
public TagLibrary() {
-
}
/** Creates a new script to execute the given tag name and attributes */
public TagScript createTagScript(String name, Attributes attributes)
throws Exception {
- Class type = (Class) tags.get(name);
- if ( type != null ) {
- return TagScript.newInstance(type);
+ Object value = tags.get(name);
+ if (value instanceof Class) {
+ Class type = (Class) value;
+ if ( type != null ) {
+ return TagScript.newInstance(type);
+ }
+ }
+ else if (value instanceof TagFactory) {
+ return new TagScript( (TagFactory) value );
}
return null;
@@ -128,15 +134,24 @@
public Tag createTag(String name, Attributes attributes)
throws Exception {
+ Object value = tags.get(name);
+ if (value instanceof Class) {
+ Class type = (Class) value;
+ if ( type != null ) {
+ return (Tag) type.newInstance();
+ }
+ }
+ else if (value instanceof TagFactory) {
+ TagFactory factory = (TagFactory) value;
+ return factory.createTag(name, attributes);
+ }
Class type = (Class) tags.get(name);
if ( type != null ) {
return (Tag) type.newInstance();
}
return null;
-
}
-
/** Allows taglibs to use their own expression evaluation mechanism */
public Expression createExpression(
ExpressionFactory factory,
@@ -161,9 +176,18 @@
// Implementation methods
//-------------------------------------------------------------------------
- /** Registers a tag class for a given tag name */
+ /**
+ * Registers a tag implementation Class for a given tag name
+ */
protected void registerTag(String name, Class type) {
tags.put(name, type);
+ }
+
+ /**
+ * Registers a tag factory for a given tag name
+ */
+ protected void registerTagFactory(String name, TagFactory tagFactory) {
+ tags.put(name, tagFactory);
}
/** Allows derived tag libraries to use their own factory */
1.26 +1 -0 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/jelly.properties
Index: jelly.properties
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/jelly.properties,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- jelly.properties 10 Oct 2002 22:19:18 -0000 1.25
+++ jelly.properties 16 Oct 2002 12:45:51 -0000 1.26
@@ -10,6 +10,7 @@
jeez = org.apache.commons.jelly.tags.jeez.JeezTagLibrary
util = org.apache.commons.jelly.tags.util.UtilTagLibrary
junit = org.apache.commons.jelly.tags.junit.JUnitTagLibrary
+bean = org.apache.commons.jelly.tags.bean.BeanTagLibrary
dynabean = org.apache.commons.jelly.tags.dynabean.DynabeanTagLibrary
# optional taglibs
1.10 +2 -1 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/define/BeanTag.java
Index: BeanTag.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/define/BeanTag.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- BeanTag.java 28 Aug 2002 09:19:30 -0000 1.9
+++ BeanTag.java 16 Oct 2002 12:45:51 -0000 1.10
@@ -77,6 +77,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.xml.sax.Attributes;
/**
* Binds a Java bean to the given named Jelly tag so that the attributes of
@@ -159,7 +160,7 @@
final Map beanAttributes = (attributes != null) ? attributes : EMPTY_MAP;
TagFactory factory = new TagFactory() {
- public Tag createTag() {
+ public Tag createTag(String name, Attributes attributes) {
return new DynamicBeanTag(beanClass, beanAttributes, varAttribute, invokeMethod);
}
};
1.2 +2 -1 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/define/DynaBeanTag.java
Index: DynaBeanTag.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/define/DynaBeanTag.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DynaBeanTag.java 28 Aug 2002 09:19:30 -0000 1.1
+++ DynaBeanTag.java 16 Oct 2002 12:45:51 -0000 1.2
@@ -79,6 +79,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.xml.sax.Attributes;
/**
* Binds a Java bean to the given named Jelly tag so that the attributes of
@@ -133,7 +134,7 @@
final Map beanAttributes = (attributes != null) ? attributes : EMPTY_MAP;
TagFactory factory = new TagFactory() {
- public Tag createTag() {
+ public Tag createTag(String name, Attributes attributes) {
return new DynamicDynaBeanTag(theDynaClass, beanAttributes, varAttribute);
}
};
1.3 +20 -3 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/DefaultTagLibraryResolver.java
Index: DefaultTagLibraryResolver.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/DefaultTagLibraryResolver.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DefaultTagLibraryResolver.java 10 Oct 2002 22:17:04 -0000 1.2
+++ DefaultTagLibraryResolver.java 16 Oct 2002 12:45:52 -0000 1.3
@@ -60,6 +60,8 @@
import org.apache.commons.discovery.ResourceClassIterator;
import org.apache.commons.discovery.resource.ClassLoaders;
import org.apache.commons.discovery.resource.classes.DiscoverClasses;
+import org.apache.commons.discovery.tools.DiscoverClass;
+import org.apache.commons.discovery.tools.DiscoverSingleton;
import org.apache.commons.jelly.TagLibrary;
@@ -119,7 +121,24 @@
}
log.info( "Looking up service name: " + name );
+
+/*
+ ClassLoaders loaders = ClassLoaders.getAppLoaders(TagLibrary.class, getClass(), false);
+ DiscoverClass discover = new DiscoverClass(loaders);
+ Class implClass = discover.find(TestInterface2.class);
+
+
+
+ TagLibrary answer = null;
+ try {
+ answer = (TagLibrary) DiscoverSingleton.find(TagLibrary.class, name);
+ }
+ catch (Exception e) {
+ log.error( "Could not load service: " + name );
+ }
+ return answer;
+*/
ResourceClassIterator iter = discovery.findResourceClasses(name);
while (iter.hasNext()) {
ResourceClass resource = iter.nextResourceClass();
@@ -200,10 +219,8 @@
*/
public DiscoverClasses getDiscoverClasses() {
if ( discovery == null ) {
- ClassLoaders loaders = new ClassLoaders();
- loaders.put( getClassLoader() );
+ ClassLoaders loaders = ClassLoaders.getAppLoaders(TagLibrary.class, getClass(), false);
discovery = new DiscoverClasses(loaders);
- discovery.addClassLoader( getClassLoader() );
}
return discovery;
}
1.23 +48 -9 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/TagScript.java
Index: TagScript.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/TagScript.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- TagScript.java 8 Oct 2002 20:22:13 -0000 1.22
+++ TagScript.java 16 Oct 2002 12:45:52 -0000 1.23
@@ -90,6 +90,7 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.xml.sax.Attributes;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
@@ -126,9 +127,12 @@
/** the Jelly file which caused the problem */
private String fileName;
- /** the tag name which caused the problem */
+ /** the qualified element name which caused the problem */
private String elementName;
+ /** the local (non-namespaced) tag name */
+ private String localName;
+
/** the line number of the tag */
private int lineNumber = -1;
@@ -143,7 +147,10 @@
/** the parent TagScript */
private TagScript parent;
-
+
+ /** the SAX attributes */
+ private Attributes saxAttributes;
+
/**
* @return a new TagScript based on whether
* the given Tag class is a bean tag or DynaTag
@@ -397,6 +404,39 @@
public void setColumnNumber(int columnNumber) {
this.columnNumber = columnNumber;
}
+
+ /**
+ * Returns the SAX attributes of this tag
+ * @return Attributes
+ */
+ public Attributes getSaxAttributes() {
+ return saxAttributes;
+ }
+
+ /**
+ * Sets the SAX attributes of this tag
+ * @param saxAttributes The saxAttributes to set
+ */
+ public void setSaxAttributes(Attributes saxAttributes) {
+ this.saxAttributes = saxAttributes;
+ }
+
+ /**
+ * Returns the local, non namespaced XML name of this tag
+ * @return String
+ */
+ public String getLocalName() {
+ return localName;
+ }
+
+ /**
+ * Sets the local, non namespaced name of this tag.
+ * @param localName The localName to set
+ */
+ public void setLocalName(String localName) {
+ this.localName = localName;
+ }
+
// Implementation methods
//-------------------------------------------------------------------------
@@ -407,7 +447,7 @@
*/
protected Tag createTag() throws Exception {
if ( tagFactory != null) {
- return tagFactory.createTag();
+ return tagFactory.createTag(localName, getSaxAttributes());
}
return null;
}
@@ -563,5 +603,4 @@
throw new JellyException(e, fileName, elementName, columnNumber, lineNumber);
}
-
}
1.2 +6 -2 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/TagFactory.java
Index: TagFactory.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/TagFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TagFactory.java 1 Aug 2002 09:53:17 -0000 1.1
+++ TagFactory.java 16 Oct 2002 12:45:52 -0000 1.2
@@ -61,9 +61,10 @@
*/
package org.apache.commons.jelly.impl;
-
import org.apache.commons.jelly.Tag;
+import org.xml.sax.Attributes;
+
/**
* <p><code>TagFactory</code> represents a Factory of {@link Tag} instances.</p>
*
@@ -75,5 +76,8 @@
*/
public interface TagFactory {
- public Tag createTag() throws Exception;
+ /**
+ * Creates a Tag for the given local name and the SAX attributes
+ */
+ public Tag createTag(String name, Attributes attributes) throws Exception;
}
1.2 +3 -2 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/DefaultTagFactory.java
Index: DefaultTagFactory.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/DefaultTagFactory.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DefaultTagFactory.java 1 Aug 2002 09:53:17 -0000 1.1
+++ DefaultTagFactory.java 16 Oct 2002 12:45:52 -0000 1.2
@@ -63,6 +63,8 @@
import org.apache.commons.jelly.Tag;
+import org.xml.sax.Attributes;
+
/**
* <p><code>DefaultTagFactory</code> a default implementation of TagFactory
* which creates new instances of a given class.
@@ -83,8 +85,7 @@
// TagFactory interface
//-------------------------------------------------------------------------
-
- public Tag createTag() throws Exception {
+ public Tag createTag(String name, Attributes attributes) throws Exception {
return (Tag) tagClass.newInstance();
}
1.5 +4 -4 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/DynamicTagLibrary.java
Index: DynamicTagLibrary.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/DynamicTagLibrary.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- DynamicTagLibrary.java 3 Oct 2002 18:14:43 -0000 1.4
+++ DynamicTagLibrary.java 16 Oct 2002 12:45:52 -0000 1.5
@@ -97,8 +97,8 @@
return new TagScript(
new TagFactory() {
- public Tag createTag() throws Exception {
- Tag answer = DynamicTagLibrary.this.createTag(name);
+ public Tag createTag(String name, Attributes attributes) throws Exception {
+ Tag answer = DynamicTagLibrary.this.createTag(name, attributes);
// delegate to my parent instead
if ( answer == null && parent != null ) {
@@ -111,7 +111,7 @@
}
/** Creates a new Tag for the given tag name if it exists */
- public Tag createTag(String name)
+ public Tag createTag(String name, Attributes attributes)
throws Exception {
Object value = templates.get(name);
@@ -121,7 +121,7 @@
}
else if ( value instanceof TagFactory ) {
TagFactory factory = (TagFactory) value;
- return factory.createTag();
+ return factory.createTag(name, attributes);
}
return null;
}
1.10 +1 -1 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/StaticTagScript.java
Index: StaticTagScript.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/impl/StaticTagScript.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- StaticTagScript.java 3 Oct 2002 18:14:43 -0000 1.9
+++ StaticTagScript.java 16 Oct 2002 12:45:52 -0000 1.10
@@ -154,7 +154,7 @@
TagLibrary taglib = context.getTagLibrary( tag.getUri() );
if ( taglib instanceof DynamicTagLibrary ) {
DynamicTagLibrary dynaLib = (DynamicTagLibrary) taglib;
- Tag newTag = dynaLib.createTag( tag.getLocalName() );
+ Tag newTag = dynaLib.createTag( tag.getLocalName(), getSaxAttributes() );
if ( newTag != null ) {
newTag.setParent( tag.getParent() );
newTag.setBody( tag.getBody() );
1.3 +10 -10 jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/ant/suite.jelly
Index: suite.jelly
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/ant/suite.jelly,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- suite.jelly 23 Sep 2002 12:35:42 -0000 1.2
+++ suite.jelly 16 Oct 2002 12:45:52 -0000 1.3
@@ -6,26 +6,26 @@
<j:set var="dir" value="target/test-classes/org/apache/commons/jelly/ant"/>
-<test:case name="readWrite">
-
- <j:set var="foo1" value="bar1"/>
+<test:case name="write">
- <ant:property name="foo1.1" value="${foo1}"/>
+ <ant:property name="foo2" value="bar2"/>
<test:assertEquals
- expected="bar1"
- actual="${foo1.1}"
+ expected="bar2"
+ actual="${foo2}"
/>
</test:case>
-<test:case name="write">
+<test:case name="readWrite">
+
+ <j:set var="foo1" value="bar1"/>
- <ant:property name="foo2" value="bar2"/>
+ <ant:property name="foo1.1" value="${foo1}"/>
<test:assertEquals
- expected="bar2"
- actual="${foo2}"
+ expected="bar1"
+ actual="${foo1.1}"
/>
</test:case>
1.13 +2 -2 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/swing/SwingTagLibrary.java
Index: SwingTagLibrary.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/swing/SwingTagLibrary.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- SwingTagLibrary.java 3 Oct 2002 18:14:43 -0000 1.12
+++ SwingTagLibrary.java 16 Oct 2002 12:45:52 -0000 1.13
@@ -147,9 +147,9 @@
if ( factory != null ) {
return new TagScript(
new TagFactory() {
- public Tag createTag() throws Exception {
+ public Tag createTag(String name, Attributes attributes) throws Exception {
if ( factory instanceof TagFactory ) {
- return ((TagFactory) factory).createTag();
+ return ((TagFactory) factory).createTag(name, attributes);
}
else {
return new ComponentTag(factory);
1.3 +2 -2 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/swing/ConstraintTag.java
Index: ConstraintTag.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/swing/ConstraintTag.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ConstraintTag.java 3 Oct 2002 18:14:43 -0000 1.2
+++ ConstraintTag.java 16 Oct 2002 12:45:52 -0000 1.3
@@ -55,7 +55,7 @@
public static class HereFactory extends BeanFactory implements TagFactory {
public HereFactory(Class c) { super(c); }
- public Tag createTag ( ) {
+ public Tag createTag(String name, Attributes attributes) {
return new ConstraintTag ( this );
// still scratching my head about "this" usage...
}
@@ -64,7 +64,7 @@
public ConstantFactory(Object c) { this.constant = c;}
private Object constant;
public Object newInstance() { return constant; }
- public Tag createTag ( ) throws Exception {
+ public Tag createTag(String name, Attributes attributes) throws Exception {
return new ConstraintTag ( this );
}
} // class ConstatnStringFactory
1.33 +11 -7 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/parser/XMLParser.java
Index: XMLParser.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/parser/XMLParser.java,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- XMLParser.java 14 Oct 2002 19:46:22 -0000 1.32
+++ XMLParser.java 16 Oct 2002 12:45:52 -0000 1.33
@@ -116,6 +116,7 @@
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;
import org.xml.sax.XMLReader;
+import org.xml.sax.helpers.AttributesImpl;
/** <p><code>XMLParser</code> parses the XML Jelly format.
* The SAXParser and XMLReader portions of this code come from Digester.</p>
@@ -628,6 +629,7 @@
// sets the file name element names
tagScript.setFileName(fileName);
tagScript.setElementName(qName);
+ tagScript.setLocalName(localName);
if (textBuffer.length() > 0) {
addTextScript(textBuffer.toString());
@@ -1003,6 +1005,9 @@
if (taglib != null) {
TagScript script = taglib.createTagScript(localName, list);
if ( script != null ) {
+ // clone the attributes to keep them around after this parse
+ script.setSaxAttributes(new AttributesImpl(list));
+
// now iterate through through the expressions
int size = list.getLength();
for (int i = 0; i < size; i++) {
@@ -1051,7 +1056,7 @@
StaticTag tag = new StaticTag( namespaceURI, localName, qName );
StaticTagScript script = new StaticTagScript(
new TagFactory() {
- public Tag createTag() {
+ public Tag createTag(String name, Attributes attributes) {
return new StaticTag( namespaceURI, localName, qName );
}
}
@@ -1120,7 +1125,6 @@
script.addScript(new ExpressionScript(expression));
}
}
-
protected Expression createConstantExpression(
String tagName,
1.24 +9 -8 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/ant/AntTagLibrary.java
Index: AntTagLibrary.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/ant/AntTagLibrary.java,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -r1.23 -r1.24
--- AntTagLibrary.java 3 Oct 2002 18:14:44 -0000 1.23
+++ AntTagLibrary.java 16 Oct 2002 12:45:53 -0000 1.24
@@ -71,12 +71,14 @@
import org.apache.commons.jelly.impl.TagScript;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+
import org.apache.tools.ant.BuildLogger;
import org.apache.tools.ant.NoBannerLogger;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.taskdefs.optional.junit.FormatterElement;
import org.apache.tools.ant.types.EnumeratedAttribute;
import org.apache.tools.ant.types.Reference;
+
import org.xml.sax.Attributes;
/**
@@ -183,14 +185,13 @@
/** Creates a new script to execute the given tag name and attributes */
- public TagScript createTagScript(final String name, Attributes attributes) throws Exception {
-
+ public TagScript createTagScript(String name, Attributes attributes) throws Exception {
TagScript answer = createCustomTagScript(name, attributes);
if ( answer == null ) {
answer = new TagScript(
new TagFactory() {
- public Tag createTag() throws Exception {
- return AntTagLibrary.this.createTag(name);
+ public Tag createTag(String name, Attributes attributes) throws Exception {
+ return AntTagLibrary.this.createTag(name, attributes);
}
}
);
@@ -201,12 +202,12 @@
/**
* @return a new TagScript for any custom, statically defined tags, like 'fileScanner'
*/
- public TagScript createCustomTagScript(final String name, Attributes attributes) throws Exception {
+ public TagScript createCustomTagScript(String name, Attributes attributes) throws Exception {
// custom Ant tags
if ( name.equals("fileScanner") ) {
return new TagScript(
new TagFactory() {
- public Tag createTag() throws Exception {
+ public Tag createTag(String name, Attributes attributes) throws Exception {
return new FileScannerTag(new FileScanner());
}
}
@@ -215,7 +216,7 @@
if ( name.equals("setProperty") ) {
return new TagScript(
new TagFactory() {
- public Tag createTag() throws Exception {
+ public Tag createTag(String name, Attributes attributes) throws Exception {
return new SetPropertyTag();
}
}
@@ -227,7 +228,7 @@
/**
* A helper method which creates an AntTag instance for the given element name
*/
- public Tag createTag(String name) throws Exception {
+ public Tag createTag(String name, Attributes attributes) throws Exception {
AntTag tag = new AntTag( name );
if ( name.equals( "echo" ) ) {
tag.setTrim(false);
1.2 +6 -0 jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/impl/TestTagLibraryResolver.java
Index: TestTagLibraryResolver.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/test/org/apache/commons/jelly/impl/TestTagLibraryResolver.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TestTagLibraryResolver.java 20 Aug 2002 17:26:10 -0000 1.1
+++ TestTagLibraryResolver.java 16 Oct 2002 12:45:53 -0000 1.2
@@ -98,9 +98,15 @@
}
public void testResolver() throws Exception {
+ /**
+ * @todo temporary disbled test case until I can figure out how to get
+ * it to work with commons-discovery
+ */
+/*
TagLibrary library = resolver.resolveTagLibrary("jelly:test-library" );
assertTrue( "Found a tag library", library != null );
assertEquals( "Tag library is of the correct type", "org.apache.commons.jelly.test.impl.DummyTagLibrary", library.getClass().getName() );
+*/
}
}
1.4 +9 -2 jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/UseBeanTag.java
Index: UseBeanTag.java
===================================================================
RCS file: /home/cvs/jakarta-commons-sandbox/jelly/src/java/org/apache/commons/jelly/tags/core/UseBeanTag.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- UseBeanTag.java 30 Sep 2002 17:40:16 -0000 1.3
+++ UseBeanTag.java 16 Oct 2002 12:45:53 -0000 1.4
@@ -86,8 +86,15 @@
/** the current bean instance */
private Object bean;
+
+ /** the default class to use if no Class is specified */
+ private Class defaultClass;
+
+ public UseBeanTag() {
+ }
- public UseBeanTag(){
+ public UseBeanTag(Class defaultClass) {
+ this.defaultClass = defaultClass;
}
// BeanSource interface
@@ -199,6 +206,6 @@
* Allows derived classes to provide a default bean implementation class
*/
protected Class getDefaultClass() {
- return null;
+ return defaultClass;
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>