felix-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nick Campion <ncamp...@linux.vnet.ibm.com>
Subject Preventing addition of class directories to bundle root
Date Fri, 01 Aug 2008 15:49:16 GMT
I'm having a bit of a problem with a bundle i'm trying to build.  
Because of some external tooling, all the class files need to be located 
in ./WEB-INF/classes/com/... instead of ./com/ (with respect to the 
bundle root).  No matter what i put in the pom.xml i don't seem to be 
able to place the output from the compile into ./WEB-INF/classes/com .  
Using <Include-Resource> instruction to move the target/classes/com 
branch to ./WEB-INF/classes/com but it also gets put in ./com .

My pom.xml

        <build>
            <plugins>
                <!-- OSGi Felix bundle plugin -->
                        <plugin>
                                <groupId>org.apache.felix</groupId>
                                <artifactId>maven-bundle-plugin</artifactId>
                                <!-- use latest release of plugin
                                <version>1.4.0</version>
                                -->
                                <!-- load felix extensions -->
                                <extensions>true</extensions>
                                <configuration>
                                        <!--
                                                The following along with 
the maven-dependency-plugin configured below
                                                enables running/testing 
the bundle within eclipse.
                                        -->
                                        <instructions>
                                                
<_include>src/main/resources/META-INF/MANIFEST.MF</_include>
                                                
<Include-Resource>plugin.xml, WEB-INF=target/classes/WEB-INF, 
WEB-INF/classes/com=target/classes/com</Include-Resource>
                                                
<Bundle-ClassPath>WEB-INF/classes</Bundle-ClassPath>
                                                <Implementation-Title>NC 
Test Bundle</Implementation-Title>
                                                
<Implementation-Version>${pom.version}</Implementation-Version>
                                                
<Implementation-Vendor>NC</Implementation-Vendor>
                                                
<Implementation-Vendor-Id>com.nick.test</Implementation-Vendor-Id>
                                                <!-- 
<Private-Package>*</PrivatePackage>-->
                                                
<Export-Package>!*</Export-Package>

                                        </instructions>
                                </configuration>
                        </plugin>
            </plugins>
        </build>

I'm getting lots of errors along the lines of:
[ERROR] Error building bundle 
com.nick.test.ui:gui:bundle:1.0.0.DEV-SNAPSHOT : Class in different 
directory than declared. Path from class name is 
com/nick/test/ui/gui/LogInstantiator.class but the path in the jar is 
/com/nick/test/ui/gui/LogInstantiator.class from Jar:dot

The only difference being the leading '/'.  I'm only making a hypothesis 
that this is caused because the class files are being put in /com as 
well as /WEB-INF/classes/com.  if i put in <_failok> the produced bundle 
is virtually what i want (minus having the com directory also in the root)

Anyone have any ideas?


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@felix.apache.org
For additional commands, e-mail: users-help@felix.apache.org


Mime
View raw message