[
http://jira.codehaus.org/browse/SUREFIRE-117?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_103623
]
Nick Bower commented on SUREFIRE-117:
-------------------------------------
Ok I think I've found the issue here. It is the way in which the surefire jar
manifest is being created.
The created temporary surefire jar has no classes, but uses a class path entry
in the manifest to point to the maven repository so that the system class
loader is able to pre-load the dependencies (including the stated
SurefireBooter for one). However on Windows, this manifest illegally contains
paths with drive letters.
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: 1.5.0_11-b03 (Sun Microsystems Inc.)
Main-Class: org.apache.maven.surefire.booter.SurefireBooter
Class-Path: C:\Documents and Settings\nick\.m2\repository\org\codehaus
\plexus\plexus-archiver\1.0-alpha-7\plexus-archiver-1.0-alpha-7.jar C
:\Documents and Settings\nick\.m2\repository\junit\junit\3.8.1\junit-
3.8.1.jar C:\Documents and Settings\nick\.m2\repository\org\apache\ma
ven\surefire\surefire-api\2.3\surefire-api-2.3.jar C:\Documents and S
ettings\nick\.m2\repository\org\codehaus\plexus\plexus-container-defa
ult\1.0-alpha-8\plexus-container-default-1.0-alpha-8.jar C:\Documents
and Settings\nick\.m2\repository\classworlds\classworlds\1.1-alpha-2
\classworlds-1.1-alpha-2.jar C:\Documents and Settings\nick\.m2\repos
itory\org\codehaus\plexus\plexus-utils\1.1\plexus-utils-1.1.jar C:\Do
cuments and Settings\nick\.m2\repository\commons-lang\commons-lang\2.
1\commons-lang-2.1.jar C:\Documents and Settings\nick\.m2\repository\
org\apache\maven\surefire\surefire-booter\2.3\surefire-booter-2.3.jar
c:\Documents and Settings\nick\workspace\DataFeeds\target\classes/ c
:\Documents and Settings\nick\workspace\DataFeeds\target\test-classes
/ C:\Documents and Settings\nick\.m2\repository\com\metoceanengineers
\plot-tools\1.1.0\plot-tools-1.1.0.jar C:\Documents and Settings\nick
\.m2\repository\mysql\mysql-connector-java\5.0.6\mysql-connector-java
-5.0.6.jar C:\Documents and Settings\nick\.m2\repository\org\objectwe
b\carol\carol\2.0.5\carol-2.0.5.jar C:\Documents and Settings\nick\.m
2\repository\backport-util-concurrent\backport-util-concurrent\3.0\ba
ckport-util-concurrent-3.0.jar C:\Documents and Settings\nick\.m2\rep
ository\org\mule\transports\mule-transport-jms\1.4.1\mule-transport-j
ms-1.4.1.jar C:\Documents and Settings\nick\.m2\repository\org\apache
\geronimo\specs\geronimo-jms_1.1_spec\1.0.1\geronimo-jms_1.1_spec-1.0
.1.jar C:\Documents and Settings\nick\.m2\repository\commons-discover
y\commons-discovery\0.2\commons-discovery-0.2.jar C:\Documents and Se
ttings\nick\.m2\repository\org\mule\mule-core\1.4.1\mule-core-1.4.1.j
ar C:\Documents and Settings\nick\.m2\repository\commons-lang\commons
-lang\2.1\commons-lang-2.1.jar C:\Documents and Settings\nick\.m2\rep
ository\com\metoceanengineers\rems-exporter\1.0.6\rems-exporter-1.0.6
.jar C:\Documents and Settings\nick\.m2\repository\org\mule\transport
s\mule-transport-file\1.4.1\mule-transport-file-1.4.1.jar C:\Document
s and Settings\nick\.m2\repository\org\mule\modules\mule-module-jotm\
1.4.1\mule-module-jotm-1.4.1.jar C:\Documents and Settings\nick\.m2\r
epository\commons-beanutils\commons-beanutils\1.7.0\commons-beanutils
-1.7.0.jar C:\Documents and Settings\nick\.m2\repository\com\metocean
engineers\netcdfjavalib\2.3.0\netcdfjavalib-2.3.0.jar C:\Documents an
d Settings\nick\.m2\repository\log4j\log4j\1.2.13\log4j-1.2.13.jar C:
\Documents and Settings\nick\.m2\repository\junit\junit\3.8.2\junit-3
.8.2.jar C:\Documents and Settings\nick\.m2\repository\jcmdline\jcmdl
ine\1.0.1\jcmdline-1.0.1.jar C:\Documents and Settings\nick\.m2\repos
itory\org\apache\geronimo\specs\geronimo-jta_1.0.1B_spec\1.0.1\geroni
mo-jta_1.0.1B_spec-1.0.1.jar C:\Documents and Settings\nick\.m2\repos
itory\commons-net\commons-net\1.4.1\commons-net-1.4.1.jar C:\Document
s and Settings\nick\.m2\repository\jdom\jdom\1.0\jdom-1.0.jar C:\Docu
ments and Settings\nick\.m2\repository\org\slf4j\jcl104-over-slf4j\1.
3.1\jcl104-over-slf4j-1.3.1.jar C:\Documents and Settings\nick\.m2\re
pository\jfree\jfreechart\1.0.1\jfreechart-1.0.1.jar C:\Documents and
Settings\nick\.m2\repository\commons-cli\commons-cli\1.0\commons-cli
-1.0.jar C:\Documents and Settings\nick\.m2\repository\org\safehaus\j
ug\jug\2.0.0\jug-2.0.0-asl.jar C:\Documents and Settings\nick\.m2\rep
ository\xml-apis\xml-apis\1.3.03\xml-apis-1.3.03.jar C:\Documents and
Settings\nick\.m2\repository\javax\activation\activation\1.1\activat
ion-1.1.jar C:\Documents and Settings\nick\.m2\repository\howl\howl-l
ogger\0.1.11\howl-logger-0.1.11.jar C:\Documents and Settings\nick\.m
2\repository\commons-io\commons-io\1.3.1\commons-io-1.3.1.jar C:\Docu
ments and Settings\nick\.m2\repository\jfree\jcommon\1.0.0\jcommon-1.
0.0.jar C:\Documents and Settings\nick\.m2\repository\oro\oro\2.0.7\o
ro-2.0.7.jar C:\Documents and Settings\nick\.m2\repository\xerces\xer
cesImpl\2.8.1\xercesImpl-2.8.1.jar C:\Documents and Settings\nick\.m2
\repository\org\apache\activemq\apachemq-allinone\4.1.1\apachemq-alli
none-4.1.1.jar C:\Documents and Settings\nick\.m2\repository\org\slf4
j\slf4j-log4j12\1.3.1\slf4j-log4j12-1.3.1.jar C:\Documents and Settin
gs\nick\.m2\repository\javax\mail\mail\1.4\mail-1.4.jar C:\Documents
and Settings\nick\.m2\repository\mockobjects\mockobjects-core\0.09\mo
ckobjects-core-0.09.jar C:\Documents and Settings\nick\.m2\repository
\jotm\jotm_jrmp_stubs\2.0.10\jotm_jrmp_stubs-2.0.10.jar C:\Documents
and Settings\nick\.m2\repository\org\slf4j\slf4j-api\1.3.1\slf4j-api-
1.3.1.jar C:\Documents and Settings\nick\.m2\repository\org\mule\tran
sports\mule-transport-email\1.4.1\mule-transport-email-1.4.1.jar C:\D
ocuments and Settings\nick\.m2\repository\commons-collections\commons
-collections\3.2\commons-collections-3.2.jar C:\Documents and Setting
s\nick\.m2\repository\jotm\jotm\2.0.10\jotm-2.0.10.jar C:\Documents a
nd Settings\nick\.m2\repository\org\mule\transports\mule-transport-ft
p\1.4.1\mule-transport-ftp-1.4.1.jar C:\Documents and Settings\nick\.
m2\repository\org\apache\geronimo\specs\geronimo-j2ee-connector_1.5_s
pec\1.0.1\geronimo-j2ee-connector_1.5_spec-1.0.1.jar C:\Documents and
Settings\nick\.m2\repository\commons-pool\commons-pool\1.3\commons-p
ool-1.3.jar
According to the Java Extensions spec, these paths should be RELATIVE.
According to http://java.sun.com/j2se/1.5.0/docs/guide/extensions/spec.html
"""An application (or, more generally, JAR file) specifies the relative URLs of
the optional packages (and libraries) that it needs via the manifest attribute
Class-Path. This attribute lists the URLs to search for implementations of
optional packages (or other libraries) if they cannot be found as optional
packages installed on the host Java virtual machine*. These relative URLs may
include JAR files and directories for any libraries or resources needed by the
application or optional package. Relative URLs not ending with '/' are assumed
to refer to JAR files. For example,
Class-Path: servlet.jar infobus.jar acme/beans.jar images/
Multiple Class-Path headers may be specified, and are combined sequentially.
Currently, the URLs must be relative to the code base of the JAR file for
security reasons. Thus, remote optional packages will originate from the same
code base as the application. A future enhancement will leverage the facilities
of the Java 2 Platform's Security APIs to allow references to JAR files at
other URLs. """
I googled to see if absolute paths were really an issue and It seems that a few
others have encountered this before also;
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4811221
So how are you producing the jar manifest?
> ability to add dependency to jvm's classpath rather in surefirebooter
> classloader
> ---------------------------------------------------------------------------------
>
> Key: SUREFIRE-117
> URL: http://jira.codehaus.org/browse/SUREFIRE-117
> Project: Maven Surefire
> Issue Type: Bug
> Affects Versions: 2.0 (2.2 plugin)
> Environment: xp
> Reporter: Dan Tran
> Assignee: Kenney Westerhof
> Fix For: 2.4
>
> Attachments: MSUREFIRE-121-booter.patch, MSUREFIRE-121.plugin.patch,
> MSUREFIRE-121.plugin.patch2, MSUREFIRE-121.plugin.patch3
>
>
> I have a usecase where i have a jar file got loaded by -Xbootclasspath, that
> jar file then loads classes from another jar ( my dependency)
> expected in the classpath.
> The problem is that surefire plugin does not add my dependencies at JVM
> commanline thru -classpath option, but after the JVM starts
--
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