Skip to content

Latest commit

 

History

History
236 lines (201 loc) · 12.1 KB

README.asciidoc

File metadata and controls

236 lines (201 loc) · 12.1 KB

Thorntail addon for JBoss Forge

Build Status License Maven Central

This addon provides standalone functionality, and exports services for use in other addons.

Installation

From Forge CLI:

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

Depends on

Addon Exported Optional

ui

yes

no

projects

yes

no

maven

yes

no

Features

Thorntail Project type

If you are creating a new project, you can choose the thorntail project type directly

[tmp]$ project-new --named demo --type thorntail --stack JAVA_EE_7
***SUCCESS*** Project named 'demo' has been created.
***SUCCESS*** Stack 'Java EE 7' installed in project
***SUCCESS*** Thorntail is now set up! Enjoy!
Setup command

If you’re working in an existing project (or you forgot to choose thorntail in the command above) just type wildfly-swarm-setup if you’re in shell. It should read Thorntail: Setup if you’re in a GUI environment:

thorntail-setup

And that’s it! The thorntail-maven-plugin will be installed.

Add Fraction

You can install Thorntail Fractions by using the command thorntail-add-fraction:

[demo]$ thorntail-add-fraction --fractions
asciidoctorj                  fluentd                       jaxrs-validator               keycloak-server               microprofile-opentracing      spring
batch-jberet                  flyway                        jca                           logging                       microprofile-restclient       swagger
bean-validation               full                          jdr                           logstash                      mod_cluster                   swagger-webapp
cassandra                     hibernate-search              jgroups                       mail                          mongodb                       topology-consul
cdi                           hibernate-validator           jmx                           management                    monitor                       topology-jgroups
cdi-config                    hystrix                       jolokia                       management-console            mvc                           topology-openshift
cdi-jaxrsapi                  infinispan                    jose                          messaging                     neo4j                         topology-webapp
cli                           jaeger                        jpa                           microprofile                  opentracing                   transactions
datasources                   javafx                        jpa-eclipselink               microprofile-config           orientdb                      undertow
drools-server                 jaxrs                         jpa-spatial                   microprofile-fault-tolerance  remoting                      vertx
ee-security                   jaxrs-jaxb                    jsf                           microprofile-health           resource-adapters             web
ejb                           jaxrs-jsonb                   jsonb                         microprofile-jwt              ribbon                        webservices
ejb-remote                    jaxrs-jsonp                   jsonp                         microprofile-metrics          ribbon-secured                zipkin-jaxrs
elytron                       jaxrs-multipart               keycloak                      microprofile-openapi          ribbon-secured-client

You can choose any fraction you want to install. Installed fractions are not listed.

Detect Fractions

This will run a fraction analyzer algorithm and list the missing fractions. You can add them to your project by specifying the --depend parameter

[demo]$ rest-new-endpoint --named MyEndpoint
***SUCCESS*** JAX-RS has been installed.
***SUCCESS*** REST org.demo.rest.MyEndpoint was created

[MyEndpoint.java]$ thorntail-detect-fractions --depend --build
List Fractions

This will list all the available fractions

