Andreas, just committed that fix in order to get the packaging right. However, there is a deeper inconsistency in the naming of components vs. their package names, that I think we need to fix in the long run ...
/peter GTalk: neubauer.peter Skype peter.neubauer Phone +46 704 106975 LinkedIn http://www.linkedin.com/in/neubauer Twitter http://twitter.com/peterneubauer http://www.neo4j.org - Relationships count. http://www.oredev.se - The best thing since the wall came down. http://www.linkedprocess.org - Distributed computing on LinkedData scale On Tue, Sep 22, 2009 at 1:14 AM, Andreas Kollegger <akolleg...@tembopublic.org> wrote: > Looking at neo-utils, I don't see any embedded dependencies in the > neo-utils jar. The manifest would have entries like "Include-Resource" > or "Bundle-Classpath" and there'd be jars within the jar. > > Oh, wait. I think I see the problem. neo-utils depends on index-util > which produce classes in overlapping package name spaces. Ah. Yes, that > effectively is embedding dependencies, except that the culprit > is actually a problem with the Export-Package. The parent has this: > > <Export-Package>!${bundle.namespace}.internal.*,$ > {bundle.namespace}.*;version="${pom.version}"</Export-Package> > > Which for neo-utils means any available class in the org.neo4j.util.* > packages > except for org.neo4j.util.internal classes will be included in the jar. > > So, we need a local osgi.bnd file to specifically exclude the non neo- > utils > package namespaces. This should do it: > > Export-Package: !org.neo4j.util.internal.*,!org.neo4j.util.index,! > org.neo4j.util.map,!org.neo4j.util.timeline,!org.neo4j.util.btree,! > org.neo4j.util.sortedtree,org.neo4j.util.*;version="${pom.version}" > > I'm sorry. I remember coming across this early on, and was sure that I'd > taken care of it when committing the bundle stuff. This is my fault. > > As for things like JTA: I don't think we should embed that in core > unless we also produce a version without it embedded. We should be > able to do that with an assembly. My own project is atypical, I know, > but I actually deploy multiple persistence technologies (jpa, db4o, > neo4j), in a best tool for the job approach. Having multiple JTAs > in different bundles would be awkward to overcome. > > Alternatively, we could start a neo-commons (or neo-deps?) multi-module > project with modules that wrap any required third party stuff to keep > it all in the family, while maintaining maximum flexibility when > provisioning a runtime. > > Thoughts? Preferences? > > -Andreas > > > On Sep 21, 2009, at 5:18 PM, Peter Neubauer wrote: > >> Hi Andreas, >> basically getting rid of unwanted includes is the case. I am thinking >> the master pom addition would clear things up and exclude deps in an >> obvious way. via the bnd files we can then fine tune e.g. exports in >> case that is necessary. WDYT? >> >> Then, we could e.g. explicitely state the JTA jar as scope "runtime" >> to make it clear it wil be packaged with the core bundle ... >> >> /peter >> >> GTalk: neubauer.peter >> Skype peter.neubauer >> Phone +46 704 106975 >> LinkedIn http://www.linkedin.com/in/neubauer >> Twitter http://twitter.com/peterneubauer >> >> http://www.neo4j.org - Relationships count. >> http://www.oredev.se - The best thing since the wall >> came down. >> http://www.linkedprocess.org - Distributed computing on LinkedData >> scale >> >> >> >> On Mon, Sep 21, 2009 at 10:51 PM, Andreas Kollegger >> <akolleg...@tembopublic.org> wrote: >>> Hey, just catching up on this thread. >>> >>> Adding an explicit provided scope to dependencies seems fine to me. >>> I'm not sure about adding Embed-Dependency to the parent pom, though. >>> >>> Without an explicit Embed-Dependency instruction, I wouldn't expect >>> anything other than compiled source to be in the final jar. Are you >>> saying that was happening? Or that you want dependencies embedded? >>> >>> If the latter, then the component which wants different behavior >>> from the bundle plugin can create a filed named osgi.bnd in the same >>> directory as it's pom. Any instructions in there will override the >>> instructions in the plugin configuration. >>> >>> So, is it getting rid of unwanted dependencies that are being >>> included, >>> or adding in dependencies that are wanted? >>> >>> -Andreas >>> >>> >>> On Sep 21, 2009, at 4:27 PM, Peter Neubauer wrote: >>> >>>> Yeah, I guess I can do it, but need the rights first, >>>> alternatively I >>>> can send you a patch that includes all the updates in the different >>>> poms (basically just adding the right scope elements). Can work on >>>> it >>>> more tomorrow. >>>> >>>> /peter >>>> >>>> GTalk: neubauer.peter >>>> Skype peter.neubauer >>>> Phone +46 704 106975 >>>> LinkedIn http://www.linkedin.com/in/neubauer >>>> Twitter http://twitter.com/peterneubauer >>>> >>>> http://www.neo4j.org - Relationships count. >>>> http://www.oredev.se - The best thing since the wall >>>> came down. >>>> http://www.linkedprocess.org - Distributed computing on LinkedData >>>> scale >>>> >>>> >>>> >>>> On Mon, Sep 21, 2009 at 10:25 PM, Mattias Persson >>>> <matt...@neotechnology.com> wrote: >>>>> Oh, ok... I'd vote for someone with a little more OSGi knowledge >>>>> though, who could test it a bit before committing it. But I guess I >>>>> _could_ do it. >>>>> >>>>> 2009/9/21 Peter Neubauer <neubauer.pe...@gmail.com>: >>>>>> Well, I figure you have to commit the patch, since I don't have >>>>>> sufficient privileges for the master pom ... >>>>>> >>>>>> /peter >>>>>> >>>>>> GTalk: neubauer.peter >>>>>> Skype peter.neubauer >>>>>> Phone +46 704 106975 >>>>>> LinkedIn http://www.linkedin.com/in/neubauer >>>>>> Twitter http://twitter.com/peterneubauer >>>>>> >>>>>> http://www.neo4j.org - Relationships count. >>>>>> http://www.oredev.se - The best thing since the wall >>>>>> came down. >>>>>> http://www.linkedprocess.org - Distributed computing on >>>>>> LinkedData scale >>>>>> >>>>>> >>>>>> >>>>>> On Mon, Sep 21, 2009 at 10:15 PM, Mattias Persson >>>>>> <matt...@neotechnology.com> wrote: >>>>>>> Bump. >>>>>>> >>>>>>> Any progress here anyone? It should be dealt with rather soon do >>>>>>> prevent strange behaviour and confusion. >>>>>>> >>>>>>> 2009/9/20 Peter Neubauer <peter.neuba...@jayway.se>: >>>>>>>> Hi folks, >>>>>>>> Mattias noted packaging problem where dependencies got embedded >>>>>>>> into >>>>>>>> e.g. the neo-utils final jar. I propose changing the master >>>>>>>> pom so >>>>>>>> that we will explicitely scope all dependencies and only deps >>>>>>>> with >>>>>>>> scope "runtime" or "compile" get embedded and not imported into >>>>>>>> the >>>>>>>> final bundles, something along the lines of >>>>>>>> >>>>>>>> Index: neo-utils/trunk/pom.xml >>>>>>>> = >>>>>>>> = >>>>>>>> = >>>>>>>> ================================================================ >>>>>>>> --- neo-utils/trunk/pom.xml (revision 3108) >>>>>>>> +++ neo-utils/trunk/pom.xml (working copy) >>>>>>>> @@ -63,16 +63,19 @@ >>>>>>>> <groupId>org.neo4j</groupId> >>>>>>>> <artifactId>neo</artifactId> >>>>>>>> <version>1.0-b10-SNAPSHOT</version> >>>>>>>> + <scope>provided</scope> >>>>>>>> </dependency> >>>>>>>> <dependency> >>>>>>>> <groupId>org.neo4j</groupId> >>>>>>>> <artifactId>neo-component-commons</artifactId> >>>>>>>> <version>0.3-SNAPSHOT</version> >>>>>>>> + <scope>provided</scope> >>>>>>>> </dependency> >>>>>>>> <dependency> >>>>>>>> <groupId>org.neo4j</groupId> >>>>>>>> <artifactId>index-util</artifactId> >>>>>>>> <version>0.8-SNAPSHOT</version> >>>>>>>> + <scope>provided</scope> >>>>>>>> </dependency> >>>>>>>> </dependencies> >>>>>>>> </project> >>>>>>>> Index: pom.xml >>>>>>>> = >>>>>>>> = >>>>>>>> = >>>>>>>> ================================================================ >>>>>>>> --- pom.xml (revision 3108) >>>>>>>> +++ pom.xml (working copy) >>>>>>>> @@ -119,6 +119,7 @@ >>>>>>>> <Bundle-Version>${pom.version}</Bundle-Version> >>>>>>>> <Export-Package>!${bundle.namespace}.internal.*,$ >>>>>>>> {bundle.namespace}.*;version="${pom.version}"</Export-Package> >>>>>>>> <Private-Package>${bundle.namespace}.internal.*</ >>>>>>>> Private-Package> >>>>>>>> + <Embed-Dependency>*;scope=compile| >>>>>>>> runtime</Embed-Dependency> >>>>>>>> <!-- Allow each bundle to override these settings by >>>>>>>> creating a file named osgi.bnd >>>>>>>> in the same directory as the component's >>>>>>>> pom.xml. >>>>>>>> See components/neo/trunk/osgi.bnd >>>>>>>> for an example. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> WDYAT? Andreas, any thoughts? >>>>>>>> >>>>>>>> /peter >>>>>>>> >>>>>>>> GTalk: neubauer.peter >>>>>>>> Skype peter.neubauer >>>>>>>> Phone +46 704 106975 >>>>>>>> LinkedIn http://www.linkedin.com/in/neubauer >>>>>>>> Twitter http://twitter.com/peterneubauer >>>>>>>> >>>>>>>> http://www.neo4j.org - Relations count. >>>>>>>> http://www.oredev.se - The best thing since the >>>>>>>> wall came down. >>>>>>>> http://www.linkedprocess.org - Distributed computing on >>>>>>>> LinkedData scale >>>>>>>> _______________________________________________ >>>>>>>> Neo mailing list >>>>>>>> User@lists.neo4j.org >>>>>>>> https://lists.neo4j.org/mailman/listinfo/user >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Mattias Persson, [matt...@neotechnology.com] >>>>>>> Neo Technology, www.neotechnology.com >>>>>>> _______________________________________________ >>>>>>> Neo mailing list >>>>>>> User@lists.neo4j.org >>>>>>> https://lists.neo4j.org/mailman/listinfo/user >>>>>>> >>>>>> _______________________________________________ >>>>>> Neo mailing list >>>>>> User@lists.neo4j.org >>>>>> https://lists.neo4j.org/mailman/listinfo/user >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Mattias Persson, [matt...@neotechnology.com] >>>>> Neo Technology, www.neotechnology.com >>>>> _______________________________________________ >>>>> Neo mailing list >>>>> User@lists.neo4j.org >>>>> https://lists.neo4j.org/mailman/listinfo/user >>>>> >>>> _______________________________________________ >>>> Neo mailing list >>>> User@lists.neo4j.org >>>> https://lists.neo4j.org/mailman/listinfo/user >>> >>> _______________________________________________ >>> Neo mailing list >>> User@lists.neo4j.org >>> https://lists.neo4j.org/mailman/listinfo/user >>> >> _______________________________________________ >> Neo mailing list >> User@lists.neo4j.org >> https://lists.neo4j.org/mailman/listinfo/user > > _______________________________________________ > Neo mailing list > User@lists.neo4j.org > https://lists.neo4j.org/mailman/listinfo/user > _______________________________________________ Neo mailing list User@lists.neo4j.org https://lists.neo4j.org/mailman/listinfo/user