looking for ideas on how to set up an effective development environment (i.e. fast edit-build-run-debug cycle) with clearcase for source control, ant for build, and weblogic as the application server.
currently, development happens in exploded mode on weblogic with no ssource control(mapping) mapping, simple script-based building. primarily, we deploy jsps, servlets and java classes.
any ideas/pointers/discussion to what has worked for various people would be very welcome.
thanks in advance.
One IDE that can do all that your asking for is JBuilder. It provides integrated source control for clearcase, integrated build and deploy scripts with ANT. But that's just one of many.
this may be a good solution for the developers, but someone on the team needs to understand how everything works and it all needs to be implemented in an ant script so you can deploy without having dependance on the IDE. Also, things will not go right, and if you do not have an understanding of how it all fits together you will pull your hair out figure out why JBuilder's magic buttons didn't work for you.
Why use JBuilder or any other expensive IDE?
99.99% of the time you don't need the expensive features of JBuilder. I've used JBuilder and think it's great as a text editor. but why pay for it and the features you don't need when you get the same for free.
There's an Ant plugin for JBuilder but why pay 10 000$ for the IDE when you can run ant from the console?
Just use ANT and a simple editor like JEdit. If you need some extra features download a plugin for free...
And if you only develop JSPs & Servlets use JBoss on your development machines and save 10 000$/seat in weblogic licensing fees.
JBuilder is integrated with ClearCase. But why do we need a feature like that? Can't we just use Windows Explorer which is already integrated with ClearCase. It's "free".
The same answer for using Jbuilder or other visual expensive IDE ... I'm using JCreator PRO much cheaper and very good ... you can configure it very fast for your team but the bad thing is that it works on Windows ... if you cand deal with that it's ok ...
Ideally, you would have each developer have their own Weblogic running on their box, and either their own database or at least their own schema-space in the DB. Since you are using version control, doing this will eliminate potential issues wiht people stomping on what the other is doing.
If you cannot achieve that (or don't want to), you will have to have good communication and organization within the group. I suppose you could give each person their own domain or EAR on a shared server as well, but that may be more Weblogic configuration than you want to deal with.
In any case, check out the ant script that comes with the EJB Design patterns book (PDF is free download from this site). It is a good starting point and is geared towards Weblogic. The ant files work around building EJBs and other classes in your work location, and then copying them to the location where you "deploy" them to your dev environment. For Servlet and taglib classes, and EJB jars, weblogic (when run in development mode) will automatically redeploy for you w/out a restart. For non-servlet classes that your servlets or taglibs may use, I am not sure, but in any case, you only need to go into the console and undeploy and then reploy your webapp (try it out first, WL current version may redploy everytyhing).
If you can integrate ant with your development environment (it should integrate well with vim, emacs and eclipse), you can be very fast with your dev. cycle.
In terms of sharing changes with developers on the team, you will probably want to adopt a "check-in frequently code that compiles" policy, and either automatically or by-hand check out and compile code on a daily basis. This will also encourage developers to merge their changes frequently and ensure you have a somewhat working system at all times.
Edting of JSPs can be problematic if everyone is not using the same editor (due to the often-unreadability of HTML). Make sure everyone's either using the same editor or that everyone has their editors configured the same (e.g. tabs vs. spaces, indent, line endings)
Depending on the size of your project, you will run into issues with ant regarding EJB development. Since ant is very weak at dependancy checking, you will have to be very careful during the edit-build-run-debug cycle when building EJBs. You will not want all EJBs in the same EJB-jar, and you will not want to generate all ejb-jars during each excecution of your dev. cycle. Furthermore, you will not always know what updates/changes to common code affect your EJBs. That is life with ant, though, and if your project is small, it's probably no big deal. If it becomes big, you may need to spend some time digging into ant to figure out if it can provide the necessary dependancy checking, or use make.