[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [rt-pmc] Re: [jetty-dev] jetty dependency's and 'releasing' within eclipse

While that is indeed the structure that we currently work with, I'm attracted
to the naming scheme used by eclipse that David has outlined.

David outlined what Geronimo does. I outlined what Eclipse does. You seem to be going with the former in this message.


http://maven2.eclipse.org/org/eclipse/orbit/servlet_2.5_spec/1.0/servlet_2.5_spec-1.0.jar
http://maven2.eclipse.org/org/eclipse/orbit/servlet_2.5_spec/1.0/servlet_2.5_spec-1.0-javadoc.jar
http://maven2.eclipse.org/org/eclipse/orbit/servlet_2.5_spec/1.0/servlet_2.5_spec-1.0-sources.jar

Note that I have put orbit in the group name, as this indicates a jar
audited and redistributed from eclipse - as opposed to one generated by
eclipse.

For auditing/redistribution purposes that is why we sign the bundle with an eclipse.org certificate. Naming conventions are a good indicator but don't prove anything.


WRT the Orbit bundles, I don't remember the current state but at one point we talked about not conditioning/packing them so that the bytecodes were not altered. If that were true then the JAR shipped from Orbit would really be the orginal with some tweaks to the manifest.mf and signage. If the originator started shipping usable bundles then orbit would happily stop doing any work and reship the originator's bundle.

Using the orbit group name is an interesting approach if used in isolation. That is, if the group name does not impact the BSN then it is simply a repo structuring mechanism. Otherwise you end up with Maven repo conventions driving OSGi component structures. A leaky abstraction.

  I've not put eclipse- on the front of the artefact name
because I think there will be ample indication of the jars source (the
directory it is in, the MANIFEST.MF and the META-INF/pom.xml will all
record groupId and/or bundle id).

Currently the bundle name we put into the mortbay servlet api is

 org.mortbay.jetty.servlet-api

but if we apply the "rules" suggested by david, it should be:

 org.eclipse.orbit.servlet_2.5_spec

This is a good bundle name (in my non-OSGi experienced eyes), as it identifies
both where it came from and what it is.

IMHO it is bad form to have the version number in the bundle name. That's why there is a separate bundle version header in the manifest.


For specification APIs at least, the geronimo artefacts have become
(or are becoming), the defacto canonical source of jars.  They are the
only organization that has systematically and consistently made these
jars available (see http://repo2.maven.org/maven2/org/apache/geronimo/specs/)
We could do worse than follow their model.

Of course we need to extend this model to encompass jars other than
specfications, but the model works equally for

http://repo2.maven.org/maven2/commons-logging/commons-logging/1.1.1/commons-logging-1.1.1.jar

would become

http://maven2.eclipse.org/org/eclipse/orbit/commons-logging/1.1.1/commons-logging-1.1.1.jar

We need to be very clear. This is not at all the eclipse convention and will lead to some level of conflict and confusion. I am NOT saying it is wrong but AM saying that a broader discussion will be needed. The conflict I mentioned earlier is obvious here. Orbit already ships commons logging and it has the following characteristics.
bundle name = org.apache.commons.logging
version number = 1.1.1.v200904062255 (perhaps there is a later one now but you get the idea).
file name = org.apache.commons.logging_1.1.1.v200904062255.jar
This is typical of the pattern used throughout Orbit, Eclipse and all the people writing plugins/bundles for Eclipse.


Whatever scheme is selected to put things in Maven should work for all Eclipse things (not just special cases) and likely cannot expect that thousands of bundles be renamed (either their BSN or their file name).

That is the challenge here.

Jeff