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
