We treat these JBoss configuration files as artifacts outside of the main 
deployable (read: EAR file). The vast majority of our JBoss sites use the same 
base server configuration, which includes the jboss-service.xml and other 
files. jboss-service.xml uses system property placeholders for 
environmental-specific bits. The system properties are defined in a separate 
file and loaded into JBoss with the -P option. Each instance has its own 
log4j.xml file and datasource xml files, but AFAIK, these could use property 
placeholders as well if necessary. We version control all of these files 
(obviously), but outside of the main application.
 
The goal of this architecture was, as Bob says below, to use the same build 
between dev, QA, and prod (although in reality, dev is usually a SNAPSHOT build 
from CI) and to simplify new site creation by reusing the same base server 
configuration. 
 
For more application-specific (vs. container-specific) stage-based 
configuration, we use a combination of system properties (-Dstage=qa) and a 
customized version of Spring internals.
 
Justin Edelson
VP, Platform Engineering
MTV Networks Digital

________________________________

From: Bob Aiello [mailto:[EMAIL PROTECTED]
Sent: Mon 10/6/2008 9:00 PM
To: Maven Users List
Subject: Re: Best practice? Where to put app-server specific files (log4j.xml, 
datsource xml files, jboss-service.xml , etc.)



I believe that most people use the Ant plugin Assembly to parse the dev, qa,
prod
environment files. I would suggest that you create them all during the
build. I have
seen some people put in the environment during the build and parse the files
just for
that environment. This meant that they had to rebuild for dev, QA and Prod
(very
bad practice!). From a compliance point of view you do want your QA build
to be the same as the build that you promote into production (obviously you
have a deployment script to change over the environment files).

What does everyone else do?

Bob Aiello
Editor in Chief
CM Crossroads
www.cmcrossroads.com
http://www.linkedin.com/in/BobAiello


----- Original Message -----
From: "Rick" <[EMAIL PROTECTED]>
To: "Maven Users List" <users@maven.apache.org>
Sent: Monday, October 06, 2008 6:25 PM
Subject: Best practice? Where to put app-server specific files (log4j.xml,
datsource xml files, jboss-service.xml , etc.)


> I'm working on a typical JEE application that will be deployed to JBoss.
> (JBoss5 if it matters.) Things are going. I have a pretty standard setup:
>
> Parent Module
>     EJB-JAR Module
>     JAR Module
>     WEB Module
>     EAR Module
>
>
> Currently, however, I'm manually having to deal with certain files that I
> need in JBoss:
> *  datasource.xml files
> *  jboss-service.xml
> *  log4j.xml files
> There will probably be some others as well.
>
> What is the best way to deal with these files? Is the best practice to
> create a directory in the parent module or ear module and just create some
> custom ant task to move them around where they need to go? I couldn't find
> much about a jboss maven plugin to help with these tasks, so I'm assuming
> hooking in regular old ant is the way to go?
>
> I'll also want to have certain variables in those files replaced with
> variables from a profile (dev, test, prod) depending on what profile I'm
> running. I'll look into that as well, since I'm sure there are some docs
> on
> it, but are the any issues to be aware of since I'm guessing these aren't
> standard files  that I'm dealing with so is using the replacement
> mechanism
> more difficult?
>
> Thanks
>


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



Reply via email to