Jump To Close Expand all Collapse all Table of contents Thorntail Runtime Guide Preface Providing feedback on Red Hat documentation Making open source more inclusive 1. Introduction to Application Development with Thorntail Expand section "1. Introduction to Application Development with Thorntail" Collapse section "1. Introduction to Application Development with Thorntail" 1.1. Overview of Application Development with Red Hat Runtimes 1.2. Application Development on Red Hat OpenShift using Developer Launcher Expand section "1.2. Application Development on Red Hat OpenShift using Developer Launcher" Collapse section "1.2. Application Development on Red Hat OpenShift using Developer Launcher" 1.2.1. Supported Architectures by Thorntail 1.2.2. Introduction to example applications 2. Downloading and deploying applications using Developer Launcher Expand section "2. Downloading and deploying applications using Developer Launcher" Collapse section "2. Downloading and deploying applications using Developer Launcher" 2.1. Working with Developer Launcher 2.2. Downloading the example applications using Developer Launcher 2.3. Deploying an example application on OpenShift Container Platform or CDK (Minishift) 3. Developing and deploying Thorntail application Expand section "3. Developing and deploying Thorntail application" Collapse section "3. Developing and deploying Thorntail application" 3.1. Creating an application from scratch 3.2. Deploying Thorntail application to OpenShift Expand section "3.2. Deploying Thorntail application to OpenShift" Collapse section "3.2. Deploying Thorntail application to OpenShift" 3.2.1. Supported Java images for Thorntail Expand section "3.2.1. Supported Java images for Thorntail" Collapse section "3.2.1. Supported Java images for Thorntail" 3.2.1.1. Images on x86_64 architecture 3.2.1.2. Images on s390x (IBM Z) architecture 3.2.1.3. Images on ppc64le (IBM Power Systems) architecture 3.2.2. Preparing Thorntail application for OpenShift deployment 3.2.3. Deploying Thorntail application to OpenShift using OpenShift Maven plugin 3.3. Deploying Thorntail application to stand-alone Red Hat Enterprise Linux Expand section "3.3. Deploying Thorntail application to stand-alone Red Hat Enterprise Linux" Collapse section "3.3. Deploying Thorntail application to stand-alone Red Hat Enterprise Linux" 3.3.1. Preparing Thorntail application for stand-alone Red Hat Enterprise Linux deployment 3.3.2. Deploying Thorntail application to stand-alone Red Hat Enterprise Linux using jar 4. Using Thorntail Maven Plugin Expand section "4. Using Thorntail Maven Plugin" Collapse section "4. Using Thorntail Maven Plugin" 4.1. Thorntail Maven plugin general usage 4.2. Thorntail Maven plugin goals 4.3. Thorntail Maven plugin configuration options 4.4. Thorntail Maven plugin configuration properties 5. Using Thorntail fractions Expand section "5. Using Thorntail fractions" Collapse section "5. Using Thorntail fractions" 5.1. Fractions 5.2. Auto-detecting fractions 5.3. Using explicit fractions 6. Using a BOM Expand section "6. Using a BOM" Collapse section "6. Using a BOM" 6.1. Thorntail product BOM types 6.2. Specifying a BOM for in your application 7. Accessing logs on your Thorntail application Expand section "7. Accessing logs on your Thorntail application" Collapse section "7. Accessing logs on your Thorntail application" 7.1. Enabling logging 7.2. Logging to a file 8. Configuring a Thorntail application Expand section "8. Configuring a Thorntail application" Collapse section "8. Configuring a Thorntail application" 8.1. System properties Expand section "8.1. System properties" Collapse section "8.1. System properties" 8.1.1. Commonly used system properties 8.1.2. Application configuration using system properties 8.1.3. Setting system properties using the Maven plugin 8.1.4. Setting system properties using the command line 8.1.5. Specifying external JDBC drivers 8.2. Environment Variables Expand section "8.2. Environment Variables" Collapse section "8.2. Environment Variables" 8.2.1. Application configuration using environment variables 8.3. YAML files Expand section "8.3. YAML files" Collapse section "8.3. YAML files" 8.3.1. The general YAML file format 8.3.2. Default Thorntail YAML Files 8.3.3. Non-default Thorntail YAML configuration files 9. Packaging your application Expand section "9. Packaging your application" Collapse section "9. Packaging your application" 9.1. Packaging Types Expand section "9.1. Packaging Types" Collapse section "9.1. Packaging Types" 9.1.1. Uberjar 9.1.2. Hollow JAR Expand section "9.1.2. Hollow JAR" Collapse section "9.1.2. Hollow JAR" 9.1.2.1. Pre-Built Hollow JARs 9.2. Creating an uberjar 10. Testing your application Expand section "10. Testing your application" Collapse section "10. Testing your application" 10.1. Testing in a container 11. Debugging your application Expand section "11. Debugging your application" Collapse section "11. Debugging your application" 11.1. Remote debugging Expand section "11.1. Remote debugging" Collapse section "11.1. Remote debugging" 11.1.1. Starting your application locally in debugging mode 11.1.2. Starting an uberjar in debugging mode 11.1.3. Starting your application on OpenShift in debugging mode 11.1.4. Attaching a remote debugger to the application 11.2. Debug logging Expand section "11.2. Debug logging" Collapse section "11.2. Debug logging" 11.2.1. Local debug logging 11.2.2. Accessing debug logs on OpenShift 12. Monitoring your application Expand section "12. Monitoring your application" Collapse section "12. Monitoring your application" 12.1. Accessing JVM metrics for your application on OpenShift Expand section "12.1. Accessing JVM metrics for your application on OpenShift" Collapse section "12.1. Accessing JVM metrics for your application on OpenShift" 12.1.1. Accessing JVM metrics using Jolokia on OpenShift 12.2. Application metrics Expand section "12.2. Application metrics" Collapse section "12.2. Application metrics" 12.2.1. What are metrics 12.2.2. Exposing application metrics 13. Available examples for Thorntail Expand section "13. Available examples for Thorntail" Collapse section "13. Available examples for Thorntail" 13.1. REST API Level 0 example for Thorntail Expand section "13.1. REST API Level 0 example for Thorntail" Collapse section "13.1. REST API Level 0 example for Thorntail" 13.1.1. REST API Level 0 design tradeoffs 13.1.2. Deploying the REST API Level 0 example application to OpenShift Online Expand section "13.1.2. Deploying the REST API Level 0 example application to OpenShift Online" Collapse section "13.1.2. Deploying the REST API Level 0 example application to OpenShift Online" 13.1.2.1. Deploying the example application using developers.redhat.com/launch 13.1.2.2. Authenticating the oc CLI client 13.1.2.3. Deploying the REST API Level 0 example application using the oc CLI client 13.1.3. Deploying the REST API Level 0 example application to Minishift or CDK Expand section "13.1.3. Deploying the REST API Level 0 example application to Minishift or CDK" Collapse section "13.1.3. Deploying the REST API Level 0 example application to Minishift or CDK" 13.1.3.1. Getting the Launcher tool URL and credentials 13.1.3.2. Deploying the example application using the Launcher tool 13.1.3.3. Authenticating the oc CLI client 13.1.3.4. Deploying the REST API Level 0 example application using the oc CLI client 13.1.4. Deploying the REST API Level 0 example application to OpenShift Container Platform 13.1.5. Interacting with the unmodified REST API Level 0 example application for Thorntail 13.1.6. Running the REST API Level 0 example application integration tests 13.1.7. REST resources 13.2. Externalized Configuration example for Thorntail Expand section "13.2. Externalized Configuration example for Thorntail" Collapse section "13.2. Externalized Configuration example for Thorntail" 13.2.1. The externalized configuration design pattern 13.2.2. Externalized Configuration design tradeoffs 13.2.3. Deploying the Externalized Configuration example application to OpenShift Online Expand section "13.2.3. Deploying the Externalized Configuration example application to OpenShift Online" Collapse section "13.2.3. Deploying the Externalized Configuration example application to OpenShift Online" 13.2.3.1. Deploying the example application using developers.redhat.com/launch 13.2.3.2. Authenticating the oc CLI client 13.2.3.3. Deploying the Externalized Configuration example application using the oc CLI client 13.2.4. Deploying the Externalized Configuration example application to Minishift or CDK Expand section "13.2.4. Deploying the Externalized Configuration example application to Minishift or CDK" Collapse section "13.2.4. Deploying the Externalized Configuration example application to Minishift or CDK" 13.2.4.1. Getting the Launcher tool URL and credentials 13.2.4.2. Deploying the example application using the Launcher tool 13.2.4.3. Authenticating the oc CLI client 13.2.4.4. Deploying the Externalized Configuration example application using the oc CLI client 13.2.5. Deploying the Externalized Configuration example application to OpenShift Container Platform 13.2.6. Interacting with the unmodified Externalized Configuration example application for Thorntail 13.2.7. Running the Externalized Configuration example application integration tests 13.2.8. Externalized Configuration resources 13.3. Relational Database Backend example for Thorntail Expand section "13.3. Relational Database Backend example for Thorntail" Collapse section "13.3. Relational Database Backend example for Thorntail" 13.3.1. Relational Database Backend design tradeoffs 13.3.2. Deploying the Relational Database Backend example application to OpenShift Online Expand section "13.3.2. Deploying the Relational Database Backend example application to OpenShift Online" Collapse section "13.3.2. Deploying the Relational Database Backend example application to OpenShift Online" 13.3.2.1. Deploying the example application using developers.redhat.com/launch 13.3.2.2. Authenticating the oc CLI client 13.3.2.3. Deploying the Relational Database Backend example application using the oc CLI client 13.3.3. Deploying the Relational Database Backend example application to Minishift or CDK Expand section "13.3.3. Deploying the Relational Database Backend example application to Minishift or CDK" Collapse section "13.3.3. Deploying the Relational Database Backend example application to Minishift or CDK" 13.3.3.1. Getting the Launcher tool URL and credentials 13.3.3.2. Deploying the example application using the Launcher tool 13.3.3.3. Authenticating the oc CLI client 13.3.3.4. Deploying the Relational Database Backend example application using the oc CLI client 13.3.4. Deploying the Relational Database Backend example application to OpenShift Container Platform 13.3.5. Interacting with the Relational Database Backend API 13.3.6. Running the Relational Database Backend example application integration tests 13.3.7. Relational database resources 13.4. Health Check example for Thorntail Expand section "13.4. Health Check example for Thorntail" Collapse section "13.4. Health Check example for Thorntail" 13.4.1. Health check concepts 13.4.2. Deploying the Health Check example application to OpenShift Online Expand section "13.4.2. Deploying the Health Check example application to OpenShift Online" Collapse section "13.4.2. Deploying the Health Check example application to OpenShift Online" 13.4.2.1. Deploying the example application using developers.redhat.com/launch 13.4.2.2. Authenticating the oc CLI client 13.4.2.3. Deploying the Health Check example application using the oc CLI client 13.4.3. Deploying the Health Check example application to Minishift or CDK Expand section "13.4.3. Deploying the Health Check example application to Minishift or CDK" Collapse section "13.4.3. Deploying the Health Check example application to Minishift or CDK" 13.4.3.1. Getting the Launcher tool URL and credentials 13.4.3.2. Deploying the example application using the Launcher tool 13.4.3.3. Authenticating the oc CLI client 13.4.3.4. Deploying the Health Check example application using the oc CLI client 13.4.4. Deploying the Health Check example application to OpenShift Container Platform 13.4.5. Interacting with the unmodified Health Check example application 13.4.6. Running the Health Check example application integration tests 13.4.7. Health check resources 13.5. Circuit Breaker example for Thorntail Expand section "13.5. Circuit Breaker example for Thorntail" Collapse section "13.5. Circuit Breaker example for Thorntail" 13.5.1. The circuit breaker design pattern 13.5.2. Circuit Breaker design tradeoffs 13.5.3. Deploying the Circuit Breaker example application to OpenShift Online Expand section "13.5.3. Deploying the Circuit Breaker example application to OpenShift Online" Collapse section "13.5.3. Deploying the Circuit Breaker example application to OpenShift Online" 13.5.3.1. Deploying the example application using developers.redhat.com/launch 13.5.3.2. Authenticating the oc CLI client 13.5.3.3. Deploying the Circuit Breaker example application using the oc CLI client 13.5.4. Deploying the Circuit Breaker example application to Minishift or CDK Expand section "13.5.4. Deploying the Circuit Breaker example application to Minishift or CDK" Collapse section "13.5.4. Deploying the Circuit Breaker example application to Minishift or CDK" 13.5.4.1. Getting the Launcher tool URL and credentials 13.5.4.2. Deploying the example application using the Launcher tool 13.5.4.3. Authenticating the oc CLI client 13.5.4.4. Deploying the Circuit Breaker example application using the oc CLI client 13.5.5. Deploying the Circuit Breaker example application to OpenShift Container Platform 13.5.6. Interacting with the unmodified Thorntail Circuit Breaker example application 13.5.7. Running the Circuit Breaker example application integration tests 13.5.8. Circuit breaker resources 13.6. Secured example application for Thorntail Expand section "13.6. Secured example application for Thorntail" Collapse section "13.6. Secured example application for Thorntail" 13.6.1. The Secured project structure 13.6.2. Red Hat SSO deployment configuration 13.6.3. Red Hat SSO realm model Expand section "13.6.3. Red Hat SSO realm model" Collapse section "13.6.3. Red Hat SSO realm model" 13.6.3.1. Red Hat SSO users 13.6.3.2. The application clients 13.6.4. Thorntail SSO adapter configuration 13.6.5. Deploying the Secured example application to Minishift or CDK Expand section "13.6.5. Deploying the Secured example application to Minishift or CDK" Collapse section "13.6.5. Deploying the Secured example application to Minishift or CDK" 13.6.5.1. Getting the Launcher tool URL and credentials 13.6.5.2. Creating the Secured example application using Launcher 13.6.5.3. Authenticating the oc CLI client 13.6.5.4. Deploying the Secured example application using the oc CLI client 13.6.6. Deploying the Secured example application to OpenShift Container Platform Expand section "13.6.6. Deploying the Secured example application to OpenShift Container Platform" Collapse section "13.6.6. Deploying the Secured example application to OpenShift Container Platform" 13.6.6.1. Authenticating the oc CLI client 13.6.6.2. Deploying the Secured example application using the oc CLI client 13.6.7. Authenticating to the Secured example application API endpoint Expand section "13.6.7. Authenticating to the Secured example application API endpoint" Collapse section "13.6.7. Authenticating to the Secured example application API endpoint" 13.6.7.1. Getting the Secured example application API endpoint 13.6.7.2. Authenticating HTTP requests using the command line 13.6.7.3. Authenticating HTTP requests using the web interface 13.6.8. Running the Thorntail Secured example application integration tests 13.6.9. Secured SSO resources 13.7. Cache example for Thorntail Expand section "13.7. Cache example for Thorntail" Collapse section "13.7. Cache example for Thorntail" 13.7.1. How caching works and when you need it 13.7.2. Deploying the Cache example application to OpenShift Online Expand section "13.7.2. Deploying the Cache example application to OpenShift Online" Collapse section "13.7.2. Deploying the Cache example application to OpenShift Online" 13.7.2.1. Deploying the example application using developers.redhat.com/launch 13.7.2.2. Authenticating the oc CLI client 13.7.2.3. Deploying the Cache example application using the oc CLI client 13.7.3. Deploying the Cache example application to Minishift or CDK Expand section "13.7.3. Deploying the Cache example application to Minishift or CDK" Collapse section "13.7.3. Deploying the Cache example application to Minishift or CDK" 13.7.3.1. Getting the Launcher tool URL and credentials 13.7.3.2. Deploying the example application using the Launcher tool 13.7.3.3. Authenticating the oc CLI client 13.7.3.4. Deploying the Cache example application using the oc CLI client 13.7.4. Deploying the Cache example application to OpenShift Container Platform 13.7.5. Interacting with the unmodified Cache example application 13.7.6. Running the Cache example application integration tests 13.7.7. Caching resources A. The Source-to-Image (S2I) build process B. Updating the deployment configuration of an example application C. Configuring a Jenkins freestyle project to deploy your application with the OpenShift Maven plugin D. Thorntail fractions reference Expand section "D. Thorntail fractions reference" Collapse section "D. Thorntail fractions reference" D.1. Archaius D.2. Bean Validation D.3. CDI Expand section "D.3. CDI" Collapse section "D.3. CDI" D.3.1. CDI Configuration D.4. Connector D.5. Container D.6. Datasources Expand section "D.6. Datasources" Collapse section "D.6. Datasources" D.6.1. Autodetectable drivers D.6.2. Example datasource definitions Expand section "D.6.2. Example datasource definitions" Collapse section "D.6.2. Example datasource definitions" D.6.2.1. MySQL D.6.2.2. PostgreSQL D.6.2.3. Oracle D.7. Discovery D.8. EE Expand section "D.8. EE" Collapse section "D.8. EE" D.8.1. EE Security D.9. EJB Expand section "D.9. EJB" Collapse section "D.9. EJB" D.9.1. EJB MDB D.10. Elytron D.11. Hibernate Expand section "D.11. Hibernate" Collapse section "D.11. Hibernate" D.11.1. Hibernate Validator D.12. Hystrix D.13. Infinispan D.14. IO D.15. Jaeger D.16. JAX-RS Expand section "D.16. JAX-RS" Collapse section "D.16. JAX-RS" D.16.1. JAX-RS + CDI D.16.2. JAX-RS + JAXB D.16.3. JAX-RS + JSON-B D.16.4. JAX-RS + JSON-P D.16.5. JAX-RS + Multipart D.16.6. JAX-RS + Validator D.17. JCA D.18. JMX D.19. JPA D.20. JSF D.21. JSON-B D.22. JSON-P D.23. Keycloak D.24. Logging D.25. Management D.26. MicroProfile Expand section "D.26. MicroProfile" Collapse section "D.26. MicroProfile" D.26.1. Note about YAML configuration D.26.2. MicroProfile Config D.26.3. MicroProfile Fault Tolerance Expand section "D.26.3. MicroProfile Fault Tolerance" Collapse section "D.26.3. MicroProfile Fault Tolerance" D.26.3.1. Configuration D.26.4. MicroProfile Health D.26.5. MicroProfile JWT RBAC Auth D.26.6. MicroProfile Metrics D.26.7. MicroProfile OpenAPI D.26.8. MicroProfile OpenTracing D.26.9. MicroProfile Rest Client Expand section "D.26.9. MicroProfile Rest Client" Collapse section "D.26.9. MicroProfile Rest Client" D.26.9.1. CDI Interceptors Support D.26.9.2. RestClientProxy D.27. Monitor D.28. MSC D.29. Naming D.30. RX-Java D.31. OpenTracing Expand section "D.31. OpenTracing" Collapse section "D.31. OpenTracing" D.31.1. OpenTracing TracerResolver D.32. Remoting D.33. Request Controller D.34. Resource Adapters D.35. Security D.36. Topology Expand section "D.36. Topology" Collapse section "D.36. Topology" D.36.1. OpenShift D.36.2. Topology UI D.37. Transactions D.38. Undertow D.39. Web E. Additional Thorntail resources F. Application development resources G. Proficiency levels H. Glossary Expand section "H. Glossary" Collapse section "H. Glossary" H.1. Product and project names H.2. Terms specific to Developer Launcher Legal Notice Settings Close Language: 日本語 English Language: 日本語 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Language and Page Formatting Options Language: 日本語 English Language: 日本語 English Format: Multi-page Single-page PDF Format: Multi-page Single-page PDF Preface This guide covers concepts as well as practical details needed by developers to use the Thorntail runtime. Previous Next