I forgot to mention: Basically, this is what the Eclipse developers did: http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.pde.doc.user/guide/tools/project_wizards/plugin_from_archives.htm
> -----Ursprüngliche Nachricht----- > Von: Lewis, Eric [mailto:[email protected]] > Gesendet: Mittwoch, 15. Juli 2009 13:42 > An: [email protected] > Betreff: AW: Create Eclipse plugin from all dependencies - how? > > Hi Stuart > > > > > no, if you use the 2.0.0 bundleplugin (which is the latest > > stable version) > > Yes, I do. > > > then: > > > > <Export-Package>*</Export-Package> > > > > will pull in all classes from your dependencies (ie. the > > entire project > > classpath) > > into the bundle - so if you do a "jar tvf" on the bundle > > you'll see lots of > > classes > > inlined into the final jar > > > > now if you also have: > > > > <Embed-Dependency>*</Embed-Dependency> > > > > then you're also telling the Bnd Tool to embed each > > dependency jar inside > > the > > final jar - so basically you end up with duplicate content > > (inlined and > > embedded) > > Well, I don't know if I mentioned it, but I'm doing this to > create one Eclipse plugin which contains all our > dependencies. Basically we're doing a client/server > application, and of course the client has to know all the > server objects (a couple of JARs with their dependencies) to work. > We've been messing around with this topic for some time now, > and there seems to be no really elegant solution. > Either all dependencies have to be OSGi bundles (and good > luck finding them) or you glue up some super-plugin with all > the JARs in the build.properties and all the packages > exported in the MANIFEST.MF > > Perhaps we're totally wrong with this second approach, but it > a short test (done by hand) worked. However, building this > with Maven and friends seems a bit more difficult. > > > > > Every package should be exported. > > > > > > right, and using: > > > > <_exportcontents>*</_exportcontents> > > <Embed-Dependency>*</Embed-Dependency> > > > > will tell the Bnd Tool to embed all dependencies and make all > > the packages > > contained inside them public - but without then inlining > any of their > > contents > > > > of course, if you're happy using inlined content then you > > could just use: > > > > <Export-Package>*</Export-Package> > > > > instead of bothering with any Embed-Dependency instructions > > > > > > no, <Export-Package> applies to your entire compilation > > classpath not just > > your local sources - however, the default <Export-Package> is > > calculated to > > only export your local packages > > > > > > if you use <Export-Package>*</Export-Package> with the 2.0.0 > > bundleplugin > > you will end up inlining your entire compilation classpath, > > which is usually > > not > > what you want > > I think your explanation is good but goes over my head ;-) > As I mentioned, since we don't know better, we just want to > export every package of the dependencies and their transitive > dependencies. > > > it sounds like you have a large amount of packages in this > one plug-in > > and you're attempting to export all of them (which is kind > of opposite > > to the idea behind OSGi) > > Right, but we've come to the conclusion that it's the only > thing that works :-( > I did discuss with the Eclipse guys that (from my newbie OSGi > view), all dependencies should be OSGi bundles, and that the > plugins should just pick whatever they like. But it seems > that this results in classloader problems. > > > > > the problem with this export-all approach is that you > basically end up > > with a load of spaghetti that PDE then has to wire up, and > > when it gets > > stuck on one part then it starts reporting lots of errors > > (because they're > > all interconnected) > > > > so it may be it's just one error stopping PDE from resolving > > the bundle > > Yes, I'm now down to one (!) dependency (and its transitive > dependencies) - still doesn't work (26 errors). > > > > > Now, I know that these packages do exist in the > dependencies, so it's > > > probably some kind of misconfiguration. One of the RCP > > developers mentioned > > > that the 'uses:=' part might be the troublemaker...? > > > > > > yes, PDE doesn't like excessive "uses" constraint (but there are > > places where you need them to avoid potential loader problems) > > > > it's only when you're exporting lots of inter-related packages that > > the "uses" constraints becomes an issue, I've never had trouble > > using them with plug-ins that export well-defined APIs > > > > to turn it off put <_nouses>true</_nouses> in your Bnd instructions > > Thanks, but first I'll try the maven-pax-plugin. > > > > > Also, I'm generating an Eclipse PDE project as described on > > the Felix page, > > > but really, it's a total mess. > > > Only about a third of the dependencies are in the visible > > 'Referenced > > > Libraries', about half of them use the M2_REPO environment > > variable, the > > > rest is hard-coded as linked resource in the .project file, > > and of course > > > all of them point to my local Maven repo instead of the project! > > > > > > well that's the Eclipse plug-in for you - which is why I > adapted it in > > the maven-pax-plugin to try and improve the project metadata for > > OSGi / plug-in projects > > I'll try that next. > > > > > Do you have any idea how I could force the Eclipse plugin to > > do the right > > > thing? I see in the example that there seems to be a > > plugin.xml which I > > > don't have, perhaps the path configuration is in there? > > > > > > > plugin.xml is how the plug-in contributes to the Extension registry, > > it doesn't really affect the operation of the > maven-eclipse-plugin or > > how the paths get configured > > > > you could create an example POM over at http://www.ops4j.org > > (see http://wiki.ops4j.org/display/ops4j/Committers for access > > - it's as simple as signing up) - or pick another hosting site and > > put the example there (or failing that just email the project zip) > > > > that would make it easier to see what's going on and help out, > > rather than trying to reconstruct it based on email fragments > > Would it be ok if I send you a ZIP to your personal email address? > > > Best regards, > Eric > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

