Hi all,
I've been going through the build today. Sofar I have compiled a list of things
I'd like to do (see below). However before we start refactoring the build infra
we need to define the basic svn layout. As discussed before offline it would be
a good idea to seperate bootstrap, platform (or 'core'), frameworks and
applications into 'subprojects' and I think that should be reflected in the svn
layout.
Basic layout questions:
1) Should we keep the core components and all composite frameworks and
foundation services in the same repository in the same trunk/branches/tags
layout or give each its own? (I think one for now to keep it simple, maybe
seperate later)
2) If we keep als artifacts in one trunk/branches/tags layout, do we use a flat
layout or a n level multiproject (Eg. amdatu-jaxrs or frameworks/amdatu-jaxrs)?
(I think flat for now again to keep it simple)
Maybe a little abstract questions but it may become a little clearer when
thinking about the new layout in terms of subprojects by example. Right now the
layout is somewhat artifact type based (eg. gadget-bundles) where I think it
should be subproject / composite based. This will for example allow the
subproject to centralize its own specific build configuration in its own parent
pom as opposed to the current situation where everything is aggreageted in the
root pom (eg. amdatu core pom should be concerned with the build wide junit
version but NOT with the wink version as wink is just a framework
implementation)
Below a first proposal based on my preferences described above just to get the
brainstorm going:
- amdatu-maven-plugin (enables initial software provisioning and/or
bootstrap from maven)
- amdatu-launcher (minimal amdatu bootstrap artifact/assembly
- felix
- ace agent
- preferences
- useradmin
- ...
- amdatu-core (base composite of amdatu artifacts provisioned for each
deployment)
- tenants
- topology
- rs
- ...
- amdatu-manager (manager composite for cluster/deployment management,
depends on amdatu-opensocial?)
- ace server
- management gadgets
- amdatu-web (framework composite for j2ee web pursposes)
- pax web
- httpcontext
- ...
- amdatu-jaxrs (framework composite for REST pursposes, depends on
amdatu-web)
- wink
- ...
- amdatu-semanticweb (framework composite for semantci web pursposes,
depends on amdatu-web)
- sesame
- sparql
- ...
- amdatu-opensocial (framework composite for opensocial pursposes,
depends on amdatu-web)
- shindig
- ...
- amdatu-casandra (foundation composite for applications that require
nosql storage)
- cassandra
- ...
I probably should put a more extensive setup on the wiki, but I am curious to
get your initial thoughts :)
regards,
Bram
* refactor structure to seperate subprojects
* switch to maven 3 (AMDATU-95)
* allign version and repositories
* split of project metadata into a 'parent' pom @ pom/pom.xml
* complete project metadata
- mailingLists
- scm
- ciManagement
- distributionManagement
* format poms (formatting convention spaces only / indent 2)
* name unnamed artifacts to get a nice reactor
* add codechecking and reporting (checkstyle / findbugs / xref / cobertura
* move subproject specific config out of parent pom
* replace antrun workarounds proper assembly
* add reporting and site generation
* add deployment to repository (repository.amdatu.org / repo1.maven.org?)
* add amdatu site layout