On Friday 18 April 2008, Ruchith Fernando wrote:
> On Fri, Apr 18, 2008 at 11:20 PM, Fred Dushin <[EMAIL PROTECTED]> 
> >  I also think we may want a parent module, which just contains a
> > parent POM, which all WSS4J modules can inherit from.  Good place to
> > put version dependencies in one place.  CXF does this to good
> > effect.
>
> Most of the WS projects seems to maintain the structure of a modules
> dir (example: axis2, rampart, commons, sandesha2).
> I personally would like to stick to the same pattern.
> In rampart we maintain the versions at the pom.xml at above the
> modules dir and use that as the parent pom of the modules ... but I
> don't mind using a seperate parent module if that is the better
> approach in the maven2 way of things :-)

Just to jump in here to describe the CXF way of doing it and why it HAS 
to be done that way for CXF.   Basically, CXF has a module called 
buildtools that provides a bunch of extra files that are needed when 
building the other jars.   For example, it contains the checkstyle and 
PMD rules.  It contains the supplements file for the remote-resources 
plugin. It contains some stuff to help setup eclipse projects. (to wire 
checkstyle/pmd into the created projects).   It also contains some 
transformers for the maven-shade-plugin.  

The problem comes when you try to configure the parent to use that module 
for dependencies of other plugins.   You cannot do:

parent
   buildtools
   jar1
   jar2
   pom1
      jar3
      jar4

and have it configured in the "parent" module as you get a circular issue 
of buildtools requiring parent (it is it's parent), but the 
configuration in parent requires buildtools.   The other problem is that 
the stuff configured in "parent" also apply into the "pom1" module.  
Thus, checkstyle/pmd will run on those modules even if there isn't any 
code.  (with no code, it's quick, but still...)

The solution we went with was:

cxf
  buildtools
  parent (probably should have been named jarparent)
  jar1
  jar2
  pom1
    pom2
      jar3
      jar4
    pom3
      jar5

Where the "jar" modules use the "parent" module as their parent, and the 
parent module uses the "cxf" module as it's parent as does the 
buildtools and pom modules.   Thus, project specific stuff that should 
apply everywhere can go into "cxf", but stuff that should only apply 
to "jars" can go into "parent".    
Checkstyle/PMD/remote-resources/eclipse all are configured in "parent".   
Thus, they don't apply to "pom" projects.

The other option was to move buildtools completely out of the normal 
build and have it's own releases in the repository and have the main 
build just download it.   We didn't do that mostly because we were in 
the incubator and that would then require adding the incubator 
repository to the poms, thus slowing down the builds.  It also means 
that changes to checkstyle rules, suppliments, etc... would require a 
full release/vote/deploy cycle before they would be available in a 
build.   That said, they rarely change and thus may be acceptable.  
(fyi: servicemix is kind of going that direction with a separately 
released "legal" jar with the suppliments and stuff in it.)

Anyway, that's why CXF was structured that way. 

Dan



> Thanks,
> Ruchith
>
> >  -Fred
> >
> >  On Apr 18, 2008, at 10:50 AM, O hEigeartaigh, Colm wrote:
> > > Hi Nandana,
> > >
> > > +1 to this, although definitely after the 1.5.4 release. Should we
> > > drop support for ant altogether? I'd be in favour of this,
> > > although others might object.
> > >
> > > In addition, I propose moving the org.apache.ws.axis namespace
> > > into a separate module. In this way, other applications could use
> > > the wss4j-core without having an implicit dependency on Axis. In
> > > general, the core code should have as little dependencies on third
> > > party code as possible, e.g.
> > > http://issues.apache.org/jira/browse/WSS-75.
> > >
> > > Thanks,
> > >
> > > Colm.
> > >
> > >
> > > -----Original Message-----
> > > From: Nandana Mihindukulasooriya [mailto:[EMAIL PROTECTED]
> > > Sent: 18 April 2008 15:23
> > > To: wss4j-dev
> > > Subject: Converting wss4j into a multi module project
> > >
> > > Hi Devs,
> > >       As a first step of moving the build in to maven, I propose
> > > to make WSS4J a multi module maven project.
> > >
> > > wss4j/
> > >      modules/
> > >               wss4j-core (wss4j-handlers/wss4j-*)
> > >               wss4j-tests
> > >               distribution
> > >               documentation
> > >
> > > we can integrate the tests in to maven build. Looking at the
> > > pom.xml , we can see some efforts has been  taken do this, so we
> > > will be able to continue from there. But I think we should start
> > > this after the 1.5.4 release.
> > >
> > > Fred, WDYT ?
> > >
> > > thanks,
> > > /nandana
> > >
> > > ------------------------------------------------------------------
> > >--- To unsubscribe, e-mail: [EMAIL PROTECTED] For
> > > additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > > ----------------------------
> > > IONA Technologies PLC (registered in Ireland)
> > > Registered Number: 171387
> > > Registered Address: The IONA Building, Shelbourne Road, Dublin 4,
> > > Ireland
> > >
> > > ------------------------------------------------------------------
> > >--- To unsubscribe, e-mail: [EMAIL PROTECTED] For
> > > additional commands, e-mail: [EMAIL PROTECTED]
> >
> > 
> > --------------------------------------------------------------------
> >- To unsubscribe, e-mail: [EMAIL PROTECTED] For
> > additional commands, e-mail: [EMAIL PROTECTED]



-- 
J. Daniel Kulp
Principal Engineer, IONA
[EMAIL PROTECTED]
http://www.dankulp.com/blog

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to