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]
> > >
> > >
> >
>

Reply via email to