Everything solved!

- My client bundle was not supposed to import
org.apache.felix.bundlerepository,
even though I needed the jar in the classpath. That solved the inconsistency
problems.
- I had to get the RepositoryAdmin service like it's shown in the tutorials
(using RepositoryAdmin.class.getName()). I had no more problems using this
because my inconsistency problems were solved.

Thank you!


2008/5/16 Richard S. Hall <[EMAIL PROTECTED]>:

> Mathieu Plourde wrote:
>
>> Hello all,
>>
>>   I'm a newbie using Felix and I'm wondering how to use the OBR (
>> http://felix.apache.org/site/apache-felix-osgi-bundle-repository-obr.html
>> ).
>> In the application I'm working on, I want to be able to add my own
>> repositories. So far I've registered the Apache Felix Bundle Repository as
>> a
>> bundle, but I don't know how to use it. The following code (from the Felix
>> OBR site) does exactly what I want:
>>
>>
>>
>>
>>> RepositoryAdmin repoAdmin = ... // Get repo admin service
>>> Resolver resolver = repoAdmin.resolver();
>>> Resource resource = repoAdmin.discoverResources(filterStr);
>>> resolver.add(resource);
>>> if (resolver.resolve())
>>> {
>>>    resolver.deploy(true);
>>> }
>>> else
>>> {
>>>    Requirement[] reqs = resolver.getUnsatisfiedRequirements();
>>>    for (int i = 0; i < reqs.length; i++)
>>>    {
>>>        System.out.println("Unable to resolve: " + reqs[i]);
>>>    }
>>> }
>>>
>>>
>>
>>
>>
>> The only problem is how to get the repo admin service?
>>
>
> You need to lookup the service in the OSGi service registry.
>
> The only coding stuff
>> I've done with Felix are the tutorials. I read a lot of doc, but I'm
>> struggling with the coding.
>>
>
> Well, if you have done the tutorials, you should look more closely at how
> the clients lookup services in the service registry (see examples 3 &
> 4)...the OBR bundle provides the RepositoryAdmin service. Your client bundle
> will need to do a service lookup to find it. Once you have the service, then
> you will be able to do the above code.
>
> The only thing I've done so far
>> is installing/activating the Apache Felix Bundle Repository bundle. That's
>> pretty much it. I want to use the repo admin service in another bundle. Do
>> I
>> need to import the packages in that bundle? When I do it, I get conflicts
>> saying some classes are loaded twice. For example, if I use the class
>> Repository, it says the classloader already loaded the same class
>> already (The Apache Felix Bundle Repository is installed as a bundle, and
>> I
>> also inculded the .jar file in the classpath. Maybe that could be the
>> problem? But if I don't add it to the classpath, how to I access the
>> classes?)
>>
>>
>
> In order to use the OBR service you will need to import the OBR API package
> in your client bundle. If you are getting inconsistency, it is likely
> because you have the classes available from more than one place (e.g., on
> your class path or in your client bundle). Generally speaking, the OBR
> packages should only be contained in the OBR bundle JAR file and no place
> else.
>
> As you can see I got some basic problems with it. I would really appreciate
>> if you could help me. Also if you have some interesting sites/doc about
>> Felix OBR, send them out please.
>>
>>
>
> I know you were using SIP Communicator, but for these experiments, I would
> just work with Felix by itself for now. When you start Felix in already has
> OBR installed, so you just need to create a simple client bundle that will
> import the OBR API package in its manifest and do the service lookup in its
> start() method. It should be pretty simple for you to get this working;
> however, if you are still having difficulties at this point, then you can
> easily post your bundle code and manifest and we will be able to figure it
> out quickly.
>
> -> richard
>
> Thank you very much!
>>
>> Sincerely,
>>    Mathieu
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

Reply via email to