You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@felix.apache.org by Simon Chemouil <sc...@gmail.com> on 2014/10/17 15:26:38 UTC

Bnd Ipojo Plugin, Ipojo Extension modules, and Maven

Hey,

I'm looking to use a manipulation-time iPojo extension module
(wisdom-ipojo-module) with the Bnd iPojo plugin from Maven... and the
Pojoization BND plugin can't seem to find wisdom-ipojo-module. I checked
the build output with -X, Maven does pass the iPojo extension to BND
along with the iPojo Bnd plugin, but iPojo can't seem to find it :)

Well, re-reading this ... let's just say even XML will be clearer :)

Here's the working version with iPojo Maven Plugin:

           <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>2.5.3</version>
                    <extensions>true</extensions>
                    <configuration>
                        <instructions>
                            <_include>bnd.bnd</_include>
                        </instructions>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-ipojo-plugin</artifactId>
                    <version>1.12.0</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>ipojo-bundle</goal>
                            </goals>
                        </execution>
                    </executions>
                    <dependencies>
                        <dependency>
                            <groupId>org.wisdom-framework</groupId>
                            <artifactId>wisdom-ipojo-module</artifactId>
                            <version>${wisdom.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>



And here's the version using the Bnd Ipojo Plugin that doesn't work but
should be equivalent:

                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>2.5.3</version>
                    <extensions>true</extensions>
                    <configuration>
                        <instructions>
                            <_plugin>
                             org.apache.felix.ipojo.bnd.PojoizationPlugin
                            </_plugin>
                            <_include>bnd.bnd</_include>
                        </instructions>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.wisdom-framework</groupId>
                            <artifactId>wisdom-ipojo-module</artifactId>
                            <version>${wisdom.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.felix</groupId>
                            <artifactId>bnd-ipojo-plugin</artifactId>
                            <version>1.12.0</version>
                        </dependency>
                    </dependencies>
                </plugin>

Obviously, I prefer the latter since it allows me to configure all OSGi
projects with only a 2-liner maven-bundle-plugin build declaration,
whether it's iPojo or DS.

I suspect the culprit is in the Bnd Ipojo Module, but an early look at
the code didn't give a clear reason why.

Any pointers appreciated (Guillaume or Clément?)

Cheers,

-- 
Simon

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


Re: Bnd Ipojo Plugin, Ipojo Extension modules, and Maven

Posted by Clement Escoffier <cl...@gmail.com>.
Hi,

On 20 octobre 2014 at 18:15:50, Simon Chemouil (schemouil@gmail.com) wrote:

Hey again! 

Great, so, should I open a bug, or something. It would be pretty cool to 
have a fix by the next release :). 
Please do.



Also, it would be very nice if there was a the proper capacity 
generation, similar to what Bnd now does with DS (to work with R5 
resolvers/repositories): 

Provide-Capability: 
osgi.service;effective:=active;objectClass="com.my.provided.Service" 
Require-Capability: osgi.service;effective:=active;filter:="(&(objectCla 
ss=com.my.provided.Service)(someProperty=foo))",osgi.ee;filter:="(& 
(osgi.ee=JavaSE)(version=1.8))" 

One should be careful that BND always generate an osgi.ee entry in 
Require-Capability, so iPOJO must somehow add to it rather than replace it. 

Once again, I can open a bug, and I can contribute the patch if given 
the right pointers. 
Yes, open a bug. 

The manipulator has the capability to modify the manifest (it adds the IPOJO-COMPONENTS header). So probably a good place to do such addition. I’m more concerned on how such metadata can be computed, as the manipulator does not interpret and understand the metadata (it’s just there to write them, the interpretation can only be done at runtime).

Cheers,

Clement





Cheers, 

Simon 

