diff --git a/akka-http/pom.xml b/akka-http/pom.xml new file mode 100644 index 0000000000..51e70fb583 --- /dev/null +++ b/akka-http/pom.xml @@ -0,0 +1,48 @@ + + + + 4.0.0 + akka-http + akka-http + + + parent-modules + com.baeldung + 1.0.0-SNAPSHOT + + + + + com.typesafe.akka + akka-http_2.12 + ${akka.http.version} + + + com.typesafe.akka + akka-stream_2.12 + 2.5.11 + + + com.typesafe.akka + akka-http-jackson_2.12 + ${akka.http.version} + + + com.typesafe.akka + akka-http-testkit_2.12 + ${akka.http.version} + test + + + + + UTF-8 + UTF-8 + 1.8 + 10.0.11 + 2.5.11 + + diff --git a/akka-http/src/main/java/com/baeldung/akkahttp/User.java b/akka-http/src/main/java/com/baeldung/akkahttp/User.java new file mode 100644 index 0000000000..9b5b95ebc1 --- /dev/null +++ b/akka-http/src/main/java/com/baeldung/akkahttp/User.java @@ -0,0 +1,30 @@ +package com.baeldung.akkahttp; + +/** + * User Entity + * + */ +public class User { + + private final String name; + private final String address; + + public User() { + this.name = ""; + this.address = ""; + } + + public User(String name, String address) { + this.name = name; + this.address = address; + } + + public String getName() { + return name; + } + + public String getAddress() { + return address; + } + +} \ No newline at end of file diff --git a/akka-http/src/main/java/com/baeldung/akkahttp/UserActor.java b/akka-http/src/main/java/com/baeldung/akkahttp/UserActor.java new file mode 100644 index 0000000000..431014a88b --- /dev/null +++ b/akka-http/src/main/java/com/baeldung/akkahttp/UserActor.java @@ -0,0 +1,41 @@ +package com.baeldung.akkahttp; + +import akka.actor.AbstractActor; +import akka.actor.Props; +import akka.japi.pf.FI; +import com.baeldung.akkahttp.UserMessages.ActionPerformed; +import com.baeldung.akkahttp.UserMessages.CreateUserMessage; +import com.baeldung.akkahttp.UserMessages.GetUserMessage; + + +class UserActor extends AbstractActor { + + private UserService userService = new UserService(); + + static Props props() { + return Props.create(UserActor.class); + } + + @Override + public Receive createReceive() { + return receiveBuilder() + .match(CreateUserMessage.class, handleCreateUser()) + .match(GetUserMessage.class, handleGetUser()) + .build(); + } + + private FI.UnitApply handleCreateUser() { + return createUserMessageMessage -> { + userService.createUser(createUserMessageMessage.getUser()); + sender().tell(new ActionPerformed(String.format("User %s created.", createUserMessageMessage.getUser() + .getName())), getSelf()); + }; + } + + private FI.UnitApply handleGetUser() { + return getUserMessageMessage -> { + sender().tell(userService.getUser(getUserMessageMessage.getUserId()), getSelf()); + }; + } + +} diff --git a/akka-http/src/main/java/com/baeldung/akkahttp/UserMessages.java b/akka-http/src/main/java/com/baeldung/akkahttp/UserMessages.java new file mode 100644 index 0000000000..1f88e5f646 --- /dev/null +++ b/akka-http/src/main/java/com/baeldung/akkahttp/UserMessages.java @@ -0,0 +1,72 @@ +package com.baeldung.akkahttp; + +import java.io.Serializable; + +/** + * Defines all messages related to User Actor + * + */ +public interface UserRegistryMessages { + + class GetUsers implements Serializable { + + private static final long serialVersionUID = 1L; + } + + class ActionPerformed implements Serializable { + + private static final long serialVersionUID = 1L; + + private final String description; + + public ActionPerformed(String description) { + this.description = description; + } + + public String getDescription() { + return description; + } + } + + class CreateUser implements Serializable { + + private static final long serialVersionUID = 1L; + private final User user; + + public CreateUser(User user) { + this.user = user; + } + + public User getUser() { + return user; + } + } + + class GetUser implements Serializable { + + private static final long serialVersionUID = 1L; + private final String name; + + public GetUser(String name) { + this.name = name; + } + + public String getName() { + return name; + } + } + + class DeleteUser implements Serializable { + + private static final long serialVersionUID = 1L; + private final String name; + + public DeleteUser(String name) { + this.name = name; + } + + public String getName() { + return name; + } + } +} diff --git a/akka-http/src/main/java/com/baeldung/akkahttp/UserServer.java b/akka-http/src/main/java/com/baeldung/akkahttp/UserServer.java new file mode 100644 index 0000000000..151c92826d --- /dev/null +++ b/akka-http/src/main/java/com/baeldung/akkahttp/UserServer.java @@ -0,0 +1,72 @@ +package com.baeldung.akkahttp; + +import java.util.Optional; +import java.util.concurrent.CompletionStage; +import java.util.concurrent.TimeUnit; + +import akka.actor.ActorRef; +import akka.http.javadsl.marshallers.jackson.Jackson; +import akka.http.javadsl.model.StatusCodes; +import akka.http.javadsl.server.AllDirectives; +import akka.http.javadsl.server.Route; +import akka.pattern.PatternsCS; +import akka.util.Timeout; +import com.baeldung.akkahttp.UserMessages.ActionPerformed; +import com.baeldung.akkahttp.UserMessages.CreateUser; +import scala.concurrent.duration.Duration; +import static akka.http.javadsl.server.PathMatchers.*; + +class UserRoutes extends AllDirectives { + + private final ActorRef userActor; + + Timeout timeout = new Timeout(Duration.create(5, TimeUnit.SECONDS)); + + UserRoutes(ActorRef userActor) { + this.userActor = userActor; + } + + Route routes() { + return path("users", this::postUser) + .orElse(path(segment("users").slash(longSegment()), id -> + route(getUser(id), + deleteUser(id)))); + } + + private Route getUser(Long id) { + return get(() -> { + CompletionStage> user = PatternsCS.ask(userActor, new UserMessages.GetUser(id), timeout) + .thenApply(obj -> (Optional) obj); + + return onSuccess(() -> user, performed -> { + if (performed.isPresent()) + return complete(StatusCodes.OK, performed.get(), Jackson.marshaller()); + else + return complete(StatusCodes.NOT_FOUND); + }); + }); + } + + private Route deleteUser(Long id) { + return delete(() -> { + CompletionStage userDeleted = PatternsCS.ask(userActor, new UserMessages.DeleteUser(id), timeout) + .thenApply(obj -> (ActionPerformed) obj); + + return onSuccess(() -> userDeleted, performed -> { + return complete(StatusCodes.OK, performed, Jackson.marshaller()); + }); + }); + } + + private Route postUser() { + return route(post(() -> entity(Jackson.unmarshaller(User.class), user -> { + CompletionStage userCreated = PatternsCS.ask(userActor, new CreateUser(user), timeout) + .thenApply(obj -> (ActionPerformed) obj); + + return onSuccess(() -> userCreated, performed -> { + return complete(StatusCodes.CREATED, performed, Jackson.marshaller()); + }); + }))); + } + +} diff --git a/akka-http/src/main/java/com/baeldung/akkahttp/UserService.java b/akka-http/src/main/java/com/baeldung/akkahttp/UserService.java new file mode 100644 index 0000000000..67979dc76e --- /dev/null +++ b/akka-http/src/main/java/com/baeldung/akkahttp/UserService.java @@ -0,0 +1,4 @@ +package com.baeldung.akkahttp; + +public class UserService { +} diff --git a/akka-http/src/test/java/com/baeldung/akkahttp/UserServerUnitTest.java b/akka-http/src/test/java/com/baeldung/akkahttp/UserServerUnitTest.java new file mode 100644 index 0000000000..b61929c801 --- /dev/null +++ b/akka-http/src/test/java/com/baeldung/akkahttp/UserServerUnitTest.java @@ -0,0 +1,50 @@ +package com.baeldung.akkahttp; + +import akka.actor.ActorRef; +import akka.actor.ActorSystem; +import akka.http.javadsl.model.ContentTypes; +import akka.http.javadsl.model.HttpEntities; +import akka.http.javadsl.model.HttpRequest; +import akka.http.javadsl.testkit.JUnitRouteTest; +import akka.http.javadsl.testkit.TestRoute; +import org.junit.Test; + +public class UserRoutesUnitTest extends JUnitRouteTest { + + ActorSystem system = ActorSystem.create("helloAkkaHttpServer"); + + ActorRef userActorRef = system.actorOf(UserActor.props(), "userActor"); + + TestRoute appRoute = testRoute(new UserRoutes(userActorRef).routes()); + + @Test + public void whenRequest_thenActorResponds() { + + appRoute.run(HttpRequest.GET("/users/1")) + .assertEntity(alice()) + .assertStatusCode(200); + + appRoute.run(HttpRequest.GET("/users/42")) + .assertStatusCode(404); + + appRoute.run(HttpRequest.DELETE("/users/1")) + .assertStatusCode(200); + + appRoute.run(HttpRequest.DELETE("/users/42")) + .assertStatusCode(200); + + appRoute.run(HttpRequest.POST("/users") + .withEntity(HttpEntities.create(ContentTypes.APPLICATION_JSON, zaphod()))) + .assertStatusCode(201); + + } + + private String alice() { + return "{\"id\":1,\"name\":\"Alice\"}"; + } + + private String zaphod() { + return "{\"id\":42,\"name\":\"Zaphod\"}"; + } + +} diff --git a/pom.xml b/pom.xml index 4e1e61961e..d0d0fa7049 100644 --- a/pom.xml +++ b/pom.xml @@ -323,242 +323,219 @@ parent-boot-1 - parent-boot-2 - parent-boot-2.0-temp - parent-spring-4 - parent-spring-5 - parent-java - parent-kotlin - - akka-streams - algorithms-genetic - algorithms-miscellaneous-1 - algorithms-miscellaneous-2 - algorithms-sorting - animal-sniffer-mvn-plugin - annotations - antlr - apache-avro - apache-bval - apache-curator - apache-cxf - apache-fop - apache-geode - apache-meecrowave - apache-opennlp - apache-poi - apache-pulsar - apache-shiro - apache-solrj - apache-spark - apache-thrift - apache-tika - apache-velocity - apache-zookeeper - asciidoctor - asm - atomix - autovalue - aws - aws-lambda - axon - azure - - bootique - - cas/cas-secured-app - cas/cas-server - cdi - checker-plugin - core-groovy - - - core-java-8 - - core-java-arrays - core-java-collections - core-java-concurrency-collections - core-java-io - core-java-lang - core-java-networking - core-java-sun - core-scala - couchbase - custom-pmd - - dagger - data-structures - ddd - deeplearning4j - disruptor - dozer - drools - dubbo - - ethereum - - feign - flips - flyway-cdi-extension - - geotools - google-cloud - google-web-toolkit - - - graphql/graphql-java - grpc - gson - guava - guava-collections - guava-modules/guava-18 - guava-modules/guava-19 - guava-modules/guava-21 - - guice - - hazelcast - helidon - httpclient - hystrix - - image-processing - immutables - - jackson - java-collections-conversions - java-collections-maps - - java-ee-8-security-api - java-lite - java-numbers - java-rmi - java-spi - java-streams - java-strings - java-vavr-stream - java-websocket - javafx - javax-servlets - javaxval - jaxb - - jee-7-security - jersey - JGit - jgroups - jhipster - jib - jjwt - jmeter - jmh - jni - jooby - jsf - json - json-path - jsoup - jta - - - kotlin-libraries - - - libraries-data - libraries-security - libraries-server - linkrest - logging-modules/log4j - logging-modules/log4j2 - logging-modules/logback - logging-modules/log-mdc - lombok - lucene - - mapstruct - maven - maven-archetype - - maven-polyglot/maven-polyglot-json-extension - - mesos-marathon - metrics - - microprofile - msf4j - - mustache - mvn-wrapper - mybatis - - noexception - - optaplanner - orika - osgi - - patterns - pdf - performance-tests - - protobuffer - - persistence-modules/activejdbc - persistence-modules/apache-cayenne + parent-boot-2 + parent-spring-4 + parent-spring-5 + parent-java + parent-kotlin + asm + atomix + apache-cayenne + aws + aws-lambda + akka-streams + algorithms + annotations + apache-cxf + apache-fop + apache-geode + apache-poi + apache-tika + apache-thrift + apache-curator + apache-zookeeper + apache-opennlp + autovalue + axon + azure + bootique + cdi + java-strings + + core-java + core-java-collections + java-collections-conversions + java-collections-maps + core-java-io + core-java-8 + java-streams persistence-modules/core-java-persistence - persistence-modules/deltaspike - persistence-modules/flyway - persistence-modules/hbase - persistence-modules/hibernate5 - persistence-modules/influxdb - persistence-modules/java-cassandra - persistence-modules/java-cockroachdb - persistence-modules/java-jdbi - persistence-modules/java-jpa - persistence-modules/java-mongodb - persistence-modules/jnosql - persistence-modules/liquibase - persistence-modules/orientdb - persistence-modules/querydsl - persistence-modules/redis - persistence-modules/solr - persistence-modules/spring-boot-h2/spring-boot-h2-database - persistence-modules/spring-boot-persistence - persistence-modules/spring-boot-persistence-mongodb - persistence-modules/spring-data-cassandra - persistence-modules/spring-data-cassandra-reactive - persistence-modules/spring-data-couchbase-2 - persistence-modules/spring-data-dynamodb - persistence-modules/spring-data-eclipselink - persistence-modules/spring-data-elasticsearch - persistence-modules/spring-data-gemfire - persistence-modules/spring-data-jpa - persistence-modules/spring-data-keyvalue - persistence-modules/spring-data-mongodb - persistence-modules/spring-data-neo4j - persistence-modules/spring-data-redis - persistence-modules/spring-data-solr - persistence-modules/spring-hibernate-3 - persistence-modules/spring-hibernate-5 - persistence-modules/spring-hibernate4 - persistence-modules/spring-jpa - - rabbitmq - - ratpack - reactor-core - rest-with-spark-java - resteasy - restx - - rule-engines/easy-rules - rule-engines/openl-tablets - rule-engines/rulebook - rsocket - rxjava - rxjava-2 - + core-kotlin + kotlin-libraries + core-groovy + core-java-concurrency + core-java-concurrency-collections + couchbase + persistence-modules/deltaspike + dozer + ethereum + ejb + ejb/ejb-client + feign + flips + testing-modules/gatling + geotools + testing-modules/groovy-spock + google-cloud + google-web-toolkit + gson + guava + guava-collections + guava-modules/guava-18 + guava-modules/guava-19 + guava-modules/guava-21 + guice + disruptor + spring-static-resources + hazelcast + hbase + hibernate5 + httpclient + hystrix + image-processing + immutables + persistence-modules/influxdb + jackson + persistence-modules/java-cassandra + vavr + java-lite + java-numbers + java-rmi + java-vavr-stream + javax-servlets + javaxval + jaxb + javafx + jgroups + jee-7 + jee-7-security + jhipster + jjwt + jsf + json-path + json + jsoup + testing-modules/junit-5 + + libraries + libraries-data + libraries-security + libraries-server + linkrest + logging-modules/log-mdc + logging-modules/log4j + logging-modules/log4j2 + logging-modules/logback + lombok + mapstruct + metrics + maven + mesos-marathon + msf4j + testing-modules/mockito + testing-modules/mockito-2 + testing-modules/mocks + mustache + mvn-wrapper + noexception + persistence-modules/orientdb + osgi + orika + patterns + pdf + protobuffer + persistence-modules/querydsl + reactor-core + persistence-modules/redis + testing-modules/rest-assured + testing-modules/rest-testing + resteasy + rxjava + rxjava-2 + spring-swagger-codegen + testing-modules/selenium-junit-testng + persistence-modules/solr + spark-java + spring-4 + spring-5 + spring-5-data-reactive + spring-5-reactive + spring-5-reactive-security + spring-5-reactive-client + spring-5-mvc + spring-5-security + spring-activiti + spring-akka + spring-amqp + spring-all + spring-amqp-simple + spring-apache-camel + spring-batch + spring-bom + spring-boot + spring-boot-client + spring-boot-keycloak + spring-boot-bootstrap + spring-boot-admin + spring-boot-camel + spring-boot-ops + persistence-modules/spring-boot-persistence + spring-boot-security + spring-boot-mvc + spring-boot-vue + spring-boot-logging-log4j2 + spring-boot-disable-console-logging + spring-cloud-data-flow + spring-cloud + spring-cloud-bus + spring-core + spring-cucumber + spring-ejb + spring-aop + persistence-modules/spring-data-cassandra + spring-data-couchbase-2 + persistence-modules/spring-data-dynamodb + persistence-modules/spring-data-elasticsearch + persistence-modules/spring-data-jpa + persistence-modules/spring-data-keyvalue + persistence-modules/spring-data-mongodb + persistence-modules/spring-data-neo4j + persistence-modules/spring-data-redis + spring-data-rest + persistence-modules/spring-data-solr + spring-dispatcher-servlet + spring-exceptions + spring-freemarker + persistence-modules/spring-hibernate-3 + persistence-modules/spring-hibernate4 + persistence-modules/spring-hibernate-5 + persistence-modules/spring-data-eclipselink + spring-integration + spring-jenkins-pipeline + spring-jersey + jmeter + spring-jms + spring-jooq + persistence-modules/spring-jpa + spring-kafka + spring-katharsis + spring-ldap + spring-mockito + spring-mvc-forms-jsp + spring-mvc-forms-thymeleaf + spring-mvc-java + spring-mvc-velocity + spring-mvc-webflow + spring-mvc-xml + spring-mvc-kotlin + spring-protobuf + spring-quartz + spring-rest-angular + spring-rest-full + spring-rest-query-language + + + spring-resttemplate @@ -580,7 +557,7 @@ **/*IntTest.java **/*LongRunningUnitTest.java **/*ManualTest.java - **/*JdbcTest.java + **/JdbcTest.java **/*LiveTest.java @@ -592,126 +569,145 @@ parent-boot-1 parent-boot-2 - parent-boot-2.0-temp parent-spring-4 parent-spring-5 parent-java parent-kotlin - saas - spark-java - - spring-4 - - spring-5 - spring-5-mvc - spring-5-reactive - spring-5-reactive-client - spring-5-reactive-oauth - spring-5-reactive-security - spring-5-security - spring-5-security-oauth - - spring-activiti - spring-akka - spring-all - spring-amqp - spring-aop - spring-apache-camel - spring-batch - spring-bom - - spring-boot - spring-boot-admin - spring-boot-angular-ecommerce - spring-boot-autoconfiguration - spring-boot-bootstrap - spring-boot-camel - - spring-boot-client - spring-boot-crud - spring-boot-ctx-fluent - spring-boot-custom-starter - spring-boot-disable-console-logging - - spring-boot-jasypt - spring-boot-keycloak - spring-boot-logging-log4j2 - spring-boot-mvc - spring-boot-ops - spring-boot-property-exp - spring-boot-security - spring-boot-vue - - spring-cloud - spring-cloud-bus - - spring-cloud-data-flow - - spring-core - spring-cucumber - - spring-data-rest - spring-data-rest-querydsl - spring-dispatcher-servlet - spring-drools - - spring-ejb - spring-exceptions - - spring-freemarker - - spring-groovy - - spring-integration - - spring-jenkins-pipeline - spring-jersey - spring-jinq - spring-jms - spring-jooq - - spring-kafka - spring-katharsis - - spring-ldap - - spring-mobile - spring-mockito - spring-mustache - spring-mvc-forms-jsp - spring-mvc-forms-thymeleaf - spring-mvc-java - spring-mvc-kotlin - spring-mvc-simple - spring-mvc-velocity - spring-mvc-webflow - spring-mvc-xml - spring-mybatis - - spring-protobuf - - spring-quartz - - spring-reactive-kotlin - spring-reactor + spring-session + spring-sleuth + spring-social-login + spring-spel + spring-state-machine + spring-thymeleaf + spring-userservice + spring-zuul spring-remoting - spring-rest - spring-rest-angular + spring-reactor + spring-vertx + spring-jinq spring-rest-embedded-tomcat - spring-rest-full + testing-modules/testing + testing-modules/testng + video-tutorials + xml + xmlunit-2 + struts-2 + apache-velocity + apache-solrj + rabbitmq + vertx + persistence-modules/spring-data-gemfire + mybatis + spring-drools + drools + persistence-modules/liquibase + spring-boot-property-exp + testing-modules/mockserver + testing-modules/test-containers + undertow + vaadin + vertx-and-rxjava + saas + deeplearning4j + lucene + vraptor + persistence-modules/java-cockroachdb + spring-security-thymeleaf + persistence-modules/java-jdbi + jersey + java-spi + performance-tests + twilio + spring-boot-ctx-fluent + java-ee-8-security-api + spring-webflux-amqp + antlr + maven-archetype + optaplanner + apache-meecrowave + spring-reactive-kotlin + jnosql + spring-boot-angular-ecommerce + cdi-portable-extension + jta + + java-websocket + activejdbc + animal-sniffer-mvn-plugin + apache-avro + apache-bval + apache-shiro + apache-spark + asciidoctor + checker-plugin + + + core-java-sun + custom-pmd + dagger + data-structures + dubbo + flyway + + + jni + jooby + + + + ratpack + rest-with-spark-java + spring-boot-autoconfiguration + spring-boot-custom-starter + spring-boot-jasypt + spring-custom-aop + spring-data-rest-querydsl + spring-groovy + spring-mobile + spring-mustache + spring-mvc-simple + spring-mybatis spring-rest-hal-browser - spring-rest-query-language spring-rest-shell - spring-rest-simple spring-rest-template - spring-resttemplate spring-roo + spring-security-stormpath + sse-jaxrs + static-analysis + stripe + + Twitter4J + wicket + xstream + cas/cas-secured-app + cas/cas-server + + + + + + + + + + + + + + + + + spring-boot-custom-starter/greeter + spring-boot-h2/spring-boot-h2-database + + + + + flyway-cdi-extension spring-security-acl - spring-security-angular/server spring-security-cache-control - spring-security-client/spring-security-jsp-authentication spring-security-client/spring-security-jsp-authorize spring-security-client/spring-security-jsp-config @@ -719,7 +715,6 @@ spring-security-client/spring-security-thymeleaf-authentication spring-security-client/spring-security-thymeleaf-authorize spring-security-client/spring-security-thymeleaf-config - spring-security-core spring-security-mvc-boot spring-security-mvc-custom @@ -730,75 +725,12 @@ spring-security-mvc-session spring-security-mvc-socket spring-security-openid - - spring-security-rest + spring-security-rest-basic-auth spring-security-rest-custom + spring-security-rest spring-security-sso - spring-security-stormpath - spring-security-thymeleaf - spring-security-x509 - spring-session - spring-sleuth - spring-social-login - spring-spel - spring-state-machine - spring-static-resources - spring-swagger-codegen - - spring-thymeleaf - - spring-userservice - - spring-vault - spring-vertx - - spring-webflux-amqp - - spring-zuul - - sse-jaxrs - static-analysis - stripe - structurizr - struts-2 - - testing-modules/gatling - testing-modules/groovy-spock - testing-modules/junit-5 - testing-modules/junit5-migration - testing-modules/load-testing-comparison - testing-modules/mockito - testing-modules/mockito-2 - testing-modules/mocks - testing-modules/mockserver - testing-modules/parallel-tests-junit - testing-modules/rest-assured - testing-modules/rest-testing - - testing-modules/selenium-junit-testng - testing-modules/spring-testing - testing-modules/test-containers - testing-modules/testing - testing-modules/testng - - twilio - Twitter4J - - undertow - - vavr - vertx - vertx-and-rxjava - video-tutorials - vraptor - - wicket - - xml - xmlunit-2 - xstream - + spring-security-x509 @@ -831,7 +763,6 @@ spring-5-reactive-client spring-5-reactive-security spring-5-security - spring-5-security-oauth spring-activiti spring-akka spring-all @@ -848,7 +779,7 @@ spring-boot-custom-starter greeter-spring-boot-autoconfigure greeter-spring-boot-sample-app - persistence-modules/spring-boot-h2/spring-boot-h2-database + spring-boot-h2/spring-boot-h2-database spring-boot-jasypt spring-boot-keycloak spring-boot-mvc @@ -947,7 +878,7 @@ spring-swagger-codegen/spring-swagger-codegen-app spring-thymeleaf spring-userservice - spring-vault + spring-vault spring-vertx spring-zuul/spring-zuul-foos-resource persistence-modules/spring-data-dynamodb @@ -958,560 +889,666 @@ - - default-heavy - - + + integration + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration-test + + test + + + + **/*ManualTest.java + **/*LiveTest.java + + + **/*IntegrationTest.java + **/*IntTest.java + + + + + + + json + + + + + - - org.apache.maven.plugins - maven-surefire-plugin - ${maven-surefire-plugin.version} - - 3 - true - - **/*IntegrationTest.java - **/*IntTest.java - **/*LongRunningUnitTest.java - **/*ManualTest.java - **/*JdbcTest.java - **/*LiveTest.java - - - + - - + parent-boot-1 + parent-boot-2 + parent-spring-4 + parent-spring-5 + parent-java + parent-kotlin + - - parent-boot-1 - parent-boot-2 - parent-boot-2.0-temp - parent-spring-4 - parent-spring-5 - parent-java - parent-kotlin - - core-java - core-java-concurrency - core-kotlin + - jenkins/hello-world - jws + - libraries + - persistence-modules/hibernate5 - persistence-modules/java-jpa - persistence-modules/jnosql + + testing-modules/mockito + testing-modules/mockito-2 + testing-modules/mocks + mustache + mvn-wrapper + noexception + persistence-modules/orientdb + osgi + orika + patterns + pdf + protobuffer + persistence-modules/querydsl + reactor-core + persistence-modules/redis + testing-modules/rest-assured + testing-modules/rest-testing + resteasy + rxjava + rxjava-2 + spring-swagger-codegen + testing-modules/selenium-junit-testng + persistence-modules/solr + spark-java + spring-4 + spring-5 + spring-5-data-reactive + spring-5-reactive + spring-5-reactive-security + spring-5-reactive-client + spring-5-mvc + spring-5-security + spring-activiti + spring-akka + spring-amqp + spring-all + spring-amqp-simple + spring-apache-camel + spring-batch + jmh - spring-5-data-reactive - spring-amqp-simple - - vaadin - - - - - integration-lite-first + - - - - org.apache.maven.plugins - maven-surefire-plugin - - - **/*ManualTest.java - **/*LiveTest.java - - - **/*IntegrationTest.java - **/*IntTest.java - - - - - + - - parent-boot-1 - parent-boot-2 - parent-boot-2.0-temp - parent-spring-4 - parent-spring-5 - parent-java - parent-kotlin - - akka-streams - algorithms-genetic - algorithms-miscellaneous-1 - algorithms-miscellaneous-2 - algorithms-sorting - animal-sniffer-mvn-plugin - annotations - antlr - apache-avro - apache-bval - apache-curator - apache-cxf - apache-fop - apache-geode - apache-meecrowave - apache-opennlp - apache-poi - apache-pulsar - apache-shiro - apache-solrj - apache-spark - apache-thrift - apache-tika - apache-velocity - apache-zookeeper - asciidoctor - asm - atomix - autovalue - aws - aws-lambda - axon - azure + spring-bom + spring-boot + spring-boot-client + spring-boot-keycloak + spring-boot-bootstrap + spring-boot-admin + spring-boot-camel + spring-boot-ops + persistence-modules/spring-boot-persistence + spring-boot-security + spring-boot-mvc + spring-boot-logging-log4j2 + spring-boot-disable-console-logging + spring-cloud-data-flow + spring-cloud + spring-cloud-bus + spring-core + spring-cucumber + spring-ejb + spring-aop + persistence-modules/spring-data-cassandra + spring-data-couchbase-2 + persistence-modules/spring-data-dynamodb + persistence-modules/spring-data-elasticsearch + persistence-modules/spring-data-keyvalue + persistence-modules/spring-data-mongodb + persistence-modules/spring-data-jpa + persistence-modules/spring-data-neo4j + persistence-modules/spring-data-redis + spring-data-rest - bootique + - cas/cas-secured-app - cas/cas-server - cdi - checker-plugin - core-groovy - - - core-java-8 - - core-java-arrays - core-java-collections - core-java-concurrency-collections - core-java-io - core-java-lang - core-java-networking - core-java-sun - core-scala - couchbase - custom-pmd - - dagger - data-structures - ddd - deeplearning4j - disruptor - dozer - drools - dubbo - - ethereum - - feign - flips - flyway-cdi-extension - - geotools - google-cloud - google-web-toolkit - - - graphql/graphql-java - grpc - gson - guava - guava-collections - guava-modules/guava-18 - guava-modules/guava-19 - guava-modules/guava-21 - - guice - - hazelcast - helidon - httpclient - hystrix - - image-processing - immutables + - jackson - java-collections-conversions - java-collections-maps - - java-ee-8-security-api - java-lite - java-numbers - java-rmi - java-spi - java-streams - java-strings - java-vavr-stream - java-websocket - javafx - javax-servlets - javaxval - jaxb - - jee-7-security - jersey - JGit - jgroups - jhipster - jib - jjwt - jmeter - jmh - jni - jooby - jsf - json - json-path - jsoup - jta - - - kotlin-libraries - - - libraries-data - libraries-security - libraries-server - linkrest - logging-modules/log4j - logging-modules/log4j2 - logging-modules/logback - logging-modules/log-mdc - lombok - lucene - - mapstruct - maven - maven-archetype - - maven-polyglot/maven-polyglot-json-extension - - mesos-marathon - metrics - - microprofile - msf4j - - mustache - mvn-wrapper - mybatis - - noexception - - optaplanner - orika - osgi - - patterns - pdf - performance-tests - - protobuffer - - persistence-modules/activejdbc - persistence-modules/apache-cayenne - persistence-modules/core-java-persistence - persistence-modules/deltaspike - persistence-modules/flyway - persistence-modules/hbase - persistence-modules/hibernate5 - persistence-modules/influxdb - persistence-modules/java-cassandra - persistence-modules/java-cockroachdb - persistence-modules/java-jdbi - persistence-modules/java-jpa - persistence-modules/java-mongodb - persistence-modules/jnosql - persistence-modules/liquibase - persistence-modules/orientdb - persistence-modules/querydsl - persistence-modules/redis - persistence-modules/solr - persistence-modules/spring-boot-h2/spring-boot-h2-database - persistence-modules/spring-boot-persistence - persistence-modules/spring-boot-persistence-mongodb - persistence-modules/spring-data-cassandra - persistence-modules/spring-data-cassandra-reactive - persistence-modules/spring-data-couchbase-2 - persistence-modules/spring-data-dynamodb - persistence-modules/spring-data-eclipselink - persistence-modules/spring-data-elasticsearch - persistence-modules/spring-data-gemfire - persistence-modules/spring-data-jpa - persistence-modules/spring-data-keyvalue - persistence-modules/spring-data-mongodb - persistence-modules/spring-data-neo4j - persistence-modules/spring-data-redis - persistence-modules/spring-data-solr - persistence-modules/spring-hibernate-3 - persistence-modules/spring-hibernate-5 - persistence-modules/spring-hibernate4 - persistence-modules/spring-jpa - - rabbitmq - - ratpack - reactor-core - rest-with-spark-java - resteasy - restx - - rule-engines/easy-rules - rule-engines/openl-tablets - rule-engines/rulebook - rsocket - rxjava - rxjava-2 - - - - - - - integration-lite-second - - - - - org.apache.maven.plugins - maven-surefire-plugin - - - **/*ManualTest.java - **/*LiveTest.java - - - **/*IntegrationTest.java - **/*IntTest.java - - - - - - - - parent-boot-1 - parent-boot-2 - parent-boot-2.0-temp - parent-spring-4 - parent-spring-5 - parent-java - parent-kotlin - - saas - spark-java - - spring-4 - - spring-5 - spring-5-mvc - spring-5-reactive - spring-5-reactive-client - spring-5-reactive-oauth - spring-5-reactive-security - spring-5-security - spring-5-security-oauth - - spring-activiti - spring-akka - spring-all - spring-amqp - spring-aop - spring-apache-camel - spring-batch - spring-bom - - spring-boot - spring-boot-admin - spring-boot-angular-ecommerce - spring-boot-autoconfiguration - spring-boot-bootstrap - spring-boot-camel - - spring-boot-client - spring-boot-crud - spring-boot-ctx-fluent - spring-boot-custom-starter - spring-boot-disable-console-logging - - spring-boot-jasypt - spring-boot-keycloak - spring-boot-logging-log4j2 - spring-boot-mvc - spring-boot-ops - spring-boot-property-exp - spring-boot-security - spring-boot-vue - - spring-cloud - spring-cloud-bus - - spring-cloud-data-flow - - spring-core - spring-cucumber - - spring-data-rest - spring-data-rest-querydsl - spring-dispatcher-servlet - spring-drools - - spring-ejb - spring-exceptions - - spring-freemarker - - spring-groovy - - spring-integration - - spring-jenkins-pipeline - spring-jersey - spring-jinq - spring-jms - spring-jooq - - spring-kafka - spring-katharsis - - spring-ldap - - spring-mobile - spring-mockito - spring-mustache - spring-mvc-forms-jsp - spring-mvc-forms-thymeleaf - spring-mvc-java - spring-mvc-kotlin - spring-mvc-simple - spring-mvc-velocity - spring-mvc-webflow - spring-mvc-xml - spring-mybatis - - spring-protobuf - - spring-quartz - + + persistence-modules/spring-data-solr + spring-dispatcher-servlet + spring-exceptions + spring-freemarker + persistence-modules/spring-hibernate-3 + persistence-modules/spring-hibernate4 + persistence-modules/spring-hibernate-5 + persistence-modules/spring-data-eclipselink + spring-integration + spring-jenkins-pipeline + spring-jersey + spring-jms + spring-jooq + persistence-modules/spring-jpa + spring-kafka + spring-katharsis + spring-ldap + spring-mockito + spring-mvc-forms-jsp + spring-mvc-forms-thymeleaf + spring-mvc-java + spring-mvc-velocity + spring-mvc-webflow + spring-mvc-xml + spring-mvc-kotlin + spring-protobuf + spring-quartz + spring-rest-angular + spring-rest-full + spring-rest-query-language + spring-rest + spring-resttemplate + spring-rest-simple spring-reactive-kotlin - spring-reactor - spring-remoting - spring-rest - spring-rest-angular - spring-rest-embedded-tomcat - spring-rest-full - spring-rest-hal-browser - spring-rest-query-language - spring-rest-shell - spring-rest-simple - spring-rest-template - spring-resttemplate - spring-roo - - spring-security-acl - spring-security-angular/server - spring-security-cache-control - - spring-security-client/spring-security-jsp-authentication - spring-security-client/spring-security-jsp-authorize - spring-security-client/spring-security-jsp-config - spring-security-client/spring-security-mvc - spring-security-client/spring-security-thymeleaf-authentication - spring-security-client/spring-security-thymeleaf-authorize - spring-security-client/spring-security-thymeleaf-config - - spring-security-core - spring-security-mvc-boot - spring-security-mvc-custom - spring-security-mvc-digest-auth - spring-security-mvc-ldap - spring-security-mvc-login - spring-security-mvc-persisted-remember-me - spring-security-mvc-session - spring-security-mvc-socket - spring-security-openid - - spring-security-rest - spring-security-rest-basic-auth - spring-security-rest-custom - spring-security-sso - spring-security-stormpath - spring-security-thymeleaf - spring-security-x509 - spring-session - spring-sleuth - spring-social-login - spring-spel - spring-state-machine - spring-static-resources - spring-swagger-codegen - - spring-thymeleaf - - spring-userservice - - spring-vault - spring-vertx - - spring-webflux-amqp - - spring-zuul - - sse-jaxrs - static-analysis - stripe - structurizr - struts-2 - - testing-modules/gatling - testing-modules/groovy-spock - testing-modules/junit-5 - testing-modules/junit5-migration - testing-modules/load-testing-comparison - testing-modules/mockito - testing-modules/mockito-2 - testing-modules/mocks - testing-modules/mockserver - testing-modules/parallel-tests-junit - testing-modules/rest-assured - testing-modules/rest-testing - - testing-modules/selenium-junit-testng - testing-modules/spring-testing - testing-modules/test-containers - testing-modules/testing - testing-modules/testng - - twilio - Twitter4J - - undertow - - vavr - vertx - vertx-and-rxjava - video-tutorials - vraptor - - wicket - - xml - xmlunit-2 - xstream - - - + + + + + + + + + + + + + + + java-websocket + activejdbc + animal-sniffer-mvn-plugin + apache-avro + apache-bval + apache-shiro + apache-spark + asciidoctor + checker-plugin + + + core-java-sun + custom-pmd + dagger + data-structures + dubbo + flyway + + + jni + jooby + + + + ratpack + rest-with-spark-java + spring-boot-autoconfiguration + spring-boot-custom-starter + spring-boot-jasypt + spring-custom-aop + spring-data-rest-querydsl + spring-groovy + spring-mobile + spring-mustache + spring-mvc-simple + spring-mybatis + spring-rest-hal-browser + spring-rest-shell + spring-rest-template + spring-roo + spring-security-stormpath + sse-jaxrs + static-analysis + stripe + + + wicket + xstream + cas/cas-secured-app + + + + + + + + + + + + + + jenkins/hello-world + + + + spring-boot-custom-starter/greeter + spring-boot-h2/spring-boot-h2-database + + + + + + + + + + integration-lite + + + + + org.apache.maven.plugins + maven-surefire-plugin + + + integration-test + + test + + + + **/*ManualTest.java + **/*LiveTest.java + + + **/*IntegrationTest.java + **/*IntTest.java + + + + + + + json + + + + + + + + parent-boot-1 + parent-boot-2 + parent-spring-4 + parent-spring-5 + parent-java + parent-kotlin + asm + atomix + apache-cayenne + aws + aws-lambda + akka-streams + akka-http + algorithms + annotations + apache-cxf + apache-fop + apache-poi + apache-tika + apache-thrift + apache-curator + apache-zookeeper + apache-opennlp + autovalue + axon + azure + bootique + cdi + java-strings + + core-java-collections + java-collections-conversions + java-collections-maps + core-java-io + core-java-8 + java-streams + core-groovy + + couchbase + persistence-modules/deltaspike + dozer + ethereum + feign + flips + testing-modules/groovy-spock + google-cloud + gson + guava + guava-collections + guava-modules/guava-18 + guava-modules/guava-19 + guava-modules/guava-21 + guice + disruptor + spring-static-resources + hazelcast + hbase + + hystrix + image-processing + immutables + persistence-modules/influxdb + jackson + vavr + java-lite + java-numbers + java-rmi + java-vavr-stream + javax-servlets + javaxval + jaxb + javafx + jgroups + jee-7 + jee-7-security + jjwt + jsf + json-path + json + jsoup + jta + testing-modules/junit-5 + testing-modules/junit5-migration + jws + libraries-data + linkrest + logging-modules/log-mdc + logging-modules/log4j + + logging-modules/logback + lombok + mapstruct + + maven + mesos-marathon + msf4j + testing-modules/mockito + testing-modules/mockito-2 + testing-modules/mocks + mustache + mvn-wrapper + noexception + persistence-modules/orientdb + osgi + orika + patterns + pdf + protobuffer + persistence-modules/querydsl + reactor-core + persistence-modules/redis + testing-modules/rest-assured + testing-modules/rest-testing + resteasy + rxjava + rxjava-2 + spring-swagger-codegen + testing-modules/selenium-junit-testng + persistence-modules/solr + spark-java + spring-4 + spring-5-data-reactive + spring-5-reactive + spring-5-reactive-security + spring-5-reactive-client + spring-5-mvc + spring-5-security + spring-activiti + spring-akka + spring-amqp + spring-all + spring-amqp-simple + spring-apache-camel + spring-batch + spring-bom + spring-boot-keycloak + spring-boot-bootstrap + spring-boot-admin + spring-boot-camel + persistence-modules/spring-boot-persistence + spring-boot-security + spring-boot-mvc + spring-boot-logging-log4j2 + spring-boot-disable-console-logging + spring-cloud-data-flow + spring-cloud + spring-cloud-bus + spring-core + spring-cucumber + spring-ejb + spring-aop + + persistence-modules/spring-data-dynamodb + persistence-modules/spring-data-keyvalue + persistence-modules/spring-data-mongodb + persistence-modules/spring-data-neo4j + + spring-data-rest + persistence-modules/spring-data-solr + spring-dispatcher-servlet + spring-exceptions + spring-freemarker + persistence-modules/spring-hibernate-3 + + persistence-modules/spring-hibernate-5 + persistence-modules/spring-data-eclipselink + spring-integration + spring-jenkins-pipeline + spring-jersey + + spring-jms + spring-jooq + persistence-modules/spring-jpa + spring-kafka + spring-katharsis + spring-ldap + spring-mockito + spring-mvc-forms-jsp + spring-mvc-forms-thymeleaf + spring-mvc-java + spring-mvc-velocity + spring-mvc-webflow + spring-mvc-xml + spring-mvc-kotlin + spring-protobuf + spring-quartz + spring-rest-angular + spring-rest-full + spring-rest-query-language + spring-rest + spring-resttemplate + spring-rest-simple + spring-security-acl + spring-security-cache-control + spring-security-client/spring-security-jsp-authentication + spring-security-client/spring-security-jsp-authorize + spring-security-client/spring-security-jsp-config + spring-security-client/spring-security-mvc + spring-security-client/spring-security-thymeleaf-authentication + spring-security-client/spring-security-thymeleaf-authorize + spring-security-client/spring-security-thymeleaf-config + spring-security-core + spring-security-mvc-boot + spring-security-mvc-digest-auth + spring-security-mvc-ldap + spring-security-mvc-login + spring-security-mvc-persisted-remember-me + spring-security-mvc-session + spring-security-mvc-socket + spring-security-openid + + spring-security-rest-basic-auth + spring-security-rest-custom + spring-security-rest + spring-security-sso + spring-security-x509 + spring-session + spring-sleuth + spring-social-login + spring-spel + spring-state-machine + spring-thymeleaf + spring-userservice + spring-zuul + spring-remoting + spring-reactor + spring-vertx + spring-vault + spring-jinq + spring-rest-embedded-tomcat + testing-modules/testing + testing-modules/testng + video-tutorials + + xmlunit-2 + struts-2 + apache-velocity + apache-solrj + rabbitmq + + persistence-modules/spring-data-gemfire + mybatis + spring-drools + drools + persistence-modules/liquibase + spring-boot-property-exp + testing-modules/mockserver + testing-modules/test-containers + undertow + vaadin + vertx-and-rxjava + saas + deeplearning4j + lucene + vraptor + persistence-modules/java-cockroachdb + spring-security-thymeleaf + persistence-modules/java-jdbi + jersey + java-spi + performance-tests + twilio + spring-boot-ctx-fluent + java-ee-8-security-api + spring-webflux-amqp + antlr + maven-archetype + apache-meecrowave + + persistence-modules/spring-hibernate4 + xml + vertx + metrics + httpclient + + + + + + + + + + + integration-heavy @@ -1521,15 +1558,28 @@ org.apache.maven.plugins maven-surefire-plugin + + + integration-test + + test + + + + **/*ManualTest.java + **/*LiveTest.java + + + **/*IntegrationTest.java + **/*IntTest.java + + + + - - **/*ManualTest.java - **/*LiveTest.java - - - **/*IntegrationTest.java - **/*IntTest.java - + + json + @@ -1538,29 +1588,26 @@ parent-boot-1 parent-boot-2 - parent-boot-2.0-temp parent-spring-4 parent-spring-5 parent-java - parent-kotlin - - core-java - core-java-concurrency - core-kotlin - - jenkins/hello-world - jws - - libraries - - persistence-modules/hibernate5 - persistence-modules/java-jpa - persistence-modules/jnosql - - spring-5-data-reactive - spring-amqp-simple - - vaadin + parent-kotlin + libraries + geotools + jhipster + testing-modules/gatling + spring-boot + spring-boot-ops + spring-5 + core-kotlin + kotlin-libraries + core-java + google-web-toolkit + spring-security-mvc-custom + hibernate5 + persistence-modules/spring-data-elasticsearch + core-java-concurrency + core-java-concurrency-collections @@ -1585,16 +1632,13 @@ true false false - false - + 4.12 1.3 2.21.0 - 1.7.21 1.1.7 - 2.21.0 3.7.0