> >     - amdatu-launcher (minimal amdatu bootstrap artifact/assembly
> >             - felix
> >             - ace agent
> >             - preferences
> >             - useradmin
> >                - ...
> 
> I would make the launcher even smaller than this: just a launcher +
> framework implementation + management agent. Everything else we can
> bootstrap with the management agent.

Ok, let's see how small we can get it :) I'd like to be able to bootstrap on my 
G1 too 8)

> >     - amdatu-core (base composite of amdatu artifacts provisioned for
> each deployment)
> 
> Just a little remark here. We are component based. Components will have
> some dependencies, but other than that, I want to avoid deploying
> artifacts just because they're part of some "core" we defined. I'm
> probably over reacting, but I don't want us to build the next Spring or
> even worse, Java EE framework that contains everything, three kitchen
> sinks and some stuff that sounded like a good idea at the time. I'm
> probably over reacting a bit here, but the point is to keep it lean and
> mean.

Again, I agree :)


> >        - amdatu-manager (manager composite for cluster/deployment
> management, depends on amdatu-opensocial?)
> 
> Why would deployment and cluster management depend on opensocial? I'm
> not sure if it makes sense to use gadgets for a management interface. I
> mean we could, but there are probably richer, nicer UI frameworks
> around for this purpose.


I did not really think that one through. Just made a first list based on what 
we have now, but I guess you make a valid point and we need to think about that.


> >             - ace server
> 
> With or without OBR?

Not sure. Can you elaborate on that?

> With or without client UI?

I'd like ACE management to be integrated into Amdatu management eventually to 
get a rich and consistent UI. Still, until that  time the Ace UI may come in 
handy to get thing up and running?

> >                 - management gadgets
> >     - amdatu-web (framework composite for j2ee web pursposes)
> >             - pax web
> 
> Pax Web should probably either be dumped completely or fixed. It has
> serious issues. Alternative: Felix Http Server (yes that does not
> support non-spec extensions but we should not rely on those anyway).
> 
> >                - httpcontext
> >                - ...
> >     - amdatu-jaxrs (framework composite for REST pursposes, depends
> on amdatu-web)
> 
> Again, this should not need to depend on amdatu-web. REST services can
> be published whiteboard style and don't need to know who's listening
> for them. So perhaps there's a logical dependency on something that can
> publish REST services, but that's about it.

Good point!


Let's see what Ivo comes up with as he is working on a wiki document as we 
speak!

Grz
Bram




> -----Original Message-----
> From: amdatu-developers-bounces at amdatu.org [mailto:amdatu-developers-
> bounces at amdatu.org] On Behalf Of Marcel Offermans
> Sent: Saturday, October 09, 2010 6:04 PM
> To: amdatu-developers at amdatu.org
> Subject: Re: [Amdatu-developers] Repository layout and build
> 
> On 9 Oct 2010, at 0:23 , Bram de Kruijff wrote:
> 
> > 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.
> 
> The trickiest aspect of creating an SVN layout is that it is strictly
> hierarchical and that you can only provide one view on our files, where
> one can argue about the value of more than one view (from your examples
> below: sometimes its helpful to look at all the gadgets in the system,
> whilst at other times a more application centric view makes sense). So,
> there is no "best" choice here, we have to compromise, and at least
> make sure we're consistent.
> 
> > 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)
> 
> If with "same repository" you mean "same physical SVN repository" then
> I definitely think we should keep everything together. To give an
> example, Apache has *all* its projects in a single physical repository
> (that just broke the 1.000.000 commits barrier) so I see no technical
> reason for a split. At the logical level we can just as well create a
> hierarchy in one repository, so I would suggest we stick with that.
> 
> I also agree with your observation to keep it simple and relatively
> flat right now. Moving things around in SVN is easy, so we can make the
> move when the current layout becomes too flat to work with.
> 
> > 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)
> 
> KIS for now...
> 
> > 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)
> 
> I'd like to start with "inheritance is evil" here, because mainly it
> means it becomes harder to release a single subproject (because the
> build has a dependency on the parent pom). But I guess it's hard to
> avoid that with maven. When things become bigger, probably people/teams
> will work on subprojects to organizing the hierarchy that way makes
> sense to me.
> 
> > 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
> >                - ...
> 
> I would make the launcher even smaller than this: just a launcher +
> framework implementation + management agent. Everything else we can
> bootstrap with the management agent.
> 
> >     - amdatu-core (base composite of amdatu artifacts provisioned for
> each deployment)
> 
> Just a little remark here. We are component based. Components will have
> some dependencies, but other than that, I want to avoid deploying
> artifacts just because they're part of some "core" we defined. I'm
> probably over reacting, but I don't want us to build the next Spring or
> even worse, Java EE framework that contains everything, three kitchen
> sinks and some stuff that sounded like a good idea at the time. I'm
> probably over reacting a bit here, but the point is to keep it lean and
> mean.
> 
> >             - tenants
> >             - topology
> >             - rs
> >                - ...
> >        - amdatu-manager (manager composite for cluster/deployment
> management, depends on amdatu-opensocial?)
> 
> Why would deployment and cluster management depend on opensocial? I'm
> not sure if it makes sense to use gadgets for a management interface. I
> mean we could, but there are probably richer, nicer UI frameworks
> around for this purpose.
> 
> >             - ace server
> 
> With or without OBR?
> With or without client UI?
> 
> >                 - management gadgets
> >     - amdatu-web (framework composite for j2ee web pursposes)
> >             - pax web
> 
> Pax Web should probably either be dumped completely or fixed. It has
> serious issues. Alternative: Felix Http Server (yes that does not
> support non-spec extensions but we should not rely on those anyway).
> 
> >                - httpcontext
> >                - ...
> >     - amdatu-jaxrs (framework composite for REST pursposes, depends
> on amdatu-web)
> 
> Again, this should not need to depend on amdatu-web. REST services can
> be published whiteboard style and don't need to know who's listening
> for them. So perhaps there's a logical dependency on something that can
> publish REST services, but that's about it.
> 
> 
> >             - 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 :)
> 
> I like the subprojects you've defined so far, with the remarks made
> above. :)
> 
> > * refactor structure to seperate subprojects
> > * switch to maven 3 (AMDATU-95)
> 
> Let's wait until all known issues with third party tooling are resolved
> before moving to maven 3.
> 
> > * 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
> 
> Good points. We should make JIRA issues out of them I guess?
> 
> Greetings, Marcel
> 
> 
> _______________________________________________
> Amdatu-developers mailing list
> Amdatu-developers at amdatu.org
> http://lists.amdatu.org/mailman/listinfo/amdatu-developers

Reply via email to