spring-boot/spring-boot-samples
Andy Wilkinson e0d67ae703 Avoid Atmosphere using a null URL to create a URLClassLoader
Unlike Java 8, 9, and 10, Java 11 does not tolerate a null URL being
used to create a URLClassLoader. The Atmosphere sample looks for
a resource named /WEB-INF/classes which only exists in a packaged
war application. In all other cases the resulting URL is null.
Atmosphere uses this to create a URLClassLoader which fails on Java
11.

This commit updates the sample to customize the handlers path. There
are other web application-specific assumptions in Atmosphere, such as
the scanning of WEB-INF/lib by default. This change appears to get
the sample going, but we should, perhaps, consider removing it in the
longer term, particularly as Boot itself has no Atmosphere
integration.

See gh-14028
2018-08-15 08:34:24 +01:00
..
spring-boot-sample-activemq Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-actuator Merge branch '2.0.x' 2018-07-25 11:48:20 +02:00
spring-boot-sample-actuator-custom-security Polish 2018-03-14 14:05:26 -07:00
spring-boot-sample-actuator-log4j2 Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-actuator-noweb Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-actuator-ui Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-amqp Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-animated-banner
spring-boot-sample-ant Fixup version numbers following release 2018-06-14 12:34:39 +02:00
spring-boot-sample-aop Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-atmosphere Avoid Atmosphere using a null URL to create a URLClassLoader 2018-08-15 08:34:24 +01:00
spring-boot-sample-batch Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-cache Merge branch '2.0.x' 2018-07-25 12:02:11 +02:00
spring-boot-sample-custom-layout Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-data-cassandra Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-data-couchbase Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-data-elasticsearch Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-data-jpa Polish copyright date on changed files 2018-07-29 09:29:29 +01:00
spring-boot-sample-data-ldap Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-data-mongodb Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-data-neo4j Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-data-redis Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-data-rest Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-data-solr Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-devtools Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-flyway Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-hateoas Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-integration Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-jersey Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-jetty Support Tomcat 9 and Undertow 2 2018-06-28 11:33:30 +01:00
spring-boot-sample-jetty-jsp Support Tomcat 9 and Undertow 2 2018-06-28 11:33:30 +01:00
spring-boot-sample-jetty-ssl Support Tomcat 9 and Undertow 2 2018-06-28 11:33:30 +01:00
spring-boot-sample-jooq Upgrade to Jooq 3.11.2 2018-07-03 17:30:48 +01:00
spring-boot-sample-jpa Remove Surefire workarounds that are not needed with 2.21 2018-04-05 07:48:09 +01:00
spring-boot-sample-jta-atomikos Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-jta-bitronix Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-jta-jndi Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-jta-narayana Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-junit-jupiter Annotate our test annotations with @ExtendWith(SpringExtension.class) 2018-07-11 17:25:21 +01:00
spring-boot-sample-kafka Remove the use of a bean override form SampleKafkaApplicationTests 2018-07-10 21:17:02 +01:00
spring-boot-sample-liquibase Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-logback Fixup version numbers following release 2018-06-14 12:34:39 +02:00
spring-boot-sample-oauth2-client Polish 2018-07-18 09:53:09 +02:00
spring-boot-sample-oauth2-resource-server Fix checkstyle rule 2018-08-08 10:33:34 +02:00
spring-boot-sample-parent-context Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-profile Fixup version numbers following release 2018-06-14 12:34:39 +02:00
spring-boot-sample-property-validation Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-quartz Fix checkstyle violations 2018-05-25 23:03:17 -07:00
spring-boot-sample-reactive-oauth2-client Add support for OIDC Configuration Provider 2018-07-17 16:02:03 -07:00
spring-boot-sample-reactive-oauth2-resource-server Fix checkstyle rule 2018-08-08 13:04:08 +02:00
spring-boot-sample-secure Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-secure-webflux Make /health and /info insecure by default 2018-07-13 13:35:52 -07:00
spring-boot-sample-servlet Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-session Upgrade to Hazelcast 3.10.1 2018-06-01 09:30:42 +02:00
spring-boot-sample-session-webflux Revert "Ignore test affect by a regression in Spring Data Lovelace" 2018-07-17 11:33:14 +02:00
spring-boot-sample-simple Fixup version numbers following release 2018-06-14 12:34:39 +02:00
spring-boot-sample-test Polish copyright date on changed files 2018-07-29 09:29:29 +01:00
spring-boot-sample-test-nomockito Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-testng Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-tomcat Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-tomcat-jsp Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-tomcat-multi-connectors Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-tomcat-ssl Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-traditional Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-undertow Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-undertow-ssl Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-war Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-web-freemarker Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-web-groovy-templates Make JAXB API available to Groovy Templates when running on Java 9+ 2018-07-11 09:15:34 +01:00
spring-boot-sample-web-jsp Polish 2018-07-16 10:34:00 +02:00
spring-boot-sample-web-method-security Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-web-mustache Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-web-secure Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-web-secure-custom Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-web-secure-jdbc Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-web-static Fixup version numbers following release 2018-06-14 12:34:39 +02:00
spring-boot-sample-web-ui Fixup version numbers following release 2018-06-14 12:34:39 +02:00
spring-boot-sample-webflux Switch to functional web code to use static imports 2018-06-04 17:27:34 -07:00
spring-boot-sample-webservices Next Development Version 2018-06-14 10:05:31 +00:00
spring-boot-sample-websocket-jetty Fix checkstyle issues in samples 2018-07-28 10:41:56 +01:00
spring-boot-sample-websocket-tomcat Fix checkstyle issues in samples 2018-07-28 10:41:56 +01:00
spring-boot-sample-websocket-undertow Fix checkstyle issues in samples 2018-07-28 10:41:56 +01:00
spring-boot-sample-xml Next Development Version 2018-06-14 10:05:31 +00:00
pom.xml Remove duplicate sample from modules 2018-08-07 23:43:58 -07:00
README.adoc Add missing samples to pom and README 2018-08-07 21:05:15 -07:00

= Spring Boot Samples

The following sample applications are provided:

|===
| Sample | Description

| link:spring-boot-sample-activemq[spring-boot-sample-activemq]
| JMS consumer and producer using Apache ActiveMQ

| link:spring-boot-sample-actuator[spring-boot-sample-actuator]
| REST service with production-ready features

| link:spring-boot-sample-actuator-log4j2[spring-boot-sample-actuator-log4j2]
| Production-ready features using log4j 2 for logging (instead of logback)

| link:spring-boot-sample-actuator-noweb[spring-boot-sample-actuator-noweb]
| Non-web application with production-ready features

| link:spring-boot-sample-actuator-ui[spring-boot-sample-actuator-ui]
| Web UI example with production-ready features

| link:spring-boot-sample-amqp[spring-boot-sample-amqp]
| Message-oriented application using AMQP and RabbitMQ

| link:spring-boot-sample-ant[spring-boot-sample-ant]
| Executable JAR build using Ant

| link:spring-boot-sample-aop[spring-boot-sample-aop]
| Demonstrates explicit usage of Spring AOP

| link:spring-boot-sample-atmosphere[spring-boot-sample-atmosphere]
| Chat service built using Atmosphere

| link:spring-boot-sample-batch[spring-boot-sample-batch]
| Define and run a Batch job in a few lines of code

| link:spring-boot-sample-cache[spring-boot-sample-cache]
| Web application that uses Spring's cache abstraction

| link:spring-boot-sample-custom-layout[spring-boot-sample-custom-layout]
| Creates custom Jar Layout

| link:spring-boot-sample-data-cassandra[spring-boot-sample-data-cassandra]
| Stores data using Spring Data Cassandra

| link:spring-boot-sample-data-couchbase[spring-boot-sample-data-couchbase]
| Stores data using Spring Data Couchbase

| link:spring-boot-sample-data-elasticsearch[spring-boot-sample-data-elasticsearch]
| Stores data using Spring Data Elasticsearch

| link:spring-boot-sample-data-jpa[spring-boot-sample-data-jpa]
| Stores data using Spring Data JPA with Hibernate

| link:spring-boot-sample-data-ldap[spring-boot-sample-data-ldap]
| Stores data using Spring Data LDAP

| link:spring-boot-sample-data-mongodb[spring-boot-sample-data-mongodb]
| Stores data using Spring Data MongoDB

| link:spring-boot-sample-data-neo4j[spring-boot-sample-data-neo4j]
| Stores data using Spring Data Neo4j

| link:spring-boot-sample-data-redis[spring-boot-sample-data-redis]
| Stores data using Spring Data Redis

| link:spring-boot-sample-data-rest[spring-boot-sample-data-rest]
| RESTful service built using Spring Data REST

| link:spring-boot-sample-data-solr[spring-boot-sample-data-solr]
| Stores data using Spring Data Solr

| link:spring-boot-sample-devtools[spring-boot-sample-devtools]
| Using DevTools for rapid application development

| link:spring-boot-sample-flyway[spring-boot-sample-flyway]
| Database migrations with Flyway

| link:spring-boot-sample-hateoas[spring-boot-sample-hateoas]
| RESTful API built using Spring Hateoas

| link:spring-boot-sample-integration[spring-boot-sample-integration]
| Integration application built using Spring Integration and its Java DSL

| link:spring-boot-sample-jersey[spring-boot-sample-jersey]
| RESTful service built using Jersey

| link:spring-boot-sample-jetty[spring-boot-sample-jetty]
| Embedded Jetty

| link:spring-boot-sample-jetty-ssl[spring-boot-sample-jetty-ssl]
| Embedded Jetty configured to use SSL

| link:spring-boot-sample-jetty-jsp[spring-boot-sample-jetty-jsp]
| Web application that uses JSP templates with Jetty

| link:spring-boot-sample-jooq[spring-boot-sample-jooq]
| Stores data using jOOQ

| link:spring-boot-sample-jpa[spring-boot-sample-jpa]
| Uses plain JPA (Hibernate)

| link:spring-boot-sample-jta-atomikos[spring-boot-sample-jta-atomikos]
| JTA transactions with Atomikos

| link:spring-boot-sample-jta-bitronix[spring-boot-sample-jta-bitronix]
| JTA transactions with Bitronix

| link:spring-boot-sample-jta-jndi[spring-boot-sample-jta-jndi]
| JTA transactions using a `TransactionManager` and `DataSource` from JNDI

| link:spring-boot-sample-jta-narayana[spring-boot-sample-jta-narayana]
| JTA transactions with Narayana

| link:spring-boot-sample-junit-jupiter[spring-boot-sample-junit-jupiter]
| Demonstrates JUnit Jupiter-based testing

| link:spring-boot-sample-kafka[spring-boot-sample-kafka]
| Consumer and producer using Apache Kafka

| link:spring-boot-sample-liquibase[spring-boot-sample-liquibase]
| Database migrations with Liquibase

| link:spring-boot-sample-logback[spring-boot-sample-logback]
| Demonstrates Spring Boot's custom Logback functionality configured in logback-spring.xml

| link:spring-boot-sample-metrics-dropwizard[spring-boot-sample-metrics-dropwizard]
| Demonstrates support for Dropwizard metrics

| link:spring-boot-sample-metrics-opentsdb[spring-boot-sample-metrics-opentsdb]
| Exports metrics to OpenTSDB

| link:spring-boot-sample-metrics-redis[spring-boot-sample-metrics-redis]
| Exports metrics to Redis

| link:spring-boot-sample-oauth2-client[spring-boot-sample-oauth2-client]
| Configure an OAuth2 login client

| link:spring-boot-sample-reactive-oauth2-client[spring-boot-sample-reactive-oauth2-client]
| Configure a Reactive OAuth2 login client

| link:spring-boot-sample-oauth2-resource-server[spring-boot-sample-oauth2-resource-server]
| Configure an OAuth2 resource server

| link:spring-boot-sample-reactive-oauth2-resource-server[spring-boot-sample-reactive-oauth2-resource-server]
| Configure a Reactive OAuth2 resource server

| link:spring-boot-sample-parent-context[spring-boot-sample-parent-context]
| Application that uses an `ApplicationContext` with a parent