Le 17/10/2014 22:07, Guillaume Sauthier (OW2) a écrit : 
> It’s not really similar, wisdom is not using @stereotypes discovery, it simply declares a BindingModule that will register some annotations in the framework (along with the associated behaviour). 
> 
> In fact, what happen is that the Bnd plugin is not creating a new AnnotationMetadataProvider with a ServiceLoaderModuleProvider. 
> By default, the AMP does not search for available modules, it only uses the default core module. 
> 
> Looks like it’s a simple fix 
> 
> -- 
> Guillaume Sauthier (OW2) 
> Sent with Airmail 
> 
> On 17 Oct 2014 at 19:11:52, Clement Escoffier (clement.escoffier@gmail.com) wrote: 
> 
> Hi,  
> 
> Guillaume would be more precise, but it might be https://issues.apache.org/jira/browse/FELIX-4668.  
> Will try to have a look over the weekend.  
> 
> Cheers,  
> 
> Clement  
> On 17 octobre 2014 at 15:27:09, Simon Chemouil (schemouil@gmail.com) wrote:  
> 
> Hey,  
> 
> I'm looking to use a manipulation-time iPojo extension module  
> (wisdom-ipojo-module) with the Bnd iPojo plugin from Maven... and the  
> Pojoization BND plugin can't seem to find wisdom-ipojo-module. I checked  
> the build output with -X, Maven does pass the iPojo extension to BND  
> along with the iPojo Bnd plugin, but iPojo can't seem to find it :)  
> 
> Well, re-reading this ... let's just say even XML will be clearer :)  
> 
> Here's the working version with iPojo Maven Plugin:  
> 
> <plugin>  
> <groupId>org.apache.felix</groupId>  
> <artifactId>maven-bundle-plugin</artifactId>  
> <version>2.5.3</version>  
> <extensions>true</extensions>  
> <configuration>  
> <instructions>  
> <_include>bnd.bnd</_include>  
> </instructions>  
> </configuration>  
> </plugin>  
> 
> <plugin>  
> <groupId>org.apache.felix</groupId>  
> <artifactId>maven-ipojo-plugin</artifactId>  
> <version>1.12.0</version>  
> <executions>  
> <execution>  
> <goals>  
> <goal>ipojo-bundle</goal>  
> </goals>  
> </execution>  
> </executions>  
> <dependencies>  
> <dependency>  
> <groupId>org.wisdom-framework</groupId>  
> <artifactId>wisdom-ipojo-module</artifactId>  
> <version>${wisdom.version}</version>  
> </dependency>  
> </dependencies>  
> </plugin>  
> 
> 
> 
> And here's the version using the Bnd Ipojo Plugin that doesn't work but  
> should be equivalent:  
> 
> <plugin>  
> <groupId>org.apache.felix</groupId>  
> <artifactId>maven-bundle-plugin</artifactId>  
> <version>2.5.3</version>  
> <extensions>true</extensions>  
> <configuration>  
> <instructions>  
> <_plugin>  
> org.apache.felix.ipojo.bnd.PojoizationPlugin  
> </_plugin>  
> <_include>bnd.bnd</_include>  
> </instructions>  
> </configuration>  
> <dependencies>  
> <dependency>  
> <groupId>org.wisdom-framework</groupId>  
> <artifactId>wisdom-ipojo-module</artifactId>  
> <version>${wisdom.version}</version>  
> </dependency>  
> <dependency>  
> <groupId>org.apache.felix</groupId>  
> <artifactId>bnd-ipojo-plugin</artifactId>  
> <version>1.12.0</version>  
> </dependency>  
> </dependencies>  
> </plugin>  
> 
> Obviously, I prefer the latter since it allows me to configure all OSGi  
> projects with only a 2-liner maven-bundle-plugin build declaration,  
> whether it's iPojo or DS.  
> 
> I suspect the culprit is in the Bnd Ipojo Module, but an early look at  
> the code didn't give a clear reason why.  
> 
> Any pointers appreciated (Guillaume or Clément?)  
> 
> Cheers,  
> 
> --  
> Simon  
> 
> ---------------------------------------------------------------------  
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org  
> For additional commands, e-mail: users-help@felix.apache.org  
> 
> 

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


Re: Bnd Ipojo Plugin, Ipojo Extension modules, and Maven

