I use Subversion to track all of the additons and changes to the various configuration files, including the addition of new *-ds.xml files. Then when I upgrade to a new version of Jboss AS, I get a report from Subversion on what chnaged. And to double-check I do a compare between the original JBoss AS configuration and the one I am running ( I never run the the configs that come with JBoss AS, such as 'default' or 'all'; instead I make copies onder other names.)
Armed with the changes I made, I look at the new version of JBoss AS and attempt to find out where I need to make corresponding changes. It wasn't too bad from 4.0.x to 4.2.x, but moving to 5.x was interesting, to say the least. I then apply my changes to the new config files and test it out. Once I havee everything running, I create a new location in Subversion, load the config files and their changes, and then roll out the update.
ok, this makes sense but i'm unsure of a few things (i'm that way :-)
so after an upgrade you copy your server profile, say it's called "myprofile" into the new jboss install? or do you have the whole of "myprofile" in svn and just check it out into the new jboss install? how do you then compare that "myprofile" dir against the new version of the server profile it was copied from (all, default, whatever)? do you diff them? or did you check out "myprofile" ON TOP of the new version of the server profile it was created from?
thanks for the info btw, i find the upgrades to be really difficult. even the enterprise product doesn't seem to have a clean method ...
I start with the binary ZIP file and extract everything except the 'server' directory. Alternately, I extract the whole ZIP file and make a copy of everything except 'server'. I then copy, as an example, 'server/default' as 'server/inventory'. I keep track of the files I change in 'server/inventory' and only those files go into subversion; usually from a parallel directory tree containing only the configuraiton files changed. This way if I need to re-create 'server/inventory' I can copy 'server/default' again, extract the config files from subversion (usually into another directory) and then copy those config files into 'server/inventory'.
Of course the real fun comes in when you want to run multiple server instances. At times I deal with each one separately (with separate directory entries in subversion), other times I make a common configuration that applies to all instances (e.g., all instances will replace hsqldb with MySQL as DefaultDS) and plave that into subversion and then create branches for the individual server's configurations.
As for the compare, a diff is fine. Or any other tool that lets you compare entire directory stuctures looking for differences, both adde/deletd files, and changes to exiting file. I usually have a copy of the downloaded ZIP file sitting around somewhere, and if not it is easy to download another.
Got it! Awesome explanation - mind if i copy it ;-)
Thank you thank you and thank you!
I also found some folks doing rpm with maven: http://code.google.com/p/jboss-rpm/
I think it might nice to try to bundle up the app server minus the server directory as an rpm ... then i can use our RHSat server (i'm a company man!) to push that part out easily.
Maven scares me. I'm a sysadmin who has just got his head around ant and don't know java ... but this seems a good way to learn. Our devs at work are using maven to build rpms ... it's really cool.
Again thanks Peter for giving me some good ideas and showing me how you do it ... i'm gonna try it today.