Hi,
On Wed, Aug 13, 2014 at 9:03 PM, Romain Manni-Bucau <[email protected]> wrote: > +1 > > If you need a spi let us know we can introduce it. Workaround I used > to not introduce an OSGi spi was to recreate a custom classloader > doing the translation but it was for openejb and not tomcat/tomee. > > Reading back the thread, I think a SPI would be great. This provides what we need. Much appreciate it Romain! > > Romain Manni-Bucau > Twitter: @rmannibucau > Blog: http://rmannibucau.wordpress.com/ > LinkedIn: http://fr.linkedin.com/in/rmannibucau > Github: https://github.com/rmannibucau > > > 2014-08-13 17:30 GMT+02:00 dsh <[email protected]>: > > That's ok I just felt that there might be no maintainer at all. So > getting > > in touch with the Karaf folks is probably the best option. > > > > Cheers > > Daniel > > > > > > On Wed, Aug 13, 2014 at 5:12 PM, Romain Manni-Bucau < > [email protected]> > > wrote: > > > >> karaf community, we decided to not maintain it here anymore and to > >> move it over karaf. No big love until today AFAIK but tomee community > >> shouldn't take it back I think since it would just make it lost in the > >> middle of nowhere today. > >> > >> > >> Romain Manni-Bucau > >> Twitter: @rmannibucau > >> Blog: http://rmannibucau.wordpress.com/ > >> LinkedIn: http://fr.linkedin.com/in/rmannibucau > >> Github: https://github.com/rmannibucau > >> > >> > >> 2014-08-13 13:32 GMT+02:00 dsh <[email protected]>: > >> > An SPI solution was something I thought of in the first place but > then my > >> > intention while providing feedback was to provide some pointers how > the > >> > existing patch could be enhanced. > >> > > >> > Speaking of moving the OSGi stuff to Karaf - Does the current OSGi > stuff > >> > for TomEE has a maintainer? > >> > > >> > Cheers > >> > Daniel > >> > > >> > > >> > On Wed, Aug 13, 2014 at 1:19 PM, Romain Manni-Bucau < > >> [email protected]> > >> > wrote: > >> > > >> >> No reflection but a spi in system instance component > >> >> > >> >> Also forgot to mention we decided to move osgi stuff to karaf project > >> >> months ago and forget it in tomee itself so clearly a spi solution > imho > >> >> Le 13 août 2014 12:02, "Kasun Gajasinghe" <[email protected]> a > écrit : > >> >> > >> >> > Hi Daniel, > >> >> > > >> >> > Please see my comments in-line. > >> >> > > >> >> > > >> >> > On Wed, Aug 13, 2014 at 1:47 PM, dsh <[email protected]> > >> wrote: > >> >> > > >> >> > > Hi Kasun, > >> >> > > > >> >> > > thanks for providing this patch, appreciated! I am pondering a > bit > >> >> around > >> >> > > the fact that it seems the patch would only work if running > inside > >> an > >> >> > > Equinox environment. Is my understanding correct that the patch > >> >> actually > >> >> > > isn't OSGi runtime agnostic but only works together with Eclipse > >> >> Equinox > >> >> > > and not for instance with Apache Felix due to the explicite > >> dependency > >> >> on > >> >> > > BundleURLConnection? > >> >> > > > >> >> > > > >> >> > Yes, this will only work in Eclipse Equinox. I did not dig around > >> much on > >> >> > Felix, but my next goal is that. So, I will update this thread on > that > >> >> > soon. > >> >> > > >> >> > > >> >> > > Also note that BundleURLConnection is part of an internal > package. > >> My > >> >> > > understanding here is that using classes from an internal package > >> >> should > >> >> > be > >> >> > > avoided where possible (see: [1] x-internal Directive) cause > these > >> are > >> >> > > actually implementation specific classes. > >> >> > > > >> >> > > > >> >> > I did look around what other approach I can take, but could not > find > >> one > >> >> > that do not change the TomEE design. Since TomEE needs to convert > the > >> >> URLs > >> >> > to actual file paths I had to follow this approach. > >> >> > > >> >> > > >> >> > > Also I was wondering whether accessing the BundleURLConnection > class > >> >> like > >> >> > > it is shown below, would remove the explicit dependency: > >> >> > > > >> >> > > final URLConnection conn = url.openConnection(); > >> >> > > if (conn.getClass().getName().equals( > >> >> > > "org.eclipse.osgi.framework.internal.core.BundleURLConnection")) > { > >> >> > > final Method method = conn.getClass().getMethod("getLocalURL", > >> null); > >> >> > > method.setAccessible(true); > >> >> > > > >> >> > > if (null != method) { > >> >> > > toFile((URL) method.invoke(conn, null);); > >> >> > > } > >> >> > > } > >> >> > > > >> >> > > What do you think? If there would be a way to make this OSGi > >> framework > >> >> > > independent, that would be great I'd suppose. > >> >> > > > >> >> > > > >> >> > Absolutely, +1. Thanks for clarifying this. I was inclined to know > >> >> whether > >> >> > TomEE devs prefer a Java reflection based approach. > >> >> > > >> >> > I will also adapt the use of FRAMEWORK_VENDOR because the > url-to-file > >> >> > conversion is vendor specific. > >> >> > > >> >> > Thanks, > >> >> > KasunG > >> >> > > >> >> > > >> >> > > [1] > >> >> > > > >> >> > > > >> >> > > >> >> > >> > http://help.eclipse.org/luna/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc%2Fbundle_manifest.html > >> >> > > > >> >> > > Cheers > >> >> > > Daniel > >> >> > > > >> >> > > > >> >> > > On Wed, Aug 13, 2014 at 9:33 AM, Kasun Gajasinghe < > >> [email protected]> > >> >> > > wrote: > >> >> > > > >> >> > > > Hi folks, > >> >> > > > > >> >> > > > Currently, when TomEE scans it's libraries for TLDs etc. via > the > >> >> > > > URLClassLoader, it gets a list of URLs pointing to jar files. > To > >> >> > process > >> >> > > > these TomEE converts these URLs to actual file paths. As seen > in > >> this > >> >> > > code > >> >> > > > segment [1], TomEE only processes URLs that have jar:/ or > file:/ > >> >> > > protocol. > >> >> > > > This works fine in a non-OSGi environment. > >> >> > > > > >> >> > > > But in OSGi environments, they have OSGi bundles instead of > jars. > >> So, > >> >> > > what > >> >> > > > the URLClassloader returns is a set of URLs with > bundleresource:/ > >> >> > > protocol > >> >> > > > pointing to the bundles. We can in fact get the actual file > path > >> from > >> >> > the > >> >> > > > bundleresource:/ protocol as well. > >> >> > > > > >> >> > > > So, I'm writing this mail to the kind folks at TomEE to > consider > >> >> > > supporting > >> >> > > > bundleresource:/ protocol as well. I have attached a patch for > >> this > >> >> in > >> >> > > this > >> >> > > > jira [2]. The patch worked fine in my OSGi enabled runtime > based > >> on > >> >> > > > Equinox. One caveat of this patch is that it adds Equinox as a > >> >> > > compile-time > >> >> > > > dependency. But the TomEE runtime can function without this > >> >> dependency. > >> >> > > > > >> >> > > > I hope this is the proper channel to talk about this. I'd value > >> your > >> >> > > > feedback very much! > >> >> > > > > >> >> > > > [1] > >> >> > > > > >> >> > > > > >> >> > > > >> >> > > >> >> > >> > https://github.com/apache/tomee/blob/trunk/container/openejb-loader/src/main/java/org/apache/openejb/loader/Files.java#L391 > >> >> > > > > >> >> > > > [2] https://issues.apache.org/jira/browse/TOMEE-1292 > >> >> > > > > >> >> > > > Thanks, > >> >> > > > KasunG > >> >> > > > > >> >> > > > -- > >> >> > > > ~~~*******'''''''''''''*******~~~ > >> >> > > > *Kasun Gajasinghe* > >> >> > > > Software Engineer; WSO2 Inc.; http://wso2.com, > >> >> > > > *linked-in: *http://lk.linkedin.com/in/gajasinghe > >> >> > > > *blog: **http://blog.kasunbg.org* <http://blog.kasunbg.org/> > >> >> > > > > >> >> > > > > >> >> > > > *twitter: **http://twitter.com/kasunbg* < > >> http://twitter.com/kasunbg> > >> >> > > > > >> >> > > > >> >> > > >> >> > > >> >> > > >> >> > -- > >> >> > ~~~*******'''''''''''''*******~~~ > >> >> > *Kasun Gajasinghe* > >> >> > Software Engineer; WSO2 Inc.; http://wso2.com, > >> >> > *linked-in: *http://lk.linkedin.com/in/gajasinghe > >> >> > *blog: **http://blog.kasunbg.org* <http://blog.kasunbg.org/> > >> >> > > >> >> > > >> >> > *twitter: **http://twitter.com/kasunbg* < > http://twitter.com/kasunbg> > >> >> > > >> >> > >> > -- ~~~*******'''''''''''''*******~~~ *Kasun Gajasinghe* Software Engineer; WSO2 Inc.; http://wso2.com, *linked-in: *http://lk.linkedin.com/in/gajasinghe *blog: **http://blog.kasunbg.org* <http://blog.kasunbg.org/> *twitter: **http://twitter.com/kasunbg* <http://twitter.com/kasunbg>
