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>

Reply via email to