You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Dan Fabulich (JIRA)" <ji...@codehaus.org> on 2007/11/23 07:44:58 UTC
[jira] Closed: (SUREFIRE-368) Property java.class.path modified by
the user, it is not taken into account by ClassLoader
[ http://jira.codehaus.org/browse/SUREFIRE-368?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dan Fabulich closed SUREFIRE-368.
---------------------------------
Resolution: Duplicate
Fix Version/s: (was: 2.4)
Duplicate of SUREFIRE-180
> Property java.class.path modified by the user, it is not taken into account by ClassLoader
> ------------------------------------------------------------------------------------------
>
> Key: SUREFIRE-368
> URL: http://jira.codehaus.org/browse/SUREFIRE-368
> Project: Maven Surefire
> Issue Type: Bug
> Reporter: David Leal
> Attachments: FileUtils.java, TestFileUtils2.java
>
>
> I have a simple class that just find a file on classpath, i.e.:
> public final class FileUtils extends org.apache.commons.io.FileUtils {
> public static File findFileInClasspath(String fileName)
> throws UnsupportedEncodingException, FileNotFoundException {
> return findFileInClasspath(fileName, FileUtils.LATIN_CODE);
> }
>
> public static File findFileInClasspath(String fileName, String encoding)
> throws UnsupportedEncodingException, FileNotFoundException {
> URL url = FileUtils.class.getClassLoader().getResource(fileName);
> if (url == null) {
> throw new FileNotFoundException(fileName);
> }
> String file = URLDecoder.decode(url.getFile(), encoding);
> return new File(file);
> }
> }
> I would like to test this method, without leaving a testing file on test/resources, so I want to use at valid location on classpath, so I configurate the pluggin:
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-surefire-plugin</artifactId>
> <configuration>
> <forkMode>once</forkMode>
> <systemProperties>
> <property>
> <name>java.class.path</name>
> <value>${user.dir}</value>
> </property>
> </systemProperties>
> </configuration>
> </plugin>
> </plugins>
> Note: if I add the variable: ${maven.test.classpath} its value is not translated into the corresponding value.
> On my testing process I look on the property variable: java.class.path in effect its point into: ${user.dir} but the testing method still fails. Under Eclipse the same test, doesn't fail.
> Under Maven the test for some reason it fails even the on the java.class.path there is directory (that's the condition I need in order to run the test).
> On the atached file you can find the source and testing file.
> I now it is possible to desing a different test using a resource file for this purpose, but I am very suprise about this behavour. It open for me the question about: How really the user control de classpath during the testing process.
> After running the testing file I get:
> -------------------------------------------------------
> T E S T S
> -------------------------------------------------------
> Running com.ceb2b2000.commons.io.TestFileUtils2
> 30-oct-2007 0:25:34 com.ceb2b2000.commons.io.TestFileUtils2 findDirectoryOnClass
> path
> INFO: classpath = P:\ceb2b2000-commons\ceb2b2000-commons-io
> <<< FAILURE!
> Results :
> Tests in error:
> testFindFileInClasspath(com.ceb2b2000.commons.io.TestFileUtils2)
> Tests run: 4, Failures: 0, Errors: 3, Skipped: 0
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira