I figured it out, I'll provide the details on the off chance that anyone
else runs into this problem.

Basically
org.eclipse.jetty.osgi.boot.utils.internal.DefaultFileLocatorHelper checks
to see if the class name
is "org.eclipse.osgi.baseadaptor.bundlefile.FileBundleEntry" which it is in
Kepler, but in Luna it is
"org.eclipse.osgi.storage.bundlefile.FileBundleEntry" so the returned File
ends up being null. It was addressed in this bug
https://bugs.eclipse.org/bugs/show_bug.cgi?id=431892 which was not fixed
until Jetty 9.2.0.

I could not upgrade my app to use Jetty 9.2.0 easily (long story), so I
went with a different solution which was to provide my own helper class
called org.eclipse.jetty.osgi.boot.utils.FileLocatorHelperImpl which is in
a fragment whose host plug-in is org.eclipse.jetty.osgi.boot. The
BundleFileLocatorHelperFactory finds my helper class because it looks for
an alternative class with exactly that name before using the
DefaultFileLocatorHelper. For the implementation of my class, I used  a
slightly modified version of the updated DefaultFileLocatorHelper from
Jetty 9.2.0, which already accounts for the *BundleEntry classes being
moved.


Thanks and good luck!

On Mon, Dec 8, 2014 at 3:47 PM, Zachary DeLuca <[email protected]> wrote:

> Hello all, not sure if this should be directed at jetty or eclipse but
> here goes:
>
> I have an RCP app with a plugin that includes the BIRT OSGi runtime
> (version 4.3.2). The plugin includes this in the manifest:
>
> Jetty-WarFolderPath: birt
> Web-ContextPath: /birt
>
> And the Product file for the app sets this as a VM arg:
>
> -Djetty.home.bundle=org.eclipse.jetty.osgi.boot
>
>
> When using Kepler this worked perfectly and Jetty deployed BIRT, but after
> migrating my app to Luna I get the following error(s):
>
> ...
> 2014-12-08 14:56:11.863:INFO:oejd.DeploymentManager:Deployable added:
> net.companyname.plugin.name-1.0.0.qualifier/birt
> 2014-12-08 14:56:11.926:WARN:oejd.DeploymentManager:Unable to reach node
> goal: started
> java.lang.IllegalArgumentException: Unable to locate birt in unlocated
> bundle 'net.companyname.plugin.name'
>         at
> org.eclipse.jetty.osgi.boot.AbstractWebAppProvider$OSGiApp.configureWebApp(AbstractWebAppProvider.java:232)
> ...
>
>
> I can provide more stack trace if needed, but I'm currently typing it
> manually so I'll leave it at that for now.
>
> I am using Jetty 8.1.14 that is included with Eclipse Luna. I had to add
> some of the required plugins that were not included such as jetty-osgi-boot
> and it's dependencies. Also, jetty-webapp and jetty-xml were included with
> Luna as version 8.1.3, I replaced them with 8.1.14. This is all exactly the
> same as the working configuration I have with Kepler.
>
> Does anyone have any advice? Obviously my bundle is there and the birt
> directory is inside it because that worked in Kepler and I have not done
> anything except import my projects into Luna. I'm going to try to upgrade
> my BIRT OSGi runtime to 4.4.1 as well to see if that helps.
>
>
> Thank you,
>
> Zach
>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to