Because it is a managed service factory - its going to create a new instance for each configuration. Good to know that it is working :-)
regards, Karl On Tue, Mar 31, 2009 at 12:04 AM, Joel Schuster <[email protected]> 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] > > -- Karl Pauls [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

