Stefane Fermigier
Stefane Fermigier

Reputation: 346

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

Upvotes: 12

Views: 11659

Answers (8)

jmarranz
jmarranz

Reputation: 6469

There's a new kid on the block, RelProxy, it is open source, is not so advanced like JRebel but it can be used to freely change a subset of your code in runtime and reload it with almost no performance penalty and no need of context reloading (no session lost) in development and production if you want.

Upvotes: 0

Karussell
Karussell

Reputation: 17375

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

Upvotes: 13

Anil
Anil

Reputation: 41

If you want to edit your Java (controller, model) code and refresh your browser to see changes immediately and without restarting your web server, you can use scooter. By the way, its built-in tool File Browser allows you to edit(compile) your code thru a browser. A browser may not be capable as an IDE, but it helps you remotely develop your app.

Upvotes: 0

whaley
whaley

Reputation: 16265

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.

Upvotes: 1

HMM
HMM

Reputation: 3013

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.

Upvotes: 15

mdma
mdma

Reputation: 57757

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

Upvotes: 2

Petar Minchev
Petar Minchev

Reputation: 47383

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

Upvotes: 0

ThiefMaster
ThiefMaster

Reputation: 318568

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..

Upvotes: -1

Related Questions