GithubHelp home page GithubHelp logo

jfl110 / gae-hot-reloader Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 0.0 12 KB

Standalone application for hot reloading class files and static resources with the GAE development server

License: The Unlicense

Java 100.00%
appengine-web hot-reloading

gae-hot-reloader's Introduction

GAE Hot Reloader

The goal of this tool is to enable hot reloading of classes while running the GAE development server. Changes made in the source code are quickly applied to the running application if an IDE that builds automatically is used (such as Eclipse).

This enables a loosely-coupled multi-project structure to be used without the need to re-explode the compiled war, re-install local maven dependencies or put any hacks into the build script.

When running, the tool:

  • Scans the specified source directories for .class files and identifies which have been updated since the last scan.
  • Copies the classes files from all source directories into the WEB-INF/classes directory.
  • If necessary, triggers a complete reload of the server by re-saving the appengine-web.xml file. The first time the .class files are copied a complete reload is required otherwise the classes will be sourced from their .jar files.

Running

The tool can be run using gradle from the command line using 'gradle run'.

Command-line instructions

  • 'stop' - stops the tool.
  • 'reload' - tries to trigger a reload of the server by re-saving the appengine-web.xml file. A reload must be triggered AFTER the GAE development server is re/started.

Configuration

Specify the following properties in the 'src/main/resources/reload.properties' file.

  • 'interval-ms' - The number of milliseconds between each scan of the source directories.
  • 'webapp-dir' - The path to the output exploded-war directory.
  • 'webapp-source-dir' - The path to the source webapp directory that contains static resources.
  • 'source-dirs' - Space-separated list of paths to scan for .class files. For Eclipse projects this would be '\bin' in the root project folder.

Considerations

  • A full reload is a more surefire way to include changes.
  • Extensive hotswapping may cause the PermGen space to grow and eventually cause an OutOfMemoryException

gae-hot-reloader's People

Contributors

jfl110 avatar

Stargazers

Vijayasundaram K avatar

Watchers

James Cloos avatar  avatar

gae-hot-reloader's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.