Home

Awesome

The Angular-Dropwizard generator

A Yeoman generator for AngularJS and Dropwizard.

Dropwizard is a Java-based micro-framework. For AngularJS integration with other micro-frameworks, see https://github.com/rayokota/MicroFrameworkRosettaStone.

Installation

Install Git, node.js, JDK 7, and Maven 3.

Install Yeoman:

npm install -g yo

Install the Angular-Dropwizard generator:

npm install -g generator-angular-dropwizard

The above prerequisites can be installed to a VM using the Angular-Dropwizard provisioner.

Creating a Dropwizard service

In a new directory, generate the service:

yo angular-dropwizard

Compile the service:

mvn compile

Run the service:

mvn exec:exec -pl [myapp]-service

Your service will run at http://localhost:8080. It's time to create some resources.

Creating a resource class

Generate the resource:

yo angular-dropwizard:resource [myresource]

You will be asked to specify methods for the resource, where each method has the following:

Files that are regenerated will appear as conflicts. Allow the generator to overwrite these files as long as no custom changes have been made.

Compile and rerun the service:

mvn compile exec:exec -pl [myapp]-service
 

You can now invoke HTTP requests against your service, such as

curl -X POST localhost:8080/myapp/myresource/users/1/orders/2 \
	 -d "formParam1=hello&formParam2=world"

Creating a persistent entity

Generate the entity:

yo angular-dropwizard:entity [myentity]

You will be asked to specify attributes for the entity, where each attribute has the following:

Compile and rerun the service:

mvn compile exec:exec -pl [myapp]-service

A client-side AngularJS application will now be available by running

grunt server

The Grunt server will run at http://localhost:9000. It will proxy REST requests to the Dropwizard service running at http://localhost:8080.

At this point you should be able to navigate to a page to manage your persistent entities.

The Grunt server supports hot reloading of client-side HTML/CSS/Javascript file changes, while the Dropwizard service supports hot reloading of Java class file changes.