Author: epunzalan Date: Wed Mar 29 00:44:23 2006 New Revision: 389708 URL: http://svn.apache.org/viewcvs?rev=389708&view=rev Log: Reverted from plexus-utils 1.2-SNAPSHOT to 1.1 for 2.0.3 compatibility
Modified: maven/sandbox/maven-plugin-testing-harness/pom.xml maven/sandbox/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugins/testing/AbstractMojoTestCase.java Modified: maven/sandbox/maven-plugin-testing-harness/pom.xml URL: http://svn.apache.org/viewcvs/maven/sandbox/maven-plugin-testing-harness/pom.xml?rev=389708&r1=389707&r2=389708&view=diff ============================================================================== --- maven/sandbox/maven-plugin-testing-harness/pom.xml (original) +++ maven/sandbox/maven-plugin-testing-harness/pom.xml Wed Mar 29 00:44:23 2006 @@ -28,7 +28,7 @@ <dependency> <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> - <version>1.2-SNAPSHOT</version> + <version>1.1</version> </dependency> </dependencies> <scm> Modified: maven/sandbox/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugins/testing/AbstractMojoTestCase.java URL: http://svn.apache.org/viewcvs/maven/sandbox/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugins/testing/AbstractMojoTestCase.java?rev=389708&r1=389707&r2=389708&view=diff ============================================================================== --- maven/sandbox/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugins/testing/AbstractMojoTestCase.java (original) +++ maven/sandbox/maven-plugin-testing-harness/src/main/java/org/apache/maven/plugins/testing/AbstractMojoTestCase.java Wed Mar 29 00:44:23 2006 @@ -16,11 +16,6 @@ * limitations under the License. */ -import java.io.File; -import java.io.FileReader; -import java.io.Reader; -import java.util.Map; - import org.apache.maven.monitor.logging.DefaultLog; import org.apache.maven.plugin.Mojo; import org.apache.maven.plugin.logging.Log; @@ -33,6 +28,14 @@ import org.codehaus.plexus.util.xml.Xpp3Dom; import org.codehaus.plexus.util.xml.Xpp3DomBuilder; +import java.io.File; +import java.io.FileReader; +import java.io.Reader; +import java.util.Map; +import java.util.HashMap; +import java.lang.reflect.Field; +import java.lang.reflect.AccessibleObject; + // todo: add a way to use the plugin POM for the lookup so that the user doesn't have to provide the a:g:v:goal // as the role hint for the mojo lookup. // todo: standarize the execution of the mojo and looking at the results, but could simply have a template method @@ -266,7 +269,7 @@ protected Object getVariableValueFromObject( Object object, String variable ) throws IllegalAccessException { - return ReflectionUtils.getValueIncludingSuperclasses( variable, object ); + return ReflectionUtils.getFieldByNameIncludingSuperclasses( variable, object.getClass() ); } @@ -279,10 +282,31 @@ * @param object * @return map of variable names and values */ - protected Map getVariablesAndValuesFromObject( Object object ) + protected Map getVariablesAndValuesFromObject( Class clazz, Object object ) throws IllegalAccessException { - return ReflectionUtils.getVariablesAndValuesIncludingSuperclasses( object ); + Map map = new HashMap(); + + Field[] fields = clazz.getDeclaredFields(); + + AccessibleObject.setAccessible( fields, true); + + for (int i = 0; i < fields.length; ++i) + { + Field field = fields[i]; + + map.put( field.getName(), field.get( object ) ); + + } + + Class superclass = clazz.getSuperclass(); + + if ( !Object.class.equals( superclass ) ) + { + map.putAll( getVariablesAndValuesFromObject( superclass, object ) ); + } + + return map; } @@ -296,7 +320,11 @@ protected void setVariableValueToObject( Object object, String variable, Object value ) throws IllegalAccessException { - ReflectionUtils.setVariableValueInObject( object, variable, value ); + Field field = ReflectionUtils.getFieldByNameIncludingSuperclasses( variable, object.getClass() ); + + field.setAccessible( true ); + + field.set(object, value ); } /** * sometimes the parent element might contain the correct value so generalize that access