[MyEndpoint.java]$ thorntail-list-fractions
asciidoctorj: AsciidoctorJ (AsciidoctorJ is the official library for running Asciidoctor on the JVM. Using AsciidoctorJ, you can convert AsciiDoc content or analyze the structure of a parsed AsciiDoc document from Java and other JVM languages.)
batch-jberet: Batch (Java EE Batch with JBeret)
bean-validation: Bean Validation (Define constraints on object models with annotations)
cassandra: Cassandra (Cassandra integration)
cdi: CDI (CDI with Weld)
cdi-config: CDI Configuration (CDI Configuration)
cdi-jaxrsapi: CDI JAX-RS API Enhancements (Generates implementation of external service from interface which can then be injected to call that service.)
cli: JBoss CLI (JBoss CLI)
datasources: Datasources (Datasources for installing database drivers, etc)
drools-server: Drools Server (Drools Server)
ee-security: EE Security (EE Security API support)
ejb: EJB (Use EJBs in your application)
ejb-remote: EJB Remote (Access EJBs in remote containers)
elytron: Elytron (Elytron)
fluentd: Fluentd (Write log entries to Fluentd)
flyway: Flyway (Evolve your Database Schema easily and reliably across all your instances)
full: Full (Equivalent to Full Platform)
hibernate-search: Hibernate Search (Hibernate Search transparently indexes your objects and offers fast regular, full-text and geolocation search. Ease of use and easy clustering are core.)
hibernate-validator: Hibernate Validator (Validation annotations going beyond Bean Validation)
hystrix: Hystrix (Latency and Fault Tolerance, such as Circuit Breaker, with Hystrix from Netflix OSS)
infinispan: Infinispan (Distributed in-memory key/value store)
jaeger: Jaeger (Jaeger integration, including the OpenTracing fraction)
javafx: JavaFX (For using JavaFX classes in your application.)
jaxrs: JAX-RS (RESTful Web Services with RESTEasy)
jaxrs-jaxb: JAX-RS with JAXB (Add JAXB binding support for RESTful services)
jaxrs-jsonb: JAX-RS with JSON-B (Enable JSON-B interchange format for RESTful services)
jaxrs-jsonp: JAX-RS with JSON-P (Enable JSON-P interchange format for RESTful services)
jaxrs-multipart: JAX-RS with Multipart (Multipart support for RESTful services)
jaxrs-validator: JAX-RS with Validation (Validation support for RESTful services)
jca: JCA (Java EE Connector Architecture)
jdr: JBoss Diagnostic Reporting (Enables the gathering of diagnostic data for use in remote analysis of error conditions. Although the data is in a simple format and could be useful to anyone, primarily useful for JBoss EAP subscribers who would provide the data to Red Hat when requesting support)
jgroups: JGroups (Reliable messaging for creating a cluster)
jmx: JMX (Expose resources as MBeans)
jolokia: Jolokia (Deploys the jolokia.war to activate JMX-HTTP bridge as an alternative to JSR-160 connectors)
jose: JOSE Signing and Encryption Support (Supports JWS signing and JWE encryption)
jpa: JPA (Java Persistence API with Hibernate and H2 datasource)
jpa-eclipselink: JPA EclipseLink (Java Persistence API with EclipseLink)
jpa-spatial: JPA Spatial Extensions (Java Persistence API with Spatial Extensions)
jsf: JSF (Java Server Faces for developing UIs)
jsonb: JSON-B (JSON-B)
jsonp: JSON-P (JSON-P)
keycloak: Keycloak (Securing your RESTful services)
keycloak-server: Keycloak Server (Running Keycloak in an uber jar)
logging: Logging (Customizing the Logging for WildFly)
logstash: Logstash (Write log entries to Logstash for use in ELK stack)
mail: Mail (Java Mail API for messaging)
management: Management (Enables WildFly management capabilities)
management-console: Management Console (UI to manage a running WildFly/Swarm server)
messaging: Messaging (JMS Messaging with ActiveMQ)
microprofile: MicroProfile (Implementation of MicroProfile.io)
microprofile-config: MicroProfile Config (WildFly: Swarm Fraction for Eclipse MicroProfile Config)
microprofile-fault-tolerance: MicroProfile Fault Tolerance (WildFly: Swarm Fraction for Eclipse MicroProfile Fault Tolerance)
microprofile-health: MicroProfile Health (Health endpoints for your application)
microprofile-jwt: MicroProfile JWT RBAC Auth (An implementation of the MP-JWT authentication and authorization)
microprofile-metrics: MicroProfile Metrics (Metrics export for MicroProfile)
microprofile-openapi: MicroProfile OpenAPI (An implementation of the MP-OpenAPI specification first introduced in MP 1.3)
microprofile-opentracing: MicroProfile OpenTracing (OpenTracing integration for Microprofile)
microprofile-restclient: MicroProfile Rest Client (Build Parent to bring in required dependencies)
mod_cluster: Modcluster (Modcluster support)
mongodb: MongoDB (MongoDB integration)
monitor: Monitor (Health endpoints for your application)
mvc: MVC (MVC 1.0 with Ozark for developing Web UIs)
neo4j: Neo4j (Neo4j integration)
opentracing: OpenTracing (OpenTracing integration via TraceResolver and GlobalTracer)
orientdb: OrientDB (OrientDB integration)
remoting: Remoting (Connecting to remote containers)
resource-adapters: Resource Adapters (Resource Adapters deployed with .rar files)
ribbon: Ribbon (Client side load balancing with Netflix Ribbon)
ribbon-secured: Ribbon Secured (Provides security token propagation across invocations when using Netflix Ribbon and Keycloak)
ribbon-secured-client: Ribbon Secured Client (Ribbon Secured Client)
spring: Spring WebMVC (RESTful services with Spring WebMVC)
swagger: Swagger (Generate swagger.json for all JAX-RS endpoints in your application)
swagger-webapp: Swagger Webapp (UI for Swagger to visualize the generated swagger.json)
topology-consul: Hashicorp Consul (Service Discovery with Hashicorp Consul)
topology-jgroups: JGroups Topology (Utilizes JGroups as a Service Registry that is discoverable)
topology-openshift: OpenShift (Service Discovery with OpenShift)
topology-webapp: Topology UI (Server-Sent Events of instances being added/removed from cluster)
transactions: Transactions (JTA distributed transactions with Narayana)
undertow: Undertow (Servlet Container with Undertow)
vertx: Vert.x (Deploys the Vert.x JCA Adapter)
web: Web (Equivalent to Web Profile)
webservices: Web Services (Web Services with CXF)
zipkin-jaxrs: Zipkin - JAXRS Support (Enables the zipkin instrumentation for JAX-RS resources)
Change Version

Changes the Thorntail version in the addon. Subsequent project creation using the project-new command would use the version specified by this command instead. The permanent flag will add a thorntail.version property in your ~/.forge/config.properties file and will use that version permanently.

Important
This command does not perform any change to the current project.
Create Test Class

Creates a Java Test Class and adds Arquillian Thorntail dependency. This test uses the @DefaultDeployment deployment approach and in case of specifying the flag asClient it also enriches your test with current URL.

thorntail-new-test --target-package org.example.rest --named HelloWorldEndpointTest
***SUCCESS*** Test Class org.example.rest.HelloWorldEndpointTest was created
[HelloSwarm]$ cd src/test/java/org/example/rest/HelloWorldEndpointTest.java
[HelloWorldEndpointTest.java]$ cat -c .
package org.example.rest;

import org.junit.runner.RunWith;
import org.jboss.arquillian.junit.Arquillian;
import org.wildfly.swarm.arquillian.DefaultDeployment;
import org.junit.Test;

@RunWith(Arquillian.class)
@DefaultDeployment
public class HelloWorldEndpointTest {

	@Test
	public void should_start_service() {
	}
}
Run

Builds and executes the current project (in command line mode only so far) and will block the UI until Ctrl+C is pressed.

[Main.java]$ thorntail-run