I figured that was more likely the case.

I'll make the recommended changes and update the groupIds and artifactIds to match the rest of Apache Aries and more particularly other samples. If we end up changing the direction and going with the shorted artifactIds (per other discussions) we can change them all at the same time - at least they will be consistent.

Thanks,
Joe


Jeremy Hughes wrote:
On 10 March 2010 03:00, Joe Bohn <[email protected]> wrote:
Jeremy,

I can't help but notice that in your list below you don't mention the
AriesTrader sample at all.  I guess that means that it is perfect for
release just the way it is? ;-)

Ah that was an oversight - I think it has something to do with, at the
time I created the list, ariestrader not being built from a top level
build. I see it's hooked in now. I see the groudId is parent groupId
is org.apache.aries.ariestrader instead of
org.apache.aries.samples.ariestrader. I thought we discussed changing
this.

The jars I can see currently being put into the local repo in
org/apache/aries/ariestrader are:

./assemblies/ariestrader-all-eba/0.1-incubating/ariestrader-all-eba-0.1-incubating.eba
./assemblies/ariestrader-jdbc-eba/0.1-incubating/ariestrader-jdbc-eba-0.1-incubating.eba
./modules/ariestrader-api/0.1-incubating/ariestrader-api-0.1-incubating.jar
./modules/ariestrader-beans/0.1-incubating/ariestrader-beans-0.1-incubating.jar
./modules/ariestrader-core/0.1-incubating/ariestrader-core-0.1-incubating.jar
./modules/ariestrader-derby-ds/0.1-incubating/ariestrader-derby-ds-0.1-incubating.jar
./modules/ariestrader-entities/0.1-incubating/ariestrader-entities-0.1-incubating.jar
./modules/ariestrader-persist-jdbc/0.1-incubating/ariestrader-persist-jdbc-0.1-incubating.jar
./modules/ariestrader-persist-jpa-am/0.1-incubating/ariestrader-persist-jpa-am-0.1-incubating.jar
./modules/ariestrader-persist-jpa-cm/0.1-incubating/ariestrader-persist-jpa-cm-0.1-incubating.jar
./modules/ariestrader-util/0.1-incubating/ariestrader-util-0.1-incubating.jar
./modules/ariestrader-web/0.1-incubating/ariestrader-web-0.1-incubating.jar

So if we are to follow what I've proposed for the rest instead of:

org/apache/aries/ariestrader/ariestrader-api/0.1-incubating/ariestrader-api-0.1-incubating.jar

we would have:

org/apache/aries/samples/ariestrader/org.apache.aries.samples.ariestrader.api/0.1-incubating/org.apache.aries.samples.ariestrader.api-0.1-incubating.jar

and instead of the BSN in that bundle being
org.apache.aries.ariestrader.modules.ariestrader-api it would be
org.apache.aries.samples.ariestrader.api

and then we would apply that to all the other 'modules'.

With the .eba assemblies, instead of:

org/apache/aries/ariestrader/assemblies/ariestrader-all-eba/0.1-incubating/ariestrader-all-eba-0.1-incubating.eba

we would have:

org/apache/aries/samples/ariestrader/org.apache.aries.samples.ariestrader.all-0.1-incubating.eba

and instead of the BSN in that eba being ariestrader.eba it woul be
org.apache.aries.samples.ariestrader.all ... but I suspect this is the
eba-maven-plugin's fault.

WDYT?

Joe


Jeremy Hughes wrote:
I'm trying to understand what the org/apache/aries maven repo space
will look like once we release our 0.1 artifacts.

AIUI, and based on release discussions so far, when we release the
artifacts they will be pushed up to Nexus by the maven release plugin.
Those artifacts in turn come from the local .m2 repo put there by mvn
install.

