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

Reply via email to