I’m really pissed when I’m developing UI and have to redeploy the whole application to see my changes which can take up to a minute. Most of the time when starting up is spent in starting up the service and dao layer(=hibernate). I already have the application divided into multiple modules and the UI code is one separate module. All of the modules are packaged inside war and deployed on Tomcat. The software uses Spring for IOC. The code in the UI layer uses Spring MVC and more recently Vaadin. Maven is used to build the projet.
Is there any tips to speed things up when changing code in the UI layer? Like is there a way to redeploy only one jar? I’ve read about OSGI and EJB that could help with this? Would you recommend using one of those or is there other solutions? I’ve no problems using a real application server like glassfish or jboss. The end result doesn’t have to be a war-file either.
EDIT: I’m trying to get rid of JSP so replacing JSP files on server is not enough anymore. Vaadin is plain Java code. Even in Spring MVC the controllers are Java code.
There’s a couple of solutions off the top of my head to this.
Typically an Web/App Server will have a working directory, you’ll find that if you replace the JSP page there, that your ‘change’ will get picked up immediately. This is even easier if you’re using an exploded WAR file on deployment.
JRebel can be used to speed up turnaround time
Changing to EJBs or OSGI is going to be a non-trivial change – speed of deployment probably shouldn’t be your only driver for this.
PS: My web front end skills are a little rusty, so perhaps take my advice with a grain of salt