Notice that DefaultInstanceDeclaration is in a private package of iPOJO. So I assume that there are some duplicate packages under the hood that causes this issue... --G
2014/1/24 Zaid Jamal Saeed Al Mahmoud <[email protected]> > Yes. This is the output: > > ipojo:instances > Instance org.apache.felix.ipojo.arch.gogo.Arch-0 -> valid > > > > -----Original Message----- > From: Clement Escoffier [mailto:[email protected]] > Sent: Saturday, January 25, 2014 12:01 AM > To: Apache Felix - Users Mailing List > Subject: Re: iPOJO Components instantiated but no visible output > > Hi, > > Could you try : > > > ipojo:instances > > Regards, > > Clement > > On 24 janv. 2014, at 20:49, Zaid Jamal Saeed Al Mahmoud < > [email protected]> wrote: > > > Hey, I manipulated my bundle using Ipojo Ant Task, as the following: > > > > <project> > > <target name="main"> > > <!-- Change the path to point on the iPOJO Ant task jar--> > > <taskdef name="ipojo" > > classname="org.apache.felix.ipojo.task.IPojoTask" > > > > classpath="C:/Users/zaid.almahmoud/Dropbox/EBTIC/ADERE/feasibility-codes/ipojo/ipojo-distribution-1.11.0/bundle/org.apache.felix.ipojo.ant-1.11.0.jar"/> > > <ipojo > > > > input="C:/Users/zaid.almahmoud/Desktop/plugins/HelloService_1.0.0.201401222235.jar" > > > output="C:/Users/zaid.almahmoud/Desktop/plugins/Manipulated_HelloService.jar" > > /> > > </target> > > </project> > > > > > > Now, I can see in my app that the factory is valid. This is the output > in the command: > > g! ipojo:factories > > Factory my-factory (VALID) > > Factory org.apache.felix.ipojo.arch.gogo.Arch (UNKNOWN) - Private > > > > Therefore the factory "my-factory" is available unlike before. > > > > > > However, my instance is not available, which was created as the > following: > > DefaultInstanceDeclaration providerDeclaration = new > DefaultInstanceDeclaration(b.getBundleContext(), "my-factory"); > > providerDeclaration.start(); > > > > Again, this does not show an error, but it doesn't display the expected > output in the start() method of the bundle, and on the command, I can see: > > > > g! ipojo:instance my-factory-0 > > Instance named 'my-factory-0' not found > > > > > > Can you help please? Thanks. > > > > > > > > > > > > > > -----Original Message----- > > From: Zaid Jamal Saeed Al Mahmoud [mailto:[email protected]] > > Sent: Thursday, January 23, 2014 2:15 PM > > To: [email protected] > > Subject: RE: iPOJO Components instantiated but no visible output > > > > It displays this: > > > > ipojo:factories > > Factory org.apache.felix.ipojo.arch.gogo.Arch (UNKNOWN) - Private > > > > > > I am not sure what you mean by iPOJO manipulation on my bundles, But > > again, I am not using ANT or MAVEN. I export the bundles normally in > eclipse (Using export->deployable plugins and fragments). > > Could it be the issue? > > > > > > -----Original Message----- > > From: Clement Escoffier [mailto:[email protected]] > > Sent: Thursday, January 23, 2014 11:52 AM > > To: Apache Felix - Users Mailing List > > Subject: Re: iPOJO Components instantiated but no visible output > > > > Hi, > > > > The output are interesting, it looks like your instances are not > declared correctly. Can you try: > > > >> ipojo:factories > > > > > > By the way, how are you applying the iPOJO manipulation on your bundles ? > > > > Regards, > > > > Clement > > > > On 23 janv. 2014, at 08:30, Zaid Jamal Saeed Al Mahmoud < > [email protected]> wrote: > > > >> Okay, I did that. Here's the output: > >> > >> g! ipojo:instances > >> Instance org.apache.felix.ipojo.arch.gogo.Arch-0 -> valid > >> > >> g! ipojo:instance my-factory-0 > >> g! Instance named 'my-factory-0' not found > >> > >> g! ipojo:instance my-consumer-factory-0 Instance named > >> 'my-consumer-factory-0' not found > >> > >> > >> > >> > >> -----Original Message----- > >> From: Clement Escoffier [mailto:[email protected]] > >> Sent: Thursday, January 23, 2014 10:58 AM > >> To: Apache Felix - Users Mailing List > >> Subject: Re: iPOJO Components instantiated but no visible output > >> > >> Hi, > >> > >> Could you use the 'instances' command to retrieve the list of instances > and their state ? > >> (http://felix.apache.org/documentation/subprojects/apache-felix-ipojo > >> /apache-felix-ipojo-tools/ipojo-arch-command.html) > >> > >>> ipojo:instances > >> // dump all instances and declaration > >>> ipojo:instance my-factory-0 > >> // introspect the first instance > >>> ipojo:instance my-consumer-factory-0 > >> // introspect the second instance > >> > >> Regards, > >> > >> Clement > >> > >> > >> On 22 janv. 2014, at 20:38, Zaid Jamal Saeed Al Mahmoud < > [email protected]> wrote: > >> > >>> I have 2 iPOJO Components. > >>> 1- A Provider bundle that provides "Hello" service. Below is the > implementation of the component: > >>> package helloipojo; > >>> > >>> > >>> import helloipojo.service.HelloService; > >>> > >>> import org.apache.felix.ipojo.annotations.Component; > >>> import org.apache.felix.ipojo.annotations.Invalidate; > >>> import org.apache.felix.ipojo.annotations.Provides; > >>> import org.apache.felix.ipojo.annotations.Validate; > >>> > >>> > >>> @Component(name="my-factory") > >>> @Provides > >>> public class HelloServiceImpl implements HelloService{ > >>> > >>> @Override > >>> public void sayHello() { > >>> > >>> System.out.println("Hello iPojo!"); > >>> > >>> } > >>> > >>> > >>> @Validate > >>> public void start() throws Exception { > >>> > >>> System.out.println("Hello, I am ipojo bundle start method"); > >>> > >>> } > >>> > >>> @Invalidate > >>> public void stop() throws Exception { > >>> > >>> System.out.println("Bye Bye, I am ipojo bundle stop method"); > >>> > >>> } > >>> > >>> > >>> > >>> } > >>> 2- Consumer bundle that uses HelloService object as the follwing: > >>> package helloserviceconsumer; > >>> > >>> import helloipojo.service.HelloService; > >>> > >>> import org.apache.felix.ipojo.annotations.Component; > >>> import org.apache.felix.ipojo.annotations.Invalidate; > >>> import org.apache.felix.ipojo.annotations.Requires; > >>> import org.apache.felix.ipojo.annotations.Validate; > >>> > >>> @Component(name="my-consumer-factory") > >>> public class HelloConsumer { > >>> @Requires > >>> HelloService helloObject; > >>> > >>> @Validate > >>> private void start() { > >>> // Starting method > >>> //... > >>> helloObject.sayHello(); > >>> //... > >>> } > >>> > >>> @Invalidate > >>> protected void stop() { > >>> // Stopping method > >>> if(helloObject!=null) { helloObject.sayHello(); > >>> } > >>> > >>> else System.out.println("hello service GONE!"); > >>> } > >>> } > >>> In a seperate Java application, I load these two bundles and start > them on Apache Felix as the following: > >>> Bundle b = > >>> bundleContext1.installBundle("file:C:\\Users\\zaid.almahmoud\\Deskto > >>> p\ \plugins\\HelloService_1.0.0.201401222235.jar"); > >>> b.start(); > >>> > >>> Bundle c = > >>> bundleContext1.installBundle("file:C:\\Users\\zaid.almahmoud\\Deskto > >>> p\ \plugins\\HelloServiceConsumer_1.0.0.201401222257.jar"); > >>> c.start(); > >>> All the above works fine. > >>> Now, I would like to instantiate these two components dynamically and > observe the consumption of the bundle provider service by the bundle > consumer. I used Instance Declaration, as the following: > >>> DefaultInstanceDeclaration providerDeclaration = new > DefaultInstanceDeclaration(b.getBundleContext(), "my-factory"); > >>> providerDeclaration.start(); > >>> > >>> DefaultInstanceDeclaration consumerDeclaration = new > DefaultInstanceDeclaration(c.getBundleContext(), "my-consumer-factory"); > >>> consumerDeclaration.start(); No errors when > >>> running the application. However, I could not see the "Hello" Messages > that exists in the start() methods of both the service provider and > consumer. I see absolutely NOTHING. That means the components are not > instantiated correctly. Where did I go wrong? Thanks. > >>> > >>> > >>> > >>> Zaid. > >>> > >> > >> > >> --------------------------------------------------------------------- > >> To unsubscribe, e-mail: [email protected] > >> For additional commands, e-mail: [email protected] > >> > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [email protected] > > For additional commands, e-mail: [email protected] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >

