Hi Christian,

Thanks for the replies. (I received replies through the osgi-digest mail).

Yes. I went through the Apache Aries implementation and I found some
confusions and I wanted to clarify them with osgi-dev. Some of the examples
are as follows:

   1. Using osgi: scheme and servicelist path. "If this osgi:servicelist
   scheme is used from a lookup method then a Context object is returned
   instead of a service object" - specification page 508. Say we got a Context
   object from a URL (eg:
   context.lookup("osgi:servicelist/<interface-name>")). We again can call a
   lookup using the received context as below:

*Context listContext = context.lookup("osgi:servicelist/<interface-name>");*
*Object service = listContext.lookup(<some-parameter>)
          //what should be the parameters passed here?*


As per the Apache Aries implementation, the parameters of the second
lookup() method is a service id. So the OSGi service query will be perform
reading the interface from the first URL (i.e
*"osgi:servicelist/<interface-name>"*) and the service id from the second
URL (i.e "*<some-parameter>*"). I could not find such description from the
specification. (Correct me if I am wrong).

      2. As per the Apache Aries implementation you can call list() and
listbindings() methods for both "service" and "servicelist" paths. Both
method calls directs to a same method which passes an empty string as the
parameter to list() method [1]. Is this the expected behavior? (Or
specification
may not provide each and every implementation detail and developers might
have to taken decisions while implementing.)

[1]
https://github.com/apache/aries/blob/trunk/jndi/jndi-url/src/main/java/org/apache/aries/jndi/url/ServiceRegistryContext.java#L63

Thanks,
Nipuni

On Thu, Mar 31, 2016 at 9:40 AM, Nipuni Piyabasi Perera <
nipuni880...@gmail.com> wrote:

> Hi all,
>
> Thanks for the replies. (I received replies through the osgi-digest mail).
>
> Seems my second question is not much clear. Hence adding the same question
> with more details below:
>
> 2. As per the specification, listBindings() and list() methods will return
> NamingEnumeration objects. Do both "service" and "servicelist" paths need
> to support aforementioned methods?
>     a. eg: context.list("osgi:service/<query>") is this a valid statement ?
>     b. eg: context.list("osgi:servicelist/<query>") is this a valid
> statement ?
>     c. If this(above (b)) is a valid scenario, does the Context object
> need to  obtain first, before doing list() and listbinding() queries?
> (Please find a sample code below)
>
>         Context context = jndiContextManager.newInitialContext();
>         Context listContext =
> context.lookup("osgi:servicelist/org.my.jndi.osgi.services.FooService")
>
> - In a scenario as above, is it valid to pass two different names to
> list() and lookup() methods (i.e
> context.lookup("osgi:servicelist/SERVICE-A") and do a
> context.list(osgi:servicelist/SERVICE-B)) ?
>         NamingEnumeration<NameClassPair> namingEnumeration =
> listContext.list("osgi:service/org.my.jndi.osgi.services.FooService");
>
> - In a scenario as above say we received a context object with lookup
> method.
>     Context listContext =
> context.lookup("osgi:servicelist/<service-name>");
>
>   We should be able to do lookup() calls with this received context
> object. In such cases what should pass as the URL.
>   eg: is it "listContext.lookup("osgi:servicelist/<service-name>") or
> listContext.lookup("<service-name>|<service-id>")"
>
> (I also have raised the queries in OSGi public Bugzilla)
>
> Thanks,
> Nipuni
>
> On Wed, Mar 30, 2016 at 9:37 AM, Nipuni Piyabasi Perera <
> nipuni880...@gmail.com> wrote:
>
>> Hi all,
>>
>> Appreciate any response on the above questions.
>>
>> Thanks,
>> Nipuni
>>
>> On Thu, Mar 24, 2016 at 8:05 PM, Nipuni Piyabasi Perera <
>> nipuni880...@gmail.com> wrote:
>>
>>> Hi all,
>>>
>>> I am trying to implement OSGI URL scheme support for JNDI following the
>>> OSGI service specification[1]. While implementing the OSGI URL scheme I
>>> encountered following issues.
>>> As per the specification, Following are the confusions I have:
>>>
>>>    1. A lookup with osgi:service path will return a service while a
>>>    servicelist path returns an context object. Does a query
>>>    "osgi:servicelist/" is valid? Or is it mandatory to have a query followed
>>>    by the osgi:servicelist/ ?
>>>    2. As per the specification, listBindings() and list() methods will
>>>    return NamingEnumeration objects. Do both "service" and "servicelist" 
>>> paths
>>>    need to support aforementioned methods?
>>>       1. context.list("osgi:service/<qname>") is this a valid URL ?
>>>       2. context.list(osgi:servicelist/<qname>) is this a valid URL ?
>>>          1. If this is a valid scenario, does the Context object need
>>>          to obtain first before doing list() and listbinding() queries? 
>>> (Please find
>>>          a sample code below)
>>>          2.
>>>
>>>          Context context = jndiContextManager.newInitialContext();
>>>
>>>          Context listContext = 
>>> context.lookup("osgi:servicelist/org.my.jndi.osgi.services.FooService")
>>>
>>>          NamingEnumeration<NameClassPair> namingEnumeration =
>>>
>>>                  
>>> listContext.list("osgi:service/org.wso2.carbon.jndi.osgi.services.FooService");
>>>
>>>          3.
>>>
>>>          In a scenario as above, is it valid to pass two different names to 
>>> list() and lookup() methods (i.e 
>>> context.lookup("osgi:servicelist/SERVICE-A") and do a 
>>> context.list(osgi:servicelist/SERVICE-B)) ?
>>>
>>>          3. As per the specification we mainly support list(),
>>>    listbindings(), and lookup() methods. Can we consider the other methods
>>>    such as bind(), rebind() , unbind() , rename() as  operations that are 
>>> not
>>>    supported  with the provider?
>>>
>>> Appreciate any input on above queries.
>>>
>>> [1] https://osgi.org/download/r6/osgi.enterprise-6.0.0.pdf
>>> <https://www.osgi.org/developer/downloads/release-6/release-6-download/>
>>>
>>> Thanks,
>>> Nipuni
>>>
>>> --
>>> Nipuni Perera
>>> Software Engineer; WSO2 Inc.; http://wso2.com
>>> Email: nip...@wso2.com
>>> Git hub profile: https://github.com/nipuni
>>> Blog : http://nipunipererablog.blogspot.com/
>>> Mobile: +94 (71) 5626680
>>>
>>
>>
>>
>> --
>> Nipuni Perera
>> Software Engineer; WSO2 Inc.; http://wso2.com
>> Email: nip...@wso2.com
>> Git hub profile: https://github.com/nipuni
>> Blog : http://nipunipererablog.blogspot.com/
>> Mobile: +94 (71) 5626680
>>
>
>
>
> --
> Nipuni Perera
> Software Engineer; WSO2 Inc.; http://wso2.com
> Email: nip...@wso2.com
> Git hub profile: https://github.com/nipuni
> Blog : http://nipunipererablog.blogspot.com/
> Mobile: +94 (71) 5626680
>



-- 
Nipuni Perera
Software Engineer; WSO2 Inc.; http://wso2.com
Email: nip...@wso2.com
Git hub profile: https://github.com/nipuni
Blog : http://nipunipererablog.blogspot.com/
Mobile: +94 (71) 5626680
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to