Hi Gokturk,

I had looked at the first URL when I was attempting to get my ancient
version of the Eclipse plugin to work.  I had first attempted to follow
its directions, but I received an exception when attempting to manipulate
the bundle.

Here's what I got:

Buildfile: /Users/mcook008/Documents/workspace/MyiPOJOBundle/build.xml

manipulate:
       [ipojo] Input directory :
/Users/mcook008/Documents/workspace/MyiPOJOBundle/bin
       [ipojo] Metadata file :
/Users/mcook008/Documents/workspace/MyiPOJOBundle/metadata.xml
       [ipojo] Start manipulation

BUILD FAILED
/Users/mcook008/Documents/workspace/MyiPOJOBundle/build.xml:54:
java.lang.ArrayIndexOutOfBoundsException: 8



On the second URL, it looks interesting, but there is insufficient
information on the page for someone without subject matter expertise to
understand how to configure it.

I have 15 years of Java programming experience, and I've been working with
OSGi for several years.  I'm very comfortable building my own manifests
and developing (I think) good OSGi code.  But there is a learning curve
associated with what I do, and I often work with others who don't have the
time to become expert in all things OSGi, so I was attempting to find out
if iPOJO might make it easier for me to teach them an easier way to
develop OSGi applications.  So far, it unfortunately appears that there is
more difficulty in trying to simplify the development process than there
is in the development process itself.

I'm likely missing something trivial and obvious to those who work with
iPOJO regularly, and my poor Eclipse environment is likely hopelessly
misconfigured from my failed attempts at finding the correct combination
of libraries.

I think maybe I'll stick with the "old fashioned" OSGi way, unless there
is a decent tutorial available which I can follow and learn the "correct"
way to work with iPOJO.  The funny thing is that a couple of years ago, I
had used Clement's old iPOJO plugin for a few projects, and it worked
easily.  That's what made me decide to try it again, but I can't repeat
the good results of a couple of years ago...

Thanks for all of the help.
Mike




On 10/12/12 12:50 PM, "Göktürk Gezer" <[email protected]> wrote:

