getVehicles() throws NoSuchFieldException {
+ ResolvableType vehiclesType = ResolvableType.forField(getClass().getDeclaredField("vehicles"));
+ System.out.println(vehiclesType);
+ ResolvableType type = vehiclesType.getGeneric();
+ System.out.println(type);
+ Class> aClass = type.resolve();
+ System.out.println(aClass);
+ return this.vehicles;
+ }
+}
diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjectiontypes/model/Motorcycle.java b/spring-core/src/main/java/com/baeldung/dependencyinjectiontypes/model/Motorcycle.java
new file mode 100644
index 0000000000..ce5e97fb6d
--- /dev/null
+++ b/spring-core/src/main/java/com/baeldung/dependencyinjectiontypes/model/Motorcycle.java
@@ -0,0 +1,25 @@
+package com.baeldung.dependencyinjectiontypes.model;
+
+public class Motorcycle extends Vehicle {
+ private boolean twoWheeler;
+
+ public Motorcycle(String name, String manufacturer, boolean twoWheeler) {
+ super(name, manufacturer);
+ this.twoWheeler = true;
+ }
+
+ public boolean isTwoWheeler() {
+ return twoWheeler;
+ }
+
+ public void setTwoWheeler(boolean twoWheeler) {
+ this.twoWheeler = twoWheeler;
+ }
+
+ @Override
+ public String toString() {
+ return "Motorcycle{" +
+ "twoWheeler=" + twoWheeler +
+ '}';
+ }
+}
diff --git a/spring-core/src/main/java/com/baeldung/dependencyinjectiontypes/model/Vehicle.java b/spring-core/src/main/java/com/baeldung/dependencyinjectiontypes/model/Vehicle.java
new file mode 100644
index 0000000000..cb3dca764e
--- /dev/null
+++ b/spring-core/src/main/java/com/baeldung/dependencyinjectiontypes/model/Vehicle.java
@@ -0,0 +1,28 @@
+package com.baeldung.dependencyinjectiontypes.model;
+
+public abstract class Vehicle {
+ private String name;
+ private String manufacturer;
+
+
+ public Vehicle(String name, String manufacturer) {
+ this.name = name;
+ this.manufacturer = manufacturer;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getManufacturer() {
+ return manufacturer;
+ }
+
+ public void setManufacturer(String manufacturer) {
+ this.manufacturer = manufacturer;
+ }
+}
\ No newline at end of file
diff --git a/spring-core/src/main/java/com/baeldung/event/listener/ContextEventListener.java b/spring-core/src/main/java/com/baeldung/event/listener/ContextEventListener.java
new file mode 100644
index 0000000000..a2603bb95c
--- /dev/null
+++ b/spring-core/src/main/java/com/baeldung/event/listener/ContextEventListener.java
@@ -0,0 +1,24 @@
+package com.baeldung.event.listener;
+
+import org.springframework.context.event.ContextStartedEvent;
+import org.springframework.context.event.ContextStoppedEvent;
+import org.springframework.context.event.EventListener;
+import org.springframework.core.annotation.Order;
+import org.springframework.stereotype.Component;
+
+@Component
+public class ContextEventListener {
+
+ @Order(2)
+ @EventListener
+ public void handleContextRefreshEvent(ContextStartedEvent ctxStartEvt) {
+ System.out.println("Context Start Event received.");
+ }
+
+ @Order(1)
+ @EventListener(classes = { ContextStartedEvent.class, ContextStoppedEvent.class })
+ public void handleMultipleEvents() {
+ System.out.println("Multi-event listener invoked");
+ }
+
+}
diff --git a/spring-core/src/main/java/com/baeldung/event/listener/EventConfig.java b/spring-core/src/main/java/com/baeldung/event/listener/EventConfig.java
new file mode 100644
index 0000000000..f2a3af7640
--- /dev/null
+++ b/spring-core/src/main/java/com/baeldung/event/listener/EventConfig.java
@@ -0,0 +1,10 @@
+package com.baeldung.event.listener;
+
+import org.springframework.context.annotation.ComponentScan;
+import org.springframework.context.annotation.Configuration;
+
+@Configuration
+@ComponentScan(basePackages = "com.baeldung.event.listener")
+public class EventConfig {
+
+}
diff --git a/spring-core/src/main/java/com/baeldung/event/listener/SpringRunner.java b/spring-core/src/main/java/com/baeldung/event/listener/SpringRunner.java
new file mode 100644
index 0000000000..bbe4693900
--- /dev/null
+++ b/spring-core/src/main/java/com/baeldung/event/listener/SpringRunner.java
@@ -0,0 +1,12 @@
+package com.baeldung.event.listener;
+
+import org.springframework.context.ConfigurableApplicationContext;
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+
+public class SpringRunner {
+
+ public static void main(String[] args) {
+ ConfigurableApplicationContext ctx = new AnnotationConfigApplicationContext(EventConfig.class);
+ ctx.start();
+ }
+}
diff --git a/spring-data-spring-security/README.md b/spring-data-spring-security/README.md
deleted file mode 100644
index da65527a8a..0000000000
--- a/spring-data-spring-security/README.md
+++ /dev/null
@@ -1,14 +0,0 @@
-# About this project
-This project contains examples from the [Spring Data with Spring Security](http://www.baeldung.com/spring-data-with-spring-security) article from Baeldung.
-
-# Running the project
-The application uses [Spring Boot](http://projects.spring.io/spring-boot/), so it is easy to run. You can start it any of a few ways:
-* Run the `main` method from `SpringDataRestApplication`
-* Use the Maven Spring Boot plugin: `mvn spring-boot:run`
-* Package the application as a JAR and run it using `java -jar spring-data-spring-security.jar`
-
-# Viewing the running application
-To view the running application, visit [http://localhost:8080](http://localhost:8080) in your browser
-
-###Relevant Articles:
-- [Spring Data with Spring Security](http://www.baeldung.com/spring-data-security)
diff --git a/spring-data-spring-security/pom.xml b/spring-data-spring-security/pom.xml
deleted file mode 100644
index 09e056ef01..0000000000
--- a/spring-data-spring-security/pom.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
- 4.0.0
- com.baeldung
- spring-data-spring-security
- 1.0
- jar
- intro-spring-data-spring-security
- Spring Data with Spring Security
-
-
- parent-boot-1
- com.baeldung
- 0.0.1-SNAPSHOT
- ../parent-boot-1
-
-
-
-
- org.springframework.boot
- spring-boot-starter
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter-data-jpa
-
-
- org.springframework.security
- spring-security-data
-
-
- org.springframework.boot
- spring-boot-starter-security
-
-
- org.springframework.security
- spring-security-test
- test
-
-
- org.apache.tomcat.embed
- tomcat-embed-jasper
-
-
-
- com.h2database
- h2
-
-
- javax.servlet
- jstl
-
-
-
-
- ${project.artifactId}
-
-
-
diff --git a/spring-data-spring-security/src/main/resources/application.properties b/spring-data-spring-security/src/main/resources/application.properties
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/spring-ejb/pom.xml b/spring-ejb/pom.xml
index c034405cc6..d976bf4bfe 100755
--- a/spring-ejb/pom.xml
+++ b/spring-ejb/pom.xml
@@ -72,7 +72,6 @@
ejb-remote-for-spring
- spring-ejb-client
ejb-beans
diff --git a/spring-ejb/spring-ejb-client/src/main/java/com/baeldung/springejbclient/SpringEjbClientApplication.java b/spring-ejb/spring-ejb-client/src/main/java/com/baeldung/springejbclient/SpringEjbClientApplication.java
index d3542a2158..0a1e389113 100644
--- a/spring-ejb/spring-ejb-client/src/main/java/com/baeldung/springejbclient/SpringEjbClientApplication.java
+++ b/spring-ejb/spring-ejb-client/src/main/java/com/baeldung/springejbclient/SpringEjbClientApplication.java
@@ -47,4 +47,5 @@ public class SpringEjbClientApplication {
public static void main(String[] args) {
SpringApplication.run(SpringEjbClientApplication.class, args);
}
+
}
diff --git a/spring-integration/src/main/java/com/baeldung/dsl/JavaDSLFileCopyConfig.java b/spring-integration/src/main/java/com/baeldung/dsl/JavaDSLFileCopyConfig.java
new file mode 100644
index 0000000000..7e91345f04
--- /dev/null
+++ b/spring-integration/src/main/java/com/baeldung/dsl/JavaDSLFileCopyConfig.java
@@ -0,0 +1,146 @@
+package com.baeldung.dsl;
+
+import java.io.File;
+import java.util.Scanner;
+import java.util.concurrent.TimeUnit;
+
+import org.springframework.context.annotation.AnnotationConfigApplicationContext;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.support.AbstractApplicationContext;
+import org.springframework.integration.annotation.IntegrationComponentScan;
+import org.springframework.integration.channel.PriorityChannel;
+import org.springframework.integration.config.EnableIntegration;
+import org.springframework.integration.core.GenericSelector;
+import org.springframework.integration.core.MessageSource;
+import org.springframework.integration.dsl.IntegrationFlow;
+import org.springframework.integration.dsl.IntegrationFlows;
+import org.springframework.integration.dsl.Pollers;
+import org.springframework.integration.file.FileReadingMessageSource;
+import org.springframework.integration.file.FileWritingMessageHandler;
+import org.springframework.messaging.MessageHandler;
+
+/**
+ * JavaDSLFileCopyConfig contains various Integration Flows created from various spring integration components.
+ * Activate only one flow at a time by un-commenting @Bean annotation from IntegrationFlow beans.
+ *
+ * Different flows are :
+ * - {@link #fileMover()} - default app - activated
+ * - {@link #fileMoverWithLambda()} - app with file writing expressions as lambda
+ * - {@link #fileMoverWithPriorityChannel()} - app with priority channel
+ * - {@link #fileReader()}, {@link #fileWriter()}, {@link #anotherFileWriter()} - app with bridge
+ */
+@Configuration
+@EnableIntegration
+@IntegrationComponentScan
+public class JavaDSLFileCopyConfig {
+
+ public static final String INPUT_DIR = "source";
+ public static final String OUTPUT_DIR = "target";
+ public static final String OUTPUT_DIR2 = "target2";
+
+ @Bean
+ public MessageSource sourceDirectory() {
+ FileReadingMessageSource messageSource = new FileReadingMessageSource();
+ messageSource.setDirectory(new File(INPUT_DIR));
+ return messageSource;
+ }
+
+ @Bean
+ public GenericSelector onlyJpgs() {
+ return new GenericSelector() {
+
+ @Override
+ public boolean accept(File source) {
+ return source.getName()
+ .endsWith(".jpg");
+ }
+ };
+ }
+
+ @Bean
+ public MessageHandler targetDirectory() {
+ FileWritingMessageHandler handler = new FileWritingMessageHandler(new File(OUTPUT_DIR));
+ handler.setExpectReply(false); // end of pipeline, reply not needed
+ return handler;
+ }
+
+ @Bean
+ public IntegrationFlow fileMover() {
+ return IntegrationFlows.from(sourceDirectory(), configurer -> configurer.poller(Pollers.fixedDelay(10000)))
+ .filter(onlyJpgs())
+ .handle(targetDirectory())
+ .get();
+ }
+
+ // @Bean
+ public IntegrationFlow fileMoverWithLambda() {
+ return IntegrationFlows.from(sourceDirectory(), configurer -> configurer.poller(Pollers.fixedDelay(10000)))
+ .filter(message -> ((File) message).getName()
+ .endsWith(".jpg"))
+ .handle(targetDirectory())
+ .get();
+ }
+
+ @Bean
+ public PriorityChannel alphabetically() {
+ return new PriorityChannel(1000, (left, right) -> ((File) left.getPayload()).getName()
+ .compareTo(((File) right.getPayload()).getName()));
+ }
+
+ // @Bean
+ public IntegrationFlow fileMoverWithPriorityChannel() {
+ return IntegrationFlows.from(sourceDirectory())
+ .filter(onlyJpgs())
+ .channel("alphabetically")
+ .handle(targetDirectory())
+ .get();
+ }
+
+ @Bean
+ public MessageHandler anotherTargetDirectory() {
+ FileWritingMessageHandler handler = new FileWritingMessageHandler(new File(OUTPUT_DIR2));
+ handler.setExpectReply(false); // end of pipeline, reply not needed
+ return handler;
+ }
+
+ // @Bean
+ public IntegrationFlow fileReader() {
+ return IntegrationFlows.from(sourceDirectory())
+ .filter(onlyJpgs())
+ .channel("holdingTank")
+ .get();
+ }
+
+ // @Bean
+ public IntegrationFlow fileWriter() {
+ return IntegrationFlows.from("holdingTank")
+ .bridge(e -> e.poller(Pollers.fixedRate(1, TimeUnit.SECONDS, 20)))
+ .handle(targetDirectory())
+ .get();
+ }
+
+ // @Bean
+ public IntegrationFlow anotherFileWriter() {
+ return IntegrationFlows.from("holdingTank")
+ .bridge(e -> e.poller(Pollers.fixedRate(2, TimeUnit.SECONDS, 10)))
+ .handle(anotherTargetDirectory())
+ .get();
+ }
+
+ public static void main(final String... args) {
+ final AbstractApplicationContext context = new AnnotationConfigApplicationContext(JavaDSLFileCopyConfig.class);
+ context.registerShutdownHook();
+ final Scanner scanner = new Scanner(System.in);
+ System.out.print("Please enter a string and press : ");
+ while (true) {
+ final String input = scanner.nextLine();
+ if ("q".equals(input.trim())) {
+ context.close();
+ scanner.close();
+ break;
+ }
+ }
+ System.exit(0);
+ }
+}
diff --git a/spring-mvc-forms-thymeleaf/pom.xml b/spring-mvc-forms-thymeleaf/pom.xml
index 07c49766ee..504ad1dcb2 100644
--- a/spring-mvc-forms-thymeleaf/pom.xml
+++ b/spring-mvc-forms-thymeleaf/pom.xml
@@ -3,9 +3,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- com.baeldung
spring-mvc-forms-thymeleaf
- 0.0.1-SNAPSHOT
jar
spring-mvc-forms-thymeleaf
spring forms examples using thymeleaf
@@ -40,36 +38,8 @@
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
- 3
- true
- methods
- true
-
- **/*IntegrationTest.java
- **/*IntTest.java
- **/*LiveTest.java
-
-
-
-
-
-
- UTF-8
- UTF-8
3.0.9.RELEASE
com.baeldung.sessionattrs.SessionAttrsApplication
-
diff --git a/spring-mvc-kotlin/pom.xml b/spring-mvc-kotlin/pom.xml
index 1bf66d6f31..59b60ebd3c 100644
--- a/spring-mvc-kotlin/pom.xml
+++ b/spring-mvc-kotlin/pom.xml
@@ -1,124 +1,83 @@
- 4.0.0
- spring-mvc-kotlin
- 0.1-SNAPSHOT
- spring-mvc-kotlin
- war
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+ spring-mvc-kotlin
+ spring-mvc-kotlin
+ war
-
- com.baeldung
- parent-modules
- 1.0.0-SNAPSHOT
-
+
+ parent-kotlin
+ com.baeldung
+ 1.0.0-SNAPSHOT
+ ../parent-kotlin
+
-
-
- org.jetbrains.kotlin
- kotlin-stdlib-jdk8
- ${kotlin.version}
-
+
+
+ org.springframework
+ spring-web
+
+
+ org.springframework
+ spring-webmvc
+
+
+ org.thymeleaf
+ thymeleaf
+
-
- org.springframework
- spring-web
- ${spring.version}
-
-
- org.springframework
- spring-webmvc
- ${spring.version}
-
-
- org.thymeleaf
- thymeleaf
- ${thymeleaf.version}
-
+
+ org.thymeleaf
+ thymeleaf-spring4
+ ${thymeleaf.version}
+
+
+ org.hibernate
+ hibernate-core
+
+
+ org.hibernate
+ hibernate-testing
+ test
+
+
+ com.h2database
+ h2
+ test
+
+
+ org.springframework
+ spring-test
+ test
+
+
-
- org.thymeleaf
- thymeleaf-spring4
- ${thymeleaf.version}
-
-
- org.hibernate
- hibernate-core
- ${hibernate.version}
-
-
- org.hibernate
- hibernate-testing
- ${hibernate.version}
- test
-
-
- com.h2database
- h2
- ${h2.version}
- test
-
-
- org.springframework
- spring-test
- ${spring.version}
- test
-
-
+
+
+
+ kotlin-maven-plugin
+ org.jetbrains.kotlin
+ ${kotlin.version}
+
+
+ spring
+ jpa
+
+
+
+
+ org.jetbrains.kotlin
+ kotlin-maven-noarg
+ ${kotlin.version}
+
+
+
+
+
-
- ${project.basedir}/src/main/kotlin
- ${project.basedir}/src/test/kotlin
-
-
- kotlin-maven-plugin
- org.jetbrains.kotlin
- ${kotlin.version}
-
-
- spring
- jpa
-
- ${java.version}
-
-
-
- compile
- compile
-
- compile
-
-
-
- test-compile
- test-compile
-
- test-compile
-
-
-
-
-
- org.jetbrains.kotlin
- kotlin-maven-allopen
- ${kotlin.version}
-
-
- org.jetbrains.kotlin
- kotlin-maven-noarg
- ${kotlin.version}
-
-
-
-
-
-
-
- 5.2.15.Final
- 1.2.30
- 4.3.10.RELEASE
- 3.0.7.RELEASE
- 1.4.196
-
+
+ 3.0.7.RELEASE
+
\ No newline at end of file
diff --git a/spring-mvc-velocity/pom.xml b/spring-mvc-velocity/pom.xml
index 64cf0a73a5..dc5adcf3cf 100644
--- a/spring-mvc-velocity/pom.xml
+++ b/spring-mvc-velocity/pom.xml
@@ -1,7 +1,6 @@
4.0.0
- com.baeldung
0.1-SNAPSHOT
spring-mvc-velocity
@@ -94,7 +93,6 @@
-
org.apache.maven.plugins
maven-war-plugin
@@ -103,25 +101,7 @@
false
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
- 3
- true
-
- **/*IntegrationTest.java
- **/*IntTest.java
-
-
-
-
-
-
-
-
diff --git a/spring-reactive-kotlin/pom.xml b/spring-reactive-kotlin/pom.xml
index 2bac2d1961..409457995a 100644
--- a/spring-reactive-kotlin/pom.xml
+++ b/spring-reactive-kotlin/pom.xml
@@ -2,20 +2,17 @@
4.0.0
-
- com.baeldung
springreactivekotlin
- 0.0.1-SNAPSHOT
jar
springreactivekotlin
Demo project for Spring Boot
- parent-boot-2
+ parent-kotlin
com.baeldung
- 0.0.1-SNAPSHOT
- ../parent-boot-2
+ 1.0.0-SNAPSHOT
+ ../parent-kotlin
@@ -31,15 +28,7 @@
com.fasterxml.jackson.module
jackson-module-kotlin
-
- org.jetbrains.kotlin
- kotlin-stdlib-jdk8
-
-
- org.jetbrains.kotlin
- kotlin-reflect
-
-
+
org.springframework.boot
spring-boot-starter-test
@@ -53,38 +42,17 @@
- ${project.basedir}/src/main/kotlin
- ${project.basedir}/src/test/kotlin
-
- org.springframework.boot
- spring-boot-maven-plugin
-
kotlin-maven-plugin
org.jetbrains.kotlin
- ${kotlin-maven-plugin.version}
+ ${kotlin.version}
-Xjsr305=strict
-
- spring
-
-
-
- org.jetbrains.kotlin
- kotlin-maven-allopen
- ${kotlin.version}
-
-
-
-
- 1.2.41
- 1.2.60
-
diff --git a/spring-rest-full/README.md b/spring-rest-full/README.md
index 0dd25b276b..b8fef9cb82 100644
--- a/spring-rest-full/README.md
+++ b/spring-rest-full/README.md
@@ -16,7 +16,6 @@ The "Learn Spring Security" Classes: http://github.learnspringsecurity.com
- [Introduction to Spring Data JPA](http://www.baeldung.com/the-persistence-layer-with-spring-data-jpa)
- [Project Configuration with Spring](http://www.baeldung.com/project-configuration-with-spring)
- [Metrics for your Spring REST API](http://www.baeldung.com/spring-rest-api-metrics)
-- [Spring RestTemplate Tutorial](http://www.baeldung.com/rest-template)
- [Bootstrap a Web Application with Spring 4](http://www.baeldung.com/bootstraping-a-web-application-with-spring-and-java-based-configuration)
- [Build a REST API with Spring 4 and Java Config](http://www.baeldung.com/building-a-restful-web-service-with-spring-and-java-based-configuration)
- [Error Handling for REST with Spring](http://www.baeldung.com/exception-handling-for-rest-with-spring)
diff --git a/spring-rest-full/pom.xml b/spring-rest-full/pom.xml
index 4d328361ca..baa1ebf51a 100644
--- a/spring-rest-full/pom.xml
+++ b/spring-rest-full/pom.xml
@@ -1,327 +1,344 @@
- 4.0.0
- com.baeldung
- spring-rest-full
- 0.1-SNAPSHOT
- spring-rest-full
- war
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+ com.baeldung
+ spring-rest-full
+ 0.1-SNAPSHOT
+ spring-rest-full
+ war
-
- parent-boot-1
- com.baeldung
- 0.0.1-SNAPSHOT
- ../parent-boot-1
-
+
+ parent-boot-1
+ com.baeldung
+ 0.0.1-SNAPSHOT
+ ../parent-boot-1
+
-
+
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter-actuator
-
-
- org.aspectj
- aspectjweaver
-
-
- org.apache.tomcat.embed
- tomcat-embed-jasper
- provided
-
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.aspectj
+ aspectjweaver
+
+
+ org.apache.tomcat.embed
+ tomcat-embed-jasper
+ provided
+
-
+
-
- org.springframework
- spring-core
-
-
- commons-logging
- commons-logging
-
-
-
-
- org.springframework
- spring-context
-
-
- org.springframework
- spring-jdbc
-
-
- org.springframework
- spring-beans
-
-
- org.springframework
- spring-aop
-
-
- org.springframework
- spring-tx
-
-
- org.springframework
- spring-expression
-
-
- org.springframework
- spring-web
-
-
- org.springframework
- spring-webmvc
-
-
- org.springframework.data
- spring-data-commons
-
+
+ org.springframework
+ spring-core
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+ org.springframework
+ spring-context
+
+
+ org.springframework
+ spring-jdbc
+
+
+ org.springframework
+ spring-beans
+
+
+ org.springframework
+ spring-aop
+
+
+ org.springframework
+ spring-tx
+
+
+ org.springframework
+ spring-expression
+
+
+ org.springframework
+ spring-web
+
+
+ org.springframework
+ spring-webmvc
+
+
+ org.springframework.data
+ spring-data-commons
+
-
+
-
- org.springframework.boot
- spring-boot-starter-tomcat
-
+
+ org.springframework.boot
+ spring-boot-starter-tomcat
+
-
+
-
- org.apache.httpcomponents
- httpclient
-
-
- commons-logging
- commons-logging
-
-
-
-
- org.apache.httpcomponents
- httpcore
-
+
+ org.apache.httpcomponents
+ httpclient
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+ org.apache.httpcomponents
+ httpcore
+
-
+
-
- org.springframework
- spring-orm
-
-
- org.springframework.data
- spring-data-jpa
-
-
- org.hibernate
- hibernate-entitymanager
-
-
- xml-apis
- xml-apis
-
-
- org.javassist
- javassist
-
-
- mysql
- mysql-connector-java
- runtime
-
-
- com.h2database
- h2
-
+
+ org.springframework
+ spring-orm
+
+
+ org.springframework.data
+ spring-data-jpa
+
+
+ org.hibernate
+ hibernate-entitymanager
+
+
+ xml-apis
+ xml-apis
+
+
+ org.javassist
+ javassist
+
+
+ mysql
+ mysql-connector-java
+ runtime
+
+
+ com.h2database
+ h2
+
-
+
-
- javax.servlet
- javax.servlet-api
- provided
-
-
- javax.servlet
- jstl
- runtime
-
+
+ javax.servlet
+ javax.servlet-api
+ provided
+
+
+ javax.servlet
+ jstl
+ runtime
+
-
-
- com.fasterxml.jackson.core
- jackson-databind
-
-
- com.thoughtworks.xstream
- xstream
- ${xstream.version}
-
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ com.thoughtworks.xstream
+ xstream
+ ${xstream.version}
+
-
+
-
- com.google.guava
- guava
- ${guava.version}
-
+
+ com.google.guava
+ guava
+ ${guava.version}
+
-
+
-
- org.springframework
- spring-test
- test
-
+
+ org.springframework
+ spring-test
+ test
+
-
-
-
-
-
-
- org.hamcrest
- hamcrest-library
- test
-
+
+
+
+
+
+
+ org.hamcrest
+ hamcrest-library
+ test
+
-
- org.mockito
- mockito-core
- test
-
+
+ org.mockito
+ mockito-core
+ test
+
-
+
-
- spring-rest-full
-
-
- src/main/resources
- true
-
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
-
-
- org.codehaus.cargo
- cargo-maven2-plugin
- ${cargo-maven2-plugin.version}
-
- true
-
- jetty8x
- embedded
-
-
-
-
-
-
- 8082
-
-
-
-
-
-
- com.mysema.maven
- apt-maven-plugin
- ${apt-maven-plugin.version}
-
-
-
- process
-
-
- target/generated-sources/java
- com.querydsl.apt.jpa.JPAAnnotationProcessor
-
-
-
-
-
-
+
+ spring-rest-full
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ 3
+ true
+
+ **/*IntegrationTest.java
+ **/*IntTest.java
+ **/*LongRunningUnitTest.java
+ **/*ManualTest.java
+ **/*LiveTest.java
+ **/*TestSuite.java
+
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+ ${cargo-maven2-plugin.version}
+
+ true
+
+ jetty8x
+ embedded
+
+
+
+
+
+
+ 8082
+
+
+
+
+
+
+ com.mysema.maven
+ apt-maven-plugin
+ ${apt-maven-plugin.version}
+
+
+
+ process
+
+
+ target/generated-sources/java
+ com.querydsl.apt.jpa.JPAAnnotationProcessor
+
+
+
+
+
+
-
-
- live
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- integration-test
-
- test
-
-
-
- **/*IntegrationTest.java
- **/*IntTest.java
-
-
- **/*LiveTest.java
-
-
-
-
-
-
- json
-
-
-
-
- org.codehaus.cargo
- cargo-maven2-plugin
-
- false
-
-
-
- start-server
- pre-integration-test
-
- start
-
-
-
- stop-server
- post-integration-test
-
- stop
-
-
-
-
-
-
-
-
+
+
+ live
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ **/*IntegrationTest.java
+ **/*IntTest.java
+
+
+ **/*LiveTest.java
+
+
+
+
+
+
+ json
+
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+
+ false
+
+
+
+ start-server
+ pre-integration-test
+
+ start
+
+
+
+ stop-server
+ post-integration-test
+
+ stop
+
+
+
+
+
+
+
+
-
-
- 1.4.9
+
+
+ 1.4.9
-
- 19.0
- 3.5
+
+ 19.0
+ 3.5
-
- 1.6.1
- 1.1.3
-
+
+ 1.6.1
+ 1.1.3
+
\ No newline at end of file
diff --git a/spring-rest-simple/README.md b/spring-rest-simple/README.md
index ae853ba787..57d6f50887 100644
--- a/spring-rest-simple/README.md
+++ b/spring-rest-simple/README.md
@@ -6,5 +6,4 @@
- [Spring RequestMapping](http://www.baeldung.com/spring-requestmapping)
- [ETags for REST with Spring](http://www.baeldung.com/etags-for-rest-with-spring)
- [Spring and Apache FileUpload](http://www.baeldung.com/spring-apache-file-upload)
-- [Spring RestTemplate Error Handling](http://www.baeldung.com/spring-rest-template-error-handling)
- [Test a REST API with curl](http://www.baeldung.com/curl-rest)
diff --git a/spring-rest-simple/pom.xml b/spring-rest-simple/pom.xml
index f5ce46ade4..004c925a8f 100644
--- a/spring-rest-simple/pom.xml
+++ b/spring-rest-simple/pom.xml
@@ -1,349 +1,339 @@
- 4.0.0
- com.baeldung
- spring-rest-simple
- 0.1-SNAPSHOT
- spring-rest-simple
- war
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+ com.baeldung
+ spring-rest-simple
+ 0.1-SNAPSHOT
+ spring-rest-simple
+ war
-
- parent-boot-1
- com.baeldung
- 0.0.1-SNAPSHOT
- ../parent-boot-1
-
+
+ parent-boot-1
+ com.baeldung
+ 0.0.1-SNAPSHOT
+ ../parent-boot-1
+
-
+
-
-
- org.springframework.boot
- spring-boot-starter-thymeleaf
-
-
- org.springframework.boot
- spring-boot-starter-actuator
-
-
- org.springframework.boot
- spring-boot-devtools
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.springframework.boot
+ spring-boot-devtools
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
-
-
- org.springframework
- spring-web
-
-
- commons-logging
- commons-logging
-
-
-
-
- org.springframework
- spring-webmvc
-
-
- org.springframework
- spring-oxm
-
-
- commons-fileupload
- commons-fileupload
- ${commons-fileupload.version}
-
-
+
+
+ org.springframework
+ spring-web
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+ org.springframework
+ spring-webmvc
+
+
+ org.springframework
+ spring-oxm
+
+
+ commons-fileupload
+ commons-fileupload
+ ${commons-fileupload.version}
+
+
-
- javax.servlet
- javax.servlet-api
- provided
-
-
- javax.servlet
- jstl
- runtime
-
+
+ javax.servlet
+ javax.servlet-api
+ provided
+
+
+ javax.servlet
+ jstl
+ runtime
+
-
+
-
- com.fasterxml.jackson.core
- jackson-databind
-
-
- com.fasterxml.jackson.dataformat
- jackson-dataformat-xml
-
-
- com.thoughtworks.xstream
- xstream
- ${xstream.version}
-
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-xml
+
+
+ com.thoughtworks.xstream
+ xstream
+ ${xstream.version}
+
-
+
-
- com.google.guava
- guava
- ${guava.version}
-
-
- org.apache.commons
- commons-lang3
- ${commons-lang3.version}
-
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
-
+
-
- org.slf4j
- slf4j-api
-
-
- ch.qos.logback
- logback-classic
-
-
-
- org.slf4j
- jcl-over-slf4j
-
-
+
+ org.slf4j
+ slf4j-api
+
+
+ ch.qos.logback
+ logback-classic
+
+
+
+ org.slf4j
+ jcl-over-slf4j
+
+
-
+
-
- com.squareup.okhttp3
- okhttp
- ${com.squareup.okhttp3.version}
-
+
+ com.squareup.okhttp3
+ okhttp
+ ${com.squareup.okhttp3.version}
+
-
+
-
- junit
- junit
- test
-
-
- org.hamcrest
- hamcrest-core
- test
-
-
- org.hamcrest
- hamcrest-library
- test
-
-
- org.mockito
- mockito-core
- test
-
-
- org.springframework
- spring-test
-
-
- com.jayway.restassured
- rest-assured
- ${jayway-rest-assured.version}
-
-
- com.google.protobuf
- protobuf-java
- ${protobuf-java.version}
-
-
- com.googlecode.protobuf-java-format
- protobuf-java-format
- ${protobuf-java-format.version}
-
-
- com.esotericsoftware
- kryo
- ${kryo.version}
-
-
- com.jayway.jsonpath
- json-path
-
-
+
+ junit
+ junit
+ test
+
+
+ org.hamcrest
+ hamcrest-core
+ test
+
+
+ org.hamcrest
+ hamcrest-library
+ test
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+ org.springframework
+ spring-test
+
+
+ com.jayway.restassured
+ rest-assured
+ ${jayway-rest-assured.version}
+
+
+ com.google.protobuf
+ protobuf-java
+ ${protobuf-java.version}
+
+
+ com.googlecode.protobuf-java-format
+ protobuf-java-format
+ ${protobuf-java-format.version}
+
+
+ com.esotericsoftware
+ kryo
+ ${kryo.version}
+
+
+ com.jayway.jsonpath
+ json-path
+
+
-
- spring-rest
-
-
- src/main/resources
- true
-
-
-
+
+ spring-rest
+
+
+ src/main/resources
+ true
+
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+ ${cargo-maven2-plugin.version}
+
+
+
+ tomcat8x
+ embedded
+
+
+
+
+
+
+ 8082
+
+
+
+
+
+
-
- org.apache.maven.plugins
- maven-compiler-plugin
- 3.7.0
-
-
- 1.8
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
- 3
- true
-
- **/*IntegrationTest.java
- **/*IntTest.java
- **/*LongRunningUnitTest.java
- **/*ManualTest.java
- **/JdbcTest.java
- **/*LiveTest.java
-
-
-
-
- org.codehaus.cargo
- cargo-maven2-plugin
- ${cargo-maven2-plugin.version}
-
-
-
- tomcat8x
- embedded
-
-
-
-
-
-
- 8082
-
-
-
-
-
-
+
+
+ integration
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+
+
+ start-server
+ pre-integration-test
+
+ start
+
+
+
+ stop-server
+ post-integration-test
+
+ stop
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ none
+
+
+ **/*IntegrationTest.java
+ **/*IntTest.java
+
+
+
+
+
+
+
+
+
+
+ live
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+
+
+ start-server
+ pre-integration-test
+
+ start
+
+
+
+ stop-server
+ post-integration-test
+
+ stop
+
+
+
+
-
-
- integration
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- integration-test
-
- test
-
-
-
- none
-
-
- **/*IntegrationTest.java
- **/*IntTest.java
-
-
-
-
-
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ none
+
+
+ **/*LiveTest.java
+
+
+ cargo
+
+
+
+
+
-
-
-
-
- live
-
-
-
- org.codehaus.cargo
- cargo-maven2-plugin
-
-
- start-server
- pre-integration-test
-
- start
-
-
-
- stop-server
- post-integration-test
-
- stop
-
-
-
-
+
+
+
+
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- integration-test
-
- test
-
-
-
- none
-
-
- **/*LiveTest.java
-
-
- cargo
-
-
-
-
-
+
+ 1.3.3
+ 4.0.0
+ 1.4
+ 3.1.0
+ 3.5
+ 1.4.9
-
-
-
-
+
+ 20.0
+ 2.9.0
-
- 1.3.3
- 4.0.0
- 1.4
- 3.1.0
- 3.5
- 1.4.9
+
+ 1.6.0
+ 3.0.4
-
- 20.0
- 2.9.0
+
+ 3.4.1
-
- 1.6.0
- 3.0.4
-
-
- 3.4.1
-
- 2.2.0
-
+ 2.2.0
+
diff --git a/spring-rest-simple/src/test/java/org/baeldung/client/RestTemplateBasicLiveTest.java b/spring-rest-simple/src/test/java/org/baeldung/client/RestTemplateBasicLiveTest.java
deleted file mode 100644
index 40e93f2d89..0000000000
--- a/spring-rest-simple/src/test/java/org/baeldung/client/RestTemplateBasicLiveTest.java
+++ /dev/null
@@ -1,64 +0,0 @@
-package org.baeldung.client;
-
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.CoreMatchers.is;
-import static org.hamcrest.CoreMatchers.notNullValue;
-import static org.hamcrest.MatcherAssert.assertThat;
-
-import java.io.IOException;
-
-import org.baeldung.web.dto.Foo;
-import org.junit.Before;
-import org.junit.Test;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.client.RestTemplate;
-
-public class RestTemplateBasicLiveTest {
-
- private RestTemplate restTemplate;
-
- private static final String fooResourceUrl = String.format("http://localhost:%d/spring-rest/foos", 8082);
-
- @Before
- public void beforeTest() {
- restTemplate = new RestTemplate();
- }
-
- // GET
-
- @Test
- public void givenResourceUrl_whenSendGetForRequestEntity_thenStatusOk() throws IOException {
- final ResponseEntity response = restTemplate.getForEntity(fooResourceUrl + "/1", String.class);
-
- assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));
- }
-
- @Test
- public void givenResourceUrl_whenRetrievingResource_thenCorrect() throws IOException {
- final Foo foo = restTemplate.getForObject(fooResourceUrl + "/1", Foo.class);
-
- assertThat(foo.getName(), notNullValue());
- assertThat(foo.getId(), is(1L));
- }
-
- // PUT
-
- @Test
- public void givenFooService_whenPutObject_thenUpdatedObjectIsReturned() {
- final HttpHeaders headers = new HttpHeaders();
- headers.setContentType(MediaType.APPLICATION_JSON);
- final Foo foo = new Foo(1, "newName");
- final String resourceUrl = fooResourceUrl + "/1";
- final HttpEntity requestUpdate = new HttpEntity<>(foo, headers);
- final ResponseEntity response = restTemplate.exchange(resourceUrl, HttpMethod.PUT, requestUpdate, Foo.class);
-
- assertThat(foo.getName(), is(response.getBody()
- .getName()));
- }
-
-}
diff --git a/spring-rest/README.md b/spring-rest/README.md
index 6ef86ad015..d449a4d92a 100644
--- a/spring-rest/README.md
+++ b/spring-rest/README.md
@@ -14,7 +14,6 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring
- [Introduction to FindBugs](http://www.baeldung.com/intro-to-findbugs)
- [A Custom Media Type for a Spring REST API](http://www.baeldung.com/spring-rest-custom-media-type)
- [HTTP PUT vs HTTP PATCH in a REST API](http://www.baeldung.com/http-put-patch-difference-spring)
-- [Exploring the Spring Boot TestRestTemplate](http://www.baeldung.com/spring-boot-testresttemplate)
- [Spring – Log Incoming Requests](http://www.baeldung.com/spring-http-logging)
- [RequestBody and ResponseBody Annotations](http://www.baeldung.com/requestbody-and-responsebody-annotations)
- [Introduction to CheckStyle](http://www.baeldung.com/checkstyle-java)
@@ -22,6 +21,5 @@ The "REST With Spring" Classes: http://bit.ly/restwithspring
- [Guide to DeferredResult in Spring](http://www.baeldung.com/spring-deferred-result)
- [Spring Custom Property Editor](http://www.baeldung.com/spring-mvc-custom-property-editor)
- [Using the Spring RestTemplate Interceptor](http://www.baeldung.com/spring-rest-template-interceptor)
-- [Configure a RestTemplate with RestTemplateBuilder](http://www.baeldung.com/spring-rest-template-builder)
- [Get and Post Lists of Objects with RestTemplate](http://www.baeldung.com/spring-rest-template-list)
- [How to Set a Header on a Response with Spring 5](http://www.baeldung.com/spring-response-header)
diff --git a/spring-rest/pom.xml b/spring-rest/pom.xml
index 403ed4cfde..bd17811801 100644
--- a/spring-rest/pom.xml
+++ b/spring-rest/pom.xml
@@ -1,343 +1,305 @@
- 4.0.0
- com.baeldung
- spring-rest
- 0.1-SNAPSHOT
- spring-rest
- war
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ 4.0.0
+ spring-rest
+ 0.1-SNAPSHOT
+ spring-rest
+ war
-
- parent-boot-2
- com.baeldung
- 0.0.1-SNAPSHOT
- ../parent-boot-2
-
+
+ parent-boot-2
+ com.baeldung
+ 0.0.1-SNAPSHOT
+ ../parent-boot-2
+
-
+
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter-thymeleaf
-
-
- org.springframework.boot
- spring-boot-starter-actuator
-
-
- org.springframework.boot
- spring-boot-devtools
-
-
- org.springframework.boot
- spring-boot-starter-test
-
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ org.springframework.boot
+ spring-boot-starter-thymeleaf
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.springframework.boot
+ spring-boot-devtools
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+
-
-
- org.springframework
- spring-web
-
-
- commons-logging
- commons-logging
-
-
-
-
- org.springframework
- spring-webmvc
-
-
- org.springframework
- spring-oxm
-
-
- commons-fileupload
- commons-fileupload
- ${commons-fileupload.version}
-
+
+
+ org.springframework
+ spring-web
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+ org.springframework
+ spring-webmvc
+
+
+ org.springframework
+ spring-oxm
+
+
+ commons-fileupload
+ commons-fileupload
+ ${commons-fileupload.version}
+
-
-
- javax.servlet
- javax.servlet-api
- provided
-
+
+
+ javax.servlet
+ javax.servlet-api
+ provided
+
-
- javax.servlet
- jstl
- runtime
-
+
+ javax.servlet
+ jstl
+ runtime
+
-
-
- com.fasterxml.jackson.core
- jackson-databind
-
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
-
- com.fasterxml.jackson.dataformat
- jackson-dataformat-xml
-
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-xml
+
-
- com.thoughtworks.xstream
- xstream
- ${xstream.version}
-
+
+ com.thoughtworks.xstream
+ xstream
+ ${xstream.version}
+
-
-
- com.google.guava
- guava
- ${guava.version}
-
-
- org.apache.commons
- commons-lang3
- ${commons-lang3.version}
-
+
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
+ org.apache.commons
+ commons-lang3
+
-
-
- com.squareup.okhttp3
- okhttp
- ${com.squareup.okhttp3.version}
-
+
+
+ com.squareup.okhttp3
+ okhttp
+ ${com.squareup.okhttp3.version}
+
-
-
- org.hamcrest
- hamcrest-core
- test
-
-
- org.hamcrest
- hamcrest-library
- test
-
-
- org.mockito
- mockito-core
- test
-
-
- org.springframework
- spring-test
-
+
+
+ org.hamcrest
+ hamcrest-core
+ test
+
+
+ org.hamcrest
+ hamcrest-library
+ test
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+ org.springframework
+ spring-test
+
-
-
- com.google.protobuf
- protobuf-java
- ${protobuf-java.version}
-
-
- com.googlecode.protobuf-java-format
- protobuf-java-format
- ${protobuf-java-format.version}
-
-
- com.esotericsoftware
- kryo
- ${kryo.version}
-
-
- com.jayway.jsonpath
- json-path
-
+
+
+ com.google.protobuf
+ protobuf-java
+ ${protobuf-java.version}
+
+
+ com.googlecode.protobuf-java-format
+ protobuf-java-format
+ ${protobuf-java-format.version}
+
+
+ com.esotericsoftware
+ kryo
+ ${kryo.version}
+
+
+ com.jayway.jsonpath
+ json-path
+
-
-
- commons-io
- commons-io
- 2.4
-
-
- au.com.dius
- pact-jvm-provider-junit_2.11
- ${pact.version}
-
-
- io.rest-assured
- rest-assured
- ${rest-assured.version}
-
+
+
+ commons-io
+ commons-io
+ 2.4
+
+
+ au.com.dius
+ pact-jvm-provider-junit_2.11
+ ${pact.version}
+
+
+ io.rest-assured
+ rest-assured
+
-
+
-
- spring-rest
-
-
- src/main/resources
- true
-
-
+
+ spring-rest
+
+
+ src/main/resources
+ true
+
+
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
- true
-
-
-
- org.apache.maven.plugins
- maven-war-plugin
-
-
- org.codehaus.cargo
- cargo-maven2-plugin
- ${cargo-maven2-plugin.version}
-
-
- tomcat8x
- embedded
-
-
-
-
-
-
- 8082
-
-
-
-
-
- org.apache.maven.plugins
- maven-checkstyle-plugin
- ${checkstyle-maven-plugin.version}
-
- checkstyle.xml
-
-
-
-
- check
-
-
-
-
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
- 3
- true
-
- **/*IntegrationTest.java
- **/*IntTest.java
- **/*LongRunningUnitTest.java
- **/*ManualTest.java
- **/*LiveTest.java
-
-
-
-
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+ ${checkstyle-maven-plugin.version}
+
+ checkstyle.xml
+
+
+
+
+ check
+
+
+
+
+
+
-
+
+
+ live
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+
+
+ start-server
+ pre-integration-test
+
+ start
+
+
+
+ stop-server
+ post-integration-test
+
+ stop
+
+
+
+
-
-
- live
-
-
-
- org.codehaus.cargo
- cargo-maven2-plugin
-
-
- start-server
- pre-integration-test
-
- start
-
-
-
- stop-server
- post-integration-test
-
- stop
-
-
-
-
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ none
+
+
+ **/*LiveTest.java
+
+
+ cargo
+
+
+
+
+
-
- org.apache.maven.plugins
- maven-surefire-plugin
-
-
- integration-test
-
- test
-
-
-
- none
-
-
- **/*LiveTest.java
-
-
- cargo
-
-
-
-
-
+
+
+
-
-
-
+
-
+
+
+
+ org.apache.maven.plugins
+ maven-checkstyle-plugin
+ ${checkstyle-maven-plugin.version}
+
+ checkstyle.xml
+
+
+
+
-
-
-
- org.apache.maven.plugins
- maven-checkstyle-plugin
- ${checkstyle-maven-plugin.version}
-
- checkstyle.xml
-
-
-
-
+
+ 1.3.2
+ 4.0.0
+ 1.4
+ 3.1.0
+ 3.5
+ 1.4.9
-
- 1.3.2
- 4.0.0
- 1.4
- 3.1.0
- 3.5
- 1.4.9
+
+ 20.0
-
- 20.0
+
+ 1.6.0
+ 3.0.4
+ 3.0.0
+ false
+
+ 3.4.1
-
- 1.6.0
- 3.0.4
- 3.0.0
- false
-
- 3.4.1
-
- 2.2.0
- 3.5.11
- 3.1.0
-
+ 2.2.0
+ 3.5.11
+ 3.1.0
+
diff --git a/spring-rest/src/test/java/org/baeldung/client/TestRestTemplateBasicLiveTest.java b/spring-rest/src/test/java/org/baeldung/client/TestRestTemplateBasicLiveTest.java
deleted file mode 100644
index a8a71c7d73..0000000000
--- a/spring-rest/src/test/java/org/baeldung/client/TestRestTemplateBasicLiveTest.java
+++ /dev/null
@@ -1,117 +0,0 @@
-package org.baeldung.client;
-
-import okhttp3.Request;
-import okhttp3.RequestBody;
-import org.junit.Before;
-import org.junit.Test;
-import org.springframework.boot.test.web.client.TestRestTemplate;
-import org.springframework.boot.web.client.RestTemplateBuilder;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.MediaType;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.client.RestTemplate;
-
-import static org.baeldung.client.Consts.APPLICATION_PORT;
-import static org.hamcrest.CoreMatchers.equalTo;
-import static org.hamcrest.MatcherAssert.assertThat;
-import static org.junit.Assert.assertTrue;
-
-public class TestRestTemplateBasicLiveTest {
-
- private RestTemplateBuilder restTemplate;
- private static final String FOO_RESOURCE_URL = "http://localhost:" + APPLICATION_PORT + "/spring-rest/foos";
- private static final String URL_SECURED_BY_AUTHENTICATION = "http://httpbin.org/basic-auth/user/passwd";
- private static final String BASE_URL = "http://localhost:" + APPLICATION_PORT + "/spring-rest";
-
- @Before
- public void beforeTest() {
- restTemplate = new RestTemplateBuilder();
- }
-
- // GET
- @Test
- public void givenTestRestTemplate_whenSendGetForEntity_thenStatusOk() {
- TestRestTemplate testRestTemplate = new TestRestTemplate();
- ResponseEntity response = testRestTemplate.getForEntity(FOO_RESOURCE_URL + "/1", String.class);
- assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));
- }
-
- @Test
- public void givenRestTemplateWrapper_whenSendGetForEntity_thenStatusOk() {
- TestRestTemplate testRestTemplate = new TestRestTemplate(restTemplate);
- ResponseEntity response = testRestTemplate.getForEntity(FOO_RESOURCE_URL + "/1", String.class);
- assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));
- }
-
- @Test
- public void givenRestTemplateBuilderWrapper_whenSendGetForEntity_thenStatusOk() {
- RestTemplateBuilder restTemplateBuilder = new RestTemplateBuilder();
- restTemplateBuilder.build();
- TestRestTemplate testRestTemplate = new TestRestTemplate(restTemplateBuilder);
- ResponseEntity response = testRestTemplate.getForEntity(FOO_RESOURCE_URL + "/1", String.class);
- assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));
- }
-
- @Test
- public void givenRestTemplateWrapperWithCredentials_whenSendGetForEntity_thenStatusOk() {
- TestRestTemplate testRestTemplate = new TestRestTemplate(restTemplate, "user", "passwd");
- ResponseEntity response = testRestTemplate.getForEntity(URL_SECURED_BY_AUTHENTICATION,
- String.class);
- assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));
- }
-
- @Test
- public void givenTestRestTemplateWithCredentials_whenSendGetForEntity_thenStatusOk() {
- TestRestTemplate testRestTemplate = new TestRestTemplate("user", "passwd");
- ResponseEntity response = testRestTemplate.getForEntity(URL_SECURED_BY_AUTHENTICATION,
- String.class);
- assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));
- }
-
- @Test
- public void givenTestRestTemplateWithBasicAuth_whenSendGetForEntity_thenStatusOk() {
- TestRestTemplate testRestTemplate = new TestRestTemplate();
- ResponseEntity response = testRestTemplate.withBasicAuth("user", "passwd").
- getForEntity(URL_SECURED_BY_AUTHENTICATION, String.class);
- assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));
- }
-
- @Test
- public void givenTestRestTemplateWithCredentialsAndEnabledCookies_whenSendGetForEntity_thenStatusOk() {
- TestRestTemplate testRestTemplate = new TestRestTemplate("user", "passwd", TestRestTemplate.
- HttpClientOption.ENABLE_COOKIES);
- ResponseEntity response = testRestTemplate.getForEntity(URL_SECURED_BY_AUTHENTICATION,
- String.class);
- assertThat(response.getStatusCode(), equalTo(HttpStatus.OK));
- }
-
- // HEAD
- @Test
- public void givenFooService_whenCallHeadForHeaders_thenReceiveAllHeaders() {
- TestRestTemplate testRestTemplate = new TestRestTemplate();
- final HttpHeaders httpHeaders = testRestTemplate.headForHeaders(FOO_RESOURCE_URL);
- assertTrue(httpHeaders.getContentType().includes(MediaType.APPLICATION_JSON));
- }
-
- // POST
- @Test
- public void givenService_whenPostForObject_thenCreatedObjectIsReturned() {
- TestRestTemplate testRestTemplate = new TestRestTemplate("user", "passwd");
- final RequestBody body = RequestBody.create(okhttp3.MediaType.parse("text/html; charset=utf-8"),
- "{\"id\":1,\"name\":\"Jim\"}");
- final Request request = new Request.Builder().url(BASE_URL + "/users/detail").post(body).build();
- testRestTemplate.postForObject(URL_SECURED_BY_AUTHENTICATION, request, String.class);
- }
-
- // PUT
- @Test
- public void givenService_whenPutForObject_thenCreatedObjectIsReturned() {
- TestRestTemplate testRestTemplate = new TestRestTemplate("user", "passwd");
- final RequestBody body = RequestBody.create(okhttp3.MediaType.parse("text/html; charset=utf-8"),
- "{\"id\":1,\"name\":\"Jim\"}");
- final Request request = new Request.Builder().url(BASE_URL + "/users/detail").post(body).build();
- testRestTemplate.put(URL_SECURED_BY_AUTHENTICATION, request, String.class);
- }
-
-}
diff --git a/spring-resttemplate/.gitignore b/spring-resttemplate/.gitignore
new file mode 100644
index 0000000000..83c05e60c8
--- /dev/null
+++ b/spring-resttemplate/.gitignore
@@ -0,0 +1,13 @@
+*.class
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+
+# Packaged files #
+*.jar
+*.war
+*.ear
\ No newline at end of file
diff --git a/spring-resttemplate/README.md b/spring-resttemplate/README.md
new file mode 100644
index 0000000000..bf8c56e6ec
--- /dev/null
+++ b/spring-resttemplate/README.md
@@ -0,0 +1,10 @@
+## Spring REST Example Project
+
+### The Course
+The "REST With Spring" Classes: http://bit.ly/restwithspring
+
+### Relevant Articles:
+- [Spring RestTemplate Tutorial](http://www.baeldung.com/rest-template)
+- [Exploring the Spring Boot TestRestTemplate](http://www.baeldung.com/spring-boot-testresttemplate)
+- [Spring RestTemplate Error Handling](http://www.baeldung.com/spring-rest-template-error-handling)
+- [Configure a RestTemplate with RestTemplateBuilder](http://www.baeldung.com/spring-rest-template-builder)
\ No newline at end of file
diff --git a/spring-resttemplate/pom.xml b/spring-resttemplate/pom.xml
new file mode 100644
index 0000000000..481104372a
--- /dev/null
+++ b/spring-resttemplate/pom.xml
@@ -0,0 +1,297 @@
+
+ 4.0.0
+ com.baeldung
+ spring-resttemplate
+ 0.1-SNAPSHOT
+ spring-resttemplate
+ war
+
+
+ parent-boot-1
+ com.baeldung
+ 0.0.1-SNAPSHOT
+ ../parent-boot-1
+
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-starter-actuator
+
+
+ org.springframework.boot
+ spring-boot-devtools
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+
+
+ org.springframework
+ spring-web
+
+
+ commons-logging
+ commons-logging
+
+
+
+
+ org.springframework
+ spring-webmvc
+
+
+ org.springframework
+ spring-oxm
+
+
+
+
+
+ com.fasterxml.jackson.core
+ jackson-databind
+
+
+ com.fasterxml.jackson.dataformat
+ jackson-dataformat-xml
+
+
+ com.thoughtworks.xstream
+ xstream
+ ${xstream.version}
+
+
+
+
+
+ com.google.guava
+ guava
+ ${guava.version}
+
+
+ org.apache.commons
+ commons-lang3
+ ${commons-lang3.version}
+
+
+
+
+
+ org.slf4j
+ slf4j-api
+
+
+ ch.qos.logback
+ logback-classic
+
+
+
+ org.slf4j
+ jcl-over-slf4j
+
+
+
+
+
+
+ com.squareup.okhttp3
+ okhttp
+ ${com.squareup.okhttp3.version}
+
+
+
+
+
+ junit
+ junit
+ test
+
+
+ org.hamcrest
+ hamcrest-core
+ test
+
+
+ org.hamcrest
+ hamcrest-library
+ test
+
+
+ org.mockito
+ mockito-core
+ test
+
+
+ org.springframework
+ spring-test
+
+
+
+
+ spring-resttemplate
+
+
+ src/main/resources
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.7.0
+
+
+ 1.8
+
+
+
+ org.apache.maven.plugins
+ maven-war-plugin
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ 3
+ true
+
+ **/*IntegrationTest.java
+ **/*IntTest.java
+ **/*LongRunningUnitTest.java
+ **/*ManualTest.java
+ **/JdbcTest.java
+ **/*LiveTest.java
+
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+ ${cargo-maven2-plugin.version}
+
+
+
+ tomcat8x
+ embedded
+
+
+
+
+
+
+ 8082
+
+
+
+
+
+
+
+
+
+ integration
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ none
+
+
+ **/*IntegrationTest.java
+ **/*IntTest.java
+
+
+
+
+
+
+
+
+
+
+ live
+
+
+
+ org.codehaus.cargo
+ cargo-maven2-plugin
+
+
+ start-server
+ pre-integration-test
+
+ start
+
+
+
+ stop-server
+ post-integration-test
+
+ stop
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+
+ integration-test
+
+ test
+
+
+
+ none
+
+
+ **/*LiveTest.java
+
+
+ cargo
+
+
+
+
+
+
+
+
+
+
+
+
+ 3.5
+ 1.4.9
+
+
+ 20.0
+
+
+ 1.6.0
+ 3.0.4
+
+
+ 3.4.1
+
+
+
diff --git a/spring-rest/src/main/java/org/baeldung/resttemplate/configuration/CustomClientHttpRequestInterceptor.java b/spring-resttemplate/src/main/java/org/baeldung/resttemplate/configuration/CustomClientHttpRequestInterceptor.java
similarity index 100%
rename from spring-rest/src/main/java/org/baeldung/resttemplate/configuration/CustomClientHttpRequestInterceptor.java
rename to spring-resttemplate/src/main/java/org/baeldung/resttemplate/configuration/CustomClientHttpRequestInterceptor.java
diff --git a/spring-rest/src/main/java/org/baeldung/resttemplate/configuration/CustomRestTemplateCustomizer.java b/spring-resttemplate/src/main/java/org/baeldung/resttemplate/configuration/CustomRestTemplateCustomizer.java
similarity index 100%
rename from spring-rest/src/main/java/org/baeldung/resttemplate/configuration/CustomRestTemplateCustomizer.java
rename to spring-resttemplate/src/main/java/org/baeldung/resttemplate/configuration/CustomRestTemplateCustomizer.java
diff --git a/spring-rest/src/main/java/org/baeldung/resttemplate/configuration/HelloController.java b/spring-resttemplate/src/main/java/org/baeldung/resttemplate/configuration/HelloController.java
similarity index 100%
rename from spring-rest/src/main/java/org/baeldung/resttemplate/configuration/HelloController.java
rename to spring-resttemplate/src/main/java/org/baeldung/resttemplate/configuration/HelloController.java
diff --git a/spring-rest/src/main/java/org/baeldung/resttemplate/configuration/RestTemplateConfigurationApplication.java b/spring-resttemplate/src/main/java/org/baeldung/resttemplate/configuration/RestTemplateConfigurationApplication.java
similarity index 100%
rename from spring-rest/src/main/java/org/baeldung/resttemplate/configuration/RestTemplateConfigurationApplication.java
rename to spring-resttemplate/src/main/java/org/baeldung/resttemplate/configuration/RestTemplateConfigurationApplication.java
diff --git a/spring-rest/src/main/java/org/baeldung/resttemplate/configuration/SpringConfig.java b/spring-resttemplate/src/main/java/org/baeldung/resttemplate/configuration/SpringConfig.java
similarity index 100%
rename from spring-rest/src/main/java/org/baeldung/resttemplate/configuration/SpringConfig.java
rename to spring-resttemplate/src/main/java/org/baeldung/resttemplate/configuration/SpringConfig.java
diff --git a/spring-resttemplate/src/main/java/org/baeldung/web/dto/Foo.java b/spring-resttemplate/src/main/java/org/baeldung/web/dto/Foo.java
new file mode 100644
index 0000000000..240b368b50
--- /dev/null
+++ b/spring-resttemplate/src/main/java/org/baeldung/web/dto/Foo.java
@@ -0,0 +1,45 @@
+package org.baeldung.web.dto;
+
+import com.thoughtworks.xstream.annotations.XStreamAlias;
+
+@XStreamAlias("Foo")
+public class Foo {
+ private long id;
+ private String name;
+
+ public Foo() {
+ super();
+ }
+
+ public Foo(final String name) {
+ super();
+
+ this.name = name;
+ }
+
+ public Foo(final long id, final String name) {
+ super();
+
+ this.id = id;
+ this.name = name;
+ }
+
+ // API
+
+ public long getId() {
+ return id;
+ }
+
+ public void setId(final long id) {
+ this.id = id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(final String name) {
+ this.name = name;
+ }
+
+}
\ No newline at end of file
diff --git a/spring-rest-simple/src/main/java/org/baeldung/web/exception/NotFoundException.java b/spring-resttemplate/src/main/java/org/baeldung/web/exception/NotFoundException.java
similarity index 100%
rename from spring-rest-simple/src/main/java/org/baeldung/web/exception/NotFoundException.java
rename to spring-resttemplate/src/main/java/org/baeldung/web/exception/NotFoundException.java
diff --git a/spring-rest-simple/src/main/java/org/baeldung/web/handler/RestTemplateResponseErrorHandler.java b/spring-resttemplate/src/main/java/org/baeldung/web/handler/RestTemplateResponseErrorHandler.java
similarity index 100%
rename from spring-rest-simple/src/main/java/org/baeldung/web/handler/RestTemplateResponseErrorHandler.java
rename to spring-resttemplate/src/main/java/org/baeldung/web/handler/RestTemplateResponseErrorHandler.java
diff --git a/spring-rest-simple/src/main/java/org/baeldung/web/model/Bar.java b/spring-resttemplate/src/main/java/org/baeldung/web/model/Bar.java
similarity index 100%
rename from spring-rest-simple/src/main/java/org/baeldung/web/model/Bar.java
rename to spring-resttemplate/src/main/java/org/baeldung/web/model/Bar.java
diff --git a/spring-rest-simple/src/main/java/org/baeldung/web/service/BarConsumerService.java b/spring-resttemplate/src/main/java/org/baeldung/web/service/BarConsumerService.java
similarity index 100%
rename from spring-rest-simple/src/main/java/org/baeldung/web/service/BarConsumerService.java
rename to spring-resttemplate/src/main/java/org/baeldung/web/service/BarConsumerService.java
diff --git a/spring-resttemplate/src/main/resources/application.properties b/spring-resttemplate/src/main/resources/application.properties
new file mode 100644
index 0000000000..1a26e3ad99
--- /dev/null
+++ b/spring-resttemplate/src/main/resources/application.properties
@@ -0,0 +1,2 @@
+server.port=8082
+server.servlet.context-path=/spring-rest
\ No newline at end of file
diff --git a/spring-resttemplate/src/main/resources/logback.xml b/spring-resttemplate/src/main/resources/logback.xml
new file mode 100644
index 0000000000..9f48d36486
--- /dev/null
+++ b/spring-resttemplate/src/main/resources/logback.xml
@@ -0,0 +1,23 @@
+
+
+
+
+ %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/spring-resttemplate/src/test/java/org/baeldung/client/Consts.java b/spring-resttemplate/src/test/java/org/baeldung/client/Consts.java
new file mode 100644
index 0000000000..b40561d9c3
--- /dev/null
+++ b/spring-resttemplate/src/test/java/org/baeldung/client/Consts.java
@@ -0,0 +1,5 @@
+package org.baeldung.client;
+
+public interface Consts {
+ int APPLICATION_PORT = 8082;
+}
diff --git a/spring-rest/src/test/java/org/baeldung/client/RestTemplateBasicLiveTest.java b/spring-resttemplate/src/test/java/org/baeldung/client/RestTemplateBasicLiveTest.java
similarity index 100%
rename from spring-rest/src/test/java/org/baeldung/client/RestTemplateBasicLiveTest.java
rename to spring-resttemplate/src/test/java/org/baeldung/client/RestTemplateBasicLiveTest.java
diff --git a/spring-rest-simple/src/test/java/org/baeldung/client/TestRestTemplateBasicLiveTest.java b/spring-resttemplate/src/test/java/org/baeldung/client/TestRestTemplateBasicLiveTest.java
similarity index 100%
rename from spring-rest-simple/src/test/java/org/baeldung/client/TestRestTemplateBasicLiveTest.java
rename to spring-resttemplate/src/test/java/org/baeldung/client/TestRestTemplateBasicLiveTest.java
diff --git a/spring-rest-simple/src/test/java/org/baeldung/web/handler/RestTemplateResponseErrorHandlerIntegrationTest.java b/spring-resttemplate/src/test/java/org/baeldung/web/handler/RestTemplateResponseErrorHandlerIntegrationTest.java
similarity index 100%
rename from spring-rest-simple/src/test/java/org/baeldung/web/handler/RestTemplateResponseErrorHandlerIntegrationTest.java
rename to spring-resttemplate/src/test/java/org/baeldung/web/handler/RestTemplateResponseErrorHandlerIntegrationTest.java
diff --git a/spring-resttemplate/src/test/resources/.gitignore b/spring-resttemplate/src/test/resources/.gitignore
new file mode 100644
index 0000000000..83c05e60c8
--- /dev/null
+++ b/spring-resttemplate/src/test/resources/.gitignore
@@ -0,0 +1,13 @@
+*.class
+
+#folders#
+/target
+/neoDb*
+/data
+/src/main/webapp/WEB-INF/classes
+*/META-INF/*
+
+# Packaged files #
+*.jar
+*.war
+*.ear
\ No newline at end of file
diff --git a/spring-security-mvc-boot/README.MD b/spring-security-mvc-boot/README.MD
index 32976b0896..0bae800b1e 100644
--- a/spring-security-mvc-boot/README.MD
+++ b/spring-security-mvc-boot/README.MD
@@ -9,3 +9,4 @@ The "REST With Spring" Classes: http://github.learnspringsecurity.com
- [Multiple Entry Points in Spring Security](http://www.baeldung.com/spring-security-multiple-entry-points)
- [Multiple Authentication Providers in Spring Security](http://www.baeldung.com/spring-security-multiple-auth-providers)
- [Granted Authority Versus Role in Spring Security](http://www.baeldung.com/spring-security-granted-authority-vs-role)
+- [Spring Data with Spring Security] (https://www.baeldung.com/spring-data-security)
diff --git a/spring-security-mvc-boot/pom.xml b/spring-security-mvc-boot/pom.xml
index a894c5713a..4090beab99 100644
--- a/spring-security-mvc-boot/pom.xml
+++ b/spring-security-mvc-boot/pom.xml
@@ -42,6 +42,10 @@
org.springframework.boot
spring-boot-starter-data-jpa
+
+ org.springframework.security
+ spring-security-data
+
com.h2database
h2
diff --git a/spring-data-spring-security/src/main/java/com/baeldung/AppConfig.java b/spring-security-mvc-boot/src/main/java/com/baeldung/AppConfig.java
similarity index 100%
rename from spring-data-spring-security/src/main/java/com/baeldung/AppConfig.java
rename to spring-security-mvc-boot/src/main/java/com/baeldung/AppConfig.java
diff --git a/spring-data-spring-security/src/main/java/com/baeldung/SpringSecurityConfig.java b/spring-security-mvc-boot/src/main/java/com/baeldung/SpringSecurityConfig.java
similarity index 100%
rename from spring-data-spring-security/src/main/java/com/baeldung/SpringSecurityConfig.java
rename to spring-security-mvc-boot/src/main/java/com/baeldung/SpringSecurityConfig.java
diff --git a/spring-data-spring-security/src/main/java/com/baeldung/data/repositories/TweetRepository.java b/spring-security-mvc-boot/src/main/java/com/baeldung/data/repositories/TweetRepository.java
similarity index 100%
rename from spring-data-spring-security/src/main/java/com/baeldung/data/repositories/TweetRepository.java
rename to spring-security-mvc-boot/src/main/java/com/baeldung/data/repositories/TweetRepository.java
diff --git a/spring-data-spring-security/src/main/java/com/baeldung/data/repositories/UserRepository.java b/spring-security-mvc-boot/src/main/java/com/baeldung/data/repositories/UserRepository.java
similarity index 100%
rename from spring-data-spring-security/src/main/java/com/baeldung/data/repositories/UserRepository.java
rename to spring-security-mvc-boot/src/main/java/com/baeldung/data/repositories/UserRepository.java
diff --git a/spring-data-spring-security/src/main/java/com/baeldung/models/AppUser.java b/spring-security-mvc-boot/src/main/java/com/baeldung/models/AppUser.java
similarity index 100%
rename from spring-data-spring-security/src/main/java/com/baeldung/models/AppUser.java
rename to spring-security-mvc-boot/src/main/java/com/baeldung/models/AppUser.java
diff --git a/spring-data-spring-security/src/main/java/com/baeldung/models/Tweet.java b/spring-security-mvc-boot/src/main/java/com/baeldung/models/Tweet.java
similarity index 100%
rename from spring-data-spring-security/src/main/java/com/baeldung/models/Tweet.java
rename to spring-security-mvc-boot/src/main/java/com/baeldung/models/Tweet.java
diff --git a/spring-data-spring-security/src/main/java/com/baeldung/security/AppUserPrincipal.java b/spring-security-mvc-boot/src/main/java/com/baeldung/security/AppUserPrincipal.java
similarity index 100%
rename from spring-data-spring-security/src/main/java/com/baeldung/security/AppUserPrincipal.java
rename to spring-security-mvc-boot/src/main/java/com/baeldung/security/AppUserPrincipal.java
diff --git a/spring-data-spring-security/src/main/java/com/baeldung/security/AuthenticationSuccessHandlerImpl.java b/spring-security-mvc-boot/src/main/java/com/baeldung/security/AuthenticationSuccessHandlerImpl.java
similarity index 100%
rename from spring-data-spring-security/src/main/java/com/baeldung/security/AuthenticationSuccessHandlerImpl.java
rename to spring-security-mvc-boot/src/main/java/com/baeldung/security/AuthenticationSuccessHandlerImpl.java
diff --git a/spring-data-spring-security/src/main/java/com/baeldung/security/CustomUserDetailsService.java b/spring-security-mvc-boot/src/main/java/com/baeldung/security/CustomUserDetailsService.java
similarity index 100%
rename from spring-data-spring-security/src/main/java/com/baeldung/security/CustomUserDetailsService.java
rename to spring-security-mvc-boot/src/main/java/com/baeldung/security/CustomUserDetailsService.java
diff --git a/spring-data-spring-security/src/main/java/com/baeldung/util/DummyContentUtil.java b/spring-security-mvc-boot/src/main/java/com/baeldung/util/DummyContentUtil.java
similarity index 100%
rename from spring-data-spring-security/src/main/java/com/baeldung/util/DummyContentUtil.java
rename to spring-security-mvc-boot/src/main/java/com/baeldung/util/DummyContentUtil.java
diff --git a/spring-data-spring-security/src/main/resources/persistence-h2.properties b/spring-security-mvc-boot/src/main/resources/persistence-h2.properties
similarity index 100%
rename from spring-data-spring-security/src/main/resources/persistence-h2.properties
rename to spring-security-mvc-boot/src/main/resources/persistence-h2.properties
diff --git a/spring-data-spring-security/src/test/java/com/baeldung/relationships/SpringDataWithSecurityTest.java b/spring-security-mvc-boot/src/test/java/com/baeldung/relationships/SpringDataWithSecurityUnitTest.java
similarity index 95%
rename from spring-data-spring-security/src/test/java/com/baeldung/relationships/SpringDataWithSecurityTest.java
rename to spring-security-mvc-boot/src/test/java/com/baeldung/relationships/SpringDataWithSecurityUnitTest.java
index dbbfe7e85e..8207363a70 100644
--- a/spring-data-spring-security/src/test/java/com/baeldung/relationships/SpringDataWithSecurityTest.java
+++ b/spring-security-mvc-boot/src/test/java/com/baeldung/relationships/SpringDataWithSecurityUnitTest.java
@@ -36,7 +36,7 @@ import com.baeldung.util.DummyContentUtil;
@WebAppConfiguration
@ContextConfiguration
@DirtiesContext
-public class SpringDataWithSecurityTest {
+public class SpringDataWithSecurityUnitTest {
AnnotationConfigWebApplicationContext ctx = new AnnotationConfigWebApplicationContext();
@Autowired
private ServletContext servletContext;
@@ -50,8 +50,8 @@ public class SpringDataWithSecurityTest {
ctx.refresh();
userRepository = ctx.getBean(UserRepository.class);
tweetRepository = ctx.getBean(TweetRepository.class);
- List appUsers = (List) userRepository.save(DummyContentUtil.generateDummyUsers());
- tweetRepository.save(DummyContentUtil.generateDummyTweets(appUsers));
+ List appUsers = (List) userRepository.saveAll(DummyContentUtil.generateDummyUsers());
+ tweetRepository.saveAll(DummyContentUtil.generateDummyTweets(appUsers));
}
@AfterClass
diff --git a/spring-security-react/src/main/webapp/WEB-INF/view/react/package-lock.json b/spring-security-react/src/main/webapp/WEB-INF/view/react/package-lock.json
index 89b9d1a6ed..46f3a86c20 100644
--- a/spring-security-react/src/main/webapp/WEB-INF/view/react/package-lock.json
+++ b/spring-security-react/src/main/webapp/WEB-INF/view/react/package-lock.json
@@ -9,15 +9,6 @@
"resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz",
"integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4="
},
- "accepts": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
- "integrity": "sha1-63d99gEXI6OxTopywIBcjoZ0a9I=",
- "requires": {
- "mime-types": "~2.1.18",
- "negotiator": "0.6.1"
- }
- },
"acorn": {
"version": "5.7.1",
"resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.1.tgz",
@@ -132,11 +123,6 @@
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
"integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw=="
},
- "ansi-html": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz",
- "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4="
- },
"ansi-regex": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
@@ -283,11 +269,6 @@
"resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz",
"integrity": "sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
},
- "array-flatten": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.1.tgz",
- "integrity": "sha1-Qmu52oQJDBg42BLIFQryCoMx4pY="
- },
"array-includes": {
"version": "3.0.3",
"resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.0.3.tgz",
@@ -1312,11 +1293,6 @@
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.0.tgz",
"integrity": "sha512-ccav/yGvoa80BQDljCxsmmQ3Xvx60/UpBIij5QN21W3wBi/hhIC9OoO+KLpu9IJTS9j4DRVJ3aDDF9cMSoa2lw=="
},
- "batch": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
- "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY="
- },
"bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
@@ -1346,48 +1322,6 @@
"resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz",
"integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA=="
},
- "body-parser": {
- "version": "1.18.2",
- "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.18.2.tgz",
- "integrity": "sha1-h2eKGdhLR9hZuDGZvVm84iKxBFQ=",
- "requires": {
- "bytes": "3.0.0",
- "content-type": "~1.0.4",
- "debug": "2.6.9",
- "depd": "~1.1.1",
- "http-errors": "~1.6.2",
- "iconv-lite": "0.4.19",
- "on-finished": "~2.3.0",
- "qs": "6.5.1",
- "raw-body": "2.3.2",
- "type-is": "~1.6.15"
- },
- "dependencies": {
- "iconv-lite": {
- "version": "0.4.19",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
- },
- "qs": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
- "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
- }
- }
- },
- "bonjour": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz",
- "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=",
- "requires": {
- "array-flatten": "^2.1.0",
- "deep-equal": "^1.0.1",
- "dns-equal": "^1.0.0",
- "dns-txt": "^2.0.2",
- "multicast-dns": "^6.0.1",
- "multicast-dns-service-types": "^1.1.0"
- }
- },
"boolbase": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
@@ -1576,11 +1510,6 @@
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz",
"integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ=="
},
- "buffer-indexof": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz",
- "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g=="
- },
"buffer-xor": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz",
@@ -1596,11 +1525,6 @@
"resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz",
"integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug="
},
- "bytes": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz",
- "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg="
- },
"cache-base": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
@@ -2012,42 +1936,6 @@
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY="
},
- "compressible": {
- "version": "2.0.14",
- "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.14.tgz",
- "integrity": "sha1-MmxfUH+7BV9UEWeCuWmoG2einac=",
- "requires": {
- "mime-db": ">= 1.34.0 < 2"
- },
- "dependencies": {
- "mime-db": {
- "version": "1.34.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.34.0.tgz",
- "integrity": "sha1-RS0Oz/XDA0am3B5kseruDTcZ/5o="
- }
- }
- },
- "compression": {
- "version": "1.7.2",
- "resolved": "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz",
- "integrity": "sha1-qv+81qr4VLROuygDU9WtFlH1mmk=",
- "requires": {
- "accepts": "~1.3.4",
- "bytes": "3.0.0",
- "compressible": "~2.0.13",
- "debug": "2.6.9",
- "on-headers": "~1.0.1",
- "safe-buffer": "5.1.1",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "safe-buffer": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
- "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
- }
- }
- },
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
@@ -2077,11 +1965,6 @@
"xdg-basedir": "^3.0.0"
}
},
- "connect-history-api-fallback": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz",
- "integrity": "sha1-sGhzk0vF40T+9hGhlqb6rgruAVo="
- },
"console-browserify": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
@@ -2100,16 +1983,6 @@
"resolved": "https://registry.npmjs.org/contains-path/-/contains-path-0.1.0.tgz",
"integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo="
},
- "content-disposition": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.2.tgz",
- "integrity": "sha1-DPaLud318r55YcOoUXjLhdunjLQ="
- },
- "content-type": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
- "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
- },
"content-type-parser": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/content-type-parser/-/content-type-parser-1.0.2.tgz",
@@ -2120,16 +1993,6 @@
"resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.1.tgz",
"integrity": "sha1-uCeAl7m8IpNl3lxiz1/K7YtVmeU="
},
- "cookie": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz",
- "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s="
- },
- "cookie-signature": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
- "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
- },
"copy-descriptor": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
@@ -2514,11 +2377,6 @@
"resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
"integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU="
},
- "deep-equal": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
- "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU="
- },
"deep-extend": {
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
@@ -2614,11 +2472,6 @@
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
- "depd": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
- "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
- },
"des.js": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz",
@@ -2628,11 +2481,6 @@
"minimalistic-assert": "^1.0.0"
}
},
- "destroy": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
- "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
- },
"detect-indent": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz",
@@ -2641,11 +2489,6 @@
"repeating": "^2.0.0"
}
},
- "detect-node": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.3.tgz",
- "integrity": "sha1-ogM8CcyOFY03dI+951B4Mr1s4Sc="
- },
"detect-port-alt": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/detect-port-alt/-/detect-port-alt-1.1.6.tgz",
@@ -2670,28 +2513,6 @@
"randombytes": "^2.0.0"
}
},
- "dns-equal": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz",
- "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0="
- },
- "dns-packet": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz",
- "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==",
- "requires": {
- "ip": "^1.1.0",
- "safe-buffer": "^5.0.1"
- }
- },
- "dns-txt": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz",
- "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=",
- "requires": {
- "buffer-indexof": "^1.0.0"
- }
- },
"doctrine": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
@@ -2803,11 +2624,6 @@
"jsbn": "~0.1.0"
}
},
- "ee-first": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
- },
"electron-to-chromium": {
"version": "1.3.50",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.50.tgz",
@@ -2837,11 +2653,6 @@
"resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz",
"integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k="
},
- "encodeurl": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
- "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
- },
"encoding": {
"version": "0.1.12",
"resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz",
@@ -2974,11 +2785,6 @@
"es6-symbol": "^3.1.1"
}
},
- "escape-html": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
- },
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
@@ -3332,11 +3138,6 @@
"resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz",
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs="
},
- "etag": {
- "version": "1.8.1",
- "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
- "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
- },
"event-emitter": {
"version": "0.3.5",
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
@@ -3346,24 +3147,11 @@
"es5-ext": "~0.10.14"
}
},
- "eventemitter3": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-3.1.0.tgz",
- "integrity": "sha512-ivIvhpq/Y0uSjcHDcOIccjmYjGLcP09MFGE7ysAwkAvkXfpZlC985pH2/ui64DKazbTW/4kN3yqozUxlXzI6cA=="
- },
"events": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz",
"integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ="
},
- "eventsource": {
- "version": "0.1.6",
- "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-0.1.6.tgz",
- "integrity": "sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI=",
- "requires": {
- "original": ">=0.0.5"
- }
- },
"evp_bytestokey": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz",
@@ -3481,65 +3269,6 @@
"homedir-polyfill": "^1.0.1"
}
},
- "express": {
- "version": "4.16.3",
- "resolved": "https://registry.npmjs.org/express/-/express-4.16.3.tgz",
- "integrity": "sha1-avilAjUNsyRuzEvs9rWjTSL37VM=",
- "requires": {
- "accepts": "~1.3.5",
- "array-flatten": "1.1.1",
- "body-parser": "1.18.2",
- "content-disposition": "0.5.2",
- "content-type": "~1.0.4",
- "cookie": "0.3.1",
- "cookie-signature": "1.0.6",
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "finalhandler": "1.1.1",
- "fresh": "0.5.2",
- "merge-descriptors": "1.0.1",
- "methods": "~1.1.2",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.2",
- "path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.3",
- "qs": "6.5.1",
- "range-parser": "~1.2.0",
- "safe-buffer": "5.1.1",
- "send": "0.16.2",
- "serve-static": "1.13.2",
- "setprototypeof": "1.1.0",
- "statuses": "~1.4.0",
- "type-is": "~1.6.16",
- "utils-merge": "1.0.1",
- "vary": "~1.1.2"
- },
- "dependencies": {
- "array-flatten": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
- "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
- },
- "path-to-regexp": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
- "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
- },
- "qs": {
- "version": "6.5.1",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz",
- "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A=="
- },
- "safe-buffer": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz",
- "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg=="
- }
- }
- },
"extend": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
@@ -3669,14 +3398,6 @@
"resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.1.tgz",
"integrity": "sha1-0eJkOzipTXWDtHkGDmxK/8lAcfg="
},
- "faye-websocket": {
- "version": "0.11.1",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
- "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
- "requires": {
- "websocket-driver": ">=0.5.1"
- }
- },
"fb-watchman": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
@@ -3765,20 +3486,6 @@
}
}
},
- "finalhandler": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
- "integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
- "requires": {
- "debug": "2.6.9",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
- "parseurl": "~1.3.2",
- "statuses": "~1.4.0",
- "unpipe": "~1.0.0"
- }
- },
"find-cache-dir": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz",
@@ -3813,24 +3520,6 @@
"resolved": "https://registry.npmjs.org/flatten/-/flatten-1.0.2.tgz",
"integrity": "sha1-2uRqnXj74lKSJYzB54CkHZXAN4I="
},
- "follow-redirects": {
- "version": "1.5.0",
- "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.0.tgz",
- "integrity": "sha512-fdrt472/9qQ6Kgjvb935ig6vJCuofpBUD14f9Vb+SLlm7xIe4Qva5gey8EKtv8lp7ahE1wilg3xL1znpVGtZIA==",
- "requires": {
- "debug": "^3.1.0"
- },
- "dependencies": {
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- }
- }
- },
"for-in": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
@@ -3864,11 +3553,6 @@
"mime-types": "^2.1.12"
}
},
- "forwarded": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
- "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
- },
"fragment-cache": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
@@ -3877,11 +3561,6 @@
"map-cache": "^0.2.2"
}
},
- "fresh": {
- "version": "0.5.2",
- "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
- "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
- },
"fs-extra": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-3.0.1.tgz",
@@ -3914,7 +3593,8 @@
},
"ansi-regex": {
"version": "2.1.1",
- "bundled": true
+ "bundled": true,
+ "optional": true
},
"aproba": {
"version": "1.2.0",
@@ -3932,11 +3612,13 @@
},
"balanced-match": {
"version": "1.0.0",
- "bundled": true
+ "bundled": true,
+ "optional": true
},
"brace-expansion": {
"version": "1.1.11",
"bundled": true,
+ "optional": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -3949,15 +3631,18 @@
},
"code-point-at": {
"version": "1.1.0",
- "bundled": true
+ "bundled": true,
+ "optional": true
},
"concat-map": {
"version": "0.0.1",
- "bundled": true
+ "bundled": true,
+ "optional": true
},
"console-control-strings": {
"version": "1.1.0",
- "bundled": true
+ "bundled": true,
+ "optional": true
},
"core-util-is": {
"version": "1.0.2",
@@ -4060,7 +3745,8 @@
},
"inherits": {
"version": "2.0.3",
- "bundled": true
+ "bundled": true,
+ "optional": true
},
"ini": {
"version": "1.3.5",
@@ -4070,6 +3756,7 @@
"is-fullwidth-code-point": {
"version": "1.0.0",
"bundled": true,
+ "optional": true,
"requires": {
"number-is-nan": "^1.0.0"
}
@@ -4082,17 +3769,20 @@
"minimatch": {
"version": "3.0.4",
"bundled": true,
+ "optional": true,
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
"version": "0.0.8",
- "bundled": true
+ "bundled": true,
+ "optional": true
},
"minipass": {
"version": "2.2.4",
"bundled": true,
+ "optional": true,
"requires": {
"safe-buffer": "^5.1.1",
"yallist": "^3.0.0"
@@ -4109,6 +3799,7 @@
"mkdirp": {
"version": "0.5.1",
"bundled": true,
+ "optional": true,
"requires": {
"minimist": "0.0.8"
}
@@ -4181,7 +3872,8 @@
},
"number-is-nan": {
"version": "1.0.1",
- "bundled": true
+ "bundled": true,
+ "optional": true
},
"object-assign": {
"version": "4.1.1",
@@ -4191,6 +3883,7 @@
"once": {
"version": "1.4.0",
"bundled": true,
+ "optional": true,
"requires": {
"wrappy": "1"
}
@@ -4266,7 +3959,8 @@
},
"safe-buffer": {
"version": "5.1.1",
- "bundled": true
+ "bundled": true,
+ "optional": true
},
"safer-buffer": {
"version": "2.1.2",
@@ -4296,6 +3990,7 @@
"string-width": {
"version": "1.0.2",
"bundled": true,
+ "optional": true,
"requires": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -4313,6 +4008,7 @@
"strip-ansi": {
"version": "3.0.1",
"bundled": true,
+ "optional": true,
"requires": {
"ansi-regex": "^2.0.0"
}
@@ -4351,11 +4047,13 @@
},
"wrappy": {
"version": "1.0.2",
- "bundled": true
+ "bundled": true,
+ "optional": true
},
"yallist": {
"version": "3.0.2",
- "bundled": true
+ "bundled": true,
+ "optional": true
}
}
},
@@ -4511,11 +4209,6 @@
"duplexer": "^0.1.1"
}
},
- "handle-thing": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-1.2.5.tgz",
- "integrity": "sha1-/Xqtcmvxpf0W38KbL3pmAdJxOcQ="
- },
"handlebars": {
"version": "4.0.11",
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.11.tgz",
@@ -4692,17 +4385,6 @@
"resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.6.1.tgz",
"integrity": "sha512-Ba4+0M4YvIDUUsprMjhVTU1yN9F2/LJSAl69ZpzaLT4l4j5mwTS6jqqW9Ojvj6lKz/veqPzpJBqGbXspOb533A=="
},
- "hpack.js": {
- "version": "2.1.6",
- "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz",
- "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=",
- "requires": {
- "inherits": "^2.0.1",
- "obuf": "^1.0.0",
- "readable-stream": "^2.0.1",
- "wbuf": "^1.1.0"
- }
- },
"html-comment-regex": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.1.tgz",
@@ -4716,11 +4398,6 @@
"whatwg-encoding": "^1.0.1"
}
},
- "html-entities": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz",
- "integrity": "sha1-DfKTUfByEWNRXfueVUPl9u7VFi8="
- },
"html-minifier": {
"version": "3.5.17",
"resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-3.5.17.tgz",
@@ -4810,152 +4487,6 @@
}
}
},
- "http-deceiver": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz",
- "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc="
- },
- "http-errors": {
- "version": "1.6.3",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz",
- "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=",
- "requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.0",
- "statuses": ">= 1.4.0 < 2"
- }
- },
- "http-parser-js": {
- "version": "0.4.13",
- "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.4.13.tgz",
- "integrity": "sha1-O9bW/ebjFyyTNMOzO2wZPYD+ETc="
- },
- "http-proxy": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.17.0.tgz",
- "integrity": "sha512-Taqn+3nNvYRfJ3bGvKfBSRwy1v6eePlm3oc/aWVxZp57DQr5Eq3xhKJi7Z4hZpS8PC3H4qI+Yly5EmFacGuA/g==",
- "requires": {
- "eventemitter3": "^3.0.0",
- "follow-redirects": "^1.0.0",
- "requires-port": "^1.0.0"
- }
- },
- "http-proxy-middleware": {
- "version": "0.17.4",
- "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz",
- "integrity": "sha1-ZC6ISIUdZvCdTxJJEoRtuutBuDM=",
- "requires": {
- "http-proxy": "^1.16.2",
- "is-glob": "^3.1.0",
- "lodash": "^4.17.2",
- "micromatch": "^2.3.11"
- },
- "dependencies": {
- "arr-diff": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz",
- "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=",
- "requires": {
- "arr-flatten": "^1.0.1"
- }
- },
- "array-unique": {
- "version": "0.2.1",
- "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz",
- "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM="
- },
- "braces": {
- "version": "1.8.5",
- "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz",
- "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=",
- "requires": {
- "expand-range": "^1.8.1",
- "preserve": "^0.2.0",
- "repeat-element": "^1.1.2"
- }
- },
- "expand-brackets": {
- "version": "0.1.5",
- "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz",
- "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=",
- "requires": {
- "is-posix-bracket": "^0.1.0"
- }
- },
- "extglob": {
- "version": "0.3.2",
- "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz",
- "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=",
- "requires": {
- "is-extglob": "^1.0.0"
- },
- "dependencies": {
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- }
- }
- },
- "is-extglob": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
- "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
- },
- "is-glob": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
- "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=",
- "requires": {
- "is-extglob": "^2.1.0"
- }
- },
- "kind-of": {
- "version": "3.2.2",
- "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
- "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
- "requires": {
- "is-buffer": "^1.1.5"
- }
- },
- "micromatch": {
- "version": "2.3.11",
- "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz",
- "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=",
- "requires": {
- "arr-diff": "^2.0.0",
- "array-unique": "^0.2.1",
- "braces": "^1.8.2",
- "expand-brackets": "^0.1.4",
- "extglob": "^0.3.1",
- "filename-regex": "^2.0.0",
- "is-extglob": "^1.0.0",
- "is-glob": "^2.0.1",
- "kind-of": "^3.0.2",
- "normalize-path": "^2.0.1",
- "object.omit": "^2.0.0",
- "parse-glob": "^3.0.4",
- "regex-cache": "^0.4.2"
- },
- "dependencies": {
- "is-extglob": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz",
- "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA="
- },
- "is-glob": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz",
- "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=",
- "requires": {
- "is-extglob": "^1.0.0"
- }
- }
- }
- }
- }
- },
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -5007,15 +4538,6 @@
"resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz",
"integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM="
},
- "import-local": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz",
- "integrity": "sha1-sReVcqrNwRxqkQCftDDbyrX2aKg=",
- "requires": {
- "pkg-dir": "^2.0.0",
- "resolve-cwd": "^2.0.0"
- }
- },
"imurmurhash": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@@ -5104,14 +4626,6 @@
}
}
},
- "internal-ip": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-1.2.0.tgz",
- "integrity": "sha1-rp+/k7mEh4eF1QqN4bNWlWBYz1w=",
- "requires": {
- "meow": "^3.3.0"
- }
- },
"interpret": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
@@ -5130,16 +4644,6 @@
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
},
- "ip": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
- "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
- },
- "ipaddr.js": {
- "version": "1.6.0",
- "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.6.0.tgz",
- "integrity": "sha1-4/o1e3c9phnybpXwSdBVxyeW+Gs="
- },
"is-absolute-url": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz",
@@ -6237,11 +5741,6 @@
"resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
- "json3": {
- "version": "3.3.2",
- "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
- "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE="
- },
"json5": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
@@ -6276,11 +5775,6 @@
"resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-1.4.1.tgz",
"integrity": "sha1-OGchPo3Xm/Ho8jAMDPwe+xgsDfE="
},
- "killable": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.0.tgz",
- "integrity": "sha1-2ouEvUfeU5WHj5XWTQLyRJ/gXms="
- },
"kind-of": {
"version": "6.0.2",
"resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz",
@@ -6468,11 +5962,6 @@
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
"integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M="
},
- "loglevel": {
- "version": "1.6.1",
- "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.1.tgz",
- "integrity": "sha1-4PyVEztu8nbNyIh82vJKpvFW+Po="
- },
"longest": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz",
@@ -6574,11 +6063,6 @@
"inherits": "^2.0.1"
}
},
- "media-typer": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
- "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
- },
"mem": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz",
@@ -6625,16 +6109,6 @@
"resolved": "https://registry.npmjs.org/merge/-/merge-1.2.0.tgz",
"integrity": "sha1-dTHjnUlJwoGma4xabgJl6LBYlNo="
},
- "merge-descriptors": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
- "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
- },
- "methods": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
- "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
- },
"micromatch": {
"version": "3.1.10",
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
@@ -6742,20 +6216,6 @@
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
- "multicast-dns": {
- "version": "6.2.3",
- "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz",
- "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==",
- "requires": {
- "dns-packet": "^1.3.1",
- "thunky": "^1.0.2"
- }
- },
- "multicast-dns-service-types": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz",
- "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE="
- },
"mute-stream": {
"version": "0.0.7",
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz",
@@ -6790,11 +6250,6 @@
"resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
"integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc="
},
- "negotiator": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz",
- "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk="
- },
"neo-async": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.5.1.tgz",
@@ -6822,11 +6277,6 @@
"is-stream": "^1.0.1"
}
},
- "node-forge": {
- "version": "0.7.5",
- "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.7.5.tgz",
- "integrity": "sha512-MmbQJ2MTESTjt3Gi/3yG1wGpIMhUfcIypUCGtTizFR9IiccFwxSpfp0vtIZlkFclEqERemxfnSdZEMR9VqqEFQ=="
- },
"node-int64": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
@@ -7019,24 +6469,6 @@
"isobject": "^3.0.1"
}
},
- "obuf": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz",
- "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg=="
- },
- "on-finished": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
- "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
- "requires": {
- "ee-first": "1.1.1"
- }
- },
- "on-headers": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.1.tgz",
- "integrity": "sha1-ko9dD0cNSTQmUepnlLCFfBAGk/c="
- },
"once": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
@@ -7090,14 +6522,6 @@
"wordwrap": "~1.0.0"
}
},
- "original": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/original/-/original-1.0.1.tgz",
- "integrity": "sha512-IEvtB5vM5ULvwnqMxWBLxkS13JIEXbakizMSo3yoPNPCIWzg8TG3Usn/UhXoZFM/m+FuEA20KdzPSFq/0rS+UA==",
- "requires": {
- "url-parse": "~1.4.0"
- }
- },
"os-browserify": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz",
@@ -7217,11 +6641,6 @@
"resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz",
"integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ="
},
- "parseurl": {
- "version": "1.3.2",
- "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz",
- "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M="
- },
"pascalcase": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
@@ -7335,23 +6754,6 @@
"resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
"integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow=="
},
- "portfinder": {
- "version": "1.0.13",
- "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.13.tgz",
- "integrity": "sha1-uzLs2HwnEErm7kS1o8y/Drsa7ek=",
- "requires": {
- "async": "^1.5.2",
- "debug": "^2.2.0",
- "mkdirp": "0.5.x"
- },
- "dependencies": {
- "async": {
- "version": "1.5.2",
- "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
- "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo="
- }
- }
- },
"posix-character-classes": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
@@ -8576,15 +7978,6 @@
"object-assign": "^4.1.1"
}
},
- "proxy-addr": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.3.tgz",
- "integrity": "sha512-jQTChiCJteusULxjBp8+jftSQE5Obdl3k4cnmLA6WXtK6XFuWRnvVL7aCiBqaLPM8c4ph0S4tKna8XvmIwEnXQ==",
- "requires": {
- "forwarded": "~0.1.2",
- "ipaddr.js": "1.6.0"
- }
- },
"prr": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
@@ -8646,11 +8039,6 @@
"resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz",
"integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM="
},
- "querystringify": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.0.0.tgz",
- "integrity": "sha512-eTPo5t/4bgaMNZxyjWx6N2a6AuE0mq51KWvpc7nU/MAqixcI6v6KrGUKES0HaomdnolQBBXU/++X6/QQ9KL4tw=="
- },
"raf": {
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/raf/-/raf-3.4.0.tgz",
@@ -8693,50 +8081,6 @@
"safe-buffer": "^5.1.0"
}
},
- "range-parser": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.0.tgz",
- "integrity": "sha1-9JvmtIeJTdxA3MlKMi9hEJLgDV4="
- },
- "raw-body": {
- "version": "2.3.2",
- "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.3.2.tgz",
- "integrity": "sha1-vNYMd9Prk83gBQKVw/N5OJvIj4k=",
- "requires": {
- "bytes": "3.0.0",
- "http-errors": "1.6.2",
- "iconv-lite": "0.4.19",
- "unpipe": "1.0.0"
- },
- "dependencies": {
- "depd": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.1.tgz",
- "integrity": "sha1-V4O04cRZ8G+lyif5kfPQbnoxA1k="
- },
- "http-errors": {
- "version": "1.6.2",
- "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.2.tgz",
- "integrity": "sha1-CgAsyFcHGSp+eUbO7cERVfYOxzY=",
- "requires": {
- "depd": "1.1.1",
- "inherits": "2.0.3",
- "setprototypeof": "1.0.3",
- "statuses": ">= 1.3.1 < 2"
- }
- },
- "iconv-lite": {
- "version": "0.4.19",
- "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz",
- "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ=="
- },
- "setprototypeof": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.0.3.tgz",
- "integrity": "sha1-ZlZ+NwQ+608E2RvWWMDL77VbjgQ="
- }
- }
- },
"rc": {
"version": "1.2.8",
"resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
@@ -8786,9 +8130,19 @@
"react-error-overlay": "^4.0.0",
"recursive-readdir": "2.2.1",
"shell-quote": "1.6.1",
- "sockjs-client": "1.1.4",
"strip-ansi": "3.0.1",
"text-table": "0.2.0"
+ },
+ "dependencies": {
+ "sockjs-client": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.5.tgz",
+ "integrity": "sha1-G7fA9yIsQPQq3xT0RCy9Eml3GoM=",
+ "requires": {
+ "debug": "^2.6.6",
+ "inherits": "^2.0.1"
+ }
+ }
}
},
"react-dom": {
@@ -8848,7 +8202,6 @@
"sw-precache-webpack-plugin": "0.11.4",
"url-loader": "0.6.2",
"webpack": "3.8.1",
- "webpack-dev-server": "2.9.4",
"webpack-manifest-plugin": "1.3.2",
"whatwg-fetch": "2.0.3"
},
@@ -8880,6 +8233,18 @@
"asap": "~2.0.3"
}
},
+ "webpack-dev-server": {
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.1.5.tgz",
+ "integrity": "sha512-LVHg+EPwZLHIlfvokSTgtJqO/vI5CQi89fASb5JEDtVMDjY0yuIEqPPdMiKaBJIB/Ab7v/UN/sYZ7WsZvntQKw==",
+ "requires": {
+ "array-includes": "^3.0.3",
+ "chokidar": "^2.0.0",
+ "opn": "^5.1.0",
+ "strip-ansi": "^3.0.0",
+ "supports-color": "^5.1.0"
+ }
+ },
"whatwg-fetch": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz",
@@ -9206,11 +8571,6 @@
"resolve-from": "^1.0.0"
}
},
- "requires-port": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz",
- "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8="
- },
"resolve": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.6.0.tgz",
@@ -9219,21 +8579,6 @@
"path-parse": "^1.0.5"
}
},
- "resolve-cwd": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz",
- "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=",
- "requires": {
- "resolve-from": "^3.0.0"
- },
- "dependencies": {
- "resolve-from": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz",
- "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g="
- }
- }
- },
"resolve-dir": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/resolve-dir/-/resolve-dir-1.0.1.tgz",
@@ -9381,19 +8726,6 @@
"ajv": "^5.0.0"
}
},
- "select-hose": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz",
- "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo="
- },
- "selfsigned": {
- "version": "1.10.3",
- "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.3.tgz",
- "integrity": "sha512-vmZenZ+8Al3NLHkWnhBQ0x6BkML1eCP2xEi3JE+f3D9wW9fipD9NNJHYtE9XJM4TsPaHGZJIamrSI6MTg1dU2Q==",
- "requires": {
- "node-forge": "0.7.5"
- }
- },
"semver": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
@@ -9407,58 +8739,6 @@
"semver": "^5.0.3"
}
},
- "send": {
- "version": "0.16.2",
- "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz",
- "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==",
- "requires": {
- "debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "etag": "~1.8.1",
- "fresh": "0.5.2",
- "http-errors": "~1.6.2",
- "mime": "1.4.1",
- "ms": "2.0.0",
- "on-finished": "~2.3.0",
- "range-parser": "~1.2.0",
- "statuses": "~1.4.0"
- },
- "dependencies": {
- "mime": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
- "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ=="
- }
- }
- },
- "serve-index": {
- "version": "1.9.1",
- "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz",
- "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=",
- "requires": {
- "accepts": "~1.3.4",
- "batch": "0.6.1",
- "debug": "2.6.9",
- "escape-html": "~1.0.3",
- "http-errors": "~1.6.2",
- "mime-types": "~2.1.17",
- "parseurl": "~1.3.2"
- }
- },
- "serve-static": {
- "version": "1.13.2",
- "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz",
- "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==",
- "requires": {
- "encodeurl": "~1.0.2",
- "escape-html": "~1.0.3",
- "parseurl": "~1.3.2",
- "send": "0.16.2"
- }
- },
"serviceworker-cache-polyfill": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/serviceworker-cache-polyfill/-/serviceworker-cache-polyfill-4.0.0.tgz",
@@ -9500,11 +8780,6 @@
"resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
"integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
},
- "setprototypeof": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz",
- "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ=="
- },
"sha.js": {
"version": "2.4.11",
"resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz",
@@ -9663,43 +8938,6 @@
}
}
},
- "sockjs": {
- "version": "0.3.18",
- "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.18.tgz",
- "integrity": "sha1-2bKJMWyn33dZXvKZ4HXw+TfrQgc=",
- "requires": {
- "faye-websocket": "^0.10.0",
- "uuid": "^2.0.2"
- },
- "dependencies": {
- "faye-websocket": {
- "version": "0.10.0",
- "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz",
- "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=",
- "requires": {
- "websocket-driver": ">=0.5.1"
- }
- },
- "uuid": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz",
- "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho="
- }
- }
- },
- "sockjs-client": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.1.4.tgz",
- "integrity": "sha1-W6vjhrd15M8U51IJEUUmVAFsixI=",
- "requires": {
- "debug": "^2.6.6",
- "eventsource": "0.1.6",
- "faye-websocket": "~0.11.0",
- "inherits": "^2.0.1",
- "json3": "^3.3.2",
- "url-parse": "^1.1.8"
- }
- },
"sort-keys": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz",
@@ -9778,33 +9016,6 @@
"resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz",
"integrity": "sha512-2+EPwgbnmOIl8HjGBXXMd9NAu02vLjOO1nWw4kmeRDFyHn+M/ETfHxQUK0oXg8ctgVnl9t3rosNVsZ1jG61nDA=="
},
- "spdy": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/spdy/-/spdy-3.4.7.tgz",
- "integrity": "sha1-Qv9B7OXMD5mjpsKKq7c/XDsDrLw=",
- "requires": {
- "debug": "^2.6.8",
- "handle-thing": "^1.2.5",
- "http-deceiver": "^1.2.7",
- "safe-buffer": "^5.0.1",
- "select-hose": "^2.0.0",
- "spdy-transport": "^2.0.18"
- }
- },
- "spdy-transport": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-2.1.0.tgz",
- "integrity": "sha512-bpUeGpZcmZ692rrTiqf9/2EUakI6/kXX1Rpe0ib/DyOzbiexVfXkw6GnvI9hVGvIwVaUhkaBojjCZwLNRGQg1g==",
- "requires": {
- "debug": "^2.6.8",
- "detect-node": "^2.0.3",
- "hpack.js": "^2.1.6",
- "obuf": "^1.1.1",
- "readable-stream": "^2.2.9",
- "safe-buffer": "^5.0.1",
- "wbuf": "^1.7.2"
- }
- },
"split-string": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
@@ -9853,11 +9064,6 @@
}
}
},
- "statuses": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz",
- "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew=="
- },
"stream-browserify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz",
@@ -10116,16 +9322,6 @@
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
},
- "thunky": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.2.tgz",
- "integrity": "sha1-qGLgGOP7HqLsP85dVWBc9X8kc3E="
- },
- "time-stamp": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/time-stamp/-/time-stamp-2.0.0.tgz",
- "integrity": "sha1-lcakRTDhW6jW9KPsuMOj+sRto1c="
- },
"timed-out": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz",
@@ -10263,15 +9459,6 @@
"prelude-ls": "~1.1.2"
}
},
- "type-is": {
- "version": "1.6.16",
- "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
- "integrity": "sha512-HRkVv/5qY2G6I8iab9cI7v1bOIdhm94dVjQCPFElW9W+3GeDOSHmy2EBYe4VTApuzolPcmgFTN3ftVJRKR2J9Q==",
- "requires": {
- "media-typer": "0.3.0",
- "mime-types": "~2.1.18"
- }
- },
"typedarray": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
@@ -10397,11 +9584,6 @@
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
"integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
},
- "unpipe": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
- "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
- },
"unset-value": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
@@ -10526,15 +9708,6 @@
"schema-utils": "^0.3.0"
}
},
- "url-parse": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.1.tgz",
- "integrity": "sha512-x95Td74QcvICAA0+qERaVkRpTGKyBHHYdwL2LXZm5t/gBtCB9KQSO/0zQgSTYEV1p0WcvSg79TLNPSvd5IDJMQ==",
- "requires": {
- "querystringify": "^2.0.0",
- "requires-port": "^1.0.0"
- }
- },
"url-parse-lax": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-1.0.0.tgz",
@@ -10569,11 +9742,6 @@
"resolved": "https://registry.npmjs.org/utila/-/utila-0.4.0.tgz",
"integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw="
},
- "utils-merge": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
- "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
- },
"uuid": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
@@ -10588,11 +9756,6 @@
"spdx-expression-parse": "^3.0.0"
}
},
- "vary": {
- "version": "1.1.2",
- "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
- "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
- },
"vendors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.2.tgz",
@@ -10639,14 +9802,6 @@
"neo-async": "^2.5.0"
}
},
- "wbuf": {
- "version": "1.7.3",
- "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz",
- "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==",
- "requires": {
- "minimalistic-assert": "^1.0.0"
- }
- },
"webidl-conversions": {
"version": "4.0.2",
"resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz",
@@ -10827,189 +9982,6 @@
}
}
},
- "webpack-dev-middleware": {
- "version": "1.12.2",
- "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz",
- "integrity": "sha512-FCrqPy1yy/sN6U/SaEZcHKRXGlqU0DUaEBL45jkUYoB8foVb6wCnbIJ1HKIx+qUFTW+3JpVcCJCxZ8VATL4e+A==",
- "requires": {
- "memory-fs": "~0.4.1",
- "mime": "^1.5.0",
- "path-is-absolute": "^1.0.0",
- "range-parser": "^1.0.3",
- "time-stamp": "^2.0.0"
- }
- },
- "webpack-dev-server": {
- "version": "2.9.4",
- "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-2.9.4.tgz",
- "integrity": "sha512-thrqC0EQEoSjXeYgP6pUXcUCZ+LNrKsDPn+mItLnn5VyyNZOJKd06hUP5vqkYwL8nWWXsii0loSF9NHNccT6ow==",
- "requires": {
- "ansi-html": "0.0.7",
- "array-includes": "^3.0.3",
- "bonjour": "^3.5.0",
- "chokidar": "^1.6.0",
- "compression": "^1.5.2",
- "connect-history-api-fallback": "^1.3.0",
- "debug": "^3.1.0",
- "del": "^3.0.0",
- "express": "^4.13.3",
- "html-entities": "^1.2.0",
- "http-proxy-middleware": "~0.17.4",
- "import-local": "^0.1.1",
- "internal-ip": "1.2.0",
- "ip": "^1.1.5",
- "killable": "^1.0.0",
- "loglevel": "^1.4.1",
- "opn": "^5.1.0",
- "portfinder": "^1.0.9",
- "selfsigned": "^1.9.1",
- "serve-index": "^1.7.2",
- "sockjs": "0.3.18",
- "sockjs-client": "1.1.4",
- "spdy": "^3.4.1",
- "strip-ansi": "^3.0.1",
- "supports-color": "^4.2.1",
- "webpack-dev-middleware": "^1.11.0",
- "yargs": "^6.6.0"
- },
- "dependencies": {
- "camelcase": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
- "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
- },
- "chokidar": {
- "version": "1.7.0",
- "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz",
- "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=",
- "requires": {
- "anymatch": "^1.3.0",
- "async-each": "^1.0.0",
- "fsevents": "^1.0.0",
- "glob-parent": "^2.0.0",
- "inherits": "^2.0.1",
- "is-binary-path": "^1.0.0",
- "is-glob": "^2.0.0",
- "path-is-absolute": "^1.0.0",
- "readdirp": "^2.0.0"
- }
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- }
- },
- "debug": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
- "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
- "requires": {
- "ms": "2.0.0"
- }
- },
- "del": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/del/-/del-3.0.0.tgz",
- "integrity": "sha1-U+z2mf/LyzljdpGrE7rxYIGXZuU=",
- "requires": {
- "globby": "^6.1.0",
- "is-path-cwd": "^1.0.0",
- "is-path-in-cwd": "^1.0.0",
- "p-map": "^1.1.1",
- "pify": "^3.0.0",
- "rimraf": "^2.2.8"
- }
- },
- "globby": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
- "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=",
- "requires": {
- "array-union": "^1.0.1",
- "glob": "^7.0.3",
- "object-assign": "^4.0.1",
- "pify": "^2.0.0",
- "pinkie-promise": "^2.0.0"
- },
- "dependencies": {
- "pify": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
- "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
- }
- }
- },
- "has-flag": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz",
- "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE="
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "pify": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
- "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY="
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "supports-color": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.5.0.tgz",
- "integrity": "sha1-vnoN5ITexcXN34s9WRJQRJEvY1s=",
- "requires": {
- "has-flag": "^2.0.0"
- }
- },
- "yargs": {
- "version": "6.6.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-6.6.0.tgz",
- "integrity": "sha1-eC7CHvQDNF+DCoCMo9UTr1YGUgg=",
- "requires": {
- "camelcase": "^3.0.0",
- "cliui": "^3.2.0",
- "decamelize": "^1.1.1",
- "get-caller-file": "^1.0.1",
- "os-locale": "^1.4.0",
- "read-pkg-up": "^1.0.1",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^1.0.2",
- "which-module": "^1.0.0",
- "y18n": "^3.2.1",
- "yargs-parser": "^4.2.0"
- }
- },
- "yargs-parser": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-4.2.1.tgz",
- "integrity": "sha1-KczqwNxPA8bIe0qfIX3RjJ90hxw=",
- "requires": {
- "camelcase": "^3.0.0"
- }
- }
- }
- },
"webpack-manifest-plugin": {
"version": "1.3.2",
"resolved": "https://registry.npmjs.org/webpack-manifest-plugin/-/webpack-manifest-plugin-1.3.2.tgz",
@@ -11050,20 +10022,6 @@
"source-map": "~0.6.1"
}
},
- "websocket-driver": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
- "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
- "requires": {
- "http-parser-js": ">=0.4.0",
- "websocket-extensions": ">=0.1.1"
- }
- },
- "websocket-extensions": {
- "version": "0.1.3",
- "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
- "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg=="
- },
"whatwg-encoding": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.3.tgz",
diff --git a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/controller/CourseRegistrationController.java b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/controller/CourseRegistrationController.java
new file mode 100644
index 0000000000..2d2b5906e1
--- /dev/null
+++ b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/controller/CourseRegistrationController.java
@@ -0,0 +1,30 @@
+package com.baeldung.thymeleaf.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+
+import com.baeldung.thymeleaf.model.Course;
+
+/**
+ * Handles requests for the student model.
+ *
+ */
+@Controller
+public class CourseRegistrationController {
+
+ @RequestMapping(value = "/registerCourse", method = RequestMethod.POST)
+ public String register(@ModelAttribute Course course, Model model) {
+ model.addAttribute("successMessage", "You have successfully registered for course: " + course.getName() + ".");
+ return "courseRegistration.html";
+ }
+
+ @RequestMapping(value = "/registerCourse", method = RequestMethod.GET)
+ public String register(Model model) {
+ model.addAttribute("course", new Course());
+ return "courseRegistration.html";
+ }
+
+}
diff --git a/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/model/Course.java b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/model/Course.java
new file mode 100644
index 0000000000..df2e9cd097
--- /dev/null
+++ b/spring-thymeleaf/src/main/java/com/baeldung/thymeleaf/model/Course.java
@@ -0,0 +1,52 @@
+package com.baeldung.thymeleaf.model;
+
+import java.util.Date;
+
+public class Course {
+
+ private String name;
+ private String description;
+ private Date startDate;
+ private Date endDate;
+ private String teacher;
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public Date getStartDate() {
+ return startDate;
+ }
+
+ public void setStartDate(Date startDate) {
+ this.startDate = startDate;
+ }
+
+ public Date getEndDate() {
+ return endDate;
+ }
+
+ public void setEndDate(Date endDate) {
+ this.endDate = endDate;
+ }
+
+ public String getTeacher() {
+ return teacher;
+ }
+
+ public void setTeacher(String teacher) {
+ this.teacher = teacher;
+ }
+}
diff --git a/spring-thymeleaf/src/main/webapp/WEB-INF/views/courseRegistration.html b/spring-thymeleaf/src/main/webapp/WEB-INF/views/courseRegistration.html
new file mode 100644
index 0000000000..cfce92d055
--- /dev/null
+++ b/spring-thymeleaf/src/main/webapp/WEB-INF/views/courseRegistration.html
@@ -0,0 +1,42 @@
+
+
+
+Register for course
+
+
+
+
+ Register Here
+
+
+
diff --git a/spring-thymeleaf/src/main/webapp/WEB-INF/views/home.html b/spring-thymeleaf/src/main/webapp/WEB-INF/views/home.html
index b458f7270c..25ff6a19bb 100644
--- a/spring-thymeleaf/src/main/webapp/WEB-INF/views/home.html
+++ b/spring-thymeleaf/src/main/webapp/WEB-INF/views/home.html
@@ -24,6 +24,9 @@
|
+
+ |
+