Hi List, while moving Cassandra into its own subproject I'm noticing some IIMHO strange things in our naming conventions documented at http://www.amdatu.org/confluence/display/Amdatu/Internal+naming+conventions and how there turn out in the real world
1) It is documented that a subproject like "amdatu-cassandra" has groupId "org.amdatu" and artifactId "org.amdatu.cassandra" while each module like "Cassandra Application" within that subprojects has groupId "org.amdatu.cassandra" and artifactId "application". As a consequence the parent/root artifact has a different naming schemes and namespaces from the rest of the components (org.amdatu vs org.amdatu.cassandra) which is kind of awkward Eg. /org/amdatu/org.amdatu.cassandra/org.amdatu.cassandra-0.0.6-pom /org/amdatu/cassandra/application/application-0.0.6.pom 2) Also it is documented that the packagename for a module is equal to groupId concatenanted with artifactid. As packagenaming is restrictive in the use of characters like - by implicit definition now the artifactId is too. This leads to all kinds of awkwardness like -> The cassandra application gets a reasonable modulename "cassandra-application" but, as that does not fit the convention, the awkward (and non descriptive) artifactId "application". -> Loading a amdatu subproject into Eclipse you get a non descriptive project name like "service" -> Loading multiple amdatu subproject into Eclipse leads to name conflicts as for example we have multiple projects name "service" -> Simply looking at the list of artifacts we have multiple artifacts with final name "service-0.0.6-SNAPSHOT.jar" Suggesting we move to the following (maven) convention: 1) Each subproject root claims a module name like "amdatu-cassandra" and namespace "org.amdatu.cassandra" 2) Each subproject module claims a extended subname like "amdatu-cassandra-application" (used as module name and artifactId) and subnamespace "org.amdatu.cassandra.application" (used as groupId). With regard to the latter I wouldn't be too strict with regard to artifactId naming as I consider that more of a best practice. Eg. if you wanna drop the "amdatu-"prefix and use "cassandra-application" I wont loose any sleep over it. As long as a subproject keeps its own consistent namespace at runtime there is no problem, but an artifact name should be descriptive/informative nevertheless. This gives us (by convention / without additional configuration) descriptive project names, descriptive artifact names, clean namespace seperation for subprojects. Not sure if there is a drawback in there but I'd like your opnions and pros and cons. Regards, Bram