So I cleaned out my .m2/repository/org/apache/aries then did a mvn
clean install to see what was there. I think we need to move things
about a bit (or rather rename some artifactIds) to make our
artifactIds and groupIds consistently named. Later, after the 0.1
release, we could also improve things to make sure there is a
consistent relationship between source tree location and location of
the built artifact in the repo.

A built artifact is always given the name of the artifactId - and even
if there were a way of changing that, from an ease of understanding
point of view, we probably shouldn't as that is what anyone who uses
maven assumes.

Many of our bundle artifacts (all except the samples) follow the
<package name>-<version> naming convention which means their
artifactIds also do - this is the same as the bundle artifacts of the
Felix subprojects. So I suggest we follow the same pattern applying it
across the samples too. This has the effect of giving us uniquely
named artifactIds across the whole project (e.g. we don't have two
artifacts called "api" for example) - which means m2eclipse is happy
by default.

For now I'm just interested in the groupIds and artifactIds of the
artifacts we expect users to use. While everything in our part of the
maven repo will get released and need to be scrutinized, I think the
artifacts below are the ones we should list on our download page
(along with 'project' tar.gz files which can be used to build the
binary). I've also follwed the 'best practice' of separating APIs into
an API bundle:

These artifacts to have groupId: org.apache.aries.application:
org.apache.aries.application.api-0.1-incubating.jar
   artifactId: org.apache.aries.application.api
org.apache.aries.application.converters-0.1-incubating.jar
   artifactId: org.apache.aries.application.converters
org.apache.aries.application.install-0.1-incubating.jar
   artifactId: org.apache.aries.application.install
org.apache.aries.application.management-0.1-incubating.jar
   artifactId: org.apache.aries.application.management
org.apache.aries.application.resolver.obr-0.1-incubating.jar
   artifactId: org.apache.aries.application.resolver.obr
org.apache.aries.application.runtime-0.1-incubating.jar
   artifactId: org.apache.aries.application.runtime
org.apache.aries.application.utils-0.1-incubating.jar
   artifactId: org.apache.aries.application.utils.

These artifacts to have groupId: org.apache.aries.blueprint
org.apache.aries.blueprint-0.1-incubating.jar (the full blueprint impl
bundle which actually also contains the API because the spec
erroneously requires it)
   artifactId: org.apache.aries.blueprint
org.apache.aries.blueprint.api-0.1-incubating.jar
   artifactId: org.apache.aries.blueprint.api

These artifacts to have groupId: org.apache.aries
eba-maven-plugin-0.1-incubating.jar
   artifactId: eba-maven-plugin
(TODO: why is this not called maven-eba-plugin which would follow the
convention set by the maven-bundle-plugin and the maven-zip-plugin. I
propose changing it to maven-eba-plugin)

These artifacts to have groupId: org.apache.aries.jmx:
org.apache.aries.jmx-0.1-incubating.jar (like Blueprint, the api is
also included in here - we should look at changing this if possible)
   artifactId: org.apache.aries.jmx
org.apache.aries.jmx.api-0.1-incubating.jar
   artifactId: org.apache.aries.jmx.api
org.apache.aries.jmx.blueprint-0.1-incubating.jar (like Blueprint, the
api is also included in here)
   artifactId: org.apache.aries.jmx.blueprint
org.apache.aries.jmx.blueprint.api-0.1-incubating.jar
   artifactId: org.apache.aries.jmx.blueprint.api

These artifacts to have groupId: org.apache.aries.jndi:
org.apache.aries.jndi-0.1-incubating.jar (there is no API to this)
   artifactId: org.apache.aries.jndi

These artifacts to have groupId: org.apache.aries.jpa:
org.apache.aries.jpa.api-0.1-incubating.jar
   artifactId: org.apache.aries.jpa.api
org.apache.aries.jpa.blueprint.aries-0.1-incubating.jar
   artifactId: org.apache.aries.jpa.blueprint
org.apache.aries.jpa.container-0.1-incubating.jar
   artifactId: org.apache.aries.jpa.container
