An open API service indexing awesome lists of open source software.

https://github.com/forge/angularjs-addon

JBoss Forge AngularJS Scaffold Addon
https://github.com/forge/angularjs-addon

Last synced: 7 months ago
JSON representation

JBoss Forge AngularJS Scaffold Addon

Awesome Lists containing this project

README

          

== AngularJS Addon for JBoss Forge 2
:idprefix: id_

image:https://travis-ci.org/forge/angularjs-addon.svg?branch=master["Build Status", link="https://travis-ci.org/forge/angularjs-addon"]

The angularjs-addon enables developers to automate several tasks in the construction of applications that use AngularJS, in JBoss Forge.
This addon provides *standalone* functionality, and it can be re-used in other addons.

=== Dependencies:
=== Depends on
[options="header"]
|===
|Addon |Exported |Optional
|scaffold-spi
|no
|no
|javaee
|no
|no
|templates
|no
|no
|text
|no
|no
|convert
|no
|no
|parser-java
|no
|no
|cdi
|no
|no
|===

== Setup
This Addon requires the following installation steps.

=== Add configuration to pom.xml
To use this addon, you must add it as a dependency in the *pom.xml* of your `forge-addon` classified artifact:
(Make sure the dependency is put all the way to the left, and uses 3 spaces for indentation of GAV)
[source,xml]
----

org.jboss.forge.addon
angularjs
forge-addon
${version}

----
== Features
* Scaffold web-apps from JPA entities. The generated scaffold uses a thick-client based on AngularJS, and a JAX-RS RESTful backend.

== Usage

=== Prerequsites

JBoss Tools with Forge 2.4.1, or JBoss Forge-CLI 2.4.1.

=== Install the addon:

Assuming JBoss Tools with Forge, or Forge-CLI is installed:

*(JBT)*

Ctrl+5. Run the "Install the addon from Git" command, using these coordinates: https://github.com/forge/angularjs-addon.git

*(Forge-CLI)*

----
$ addon-install-from-git --url https://github.com/forge/angularjs-addon.git
----

=== Create a new project

*(JBT)*

Ctrl+5. Run the "Project: New" command. Create a new web application, named 'hello-angular'.

*(Forge-CLI)*

----
$ project-new --named hello-angular
----

=== Setup JPA

*(JBT)*

Ctrl+5. Run the "JPA: Setup" command. Defaults should be sufficient.

*(Forge-CLI)*

----
$ jpa-setup
----

=== Create a few JPA entities with fields

*(JBT)*

Ctrl+5. Run the "JPA: New Entity" command. Create a new entity (with an auto-generated Id) named 'Customer'.

Select the newly created Customer Java source file in the navigator. Ctrl+5. Run the "JPA: New Field" command. Create a new field of type String in the Customer entity named 'fullName'.

Ctrl+5 again and re-run the same command. Create a new field of type int in the Customer entity named 'age'.

*(Forge-CLI)*

----
$ jpa-new-entity --named Customer
$ jpa-new-field --named fullName
$ jpa-new-field --named age --type int
----

=== Setup Bean Validation and create new constraints

*(JBT)*

Ctrl+5. Run the "Constraint: Setup" command. Choose the "Generic Java EE" BV provider to use.

Ctrl+5. Run the "Constraint: Add" command. Create a NotNull constraint on the fullName field.

Ctrl+5. Run the "Constraint: Add" command. Create a Min constraint on the age field, with min value of 0.

*(Forge-CLI)*

----
$ constraint-setup --providers Generic\ Java\ EE
$ constraint-add --onProperty fullName --constraint NotNull
$ constraint-add --onProperty age --constraint Min --value 0
----

=== Setup and generate the AngularJS scaffold

*(JBT)*

Ctrl+5. Run the "Scaffold: Setup" command. Choose the "AngularJS" type to use.

Ctrl+5. Run the "Scaffold: Generate" command. Choose the "AngularJS" type to use. Select the Customer entity to scaffold. (I'll rework this bit across scaffold providers when fixing FORGE-1501 and FORGE-1731).

On completion, a JAX-RS resource that can handle requests and responses of media type application/json should be created, in conjunction with the AngularJS views.

*(Forge-CLI)*

----
$ scaffold-setup --provider AngularJS
$ scaffold-generate --provider AngularJS --targets org.hello.angular.model.Customer
----

This app can now be deployed to JBoss EAP.

== Issue Tracker

We do not use GitHub issues for issue tracking.
Please raise issues in the https://issues.jboss.org//secure/CreateIssueDetails!init.jspa?pid=12312020&components=12317568&issuetype=1&priority=3[JBoss JIRA Issue tracker]. The project and component is *FORGEPLUGINS* and *AngularJS Scaffold* respectively. We also track feature requests in the same space.