Posted by Simon Chemouil <sc...@gmail.com>.
Hey again!

Great, so, should I open a bug, or something. It would be pretty cool to
have a fix by the next release :).

Also, it would be very nice if there was a the proper capacity
generation, similar to what Bnd now does with DS (to work with R5
resolvers/repositories):

Provide-Capability:
osgi.service;effective:=active;objectClass="com.my.provided.Service"
Require-Capability: osgi.service;effective:=active;filter:="(&(objectCla
 ss=com.my.provided.Service)(someProperty=foo))",osgi.ee;filter:="(&
 (osgi.ee=JavaSE)(version=1.8))"

One should be careful that BND always generate an osgi.ee entry in
Require-Capability, so iPOJO must somehow add to it rather than replace it.

Once again, I can open a bug, and I can contribute the patch if given
the right pointers.

Cheers,

Simon

Le 17/10/2014 22:07, Guillaume Sauthier (OW2) a écrit :
> It’s not really similar, wisdom is not using @stereotypes discovery, it simply declares a BindingModule that will register some annotations in the framework (along with the associated behaviour).
> 
> In fact, what happen is that the Bnd plugin is not creating a new AnnotationMetadataProvider with a ServiceLoaderModuleProvider.
> By default, the AMP does not search for available modules, it only uses the default core module.
> 
> Looks like it’s a simple fix
> 
> -- 
> Guillaume Sauthier (OW2)
> Sent with Airmail
> 
> On 17 Oct 2014 at 19:11:52, Clement Escoffier (clement.escoffier@gmail.com) wrote:
> 
> Hi,  
> 
> Guillaume would be more precise, but it might be https://issues.apache.org/jira/browse/FELIX-4668.  
> Will try to have a look over the weekend.  
> 
> Cheers,  
> 
> Clement  
> On 17 octobre 2014 at 15:27:09, Simon Chemouil (schemouil@gmail.com) wrote:  
> 
> Hey,  
> 
> I'm looking to use a manipulation-time iPojo extension module  
> (wisdom-ipojo-module) with the Bnd iPojo plugin from Maven... and the  
> Pojoization BND plugin can't seem to find wisdom-ipojo-module. I checked  
> the build output with -X, Maven does pass the iPojo extension to BND  
> along with the iPojo Bnd plugin, but iPojo can't seem to find it :)  
> 
> Well, re-reading this ... let's just say even XML will be clearer :)  
> 
> Here's the working version with iPojo Maven Plugin:  
> 
> <plugin>  
> <groupId>org.apache.felix</groupId>  
> <artifactId>maven-bundle-plugin</artifactId>  
> <version>2.5.3</version>  
> <extensions>true</extensions>  
> <configuration>  
> <instructions>  
> <_include>bnd.bnd</_include>  
> </instructions>  
> </configuration>  
> </plugin>  
> 
> <plugin>  
> <groupId>org.apache.felix</groupId>  
> <artifactId>maven-ipojo-plugin</artifactId>  
> <version>1.12.0</version>  
> <executions>  
> <execution>  
> <goals>  
> <goal>ipojo-bundle</goal>  
> </goals>  
> </execution>  
> </executions>  
> <dependencies>  
> <dependency>  
> <groupId>org.wisdom-framework</groupId>  
> <artifactId>wisdom-ipojo-module</artifactId>  
> <version>${wisdom.version}</version>  
> </dependency>  
> </dependencies>  
> </plugin>  
> 
> 
> 
> And here's the version using the Bnd Ipojo Plugin that doesn't work but  
> should be equivalent:  
> 
> <plugin>  
> <groupId>org.apache.felix</groupId>  
> <artifactId>maven-bundle-plugin</artifactId>  
> <version>2.5.3</version>  
> <extensions>true</extensions>  
> <configuration>  
> <instructions>  
> <_plugin>  
> org.apache.felix.ipojo.bnd.PojoizationPlugin  
> </_plugin>  
> <_include>bnd.bnd</_include>  
> </instructions>  
> </configuration>  
> <dependencies>  
> <dependency>  
> <groupId>org.wisdom-framework</groupId>  
> <artifactId>wisdom-ipojo-module</artifactId>  
> <version>${wisdom.version}</version>  
> </dependency>  
> <dependency>  
> <groupId>org.apache.felix</groupId>  
> <artifactId>bnd-ipojo-plugin</artifactId>  
> <version>1.12.0</version>  
> </dependency>  
> </dependencies>  
> </plugin>  
> 
> Obviously, I prefer the latter since it allows me to configure all OSGi  
> projects with only a 2-liner maven-bundle-plugin build declaration,  
> whether it's iPojo or DS.  
> 
> I suspect the culprit is in the Bnd Ipojo Module, but an early look at  
> the code didn't give a clear reason why.  
> 
> Any pointers appreciated (Guillaume or Clément?)  
> 
> Cheers,  
> 
> --  
> Simon  
> 
> ---------------------------------------------------------------------  
> To unsubscribe, e-mail: users-unsubscribe@felix.apache.org  
> For additional commands, e-mail: users-help@felix.apache.org  
> 
> 

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


