Chapter 10. Develop an Application for the JBoss EAP Image
10.1. Create a JBoss EAP Project Using the S2I Source Workflow
To create a JBoss EAP project using the S2I source workflow, follow these steps:
Before creating a JBoss EAP project, add the
viewrole to the default service account to enable clustering. Enter the following
occlient commands in a shell prompt:
oc login -u developer -p developer oc policy add-role-to-user view -z default
Navigate to the OpenShift console in your browser (https://OPENSHIFT_IP_ADDR:8443, replace
OPENSHIFT_IP_ADDRwith the IP address that was displayed in the case of CDK) and log in to the console with your credentials (for example, with username
In the Catalog search field, enter
JBoss Fuse 7.0 Camel CDI with EAPas the search string and select the JBoss Fuse 7.0 Camel CDI with EAP template.
- The Information step of the template wizard opens. Click Next.
The Configuration step of the template wizard opens. From the Add to Project dropdown, select My Project.Note
Alternatively, if you prefer to create a new project for this example, select Create Project from the Add to Project dropdown. A Project Name field then appears for you to fill in the name of the new project.
You can accept the default values for the rest of the settings in the Configuration step. Click Create.Note
If you want to modify the application code (instead of just running the quickstart as is), you would need to fork the original quickstart Git repository and fill in the appropriate values in the Git Repository URL and Git Reference fields.
- The Results step of the template wizard opens. Click Close.
- In the left-hand My Projects pane, click My Project. The Overview tab of the My Project project opens, showing the s2i-fuse70-eap-camel-cdi application.
Click the arrow on the left of the s2i-fuse70-eap-camel-cdi deployment to expand and view the details of this deployment, as shown.
In this view, you can see the build log. If the build should fail for any reason, the build log can help you to diagnose the problem.Note
The build can take several minutes to complete, because a lot of dependencies must be downloaded from remote Maven repositories. To speed up build times, we recommend you deploy a Nexus server on your local network.
If the build completes successfully, the pod icon shows as a blue circle with 1 pod running.
To open the application, click the link that is shown above the application details, which has the form
http://s2i-fuse70-eap-camel-cdi-myproject.IP_ADDRESS.nip.io/. This shows a message like the following in your browser:
Hello world from 172.17.0.3
You can also specify a name using the
nameparameter in the URL. For example, if you enter the URL,
http://s2i-fuse70-eap-camel-cdi-myproject.192.168.42.139.nip.io/?name=jdoe, in your browser you see the response:
Hello jdoe from 172.17.0.3
Click Overview on the left-hand navigation bar to return to the overview of the applications in the
My Projectnamespace. To shut down the running pod, click the down arrow beside the pod icon. When a dialog prompts you with the question Scale down deployment s2i-fuse70-eap-camel-cdi-1?, click Scale Down.
(Optional) If you are using CDK, you can shut down the virtual OpenShift Server completely by returning to the shell prompt and entering the following command:
10.2. Structure of the JBoss EAP Application
You can find the source code for the JBoss Fuse 7.0 Camel CDI with EAP example at the following location:
The directory structure of the Camel on EAP application is as follows:
├── pom.xml ├── README.md ├── configuration │ └── settings.xml └── src └── main ├── java │ └── org │ └── wildfly │ └── camel │ └── examples │ └── cdi │ └── camel │ ├── MyRouteBuilder.java │ ├── SimpleServlet.java │ └── SomeBean.java └── webapp └── WEB-INF └── beans.xml
Where the following files are important for developing a JBoss EAP application:
- Includes additional dependencies.
10.3. JBoss EAP Quickstart Templates
The following S2I templates are provided for Fuse on JBoss EAP:
Table 10.1. JBoss EAP S2I Templates
JBoss Fuse 7.0 Camel A-MQ with EAP (
Demonstrates using the camel-activemq component to connect to an AMQ message broker running in OpenShift. It is assumed that the broker is already deployed.
JBoss Fuse 7.0 Camel CDI with EAP (
Demonstrates using the camel-cdi component to integrate CDI beans with Camel routes.
JBoss Fuse 7.0 CXF JAX-RS with EAP (
Demonstrates using the camel-cxf component to produce and consume JAX-RS REST services.
JBoss Fuse 7.0 CXF JAX-WS with EAP (
Demonstrates using the camel-cxf component to produce and consume JAX-WS web services.
JBoss Fuse 7.0 Camel JPA + MySQL (Ephemeral) with EAP
Demonstrates how to connect a Camel application with JBoss Fuse on EAP to a MySQL database and expose a REST API. This example creates two containers, one container to run as a MySQL server, and another running the Camel application which acts as as a client to the database.