diff --git a/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JXPath.java b/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JXPath.java index 1ece4a273..68491fe0a 100644 --- a/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JXPath.java +++ b/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JXPath.java @@ -77,8 +77,16 @@ public class JXPath extends Task implements PropertyInterceptor { public JXPath() { } + + public JXPathContext getJXPathContext() { + return jxpathCtx; + } - public Object getProperty( Project p, String ns, String name ) { + public boolean setProperty( Object c, String ns, String name, Object v ) { + return false; + } + + public Object getProperty( Object p, String ns, String name ) { if( ! name.startsWith(PREFIX) ) return null; name=name.substring( PREFIX.length() ); @@ -105,13 +113,25 @@ public class JXPath extends Task implements PropertyInterceptor { return result; } - + + // testing + String foo; + public void setFoo( String s ) { + System.out.println("Set foo " + s ); + foo=s; + } + + public String getFoo() { + return foo; + } public void execute() { JXPathIntrospector.registerDynamicClass(Hashtable.class, JXPathHashtableHandler.class); PropertyHelper phelper=PropertyHelper.getPropertyHelper( project ); phelper.addPropertyInterceptor( this ); + + project.addReference( "jxpathTask", this ); jxpathCtx=JXPathContext.newContext( project ); diff --git a/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JXPathSet.java b/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JXPathSet.java index da87a898b..c50f56713 100644 --- a/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JXPathSet.java +++ b/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JXPathSet.java @@ -71,12 +71,10 @@ import org.apache.commons.jxpath.*; */ public class JXPathSet extends Task { - JXPathContext jxpathCtx; String path; - String value; + String valueString; String refId; - public JXPathSet() { } @@ -99,12 +97,20 @@ public class JXPathSet extends Task { /** Set the value to be used. */ public void setValue( String s ) { - this.value=s; + this.valueString=s; } public void execute() { - jxpathCtx=JXPathContext.newContext( project ); + JXPathContext jxpathCtx; + JXPath jxpathTask=(JXPath)project.getReference( "jxpathTask" ); + jxpathCtx=jxpathTask.getJXPathContext(); + Object value=null; + if( refId!=null ) + value=project.getReference( refId ); + if( value==null ) + value=valueString; + jxpathCtx.setValue( path, value ); } } diff --git a/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JexlProperties.java b/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JexlProperties.java index 559b388e1..0a22a4c3e 100644 --- a/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JexlProperties.java +++ b/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/JexlProperties.java @@ -74,7 +74,11 @@ public class JexlProperties extends Task implements PropertyInterceptor { public JexlProperties() { } - public Object getProperty( Project p, String ns, String name ) { + public boolean setProperty( Object ctx, String ns, String name, Object value ) { + return false; + } + + public Object getProperty( Object p, String ns, String name ) { if( ! name.startsWith(PREFIX) ) return null; try { diff --git a/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/VelocityProperties.java b/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/VelocityProperties.java index 90b835a34..06b404d94 100644 --- a/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/VelocityProperties.java +++ b/proposal/embed/src/java/org/apache/tools/ant/taskdefs/optional/VelocityProperties.java @@ -76,8 +76,12 @@ public class VelocityProperties extends Task implements PropertyInterceptor { public VelocityProperties() { } + + public boolean setProperty( Object c, String ns, String name, Object v ) { + return false; + } - public Object getProperty( Project p, String ns, String name ) { + public Object getProperty( Object p, String ns, String name ) { if( ! name.startsWith(PREFIX) ) return null; try { @@ -93,13 +97,16 @@ public class VelocityProperties extends Task implements PropertyInterceptor { return null; } } - + + public VelocityEngine getVelocityEngine() { + return engine; + } public void execute() { try { PropertyHelper phelper=PropertyHelper.getPropertyHelper( project ); phelper.addPropertyInterceptor( this ); - + engine=new VelocityEngine(); engine.init();