felix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stuart McCulloch (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (FELIX-3585) Dependencies with classes or resources in the default package cannot be embedded
Date Mon, 01 Apr 2013 23:13:14 GMT

    [ https://issues.apache.org/jira/browse/FELIX-3585?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13619299#comment-13619299
] 

Stuart McCulloch commented on FELIX-3585:
-----------------------------------------

This issue appears to be limited to classes in the default package that start with certain
characters (such as J) - for some reason bndlib is checking the resource path prefix and if
it sees 'J' at the very start then it interprets it as referring to a Java primitive type
(ie. J==long) which then causes all sorts of confusion later on. Will check to see if this
has been fixed in the latest bnd code, if so then we just need to pull in that version.
                
> Dependencies with classes or resources in the default package cannot be embedded
> --------------------------------------------------------------------------------
>
>                 Key: FELIX-3585
>                 URL: https://issues.apache.org/jira/browse/FELIX-3585
>             Project: Felix
>          Issue Type: Bug
>          Components: Maven Bundle Plugin
>    Affects Versions: maven-bundle-plugin-2.4.0
>            Reporter: Ryan Heinen
>            Priority: Critical
>             Fix For: maven-bundle-plugin-2.4.0
>
>
> I'm testing the latest svn revision 1355520 (2.4.0-SNAPSHOT) of the maven-bundle-plugin
in my project. A MojoExecutionException is thrown when the plugin attempts to embed dependencies
that contain resources or classes in the default package. The error message that I see in
the logs is "Classes found in the wrong directory: {JDOMAbout$Info.class=long, JDOMAbout.class=long,
". Those two classes are in the default package in that version of the jdom jar.
> A warning is also thrown about "Unused Private-Package instructions, no such package(s)
on the class path: [!*]". I've included more log output after the sample POM below.
> This worked without errors or warnings in release version 2.3.7, so I believe this is
a bug.
> Here is a minimal POM that reproduces the issue. The dependency that I am testing with
is jdom 1.0, but it should apply to any jar that has content in the default package. I've
reproduced this error on both maven 3.0.3 and 3.0.4.
> {code}
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
> 	<modelVersion>4.0.0</modelVersion>
> 	<groupId>com.example</groupId>
> 	<artifactId>jdom-wrapper</artifactId>
> 	<packaging>bundle</packaging>
> 	<name>JDOM Wrapper</name>
> 	<version>1.0-SNAPSHOT</version>
> 	<build>
> 		<plugins>
> 			<plugin>
> 				<groupId>org.apache.felix</groupId>
> 				<artifactId>maven-bundle-plugin</artifactId>
> 				<extensions>true</extensions>
> 				<version>2.4.0-SNAPSHOT</version>
> <!--
> 				<version>2.3.7</version>
> -->
> 				<configuration>
> 					<instructions>
> 						<Embed-Dependency>jdom;scope=compile</Embed-Dependency>
> 					</instructions>
> 				</configuration>
> 			</plugin>
> 		</plugins>
> 	</build>
> 	<dependencies>
> 		<dependency>
> 			<groupId>jdom</groupId>
> 			<artifactId>jdom</artifactId>
> 			<version>1.0</version>
> 		</dependency>
> 	</dependencies>
> </project>
> {code}
> The last bit of output from a mvn bundle:bundle -debug command.
> {code}
> [DEBUG] BND Classpath:
> #-----------------------------------------------------------------------
> -classpath:\
>  /private/tmp/jdom/target/classes,\
>  /Users/ryan/.m2/repository/jdom/jdom/1.0/jdom-1.0.jar
> #-----------------------------------------------------------------------
> [DEBUG] BND Manifest:
> #-----------------------------------------------------------------------
> Manifest-Version: 1.0
> Bnd-LastModified: 1341512614042
> Bundle-ClassPath: .,jdom-1.0.jar
> Bundle-ManifestVersion: 2
> Bundle-Name: JDOM Wrapper
> Bundle-SymbolicName: com.example.jdom-wrapper
> Bundle-Version: 1.0.0.SNAPSHOT
> Created-By: 1.6.0_33 (Apple Inc.)
> Embed-Dependency: jdom;scope=compile
> Embed-Transitive: true
> Embedded-Artifacts: jdom-1.0.jar;g="jdom";a="jdom";v="1.0"
> Import-Package: javax.xml.parsers,javax.xml.transform,javax.xml.transfor
>  m.sax,javax.xml.transform.stream,oracle.xml.parser,oracle.xml.parser.v2
>  ,org.apache.xerces.dom,org.apache.xerces.parsers,org.jaxen,org.jaxen.jd
>  om,org.w3c.dom,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers
> Tool: Bnd-${Bundle-Version}
> #-----------------------------------------------------------------------
> [DEBUG] Final Manifest:
> #-----------------------------------------------------------------------
> Manifest-Version: 1.0
> Bnd-LastModified: 1341512614042
> Build-Jdk: 1.6.0_33
> Built-By: ryan
> Bundle-ClassPath: .,jdom-1.0.jar
> Bundle-ManifestVersion: 2
> Bundle-Name: JDOM Wrapper
> Bundle-SymbolicName: com.example.jdom-wrapper
> Bundle-Version: 1.0.0.SNAPSHOT
> Created-By: Apache Maven Bundle Plugin
> Embed-Dependency: jdom;scope=compile
> Embed-Transitive: true
> Embedded-Artifacts: jdom-1.0.jar;g="jdom";a="jdom";v="1.0"
> Import-Package: javax.xml.parsers,javax.xml.transform,javax.xml.transfor
>  m.sax,javax.xml.transform.stream,oracle.xml.parser,oracle.xml.parser.v2
>  ,org.apache.xerces.dom,org.apache.xerces.parsers,org.jaxen,org.jaxen.jd
>  om,org.w3c.dom,org.xml.sax,org.xml.sax.ext,org.xml.sax.helpers
> Tool: Bnd-${Bundle-Version}
> #-----------------------------------------------------------------------
> [WARNING] Bundle com.example:jdom-wrapper:bundle:1.0-SNAPSHOT : Unused Private-Package
instructions, no such package(s) on the class path: [!*]
> [ERROR] Bundle com.example:jdom-wrapper:bundle:1.0-SNAPSHOT : Classes found in the wrong
directory: {JDOMAbout$Info.class=long, JDOMAbout.class=long, JDOMAbout$Author.class=long}
> [ERROR] Error(s) found in bundle configuration
> [INFO] ------------------------------------------------------------------------
> [INFO] BUILD FAILURE
> [INFO] ------------------------------------------------------------------------
> [INFO] Total time: 1.796s
> [INFO] Finished at: Thu Jul 05 11:23:34 PDT 2012
> [INFO] Final Memory: 5M/81M
> [INFO] ------------------------------------------------------------------------
> [ERROR] Failed to execute goal org.apache.felix:maven-bundle-plugin:2.4.0-SNAPSHOT:bundle
(default-cli) on project jdom-wrapper: Error(s) found in bundle configuration -> [Help
1]
> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.felix:maven-bundle-plugin:2.4.0-SNAPSHOT:bundle
(default-cli) on project jdom-wrapper: Error(s) found in bundle configuration
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
> 	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
> 	at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
> 	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
> 	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
> 	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
> 	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
> 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:597)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
> 	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
> Caused by: org.apache.maven.plugin.MojoExecutionException: Error(s) found in bundle configuration
> 	at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:407)
> 	at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:264)
> 	at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:255)
> 	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
> 	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
> 	... 19 more
> Caused by: org.apache.maven.plugin.MojoFailureException: Error(s) found in bundle configuration
> 	at org.apache.felix.bundleplugin.BundlePlugin.execute(BundlePlugin.java:356)
> 	... 23 more
> [ERROR] 
> [ERROR] 
> [ERROR] For more information about the errors and possible solutions, please read the
following articles:
> [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
> {code}

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message