Clement,

        I suppose so... I really don't have enough understanding yet to say one 
way or the other. Are you saying that because the metadata.xml has an 
<instance../> declaration one is being created via the factory from that, and 
then another is being created via the factory from the cfg file?

Here's the info from 'arch':

  -> arch
  Instance ArchCommand -> valid
  Instance LogClientExampleInstance -> valid
  Instance LogClientExample.154543ce-3bc2-4000-9cc8-c69c95fc090e -> valid

That would seem to bear out. Ok, and so if PaxLogging is implemented similarly 
that's also why I'm seeing the two instances of that too.

So, I can use a managed service instead of a factory... that's where I think 
I'm getting lost.

There is the 'managedservice' attribute of the @Component annotation. If I do 
not then have an <instance../> declaration in the metadata.xml but rather just 
a <component../> would a cfg file then be used for any created instances?

- Joel


> -----Original Message-----
> From: Clement Escoffier [mailto:[email protected]]
> Sent: Tuesday, March 31, 2009 7:35 AM
> To: [email protected]
> Subject: Re: cfg files for PaxLogging and iPOJO
> 
> Hi,
> 
> 
> The cfg file that you describe contains a ManagedServiceFactory
> configuration. So, it replace the <instance> tag of the metadata.xml
> file. So, if you have both, it will create one instance from the xml
> file and one from the cfg file, so 2 instances.
> 
> You can also use the ManagedService (not factory). Is that what you
> would like?
> 
> Regards,
> 
> Clement
> 
> 
> 
> On 31.03.2009, at 00:04, Joel Schuster wrote:
> 
> > I take it back... it's working. Well, mostly. There are two
> > instances :P.
> >
> > One from the File Installer and the other from the Configuration
> > Updater.
> >
> > I'm wondering why they both wouldn't use the same instance.
> >
> > - Joel
> >
> >> -----Original Message-----
> >> From: Joel Schuster [mailto:[email protected]]
> >> Sent: Monday, March 30, 2009 3:58 PM
> >> To: '[email protected]'
> >> Subject: RE: cfg files for PaxLogging and iPOJO
> >>
> >> Karl,
> >>
> >> Still a no-go, I'll look at it some more tomorrow.
> >>
> >> Thanks for all the help.
> >>
> >> - Joel
> >>
> >>> -----Original Message-----
> >>> From: Karl Pauls [mailto:[email protected]]
> >>> Sent: Monday, March 30, 2009 3:50 PM
> >>> To: [email protected]
> >>> Subject: Re: cfg files for PaxLogging and iPOJO
> >>>
> >>> The number is the number of the factory configuration to create.
> >>> As I
> >>> said, it is a managed service factory not only a managed service.
> >>> You
> >>> are free to pick any number you like I think.
> >>>
> >>> regards,
> >>>
> >>> Karl
> >>>
> >>> On Mon, Mar 30, 2009 at 11:43 PM, Joel Schuster <[email protected]>
> >> wrote:
> >>>> I still can't seem to get this working... I tried both the
> >>>> component
> >>> name and the instance name.
> >>>>
> >>>> How would I determine what the -<number> would be?
> >>>>
> >>>> Based on what I read here: http://felix.apache.org/site/apache-felix-
> >>> file-install.html
> >>>>
> >>>> It seems to say that it would be something like:
> >>>> LogClientExample.cfg
> >>> like you were saying.
> >>>>
> >>>> Also, just because it's 'REQUIRED' doesn't keep it from being
> >> installed
> >>> and activated.
> >>>>
> >>>> Here's the info from the Configuration Status tab of the Web
> >>>> Console:
> >>>>
> >>>> 48=[org.apache.felix.ipojo.Factory,
> >>> org.osgi.service.cm.ManagedServiceFactory]
> >>>>  Bundle=com.examples.logclient (0) "com.examples.logclient"
> >>>>  Using Bundles=[org.apache.felix.configadmin (1.0.10) "Apache Felix
> >>> Configuration Admin Service"]
> >>>>  component.class=com.examples.logclient.LogClient
> >>>>  component.description=factory name="LogClientExample"
> >>>> state="valid"
> >>> bundle="24" implementation-class="com.examples.logclient.LogClient"
> >>>>        missinghandlers list="[]"
> >>>>        property name="logString" value="REQUIRED"
> >>> type="java.lang.String"
> >>>>        requiredhandlers list="[org.apache.felix.ipojo:requires,
> >>> org.apache.felix.ipojo:callback, org.apache.felix.ipojo:properties,
> >>> org.apache.felix.ipojo:architecture]"
> >>>>
> >>>
> >>
> >> component
> >> .properties=[org.apache.felix.ipojo.architecture.PropertyDescrip
> >>> t...@b30913]
> >>>>  component.providedServiceSpecifications=[]
> >>>>  factory.name=LogClientExample
> >>>>  factory.state=1
> >>>>  service.pid=LogClientExample
> >>>>
> >>>>
> >>>>
> >>>>
> >>>>> -----Original Message-----
> >>>>> From: Karl Pauls [mailto:[email protected]]
> >>>>> Sent: Monday, March 30, 2009 3:22 PM
> >>>>> To: [email protected]
> >>>>> Subject: Re: cfg files for PaxLogging and iPOJO
> >>>>>
> >>>>> Iirc, the instance name is used for the configuration and it is
> >> really
> >>>>> a managed service factory -- hence, the file should be named
> >> something
> >>>>> like this:
> >>>>>
> >>>>> LogClientExample-4711.cfg
> >>>>>
> >>>>> regards,
> >>>>>
> >>>>> Karl
> >>>>>
> >>>>> p.s.: In case you want your service to only be created and
> >>>>> activated
> >>>>> if there is  a valid properties configuration then add:
> >>>>> @Property(mandatory=true)
> >>>>>
> >>>>>
> >>>>> On Mon, Mar 30, 2009 at 11:10 PM, Joel Schuster <[email protected]>
> >>> wrote:
> >>>>>> I got the PaxLogging config working. But the iPOJO isn't.
> >>>>>>
> >>>>>> Here's some code:
> >>>>>>
> >>>>>> package com.example;
> >>>>>>
> >>>>>> import ...*...
> >>>>>>
> >>>>>> @Component(name="LogClientExample", immediate=true)
> >>>>>> public class LogClient implements Runnable {
> >>>>>>
> >>>>>>        @Requires
> >>>>>>        private LogService logService;
> >>>>>>
> >>>>>>        private boolean running;
> >>>>>>
> >>>>>>        @Property
> >>>>>>        private String logString;
> >>>>>>
> >>>>>> @Override
> >>>>>>        public void run() {
> >>>>>>                logService.log( LogService.LOG_INFO, "LogClient
> >>> run().");
> >>>>>>                while( running) {
> >>>>>>                        logService.log( LogService.LOG_INFO,
> >>> "LogClient
> >>>>> Running..." + logString);
> >>>>>>                        try {
> >>>>>>                                Thread.sleep( 10000);
> >>>>>>                        } catch (InterruptedException e) {
> >>>>>>                                logService.log(
> >>> LogService.LOG_WARNING,
> >>>>> "", e);
> >>>>>>                        }
> >>>>>>                }
> >>>>>>        }
> >>>>>>
> >>>>>>        @Validate
> >>>>>>        public void start() {
> >>>>>>                logService.log( LogService.LOG_INFO, "LogClient
> >>>>> start()");
> >>>>>>                running = true;
> >>>>>>                new Thread( this).start();
> >>>>>>        }
> >>>>>>
> >>>>>>        @Invalidate
> >>>>>>        public void stop() {
> >>>>>>                logService.log( LogService.LOG_INFO, "LogClient
> >>> stop()");
> >>>>>>                running = false;
> >>>>>>        }
> >>>>>> }
> >>>>>>
> >>>>>> Then I've created a file called
> >>>>>> 'com.example.LogClientExample.cfg'
> >> (I
> >>>>> tried just com.example.LogClient.cfg as well) with one line:
> >>>>>>
> >>>>>> logString=New Hello
> >>>>>>
> >>>>>>
> >>>>>> The logs come out as "LogClient Running...null"
> >>>>>>
> >>>>>> Unless I put this in the metadata.xml:
> >>>>>>
> >>>>>> <ipojo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> >>>>>>    xsi:schemaLocation="org.apache.felix.ipojo
> >>>>> http://felix.apache.org/ipojo/schemas/CURRENT/core.xsd";
> >>>>>>    xmlns="org.apache.felix.ipojo">
> >>>>>> <!-- declare your component types and instances here -->
> >>>>>>        <instance component="LogClientExample"
> >>>>> name="LogClientExampleInstance">
> >>>>>>                <property name="logString" type="java.lang.String"
> >>>>> value="Hello" />
> >>>>>>        </instance>
> >>>>>> </ipojo>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>>> -----Original Message-----
> >>>>>>> From: Clement Escoffier [mailto:[email protected]]
> >>>>>>> Sent: Monday, March 30, 2009 12:45 PM
> >>>>>>> To: [email protected]
> >>>>>>> Subject: Re: cfg files for PaxLogging and iPOJO
> >>>>>>>
> >>>>>>> Hi,
> >>>>>>>
> >>>>>>> To use cfg file you need:
> >>>>>>> - File install configured on a folder (let's say 'foo')
> >>>>>>> - A configuration admin implementation (like the Apache Felix
> >>>>>>> one
> >> :-
> >>> ))
> >>>>>>>
> >>>>>>> Then, create a cfg file named factory-name-id. The factory
> >>>>>>> name is
> >>>>>>> generally the class name of your pojo.
> >>>>>>> In this file, add one line per property:
> >>>>>>> prop1=value1
> >>>>>>> prop2=value2
> >>>>>>>
> >>>>>>> Copy this file in the 'foo' folder, that's it:
> >>>>>>> File install will read the file and push the configuration in
> >>>>>>> the
> >>>>>>> configuration admin.
> >>>>>>> The configuration admin will push the configuration to iPOJO
> >>>>>>> iPOJO will create the instance and configure it (i.e you don't
> >> need
> >>>>>>> metadata.xml file at all)
> >>>>>>>
> >>>>>>> Regards,
> >>>>>>>
> >>>>>>>
> >>>>>>> Clement
> >>>>>>>
> >>>>>>>
> >>>>>>> On 30.03.2009, at 20:26, Stuart McCulloch wrote:
> >>>>>>>
> >>>>>>>> 2009/3/30 Joel Schuster <[email protected]>
> >>>>>>>>
> >>>>>>>>> I've started using PaxLogging as my LogService. However, I
> >> can't
> >>>>>>>>> seem to
> >>>>>>>>> figure out how to configure it.
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> you need to configure it via the ConfigAdmin service using a
> >>>>>>>> configuration
> >>>>>>>> pid "org.ops4j.pax.logging"
> >>>>>>>> to point to the contents of the log4j properties file - you can
> >> do
> >>>>>>>> this
> >>>>>>>> using Pax ConfMan or FileInstall
> >>>>>>>> from Apache Felix (both let you associate properties files with
> >>>>>>>> configuration pids)
> >>>>>>>>
> >>>>>>>>   http://wiki.ops4j.org/display/ops4j/Pax+Logging#PaxLogging-
> >>>>>>> Configuration
> >>>>>>>>
> >>>>>>>> you'll also need a working ConfigAdmin implementation, such as
> >> the
> >>>>>>>> Apache
> >>>>>>>> Felix configadmin bundle
> >>>>>>>>
> >>>>>>>> HTH
> >>>>>>>>
> >>>>>>>> I've tried creating various cfg files to no avail.
> >>>>>>>>>
> >>>>>>>>> As a an attempt to better understand how this should work I've
> >>>>>>>>> created a
> >>>>>>>>> quick iPOJO based LogClient which @Requires the LogService.
> >>>>>>>>>
> >>>>>>>>> This works great, so I added a String based @Property.
> >>>>>>>>>
> >>>>>>>>> However, I can't seem to set the property outside of the
> >>>>>>>>> metadata.xml file.
> >>>>>>>>> Shouldn't I be able to create a cfg file?
> >>>>>>>>>
> >>>>>>>>> If I can get that working it seems I should then be able to
> >>> figure
> >>>>>>>>> out a
> >>>>>>>>> cfg file for the PaxLogging too.
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>> I'll let Clement answer the iPOJO specifics, but as long as you
> >>> can
> >>>>>>>> associate the "org.ops4j.pax.logging"
> >>>>>>>> configuration pid to the log4j properties using iPOJO then it's
> >>> just
> >>>>> a
> >>>>>>>> matter of making sure you have a
> >>>>>>>> ConfigAdmin implementation installed to pass the configuration
> >>> onto
> >>>>>>>> the
> >>>>>>>> Pax-Logging service
> >>>>>>>>
> >>>>>>>> (note you also need both the Pax-Logging API and the Pax-
> >>>>>>>> Logging
> >>>>>>>> service
> >>>>>>>> bundles installed)
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>> --
> >>>>>>>> Cheers, Stuart
> >>>>>>>
> >>>>>>>
> >>>>>>> ------------------------------------------------------------------
> >> --
> >>> -
> >>>>>>> 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]
> >>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> Karl Pauls
> >>>>> [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]
> >>>>
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> Karl Pauls
> >>> [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