You are viewing a plain text version of this content. The canonical link for it is here.
Posted to surefire-commits@maven.apache.org by kr...@apache.org on 2011/03/03 17:36:32 UTC
svn commit: r1076672 - in /maven/surefire/trunk:
maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/
maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/
surefire-booter/src/main/java/org/apa...
Author: krosenvold
Date: Thu Mar 3 16:36:32 2011
New Revision: 1076672
URL: http://svn.apache.org/viewvc?rev=1076672&view=rev
Log:
[SUREFIRE-702] Improve transformation from properties->classpath
Based on patch by Stephan Birkner, modified by me.
Modified:
maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ClasspathConfiguration.java
maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java
maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ClasspathTest.java
maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PropertiesWrapperTest.java
Modified: maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java?rev=1076672&r1=1076671&r2=1076672&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/main/java/org/apache/maven/plugin/surefire/booterclient/BooterSerializer.java Thu Mar 3 16:36:32 2011
@@ -77,7 +77,7 @@ public class BooterSerializer
new Object[]{ BooterConstants.DIRSCANNER_OPTIONS, booterConfiguration.getDirScannerParamsArray() } );
addPropertiesForTypeHolder( params, properties.getProperties(), BooterConstants.DIRSCANNER_PROPERTY_PREFIX );
- providerConfiguration.getClasspathConfiguration().setForkProperties( properties.getProperties() );
+ providerConfiguration.getClasspathConfiguration().setForkProperties( properties);
TestArtifactInfo testNg = booterConfiguration.getTestArtifact();
if ( testNg != null )
Modified: maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java?rev=1076672&r1=1076671&r2=1076672&view=diff
==============================================================================
--- maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java (original)
+++ maven/surefire/trunk/maven-surefire-common/src/test/java/org/apache/maven/plugin/surefire/booterclient/BooterDeserializerStartupConfigurationTest.java Thu Mar 3 16:36:32 2011
@@ -24,15 +24,14 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.List;
import java.util.Properties;
import junit.framework.TestCase;
-import org.apache.maven.surefire.booter.BooterConstants;
import org.apache.maven.surefire.booter.BooterDeserializer;
import org.apache.maven.surefire.booter.ClassLoaderConfiguration;
import org.apache.maven.surefire.booter.ClasspathConfiguration;
+import org.apache.maven.surefire.booter.PropertiesWrapper;
import org.apache.maven.surefire.booter.ProviderConfiguration;
import org.apache.maven.surefire.booter.StartupConfiguration;
import org.apache.maven.surefire.booter.SystemPropertyManager;
@@ -49,13 +48,10 @@ import org.apache.maven.surefire.testset
public class BooterDeserializerStartupConfigurationTest
extends TestCase
{
+ private final ClasspathConfiguration classpathConfiguration = createClasspathConfiguration();
private final String aTest = "aTest";
- private final String aUserRequestedTest = "aUserRequestedTest";
-
- private final String aUserRequestedTestMethod = "aUserRequestedTestMethod";
-
public void testProvider()
throws IOException
{
@@ -65,18 +61,25 @@ public class BooterDeserializerStartupCo
public void testClassPathConfiguration()
throws IOException
{
- final ClasspathConfiguration classpathConfiguration =
+ ClasspathConfiguration reloadedClasspathConfiguration =
getReloadedStartupConfiguration().getClasspathConfiguration();
- Properties props = new Properties();
- classpathConfiguration.setForkProperties( props );
- List testClassPathUrls = classpathConfiguration.getTestClasspath().getClassPath();
- assertEquals( "true", props.get( BooterConstants.ENABLE_ASSERTIONS ) );
- assertEquals( "true", props.get( BooterConstants.CHILD_DELEGATION ) );
- assertEquals( 2, testClassPathUrls.size() );
- assertEquals( "CP1", testClassPathUrls.get( 0 ) );
- assertEquals( "CP2", testClassPathUrls.get( 1 ) );
- assertEquals( "SP1", props.get( BooterConstants.SUREFIRE_CLASSPATHURL + "0" ) );
- assertEquals( "SP2", props.get( BooterConstants.SUREFIRE_CLASSPATHURL + "1" ) );
+ assertEquals( classpathConfiguration, reloadedClasspathConfiguration );
+ }
+
+ private void assertEquals( ClasspathConfiguration expectedConfiguration, ClasspathConfiguration actualConfiguration )
+ {
+ assertEquals( expectedConfiguration.getTestClasspath().getClassPath(),
+ actualConfiguration.getTestClasspath().getClassPath() );
+ Properties propertiesForExpectedConfiguration = getPropertiesForClasspathConfiguration( expectedConfiguration );
+ Properties propertiesForActualConfiguration = getPropertiesForClasspathConfiguration( actualConfiguration );
+ assertEquals( propertiesForExpectedConfiguration, propertiesForActualConfiguration );
+ }
+
+ private Properties getPropertiesForClasspathConfiguration( ClasspathConfiguration configuration )
+ {
+ Properties properties = new Properties();
+ configuration.setForkProperties( new PropertiesWrapper( properties ));
+ return properties;
}
public void testClassLoaderConfiguration()
@@ -94,6 +97,15 @@ public class BooterDeserializerStartupCo
assertEquals( current, saveAndReload( testStartupConfiguration ).isManifestOnlyJarRequestedAndUsable() );
}
+ private ClasspathConfiguration createClasspathConfiguration()
+ {
+ ClasspathConfiguration classpathConfiguration = new ClasspathConfiguration( true, true );
+ classpathConfiguration.addClasspathUrl( "CP1" );
+ classpathConfiguration.addClasspathUrl( "CP2" );
+ classpathConfiguration.addSurefireClasspathUrl( "SP1" );
+ classpathConfiguration.addSurefireClasspathUrl( "SP2" );
+ return classpathConfiguration;
+ }
public static ClassLoaderConfiguration getSystemClassLoaderConfiguration()
throws IOException
@@ -137,8 +149,11 @@ public class BooterDeserializerStartupCo
new DirectoryScannerParameters( cwd, new ArrayList(), new ArrayList(), Boolean.TRUE, "hourly" );
ReporterConfiguration reporterConfiguration =
new ReporterConfiguration( new ArrayList(), cwd, Boolean.TRUE, null );
+ String aUserRequestedTest = "aUserRequestedTest";
+ String aUserRequestedTestMethod = "aUserRequestedTestMethod";
TestRequest testSuiteDefinition =
- new TestRequest( Arrays.asList( getSuiteXmlFileStrings() ), getTestSourceDirectory(), aUserRequestedTest, aUserRequestedTestMethod );
+ new TestRequest( Arrays.asList( getSuiteXmlFileStrings() ), getTestSourceDirectory(), aUserRequestedTest,
+ aUserRequestedTestMethod );
return new ProviderConfiguration( directoryScannerParameters, true, reporterConfiguration,
new TestArtifactInfo( "5.0", "ABC" ), testSuiteDefinition, new Properties(),
aTest );
@@ -146,11 +161,6 @@ public class BooterDeserializerStartupCo
private StartupConfiguration getTestStartupConfiguration( ClassLoaderConfiguration classLoaderConfiguration )
{
- ClasspathConfiguration classpathConfiguration = new ClasspathConfiguration( true, true );
- classpathConfiguration.addClasspathUrl( "CP1" );
- classpathConfiguration.addClasspathUrl( "CP2" );
- classpathConfiguration.addSurefireClasspathUrl( "SP1" );
- classpathConfiguration.addSurefireClasspathUrl( "SP2" );
return new StartupConfiguration( "com.provider", classpathConfiguration, classLoaderConfiguration, false, false,
false );
}
Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java?rev=1076672&r1=1076671&r2=1076672&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterConstants.java Thu Mar 3 16:36:32 2011
@@ -34,10 +34,6 @@ public interface BooterConstants
String REPORT_PROPERTY_PREFIX = "report.";
String PARAMS_SUFIX = ".params";
String TYPES_SUFIX = ".types";
- String CLASSPATH_URL = "classPathUrl.";
- String SUREFIRE_CLASSPATHURL = "surefireClassPathUrl.";
- String CHILD_DELEGATION = "childDelegation";
- String ENABLE_ASSERTIONS = "enableAssertions";
String USESYSTEMCLASSLOADER = "useSystemClassLoader";
String USEMANIFESTONLYJAR = "useManifestOnlyJar";
String FAILIFNOTESTS = "failIfNoTests";
Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java?rev=1076672&r1=1076671&r2=1076672&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/BooterDeserializer.java Thu Mar 3 16:36:32 2011
@@ -96,20 +96,14 @@ public class BooterDeserializer
public StartupConfiguration getProviderConfiguration()
throws IOException
{
- boolean enableAssertions = properties.getBooleanProperty( ENABLE_ASSERTIONS );
- boolean childDelegation = properties.getBooleanProperty( CHILD_DELEGATION );
boolean useSystemClassLoader = properties.getBooleanProperty( USESYSTEMCLASSLOADER );
boolean useManifestOnlyJar = properties.getBooleanProperty( USEMANIFESTONLYJAR );
String providerConfiguration = properties.getProperty( PROVIDER_CONFIGURATION );
- Classpath classpath = Classpath.readFromForkProperties( properties, CLASSPATH_URL );
- Classpath sureFireClasspath = Classpath.readFromForkProperties( properties, SUREFIRE_CLASSPATHURL );
-
ClassLoaderConfiguration classLoaderConfiguration =
new ClassLoaderConfiguration( useSystemClassLoader, useManifestOnlyJar );
- ClasspathConfiguration classpathConfiguration =
- new ClasspathConfiguration( classpath, sureFireClasspath, enableAssertions, childDelegation );
+ ClasspathConfiguration classpathConfiguration = new ClasspathConfiguration( properties );
return StartupConfiguration.inForkedVm( providerConfiguration, classpathConfiguration,
classLoaderConfiguration );
Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java?rev=1076672&r1=1076671&r2=1076672&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/Classpath.java Thu Mar 3 16:36:32 2011
@@ -24,10 +24,8 @@ import org.apache.maven.surefire.util.Ur
import java.io.File;
import java.net.MalformedURLException;
import java.util.ArrayList;
-import java.util.Collection;
import java.util.Iterator;
import java.util.List;
-import java.util.Properties;
/**
* An ordered set of classpath elements
@@ -36,12 +34,6 @@ import java.util.Properties;
*/
public class Classpath
{
- static Classpath readFromForkProperties( PropertiesWrapper properties, String prefix )
- {
- List elements = properties.getStringList( prefix );
- return new Classpath( elements );
- }
-
public static Classpath join( Classpath firstClasspath, Classpath secondClasspath )
{
Classpath joinedClasspath = new Classpath();
@@ -74,7 +66,7 @@ public class Classpath
}
}
- private void addElements( Collection additionalElements )
+ private void addElements( List additionalElements )
{
for ( Iterator it = additionalElements.iterator(); it.hasNext(); )
{
@@ -109,15 +101,6 @@ public class Classpath
return urls;
}
- void writeToForkProperties( Properties properties, String prefix )
- {
- for ( int i = 0; i < elements.size(); ++i )
- {
- String element = (String) elements.get( i );
- properties.setProperty( prefix + i, element );
- }
- }
-
public void writeToSystemProperty( String propertyName )
{
StringBuffer sb = new StringBuffer();
@@ -127,4 +110,26 @@ public class Classpath
}
System.setProperty( propertyName, sb.toString() );
}
+
+ public boolean equals( Object o )
+ {
+ if ( this == o )
+ {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() )
+ {
+ return false;
+ }
+
+ Classpath classpath = (Classpath) o;
+
+ return !( elements != null ? !elements.equals( classpath.elements ) : classpath.elements != null );
+
+ }
+
+ public int hashCode()
+ {
+ return elements != null ? elements.hashCode() : 0;
+ }
}
Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ClasspathConfiguration.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ClasspathConfiguration.java?rev=1076672&r1=1076671&r2=1076672&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ClasspathConfiguration.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/ClasspathConfiguration.java Thu Mar 3 16:36:32 2011
@@ -27,7 +27,6 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.util.Iterator;
import java.util.List;
-import java.util.Properties;
/**
* Represents the classpaths for the BooterConfiguration.
@@ -40,6 +39,13 @@ import java.util.Properties;
*/
public class ClasspathConfiguration
{
+ private static final String CHILD_DELEGATION = "childDelegation";
+
+ private static final String ENABLE_ASSERTIONS = "enableAssertions";
+
+ private static final String CLASSPATH = "classPathUrl.";
+
+ private static final String SUREFIRE_CLASSPATH = "surefireClassPathUrl.";
private final Classpath classpathUrls;
@@ -59,11 +65,15 @@ public class ClasspathConfiguration
this( new Classpath(), new Classpath(), enableAssertions, childDelegation );
}
- /*
- * Reads the config from the supplied stream. Closes the stream.
- */
- public ClasspathConfiguration( Classpath classPathUrls, Classpath surefireClassPathUrls, boolean enableAssertions,
- boolean childDelegation )
+ ClasspathConfiguration( PropertiesWrapper properties )
+ {
+ this( properties.getClasspath( CLASSPATH ),
+ properties.getClasspath( SUREFIRE_CLASSPATH ),
+ properties.getBooleanProperty( ENABLE_ASSERTIONS ), properties.getBooleanProperty( CHILD_DELEGATION ) );
+ }
+
+ private ClasspathConfiguration( Classpath classPathUrls, Classpath surefireClassPathUrls, boolean enableAssertions,
+ boolean childDelegation )
{
this.enableAssertions = enableAssertions;
this.childDelegation = childDelegation;
@@ -71,12 +81,12 @@ public class ClasspathConfiguration
this.surefireClasspathUrls = surefireClassPathUrls;
}
- public void setForkProperties( Properties properties )
+ public void setForkProperties( PropertiesWrapper properties )
{
- classpathUrls.writeToForkProperties( properties, BooterConstants.CLASSPATH_URL );
- surefireClasspathUrls.writeToForkProperties( properties, BooterConstants.SUREFIRE_CLASSPATHURL );
- properties.setProperty( BooterConstants.ENABLE_ASSERTIONS, String.valueOf( enableAssertions ) );
- properties.setProperty( BooterConstants.CHILD_DELEGATION, String.valueOf( childDelegation ) );
+ properties.setClasspath( CLASSPATH, classpathUrls );
+ properties.setClasspath( SUREFIRE_CLASSPATH, classpathUrls );
+ properties.setProperty( ENABLE_ASSERTIONS, String.valueOf( enableAssertions ) );
+ properties.setProperty( CHILD_DELEGATION, String.valueOf( childDelegation ) );
}
private static Method assertionStatusMethod;
Modified: maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java?rev=1076672&r1=1076671&r2=1076672&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java (original)
+++ maven/surefire/trunk/surefire-booter/src/main/java/org/apache/maven/surefire/booter/PropertiesWrapper.java Thu Mar 3 16:36:32 2011
@@ -234,6 +234,22 @@ public class PropertiesWrapper
}
}
+ Classpath getClasspath( String prefix )
+ {
+ List elements = getStringList( prefix );
+ return new Classpath( elements );
+ }
+
+ public void setClasspath( String prefix, Classpath classpath )
+ {
+ List classpathElements = classpath.getClassPath();
+ for ( int i = 0; i < classpathElements.size(); ++i )
+ {
+ String element = (String) classpathElements.get( i );
+ setProperty( prefix + i, element );
+ }
+ }
+
public void setProperty( String key, Integer integer )
{
if ( integer != null )
Modified: maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ClasspathTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ClasspathTest.java?rev=1076672&r1=1076671&r2=1076672&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ClasspathTest.java (original)
+++ maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/ClasspathTest.java Thu Mar 3 16:36:32 2011
@@ -21,7 +21,6 @@ package org.apache.maven.surefire.booter
import java.io.File;
import java.util.List;
-import java.util.Properties;
import junit.framework.TestCase;
@@ -73,17 +72,6 @@ public class ClasspathTest
assertTrue( asUrlList.get( 1 ).toString().endsWith( DUMMY_URL_2 ) );
}
- public void testSetForkProperties()
- throws Exception
- {
- Properties properties = new Properties();
- createClasspathWithTwoElements().writeToForkProperties( properties, "test" );
- assertEquals( DUMMY_URL_1, properties.get( "test0" ) );
- assertEquals( DUMMY_URL_2, properties.get( "test1" ) );
- }
-
-
-
public void testShouldJoinTwoNullClasspaths()
{
Classpath joinedClasspath = Classpath.join( null, null );
@@ -111,21 +99,7 @@ public class ClasspathTest
Classpath joinedClasspath = Classpath.join( firstClasspath, secondClasspath );
assertClasspathConsistsOfElements( joinedClasspath, new String[] { DUMMY_URL_1 } );
}
-
- public void testShouldReadEmptyClasspathFromForkProperties() {
- PropertiesWrapper properties = new PropertiesWrapper( new Properties() );
- Classpath classpath = Classpath.readFromForkProperties( properties, "test" );
- assertEmptyClasspath(classpath);
- }
-
- public void testShouldReadClasspathWithToElementsFromForkProperties() {
- PropertiesWrapper properties = new PropertiesWrapper( new Properties() );
- properties.setProperty( "test0", DUMMY_URL_1 );
- properties.setProperty( "test1", DUMMY_URL_2 );
- Classpath classpath = Classpath.readFromForkProperties( properties, "test" );
- assertClasspathConsistsOfElements( classpath, new String[] { DUMMY_URL_1, DUMMY_URL_2 } );
- }
-
+
public void testShouldNotBeAbleToRemoveElement()
throws Exception
{
Modified: maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PropertiesWrapperTest.java
URL: http://svn.apache.org/viewvc/maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PropertiesWrapperTest.java?rev=1076672&r1=1076671&r2=1076672&view=diff
==============================================================================
--- maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PropertiesWrapperTest.java (original)
+++ maven/surefire/trunk/surefire-booter/src/test/java/org/apache/maven/surefire/booter/PropertiesWrapperTest.java Thu Mar 3 16:36:32 2011
@@ -51,4 +51,61 @@ public class PropertiesWrapperTest
assertEquals( "String2", test.get( 1 ) );
}
+
+ private static final String DUMMY_PREFIX = "dummyPrefix";
+
+ private static final String FIRST_ELEMENT = "foo0";
+
+ private static final String SECOND_ELEMENT = "foo1";
+
+ private final Properties properties = new Properties();
+
+
+ private final PropertiesWrapper mapper = new PropertiesWrapper( properties );
+ private final Classpath classpathWithTwoElements = createClasspathWithTwoElements();
+
+ public void testReadFromProperties()
+ throws Exception
+ {
+ properties.put( DUMMY_PREFIX + "0", FIRST_ELEMENT );
+ properties.put( DUMMY_PREFIX + "1", SECOND_ELEMENT );
+ Classpath recreatedClasspath = readClasspathFromProperties();
+ assertEquals( classpathWithTwoElements, recreatedClasspath );
+ }
+
+ public void testReadFromPropertiesWithEmptyProperties()
+ throws Exception
+ {
+ Classpath recreatedClasspath = readClasspathFromProperties();
+ assertTrue( recreatedClasspath.getClassPath().isEmpty() );
+ }
+
+ public void testWriteToProperties()
+ throws Exception
+ {
+ mapper.setClasspath( DUMMY_PREFIX, classpathWithTwoElements);
+ assertEquals( FIRST_ELEMENT, mapper.getProperty( DUMMY_PREFIX + "0" ) );
+ assertEquals( SECOND_ELEMENT, mapper.getProperty( DUMMY_PREFIX + "1" ) );
+ }
+
+ public void testRoundtrip()
+ throws Exception
+ {
+ mapper.setClasspath( DUMMY_PREFIX, classpathWithTwoElements);
+ Classpath recreatedClasspath = readClasspathFromProperties();
+ assertEquals( classpathWithTwoElements, recreatedClasspath );
+ }
+
+ private Classpath createClasspathWithTwoElements()
+ {
+ Classpath classpath = new Classpath();
+ classpath.addClassPathElementUrl( FIRST_ELEMENT );
+ classpath.addClassPathElementUrl( SECOND_ELEMENT );
+ return classpath;
+ }
+
+ private Classpath readClasspathFromProperties()
+ {
+ return mapper.getClasspath( DUMMY_PREFIX);
+ }
}