Thanks All,

We decided only to support osgi:service and osgi:framework/bundlecontext
from the OSGi URL Scheme section of the OSGi JNDI Services specification.
We are not going to support osgi:servicelist in the first phase.

Thanks,
Sameera.

On Mon, Apr 4, 2016 at 5:16 PM, Peter Kriens <peter.kri...@aqute.biz> wrote:

> Christian,
> WSO2 is a provider of infrastructure, not an application developer. I
> guess they need to provide the OSGi specification implementations to their
> customers.
>
> Kind regards,
>
> Peter Kriens
>
>
> On 4 apr. 2016, at 08:19, Christian Schneider <ch...@die-schneider.net>
> wrote:
>
> If you are developing a pure OSGi solution then you should think twice
> about using jndi. Jndi is not very well suited for a dynamic environment.
> So for example
> you do not get a notification when a jndi resource becomes available and
> there is no way to remove a jndi resource.
>
> The old Aries JPA implementation used Aries jndi to resolve the
> DataSources. This was not very reliable. It simply waited until a timeout
> for the DataSource to become available and threw an exception if not. It
> also was not able to cope with dyanamic changes in the DataSource service
> or a removal.
>
> So for the new Aries JPA implementation I kept the jndi url syntax but on
> the Aries JPA side I implemented it with a service tracker for the
> DataSource. So it was able to react on changes, removal and also could
> handle a new DataSource that arrives at any late time.
>
> Christian
>
>
> 2016-04-04 6:50 GMT+02:00 Nipuni Piyabasi Perera <nipuni880...@gmail.com>:
>
>> Hi Christian,
>>
>> Thanks for your suggestions.
>>
>> I will try to reach Jarek Gawor regarding the Apache Aries implementation
>> issues.
>>
>> We (WSO2) use OSGi environment in our products and we utilize JNDI within
>> the OSGi framework. In order to achieve that we are in the process of
>> implementing JNDI services following OSGi specification. As a result we
>> have already implemented JNDI-Context Manager Service (section 126.3 in
>> specification).
>>
>> Next we hope to continue implementation to JNDI-Provider Admin service
>> and OSGi URL scheme. While implementing the OSGI-URL scheme (section
>> 126.6), I came across issues I have raised earlier in the mailing list.
>>
>> Thanks,
>> Nipuni
>>
>> On Thu, Mar 31, 2016 at 12:12 PM, Nipuni Piyabasi Perera <
>> nipuni880...@gmail.com> wrote:
>>
>>> 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
>>>
>>
>>
>>
>> --
>> 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
>>
>
>
>
> --
> --
> Christian Schneider
> http://www.liquid-reality.de
> <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.liquid-reality.de>
>
> Open Source Architect
> http://www.talend.com
> <https://owa.talend.com/owa/redir.aspx?C=3aa4083e0c744ae1ba52bd062c5a7e46&URL=http%3a%2f%2fwww.talend.com>
> _______________________________________________
> OSGi Developer Mail List
> osgi-dev@mail.osgi.org
> https://mail.osgi.org/mailman/listinfo/osgi-dev
>
>
>
> _______________________________________________
> OSGi Developer Mail List
> osgi-dev@mail.osgi.org
> https://mail.osgi.org/mailman/listinfo/osgi-dev
>



-- 
Sameera Jayasoma

blog: http://sameera.adahas.org
twitter: https://twitter.com/sameerajayasoma
flickr: http://www.flickr.com/photos/sameera-jayasoma/
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to