2012/4/12 Göktürk Gezer <[email protected]> > Hi, > > On Thu, Apr 12, 2012 at 11:50 AM, Guillaume Sauthier (Objectweb) < > [email protected]> wrote: > > > Yes, the DirectoryResourceStore is extensible. > > I'm just wondering if we cannot achieve the same goal in an easier way. > > > > What do you think of executing the maven-bundle-plugin's "manifest" goal > > with the ipojo-bnd-plugin activated ? > > > I didn't have a look at the ipojo-bnd-plugin yet. But definetely it should > be considered. I just focused on maven-ipojo-plugin first. >
For me, modifying the Store for a new usage of maven-ipojo-plugin when the same goal could be achieved with a combination of existing maven-bundle-plugin + ipojo-bnd-plugin is some kind of duplicate effort ... > > > I tried that on a simple example, and I obtained a manipulated manifest > in > > the defined directory... > > > Is this also manipulated the classes? > maven-bundle-plugin@manifest only generates the manifest in a dedicated directory. The bnd-plugin manipulates the component's classes, but this goal is designed not to produce any bytecode, so no manipulated bytecode here... Anyway, if you use the maven-bundle-plugin@bundle goal, with the "manifestLocation" configuration, you get both the manipulated bundle content AND the manipulated MANIFEST written in the location of your choice. --G > > > > > here is my plugin configuration: > > > > <plugin> > > <groupId>org.apache.felix</groupId> > > <artifactId>maven-bundle-plugin</artifactId> > > <version>2.3.7</version> > > <extensions>true</extensions> > > <executions> > > <execution> > > <id>generate-bundle-manifest</id> > > <goals> > > <goal>manifest</goal> > > </goals> > > <configuration> > > <instructions> > > > > > > > > <_plugin>org.apache.felix.ipojo.bnd.PojoizationPlugin;use-local-schemas=true</_plugin> > > </instructions> > > <manifestLocation>target/manifest</manifestLocation> > > </configuration> > > </execution> > > </executions> > > <dependencies> > > <dependency> > > <groupId>org.apache.felix</groupId> > > <artifactId>bnd-ipojo-plugin</artifactId> > > <version>1.8.4</version> > > </dependency> > > </dependencies> > > </plugin> > > > > > > Hope that helps > > --G > > > Regards, > Gokturk > > > > > > > 2012/4/12 Clement Escoffier <[email protected]> > > > > > Hi, > > > > > > On 11.04.2012, at 18:31, Göktürk Gezer wrote: > > > > > > > Hi Clement, > > > > > > > > > > > >>> Question is, in which shape we should integrate that facility into > > > maven > > > >>> build: > > > >>> * A new goal for directoryManipulation for use in 'compile' phase > > > >>> * A new boolean property for ipojo-bundle goal to unpack > manipulated > > > >>> content into project folder > > > >>> * Modification of current mojo to also accept directory paths as > > > >>> manipulation candidate > > > >>> * Or combination of above approaches, > > > >>> > > > >> > > > >> So, I will eliminate 2 because of the overhead. I would be in favor > > of 1 > > > >> because you don't actually have to package the bundle to get it to > > work, > > > >> however it requires the manifest to be updated too. I'm not sure > that > > > this > > > >> is actually possible. > > > >> > > > > I reconsidered the option-1 today and yeah, it seems non-trivial just > > > > inside maven-ipojo-plugin. But i've managed to implement the option-1 > > > that > > > > way: > > > > > > > > *Created a new goal "ipojo-manipulate" in "process-classes" phase, > > which > > > > extends maven-bundle-plugin's "manifest" goal. Plugin property > > > propagation > > > > is managed by maven-inherit-plugin added to parent pom. > > > > *As i see maven-ipojo-plugin is beeing used with maven-bundle-plugin > > > > generally. So i read the maven-bundle-plugin configuration in pom.xml > > > > inside "ipojo-manipulate" mojo to issue a MANIFEST file generation. > > > > If pom.xml does not contain maven-bundle-plugin instructions then > > > MANIFEST > > > > is generated with default values by bnd. > > > > *Then manipulate the class contents and MANIFEST file using > > > > directoryManipulation(); > > > > > > > > In my experiments, manipulated contents and MANIFEST work just fine > > after > > > > maven-bundle-plugin:bundle without maven-ipojo-plugin:ipojo-bundle > > after > > > > packaging. > > > > > > > > When configured correctly with m2e plugin, i believe that this new > goal > > > can > > > > replace ipojo-ant task inside eclipse. But i don't know it for sure, > > > didn't > > > > tried it yet, since i don't know how m2e's MavenBuilder works > > internally. > > > > > > > > One problem with the implementation comes from > > > > DirectoryResourceStore.open() method, since it is writing manipulated > > > > MANIFEST to a fixed location rather then altering given MANIFEST. So > i > > > > added a additional field to DirectoryResourceStore to keep MANIFEST > > > file's > > > > path, then used it. However i don't know if i'm breaking some > intended > > > > behavior here? > > > > > > > > Please let me know WDYT about that approach in theory … > > > > > > The DirectoryResourceStore is definitely extendible. Guillaume has > > > probably a better idea about it. But anyway, it looks really cool ! > > > > > > Regards, > > > > > > Clement > > > > > > > > > > > > > > From my favorite to less favorite: 1 - 3 - 2. > > > > > > > > > > > >> Regards, > > > >> > > > >> Clement > > > >> > > > >> > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [email protected] > > > For additional commands, e-mail: [email protected] > > > > > > > > >