| link:spring-boot-sample-profile[spring-boot-sample-profile]
| Demonstrates some of Spring Framework's `@Profile` capabilities

| link:spring-boot-sample-property-validation[spring-boot-sample-property-validation]
| Demonstrates the usage of `@ConfigurationProperties` with a Spring `Validator`

| link:spring-boot-sample-secure[spring-boot-sample-secure]
| Non-web application that uses Spring Security

| link:spring-boot-sample-servlet[spring-boot-sample-servlet]
| Web application with a "raw" `Servlet` returning plain text content

| link:spring-boot-sample-session[spring-boot-sample-session]
| Web Application that uses Spring Session to manage session data

| link:spring-boot-sample-simple[spring-boot-sample-simple]
| Simple command line application

| link:spring-boot-sample-test[spring-boot-sample-test]
| Demonstrates Spring Boot's testing capabilities

| link:spring-boot-sample-testng[spring-boot-sample-testng]
| Demonstrates TestNG-based testing

| link:spring-boot-sample-tomcat[spring-boot-sample-tomcat]
| Embedded Tomcat

| link:spring-boot-sample-tomcat-jsp[spring-boot-sample-tomcat-jsp]
| Web application that uses JSP templates with Tomcat

| link:spring-boot-sample-tomcat-multi-connectors[spring-boot-sample-tomcat-multi-connectors]
| Web application that uses Tomcat configured with multiple connectors

| link:spring-boot-sample-tomcat-ssl[spring-boot-sample-tomcat-ssl]
| Web application that uses Tomcat configured with SSL

| link:spring-boot-sample-traditional[spring-boot-sample-traditional]
| Traditional WAR packaging  (but also executable using `java -jar`)

| link:spring-boot-sample-undertow[spring-boot-sample-undertow]
| Embedded Undertow

| link:spring-boot-sample-undertow-ssl[spring-boot-sample-undertow-ssl]
| Embedded Undertow configured to use SSL

| link:spring-boot-sample-war[spring-boot-sample-war]
| Web application packaged as a war file

| link:spring-boot-sample-web-freemarker[spring-boot-sample-web-freemarker]
| Web application that uses FreeMarker templates

| link:spring-boot-sample-web-groovy-templates[spring-boot-sample-web-groovy-templates]
| Web application that uses Groovy templates

| link:spring-boot-sample-web-jsp[spring-boot-sample-web-jsp]
| Web application that uses JSP templates

| link:spring-boot-sample-web-method-security[spring-boot-sample-web-method-security]
| Web application with Security configuration enabling global method security

| link:spring-boot-sample-web-mustache[spring-boot-sample-web-mustache]
| Web application that uses Mustache views

| link:spring-boot-sample-web-secure[spring-boot-sample-web-secure]
| Web application with typical Security configuration enabling a login form

| link:spring-boot-sample-web-secure-custom[spring-boot-sample-web-secure-custom]
| Web application with custom Spring Security configuration

| link:spring-boot-sample-web-secure-jdbc[spring-boot-sample-web-secure-jdbc]
| Web application with Spring Security configured to use JDBC authentication

| link:spring-boot-sample-web-static[spring-boot-sample-web-static]
| Web application that serves static files

| link:spring-boot-sample-web-ui[spring-boot-sample-web-ui]
| Web application with a basic UI built using Bootstrap and JQuery

| link:spring-boot-sample-webservices[spring-boot-sample-webservices]
| Simple contract-first SOAP web service with Spring Web Services

| link:spring-boot-sample-websocket-jetty[spring-boot-sample-websocket-jetty]
| WebSocket application that uses Jetty

| link:spring-boot-sample-websocket-tomcat[spring-boot-sample-websocket-tomcat]
| WebSocket application that uses Tomcat

| link:spring-boot-sample-websocket-undertow[spring-boot-sample-websocket-undertow]
| WebSocket application that uses Undertow

| link:spring-boot-sample-xml[spring-boot-sample-xml]
| Example show how Spring Boot can be mixed with traditional XML configuration (we
  generally recommend using Java `@Configuration` whenever possible