{"id":21154974,"url":"https://github.com/forge/thorntail-addon","last_synced_at":"2025-07-09T11:31:11.422Z","repository":{"id":31697648,"uuid":"35263320","full_name":"forge/thorntail-addon","owner":"forge","description":"Thorntail Forge Addon","archived":false,"fork":false,"pushed_at":"2021-04-29T19:33:56.000Z","size":255,"stargazers_count":14,"open_issues_count":4,"forks_count":13,"subscribers_count":12,"default_branch":"master","last_synced_at":"2023-07-26T23:34:48.197Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://thorntail.io/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/forge.png","metadata":{"files":{"readme":"README.asciidoc","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-05-08T06:49:48.000Z","updated_at":"2022-09-19T21:40:47.000Z","dependencies_parsed_at":"2022-08-25T23:32:00.216Z","dependency_job_id":null,"html_url":"https://github.com/forge/thorntail-addon","commit_stats":null,"previous_names":["forge/wildfly-swarm-addon"],"tags_count":33,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge%2Fthorntail-addon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge%2Fthorntail-addon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge%2Fthorntail-addon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/forge%2Fthorntail-addon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/forge","download_url":"https://codeload.github.com/forge/thorntail-addon/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225536201,"owners_count":17484790,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-20T11:09:13.710Z","updated_at":"2024-11-20T11:09:14.265Z","avatar_url":"https://github.com/forge.png","language":"Java","readme":":idprefix: id_ \n:source-highlighter: pygments\n\n== Thorntail addon for JBoss Forge\nimage:https://travis-ci.org/forge/thorntail-addon.svg?branch=master[\"Build Status\", link=\"https://travis-ci.org/forge/thorntail-addon\"]\nimage:http://img.shields.io/:license-EPL-blue.svg[\"License\", link=\"https://www.eclipse.org/legal/epl-v10.html\"]\nimage:https://maven-badges.herokuapp.com/maven-central/org.jboss.forge.addon/thorntail/badge.svg[\"Maven Central\", link=\"https://maven-badges.herokuapp.com/maven-central/org.jboss.forge.addon/thorntail\"]\n\nThis addon provides *standalone* functionality, and *exports services* for use in other addons. \n\n++++\n\u003ciframe width=\"560\" height=\"315\" src=\"https://www.youtube.com/embed/ebcnOopZFWs\" frameborder=\"0\" allowfullscreen\u003e\u003c/iframe\u003e\n++++\n\n=== Installation\n\nFrom Forge CLI:\n\n[source,shell]\n----\naddon-install-from-git --url https://github.com/forge/thorntail-addon.git\n----\n\n=== Depends on\n[options=\"header\"]\n|===\n|Addon |Exported |Optional\n\n|ui\n|yes\n|no\n\n|projects\n|yes\n|no\n\n|maven\n|yes\n|no\n|===\n\n\n== Features\nThorntail Project type::\nIf you are creating a new project, you can choose the `thorntail` project type directly\n\n[source,shell]\n----\n[tmp]$ project-new --named demo --type thorntail --stack JAVA_EE_7\n***SUCCESS*** Project named 'demo' has been created.\n***SUCCESS*** Stack 'Java EE 7' installed in project\n***SUCCESS*** Thorntail is now set up! Enjoy!\n----\n\nSetup command:: \nIf 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:\n+\n[source,java]\n----\nthorntail-setup\n----\n+\nAnd that's it! The `thorntail-maven-plugin` will be installed.\n\nAdd Fraction::\nYou can install Thorntail Fractions by using the command `thorntail-add-fraction`:\n+\n[source,java]\n----\n[demo]$ thorntail-add-fraction --fractions\nasciidoctorj                  fluentd                       jaxrs-validator               keycloak-server               microprofile-opentracing      spring\nbatch-jberet                  flyway                        jca                           logging                       microprofile-restclient       swagger\nbean-validation               full                          jdr                           logstash                      mod_cluster                   swagger-webapp\ncassandra                     hibernate-search              jgroups                       mail                          mongodb                       topology-consul\ncdi                           hibernate-validator           jmx                           management                    monitor                       topology-jgroups\ncdi-config                    hystrix                       jolokia                       management-console            mvc                           topology-openshift\ncdi-jaxrsapi                  infinispan                    jose                          messaging                     neo4j                         topology-webapp\ncli                           jaeger                        jpa                           microprofile                  opentracing                   transactions\ndatasources                   javafx                        jpa-eclipselink               microprofile-config           orientdb                      undertow\ndrools-server                 jaxrs                         jpa-spatial                   microprofile-fault-tolerance  remoting                      vertx\nee-security                   jaxrs-jaxb                    jsf                           microprofile-health           resource-adapters             web\nejb                           jaxrs-jsonb                   jsonb                         microprofile-jwt              ribbon                        webservices\nejb-remote                    jaxrs-jsonp                   jsonp                         microprofile-metrics          ribbon-secured                zipkin-jaxrs\nelytron                       jaxrs-multipart               keycloak                      microprofile-openapi          ribbon-secured-client\n\n----\n+\nYou can choose any fraction you want to install. Installed fractions are not listed.\n\nDetect Fractions::\nThis will run a fraction analyzer algorithm and list the missing fractions. You can add them to your project by specifying the `--depend` parameter \n\n[source,shell]\n----\n[demo]$ rest-new-endpoint --named MyEndpoint\n***SUCCESS*** JAX-RS has been installed.\n***SUCCESS*** REST org.demo.rest.MyEndpoint was created\n\n[MyEndpoint.java]$ thorntail-detect-fractions --depend --build\n\n\n----\n\nList Fractions::\nThis will list all the available fractions\n\n[source,shell]\n----\n[MyEndpoint.java]$ thorntail-list-fractions\nasciidoctorj: 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.)\nbatch-jberet: Batch (Java EE Batch with JBeret)\nbean-validation: Bean Validation (Define constraints on object models with annotations)\ncassandra: Cassandra (Cassandra integration)\ncdi: CDI (CDI with Weld)\ncdi-config: CDI Configuration (CDI Configuration)\ncdi-jaxrsapi: CDI JAX-RS API Enhancements (Generates implementation of external service from interface which can then be injected to call that service.)\ncli: JBoss CLI (JBoss CLI)\ndatasources: Datasources (Datasources for installing database drivers, etc)\ndrools-server: Drools Server (Drools Server)\nee-security: EE Security (EE Security API support)\nejb: EJB (Use EJBs in your application)\nejb-remote: EJB Remote (Access EJBs in remote containers)\nelytron: Elytron (Elytron)\nfluentd: Fluentd (Write log entries to Fluentd)\nflyway: Flyway (Evolve your Database Schema easily and reliably across all your instances)\nfull: Full (Equivalent to Full Platform)\nhibernate-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.)\nhibernate-validator: Hibernate Validator (Validation annotations going beyond Bean Validation)\nhystrix: Hystrix (Latency and Fault Tolerance, such as Circuit Breaker, with Hystrix from Netflix OSS)\ninfinispan: Infinispan (Distributed in-memory key/value store)\njaeger: Jaeger (Jaeger integration, including the OpenTracing fraction)\njavafx: JavaFX (For using JavaFX classes in your application.)\njaxrs: JAX-RS (RESTful Web Services with RESTEasy)\njaxrs-jaxb: JAX-RS with JAXB (Add JAXB binding support for RESTful services)\njaxrs-jsonb: JAX-RS with JSON-B (Enable JSON-B interchange format for RESTful services)\njaxrs-jsonp: JAX-RS with JSON-P (Enable JSON-P interchange format for RESTful services)\njaxrs-multipart: JAX-RS with Multipart (Multipart support for RESTful services)\njaxrs-validator: JAX-RS with Validation (Validation support for RESTful services)\njca: JCA (Java EE Connector Architecture)\njdr: 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)\njgroups: JGroups (Reliable messaging for creating a cluster)\njmx: JMX (Expose resources as MBeans)\njolokia: Jolokia (Deploys the jolokia.war to activate JMX-HTTP bridge as an alternative to JSR-160 connectors)\njose: JOSE Signing and Encryption Support (Supports JWS signing and JWE encryption)\njpa: JPA (Java Persistence API with Hibernate and H2 datasource)\njpa-eclipselink: JPA EclipseLink (Java Persistence API with EclipseLink)\njpa-spatial: JPA Spatial Extensions (Java Persistence API with Spatial Extensions)\njsf: JSF (Java Server Faces for developing UIs)\njsonb: JSON-B (JSON-B)\njsonp: JSON-P (JSON-P)\nkeycloak: Keycloak (Securing your RESTful services)\nkeycloak-server: Keycloak Server (Running Keycloak in an uber jar)\nlogging: Logging (Customizing the Logging for WildFly)\nlogstash: Logstash (Write log entries to Logstash for use in ELK stack)\nmail: Mail (Java Mail API for messaging)\nmanagement: Management (Enables WildFly management capabilities)\nmanagement-console: Management Console (UI to manage a running WildFly/Swarm server)\nmessaging: Messaging (JMS Messaging with ActiveMQ)\nmicroprofile: MicroProfile (Implementation of MicroProfile.io)\nmicroprofile-config: MicroProfile Config (WildFly: Swarm Fraction for Eclipse MicroProfile Config)\nmicroprofile-fault-tolerance: MicroProfile Fault Tolerance (WildFly: Swarm Fraction for Eclipse MicroProfile Fault Tolerance)\nmicroprofile-health: MicroProfile Health (Health endpoints for your application)\nmicroprofile-jwt: MicroProfile JWT RBAC Auth (An implementation of the MP-JWT authentication and authorization)\nmicroprofile-metrics: MicroProfile Metrics (Metrics export for MicroProfile)\nmicroprofile-openapi: MicroProfile OpenAPI (An implementation of the MP-OpenAPI specification first introduced in MP 1.3)\nmicroprofile-opentracing: MicroProfile OpenTracing (OpenTracing integration for Microprofile)\nmicroprofile-restclient: MicroProfile Rest Client (Build Parent to bring in required dependencies)\nmod_cluster: Modcluster (Modcluster support)\nmongodb: MongoDB (MongoDB integration)\nmonitor: Monitor (Health endpoints for your application)\nmvc: MVC (MVC 1.0 with Ozark for developing Web UIs)\nneo4j: Neo4j (Neo4j integration)\nopentracing: OpenTracing (OpenTracing integration via TraceResolver and GlobalTracer)\norientdb: OrientDB (OrientDB integration)\nremoting: Remoting (Connecting to remote containers)\nresource-adapters: Resource Adapters (Resource Adapters deployed with .rar files)\nribbon: Ribbon (Client side load balancing with Netflix Ribbon)\nribbon-secured: Ribbon Secured (Provides security token propagation across invocations when using Netflix Ribbon and Keycloak)\nribbon-secured-client: Ribbon Secured Client (Ribbon Secured Client)\nspring: Spring WebMVC (RESTful services with Spring WebMVC)\nswagger: Swagger (Generate swagger.json for all JAX-RS endpoints in your application)\nswagger-webapp: Swagger Webapp (UI for Swagger to visualize the generated swagger.json)\ntopology-consul: Hashicorp Consul (Service Discovery with Hashicorp Consul)\ntopology-jgroups: JGroups Topology (Utilizes JGroups as a Service Registry that is discoverable)\ntopology-openshift: OpenShift (Service Discovery with OpenShift)\ntopology-webapp: Topology UI (Server-Sent Events of instances being added/removed from cluster)\ntransactions: Transactions (JTA distributed transactions with Narayana)\nundertow: Undertow (Servlet Container with Undertow)\nvertx: Vert.x (Deploys the Vert.x JCA Adapter)\nweb: Web (Equivalent to Web Profile)\nwebservices: Web Services (Web Services with CXF)\nzipkin-jaxrs: Zipkin - JAXRS Support (Enables the zipkin instrumentation for JAX-RS resources)\n\n\n----\n\nChange Version::\n\nChanges 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.\n\nIMPORTANT: This command does not perform any change to the current project.   \n\nCreate Test Class::\nCreates a Java Test Class and adds Arquillian Thorntail dependency.\nThis test uses the `@DefaultDeployment` deployment approach and in case of specifying the flag `asClient` it also enriches your test with current URL.\n\n[source, shell]\n----\nthorntail-new-test --target-package org.example.rest --named HelloWorldEndpointTest\n***SUCCESS*** Test Class org.example.rest.HelloWorldEndpointTest was created\n[HelloSwarm]$ cd src/test/java/org/example/rest/HelloWorldEndpointTest.java\n[HelloWorldEndpointTest.java]$ cat -c .\npackage org.example.rest;\n\nimport org.junit.runner.RunWith;\nimport org.jboss.arquillian.junit.Arquillian;\nimport org.wildfly.swarm.arquillian.DefaultDeployment;\nimport org.junit.Test;\n\n@RunWith(Arquillian.class)\n@DefaultDeployment\npublic class HelloWorldEndpointTest {\n\n\t@Test\n\tpublic void should_start_service() {\n\t}\n}\n----\n\nRun:: \nBuilds and executes the current project (in command line mode only so far) and will block the UI until Ctrl+C is pressed.\n\n[source,shell]\n----\n[Main.java]$ thorntail-run\n----","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforge%2Fthorntail-addon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fforge%2Fthorntail-addon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fforge%2Fthorntail-addon/lists"}