I think Cristiano may have a point in that Aries generally follows the
best practice of separating API and implementation into different
bundles.  This allows the implementation to be replaced without
changing the API and sharing implementations through services means
they can be replaced dynamically without causing clients to be
refreshed.  The bundle Cristiano was missing is an implementation and
therefore there would not be a missing package import.  I've not
looked into it, but there may have been a missing service reference
from the Blueprint impl bundle to the service provided by the proxy
impl bundle.  If Blueprint was managing the bundle then it would
complain about missing services, but I guess Blueprint can't manage
it's own service dependencies ;)

Maybe a note at the top of the downloads page would help.

Anyway, Cristiano, I'm glad you found the problem :)

Regards, Graham.

On 31 May 2011 03:23, Johan Edstrom <[email protected]> wrote:
> Well, bundles will complain about missing imports when you try starting them, 
> you  need to
> look at that being satisfied, which really is a general osgi issue.
>
> /je
>
> On May 30, 2011, at 4:51 PM, Cristiano Gavião wrote:
>
>> Graham,
>>
>> I've found the problem !!!
>>
>> Blueprint is working properly after I've installed the bundle 
>> org.apache.aries.proxy.impl_0.3.0
>>
>> I would never find out without your help.
>>
>> btw, It would be nice if someone from aries dev team include this info on 
>> the site, no ?
>>
>> thanks a lot
>>
>> Cristiano
>>
>>
>> On 30/05/11 19:23, Cristiano Gavião wrote:
>>> Hi Graham,
>>>
>>> The only thing that I could see that is different on our environment is 
>>> that you are using 0.3.0 and I 0.3.1 (from maven repo1).
>>>
>>> I'll setup a new one and try again...
>>>
>>> Could you please tell me if you are using maven to get your bundles ? if 
>>> yes, which group and artifact id are you using?
>>>
>>> and thank very much to try to help me.
>>>
>>> cheers
>>>
>>> Cristiano
>>>
>>> On 30/05/11 18:47, Graham Charters wrote:
>>>> Hi Cristiano,
>>>>
>>>> Your Blueprint xml is fine.  I'm not sure what the problem is.  I
>>>> downloaded a similar set of bundles to yours and built up the
>>>> following environment:
>>>>
>>>> id      State       Bundle
>>>> 0       ACTIVE      org.eclipse.osgi_3.6.2.R36x_v20110210
>>>> 1       ACTIVE      org.apache.aries.blueprint.api_0.3.0
>>>> 2       ACTIVE      org.apache.aries.blueprint.core_0.3.0
>>>> 3       ACTIVE      org.apache.aries.proxy.api_0.3.0
>>>> 4       ACTIVE      org.apache.aries.proxy.impl_0.3.0
>>>> 5       ACTIVE      org.apache.aries.util_0.3.0
>>>> 6       ACTIVE      org.ops4j.pax.logging.pax-logging-api_1.6.2
>>>> 7       ACTIVE      org.ops4j.pax.logging.pax-logging-service_1.6.
>>>> 8       ACTIVE      org.eclipse.equinox.cm_1.0.200.v20100520
>>>> 9       ACTIVE      org.eclipse.osgi.services_3.2.100.v20100503
>>>>
>>>> I then recreated your Blueprint bundle, using your Blueprint xml
>>>> as-is.  When I installed and started it, all was fine.
>>>>
>>>> 10      ACTIVE      test.blueprint.cristiano_1.0.0
>>>>
>>>> {org.eclipse.osgi.framework.console.CommandProvider}={osgi.service.blueprint.compname=commandProvide
>>>> rImpl, service.id=38}
>>>>    Registered by bundle: test.blueprint.cristiano_1.0.0 [10]
>>>>    Bundles using service:
>>>>      org.eclipse.osgi_3.6.2.R36x_v20110210 [0]
>>>>
>>>> BTW, I do see quite a bit of diagnostics output, so I'm not sure why
>>>> you are not.  I've attached the bundle that I created.  Note, there's
>>>> no implementation inside the CommandProvider class in the attached
>>>> bundle.
>>>>
>>>> Sorry I've not found the problem, but I hope the info and bundle help.
>>>>
>>>> Regards, Graham.
>>>>
>>>>
>>>> On 30 May 2011 14:48, Cristiano Gavião<[email protected]>  wrote:
>>>>> On 28/05/11 17:18, Graham Charters wrote:
>>>>>> Hi Cristiano,
>>>>> Hi again Graham,
>>>>>
>>>>>> What you have defined in Blueprint is a service so Blueprint will be
>>>>>> responsible for registering it in the Service Registry, but does not
>>>>>> do any injection.  You should be able to use the equinox console to
>>>>>> see if Blueprint has registered the service.  The command should be
>>>>>> (apologies of you already know all this):
>>>>>>
>>>>>> services(objectClass=org.eclipse.osgi.framework.console.CommandProvider)
>>>>>>
>>>>>> If the service isn't there, do you see your bundle being processed by
>>>>>> Blueprint?
>>>>> Sorry, I've used the wrong word. I mean my services is not being
>>>>> "Registered"...
>>>>>
>>>>> So, I've downloaded the project example that you suggest me and updated it
>>>>> to use equinox 3.6 and aries blueprint 0.3.1.
>>>>>
>>>>> I've started it using this:
>>>>>> java -jar org.eclipse.osgi-3.6.2.R36x_v20110210.jar -console
>>>>> There is any error in log, and typing the "ss" command I see this:
>>>>>
>>>>>> osgi>  ss
>>>>>>
>>>>>> Framework is launched.
>>>>>>
>>>>>> id    State       Bundle
>>>>>> 0    ACTIVE      org.eclipse.osgi_3.6.2.R36x_v20110210
>>>>>> 1    ACTIVE      org.apache.felix.configadmin_1.2.4
>>>>>> 2    ACTIVE      org.ops4j.pax.logging.pax-logging-api_1.4.0
>>>>>> 3    ACTIVE      org.ops4j.pax.logging.pax-logging-service_1.4.0
>>>>>> 4    ACTIVE      org.apache.aries.blueprint_0.3.1
>>>>>> 5    ACTIVE      org.apache.aries.proxy.api_0.3.0
>>>>>> 6    RESOLVED    org.apache.aries.util_0.3.0
>>>>>> 7    RESOLVED    org.apache.aries.sample_1.0.0.SNAPSHOT
>>>>> When I start the sample using "start 7" nothing is logged and no messages 
>>>>> of
>>>>> execution appears as expected :-(
>>>>>
>>>>> there is no messages about aries being started either (some messages 
>>>>> appears
>>>>> only when running inside eclipse)...
>>>>>
>>>>> Could you please take a look ?
>>>>>
>>>>>> Quiesce is a Blueprint extension that that allow Blueprint to take
>>>>>> bundles away gracefully.  It notifies Blueprint when a bundle is about
>>>>>> to be taken away and Blueprint then unregisters the bundle's services
>>>>>> and trying to let existing work run to completion.
>>>>> I've installed using org.apache.aries.quiesce.manager_0.3.0. It is the 
>>>>> right
>>>>> one?
>>>>>> I hope this helps.
>>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> Graham.
>>>>> Thanks again
>>>>>
>>>>> Cristiano
>>>>>
>>>>>> On 27 May 2011 23:28, Cristiano Gavião<[email protected]>    wrote:
>>>>>>> Hi Graham, thanks...
>>>>>>>
>>>>>>> I've used the single blueprint bundle for while to test...  I'm running
>>>>>>> from
>>>>>>> eclipse workspace (as a OSGI Framework)
>>>>>>>
>>>>>>> It seems that aries is being started ok, but there are something wrong
>>>>>>> with
>>>>>>> my example that I could figure out...
>>>>>>>
>>>>>>>> osgi>    19:04:39.340 [Start Level Event Dispatcher] DEBUG
>>>>>>>> o.a.a.b.container.BlueprintExtender - Starting blueprint extender...
>>>>>>>> 19:04:39.359 [Start Level Event Dispatcher] INFO
>>>>>>>>   o.a.a.b.container.BlueprintExtender - No quiesce support is 
>>>>>>>> available,
>>>>>>>> so
>>>>>>>> blueprint components will not participate in quiesce operations
>>>>>>>> 19:04:39.359 [Start Level Event Dispatcher] DEBUG
>>>>>>>> o.a.a.b.container.BlueprintExtender - Blueprint extender started
>>>>>>> I would appreciate your help...
>>>>>>>
>>>>>>> I've created a single osgi project to provide a command service to
>>>>>>> org.eclipse.osgi.framework.console.CommandProvider interface.
>>>>>>>
>>>>>>> I use this blueprint xml:
>>>>>>>
>>>>>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>>>>>> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0";
>>>>>>>>     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>>>>>>
>>>>>>>>   
>>>>>>>> xmlns:cm="http://aries.apache.org/blueprint/xmlns/blueprint-cm/v1.1.0";
>>>>>>>>
>>>>>>>>
>>>>>>>>   
>>>>>>>> xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd";>
>>>>>>>>
>>>>>>>>
>>>>>>>> <bean id="commandProviderImpl"
>>>>>>>> class="org.jbehave.osgi.equinox.commands.CommandProvider">
>>>>>>>> </bean>
>>>>>>>>
>>>>>>>> <service id="commandService" ref="commandProviderImpl"
>>>>>>>>         interface="org.eclipse.osgi.framework.console.CommandProvider">
>>>>>>>> </service>
>>>>>>>> </blueprint>
>>>>>>> This is the impl class..
>>>>>>>> public class CommandProvider implements
>>>>>>>>         org.eclipse.osgi.framework.console.CommandProvider {
>>>>>>>>
>>>>>>>>     @Override
>>>>>>>>     public String getHelp() {
>>>>>>>>         StringBuffer help = new StringBuffer();
>>>>>>>>         help.append("--- Jbehave Equinox Commands ---\r\n");
>>>>>>>>         help.append("\tstatus - JBehave OSGi EmbedderService status.");
>>>>>>>>         help.append("\trunAnnotaddedEmbedder - Run Stories via 
>>>>>>>> Annotated
>>>>>>>> Embedder on Karaf.");
>>>>>>>>         help.append("\r\n\r\n");
>>>>>>>>         return help.toString();
>>>>>>>>     }
>>>>>>> But I can't see any result when I type 'help'. It seems that it is not
>>>>>>> being
>>>>>>> injected...
>>>>>>>
>>>>>>> any tip to help trace this?
>>>>>>>
>>>>>>> btw, what is quiesce ?
>>>>>>>
>>>>>>> thanks a lot
>>>>>>>
>>>>>>> Cristiano
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 27/05/11 18:23, Graham Charters wrote:
>>>>>>>> Hi Cristiano,
>>>>>>>>
>>>>>>>> The single blueprint bundle is a roll-up of the other blueprint
>>>>>>>> bundles. As such, it contains more than you need.  For basic blueprint
>>>>>>>> you just need blueprint.api and blueprint.core, I believe.  Install
>>>>>>>> and start them in equinox and then install and start your bundle that
>>>>>>>> uses blueprint and it should be processed (the install/start order of
>>>>>>>> these bundles is not important).
>>>>>>>>
>>>>>>>> The following article gives a good overview of Blueprint, but is a
>>>>>>>> little out of date in terms of the build it uses.  The blueprint
>>>>>>>> specification hasn't changed since then, though.
>>>>>>>>
>>>>>>>> http://www.ibm.com/developerworks/opensource/library/os-osgiblueprint/
>>>>>>>>
>>>>>>>> You typically don't have to import any packages for blueprint because
>>>>>>>> you don't use it's APIs directly (you write blueprint XMLs).
>>>>>>>>
>>>>>>>> Let us know if you have any problems.
>>>>>>>>
>>>>>>>> Regards, Graham.
>>>>>>>>
>>>>>>>> On 27 May 2011 22:02, Cristiano Gavião<[email protected]>      wrote:
>>>>>>>>> Hi people,
>>>>>>>>>
>>>>>>>>> I'm trying to use aries blueprint on equinox to able to consume some
>>>>>>>>> service
>>>>>>>>> bundles. Those services I've built using org.osgi.compendium-4.2.0.jar
>>>>>>>>> and
>>>>>>>>> bnd.
>>>>>>>>>
>>>>>>>>> So, which jar should I use on my client bundle? Which package should I
>>>>>>>>> import ?
>>>>>>>>>
>>>>>>>>> blueprint.api
>>>>>>>>> blueprint
>>>>>>>>> blueprint.core
>>>>>>>>>
>>>>>>>>> Is there any config that I need to do ?
>>>>>>>>>
>>>>>>>>> thanks a lot
>>>>>>>>>
>>>>>>>>> Cristiano
>>>>>>>>>
>>>>>
>>>
>>
>
>

Reply via email to