Re: Bnd Ipojo Plugin, Ipojo Extension modules, and Maven

Posted by "Guillaume Sauthier (OW2)" <gu...@gmail.com>.
It’s not really similar, wisdom is not using @stereotypes discovery, it simply declares a BindingModule that will register some annotations in the framework (along with the associated behaviour).

In fact, what happen is that the Bnd plugin is not creating a new AnnotationMetadataProvider with a ServiceLoaderModuleProvider.
By default, the AMP does not search for available modules, it only uses the default core module.

Looks like it’s a simple fix

-- 
Guillaume Sauthier (OW2)
Sent with Airmail

On 17 Oct 2014 at 19:11:52, Clement Escoffier (clement.escoffier@gmail.com) wrote:

Hi,  

Guillaume would be more precise, but it might be https://issues.apache.org/jira/browse/FELIX-4668.  
Will try to have a look over the weekend.  

Cheers,  

Clement  
On 17 octobre 2014 at 15:27:09, Simon Chemouil (schemouil@gmail.com) wrote:  

Hey,  

I'm looking to use a manipulation-time iPojo extension module  
(wisdom-ipojo-module) with the Bnd iPojo plugin from Maven... and the  
Pojoization BND plugin can't seem to find wisdom-ipojo-module. I checked  
the build output with -X, Maven does pass the iPojo extension to BND  
along with the iPojo Bnd plugin, but iPojo can't seem to find it :)  

Well, re-reading this ... let's just say even XML will be clearer :)  

Here's the working version with iPojo Maven Plugin:  

<plugin>  
<groupId>org.apache.felix</groupId>  
<artifactId>maven-bundle-plugin</artifactId>  
<version>2.5.3</version>  
<extensions>true</extensions>  
<configuration>  
<instructions>  
<_include>bnd.bnd</_include>  
</instructions>  
</configuration>  
</plugin>  

<plugin>  
<groupId>org.apache.felix</groupId>  
<artifactId>maven-ipojo-plugin</artifactId>  
<version>1.12.0</version>  
<executions>  
<execution>  
<goals>  
<goal>ipojo-bundle</goal>  
</goals>  
</execution>  
</executions>  
<dependencies>  
<dependency>  
<groupId>org.wisdom-framework</groupId>  
<artifactId>wisdom-ipojo-module</artifactId>  
<version>${wisdom.version}</version>  
</dependency>  
</dependencies>  
</plugin>  



And here's the version using the Bnd Ipojo Plugin that doesn't work but  
should be equivalent:  

