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 > <mailto: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 <mailto: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: > 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 > > <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 <mailto: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 <mailto: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 <mailto: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: > 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/ ? > As per the specification, listBindings() and list() methods will return > NamingEnumeration objects. Do both "service" and "servicelist" paths need to > support aforementioned methods? > context.list("osgi:service/<qname>") is this a valid URL ? > context.list(osgi:servicelist/<qname>) is this a valid URL ? > 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) > 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"); > 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)) ? > 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 <http://wso2.com/> > Email: nip...@wso2.com <mailto:nip...@wso2.com> > Git hub profile: https://github.com/nipuni <https://github.com/nipuni> > Blog : http://nipunipererablog.blogspot.com/ > <http://nipunipererablog.blogspot.com/> > Mobile: +94 (71) 5626680 <tel:%2B94%20%2871%29%205626680> > > > > -- > Nipuni Perera > Software Engineer; WSO2 Inc.; http://wso2.com <http://wso2.com/> > Email: nip...@wso2.com <mailto:nip...@wso2.com> > Git hub profile: https://github.com/nipuni <https://github.com/nipuni> > Blog : http://nipunipererablog.blogspot.com/ > <http://nipunipererablog.blogspot.com/> > Mobile: +94 (71) 5626680 <tel:%2B94%20%2871%29%205626680> > > > > -- > Nipuni Perera > Software Engineer; WSO2 Inc.; http://wso2.com <http://wso2.com/> > Email: nip...@wso2.com <mailto:nip...@wso2.com> > Git hub profile: https://github.com/nipuni <https://github.com/nipuni> > Blog : http://nipunipererablog.blogspot.com/ > <http://nipunipererablog.blogspot.com/> > Mobile: +94 (71) 5626680 <tel:%2B94%20%2871%29%205626680> > > > > -- > Nipuni Perera > Software Engineer; WSO2 Inc.; http://wso2.com <http://wso2.com/> > Email: nip...@wso2.com <mailto:nip...@wso2.com> > Git hub profile: https://github.com/nipuni <https://github.com/nipuni> > Blog : http://nipunipererablog.blogspot.com/ > <http://nipunipererablog.blogspot.com/> > Mobile: +94 (71) 5626680 <tel:%2B94%20%2871%29%205626680> > > > > -- > Nipuni Perera > Software Engineer; WSO2 Inc.; http://wso2.com <http://wso2.com/> > Email: nip...@wso2.com <mailto:nip...@wso2.com> > Git hub profile: https://github.com/nipuni <https://github.com/nipuni> > Blog : http://nipunipererablog.blogspot.com/ > <http://nipunipererablog.blogspot.com/> > Mobile: +94 (71) 5626680 <tel:%2B94%20%2871%29%205626680> > > _______________________________________________ > OSGi Developer Mail List > osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org> > https://mail.osgi.org/mailman/listinfo/osgi-dev > <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