Gradle-based web application skeleton project, ready to use
Ready to use, 100% Java, lightweight and scalable VAADIN-based web-application skeleton with all the major modules, typically required for every project - Backend with DAO and database persistence, IoC, timer services, REST API with client, nice rich web UI powered by Vaadin - all without the fat JEE stuff.
This skeleton aims to be a quick start point for any new Vaadin-based web-app project, especially for the people who don't like depend on IDE (like the author :)
Simply unpack the enclosed skeleton zip archive, type 'gradle war' to get a ready to use war file, or 'gradle appStartWar' to create a war and run in using embedded jetty server.
Note, you'll need Gradle version 2.x for this project. Or just use bundled gradle wrapper (gradlew) which will automatically download and use the correct gradle version privately.
Thanks to great gradle support in IntelliJ IDEA, the skeleton is easy to import to. Just import the skeleton root folder (where the main build.gradle exists) in IDEA, using File -> New -> Project from existing sources and you're ready to code and refactor.
Project skeleton consist from the two modules:
- server - the web-app, WAR-based module
- client - client api connector module, JAR-based.
Server module contains the following pre-configured components:
- IoC by Google Guice v4
- Timer services by Quartz
- Database objects management by Hibernate
- REST API, based on Jersey
- Web UI by Vaadin v7, managed by a vaadin-gradle plugin
Client module builds into a simple jar file, ready to be used in other java and/or android apps as a client connector to server API, based on excellent rest-client Retrofit.
This is a just initial release of the skeleton. Later it will be enhanced with the automated unit tests and other stuff. Also, the configurator script is planned, in order to let you automatically adjust package names, vaadin widgetset and theme names, etc, so you will not need to perform a manual refactoring from IDE for initial project setup.
More detailed documentation is also coming soon.
Please feel free to ticket any issues or improvement suggestions to the github project of this addon.