>Hi,
>
>Yeah Michael is right, eclipse-ipojo-plugin is not updated since almost 4
>years. And It's using ipojo-1.0.0 internally.
>
>You should check
>http://felix.apache.org/site/apache-felix-ipojo-eclipse-integration.html
>
>You would also like
>http://gitorious.ow2.org/ow2-chameleon/eclipse-ipojo-builder You can use
>this plugin to integrate ipojo manipulation process right into eclipse's
>own building phase and can use eclipse equinox launcher.
>
>These would be necessary for you to build your own development environment
>without so much burden.
>
>
>Regards,
>Gokturk
>
>
>
>On Fri, Oct 12, 2012 at 6:11 PM, Simon Chemouil <[email protected]>
>wrote:
>
>> Michael,
>>
>> Concerning iPojo itself, I think you won't find much tutorials outside
>> of iPojo's website. That website could definitely be improved and some
>> pages are outdated. I know iPojo is used in various companies, but
>> iPojo users are rather quiet compared to Guice or Spring/Blueprint
>> users who blog a lot more.
>>
>> I suggest you take at look at the examples available at
>> 
>>https://svn.apache.org/repos/asf/felix/trunk/ipojo/examples/tutorial-mave
>>n
>> The samples are depending on iPojo 1.5.0-SNAPSHOT so be sure to update
>> the versions (in pom.xml files).
>>
>> We switched to iPojo some time ago (from DS), and it was painless as
>> were already using Maven to build our projects. We simply had to
>> switch annotations and add the proper Maven configuration -- and then
>> benefit from all the other exciting features of iPojo.
>>
>> There is a release coming soon that will fix a few bugs so in the mean
>> time we are following the trunk version. I suggest you take a look at
>> iPojo's JIRA if you encounter a bug during the build in the
>> maven-ipojo-plugin: if the bugs are marked as fix you will either have
>> to build your own local copy of iPojo (1.9.0-SNAPSHOT) or wait for a
>> release.
>>
>> HTH,
>>
>> Simon
>>
>>
>> On Fri, Oct 12, 2012 at 4:29 PM, Cook, Michael J. (OCTO)
>> <[email protected]> wrote:
>> > Simon,
>> >
>> > Excellent. I will look online for tutorials explaining your suggested
>> paths forward. If you know of any good ones, please let me know.
>> >
>> > Mike
>> > Michael Cook
>> > VP Technology Innovation
>> > Comcast
>> > One Comcast Center
>> > Philadelphia, PA 19103
>> > (o) 215-286-8260
>> > (m) 609-458-0332
>> >
>> > ----- Original Message -----
>> > From: Simon Chemouil [mailto:[email protected]]
>> > Sent: Friday, October 12, 2012 08:34 AM
>> > To: [email protected] <[email protected]>
>> > Subject: Re: Getting Started with iPOJO
>> >
>> > Michael,
>> >
>> > It seems like you are using an antique version of iPojo. The import
>> > you show in your manifest is 0.9.0 and the last release is 1.8.2 (that
>> > import is added by the manipulator).
>> >
>> > In an earlier message you said you were using the Eclipse plugin
>> > available on Clement's website. This plugin is not maintained anymore
>> > and while there is a new iPojo Eclipse plugin maintained elsewhere, I
>> > wouldn't advise using it. Rather, you should use the manipulator from
>> > ant or maven depending on how you build your project. If you choose
>> > the maven-ipojo-plugin, you can get decent Eclipse integration using
>> > Maven's Eclipse environment (M2E).
>> >
>> > HTH,
>> >
>> > Simon
>> >
>> > On Fri, Oct 12, 2012 at 2:17 PM, Cook, Michael J. (OCTO)
>> > <[email protected]> wrote:
>> >> Sorry... I forgot to add back in the annotations in my Impl class.  I
>> just
>> >> did and repackaged.  Please disregard the previous manifest.
>> >>
>> >>
>> >>
>> >> Manifest-Version: 1.0
>> >> Export-Package:
>>org.apache.felix.ipojo.handler.temporal,org.apache.fel
>> >>  
>>ix.ipojo.transaction,org.apache.felix.ipojo.extender,org.apache.felix
>> >>  
>>.ipojo.whiteboard,org.apache.felix.ipojo.handlers.event,org.apache.fe
>> >>  
>>lix.ipojo.handlers.jmx,org.apache.felix.ipojo.annotations,cook.michae
>> >>  l
>> >> iPOJO-Components: component { $classname="cook.michael.BogusClass"
>>man
>> >>  ipulation { method { $name="$init" }}}component {
>>$name="cook.michael
>> >>  .MyComponentImpl" $classname="cook.michael.MyComponentImpl"
>>$public="
>> >>  true" org.apache.felix.ipojo.annotations:instantiate { }callback {
>>$t
>> >>  ransition="invalidate" $method="stop" }callback {
>>$transition="valida
>> >>  te" $method="start" }manipulation { method { $name="$init" }method {
>> >>  $name="start" }method { $name="stop" }}}
>> >> Built-By: clement
>> >> Tool: Bnd-0.0.249
>> >> Bundle-Name: Apache Felix iPOJO Annotations
>> >> Created-By: 1.6.0_35 (Apple Inc.) & iPOJO
>> >> Bundle-Vendor: The Apache Software Foundation
>> >> Bundle-Version: 1.8.2
>> >> Build-Jdk: 1.6.0_31
>> >> Bnd-LastModified: 1350044136955
>> >> Bundle-ManifestVersion: 2
>> >> Bundle-Description: iPOJO Annotations
>> >> Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
>> >> Bundle-DocURL:
>>http://felix.apache.org/site/how-to-use-ipojo-annotatio
>> >>  ns.html
>> >> Import-Package: org.osgi.service.log;version=1.3,
>>org.apache.felix.ipo
>> >>  jo.handler.temporal, org.apache.felix.ipojo.transaction,
>>org.apache.f
>> >>  elix.ipojo.architecture;version=0.9.0,
>>org.apache.felix.ipojo.extende
>> >>  r, org.apache.felix.ipojo.whiteboard,
>>org.apache.felix.ipojo;version=
>> >>  0.9.0, org.apache.felix.ipojo.handlers.event,
>>org.apache.felix.ipojo.
>> >>  handlers.jmx, org.osgi.service.cm;version=1.2,
>>org.apache.felix.ipojo
>> >>  .annotations, cook.michael
>> >> Bundle-SymbolicName: iPojoTest
>> >> Originally-Created-By: Apache Maven Bundle Plugin
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> On 10/12/12 8:13 AM, "Cook, Michael J. (OCTO)"
>> >> <[email protected]> wrote:
>> >>
>> >>>OK,
>> >>>
>> >>>Here it is inline (and attached).
>> >>>
>> >>>Manifest-Version: 1.0
>> >>>Export-Package:
>>org.apache.felix.ipojo.handler.temporal,org.apache.fel
>> >>> 
>>ix.ipojo.transaction,org.apache.felix.ipojo.extender,org.apache.felix
>> >>> 
>>.ipojo.whiteboard,org.apache.felix.ipojo.handlers.event,org.apache.fe
>> >>> 
>>lix.ipojo.handlers.jmx,org.apache.felix.ipojo.annotations,cook.michae
>> >>> l
>> >>>iPOJO-Components: component { $classname="cook.michael.BogusClass"
>>man
>> >>> ipulation { method { $name="$init" }}}
>> >>>Built-By: clement
>> >>>Tool: Bnd-0.0.249
>> >>>Bundle-Name: Apache Felix iPOJO Annotations
>> >>>Created-By: 1.6.0_35 (Apple Inc.) & iPOJO
>> >>>Bundle-Vendor: The Apache Software Foundation
>> >>>Bundle-Version: 1.8.2
>> >>>Build-Jdk: 1.6.0_31
>> >>>Bnd-LastModified: 1350043925031
>> >>>Bundle-ManifestVersion: 2
>> >>>Bundle-Description: iPOJO Annotations
>> >>>Bundle-License: http://www.apache.org/licenses/LICENSE-2.0.txt
>> >>>Bundle-DocURL:
>>http://felix.apache.org/site/how-to-use-ipojo-annotatio
>> >>> ns.html
>> >>>Import-Package: org.osgi.service.log;version=1.3,
>>org.apache.felix.ipo
>> >>> jo.handler.temporal, org.apache.felix.ipojo.transaction,
>>org.apache.f
>> >>> elix.ipojo.architecture;version=0.9.0,
>>org.apache.felix.ipojo.extende
>> >>> r, org.apache.felix.ipojo.whiteboard,
>>org.apache.felix.ipojo;version=
>> >>> 0.9.0, org.apache.felix.ipojo.handlers.event,
>>org.apache.felix.ipojo.
>> >>> handlers.jmx, org.osgi.service.cm;version=1.2,
>>org.apache.felix.ipojo
>> >>> .annotations, cook.michael
>> >>>Bundle-SymbolicName: iPojoTest
>> >>>Originally-Created-By: Apache Maven Bundle Plugin
>> >>>
>> >>>
>> >>>
>> >>>Mike
>> >>>
>> >>>On 10/11/12 10:40 PM, "Göktürk Gezer" <[email protected]>
>>wrote:
>> >>>
>> >>>>I wanted MANIFEST.MF file actually :/
>> >>>>
>> >>>>On Fri, Oct 12, 2012 at 5:35 AM, Cook, Michael J. (OCTO) <
>> >>>>[email protected]> wrote:
>> >>>>
>> >>>>> Hmmm...
>> >>>>>
>> >>>>> Here's my metadata.xml...
>> >>>>>
>> >>>>> I get the following error:
>> >>>>>
>> >>>>>  [ERROR] IPOJO-Extender : Cannot instantiate an abstract factory
>>from
>> >>>>> org.apache.felix.ipojo.ComponentFactory
>> >>>>> org.apache.felix.ipojo.ConfigurationException: A component needs a
>> >>>>>class
>> >>>>> name : component immediate="true"
>> >>>>>  at
>> >>>>>
>>
>> 
>>>>>>>org.apache.felix.ipojo.ComponentFactory.check(ComponentFactory.java:
>>>>>>>145)
>> >>>>>  at
>> >>>>>
>>
>> 
>>>>>>>org.apache.felix.ipojo.ComponentFactory.<init>(ComponentFactory.java
>>>>>>>:121
>> >>>>>)
>> >>>>>  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
>> >>>>>Method)
>> >>>>>  at
>> >>>>>
>>
>> 
>>>>>>>sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruc
>>>>>>>torA
>> >>>>>c
>> >>>>>ce
>> >>>>> ssorImpl.java:39)
>> >>>>>  at
>> >>>>>
>>
>> 
>>>>>>>sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Delegating
>>>>>>>Cons
>> >>>>>t
>> >>>>>ru
>> >>>>> ctorAccessorImpl.java:27)
>> >>>>>  at 
>>java.lang.reflect.Constructor.newInstance(Constructor.java:513)
>> >>>>>  at
>> >>>>>
>>
>> 
>>>>>>>org.apache.felix.ipojo.Extender.createAbstractFactory(Extender.java:
>>>>>>>500)
>> >>>>>  at org.apache.felix.ipojo.Extender.parse(Extender.java:301)
>> >>>>>  at
>> 
>>>>>>>org.apache.felix.ipojo.Extender.startManagementFor(Extender.java:237
>>>>>>>)
>> >>>>>  at org.apache.felix.ipojo.Extender.access$600(Extender.java:52)
>> >>>>>  at
>> 
>>>>>>>org.apache.felix.ipojo.Extender$CreatorThread.run(Extender.java:769)
>> >>>>>  at java.lang.Thread.run(Thread.java:680)
>> >>>>>
>> >>>>>
>> >>>>> Here's what I had for the Bogus Class case on the metadata.xml:
>> >>>>>
>> >>>>> <ipojo>
>> >>>>> <component className="cook.michael.BogusClass"/>
>> >>>>> </ipojo>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> Mike
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>> On 10/11/12 10:23 PM, "Göktürk Gezer" <[email protected]>
>> wrote:
>> >>>>>
>> >>>>> >Just to be on the same page I installed eclipse-ipojo-plugin too.
>> >>>>> >
>> >>>>> >First finding : you don't need a bogus component. You can just
>>type
>> >>>>> ><ipojo>
>> >>>>> ><component/>
>> >>>>> ></ipojo>
>> >>>>> >
>> >>>>> >inside you metadata.xml and it'll pass silently.
>> >>>>> >
>> >>>>> >Besides you might be hitting a bug we've fixed in trunk, because
>>in
>> >>>>>the
>> >>>>> >same scenario I suggested to you I saw some elements in MANIFEST
>> which
>> >>>>> >shouldn't be there.
>> >>>>> >Could you share me your MANIFEST for the final state(bogus
>> >>>>>metadata.xml +
>> >>>>> >annotations)?
>> >>>>> >
>> >>>>> >On Fri, Oct 12, 2012 at 5:05 AM, Cook, Michael J. (OCTO) <
>> >>>>> >[email protected]> wrote:
>> >>>>> >
>> >>>>> >> Hi,
>> >>>>> >>
>> >>>>> >> >>Could you tell me what happens when you remove the <ipojo/>
>> >>>>>element
>> >>>>> >>too
>> >>>>> >> >>leaving the metadata.xml empty?
>> >>>>> >>
>> >>>>> >>
>> >>>>> >> I get an error when there is no contents in the metadata.xml
>>file.
>> >>>>> >>
>> >>>>> >> >>I could suggest you a trick to define a bogus
>> >>>>> >> >>component inside metadata.xml(Will require you to maintain a
>> bogus
>> >>>>> >>class)
>> >>>>> >> >>so that eclipse-ipojo-plugin will not fail on metadata.xml
>>and
>> >>>>>move
>> >>>>> >>along
>> >>>>> >> >>its way with annotations.
>> >>>>> >>
>> >>>>> >>
>> >>>>> >> I added a bogus class into the cook.michael package and put the
>> >>>>> >> @Component/@Instantiate/@Validate/@Invalidate back into the
>>code.
>> >>>>>Then
>> >>>>> >> added this component to the metadata.xml file:
>> >>>>> >> <ipojo>
>> >>>>> >> <component className="cook.michael.BogusClass"/>
>> >>>>> >> </ipojo>
>> >>>>> >>
>> >>>>> >>
>> >>>>> >>
>> >>>>> >> The above results in the start and stop not being invoked.
>> >>>>> >>
>> >>>>> >> >>Instead of embedding Felix into eclipse you can use its own
>> >>>>>Equinox
>> >>>>> >> >>launcher.
>> >>>>> >>
>> >>>>> >> I'm developing atop Felix, because the target device is Felix
>> based,
>> >>>>>so
>> >>>>> >>I
>> >>>>> >> would like to keep it on the same platform.
>> >>>>> >>
>> >>>>> >>
>> >>>>> >> Thank you for your help.
>> >>>>> >> Mike
>> >>>>> >>
>> >>>>> >>
>> >>>>> >> On 10/11/12 9:47 PM, "Göktürk Gezer" <[email protected]>
>> >>>>>wrote:
>> >>>>> >>
>> >>>>> >> >On Fri, Oct 12, 2012 at 4:25 AM, Cook, Michael J. (OCTO) <
>> >>>>> >> >[email protected]> wrote:
>> >>>>> >> >
>> >>>>> >> >> Göktürk,
>> >>>>> >> >>
>> >>>>> >> >> Thank you! I used #2 below and it worked well.  I was able
>>to
>> >>>>>launch
>> >>>>> >>the
>> >>>>> >> >> bundle, and I saw it output the traces I had been looking
>>for.
>> >>>>> >> >>
>> >>>>> >> >
>> >>>>> >> >Cool !
>> >>>>> >> >
>> >>>>> >> >
>> >>>>> >> >>
>> >>>>> >> >> On the first, if I remove the contents of the metadata.xml
>> file,
>> >>>>>how
>> >>>>> >> >>can I
>> >>>>> >> >> use iPOJO to generate the bundle?  If I leave in the
>><ipojo/>
>> >>>>> >>element,
>> >>>>> >> >>and
>> >>>>> >> >> I run iPOJO's "Create Bundle", I get a warning: "Neither
>> >>>>>component
>> >>>>> >> >>types,
>> >>>>> >> >> nor instances in /Users/mcook008/Workspaces/MyEclipse
>> >>>>> >> >> 8.6/iPojoTest/metadata.xml". Start and stop are not called,
>> >>>>>although
>> >>>>> >>the
>> >>>>> >> >> class is marked with @Component and @Instantiate and
>>start/stop
>> >>>>>is
>> >>>>> >> >>marked
>> >>>>> >> >> with @Validate/@Invalidate.
>> >>>>> >> >>
>> >>>>> >> >
>> >>>>> >> >Well, I actually never used eclipse-ipojo-plugin before but it
>> >>>>>seems
>> >>>>> >>to be
>> >>>>> >> >dependent on metadata.xml but also sees the annotations on its
>> way.
>> >>>>> >> >
>> >>>>> >> >Could you tell me what happens when you remove the <ipojo/>
>> element
>> >>>>>too
>> >>>>> >> >leaving the metadata.xml empty?
>> >>>>> >>
>> >>>>> >> >
>> >>>>> >> >If above trick didn't work and you want to stick with
>> >>>>> >>eclipse-ipojo-plugin
>> >>>>> >> >while using annotations. I could suggest you a trick to
>>define a
>> >>>>>bogus
>> >>>>> >> >component inside metadata.xml(Will require you to maintain a
>> bogus
>> >>>>> >>class)
>> >>>>> >> >so that eclipse-ipojo-plugin will not fail on metadata.xml and
>> move
>> >>>>> >>along
>> >>>>> >> >its way with annotations.
>> >>>>> >> >
>> >>>>> >> >Also it seems to me that your development environment is
>>heavy.
>> >>>>> >>Instead of
>> >>>>> >> >embedding Felix into eclipse you can use its own Equinox
>> launcher.
>> >>>>> >> >I suggest you to have a look at
>> >>>>> >>
>> >>>>> >>>
>> >>>>>
>> >>>>>
>> http://felix.apache.org/site/apache-felix-ipojo-eclipse-integration.html
>> >>>>> >> >where
>> >>>>> >> >you can see basic setup.(You can use annotations or metadata
>>of
>> >>>>>your
>> >>>>> >> >choice
>> >>>>> >> >in this setup)
>> >>>>> >> >
>> >>>>> >> >
>> >>>>> >> >Gokturk
>> >>>>> >> >
>> >>>>> >> >
>> >>>>> >> >>
>> >>>>> >> >> Mike
>> >>>>> >> >>
>> >>>>> >> >>
>> >>>>> >> >>
>> >>>>> >> >> On 10/11/12 8:54 PM, "Göktürk Gezer"
>><[email protected]>
>> >>>>> wrote:
>> >>>>> >> >>
>> >>>>> >> >> >Well i thought at first that you didn't specify
>>metadata.xml
>> but
>> >>>>>i
>> >>>>> >>see
>> >>>>> >> >>now
>> >>>>> >> >> >that you did. Mixing metadata.xml and annotations for one
>> single
>> >>>>> >> >>component
>> >>>>> >> >> >is a mistake. For same component you must go with one of
>>them.
>> >>>>> >> >> >
>> >>>>> >> >> >So there are 2 different ways for you:
>> >>>>> >> >> >
>> >>>>> >> >> >1- Using only annotations: Just disable the metadata.xml
>> (easily
>> >>>>> >> >>delete it
>> >>>>> >> >> >or comment out the content ) and leave the annotations as
>>it
>> is.
>> >>>>> >> >> >2- Using only medata.xml: If you want to use metadata.xml
>>then
>> >>>>> >>remove
>> >>>>> >> >>all
>> >>>>> >> >> >annotations including @validate and @invalidate and make
>>sure
>> >>>>>your
>> >>>>> >> >> >metadata.xml looks like this:
>> >>>>> >> >> >
>> >>>>> >> >> ><ipojo>
>> >>>>> >> >> ><component className="cook.michael.MyComponentImpl">
>> >>>>> >> >> >    <callback transition="validate" method="start"/>
>> >>>>> >> >> >    <callback transition="invalidate" method="stop"/>
>> >>>>> >> >> ></component>
>> >>>>> >> >> ><instance component="cook.michael.MyComponentImpl"/>
>> >>>>> >> >> ></ipojo>
>> >>>>> >> >> >
>> >>>>> >> >> >Either way should bring you where you want. Just don't mix
>> >>>>> >>annotation
>> >>>>> >> >>and
>> >>>>> >> >> >metadata usage for same component.
>> >>>>> >> >> >
>> >>>>> >> >> >Regards,
>> >>>>> >> >> >Gokturk
>> >>>>> >> >> >
>> >>>>> >> >> >
>> >>>>> >> >> >
>> >>>>> >> >> >On Fri, Oct 12, 2012 at 3:32 AM, Cook, Michael J. (OCTO) <
>> >>>>> >> >> >[email protected]> wrote:
>> >>>>> >> >> >
>> >>>>> >> >> >> Hi Göktürk,
>> >>>>> >> >> >>
>> >>>>> >> >> >> OK... Tried that.  Still the same thing.  There's not
>>much
>> to
>> >>>>>my
>> >>>>> >> >>code,
>> >>>>> >> >> >>so
>> >>>>> >> >> >> I'm including it below.  Please let me know if you see
>> >>>>>anything.
>> >>>>> >> >> >>
>> >>>>> >> >> >> Thank you for helping me,
>> >>>>> >> >> >> Mike
>> >>>>> >> >> >>
>> >>>>> >> >> >>
>> >>>>> >> >> >> MyComponentImpl.java:
>> >>>>> >> >> >>
>> >>>>> >> >> >> package cook.michael;
>> >>>>> >> >> >>
>> >>>>> >> >> >> import java.io.BufferedWriter;
>> >>>>> >> >> >> import java.io.File;
>> >>>>> >> >> >> import java.io.FileWriter;
>> >>>>> >> >> >> import java.io.IOException;
>> >>>>> >> >> >>
>> >>>>> >> >> >> import org.apache.felix.ipojo.annotations.Component;
>> >>>>> >> >> >> import org.apache.felix.ipojo.annotations.Invalidate;
>> >>>>> >> >> >> import org.apache.felix.ipojo.annotations.Validate;
>> >>>>> >> >> >> import org.apache.felix.ipojo.annotations.Instantiate;
>> >>>>> >> >> >>
>> >>>>> >> >> >> @Component
>> >>>>> >> >> >> @Instantiate
>> >>>>> >> >> >> public class MyComponentImpl {
>> >>>>> >> >> >>
>> >>>>> >> >> >>     @Validate
>> >>>>> >> >> >>     public void start() throws IOException {
>> >>>>> >> >> >>       System.err.println("Starting: " );
>> >>>>> >> >> >>
>> >>>>> >> >> >>         System.out.println("I'm starting...");
>> >>>>> >> >> >>         try{
>> >>>>> >> >> >>            // Create file
>> >>>>> >> >> >>            FileWriter fstream = new
>> >>>>> >> >> >>FileWriter("/Users/mcook008/out.txt");
>> >>>>> >> >> >>            BufferedWriter out = new
>>BufferedWriter(fstream);
>> >>>>> >> >> >>            out.write("Hello Java");
>> >>>>> >> >> >>            //Close the output stream
>> >>>>> >> >> >>            out.close();
>> >>>>> >> >> >>            }catch (Exception e){//Catch exception if any
>> >>>>> >> >> >>            System.err.println("Error: " +
>>e.getMessage());
>> >>>>> >> >> >>            }
>> >>>>> >> >> >>         throw new IOException() ;
>> >>>>> >> >> >>     }
>> >>>>> >> >> >>
>> >>>>> >> >> >>     @Invalidate
>> >>>>> >> >> >>     public void stop() {
>> >>>>> >> >> >>         System.out.println("I'm leaving !");
>> >>>>> >> >> >>     }
>> >>>>> >> >> >> }
>> >>>>> >> >> >>
>> >>>>> >> >> >>
>> >>>>> >> >> >> metadata.xml:
>> >>>>> >> >> >>
>> >>>>> >> >> >> <ipojo>
>> >>>>> >> >> >> <component className="cook.michael.MyComponentImpl"/>
>> >>>>> >> >> >> <instance component="cook.michael.MyComponentImpl"/>
>> >>>>> >> >> >> </ipojo>
>> >>>>> >> >> >>
>> >>>>> >> >> >>
>> >>>>> >> >> >>
>> >>>>> >> >> >> iPojoTest.bnd:
>> >>>>> >> >> >>
>> >>>>> >> >> >> Import-Package: *
>> >>>>> >> >> >> Export-Package: *
>> >>>>> >> >> >> #Private-Package:
>> >>>>> >> >> >>
>> >>>>> >> >> >>
>> >>>>> >> >> >> Generated manefest.mf:
>> >>>>> >> >> >>
>> >>>>> >> >> >> Manifest-Version: 1.0
>> >>>>> >> >> >> Export-Package:
>> >>>>> >> >>org.apache.felix.ipojo.handler.temporal,org.apache.fel
>> >>>>> >> >> >>
>> >>>>> >>
>>
>> 
>>>>>>>>>ix.ipojo.transaction,org.apache.felix.ipojo.extender,org.apache.fe
>>>>>>>>>lix
>> >>>>> >> >> >>
>> >>>>> >>
>>
>> 
>>>>>>>>>.ipojo.whiteboard,org.apache.felix.ipojo.handlers.event,org.apache
>>>>>>>>>.fe
>> >>>>> >> >> >>
>> >>>>> >>
>>
>> 
>>>>>>>>>lix.ipojo.handlers.jmx,org.apache.felix.ipojo.annotations,cook.mic
>>>>>>>>>hae
>> >>>>> >> >> >>  l
>> >>>>> >> >> >> iPOJO-Components: component {
>> >>>>> >> >>$classname="cook.michael.MyComponentImpl
>> >>>>> >> >> >>  " manipulation { method { $name="$init" }method {
>> >>>>>$name="start"
>> >>>>> >> >>}meth
>> >>>>> >> >> >>  od { $name="stop" }}}instance {
>> >>>>> >> >>$component="cook.michael.MyComponentI
>> >>>>> >> >> >>  mpl" }component { $name="cook.michael.MyComponentImpl"
>> >>>>> >> >>$classname="co
>> >>>>> >> >> >>  ok.michael.MyComponentImpl" $public="true"
>> >>>>> >> >>org.apache.felix.ipojo.ann
>> >>>>> >> >> >>  otations:instantiate { }callback {
>>$transition="invalidate"
>> >>>>> >> >>$method="
>> >>>>> >> >> >>  stop" }callback { $transition="validate" $method="start"
>> >>>>> >> >>}manipulatio
>> >>>>> >> >> >>  n { method { $name="$init" }method { $name="start"
>>}method
>> {
>> >>>>> >> >>$name="s
>> >>>>> >> >> >>  top" }}}
>> >>>>> >> >> >> Built-By: clement
>> >>>>> >> >> >> Tool: Bnd-0.0.249
>> >>>>> >> >> >> Bundle-Name: Apache Felix iPOJO Annotations
>> >>>>> >> >> >> Created-By: 1.6.0_35 (Apple Inc.) & iPOJO
>> >>>>> >> >> >> Bundle-Vendor: The Apache Software Foundation
>> >>>>> >> >> >> Bundle-Version: 1.8.2
>> >>>>> >> >> >> Build-Jdk: 1.6.0_31
>> >>>>> >> >> >> Bnd-LastModified: 1350001458935
>> >>>>> >> >> >> Bundle-ManifestVersion: 2
>> >>>>> >> >> >> Bundle-Description: iPOJO Annotations
>> >>>>> >> >> >> Bundle-License:
>> http://www.apache.org/licenses/LICENSE-2.0.txt
>> >>>>> >> >> >> Bundle-DocURL:
>> >>>>> >> >>http://felix.apache.org/site/how-to-use-ipojo-annotatio
>> >>>>> >> >> >>  ns.html
>> >>>>> >> >> >> Import-Package: org.osgi.service.log;version=1.3,
>> >>>>> >> >>org.apache.felix.ipo
>> >>>>> >> >> >>  jo.handler.temporal, org.apache.felix.ipojo.transaction,
>> >>>>> >> >>org.apache.f
>> >>>>> >> >> >>  elix.ipojo.architecture;version=0.9.0,
>> >>>>> >> >>org.apache.felix.ipojo.extende
>> >>>>> >> >> >>  r, org.apache.felix.ipojo.whiteboard,
>> >>>>> >> >>org.apache.felix.ipojo;version=
>> >>>>> >> >> >>  0.9.0, org.apache.felix.ipojo.handlers.event,
>> >>>>> >> >>org.apache.felix.ipojo.
>> >>>>> >> >> >>  handlers.jmx, org.osgi.service.cm;version=1.2,
>> >>>>> >> >>org.apache.felix.ipojo
>> >>>>> >> >> >>  .annotations, cook.michael
>> >>>>> >> >> >> Bundle-SymbolicName: iPojoTest
>> >>>>> >> >> >> Originally-Created-By: Apache Maven Bundle Plugin
>> >>>>> >> >> >>
>> >>>>> >> >> >>
>> >>>>> >> >> >>
>> >>>>> >> >> >>
>> >>>>> >> >> >> On 10/11/12 7:54 PM, "Göktürk Gezer" <
>> [email protected]>
>> >>>>> >> wrote:
>> >>>>> >> >> >>
>> >>>>> >> >> >> >Hi,
>> >>>>> >> >> >> >
>> >>>>> >> >> >> >First of all @Component is mandatory.(For annotation
>>based
>> >>>>> >>usage).
>> >>>>> >> >> >> >
>> >>>>> >> >> >> >But this only defines your component. To actually
>> instantiate
>> >>>>>it
>> >>>>> >>you
>> >>>>> >> >> >> >should
>> >>>>> >> >> >> >do it deliberately. One way to do that is using
>> @Instantiate
>> >>>>> >> >> >>annotation.
>> >>>>> >> >> >> >
>> >>>>> >> >> >> >So your code would be like:
>> >>>>> >> >> >> >
>> >>>>> >> >> >> >@Component
>> >>>>> >> >> >> >@Instantiate
>> >>>>> >> >> >> >public class foo{
>> >>>>> >> >> >> >
>> >>>>> >> >> >> >  @Validate
>> >>>>> >> >> >> >  public void start()
>> >>>>> >> >> >> >..........
>> >>>>> >> >> >> >..........
>> >>>>> >> >> >> >}
>> >>>>> >> >> >> >
>> >>>>> >> >> >> >On Fri, Oct 12, 2012 at 1:00 AM, Cook, Michael J.
>>(OCTO) <
>> >>>>> >> >> >> >[email protected]> wrote:
>> >>>>> >> >> >> >
>> >>>>> >> >> >> >> Sorry. Just rechecked. Used @ Component on the class.
>>And
>> >>>>> >> >> >> >> @Invalidate/@validate on the methods. Just tried
>>removing
>> >>>>>the
>> >>>>> >> >> >> >>@Component.
>> >>>>> >> >> >> >> Same result. No output.
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> Mike
>> >>>>> >> >> >> >> Michael Cook
>> >>>>> >> >> >> >> VP Technology Innovation
>> >>>>> >> >> >> >> Comcast
>> >>>>> >> >> >> >> One Comcast Center
>> >>>>> >> >> >> >> Philadelphia, PA 19103
>> >>>>> >> >> >> >> (o) 215-286-8260
>> >>>>> >> >> >> >> (m) 609-458-0332
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> ----- Original Message -----
>> >>>>> >> >> >> >> From: Cook, Michael J. (OCTO)
>> >>>>> >> >> >> >> Sent: Thursday, October 11, 2012 05:47 PM
>> >>>>> >> >> >> >> To: '[email protected]' <[email protected]>
>> >>>>> >> >> >> >> Subject: Re: Getting Started with iPOJO
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> I used @validate/@invalidate alone.
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> Mike
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> Michael Cook
>> >>>>> >> >> >> >> VP Technology Innovation
>> >>>>> >> >> >> >> Comcast
>> >>>>> >> >> >> >> One Comcast Center
>> >>>>> >> >> >> >> Philadelphia, PA 19103
>> >>>>> >> >> >> >> (o) 215-286-8260
>> >>>>> >> >> >> >> (m) 609-458-0332
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> ----- Original Message -----
>> >>>>> >> >> >> >> From: Göktürk Gezer [mailto:[email protected]]
>> >>>>> >> >> >> >> Sent: Thursday, October 11, 2012 05:39 PM
>> >>>>> >> >> >> >> To: [email protected] <[email protected]>
>> >>>>> >> >> >> >> Subject: Re: Getting Started with iPOJO
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> Hi,
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> I need to ask this first since it's not on your code
>> >>>>>snippet:
>> >>>>> >>Did
>> >>>>> >> >>you
>> >>>>> >> >> >> >>use
>> >>>>> >> >> >> >> @Component annotation for class where you've declared
>> your
>> >>>>> >>start()
>> >>>>> >> >> >> >>stop()
>> >>>>> >> >> >> >> methods? Or did you use @Validate,@Invalidate alone?
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> *Regards,*
>> >>>>> >> >> >> >> *Gokturk*
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> On Thu, Oct 11, 2012 at 8:13 PM, Cook, Michael J.
>>(OCTO)
>> <
>> >>>>> >> >> >> >> [email protected]> wrote:
>> >>>>> >> >> >> >>
>> >>>>> >> >> >> >> > Hi,
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > I can't seem to find a good article that will help
>>me
>> >>>>>resolve
>> >>>>> >> >>the
>> >>>>> >> >> >> >> "getting
>> >>>>> >> >> >> >> > started" issue I am facing.
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > I am using Eclipse Juno (4.2) on my Mac.
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > I have downloaded and installed the iPOJO eclipse
>> plugin,
>> >>>>> >>from:
>> >>>>> >> >> >> >> > http://clement.plop-plop.net/update/
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > I have created a sample project following the
>> >>>>>instructions
>> >>>>> >>at:
>> >>>>> >> >> >> >> >
>> http://felix.apache.org/site/ipojo-eclipse-plug-in.html
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > I have integrated Felix into Eclipse as a project,
>> >>>>>following
>> >>>>> >> >> >> >>instructions
>> >>>>> >> >> >> >> > here:
>> >>>>> >> >> >>
>> >>>>>http://felix.apache.org/site/integrating-felix-with-eclipse.html
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > I have downloaded the following iPOJO bundle:
>> >>>>> >> >> >> >> > org.apache.felix.ipojo-1.8.2.jar
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > I've launched Felix in the Eclipse console and I've
>> >>>>>installed
>> >>>>> >> >>the
>> >>>>> >> >> >> >> > org.apache.felix.ipojo-1.8.2.jar bundle and started
>>it.
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > I've created a test bundle using iPOJO called
>> >>>>>iPojoTest.jar
>> >>>>> >>and
>> >>>>> >> >> >>I've
>> >>>>> >> >> >> >> > installed it and started it in the OSGI console.
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > I run bundles in the console and I get:
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > g! bundles
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >     0|Active     |    0|org.apache.felix.framework
>> >>>>>(3.0.7)
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >     1|Active     |
>>  1|org.apache.felix.bundlerepository
>> >>>>> >> >>(1.6.2)
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >     2|Active     |
>>1|org.apache.felix.gogo.command
>> >>>>>(0.6.1)
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >     3|Active     |
>>1|org.apache.felix.gogo.runtime
>> >>>>>(0.6.1)
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >     4|Active     |    1|org.apache.felix.gogo.shell
>> >>>>>(0.6.1)
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >    12|Active     |    1|iPojoTest (1.4.0)
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >    13|Active     |    1|org.apache.felix.ipojo
>>(1.8.2)
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > So, the bundle seems to have started.
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > But I don't get any console output from my sysoutsŠ
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > Here are the start() and stop() methods:
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >  @Validate
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >     public void start() throws IOException {
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >                 System.out.println("I'm
>>starting...");
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >         try{
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >           // Create file
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >                   FileWriter fstream = new
>> >>>>> >> >> >> >> > FileWriter("/Users/mcook008/out.txt");
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >                   BufferedWriter out = new
>> >>>>> >> >>BufferedWriter(fstream);
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >                   out.write("Hello Java");
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >                   //Close the output stream
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >                   out.close();
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >                   }catch (Exception e){//Catch
>> exception
>> >>>>>if
>> >>>>> >>any
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >                   System.err.println("Error: " +
>> >>>>> >> >>e.getMessage());
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >                   }
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >         throw new IOException() ;
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >     }
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >     @Invalidate
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >     public void stop() {
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >         System.out.println("I'm leaving !");
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >     }
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > I added in the file write to see if a file would be
>> >>>>>created.
>> >>>>> >> >>There
>> >>>>> >> >> >> >>is no
>> >>>>> >> >> >> >> > file created.  So, while OSGi thinks the bundle is
>> >>>>>ACTIVE,
>> >>>>> >>the
>> >>>>> >> >> >>start
>> >>>>> >> >> >> >> method
>> >>>>> >> >> >> >> > appears never have to been called.
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > Can anyone tell me what I may have done wrong or
>> provide
>> >>>>>a
>> >>>>> >>clue
>> >>>>> >> >>as
>> >>>>> >> >> >>to
>> >>>>> >> >> >> >> what
>> >>>>> >> >> >> >> > to look at to help diagnose the problem?
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > Thanks,
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> > Mike
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >> >
>> >>>>> >> >> >> >>
>> >>>>> >> >> >>
>> >>>>> >> >> >>
>> >>>>> >> >> >>
>> >>>>>
>> >>---------------------------------------------------------------------
>> >>>>> >> >> >> 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]
>> >
>> > ---------------------------------------------------------------------
>> > 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]

Reply via email to