Allow a mechanism to give preference to local resources over the ones from 
embedded jars
----------------------------------------------------------------------------------------

                 Key: FELIX-526
                 URL: https://issues.apache.org/jira/browse/FELIX-526
             Project: Felix
          Issue Type: Improvement
          Components: Maven Bundle Plugin
    Affects Versions: maven-bundle-plugin-1.4.0
         Environment: JDK 5 on OpenSolaris/x86
            Reporter: Sahoo
             Fix For: maven-bundle-plugin-1.4.1


Please see the following email discussion between me and Stuart. It happened on 
[EMAIL PROTECTED] alias on 31 Mar 2008 with the subject that reads like this:
[maven-bundle-plugin] How to stop exporting a resource from an inlined jar?

On 31/03/2008, Sahoo <[EMAIL PROTECTED]> wrote:
> >
> > Hi,
> >
> > I am trying to use maven-bundle-plugin v1.4.0. I prepare a bundle (say
> > bundle.jar) which inlines the contents of another jar type artifact
> > called javax.faces:jsf-impl. There is a resource called
> > META-INF/services/com.sun.faces.spi.injectionprovider which is present
> > both in the jsf-impl.jar as well in current project's src/main/resources
> > area. I want to package the one that's in our workspace. So, I
> > configured the plugin like this:
> >
> > <configuration>
> >     <Embed-Dependency>
> >     *;groupId=javax.faces;artifactId=jsf-impl;inline=true
> >     </Embed-Dependency>
> >
> >     <!-- Package everything from the embedded jar in the
> >        final bundle except the following file which
> >        we maintain in our src/main/resources dir:
> >        META-INF/services/com.sun.faces.spi.injectionprovider
> >     -->
> >     <_exportcontents>
> >      !META-INF/services/com.sun.faces.spi.injectionprovider,*
> >     </_exportcontents>
> > </configuration>
> >
> > Yet, I see the resource that is being packaged in the bundle is the one
> > from jsf-impl.jar and not from target/classes/... area. What am I doing
> > wrong?


currently embedded dependencies are added to the Include-Resource
statement after the maven resources - unfortunately this means that any
inlined entries will overwrite local entries, which isn't optimal  :( 

I'll change this ordering round in 1.4.1 (open a JIRA issue to remind me)

you'll also be able to customize the Include-Resource better in 1.4.1, eg:

   <Include-Resource>
      {maven-dependencies},some-file,{maven-resources},another-file
   </Include-Resource>

where {maven-dependencies} and {maven-resources} expand to the list of
embedded entries and maven resources respectively - you can already do
this to some extent with 1.4.0, but there's a bug on Windows with replacing
the "{maven-dependencies}" token...

so the workaround with 1.4.0 would be to use something like this in place
of the Embed-Dependency - you'll need to list each dependency explicitly
using @artifactId-version.jar to inline it (this is what Embed-Dependency
does under the covers) for example:

   <Include-Resource>
      @jsf-impl-1.2-b19.jar,{maven-resources}
   </Include-Resource>

will inline the JSF jar and then overlay resources from the current project

HTH

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to