You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ant.apache.org by do...@apache.org on 2002/07/05 01:53:55 UTC
cvs commit: jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/property XPathPropertyResolver.java
donaldp 2002/07/04 16:53:55
Modified: container/src/java/org/apache/myrmidon/components/property
XPathPropertyResolver.java
Log:
JXPath requires that all classes that are
dynamically handled to be explicitly registered.
Thus we explicitly register unmodified class.
Submitted By: Dmitri Plotnikov
Revision Changes Path
1.4 +16 -3 jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/property/XPathPropertyResolver.java
Index: XPathPropertyResolver.java
===================================================================
RCS file: /home/cvs/jakarta-ant-myrmidon/container/src/java/org/apache/myrmidon/components/property/XPathPropertyResolver.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- XPathPropertyResolver.java 27 Jun 2002 11:13:08 -0000 1.3
+++ XPathPropertyResolver.java 4 Jul 2002 23:53:54 -0000 1.4
@@ -7,11 +7,16 @@
*/
package org.apache.myrmidon.components.property;
+import java.util.Collections;
+import java.util.HashMap;
+import org.apache.avalon.framework.activity.Initializable;
+import org.apache.avalon.framework.service.ServiceException;
+import org.apache.avalon.framework.service.ServiceManager;
import org.apache.commons.jxpath.JXPathContext;
+import org.apache.commons.jxpath.JXPathIntrospector;
+import org.apache.commons.jxpath.MapDynamicPropertyHandler;
import org.apache.myrmidon.api.TaskContext;
import org.apache.myrmidon.api.TaskException;
-import org.apache.avalon.framework.service.ServiceManager;
-import org.apache.avalon.framework.service.ServiceException;
/**
* A property resolver that uses JXPath to resolve values.
@@ -23,6 +28,7 @@
*/
public class XPathPropertyResolver
extends DefaultPropertyResolver
+ implements Initializable
{
/**
* @avalon.dependency interface="Converter"
@@ -30,6 +36,13 @@
public void service( ServiceManager serviceManager ) throws ServiceException
{
super.service( serviceManager );
+ }
+
+ public void initialize()
+ throws Exception
+ {
+ final Class clazz = Collections.unmodifiableMap( new HashMap() ).getClass();
+ JXPathIntrospector.registerDynamicClass( clazz, MapDynamicPropertyHandler.class );
}
/**
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>