The Spring Boot CLI is a Command Line Interface for Spring Boot. It can be used for a quick start with Spring. It can run Groovy scripts which means that a developer need not write boilerplate code; all that is needed is focus on business logic. Spring Boot CLI is the fastest way to create a Spring-based application.
In this section, we will look at the different features of Spring Boot CL −
It provides an interface to run and test Spring Boot Application from command prompt.
It internally use Spring Boot Starter and Spring Boot AutoConfigurate components in order to resolve all dependencies and executes the application.
It contains Groovy compiler and Grape Dependency Manager.
It supports Groovy Scripts without external Groovy installation.
It adds Spring Boot defaults and resolve all dependencies automatically.
Spring is a Java-based framework; hence, we need to set up JDK first. Following are the steps needed to setup Spring Boot CLI along with JDK installation.
You can download the latest version of SDK from Oracle's Java site − Java SE Downloads. You will find instructions for installing JDK in downloaded files, follow the given instructions to install and configure the setup. Finally set PATH and JAVA_HOME environment variables to refer to the directory that contains java and javac, typically java_install_dir/bin and java_install_dir respectively.
If you are running Windows and have installed the JDK in C:\jdk1.6.0_15, you would have to put the following line in your C:\autoexec.bat file −
set PATH=C:\jdk1.6.0_15\bin;%PATH% set JAVA_HOME=C:\jdk1.6.0_15
Alternatively, on Windows NT/2000/XP, you will have to right-click on My Computer, select Properties → Advanced → Environment Variables. Then, you will have to update the PATH value and click the OK button.
On Unix (Solaris, Linux, etc.), if the SDK is installed in /usr/local/jdk1.6.0_15 and you use the C shell, you will have to put the following into your .cshrc file −
setenv PATH /usr/local/jdk1.6.0_15/bin:$PATH setenv JAVA_HOME /usr/local/jdk1.6.0_15
You can download the latest version of Spring Boot CLI API as ZIP archive from https://repo.spring.io/release/org/springframework/boot/spring-boot-cli/. Once you download the installation, unpack the zip distribution into a convenient location. For example, in E:\Test\spring-1.5.8.RELEASE on Windows, or /usr/local/spring-1.5.8.RELEASE on Linux/Unix.
Make sure you set your CLASSPATH variable on this directory properly otherwise you will face a problem while running your application.
Or set the path in command prompt temporarily to run the spring boot application as shown below −
E:/Test/> set path=E:\Test\spring-1.5.8.RELEASE\bin;%PATH%
Run the following command on command prompt to verify the installation −
E:/Test/> spring --version
It should print the following output confirming the successful installation −
Spring CLI v1.5.8.RELEASE
In this example, we'll create a Spring Boot + MVC + Rest based Web application.
Create a folder FirstApplication in E:\Test folder.
Create FirstApplication.groovy file in E:\Test folder with following source code −
@RestController class FirstApplication { @RequestMapping("/") String welcome() { "Welcome to Howcodex.Com" } }
Type the following command −
E:/Test/> spring run FirstApplication.groovy
Now Spring Boot CLI will come into action, download required dependencies, run the embedded tomcat, deploy the application and start it. You can see the following output on console −
Resolving dependencies.......................................................... ................................................................................ ........................ . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _> | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.8.RELEASE) 2017-11-07 17:36:55.703 INFO 5528 --- [ runner-0] o.s.boot.SpringApplication: Starting application on ... 2017-11-07 17:36:55.707 INFO 5528 --- [ runner-0] o.s.boot.SpringApplication: No active profile set, falling back to default profiles: default 2017-11-07 17:36:56.067 INFO 5528 --- [ runner-0] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4c108392: startup date [Tue Nov 07 17:36: 56 IST 2017]; root of context hierarchy 2017-11-07 17:36:57.327 INFO 5528 --- [ runner-0] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat initialized with port(s): 8080 (http) 2017-11-07 17:36:57.346 INFO 5528 --- [ runner-0] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2017-11-07 17:36:57.354 INFO 5528 --- [ runner-0] org.apache.catalina.core.StandardEngine : Starting Servlet Engine: Apache Tomcat/8.5.23 2017-11-07 17:36:57.537 INFO 5528 --- [ost-startStop-1] org.apache.catalina.loader.WebappLoader : Unknown loader org.springframework.boot.cli.compiler.ExtendedGroovyClassLoader$DefaultScopeParentClassLoader@41bfad4f class org.springframew ork.boot.cli.compiler.ExtendedGroovyClassLoader$DefaultScopeParentClassLoader 2017-11-07 17:36:57.567 INFO 5528 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2017-11-07 17:36:57.567 INFO 5528 --- [ost-startStop-1] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1500 ms 2017-11-07 17:36:57.725 INFO 5528 --- [ost-startStop-1] o.s.b.w.servlet.ServletRegistrationBean : Mapping servlet: 'dispatcherServlet' to [/] 2017-11-07 17:36:57.730 INFO 5528 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'characterEncodingFilter' to: [/*] 2017-11-07 17:36:57.730 INFO 5528 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'hiddenHttpMethodFilter' to: [/*] 2017-11-07 17:36:57.730 INFO 5528 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'httpPutFormContentFilter' to: [/*] 2017-11-07 17:36:57.730 INFO 5528 --- [ost-startStop-1] o.s.b.w.servlet.FilterRegistrationBean : Mapping filter: 'requestContextFilter' to: [/*] 2017-11-07 17:36:58.012 INFO 5528 --- [ runner-0] s.w.s.m.m.a.RequestMappingHandlerAdapter : Looking for @ControllerAdvice: org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@4c108392: startup date [Tue Nov 07 17:36:56 IST 2017]; root of context hierarchy 2017-11-07 17:36:58.066 INFO 5528 --- [ runner-0] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/]}" onto public java.lang.String FirstApplication.home() 2017-11-07 17:36:58.070 INFO 5528 --- [ runner-0] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error]}" onto public org.springframework.http.ResponseEntity> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest) 2017-11-07 17:36:58.071 INFO 5528 --- [ runner-0] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/error],produces=[text/html]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web .BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse) 2017-11-07 17:36:58.096 INFO 5528 --- [ runner-0] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2017-11-07 17:36:58.096 INFO 5528 --- [ runner-0] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2017-11-07 17:36:58.129 INFO 5528 --- [ runner-0] o.s.w.s.handler.SimpleUrlHandlerMapping : Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler] 2017-11-07 17:36:58.626 INFO 5528 --- [ runner-0] o.s.j.e.a.AnnotationMBeanExporter : Registering beans for JMX exposure on startup 2017-11-07 17:36:58.696 INFO 5528 --- [ runner-0] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2017-11-07 17:36:58.699 INFO 5528 --- [ runner-0] o.s.boot.SpringApplication : Started application in 3.529 seconds (JVM running for 190.196) 2017-11-07 17:37:20.217 INFO 5528 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring FrameworkServlet 'dispatcherServlet' 2017-11-07 17:37:20.218 INFO 5528 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization started 2017-11-07 17:37:20.238 INFO 5528 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : FrameworkServlet 'dispatcherServlet': initialization completed in 20 ms
Our spring based rest application is now ready. Open url as "http://localhost:8080/" and you will see the following output −
Hello World
Consider the following points to understand how Spring CLI works.−
All dependency JARs are downloaded for the first time only.
Spring CLI automatically detects which dependency JARs are to be downloaded based on the classes and annotations used in code.
Finally after the compilation of the code, deploy the war file on an embedded tomcat and start embedded tomcat server on the default port 8080.
Standard Groovy codebase contains a @Grab annotation so that dependencies on third-party libraries can be declared. Using @Grab annotation, Grape Dependency Manager downloads jar in similar fashion as that of Maven/Gradle without any build tool. Spring Boot attempts to deduce the required libraries based on code. For example, use of @RestController tells that "Tomcat" and "Spring MVC" libraries are to be grabbed.
Following table details the hints that Spring Boot uses to download third party libraries −
Sr.No. | Hint & Dependency to Download/Link |
---|---|
1 | JdbcTemplate, NamedParameterJdbcTemplate, DataSource JDBC Application |
2 | @EnableJms JMS Application |
3 | @EnableCaching Caching abstraction |
4 | @Test JUnit |
5 | @EnableRabbit RabbitMQ |
6 | @EnableReactor Project Reactor |
7 | extends Specification Spock test |
8 | @EnableBatchProcessing Spring Batch |
9 | @MessageEndpoint, @EnableIntegrationPatterns Spring Integration |
10 | @EnableDeviceResolver Spring Mobile |
11 | @Controller, @RestController, @EnableWebMvc Spring MVC + Embedded Tomcat |
12 | @EnableWebSecurity Spring Security |
13 | @EnableTransactionManagement Spring Transaction Management |
We can specify a dependency using @Grab annotation even without specifying group or version. For example,
@Grab('antlr')
Now Spring Boot CLI will download 2.7.7 version of antlr as it is present in Spring Boot's default dependency metadata for 1.5.8 version. Spring Boot maintains all dependency versions by default which are provided in its CLI, Maven dependency management and Gradle plugin. Whenever we declare a dependency of any of those artifacts present in efault dependency metadata without declaring a version, the version listed in its table will be used.
The following table shows all the dependencies and their versions included in the default metadata for Spring Boot CLI 1.5.8 version.
Group Id | Artifact Id | Version |
---|---|---|
antlr | antlr | 2.7.7 |
ch.qos.logback | logback-access | 1.1.11 |
ch.qos.logback | logback-classic | 1.1.11 |
ch.qos.logback | logback-core | 1.1.11 |
com.atomikos | transactions-jdbc | 3.9.3 |
com.atomikos | transactions-jms | 3.9.3 |
com.atomikos | transactions-jta | 3.9.3 |
com.couchbase.client | couchbase-spring-cache | 2.1.0 |
com.couchbase.client | java-client | 2.3.7 |
com.datastax.cassandra | cassandra-driver-core | 3.1.4 |
com.datastax.cassandra | cassandra-driver-mapping | 3.1.4 |
com.fasterxml | classmate | 1.3.4 |
com.fasterxml.jackson.core | jackson-annotations | 2.8.0 |
com.fasterxml.jackson.core | jackson-core | 2.8.10 |
com.fasterxml.jackson.core | jackson-databind | 2.8.10 |
com.fasterxml.jackson.dataformat | jackson-dataformat-avro | 2.8.10 |
com.fasterxml.jackson.dataformat | jackson-dataformat-cbor | 2.8.10 |
com.fasterxml.jackson.dataformat | jackson-dataformat-csv | 2.8.10 |
com.fasterxml.jackson.dataformat | jackson-dataformat-ion | 2.8.10 |
com.fasterxml.jackson.dataformat | jackson-dataformat-properties | 2.8.10 |
com.fasterxml.jackson.dataformat | jackson-dataformat-protobuf | 2.8.10 |
com.fasterxml.jackson.dataformat | jackson-dataformat-smile | 2.8.10 |
com.fasterxml.jackson.dataformat | jackson-dataformat-xml | 2.8.10 |
com.fasterxml.jackson.dataformat | jackson-dataformat-yaml | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-guava | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-hibernate3 | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-hibernate4 | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-hibernate5 | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-hppc | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-jaxrs | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-jdk8 | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-joda | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-json-org | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-jsr310 | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-jsr353 | 2.8.10 |
com.fasterxml.jackson.datatype | jackson-datatype-pcollections | 2.8.10 |
com.fasterxml.jackson.jaxrs | jackson-jaxrs-base | 2.8.10 |
com.fasterxml.jackson.jaxrs | jackson-jaxrs-cbor-provider | 2.8.10 |
com.fasterxml.jackson.jaxrs | jackson-jaxrs-json-provider | 2.8.10 |
com.fasterxml.jackson.jaxrs | jackson-jaxrs-smile-provider | 2.8.10 |
com.fasterxml.jackson.jaxrs | jackson-jaxrs-xml-provider | 2.8.10 |
com.fasterxml.jackson.jaxrs | jackson-jaxrs-yaml-provider | 2.8.10 |
com.fasterxml.jackson.jr | jackson-jr-all | 2.8.10 |
com.fasterxml.jackson.jr | jackson-jr-objects | 2.8.10 |
com.fasterxml.jackson.jr | jackson-jr-retrofit2 | 2.8.10 |
com.fasterxml.jackson.jr | jackson-jr-stree | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-afterburner | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-guice | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-jaxb-annotations | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-jsonSchema | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-kotlin | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-mrbean | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-osgi | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-parameter-names | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-paranamer | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-scala_2.10 | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-scala_2.11 | 2.8.10 |
com.fasterxml.jackson.module | jackson-module-scala_2.12 | 2.8.10 |
com.gemstone.gemfire | gemfire | 8.2.7 |
com.github.ben-manes.caffeine | caffeine | 2.3.5 |
com.github.mxab.thymeleaf.extras | thymeleaf-extras-data-attribute | 1.3 |
com.google.appengine | appengine-api-1.0-sdk | 1.9.58 |
com.google.code.gson | gson | 2.8.2 |
com.googlecode.json-simple | json-simple | 1.1.1 |
com.h2database | h2 | 1.4.196 |
com.hazelcast | hazelcast | 3.7.8 |
com.hazelcast | hazelcast-client | 3.7.8 |
com.hazelcast | hazelcast-hibernate4 | 3.7.1 |
com.hazelcast | hazelcast-hibernate5 | 1.1.3 |
com.hazelcast | hazelcast-spring | 3.7.8 |
com.jayway.jsonpath | json-path | 2.2.0 |
com.jayway.jsonpath | json-path-assert | 2.2.0 |
com.microsoft.sqlserver | mssql-jdbc | 6.1.0.jre7 |
com.querydsl | querydsl-apt | 4.1.4 |
com.querydsl | querydsl-collections | 4.1.4 |
com.querydsl | querydsl-core | 4.1.4 |
com.querydsl | querydsl-jpa | 4.1.4 |
com.querydsl | querydsl-mongodb | 4.1.4 |
com.samskivert | jmustache | 1.13 |
com.sendgrid | sendgrid-java | 2.2.2 |
com.sun.mail | javax.mail | 1.5.6 |
com.timgroup | java-statsd-client | 3.1.0 |
com.unboundid | unboundid-ldapsdk | 3.2.1 |
com.zaxxer | HikariCP | 2.5.1 |
com.zaxxer | HikariCP-java6 | 2.3.13 |
com.zaxxer | HikariCP-java7 | 2.4.13 |
commons-beanutils | commons-beanutils | 1.9.3 |
commons-codec | commons-codec | 1.10 |
commons-collections | commons-collections | 3.2.2 |
commons-dbcp | commons-dbcp | 1.4 |
commons-digester | commons-digester | 2.1 |
commons-pool | commons-pool | 1.6 |
de.flapdoodle.embed | de.flapdoodle.embed.mongo | 1.50.5 |
dom4j | dom4j | 1.6.1 |
io.dropwizard.metrics | metrics-annotation | 3.1.5 |
io.dropwizard.metrics | metrics-core | 3.1.5 |
io.dropwizard.metrics | metrics-ehcache | 3.1.5 |
io.dropwizard.metrics | metrics-ganglia | 3.1.5 |
io.dropwizard.metrics | metrics-graphite | 3.1.5 |
io.dropwizard.metrics | metrics-healthchecks | 3.1.5 |
io.dropwizard.metrics | metrics-httpasyncclient | 3.1.5 |
io.dropwizard.metrics | metrics-jdbi | 3.1.5 |
io.dropwizard.metrics | metrics-jersey | 3.1.5 |
io.dropwizard.metrics | metrics-jersey2 | 3.1.5 |
io.dropwizard.metrics | metrics-jetty8 | 3.1.5 |
io.dropwizard.metrics | metrics-jetty9 | 3.1.5 |
io.dropwizard.metrics | metrics-jetty9-legacy | 3.1.5 |
io.dropwizard.metrics | metrics-json | 3.1.5 |
io.dropwizard.metrics | metrics-jvm | 3.1.5 |
io.dropwizard.metrics | metrics-log4j | 3.1.5 |
io.dropwizard.metrics | metrics-log4j2 | 3.1.5 |
io.dropwizard.metrics | metrics-logback | 3.1.5 |
io.dropwizard.metrics | metrics-servlet | 3.1.5 |
io.dropwizard.metrics | metrics-servlets | 3.1.5 |
io.projectreactor | reactor-bus | 2.0.8.RELEASE |
io.projectreactor | reactor-core | 2.0.8.RELEASE |
io.projectreactor | reactor-groovy | 2.0.8.RELEASE |
io.projectreactor | reactor-groovy-extensions | 2.0.8.RELEASE |
io.projectreactor | reactor-logback | 2.0.8.RELEASE |
io.projectreactor | reactor-net | 2.0.8.RELEASE |
io.projectreactor | reactor-stream | 2.0.8.RELEASE |
io.projectreactor.spring | reactor-spring-context | 2.0.7.RELEASE |
io.projectreactor.spring | reactor-spring-core | 2.0.7.RELEASE |
io.projectreactor.spring | reactor-spring-messaging | 2.0.7.RELEASE |
io.projectreactor.spring | reactor-spring-webmvc | 2.0.7.RELEASE |
io.searchbox | jest | 2.0.4 |
io.undertow | undertow-core | 1.4.20.Final |
io.undertow | undertow-servlet | 1.4.20.Final |
io.undertow | undertow-websockets-jsr | 1.4.20.Final |
javax.cache | cache-api | 1.0.0 |
javax.jms | jms-api | 1.1-rev-1 |
javax.mail | javax.mail-api | 1.5.6 |
javax.servlet | javax.servlet-api | 3.1.0 |
javax.servlet | jstl | 1.2 |
javax.transaction | javax.transaction-api | 1.2 |
javax.validation | validation-api | 1.1.0.Final |
jaxen | jaxen | 1.1.6 |
joda-time | joda-time | 2.9.9 |
junit | junit | 4.12 |
mysql | mysql-connector-java | 5.1.44 |
net.java.dev.jna | jna | 4.2.2 |
net.java.dev.jna | jna-platform | 4.2.2 |
net.sf.ehcache | ehcache | 2.10.4 |
net.sourceforge.htmlunit | htmlunit | 2.21 |
net.sourceforge.jtds | jtds | 1.3.1 |
net.sourceforge.nekohtml | nekohtml | 1.9.22 |
nz.net.ultraq.thymeleaf | thymeleaf-layout-dialect | 1.4.0 |
org.apache.activemq | activemq-amqp | 5.14.5 |
org.apache.activemq | activemq-blueprint | 5.14.5 |
org.apache.activemq | activemq-broker | 5.14.5 |
org.apache.activemq | activemq-camel | 5.14.5 |
org.apache.activemq | activemq-client | 5.14.5 |
org.apache.activemq | activemq-console | 5.14.5 |
org.apache.activemq | activemq-http | 5.14.5 |
org.apache.activemq | activemq-jaas | 5.14.5 |
org.apache.activemq | activemq-jdbc-store | 5.14.5 |
org.apache.activemq | activemq-jms-pool | 5.14.5 |
org.apache.activemq | activemq-kahadb-store | 5.14.5 |
org.apache.activemq | activemq-karaf | 5.14.5 |
org.apache.activemq | activemq-leveldb-store | 5.14.5 |
org.apache.activemq | activemq-log4j-appender | 5.14.5 |
org.apache.activemq | activemq-mqtt | 5.14.5 |
org.apache.activemq | activemq-openwire-generator | 5.14.5 |
org.apache.activemq | activemq-openwire-legacy | 5.14.5 |
org.apache.activemq | activemq-osgi | 5.14.5 |
org.apache.activemq | activemq-partition | 5.14.5 |
org.apache.activemq | activemq-pool | 5.14.5 |
org.apache.activemq | activemq-ra | 5.14.5 |
org.apache.activemq | activemq-run | 5.14.5 |
org.apache.activemq | activemq-runtime-config | 5.14.5 |
org.apache.activemq | activemq-shiro | 5.14.5 |
org.apache.activemq | activemq-spring | 5.14.5 |
org.apache.activemq | activemq-stomp | 5.14.5 |
org.apache.activemq | activemq-web | 5.14.5 |
org.apache.activemq | artemis-amqp-protocol | 1.5.5 |
org.apache.activemq | artemis-commons | 1.5.5 |
org.apache.activemq | artemis-core-client | 1.5.5 |
org.apache.activemq | artemis-jms-client | 1.5.5 |
org.apache.activemq | artemis-jms-server | 1.5.5 |
org.apache.activemq | artemis-journal | 1.5.5 |
org.apache.activemq | artemis-native | 1.5.5 |
org.apache.activemq | artemis-selector | 1.5.5 |
org.apache.activemq | artemis-server | 1.5.5 |
org.apache.activemq | artemis-service-extensions | 1.5.5 |
org.apache.commons | commons-dbcp2 | 2.1.1 |
org.apache.commons | commons-pool2 | 2.4.2 |
org.apache.derby | derby | 10.13.1.1 |
org.apache.httpcomponents | httpasyncclient | 4.1.3 |
org.apache.httpcomponents | httpclient | 4.5.3 |
org.apache.httpcomponents | httpcore | 4.4.8 |
org.apache.httpcomponents | httpmime | 4.5.3 |
org.apache.logging.log4j | log4j-1.2-api | 2.7 |
org.apache.logging.log4j | log4j-api | 2.7 |
org.apache.logging.log4j | log4j-api-scala_2.10 | 2.7 |
org.apache.logging.log4j | log4j-api-scala_2.11 | 2.7 |
org.apache.logging.log4j | log4j-core | 2.7 |
org.apache.logging.log4j | log4j-flume-ng | 2.7 |
org.apache.logging.log4j | log4j-iostreams | 2.7 |
org.apache.logging.log4j | log4j-jcl | 2.7 |
org.apache.logging.log4j | log4j-jmx-gui | 2.7 |
org.apache.logging.log4j | log4j-jul | 2.7 |
org.apache.logging.log4j | log4j-liquibase | 2.7 |
org.apache.logging.log4j | log4j-nosql | 2.7 |
org.apache.logging.log4j | log4j-slf4j-impl | 2.7 |
org.apache.logging.log4j | log4j-taglib | 2.7 |
org.apache.logging.log4j | log4j-web | 2.7 |
org.apache.solr | solr-analysis-extras | 5.5.4 |
org.apache.solr | solr-analytics | 5.5.4 |
org.apache.solr | solr-cell | 5.5.4 |
org.apache.solr | solr-clustering | 5.5.4 |
org.apache.solr | solr-core | 5.5.4 |
org.apache.solr | solr-dataimporthandler | 5.5.4 |
org.apache.solr | solr-dataimporthandler-extras | 5.5.4 |
org.apache.solr | solr-langid | 5.5.4 |
org.apache.solr | solr-map-reduce | 5.5.4 |
org.apache.solr | solr-morphlines-cell | 5.5.4 |
org.apache.solr | solr-morphlines-core | 5.5.4 |
org.apache.solr | solr-solrj | 5.5.4 |
org.apache.solr | solr-test-framework | 5.5.4 |
org.apache.solr | solr-uima | 5.5.4 |
org.apache.solr | solr-velocity | 5.5.4 |
org.apache.tomcat | tomcat-annotations-api | 8.5.23 |
org.apache.tomcat | tomcat-jdbc | 8.5.23 |
org.apache.tomcat | tomcat-jsp-api | 8.5.23 |
org.apache.tomcat.embed | tomcat-embed-core | 8.5.23 |
org.apache.tomcat.embed | tomcat-embed-el | 8.5.23 |
org.apache.tomcat.embed | tomcat-embed-jasper | 8.5.23 |
org.apache.tomcat.embed | tomcat-embed-websocket | 8.5.23 |
org.aspectj | aspectjrt | 1.8.11 |
org.aspectj | aspectjtools | 1.8.11 |
org.aspectj | aspectjweaver | 1.8.11 |
org.assertj | assertj-core | 2.6.0 |
org.codehaus.btm | btm | 2.1.4 |
org.codehaus.groovy | groovy | 2.4.12 |
org.codehaus.groovy | groovy-all | 2.4.12 |
org.codehaus.groovy | groovy-ant | 2.4.12 |
org.codehaus.groovy | groovy-bsf | 2.4.12 |
org.codehaus.groovy | groovy-console | 2.4.12 |
org.codehaus.groovy | groovy-docgenerator | 2.4.12 |
org.codehaus.groovy | groovy-groovydoc | 2.4.12 |
org.codehaus.groovy | groovy-groovysh | 2.4.12 |
org.codehaus.groovy | groovy-jmx | 2.4.12 |
org.codehaus.groovy | groovy-json | 2.4.12 |
org.codehaus.groovy | groovy-jsr223 | 2.4.12 |
org.codehaus.groovy | groovy-nio | 2.4.12 |
org.codehaus.groovy | groovy-servlet | 2.4.12 |
org.codehaus.groovy | groovy-sql | 2.4.12 |
org.codehaus.groovy | groovy-swing | 2.4.12 |
org.codehaus.groovy | groovy-templates | 2.4.12 |
org.codehaus.groovy | groovy-test | 2.4.12 |
org.codehaus.groovy | groovy-testng | 2.4.12 |
org.codehaus.groovy | groovy-xml | 2.4.12 |
org.codehaus.janino | janino | 2.7.8 |
org.crashub | crash.cli | 1.3.2 |
org.crashub | crash.connectors.ssh | 1.3.2 |
org.crashub | crash.connectors.telnet | 1.3.2 |
org.crashub | crash.embed.spring | 1.3.2 |
org.crashub | crash.plugins.cron | 1.3.2 |
org.crashub | crash.plugins.mail | 1.3.2 |
org.crashub | crash.shell | 1.3.2 |
org.eclipse.jetty | apache-jsp | 9.4.7.v20170914 |
org.eclipse.jetty | apache-jstl | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-alpn-client | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-alpn-java-client | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-alpn-java-server | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-alpn-server | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-annotations | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-ant | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-client | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-continuation | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-deploy | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-hazelcast | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-http | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-http-spi | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-infinispan | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-io | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-jaas | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-jaspi | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-jmx | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-jndi | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-nosql | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-plus | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-proxy | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-quickstart | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-rewrite | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-runner | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-security | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-server | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-servlet | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-servlets | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-spring | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-start | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-unixsocket | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-util | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-util-ajax | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-webapp | 9.4.7.v20170914 |
org.eclipse.jetty | jetty-xml | 9.4.7.v20170914 |
org.eclipse.jetty.cdi | cdi-core | 9.4.7.v20170914 |
org.eclipse.jetty.cdi | cdi-servlet | 9.4.7.v20170914 |
org.eclipse.jetty.fcgi | fcgi-client | 9.4.7.v20170914 |
org.eclipse.jetty.fcgi | fcgi-server | 9.4.7.v20170914 |
org.eclipse.jetty.gcloud | jetty-gcloud-session-manager | 9.4.7.v20170914 |
org.eclipse.jetty.http2 | http2-client | 9.4.7.v20170914 |
org.eclipse.jetty.http2 | http2-common | 9.4.7.v20170914 |
org.eclipse.jetty.http2 | http2-hpack | 9.4.7.v20170914 |
org.eclipse.jetty.http2 | http2-http-client-transport | 9.4.7.v20170914 |
org.eclipse.jetty.http2 | http2-server | 9.4.7.v20170914 |
org.eclipse.jetty.memcached | jetty-memcached-sessions | 9.4.7.v20170914 |
org.eclipse.jetty.orbit | javax.servlet.jsp | 2.2.0.v201112011158 |
org.eclipse.jetty.osgi | jetty-httpservice | 9.4.7.v20170914 |
org.eclipse.jetty.osgi | jetty-osgi-boot | 9.4.7.v20170914 |
org.eclipse.jetty.osgi | jetty-osgi-boot-jsp | 9.4.7.v20170914 |
org.eclipse.jetty.osgi | jetty-osgi-boot-warurl | 9.4.7.v20170914 |
org.eclipse.jetty.websocket | javax-websocket-client-impl | 9.4.7.v20170914 |
org.eclipse.jetty.websocket | javax-websocket-server-impl | 9.4.7.v20170914 |
org.eclipse.jetty.websocket | websocket-api | 9.4.7.v20170914 |
org.eclipse.jetty.websocket | websocket-client | 9.4.7.v20170914 |
org.eclipse.jetty.websocket | websocket-common | 9.4.7.v20170914 |
org.eclipse.jetty.websocket | websocket-server | 9.4.7.v20170914 |
org.eclipse.jetty.websocket | websocket-servlet | 9.4.7.v20170914 |
org.ehcache | ehcache | 3.2.3 |
org.ehcache | ehcache-clustered | 3.2.3 |
org.ehcache | ehcache-transactions | 3.2.3 |
org.elasticsearch | elasticsearch | 2.4.6 |
org.firebirdsql.jdbc | jaybird-jdk16 | 2.2.13 |
org.firebirdsql.jdbc | jaybird-jdk17 | 2.2.13 |
org.firebirdsql.jdbc | jaybird-jdk18 | 2.2.13 |
org.flywaydb | flyway-core | 3.2.1 |
org.freemarker | freemarker | 2.3.26-incubating |
org.glassfish | javax.el | 3.0.0 |
org.glassfish.jersey.bundles.repackaged | jersey-guava | 2.25.1 |
org.glassfish.jersey.containers | jersey-container-servlet | 2.25.1 |
org.glassfish.jersey.containers | jersey-container-servlet-core | 2.25.1 |
org.glassfish.jersey.core | jersey-client | 2.25.1 |
org.glassfish.jersey.core | jersey-common | 2.25.1 |
org.glassfish.jersey.core | jersey-server | 2.25.1 |
org.glassfish.jersey.ext | jersey-bean-validation | 2.25.1 |
org.glassfish.jersey.ext | jersey-entity-filtering | 2.25.1 |
org.glassfish.jersey.ext | jersey-spring3 | 2.25.1 |
org.glassfish.jersey.media | jersey-media-jaxb | 2.25.1 |
org.glassfish.jersey.media | jersey-media-json-jackson | 2.25.1 |
org.glassfish.jersey.media | jersey-media-multipart | 2.25.1 |
org.hamcrest | hamcrest-core | 1.3 |
org.hamcrest | hamcrest-library | 1.3 |
org.hibernate | hibernate-core | 5.0.12.Final |
org.hibernate | hibernate-ehcache | 5.0.12.Final |
org.hibernate | hibernate-entitymanager | 5.0.12.Final |
org.hibernate | hibernate-envers | 5.0.12.Final |
org.hibernate | hibernate-java8 | 5.0.12.Final |
org.hibernate | hibernate-jpamodelgen | 5.0.12.Final |
org.hibernate | hibernate-validator | 5.3.5.Final |
org.hibernate | hibernate-validator-annotation-processor | 5.3.5.Final |
org.hsqldb | hsqldb | 2.3.5 |
org.infinispan | infinispan-jcache | 8.2.8.Final |
org.infinispan | infinispan-spring4-common | 8.2.8.Final |
org.infinispan | infinispan-spring4-embedded | 8.2.8.Final |
org.javassist | javassist | 3.21.0-GA |
org.jboss | jboss-transaction-spi | 7.6.0.Final |
org.jboss.logging | jboss-logging | 3.3.1.Final |
org.jboss.narayana.jta | jdbc | 5.5.30.Final |
org.jboss.narayana.jta | jms | 5.5.30.Final |
org.jboss.narayana.jta | jta | 5.5.30.Final |
org.jboss.narayana.jts | narayana-jts-integration | 5.5.30.Final |
org.jdom | jdom2 | 2.0.6 |
org.jolokia | jolokia-core | 1.3.7 |
org.jooq | jooq | 3.9.6 |
org.jooq | jooq-codegen | 3.9.6 |
org.jooq | jooq-meta | 3.9.6 |
org.json | json | 20140107 |
org.liquibase | liquibase-core | 3.5.3 |
org.mariadb.jdbc | mariadb-java-client | 1.5.9 |
org.mockito | mockito-core | 1.10.19 |
org.mongodb | mongodb-driver | 3.4.3 |
org.mongodb | mongo-java-driver | 3.4.3 |
org.mortbay.jasper | apache-el | 8.0.33 |
org.neo4j | neo4j-ogm-api | 2.1.5 |
org.neo4j | neo4j-ogm-compiler | 2.1.5 |
org.neo4j | neo4j-ogm-core | 2.1.5 |
org.neo4j | neo4j-ogm-http-driver | 2.1.5 |
org.postgresql | postgresql | 9.4.1212.jre7 |
org.projectlombok | lombok | 1.16.18 |
org.seleniumhq.selenium | htmlunit-driver | 2.21 |
org.seleniumhq.selenium | selenium-api | 2.53.1 |
org.seleniumhq.selenium | selenium-chrome-driver | 2.53.1 |
org.seleniumhq.selenium | selenium-firefox-driver | 2.53.1 |
org.seleniumhq.selenium | selenium-ie-driver | 2.53.1 |
org.seleniumhq.selenium | selenium-java | 2.53.1 |
org.seleniumhq.selenium | selenium-remote-driver | 2.53.1 |
org.seleniumhq.selenium | selenium-safari-driver | 2.53.1 |
org.seleniumhq.selenium | selenium-support | 2.53.1 |
org.skyscreamer | jsonassert | 1.4.0 |
org.slf4j | jcl-over-slf4j | 1.7.25 |
org.slf4j | jul-to-slf4j | 1.7.25 |
org.slf4j | log4j-over-slf4j | 1.7.25 |
org.slf4j | slf4j-api | 1.7.25 |
org.slf4j | slf4j-ext | 1.7.25 |
org.slf4j | slf4j-jcl | 1.7.25 |
org.slf4j | slf4j-jdk14 | 1.7.25 |
org.slf4j | slf4j-log4j12 | 1.7.25 |
org.slf4j | slf4j-nop | 1.7.25 |
org.slf4j | slf4j-simple | 1.7.25 |
org.spockframework | spock-core | 1.0-groovy-2.4 |
org.spockframework | spock-spring | 1.0-groovy-2.4 |
org.springframework | spring-aop | 4.3.12.RELEASE |
org.springframework | spring-aspects | 4.3.12.RELEASE |
org.springframework | spring-beans | 4.3.12.RELEASE |
org.springframework | spring-context | 4.3.12.RELEASE |
org.springframework | spring-context-support | 4.3.12.RELEASE |
org.springframework | spring-core | 4.3.12.RELEASE |
org.springframework | spring-expression | 4.3.12.RELEASE |
org.springframework | spring-instrument | 4.3.12.RELEASE |
org.springframework | spring-instrument-tomcat | 4.3.12.RELEASE |
org.springframework | spring-jdbc | 4.3.12.RELEASE |
org.springframework | spring-jms | 4.3.12.RELEASE |
org.springframework | springloaded | 1.2.8.RELEASE |
org.springframework | spring-messaging | 4.3.12.RELEASE |
org.springframework | spring-orm | 4.3.12.RELEASE |
org.springframework | spring-oxm | 4.3.12.RELEASE |
org.springframework | spring-test | 4.3.12.RELEASE |
org.springframework | spring-tx | 4.3.12.RELEASE |
org.springframework | spring-web | 4.3.12.RELEASE |
org.springframework | spring-webmvc | 4.3.12.RELEASE |
org.springframework | spring-webmvc-portlet | 4.3.12.RELEASE |
org.springframework | spring-websocket | 4.3.12.RELEASE |
org.springframework.amqp | spring-amqp | 1.7.4.RELEASE |
org.springframework.amqp | spring-rabbit | 1.7.4.RELEASE |
org.springframework.batch | spring-batch-core | 3.0.8.RELEASE |
org.springframework.batch | spring-batch-infrastructure | 3.0.8.RELEASE |
org.springframework.batch | spring-batch-integration | 3.0.8.RELEASE |
org.springframework.batch | spring-batch-test | 3.0.8.RELEASE |
org.springframework.boot | spring-boot | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-actuator | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-actuator-docs | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-autoconfigure | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-autoconfigure-processor | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-configuration-metadata | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-configuration-processor | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-devtools | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-loader | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-loader-tools | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-activemq | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-actuator | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-amqp | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-aop | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-artemis | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-batch | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-cache | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-cloud-connectors | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-cassandra | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-couchbase | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-elasticsearch | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-gemfire | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-jpa | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-ldap | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-mongodb | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-neo4j | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-redis | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-rest | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-data-solr | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-freemarker | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-groovy-templates | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-hateoas | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-integration | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-jdbc | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-jersey | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-jetty | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-jooq | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-jta-atomikos | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-jta-bitronix | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-jta-narayana | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-log4j2 | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-logging | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-mail | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-mobile | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-mustache | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-remote-shell | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-security | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-social-facebook | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-social-linkedin | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-social-twitter | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-test | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-thymeleaf | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-tomcat | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-undertow | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-validation | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-web | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-web-services | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-starter-websocket | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-test | 1.5.8.RELEASE |
org.springframework.boot | spring-boot-test-autoconfigure | 1.5.8.RELEASE |
org.springframework.cloud | spring-cloud-cloudfoundry-connector | 1.2.4.RELEASE |
org.springframework.cloud | spring-cloud-core | 1.2.4.RELEASE |
org.springframework.cloud | spring-cloud-heroku-connector | 1.2.4.RELEASE |
org.springframework.cloud | spring-cloud-localconfig-connector | 1.2.4.RELEASE |
org.springframework.cloud | spring-cloud-spring-service-connector | 1.2.4.RELEASE |
org.springframework.data | spring-cql | 1.5.8.RELEASE |
org.springframework.data | spring-data-cassandra | 1.5.8.RELEASE |
org.springframework.data | spring-data-commons | 1.13.8.RELEASE |
org.springframework.data | spring-data-couchbase | 2.2.8.RELEASE |
org.springframework.data | spring-data-elasticsearch | 2.1.8.RELEASE |
org.springframework.data | spring-data-envers | 1.1.8.RELEASE |
org.springframework.data | spring-data-gemfire | 1.9.8.RELEASE |
org.springframework.data | spring-data-jpa | 1.11.8.RELEASE |
org.springframework.data | spring-data-keyvalue | 1.2.8.RELEASE |
org.springframework.data | spring-data-ldap | 1.0.8.RELEASE |
org.springframework.data | spring-data-mongodb | 1.10.8.RELEASE |
org.springframework.data | spring-data-mongodb-cross-store | 1.10.8.RELEASE |
org.springframework.data | spring-data-mongodb-log4j | 1.10.8.RELEASE |
org.springframework.data | spring-data-neo4j | 4.2.8.RELEASE |
org.springframework.data | spring-data-redis | 1.8.8.RELEASE |
org.springframework.data | spring-data-rest-core | 2.6.8.RELEASE |
org.springframework.data | spring-data-rest-hal-browser | 2.6.8.RELEASE |
org.springframework.data | spring-data-rest-webmvc | 2.6.8.RELEASE |
org.springframework.data | spring-data-solr | 2.1.8.RELEASE |
org.springframework.hateoas | spring-hateoas | 0.23.0.RELEASE |
org.springframework.integration | spring-integration-amqp | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-core | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-event | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-feed | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-file | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-ftp | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-gemfire | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-groovy | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-http | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-ip | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-java-dsl | 1.2.3.RELEASE |
org.springframework.integration | spring-integration-jdbc | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-jms | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-jmx | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-jpa | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-mail | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-mongodb | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-mqtt | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-redis | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-rmi | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-scripting | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-security | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-sftp | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-stomp | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-stream | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-syslog | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-test | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-twitter | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-websocket | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-ws | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-xml | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-xmpp | 4.3.12.RELEASE |
org.springframework.integration | spring-integration-zookeeper | 4.3.12.RELEASE |
org.springframework.kafka | spring-kafka | 1.1.7.RELEASE |
org.springframework.kafka | spring-kafka-test | 1.1.7.RELEASE |
org.springframework.ldap | spring-ldap-core | 2.3.2.RELEASE |
org.springframework.ldap | spring-ldap-core-tiger | 2.3.2.RELEASE |
org.springframework.ldap | spring-ldap-ldif-batch | 2.3.2.RELEASE |
org.springframework.ldap | spring-ldap-ldif-core | 2.3.2.RELEASE |
org.springframework.ldap | spring-ldap-odm | 2.3.2.RELEASE |
org.springframework.ldap | spring-ldap-test | 2.3.2.RELEASE |
org.springframework.mobile | spring-mobile-device | 1.1.5.RELEASE |
org.springframework.plugin | spring-plugin-core | 1.2.0.RELEASE |
org.springframework.plugin | spring-plugin-metadata | 1.2.0.RELEASE |
org.springframework.restdocs | spring-restdocs-core | 1.1.3.RELEASE |
org.springframework.restdocs | spring-restdocs-mockmvc | 1.1.3.RELEASE |
org.springframework.restdocs | spring-restdocs-restassured | 1.1.3.RELEASE |
org.springframework.retry | spring-retry | 1.2.1.RELEASE |
org.springframework.security | spring-security-acl | 4.2.3.RELEASE |
org.springframework.security | spring-security-aspects | 4.2.3.RELEASE |
org.springframework.security | spring-security-cas | 4.2.3.RELEASE |
org.springframework.security | spring-security-config | 4.2.3.RELEASE |
org.springframework.security | spring-security-core | 4.2.3.RELEASE |
org.springframework.security | spring-security-crypto | 4.2.3.RELEASE |
org.springframework.security | spring-security-data | 4.2.3.RELEASE |
org.springframework.security | spring-security-jwt | 1.0.8.RELEASE |
org.springframework.security | spring-security-ldap | 4.2.3.RELEASE |
org.springframework.security | spring-security-messaging | 4.2.3.RELEASE |
org.springframework.security | spring-security-openid | 4.2.3.RELEASE |
org.springframework.security | spring-security-remoting | 4.2.3.RELEASE |
org.springframework.security | spring-security-taglibs | 4.2.3.RELEASE |
org.springframework.security | spring-security-test | 4.2.3.RELEASE |
org.springframework.security | spring-security-web | 4.2.3.RELEASE |
org.springframework.security.oauth | spring-security-oauth | 2.0.14.RELEASE |
org.springframework.security.oauth | spring-security-oauth2 | 2.0.14.RELEASE |
org.springframework.session | spring-session | 1.3.1.RELEASE |
org.springframework.session | spring-session-data-gemfire | 1.3.1.RELEASE |
org.springframework.session | spring-session-data-mongo | 1.3.1.RELEASE |
org.springframework.session | spring-session-data-redis | 1.3.1.RELEASE |
org.springframework.session | spring-session-hazelcast | 1.3.1.RELEASE |
org.springframework.session | spring-session-jdbc | 1.3.1.RELEASE |
org.springframework.social | spring-social-config | 1.1.4.RELEASE |
org.springframework.social | spring-social-core | 1.1.4.RELEASE |
org.springframework.social | spring-social-facebook | 2.0.3.RELEASE |
org.springframework.social | spring-social-facebook-web | 2.0.3.RELEASE |
org.springframework.social | spring-social-linkedin | 1.0.2.RELEASE |
org.springframework.social | spring-social-security | 1.1.4.RELEASE |
org.springframework.social | spring-social-twitter | 1.1.2.RELEASE |
org.springframework.social | spring-social-web | 1.1.4.RELEASE |
org.springframework.ws | spring-ws-core | 2.4.0.RELEASE |
org.springframework.ws | spring-ws-security | 2.4.0.RELEASE |
org.springframework.ws | spring-ws-support | 2.4.0.RELEASE |
org.springframework.ws | spring-ws-test | 2.4.0.RELEASE |
org.thymeleaf | thymeleaf | 2.1.5.RELEASE |
org.thymeleaf | thymeleaf-spring4 | 2.1.5.RELEASE |
org.thymeleaf.extras | thymeleaf-extras-conditionalcomments | 2.1.2.RELEASE |
org.thymeleaf.extras | thymeleaf-extras-java8time | 2.1.0.RELEASE |
org.thymeleaf.extras | thymeleaf-extras-springsecurity4 | 2.1.3.RELEASE |
org.webjars | hal-browser | 9f96c74 |
org.webjars | webjars-locator | 0.32-1 |
org.xerial | sqlite-jdbc | 3.15.1 |
org.yaml | snakeyaml | 1.17 |
redis.clients | jedis | 2.9.0 |
wsdl4j | wsdl4j | 1.6.3 |
xml-apis | xml-apis | 1.4.01 |
In this chapter, we will learn about the Default Statements in Spring Boot CLI. To begin with, we will learn about the Default Imports.
Spring CLI automatically imports many libraries by default so that explicit imports are not required. Let us now consider the following groovy script to understand Default Imports.
@RestController class FirstApplication { @RequestMapping("/") String welcome() { "Welcome to Howcodex.Com" } }
Here import for @RestController, @RequestMapping annotations are already included by default by Spring Boot. We're not even require to use fully-qualified names. You can check by running the application.
Type the following command −
E:/Test/> spring run FirstApplication.groovy
The above command will generate the following output on console −
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _> | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.8.RELEASE) ... 2017-11-07 19:22:17.310 INFO 4824 --- [ runner-0] o.s.boot.SpringApplication : Started application in 3.405 seconds (JVM running for 7.021)
We are not required to create standard main method for groovy script to initialize a spring application. It is automatically created for spring boot application.
In this chapter, we will learn how to create a sample Thymeleaf-based project to demonstrate the capabilities of Spring CLI. Follow the below mentioned step to create a sample project −
Sr.No | Step & Description |
---|---|
1 | Create a Folder with a name TestApplication with subfolders templates and static. |
2 | Create message.groovy in TestApplication folder, message.html in templates folder, index.html in static folder as explained below. |
3 | Compile and run the application to verify the result of the implemented logic. |
@Controller @Grab('spring-boot-starter-thymeleaf') class MessageController { @RequestMapping("/message") String getMessage(Model model) { String message = "Welcome to Howcodex.Com!"; model.addAttribute("message", message); return "message"; } }
<!DOCTYPE HTML> <html xmlns:th = "http://www.thymeleaf.org"> <head> <title>Spring Boot CLI Example</title> <meta http-equiv = "Content-Type" content = "text/html; charset = UTF-8" /> </head> <body> <p th:text = "'Message: ' + ${message}" /> </body> </html>
<!DOCTYPE HTML> <html> <head> <title>Spring Boot CLI Example</title> <meta http-equiv = "Content-Type" content = "text/html; charset = UTF-8" /> </head> <body> <p>Go to <a href = "/msg">Message</a></p> </body> </html>
To run the application, type the following command −
E:/Test/TestApplication/> spring run *.groovy
Now Spring Boot CLI will come into action, download required dependencies, run the embedded tomcat, deploy the application and start it. You can see the following output on console −
Resolving dependencies............................. . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _> | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.8.RELEASE) ... 2017-11-08 16:27:28.300 INFO 8360 --- [ runner-0] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2017-11-08 16:27:28.305 INFO 8360 --- [ runner-0] o.s.boot.SpringApplication : Started application in 4.203 seconds (JVM running for 38.792)
Our spring based rest application is now ready. Open url as "http://localhost:8080/" and you will see the following output −
Go to Message
Click on the Message link and you will see the following output −
Message − Welcome to Howcodex.Com!
Consider the following points to understand the actions taken by Spring CLI −
The @Grab('spring-boot-starter-thymeleaf') annotation directs CLI to download spring-boot-starter-thymeleaf 1.5.8.RELEASE version.
Spring CLI automatically detects the version using its metadata, as we have not specified any group id or version id here.
Finally after code compilation, deploy the war on a embedded tomcat, start embedded tomcat server on the default port 8080.
In this chapter, we will test the sample project created in Hello World Example Chapter to demonstrate the testing capabilities of Spring CLI. Follow the steps listed in the table below to test the sample project −
Sr.No | Step & Description |
---|---|
1 | Create FirstApplication.groovy and TestFirstApplication.groovy in Test folder as explained below. |
2 | Compile and run the application to verify the result of the implemented logic. |
@RestController class FirstApplication { @RequestMapping("/") String welcome() { "Welcome to Howcodex.Com" } }
class TestFirstApplication { @Test void welcomeTest() { assertEquals("Welcome to Howcodex.Com", new FirstApplication().welcome()) } }
To run the application, type the following command −
E:/Test/FirstApplication/> spring test FirstApplication.groovy TestFirstApplication.groovy
Now Spring Boot CLI will come into action, download the required dependencies, compile the source and test file and unit test the code. The following output will be generated on console −
Resolving dependencies........................................................ . Time: 0.457 OK (1 test)
Consider the following points to understand the actions taken by Spring CLI −
The @Test annotation directs CLI to download JUnit 4.12 version.
Spring CLI automatically detects the version using its metadata, as we have not specified any dependency.
Finally, after code compilation, test the application.
Spring boot CLI provides jar command in order to package a application as jar file. Let us test the sample project created in Starter Thymeleaf Project Chapter to demonstrate the packaging capabilities of Spring CLI.
Follow the steps describe below to package the sample project −
To package the application, begin by typing the following command −
E:/Test/TestApplication/> spring jar TestApplication.jar *.groovy
The command will print the following output −
E:/Test/TestApplication/> spring jar TestApplication.jar *.groovy
Now you can see two new files created in TestApplication folder.
TestApplication.jar − An executable jar file.
TestApplication.jar.original − Original jar file.
By default following directories are included along with their contents −
By default, following directories are excluded along with their contents −
Using --include, we can include directories excluded otherwise. Using --exclude, we can exclude directories included otherwise.
To run the executable Jar, type the following command −
E:/Test/TestApplication/> java -jar TestApplication.jar
The above command will generate the following output on console −
. ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _> | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v1.5.8.RELEASE) ... 2017-11-08 16:27:28.300 INFO 8360 --- [ runner-0] s.b.c.e.t.TomcatEmbeddedServletContainer : Tomcat started on port(s): 8080 (http) 2017-11-08 16:27:28.305 INFO 8360 --- [ runner-0] o.s.boot.SpringApplication : Started application in 4.203 seconds (JVM running for 38.792)
Our spring-based rest application is now ready. Open url as "http://localhost:8080/" and you will see the following output −
Go to Message
Click on Message link and you will see the following output −
Message: Welcome to Howcodex.Com!
Spring Boot CLI can be used to create a new project with maven as default build tool using init command. Maven will use https://start.spring.io service. In following example we'll create a web application using thymeleaf. Go to E:\Test folder and type the following command −
E:/Test> spring init --dependencies = web,thymeleaf MavenApplication.zip
The above command will generate the following output −
Using service at https://start.spring.io Content saved to MavenApplication.zip
We can create a Gradle based project as well by setting --build as gradle. To understand this in a better way, consider the example given below. Go to E:\Test folder and type the following command −
E:/Test> spring init --build = gradle --java-version = 1.8 --dependencies = web,thymeleaf --packaging = war GradleApplication.zip
The above command will generate the following output −
Using service at https://start.spring.io Content saved to GradleApplication.zip
Spring Boot CLI provides a Shell interface to run the commands in which we can directly run the commands as shown below. Go to E:\Test folder and type the following command −
E:/Test> spring shell
The above command will generate the following output −
?[1mSpring Boot?[m?[2m (v1.5.8.RELEASE)?[m Hit TAB to complete. Type 'help' and hit RETURN for help, and 'exit' to quit.
In this section, we will learn how to run commands in Shell. Type the following and see the output −
version Spring CLI v1.5.8.RELEASE
You can press tab to auto complete the commands and type exit to finish the shell console.
Let us now learn how to test the application in shell. Type the following line of code and see the output −
E:\Test\FirstApplication>spring shell ?[1mSpring Boot?[m?[2m (v1.5.8.RELEASE)?[m Hit TAB to complete. Type 'help' and hit RETURN for help, and 'exit' to quit. $ test FirstApplication.groovy TestFirstApplication.groovy . Time: 0.347 OK (1 test) $ exit E:\Test\FirstApplication>