views:

266

answers:

6

I'd like to know which Java web application frameworks do provide a "hot reload" capability, i.e. allow to develop applications and have them redeployed on the server "almost instantly" (i.e. in less than a few seconds).

I the Java world, Play! has it out of the box, but what I'm looking for is a more exhaustive list.

Other examples that I'm aware of include: Nuxeo WebEngine, provided you're using Eclipse and the right plugin, or, in the Python world, Django and Pylons (when using the "--reload" option).

A: 

When developing a struts(2) application in eclipse it's also automatically reloaded as soon as you save a file which compiles successfully.

However, sessions are lost on every reload which is a bit annoying..

ThiefMaster
A: 

If you use POJOs, instead of EJBs, Seam framework should be in your list.

Petar Minchev
A: 

Tapestry 5 has hot deploy of single class/page changes, as does Seam.

mdma
+6  A: 

As far as I know, you can do hot reload with almost every java framework if using jrebel. Some frameworks have some kind of hot-deploy built in, as noted in other answers.

Marcelo Morales
Pitty this isn't party of standard J2EE development.
mdma
+1  A: 

If someone might be interested after those months:

you can configure jetty so that it will hot deploy your compiled classes (eclipse + netbeans have the compile on save feature). With maven you can type mvn jetty:run after this config in your pom.xml:

        <plugin>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>maven-jetty-plugin</artifactId>
            <version>${jetty.version}</version>
            <configuration>
                <scanTargets>
                    <scanTarget>target/classes/</scanTarget>
                </scanTargets>
                <scanIntervalSeconds>1</scanIntervalSeconds>
            </configuration>
        </plugin>

This can be done without the use of jrebel and it this means: do a change in the IDE + save it + go to your browser + F5 => you are done!

With that feature e.g. wicket or vaadin are hot deployable (but others too!)

Karussell
A: 

I'm going to assume you want this for development purposes and not for production (as hot-reloading in production for Java == big time fail). Very rarely will I shill a commercial product, but if you want hot-reloading in Java to speed up development, what you really want is JRebel. It's hot reloading will be fairly effortless on your part.

NOTE: Whatever you do, do not use JRebel (or any hot deployment, for that matter) for your Java apps.

whaley