org.apache.aries.jpa.container.context-0.1-incubating.jar
   artifactId: org.apache.aries.jpa.container.context

These artifacts to have groupId: org.apache.aries.samples.blog:
blog-0.1-incubating.jar (TODO: this isn't an 'uber' bundle so doesn't
follow the pattern the blueprint 'uber' bundle has set. I'd like
consistency so I propose renaming to blog-biz. So call this
org.apache.aries.blog.biz...)
   artifactId: org.apache.aries.samples.blog.biz
blog-api-0.1-incubating.jar (TODO: change to
org.apache.aries.samples.blog.api...)
   artifactId: org.apache.aries.samples.blog.api
blog-datasource-0.1-incubating.jar
   artifactId: org.apache.aries.samples.blog.datasource
blog-persistence-0.1-incubating.jar (TODO: since we now have two
persistence impls we should change this to
org.apache.aries.samples.blog.persistence.jdbc ...)
   artifactId: org.apache.aries.samples.blog.persistence.jdbc
blog-persistence-jpa-0.1-incubating.jar
   artifactId: org.apache.aries.samples.blog.persistence.jpa
blog-servlet-0.1-incubating.jar (TODO: to be consistent with the spec
names we should call this 'web' instead of 'servlet' so change this to
org.apache.aries.samples.blog.web ...)
   artifactId: org.apache.aries.samples.blog.web

These artifacts to have groupId:
org.apache.aries.samples.blueprint.helloworld:
blueprint-helloworld-api-0.1-incubating.jar (TODO: change to
org.apache.aries.samples.blueprint.helloworld.api...)
   artifactId: org.apache.aries.samples.blueprint.helloworld.api
blueprint-helloworld-client-0.1-incubating.jar (TODO: change to
...client...)
   artifactId: org.apache.aries.samples.blueprint.helloworld.client
blueprint-helloworld-server-0.1-incubating.jar (TODO: change to
...server...)
   artifactId: org.apache.aries.samples.blueprint.helloworld.server

These artifacts to have groupId:
org.apache.aries.samples.blueprint.idverifier:
org.apache.aries.samples.blueprint.idverifier.api-0.1-incubating.jar
   artifactId: org.apache.aries.samples.blueprint.idverifier.api
org.apache.aries.samples.blueprint.idverifier.client-0.1-incubating.jar
   artifactId: org.apache.aries.samples.blueprint.idverifier.client
org.apache.aries.samples.blueprint.idverifier.server-0.1-incubating.jar
   artifactId: org.apache.aries.samples.blueprint.idverifier.server

These artifacts to have groupId: org.apache.aries.samples.transaction:
transaction-sample-web-0.1-incubating.jar (TODO: change to
org.apache.aries.samples.transaction.web...)
   artifactId: org.apache.aries.samples.transaction.web

These artifacts to have groupId: org.apache.aries.transaction:
org.apache.aries.transaction.blueprint-0.1-incubating.jar
   artifactId: org.apache.aries.transaction.blueprint
org.apache.aries.transaction.manager-0.1-incubating.jar
   artifactId: org.apache.aries.transaction.manager

These artifacts to have groupId: org.apache.aries.util:
org.apache.aries.util-0.1-incubating.jar (TODO: there should be an API
bundle to the impl if we are to follow our pattern of separating out
the API)
   artifactId: org.apache.aries.util

These artifacts to have groupId: org.apache.aries.web:
org.apache.aries.web.urlhandler-0.1-incubating.jar (TODO:
WarToWabConverter is an API and should be in its own api bundle)
   artifactId: org.apache.aries.web.urlhandler

I appreciate this might be disruptive, but IMO it's best to have (what
I think is necessary) disruption done sooner rather than later.

Please do comment on this proposal - I've tried to mark the changes
with 'TODO' to help.

Thanks,
Jeremy


--
Joe




--
Joe

Reply via email to