You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wss4j-dev@ws.apache.org by Nandana Mihindukulasooriya <na...@gmail.com> on 2008/04/18 16:23:14 UTC

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: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org


Re: Converting wss4j into a multi module project

Posted by Ruchith Fernando <ru...@gmail.com>.
+1 for moving org.apache.ws.axis stuff into its own module.

Thanks,
Ruchith

On Fri, Apr 18, 2008 at 8:20 PM, O hEigeartaigh, Colm
<Co...@iona.com> 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:nandana.cse@gmail.com]
>  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: wss4j-dev-unsubscribe@ws.apache.org
>  For additional commands, e-mail: wss4j-dev-help@ws.apache.org
>
>  ----------------------------
>  IONA Technologies PLC (registered in Ireland)
>  Registered Number: 171387
>  Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
>
>
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
>  For additional commands, e-mail: wss4j-dev-help@ws.apache.org
>
>



-- 
http://blog.ruchith.org
http://wso2.org

---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org


Re: Converting wss4j into a multi module project

Posted by Daniel Kulp <dk...@apache.org>.
On Friday 18 April 2008, Ruchith Fernando wrote:
> On Fri, Apr 18, 2008 at 11:20 PM, Fred Dushin <fa...@apache.org> 
> >  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:nandana.cse@gmail.com]
> > > 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: wss4j-dev-unsubscribe@ws.apache.org For
> > > additional commands, e-mail: wss4j-dev-help@ws.apache.org
> > >
> > > ----------------------------
> > > IONA Technologies PLC (registered in Ireland)
> > > Registered Number: 171387
> > > Registered Address: The IONA Building, Shelbourne Road, Dublin 4,
> > > Ireland
> > >
> > > ------------------------------------------------------------------
> > >--- To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org For
> > > additional commands, e-mail: wss4j-dev-help@ws.apache.org
> >
> > 
> > --------------------------------------------------------------------
> >- To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org For
> > additional commands, e-mail: wss4j-dev-help@ws.apache.org



-- 
J. Daniel Kulp
Principal Engineer, IONA
dkulp@apache.org
http://www.dankulp.com/blog

---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org


Re: Converting wss4j into a multi module project

Posted by Fred Dushin <fa...@apache.org>.
On Apr 18, 2008, at 2:43 PM, Ruchith Fernando wrote:

> 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.

Right, I agree -- we want to obey whatever patterns are in use, so I'm  
fine with that.

>
> 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 :-)

Yeah, I've been around and around with maven on this.  I think there's  
a chicken-and-egg problem -- if you want to use the root POM as the  
parent, /and/ you want to use the root POM to drive the build of the  
modules (you didn't say this, but I'm assuming that's how it works),  
then you get into a situation where you need to have installed the  
root in order to build, since the project leaves will need to find  
their parents in maven (local or remote repo).  Better to have a  
parent module, which gets kicked off and installs first in the list of  
projects.

Of course, this means the root POM can't have the project parent POM  
as it's parent, but we should be able to work with that.  The root POM  
just becomes a kind of maven "shell".

-Fred


---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org


Re: Converting wss4j into a multi module project

Posted by Ruchith Fernando <ru...@gmail.com>.
On Fri, Apr 18, 2008 at 11:20 PM, Fred Dushin <fa...@apache.org> wrote:
> +1 on moving the axis stuff into it's own module, and +1 for using maven2
> exclusively.  We can drop the lib directory, if we do that :)  Would Rampart
> what to adopt the axis code?  If not, we can maintain it here.

+1 to dropping the lib directory. I think we can find all the deps
available in mvn repos.

It think we can maintain axis1 code here.

>
>  I'm less inclined to create a separate tests module, as most of the core
> functionality should be unit-testable in each maven module
> (src/main/java/... and src/test/java/...), but let me know if I'm missing
> something technically about that.  For "system" level testing, if there is
> such a thing in WSS4J, maybe a separate module is called for.  But I'm not
> sure I see a need for that.

+1 to maintain the core functionality test in the module itself and
I'l like to propose we move the integration tests such as the interop
tests to the a seperate "tests" (or integration).module.

>
>  Not sure about the need for a modules super-directory, unless we have
> artifacts like specs and such, which are basically non-source material, but
> more referency things.  Whatever the going conventions are, for this sort of
> thing at apache, is fine.
>
>  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 :-)

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:nandana.cse@gmail.com]
> > 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: wss4j-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: wss4j-dev-help@ws.apache.org
> >
> > ----------------------------
> > IONA Technologies PLC (registered in Ireland)
> > Registered Number: 171387
> > Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
> > For additional commands, e-mail: wss4j-dev-help@ws.apache.org
> >
> >
> >
>
>
>  ---------------------------------------------------------------------
>  To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
>  For additional commands, e-mail: wss4j-dev-help@ws.apache.org
>
>



-- 
http://blog.ruchith.org
http://wso2.org

---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org


Re: Converting wss4j into a multi module project

Posted by Fred Dushin <fa...@apache.org>.
+1 on moving the axis stuff into it's own module, and +1 for using  
maven2 exclusively.  We can drop the lib directory, if we do that :)   
Would Rampart what to adopt the axis code?  If not, we can maintain it  
here.

I'm less inclined to create a separate tests module, as most of the  
core functionality should be unit-testable in each maven module (src/ 
main/java/... and src/test/java/...), but let me know if I'm missing  
something technically about that.  For "system" level testing, if  
there is such a thing in WSS4J, maybe a separate module is called  
for.  But I'm not sure I see a need for that.

Not sure about the need for a modules super-directory, unless we have  
artifacts like specs and such, which are basically non-source  
material, but more referency things.  Whatever the going conventions  
are, for this sort of thing at apache, is fine.

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.

-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:nandana.cse@gmail.com]
> 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: wss4j-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: wss4j-dev-help@ws.apache.org
>
> ----------------------------
> IONA Technologies PLC (registered in Ireland)
> Registered Number: 171387
> Registered Address: The IONA Building, Shelbourne Road, Dublin 4,  
> Ireland
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: wss4j-dev-help@ws.apache.org
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org


RE: Converting wss4j into a multi module project

Posted by "O hEigeartaigh, Colm" <Co...@iona.com>.
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:nandana.cse@gmail.com] 
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: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org

----------------------------
IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland

---------------------------------------------------------------------
To unsubscribe, e-mail: wss4j-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: wss4j-dev-help@ws.apache.org