RE: Using Maven on a very large integration project - how far can Maven go?

2004-04-09 Thread Michael MATTOX
 dependency
 groupIdplexus/groupId
 artifactIdplexus-runtime/artifactId
 version1.0/version
 typezip/type
 /dependency

I think this would be very useful for what I am planning to do with Maven.
I like the concept.  Once you finish testing it, I'd be very interested in
testing it out on my project.

Michael


--
This E-mail is confidential.  It may also be legally privileged.  If you are
not the addressee you may not copy, forward, disclose or use any part of it.
If you have received this message in error, please delete it and all copies
from your system and notify the sender immediately by return E-mail.
Internet communications cannot be guaranteed to be timely, secure, error or
virus-free.  The sender does not accept liability for any errors or omissions.


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



Re: Using Maven on a very large integration project - how far can Maven go?

2004-04-08 Thread Rafal Krzewski
Tomasz Pik wrote:

if war plugin finds 'war' dependency then un-war it and merge content
of dependency war into created war.
At least web.xml files should be merged together, probably more
descriptor files too - but this may be done as postGoals.
I don't think that merging web.xml or other files is a good idea. The 
logic for that has a good chance of becoming obscure and fragile.
I would just make the dependant project files override the dependencies 
files. Simpler  more predictable...

R.

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


RE: Using Maven on a very large integration project - how far can Maven go?

2004-04-08 Thread Maczka Michal


 -Original Message-
 From: Rafal Krzewski [mailto:[EMAIL PROTECTED]
 Sent: Thursday, April 08, 2004 9:54 AM
 To: Maven Users List
 Subject: Re: Using Maven on a very large integration project - how far
 can Maven go?
 
 
 Tomasz Pik wrote:
 
  if war plugin finds 'war' dependency then un-war it and 
 merge content
  of dependency war into created war.
  At least web.xml files should be merged together, probably more
  descriptor files too - but this may be done as postGoals.
 
 I don't think that merging web.xml or other files is a good idea. The 
 logic for that has a good chance of becoming obscure and fragile.
 I would just make the dependant project files override the 
 dependencies 
 files. Simpler  more predictable...
 
 R.

I agree in 100%. 
That's what I did in my version. For the people which were intersted in this
functinality:
I won't manage to push it to CVS before holidays (no time)

I pratically finshed zip plugin which pacakes all project resources into zip
files and merges the content of multiple zips (declared as dependencies_. I
just gave it to somebody for testing (I still have some problems with
resource filtering) and when I'll be sure that it works I can add it to CVS.

Anybody opposes to add this funcionality to RC3? 

With this plugin I am able(will be able) to keep in local repositoriy zip
files which contains even such artifacts like JRE/JDKs, Java Service Wrapper
files 
etc and only compose those artifacts for particual application. 

(To Jason)I belive it will be easy to construct plexus runtime using this
techniue. Pratically no java nor jelly code is needed.

I mean just something like:
dependencies

dependency
groupIdplexus/groupId
artifactIdplexus-runtime/artifactId
version1.0/version
typezip/type   
/dependency
dependency
groupIdplexus/groupId
artifactIdplexus-startup-scripts-win32/artifactId
version1.0/version
typezip/type   
/dependency
dependency
groupIdplexus/groupId
artifactIdplexus-jws-win32/artifactId
version1.0/version
typezip/type   
/dependency
dependency
groupIdjre/groupId
artifactIdjre/artifactId
version1.4.2/version
typezip/type   
/dependency

.
/dependencies

Michal

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



RE: Using Maven on a very large integration project - how far can Maven go?

2004-04-05 Thread Eric Pugh
Michael,

I think your overall approch is on target.  One of the things I have found
easier when deploying to containers is to have Tomcat as part of CVS..  It
gives you a lot more control over what the Tomcat environment looks like,
isn't too large, and reduces variables.

Also, as far as the merging of jars, anything you can do in Ant, you can do
in Maven, as Maven supports all ant tasks.  Here is an article that gives a
simple example of calling the echo/ task from Ant in Maven:
http://www.onjava.com/pub/a/onjava/2004/03/17/maven.html.

Eric Pugh

 -Original Message-
 From: Michael Mattox [mailto:[EMAIL PROTECTED]
 Sent: Monday, April 05, 2004 1:04 AM
 To: Maven Users List
 Subject: Using Maven on a very large integration project - how far can
 Maven go?


 I've used ANT on several projects in the past, and have had my
 eye on Maven
 for a year now.  I am now working on a large project that is mostly
 integration.  That is to say we are working with a few software editors (a
 webmail application and a chat application) to integrate them into our
 customers portal architecture.  Each software editor is modifying their
 applications to support new requirements, and we're writing a relatively
 small amount of code to integrate them.  For example, the webmail
 application has an API which uses HTTP to return XML data.  We're
 writing a
 protocol adapter to exposure their API as a web service.  We're
 also writing
 some protocol adapters that will be deployed on their servers.

 So far, I've set up a multi-project build for our source code.  I
 created a
 common project, and then mail  chat directories.  Under each I
 have several
 projects for each application.  I've found a lot of resources on
 doing this
 and it was relatively easy to set up and it's working great.  From the top
 level I can do the multi-project build.

 My problem is I'm not sure how to proceed with the integration part using
 Maven.  I have a couple needs:

 1 - I need to deploy to the integration team our entire source code tree,
 along with the deliveries from our partners (the companies that
 make mail 
 chat).  The integration team is willing to install Maven, and
 they also use
 ANT.  So my current thinking is to structure the tree like this:

 - extern (for deliveries from our partners)
   - mail
 - a standalone application
 - a webapp
   - chat
 - static HTML
 - a web app
 - a standalone application

 - our source tree
   - mail
  - a JAR to be deployed to the mail standalone app
  - a JAR to be deployed to the mail webapp
   - chat
  - a JAR to be deployed to the chat standalone app
  - a JAR to be deployed to the chat webapp
  - an EJB to be deployed to another server

 Does Maven have functionality to take the applications from our
 partners (in
 extern) and combine them with our JARS?  Like copying all this to another
 top level directory, maybe install?  I know I can do it with
 ANT, but I'm
 curious if Maven offers an added value here.

 2 - The mail  chat apps use WebSphere  Tomcat, and databases Oracle 
 MySQL.  I'm currently working on install procedures.  Using Tomcat for an
 example, should I put tomcat under the extern/chat tree?  Or should
 integration install their own tomcat and then copy the files from the chat
 project to the appropriate tomcat directories?  The integration team wants
 to do it like this, where they reassemble the parts themselves (using my
 maven project).  That way they know what they have (official
 Tomcat release,
 etc.).  On the other hand, the mail  chat companies want to deliver a
 complete package that is tested and they know it works.  For example, what
 if the mail application uses a modified Tomcat?  In that case we'd have to
 use their Tomcat instead of installing a new one.  This complicates the
 packaging a bit.

 Thank you for taking the time to read this long mail, and if you have any
 ideas please let me know.  I've heard from a few people that Maven works
 great for simple JAR projects but it falls apart for
 complicated projects
 like this.  I want to prove them wrong!  In the worst case I can
 have Maven
 call ANT tasks.  My goal is that the integration team gets our
 code from CVS
 and types a single command to build, test, and package our
 project.  I think
 it's an aggressive goal but I'm certainly going to try.

 Michael



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



RE: Using Maven on a very large integration project - how far can Maven go?

2004-04-05 Thread Michael MATTOX
 I think your overall approch is on target.  One of the things I have found
 easier when deploying to containers is to have Tomcat as part of CVS..  It
 gives you a lot more control over what the Tomcat environment looks like,
 isn't too large, and reduces variables.

I agree in principle.  The problem is it's not practical to put WebSphere or
Oracle in CVS.  So what I was thinking was to divide the containers into two
categories:

- versioned in CVS - for unstable, lightweight containers only.  For example
tomcat.

- an install procedure using official releases.  This would be for Oracle,
MySQL, WebSphere.

Tomcat can fall into either category, and I prefer the second.  But I'm open
to suggestions.

 Also, as far as the merging of jars, anything you can do in Ant,
 you can do
 in Maven, as Maven supports all ant tasks.  Here is an article
 that gives a
 simple example of calling the echo/ task from Ant in Maven:
 http://www.onjava.com/pub/a/onjava/2004/03/17/maven.html.

This is a worst case, call the ANT target.  But with Maven's Jelly scripts I
wasn't sure if it'd be better to do something with ANT or Jelly.

Thanks,
Michael


--
This E-mail is confidential.  It may also be legally privileged.  If you are
not the addressee you may not copy, forward, disclose or use any part of it.
If you have received this message in error, please delete it and all copies
from your system and notify the sender immediately by return E-mail.
Internet communications cannot be guaranteed to be timely, secure, error or
virus-free.  The sender does not accept liability for any errors or omissions.


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



RE: Using Maven on a very large integration project - how far can Maven go?

2004-04-05 Thread Maczka Michal


 -Original Message-
 From: Michael MATTOX [mailto:[EMAIL PROTECTED]
 Sent: Monday, April 05, 2004 11:59 AM
 To: [EMAIL PROTECTED]; Maven Users List
 Subject: RE: Using Maven on a very large integration project - how far
 can Maven go?
 
 
  I think your overall approch is on target.  One of the 
 things I have found
  easier when deploying to containers is to have Tomcat as 
 part of CVS..  It
  gives you a lot more control over what the Tomcat 
 environment looks like,
  isn't too large, and reduces variables.
 
 I agree in principle.  The problem is it's not practical to 
 put WebSphere or
 Oracle in CVS.  So what I was thinking was to divide the 
 containers into two
 categories:
 
 - versioned in CVS - for unstable, lightweight containers 
 only.  For example
 tomcat.
 
 - an install procedure using official releases.  This would 
 be for Oracle,
 MySQL, WebSphere.
 
 Tomcat can fall into either category, and I prefer the 
 second.  But I'm open
 to suggestions.
 
  Also, as far as the merging of jars, anything you can do in Ant,
  you can do
  in Maven, as Maven supports all ant tasks.  Here is an article
  that gives a
  simple example of calling the echo/ task from Ant in Maven:
  http://www.onjava.com/pub/a/onjava/2004/03/17/maven.html.
 
 This is a worst case, call the ANT target.  But with Maven's 
 Jelly scripts I
 wasn't sure if it'd be better to do something with ANT or Jelly.
 

I am using quite different technique. I keep Tomcat and such as zips in my
maven repository.

For example in case of Tomcat I have removed most of the files and I keep
only those files which are really needed to run it in a zip file in local
repository.


Then I have POM fragments like:

 dependencies
dependency
groupIdfoo/groupId
artifactIdfoo-webapp/artifactId
version1.0/version
typewar/type
/dependency

dependency
groupIdfoo/groupId
artifactIdfoo-configuration-for-node-X/artifactId
version1.0/version
typezip/type
/dependency


dependency
groupIdtomcat/groupId
artifactIdtomcat/artifactId
version4.1.27/version
typezip/type
/dependency

dependency
groupIdtomcat/groupId
artifactIdtomact-admin/artifactId
version4.1.27/version
typewar/type
/dependency

/dependencies


and plugins which are creating application which are a merger of tomcat
zip/wars (possibly many wars)/zip with configuration settings.
As the result I get another zip (ready to use application) which is zipped
and installed in my local repository.


Using this technique I am for example easily enable to use different version
of tomcat (just need to edit my POM to change it) 
or have many configuration (for many customers) of the same application. But
I am _always_ using local repository for keeping and exchaing artifacts
between projects. 
Even artifacts like tomcat (zip) or configuration files.

I have created maven zip plugin which puts to zip archive all the files
declared as resources in POM and which is also able to merge many zips into
one.

I am also using my own version of war plugin in which I can declare
dependencies on other wars and just replace some configuration files.

So I  have one base war file and couple of its mutations for various
environments: for testing 
(e.g. against different databases), for various production environment (in
my case we use the same wars with different configuration setting for
different customers).


Michal




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



RE: Using Maven on a very large integration project - how far can Maven go?

2004-04-05 Thread Maczka Michal


 -Original Message-
 From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
 Sent: Monday, April 05, 2004 3:10 PM
 To: Maven Users List
 Subject: Re: Using Maven on a very large integration project - how far
 can Maven go?
 
 
 
 That is really cool.  Very useful.  Are you going to push through the
 zip plugin and war plugin changes?

I haven't been thinking about that but if somebody will find it useful I can
certainly do that.
I should not have any problems with creating zip plugin. It's bit more
difficult with war plugin
but doable. The idea is that when war plugins finds any dependency of type
war it should un-war it (unzip :)
and use files which were stored there as sources for building new war file.
I have it working but it's rather
a quick hack then release quality. But I can try to improve it if somebody
will be interested.

Michal 



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



Re: Using Maven on a very large integration project - how far can Maven go?

2004-04-05 Thread Tomasz Pik
Maczka Michal wrote:

I haven't been thinking about that but if somebody will find it useful I can
certainly do that.
I should not have any problems with creating zip plugin. It's bit more
difficult with war plugin
but doable. The idea is that when war plugins finds any dependency of type
war it should un-war it (unzip :)
and use files which were stored there as sources for building new war file.
I have it working but it's rather
a quick hack then release quality. But I can try to improve it if somebody
will be interested.
Hmmm, maybe something like this:
if war plugin finds 'war' dependency then un-war it and merge content
of dependency war into created war.
At least web.xml files should be merged together, probably more
descriptor files too - but this may be done as postGoals.
Michal 
Tomek

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