Author: Lincoln Baxter, Matej Briskar
Level: Intermediate
Technologies: Forge
Summary: The forge-from-scratch
quickstart demonstrates how JBoss Forge can generate a Java EE (JPA, EJB, JAX-RS, JSF) web-enabled database application.
Target Product: WildFly
Source: https://github.com/wildfly/quickstart/
The forge-from-scratch
quickstart demonstrates how to create a fully Java EE compliant project using JBoss Forge and Red Hat JBoss Developer Studio and deploy it to WildFly Application Server 11 or later.
The generated example will be a standard Maven, Java Web project with JPA, EJB, CDI, JSF with complete JAX-RS endpoints for all data Entities. It will also provide views to Create
, Read
, Update
, and Delete
records.
But that is not all! You can use Forge on your new or existing projects to continue to enhance any application.
Note: This quickstart uses the H2 database included with WildFly Application Server 11. It is a lightweight, relational example datasource that is used for examples only. It is not robust or scalable, is not supported, and should NOT be used in a production environment!
The application this project produces is designed to be run on WildFly Application Server 11 or later.
All you need to build this project is Java 8.0 (Java SDK 1.8) or later and Red Hat JBoss Developer Studio 10.0 or greater. These versions of JBoss Developer Studio embed Maven 3.3.3, so you do not need to install it separately.
JBoss Developer Studio 10.3 ships with Forge 3.5.1.Final.
Forge Console
Window. To open it, navigate to menu item Window -> Show View -> Other. Locate Forge -> Forge Console and click OK.$ cd QUICKSTART_HOME/forge-from-scratch/
generate.fsh
. Run this file from the Forge console using the run
command:
$ run generate.fsh
At this point, Forge creates the new project and builds it.
$ project-new --named forge-example --top-level-package org.example;
***SUCCESS*** Project named 'forge-example' has been created.
***SUCCESS***
message.build
command is executed, which should result in ***SUCCESS*** Build Success
near the end of the console output.NOTE: After you run the run generate.fsh
command, you will see the following warnings in the Problems window for the generated files. You can ignore these warnings.
Web XML Problem: location references to "/faces/error.xhtml" that does not exist in web content web.xml /forge-example/src/main/webapp/WEB-INF line 17
Web XML Problem: location references to "/faces/error.xhtml" that does not exist in web content web.xml /forge-example/src/main/webapp/WEB-INF line 21
JPA Problem: No connection specified for project. No database-specific validation will be performed. forge-example
This quickstart created a native Java EE 7 application.
QUICKSTART_HOME/forge-from-scratch/
folder. You see a folder with the name forge-example
.Project Explorer
view in JBoss Developer Studio.Run As
--> Run on Server
. If you have more than one server, choose the WildFly 11 Runtime server. Then click Finish
.Note: You will see the following warnings in the server log. You can ignore these warnings.
WFLYTX0013: Node identifier property is set to the default value. Please make sure it is unique.
WFLYDM0111: Keystore /home/user/eap-7.1/standalone/configuration/application.keystore not found, it will be auto generated on first use with a self signed certificate for host localhost
HHH000059: Defining hibernate.transaction.flush_before_completion=true ignored in HEM
HHH000431: Unable to determine H2 database version, certain features may not work
The application appears in a 'Welcome to Forge' Window and displays the following:
Welcome to Forge
Your application is running.
The following entities are displayed on the lower left side of the page:
When you click on an entity, you are provided with a form that allows you to:
The running application also provides links to find more information about the Forge.
When you are ready to undeploy the application from WildFly:
Servers
window.forge-example
project created by this quickstart, right-click, and choose Remove
.OK
when asked if you are sure you want to remove resource from the server. You should see the following message:
INFO [org.jboss.as.server] (DeploymentScanner-threads - 1) WFLYSRV0009: Undeployed "forge-example.war" (runtime-name: "forge-example.war")
Open generate.fsh
and take a look inside! There is not much magic happening here. All of the commands used to generate this project are clearly listed just as if they were typed by your own hands.
Play around with creating more entities, relationships, UI, and generating JAX-RS endpoints,all with just a few simple commands.