<plugin>  
<groupId>org.apache.felix</groupId>  
<artifactId>maven-bundle-plugin</artifactId>  
<version>2.5.3</version>  
<extensions>true</extensions>  
<configuration>  
<instructions>  
<_plugin>  
org.apache.felix.ipojo.bnd.PojoizationPlugin  
</_plugin>  
<_include>bnd.bnd</_include>  
</instructions>  
</configuration>  
<dependencies>  
<dependency>  
<groupId>org.wisdom-framework</groupId>  
<artifactId>wisdom-ipojo-module</artifactId>  
<version>${wisdom.version}</version>  
</dependency>  
<dependency>  
<groupId>org.apache.felix</groupId>  
<artifactId>bnd-ipojo-plugin</artifactId>  
<version>1.12.0</version>  
</dependency>  
</dependencies>  
</plugin>  

Obviously, I prefer the latter since it allows me to configure all OSGi  
projects with only a 2-liner maven-bundle-plugin build declaration,  
whether it's iPojo or DS.  

I suspect the culprit is in the Bnd Ipojo Module, but an early look at  
the code didn't give a clear reason why.  

Any pointers appreciated (Guillaume or Clément?)  

Cheers,  

--  
Simon  

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


Re: Bnd Ipojo Plugin, Ipojo Extension modules, and Maven

Posted by Clement Escoffier <cl...@gmail.com>.
Hi,

Guillaume would be more precise, but it might be https://issues.apache.org/jira/browse/FELIX-4668.
Will try to have a look over the weekend.

Cheers,

Clement
On 17 octobre 2014 at 15:27:09, Simon Chemouil (schemouil@gmail.com) wrote:

Hey,  

I'm looking to use a manipulation-time iPojo extension module  
(wisdom-ipojo-module) with the Bnd iPojo plugin from Maven... and the  
Pojoization BND plugin can't seem to find wisdom-ipojo-module. I checked  
the build output with -X, Maven does pass the iPojo extension to BND  
along with the iPojo Bnd plugin, but iPojo can't seem to find it :)  

Well, re-reading this ... let's just say even XML will be clearer :)  

Here's the working version with iPojo Maven Plugin:  

<plugin>  
<groupId>org.apache.felix</groupId>  
<artifactId>maven-bundle-plugin</artifactId>  
<version>2.5.3</version>  
<extensions>true</extensions>  
<configuration>  
<instructions>  
<_include>bnd.bnd</_include>  
</instructions>  
</configuration>  
</plugin>  

<plugin>  
<groupId>org.apache.felix</groupId>  
<artifactId>maven-ipojo-plugin</artifactId>  
<version>1.12.0</version>  
<executions>  
<execution>  
<goals>  
<goal>ipojo-bundle</goal>  
</goals>  
</execution>  
</executions>  
<dependencies>  
<dependency>  
<groupId>org.wisdom-framework</groupId>  
<artifactId>wisdom-ipojo-module</artifactId>  
<version>${wisdom.version}</version>  
</dependency>  
</dependencies>  
</plugin>  



And here's the version using the Bnd Ipojo Plugin that doesn't work but  
should be equivalent:  

<plugin>  
<groupId>org.apache.felix</groupId>  
<artifactId>maven-bundle-plugin</artifactId>  
<version>2.5.3</version>  
<extensions>true</extensions>  
<configuration>  
<instructions>  
<_plugin>  
org.apache.felix.ipojo.bnd.PojoizationPlugin  
</_plugin>  
<_include>bnd.bnd</_include>  
</instructions>  
</configuration>  
<dependencies>  
<dependency>  
<groupId>org.wisdom-framework</groupId>  
<artifactId>wisdom-ipojo-module</artifactId>  
<version>${wisdom.version}</version>  
</dependency>  
<dependency>  
<groupId>org.apache.felix</groupId>  
<artifactId>bnd-ipojo-plugin</artifactId>  
<version>1.12.0</version>  
</dependency>  
</dependencies>  
</plugin>  

Obviously, I prefer the latter since it allows me to configure all OSGi  
projects with only a 2-liner maven-bundle-plugin build declaration,  
whether it's iPojo or DS.  

I suspect the culprit is in the Bnd Ipojo Module, but an early look at  
the code didn't give a clear reason why.  

Any pointers appreciated (Guillaume or Clément?)  

Cheers,  

--  
Simon  

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