Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Which Java web frameworks provide hot-reload?

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

In the Java world, Play! does that 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).

like image 934
Stefane Fermigier Avatar asked May 16 '10 14:05

Stefane Fermigier


4 Answers

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 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!)

like image 36
Karussell Avatar answered Nov 14 '22 14:11

Karussell


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.

like image 58
HMM Avatar answered Nov 14 '22 15:11

HMM


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

like image 2
mdma Avatar answered Nov 14 '22 16:11

mdma


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.

like image 1
whaley Avatar answered Nov 14 '22 16:11

whaley