Use HTTPS for external links wherever possible

See gh-16316
1.3.x
Spring Operator 6 years ago committed by Andy Wilkinson
parent a732acaebf
commit e401d02ced

@ -7,8 +7,8 @@ something, or simply want to hack on the code this document should help you get
== Using GitHub issues == Using GitHub issues
We use GitHub issues to track bugs and enhancements. If you have a general usage question We use GitHub issues to track bugs and enhancements. If you have a general usage question
please ask on http://stackoverflow.com[Stack Overflow]. The Spring Boot team and the please ask on https://stackoverflow.com[Stack Overflow]. The Spring Boot team and the
broader community monitor the http://stackoverflow.com/tags/spring-boot[`spring-boot`] broader community monitor the https://stackoverflow.com/tags/spring-boot[`spring-boot`]
tag. tag.
If you are reporting a bug, please help to speed up problem diagnosis by providing as much If you are reporting a bug, please help to speed up problem diagnosis by providing as much
@ -36,7 +36,7 @@ added after the original pull request but before a merge.
the '`Importing into eclipse`' instructions below you should get project specific the '`Importing into eclipse`' instructions below you should get project specific
formatting automatically. You can also import formatter settings using the formatting automatically. You can also import formatter settings using the
`eclipse-code-formatter.xml` file from the `eclipse` folder. If using IntelliJ IDEA, you `eclipse-code-formatter.xml` file from the `eclipse` folder. If using IntelliJ IDEA, you
can use the http://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter Plugin] can use the https://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter Plugin]
to import the same file. to import the same file.
* Make sure all new `.java` files to have a simple Javadoc class comment with at least an * Make sure all new `.java` files to have a simple Javadoc class comment with at least an
`@author` tag identifying you, and preferably at least a paragraph on what the class is `@author` tag identifying you, and preferably at least a paragraph on what the class is
@ -49,7 +49,7 @@ added after the original pull request but before a merge.
* A few unit tests would help a lot as well -- someone has to do it. * A few unit tests would help a lot as well -- someone has to do it.
* If no-one else is using your branch, please rebase it against the current master (or * If no-one else is using your branch, please rebase it against the current master (or
other target branch in the main project). other target branch in the main project).
* When writing a commit message please follow http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions], * When writing a commit message please follow https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions],
if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit
message (where `XXXX` is the issue number). message (where `XXXX` is the issue number).
@ -57,16 +57,16 @@ added after the original pull request but before a merge.
== Working with the code == Working with the code
If you don't have an IDE preference we would recommend that you use If you don't have an IDE preference we would recommend that you use
http://www.springsource.com/developer/sts[Spring Tools Suite] or https://www.springsource.com/developer/sts[Spring Tools Suite] or
http://eclipse.org[Eclipse] when working with the code. We use the https://eclipse.org[Eclipse] when working with the code. We use the
http://eclipse.org/m2e/[M2Eclipse] eclipse plugin for maven support. Other IDEs and tools https://eclipse.org/m2e/[M2Eclipse] eclipse plugin for maven support. Other IDEs and tools
should also work without issue. should also work without issue.
=== Building from source === Building from source
To build the source you will need to install To build the source you will need to install
http://maven.apache.org/run-maven/index.html[Apache Maven] v3.2.3 or above and JDK 1.8. https://maven.apache.org/run-maven/index.html[Apache Maven] v3.2.3 or above and JDK 1.8.
@ -146,7 +146,7 @@ Spring Boot includes a `.setup` files which can be used with the Eclipse Install
provision a new environment. To use the installer: provision a new environment. To use the installer:
* Download and run the latest Eclipse Installer from * Download and run the latest Eclipse Installer from
http://www.eclipse.org/downloads/[eclipse.org/downloads/]. https://www.eclipse.org/downloads/[eclipse.org/downloads/].
* Switch to "Advanced Mode" using the drop down menu on the right. * Switch to "Advanced Mode" using the drop down menu on the right.
* Select "`Eclipse IDE for Java Developers`" under "`Eclipse.org`" as the product to * Select "`Eclipse IDE for Java Developers`" under "`Eclipse.org`" as the product to
install and click "`next`". install and click "`next`".
@ -168,7 +168,7 @@ easier to navigate.
==== Manual installation with m2eclipse ==== Manual installation with m2eclipse
If you prefer to install Eclipse yourself we recommend that you use the If you prefer to install Eclipse yourself we recommend that you use the
http://eclipse.org/m2e/[M2Eclipse] eclipse plugin. If you don't already have m2eclipse https://eclipse.org/m2e/[M2Eclipse] eclipse plugin. If you don't already have m2eclipse
installed it is available from the "Eclipse marketplace". installed it is available from the "Eclipse marketplace".
Spring Boot includes project specific source formatting settings, in order to have these Spring Boot includes project specific source formatting settings, in order to have these

@ -1,5 +1,5 @@
= Spring Boot image:https://build.spring.io/plugins/servlet/buildStatusImage/BOOT-PUB["Build Status", link="https://build.spring.io/browse/BOOT-PUB"] image:https://badges.gitter.im/Join Chat.svg["Chat",link="https://gitter.im/spring-projects/spring-boot?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"] = Spring Boot image:https://build.spring.io/plugins/servlet/buildStatusImage/BOOT-PUB["Build Status", link="https://build.spring.io/browse/BOOT-PUB"] image:https://badges.gitter.im/Join Chat.svg["Chat",link="https://gitter.im/spring-projects/spring-boot?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
:docs: http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference :docs: https://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference
Spring Boot makes it easy to create Spring-powered, production-grade applications and Spring Boot makes it easy to create Spring-powered, production-grade applications and
services with absolute minimum fuss. It takes an opinionated view of the Spring platform services with absolute minimum fuss. It takes an opinionated view of the Spring platform
@ -62,10 +62,10 @@ Having trouble with Spring Boot? We'd like to help!
{docs}/htmlsingle/#howto[How-to's] -- they provide solutions to the most common {docs}/htmlsingle/#howto[How-to's] -- they provide solutions to the most common
questions. questions.
* Learn the Spring basics -- Spring Boot builds on many other Spring projects, check * Learn the Spring basics -- Spring Boot builds on many other Spring projects, check
the http://spring.io[spring.io] web-site for a wealth of reference documentation. If the https://spring.io[spring.io] web-site for a wealth of reference documentation. If
you are just starting out with Spring, try one of the http://spring.io/guides[guides]. you are just starting out with Spring, try one of the https://spring.io/guides[guides].
* Ask a questions - we monitor http://stackoverflow.com[stackoverflow.com] for questions * Ask a questions - we monitor https://stackoverflow.com[stackoverflow.com] for questions
tagged with http://stackoverflow.com/tags/spring-boot[`spring-boot`]. tagged with https://stackoverflow.com/tags/spring-boot[`spring-boot`].
* Report bugs with Spring Boot at https://github.com/spring-projects/spring-boot/issues[github.com/spring-projects/spring-boot/issues]. * Report bugs with Spring Boot at https://github.com/spring-projects/spring-boot/issues[github.com/spring-projects/spring-boot/issues].
@ -91,7 +91,7 @@ requests. If you want to raise an issue, please follow the recommendations below
== Building from Source == Building from Source
You don't need to build from source to use Spring Boot (binaries in You don't need to build from source to use Spring Boot (binaries in
http://repo.spring.io[repo.spring.io]), but if you want to try out the latest and https://repo.spring.io[repo.spring.io]), but if you want to try out the latest and
greatest, Spring Boot can be easily built with the greatest, Spring Boot can be easily built with the
https://github.com/takari/maven-wrapper[maven wrapper]. You also need JDK 1.8 (although https://github.com/takari/maven-wrapper[maven wrapper]. You also need JDK 1.8 (although
Boot applications can run on Java 1.6). Boot applications can run on Java 1.6).
@ -102,7 +102,7 @@ Boot applications can run on Java 1.6).
---- ----
If you want to build with the regular `mvn` command, you will need If you want to build with the regular `mvn` command, you will need
http://maven.apache.org/run-maven/index.html[Maven v3.0.5 or above]. https://maven.apache.org/run-maven/index.html[Maven v3.0.5 or above].
NOTE: You may need to increase the amount of memory available to Maven by setting NOTE: You may need to increase the amount of memory available to Maven by setting
a `MAVEN_OPTS` environment variable with the value `-Xmx512m`. Remember a `MAVEN_OPTS` environment variable with the value `-Xmx512m`. Remember
@ -215,16 +215,16 @@ be built with maven and run by invoking `java -jar target/<sample>.jar`.
== Guides == Guides
The http://spring.io/[spring.io] site contains several guides that show how to use Spring The https://spring.io/[spring.io] site contains several guides that show how to use Spring
Boot step-by-step: Boot step-by-step:
* http://spring.io/guides/gs/spring-boot/[Building an Application with Spring Boot] is a * https://spring.io/guides/gs/spring-boot/[Building an Application with Spring Boot] is a
very basic guide that shows you how to create a simple application, run it and add some very basic guide that shows you how to create a simple application, run it and add some
management services. management services.
* http://spring.io/guides/gs/actuator-service/[Building a RESTful Web Service with Spring * https://spring.io/guides/gs/actuator-service/[Building a RESTful Web Service with Spring
Boot Actuator] is a guide to creating a REST web service and also shows how the server Boot Actuator] is a guide to creating a REST web service and also shows how the server
can be configured. can be configured.
* http://spring.io/guides/gs/convert-jar-to-war/[Converting a Spring Boot JAR Application * https://spring.io/guides/gs/convert-jar-to-war/[Converting a Spring Boot JAR Application
to a WAR] shows you how to run applications in a web server as a WAR file. to a WAR] shows you how to run applications in a web server as a WAR file.

@ -5,7 +5,7 @@ manage your application when it's pushed to production. You can choose to manage
monitor your application using HTTP endpoints, with JMX or even by remote shell (SSH or monitor your application using HTTP endpoints, with JMX or even by remote shell (SSH or
Telnet). Auditing, health and metrics gathering can be automatically applied to your Telnet). Auditing, health and metrics gathering can be automatically applied to your
application. The application. The
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready[user guide] https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready[user guide]
covers the features in more detail. covers the features in more detail.
== Enabling the Actuator == Enabling the Actuator

@ -105,7 +105,7 @@ import org.springframework.util.StringUtils;
* context. * context.
* <p> * <p>
* Additional shell commands can be implemented using the guide and documentation at * Additional shell commands can be implemented using the guide and documentation at
* <a href="http://www.crashub.org">crashub.org</a>. By default Boot will search for * <a href="https://www.crashub.org">crashub.org</a>. By default Boot will search for
* commands using the following classpath scanning pattern {@code classpath*:/commands/**} * commands using the following classpath scanning pattern {@code classpath*:/commands/**}
* . To add different locations or override the default use * . To add different locations or override the default use
* {@code shell.command_path_patterns} in your application configuration. * {@code shell.command_path_patterns} in your application configuration.

@ -53,7 +53,7 @@ import org.springframework.web.servlet.mvc.ServletWrappingController;
* <p> * <p>
* Additional configuration parameters for Jolokia can be provided by specifying * Additional configuration parameters for Jolokia can be provided by specifying
* {@code jolokia.config.*} properties. See the * {@code jolokia.config.*} properties. See the
* <a href="http://jolokia.org">http://jolokia.org</a> web site for more information on * <a href="https://jolokia.org">https://jolokia.org</a> web site for more information on
* supported configuration parameters. * supported configuration parameters.
* *
* @author Christian Dupuis * @author Christian Dupuis

@ -24,7 +24,7 @@ import org.springframework.util.Assert;
* The value of the average will depend on whether a weight ('alpha') is set for the * The value of the average will depend on whether a weight ('alpha') is set for the
* gauge. If it is unset, the average will contain a simple arithmetic mean. If a weight * gauge. If it is unset, the average will contain a simple arithmetic mean. If a weight
* is set, an exponential moving average will be calculated as defined in this * is set, an exponential moving average will be calculated as defined in this
* <a href="http://www.itl.nist.gov/div898/handbook/pmc/section4/pmc431.htm">NIST * <a href="https://www.itl.nist.gov/div898/handbook/pmc/section4/pmc431.htm">NIST
* document</a>. * document</a>.
* *
* @author Luke Taylor * @author Luke Taylor

@ -390,7 +390,7 @@ public class MetricFilterAutoConfigurationTests {
throws ServletException, IOException { throws ServletException, IOException {
// send redirect before filter chain is executed, like Spring Security sending // send redirect before filter chain is executed, like Spring Security sending
// us back to a login page // us back to a login page
response.sendRedirect("http://example.com"); response.sendRedirect("https://example.com");
} }
} }

@ -45,7 +45,7 @@ import org.springframework.transaction.jta.JtaTransactionManager;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
/** /**
* JTA Configuration for <A href="http://www.atomikos.com/">Atomikos</a>. * JTA Configuration for <A href="https://www.atomikos.com/">Atomikos</a>.
* *
* @author Josh Long * @author Josh Long
* @author Phillip Webb * @author Phillip Webb

@ -42,7 +42,7 @@ import org.springframework.transaction.jta.JtaTransactionManager;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
/** /**
* JTA Configuration for <A href="http://docs.codehaus.org/display/BTM/Home">Bitronix</A>. * JTA Configuration for <A href="https://docs.codehaus.org/display/BTM/Home">Bitronix</A>.
* *
* @author Josh Long * @author Josh Long
* @author Phillip Webb * @author Phillip Webb

@ -36,7 +36,7 @@ public class ResourceServerPropertiesTests {
@Test @Test
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void json() throws Exception { public void json() throws Exception {
this.properties.getJwt().setKeyUri("http://example.com/token_key"); this.properties.getJwt().setKeyUri("https://example.com/token_key");
ObjectMapper mapper = new ObjectMapper(); ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(this.properties); String json = mapper.writeValueAsString(this.properties);
Map<String, Object> value = mapper.readValue(json, Map.class); Map<String, Object> value = mapper.readValue(json, Map.class);
@ -46,7 +46,7 @@ public class ResourceServerPropertiesTests {
@Test @Test
public void tokenKeyDerived() throws Exception { public void tokenKeyDerived() throws Exception {
this.properties.setUserInfoUri("http://example.com/userinfo"); this.properties.setUserInfoUri("https://example.com/userinfo");
assertNotNull("Wrong properties: " + this.properties, assertNotNull("Wrong properties: " + this.properties,
this.properties.getJwt().getKeyUri()); this.properties.getJwt().getKeyUri());
} }

@ -96,7 +96,7 @@ public class ResourceServerTokenServicesConfigurationTests {
@Test @Test
public void useRemoteTokenServices() { public void useRemoteTokenServices() {
EnvironmentTestUtils.addEnvironment(this.environment, EnvironmentTestUtils.addEnvironment(this.environment,
"security.oauth2.resource.tokenInfoUri:http://example.com", "security.oauth2.resource.tokenInfoUri:https://example.com",
"security.oauth2.resource.clientId=acme"); "security.oauth2.resource.clientId=acme");
this.context = new SpringApplicationBuilder(ResourceConfiguration.class) this.context = new SpringApplicationBuilder(ResourceConfiguration.class)
.environment(this.environment).web(false).run(); .environment(this.environment).web(false).run();
@ -107,7 +107,7 @@ public class ResourceServerTokenServicesConfigurationTests {
@Test @Test
public void switchToUserInfo() { public void switchToUserInfo() {
EnvironmentTestUtils.addEnvironment(this.environment, EnvironmentTestUtils.addEnvironment(this.environment,
"security.oauth2.resource.userInfoUri:http://example.com"); "security.oauth2.resource.userInfoUri:https://example.com");
this.context = new SpringApplicationBuilder(ResourceConfiguration.class) this.context = new SpringApplicationBuilder(ResourceConfiguration.class)
.environment(this.environment).web(false).run(); .environment(this.environment).web(false).run();
UserInfoTokenServices services = this.context UserInfoTokenServices services = this.context
@ -118,7 +118,7 @@ public class ResourceServerTokenServicesConfigurationTests {
@Test @Test
public void userInfoWithAuthorities() { public void userInfoWithAuthorities() {
EnvironmentTestUtils.addEnvironment(this.environment, EnvironmentTestUtils.addEnvironment(this.environment,
"security.oauth2.resource.userInfoUri:http://example.com"); "security.oauth2.resource.userInfoUri:https://example.com");
this.context = new SpringApplicationBuilder(AuthoritiesConfiguration.class) this.context = new SpringApplicationBuilder(AuthoritiesConfiguration.class)
.environment(this.environment).web(false).run(); .environment(this.environment).web(false).run();
UserInfoTokenServices services = this.context UserInfoTokenServices services = this.context
@ -132,7 +132,7 @@ public class ResourceServerTokenServicesConfigurationTests {
public void userInfoWithClient() { public void userInfoWithClient() {
EnvironmentTestUtils.addEnvironment(this.environment, EnvironmentTestUtils.addEnvironment(this.environment,
"security.oauth2.client.client-id=acme", "security.oauth2.client.client-id=acme",
"security.oauth2.resource.userInfoUri:http://example.com", "security.oauth2.resource.userInfoUri:https://example.com",
"server.port=-1", "debug=true"); "server.port=-1", "debug=true");
this.context = new SpringApplicationBuilder(ResourceNoClientConfiguration.class) this.context = new SpringApplicationBuilder(ResourceNoClientConfiguration.class)
.environment(this.environment).web(true).run(); .environment(this.environment).web(true).run();
@ -144,8 +144,8 @@ public class ResourceServerTokenServicesConfigurationTests {
@Test @Test
public void preferUserInfo() { public void preferUserInfo() {
EnvironmentTestUtils.addEnvironment(this.environment, EnvironmentTestUtils.addEnvironment(this.environment,
"security.oauth2.resource.userInfoUri:http://example.com", "security.oauth2.resource.userInfoUri:https://example.com",
"security.oauth2.resource.tokenInfoUri:http://example.com", "security.oauth2.resource.tokenInfoUri:https://example.com",
"security.oauth2.resource.preferTokenInfo:false"); "security.oauth2.resource.preferTokenInfo:false");
this.context = new SpringApplicationBuilder(ResourceConfiguration.class) this.context = new SpringApplicationBuilder(ResourceConfiguration.class)
.environment(this.environment).web(false).run(); .environment(this.environment).web(false).run();
@ -157,8 +157,8 @@ public class ResourceServerTokenServicesConfigurationTests {
@Test @Test
public void userInfoWithCustomizer() { public void userInfoWithCustomizer() {
EnvironmentTestUtils.addEnvironment(this.environment, EnvironmentTestUtils.addEnvironment(this.environment,
"security.oauth2.resource.userInfoUri:http://example.com", "security.oauth2.resource.userInfoUri:https://example.com",
"security.oauth2.resource.tokenInfoUri:http://example.com", "security.oauth2.resource.tokenInfoUri:https://example.com",
"security.oauth2.resource.preferTokenInfo:false"); "security.oauth2.resource.preferTokenInfo:false");
this.context = new SpringApplicationBuilder(ResourceConfiguration.class, this.context = new SpringApplicationBuilder(ResourceConfiguration.class,
Customizer.class).environment(this.environment).web(false).run(); Customizer.class).environment(this.environment).web(false).run();
@ -190,7 +190,7 @@ public class ResourceServerTokenServicesConfigurationTests {
@Test @Test
public void springSocialUserInfo() { public void springSocialUserInfo() {
EnvironmentTestUtils.addEnvironment(this.environment, EnvironmentTestUtils.addEnvironment(this.environment,
"security.oauth2.resource.userInfoUri:http://example.com", "security.oauth2.resource.userInfoUri:https://example.com",
"spring.social.facebook.app-id=foo", "spring.social.facebook.app-id=foo",
"spring.social.facebook.app-secret=bar"); "spring.social.facebook.app-secret=bar");
this.context = new SpringApplicationBuilder(SocialResourceConfiguration.class) this.context = new SpringApplicationBuilder(SocialResourceConfiguration.class)

@ -63,7 +63,7 @@ import static org.junit.Assert.assertEquals;
@SpringApplicationConfiguration(classes = Application.class) @SpringApplicationConfiguration(classes = Application.class)
@RunWith(SpringJUnit4ClassRunner.class) @RunWith(SpringJUnit4ClassRunner.class)
@WebIntegrationTest({ "server.port=0", @WebIntegrationTest({ "server.port=0",
"security.oauth2.resource.userInfoUri:http://example.com", "security.oauth2.resource.userInfoUri:https://example.com",
"security.oauth2.client.clientId=foo" }) "security.oauth2.client.clientId=foo" })
@DirtiesContext @DirtiesContext
public class UserInfoTokenServicesRefreshTokenTests { public class UserInfoTokenServicesRefreshTokenTests {

@ -51,7 +51,7 @@ public class UserInfoTokenServicesTests {
public ExpectedException expected = ExpectedException.none(); public ExpectedException expected = ExpectedException.none();
private UserInfoTokenServices services = new UserInfoTokenServices( private UserInfoTokenServices services = new UserInfoTokenServices(
"http://example.com", "foo"); "https://example.com", "foo");
private BaseOAuth2ProtectedResourceDetails resource = new BaseOAuth2ProtectedResourceDetails(); private BaseOAuth2ProtectedResourceDetails resource = new BaseOAuth2ProtectedResourceDetails();

@ -51,8 +51,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@WebAppConfiguration @WebAppConfiguration
@TestPropertySource(properties = { "debug=true", "security.oauth2.client.clientId=client", @TestPropertySource(properties = { "debug=true", "security.oauth2.client.clientId=client",
"security.oauth2.client.clientSecret=secret", "security.oauth2.client.clientSecret=secret",
"security.oauth2.client.userAuthorizationUri=http://example.com/oauth/authorize", "security.oauth2.client.userAuthorizationUri=https://example.com/oauth/authorize",
"security.oauth2.client.accessTokenUri=http://example.com/oauth/token", "security.oauth2.client.accessTokenUri=https://example.com/oauth/token",
"security.oauth2.resource.jwt.keyValue=SSSSHHH" }) "security.oauth2.resource.jwt.keyValue=SSSSHHH" })
public class BasicOAuth2SsoConfigurationTests { public class BasicOAuth2SsoConfigurationTests {

@ -57,8 +57,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@WebAppConfiguration @WebAppConfiguration
@TestPropertySource(properties = { "security.oauth2.client.clientId=client", @TestPropertySource(properties = { "security.oauth2.client.clientId=client",
"security.oauth2.client.clientSecret=secret", "security.oauth2.client.clientSecret=secret",
"security.oauth2.client.authorizationUri=http://example.com/oauth/authorize", "security.oauth2.client.authorizationUri=https://example.com/oauth/authorize",
"security.oauth2.client.tokenUri=http://example.com/oauth/token", "security.oauth2.client.tokenUri=https://example.com/oauth/token",
"security.oauth2.resource.jwt.keyValue=SSSSHHH" }) "security.oauth2.resource.jwt.keyValue=SSSSHHH" })
public class CustomOAuth2SsoConfigurationTests { public class CustomOAuth2SsoConfigurationTests {

@ -59,8 +59,8 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
@WebAppConfiguration @WebAppConfiguration
@TestPropertySource(properties = { "security.oauth2.client.clientId=client", @TestPropertySource(properties = { "security.oauth2.client.clientId=client",
"security.oauth2.client.clientSecret=secret", "security.oauth2.client.clientSecret=secret",
"security.oauth2.client.authorizationUri=http://example.com/oauth/authorize", "security.oauth2.client.authorizationUri=https://example.com/oauth/authorize",
"security.oauth2.client.tokenUri=http://example.com/oauth/token", "security.oauth2.client.tokenUri=https://example.com/oauth/token",
"security.oauth2.resource.jwt.keyValue=SSSSHHH" }) "security.oauth2.resource.jwt.keyValue=SSSSHHH" })
public class CustomOAuth2SsoWithAuthenticationEntryPointConfigurationTests { public class CustomOAuth2SsoWithAuthenticationEntryPointConfigurationTests {

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"> <html xmlns:th="https://www.thymeleaf.org" xmlns:layout="https://github.com/ultraq/thymeleaf-layout-dialect">
<head> <head>
<title layout:fragment="title">Layout</title> <title layout:fragment="title">Layout</title>
</head> </head>

@ -1,4 +1,4 @@
<html xmlns:th="http://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout" layout:decorator="layout"> <html xmlns:th="https://www.thymeleaf.org" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout" layout:decorator="layout">
<head> <head>
<title layout:fragment="title">Content</title> <title layout:fragment="title">Content</title>
</head> </head>

@ -1,4 +1,4 @@
@GrabResolver(name='clojars.org', root='http://clojars.org/repo') @GrabResolver(name='clojars.org', root='https://clojars.org/repo')
@Grab('redis.embedded:embedded-redis:0.2') @Grab('redis.embedded:embedded-redis:0.2')
@Component @Component

@ -1,7 +1,7 @@
require 'formula' require 'formula'
class Springboot < Formula class Springboot < Formula
homepage 'http://projects.spring.io/spring-boot/' homepage 'https://projects.spring.io/spring-boot/'
url 'https://repo.spring.io/${repo}/org/springframework/boot/spring-boot-cli/${project.version}/spring-boot-cli-${project.version}-bin.tar.gz' url 'https://repo.spring.io/${repo}/org/springframework/boot/spring-boot-cli/${project.version}/spring-boot-cli-${project.version}-bin.tar.gz'
version '${project.version}' version '${project.version}'
sha256 '${checksum}' sha256 '${checksum}'

@ -42,13 +42,13 @@ import org.springframework.util.StringUtils;
public final class RepositoryConfigurationFactory { public final class RepositoryConfigurationFactory {
private static final RepositoryConfiguration MAVEN_CENTRAL = new RepositoryConfiguration( private static final RepositoryConfiguration MAVEN_CENTRAL = new RepositoryConfiguration(
"central", URI.create("http://repo1.maven.org/maven2/"), false); "central", URI.create("https://repo1.maven.org/maven2/"), false);
private static final RepositoryConfiguration SPRING_MILESTONE = new RepositoryConfiguration( private static final RepositoryConfiguration SPRING_MILESTONE = new RepositoryConfiguration(
"spring-milestone", URI.create("http://repo.spring.io/milestone"), false); "spring-milestone", URI.create("https://repo.spring.io/milestone"), false);
private static final RepositoryConfiguration SPRING_SNAPSHOT = new RepositoryConfiguration( private static final RepositoryConfiguration SPRING_SNAPSHOT = new RepositoryConfiguration(
"spring-snapshot", URI.create("http://repo.spring.io/snapshot"), true); "spring-snapshot", URI.create("https://repo.spring.io/snapshot"), true);
private RepositoryConfigurationFactory() { private RepositoryConfigurationFactory() {
} }

@ -44,7 +44,7 @@ import org.eclipse.aether.util.filter.DependencyFilterUtils;
/** /**
* A {@link GrapeEngine} implementation that uses * A {@link GrapeEngine} implementation that uses
* <a href="http://eclipse.org/aether">Aether</a>, the dependency resolution system used * <a href="https://eclipse.org/aether">Aether</a>, the dependency resolution system used
* by Maven. * by Maven.
* *
* @author Andy Wilkinson * @author Andy Wilkinson

@ -54,7 +54,7 @@ public class AetherGrapeEngineTests {
RepositoryConfiguration... additionalRepositories) { RepositoryConfiguration... additionalRepositories) {
List<RepositoryConfiguration> repositoryConfigurations = new ArrayList<RepositoryConfiguration>(); List<RepositoryConfiguration> repositoryConfigurations = new ArrayList<RepositoryConfiguration>();
repositoryConfigurations.add(new RepositoryConfiguration("central", repositoryConfigurations.add(new RepositoryConfiguration("central",
URI.create("http://repo1.maven.org/maven2"), false)); URI.create("https://repo1.maven.org/maven2"), false));
repositoryConfigurations.addAll(Arrays.asList(additionalRepositories)); repositoryConfigurations.addAll(Arrays.asList(additionalRepositories));
return AetherGrapeEngineFactory.create(this.groovyClassLoader, return AetherGrapeEngineFactory.create(this.groovyClassLoader,
repositoryConfigurations, new DependencyResolutionContext()); repositoryConfigurations, new DependencyResolutionContext());
@ -162,7 +162,7 @@ public class AetherGrapeEngineTests {
Map<String, Object> args = new HashMap<String, Object>(); Map<String, Object> args = new HashMap<String, Object>();
AetherGrapeEngine grapeEngine = this.createGrapeEngine(); AetherGrapeEngine grapeEngine = this.createGrapeEngine();
grapeEngine grapeEngine
.addResolver(createResolver("restlet.org", "http://maven.restlet.org")); .addResolver(createResolver("restlet.org", "https://maven.restlet.org"));
grapeEngine.grab(args, createDependency("org.restlet", "org.restlet", "1.1.6")); grapeEngine.grab(args, createDependency("org.restlet", "org.restlet", "1.1.6"));
assertEquals(1, this.groovyClassLoader.getURLs().length); assertEquals(1, this.groovyClassLoader.getURLs().length);
} }

@ -116,7 +116,7 @@ public class SettingsXmlRepositorySystemSessionAutoConfigurationTests {
}, "user.home:" + userHome); }, "user.home:" + userHome);
RemoteRepository repository = new RemoteRepository.Builder("my-server", "default", RemoteRepository repository = new RemoteRepository.Builder("my-server", "default",
"http://maven.example.com").build(); "https://maven.example.com").build();
assertMirrorSelectorConfiguration(session, repository); assertMirrorSelectorConfiguration(session, repository);
assertProxySelectorConfiguration(session, repository); assertProxySelectorConfiguration(session, repository);

@ -3,7 +3,7 @@
xmlns="http://maven.apache.org/POM/4.0.0" xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=" xsi:schemaLocation="
http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> http://maven.apache.org/POM/4.0.0 https://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title th:text="${title}">Title</title> <title th:text="${title}">Title</title>
<link rel="stylesheet" th:href="@{/resources/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/resources/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -39,7 +39,7 @@ import org.springframework.util.Assert;
/** /**
* A server that can be used to tunnel TCP traffic over HTTP. Similar in design to the * A server that can be used to tunnel TCP traffic over HTTP. Similar in design to the
* <a href="http://xmpp.org/extensions/xep-0124.html">Bidirectional-streams Over * <a href="https://xmpp.org/extensions/xep-0124.html">Bidirectional-streams Over
* Synchronous HTTP (BOSH)</a> XMPP extension protocol, the server uses long polling with * Synchronous HTTP (BOSH)</a> XMPP extension protocol, the server uses long polling with
* HTTP requests held open until a response is available. A typical traffic pattern would * HTTP requests held open until a response is available. A typical traffic pattern would
* be as follows: * be as follows:

@ -72,7 +72,7 @@ public class ClassPathFileSystemWatcherTests {
Map<String, Object> properties = new HashMap<String, Object>(); Map<String, Object> properties = new HashMap<String, Object>();
File folder = this.temp.newFolder(); File folder = this.temp.newFolder();
List<URL> urls = new ArrayList<URL>(); List<URL> urls = new ArrayList<URL>();
urls.add(new URL("http://spring.io")); urls.add(new URL("https://spring.io"));
urls.add(folder.toURI().toURL()); urls.add(folder.toURI().toURL());
properties.put("urls", urls); properties.put("urls", urls);
MapPropertySource propertySource = new MapPropertySource("test", properties); MapPropertySource propertySource = new MapPropertySource("test", properties);

@ -61,7 +61,7 @@ public class ChangeableUrlsTests {
@Test @Test
public void httpUrl() throws Exception { public void httpUrl() throws Exception {
URL url = new URL("http://spring.io"); URL url = new URL("https://spring.io");
assertThat(ChangeableUrls.fromUrls(url).size(), equalTo(0)); assertThat(ChangeableUrls.fromUrls(url).size(), equalTo(0));
} }

@ -277,7 +277,7 @@ consider a different logging implementation.
If the above restrictions mean that you cannot use Spring Boot Loader the following If the above restrictions mean that you cannot use Spring Boot Loader the following
alternatives could be considered: alternatives could be considered:
* http://maven.apache.org/plugins/maven-shade-plugin/[Maven Shade Plugin] * https://maven.apache.org/plugins/maven-shade-plugin/[Maven Shade Plugin]
* http://www.jdotsoft.com/JarClassLoader.php[JarClassLoader] * http://www.jdotsoft.com/JarClassLoader.php[JarClassLoader]
* http://one-jar.sourceforge.net[OneJar] * http://one-jar.sourceforge.net[OneJar]

@ -33,7 +33,7 @@ section of your `pom.xml`
---- ----
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<!-- ... --> <!-- ... -->
<build> <build>
@ -85,11 +85,11 @@ If you are using a milestone or snapshot release you will also need to add appro
<pluginRepositories> <pluginRepositories>
<pluginRepository> <pluginRepository>
<id>spring-snapshots</id> <id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url> <url>https://repo.spring.io/snapshot</url>
</pluginRepository> </pluginRepository>
<pluginRepository> <pluginRepository>
<id>spring-milestones</id> <id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url> <url>https://repo.spring.io/milestone</url>
</pluginRepository> </pluginRepository>
</pluginRepositories> </pluginRepositories>
---- ----
@ -107,7 +107,7 @@ usual `packaging` element:
---- ----
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- ... --> <!-- ... -->
<packaging>jar</packaging> <packaging>jar</packaging>
<!-- ... --> <!-- ... -->
@ -135,7 +135,7 @@ need to mark the embedded container dependencies as "`provided`", e.g:
---- ----
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- ... --> <!-- ... -->
<packaging>war</packaging> <packaging>war</packaging>
<!-- ... --> <!-- ... -->
@ -192,8 +192,8 @@ If you are using a milestone or snapshot release you will also need to add appro
---- ----
buildscript { buildscript {
repositories { repositories {
maven.url "http://repo.spring.io/snapshot" maven.url "https://repo.spring.io/snapshot"
maven.url "http://repo.spring.io/milestone" maven.url "https://repo.spring.io/milestone"
} }
// ... // ...
} }
@ -282,7 +282,7 @@ named "`providedRuntime`", e.g:
repositories { repositories {
jcenter() jcenter()
maven { url "http://repo.spring.io/libs-snapshot" } maven { url "https://repo.spring.io/libs-snapshot" }
} }
configurations { configurations {
@ -625,7 +625,7 @@ from `spring-boot-starter-parent`. Please refer to the
==== Configuring Gradle to produce a pom that imports dependency management ==== Configuring Gradle to produce a pom that imports dependency management
The following is an example of configuring Gradle to generate a pom that imports The following is an example of configuring Gradle to generate a pom that imports
the dependency management provided by `spring-boot-dependencies`. Please refer to the the dependency management provided by `spring-boot-dependencies`. Please refer to the
http://www.gradle.org/docs/current/userguide/userguide.html[Gradle User Guide] for https://www.gradle.org/docs/current/userguide/userguide.html[Gradle User Guide] for
further information. further information.
[source,groovy,indent=0,subs="verbatim,attributes"] [source,groovy,indent=0,subs="verbatim,attributes"]
@ -837,7 +837,7 @@ If your archive already includes libraries you can use `Libraries.NONE`.
[[build-tool-plugins-find-a-main-class]] [[build-tool-plugins-find-a-main-class]]
=== Finding a main class === Finding a main class
If you don't use `Repackager.setMainClass()` to specify a main class, the repackager will If you don't use `Repackager.setMainClass()` to specify a main class, the repackager will
use http://asm.ow2.org/[ASM] to read class files and attempt to find a suitable class use https://asm.ow2.org/[ASM] to read class files and attempt to find a suitable class
with a `public static void main(String[] args)` method. An exception is thrown if more with a `public static void main(String[] args)` method. An exception is thrown if more
than one candidate is found. than one candidate is found.

@ -46,10 +46,10 @@ stand-alone executable jar applications, as well as traditional `.war` packaged
applications. applications.
Once you've built your application (using, for example, `mvn clean package`) and Once you've built your application (using, for example, `mvn clean package`) and
http://docs.cloudfoundry.org/devguide/installcf/install-go-cli.html[installed the `cf` https://docs.cloudfoundry.org/devguide/installcf/install-go-cli.html[installed the `cf`
command line tool], simply deploy your application using the `cf push` command as follows, command line tool], simply deploy your application using the `cf push` command as follows,
substituting the path to your compiled `.jar`. Be sure to have substituting the path to your compiled `.jar`. Be sure to have
http://docs.cloudfoundry.org/devguide/installcf/whats-new-v6.html#login[logged in with your https://docs.cloudfoundry.org/devguide/installcf/whats-new-v6.html#login[logged in with your
`cf` command line client] before pushing an application. `cf` command line client] before pushing an application.
[indent=0,subs="verbatim,quotes,attributes"] [indent=0,subs="verbatim,quotes,attributes"]
@ -57,9 +57,9 @@ http://docs.cloudfoundry.org/devguide/installcf/whats-new-v6.html#login[logged i
$ cf push acloudyspringtime -p target/demo-0.0.1-SNAPSHOT.jar $ cf push acloudyspringtime -p target/demo-0.0.1-SNAPSHOT.jar
---- ----
See the http://docs.cloudfoundry.org/devguide/installcf/whats-new-v6.html#push[`cf push` See the https://docs.cloudfoundry.org/devguide/installcf/whats-new-v6.html#push[`cf push`
documentation] for more options. If there is a Cloud Foundry documentation] for more options. If there is a Cloud Foundry
http://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html[`manifest.yml`] https://docs.cloudfoundry.org/devguide/deploy-apps/manifest.html[`manifest.yml`]
file present in the same directory, it will be consulted. file present in the same directory, it will be consulted.
NOTE: Here we are substituting `acloudyspringtime` for whatever value you give `cf` NOTE: Here we are substituting `acloudyspringtime` for whatever value you give `cf`
@ -107,7 +107,7 @@ It's easy to then verify the status of the deployed application:
Once Cloud Foundry acknowledges that your application has been deployed, you should be Once Cloud Foundry acknowledges that your application has been deployed, you should be
able to hit the application at the URI given, in this case able to hit the application at the URI given, in this case
`http://acloudyspringtime.cfapps.io/`. `https://acloudyspringtime.cfapps.io/`.
@ -145,7 +145,7 @@ access application information (such as the public URL of the application) and s
information (such as database credentials). See `CloudFoundryVcapEnvironmentPostProcessor` information (such as database credentials). See `CloudFoundryVcapEnvironmentPostProcessor`
Javadoc for complete details. Javadoc for complete details.
TIP: The http://cloud.spring.io/spring-cloud-connectors/[Spring Cloud Connectors] project TIP: The https://cloud.spring.io/spring-cloud-connectors/[Spring Cloud Connectors] project
is a better fit for tasks such as configuring a DataSource. Spring Boot includes is a better fit for tasks such as configuring a DataSource. Spring Boot includes
auto-configuration support and a `spring-boot-starter-cloud-connectors` starter POM. auto-configuration support and a `spring-boot-starter-cloud-connectors` starter POM.
@ -202,10 +202,10 @@ This should be everything you need. The most common workflow for Heroku deployme
-----> Executing: mvn -B -DskipTests=true clean install -----> Executing: mvn -B -DskipTests=true clean install
[INFO] Scanning for projects... [INFO] Scanning for projects...
Downloading: http://repo.spring.io/... Downloading: https://repo.spring.io/...
Downloaded: http://repo.spring.io/... (818 B at 1.8 KB/sec) Downloaded: https://repo.spring.io/... (818 B at 1.8 KB/sec)
.... ....
Downloaded: http://s3pository.heroku.com/jvm/... (152 KB at 595.3 KB/sec) Downloaded: https://s3pository.heroku.com/jvm/... (152 KB at 595.3 KB/sec)
[INFO] Installing /tmp/build_0c35a5d2-a067-4abc-a232-14b1fb7a8229/target/... [INFO] Installing /tmp/build_0c35a5d2-a067-4abc-a232-14b1fb7a8229/target/...
[INFO] Installing /tmp/build_0c35a5d2-a067-4abc-a232-14b1fb7a8229/pom.xml ... [INFO] Installing /tmp/build_0c35a5d2-a067-4abc-a232-14b1fb7a8229/pom.xml ...
[INFO] ------------------------------------------------------------------------ [INFO] ------------------------------------------------------------------------
@ -221,7 +221,7 @@ This should be everything you need. The most common workflow for Heroku deployme
-----> Compressing... *done*, 70.4MB -----> Compressing... *done*, 70.4MB
-----> Launching... *done*, v6 -----> Launching... *done*, v6
http://agile-sierra-1405.herokuapp.com/ *deployed to Heroku* https://agile-sierra-1405.herokuapp.com/ *deployed to Heroku*
To git@heroku.com:agile-sierra-1405.git To git@heroku.com:agile-sierra-1405.git
* [new branch] master -> master * [new branch] master -> master
@ -344,7 +344,7 @@ and then configure and start the necessary resources on AWS:
Payload started in 00:29.266s -> http://52.28.235.61/ Payload started in 00:29.266s -> http://52.28.235.61/
Remapping Elastic IP 52.28.233.167 to i-92ef9f53 ... Remapping Elastic IP 52.28.233.167 to i-92ef9f53 ...
Waiting 15s for AWS to complete Elastic IP Zero Downtime transition ... Waiting 15s for AWS to complete Elastic IP Zero Downtime transition ...
Deployment completed successfully. axelfontaine/myapp:1.0 is up and running at http://myapp-axelfontaine.boxfuse.io/ Deployment completed successfully. axelfontaine/myapp:1.0 is up and running at https://myapp-axelfontaine.boxfuse.io/
---- ----
Your application should now be up and running on AWS. Your application should now be up and running on AWS.
@ -532,7 +532,7 @@ application.
Note that unlike when running as an `init.d` service, user that runs the application, PID Note that unlike when running as an `init.d` service, user that runs the application, PID
file and console log file behave differently under `systemd` and must be configured using file and console log file behave differently under `systemd` and must be configured using
appropriate fields in '`service`' script. Consult the appropriate fields in '`service`' script. Consult the
http://www.freedesktop.org/software/systemd/man/systemd.service.html[service unit https://www.freedesktop.org/software/systemd/man/systemd.service.html[service unit
configuration man page] for more details. configuration man page] for more details.
To flag the application to start automatically on system boot use the following command: To flag the application to start automatically on system boot use the following command:
@ -602,7 +602,7 @@ the default behavior in a script or on the command line:
NOTE: The `PID_FOLDER`, `LOG_FOLDER` and `LOG_FILENAME` variables are only valid for an NOTE: The `PID_FOLDER`, `LOG_FOLDER` and `LOG_FILENAME` variables are only valid for an
`init.d` service. With `systemd` the equivalent customizations are made using '`service`' `init.d` service. With `systemd` the equivalent customizations are made using '`service`'
script. Check the script. Check the
http://www.freedesktop.org/software/systemd/man/systemd.service.html[service unit https://www.freedesktop.org/software/systemd/man/systemd.service.html[service unit
configuration man page] for more details. configuration man page] for more details.
In addition, the following properties can be changed when the script is written by using In addition, the following properties can be changed when the script is written by using
@ -671,7 +671,7 @@ your Spring Boot application.
[[deployment-whats-next]] [[deployment-whats-next]]
== What to read next == What to read next
Check out the http://www.cloudfoundry.com/[Cloud Foundry], Check out the https://www.cloudfoundry.org[Cloud Foundry],
https://www.heroku.com/[Heroku], https://www.openshift.com[OpenShift] and https://www.heroku.com/[Heroku], https://www.openshift.com[OpenShift] and
https://boxfuse.com[Boxfuse] web sites for more information about the kinds of features https://boxfuse.com[Boxfuse] web sites for more information about the kinds of features
that a PaaS can offer. These are just four of the most popular Java PaaS providers, since that a PaaS can offer. These are just four of the most popular Java PaaS providers, since

@ -31,10 +31,10 @@ Having trouble with Spring Boot, We'd like to help!
* Try the <<howto.adoc#howto, How-to's>> -- they provide solutions to the most common * Try the <<howto.adoc#howto, How-to's>> -- they provide solutions to the most common
questions. questions.
* Learn the Spring basics -- Spring Boot builds on many other Spring projects, check * Learn the Spring basics -- Spring Boot builds on many other Spring projects, check
the http://spring.io[spring.io] web-site for a wealth of reference documentation. If the https://spring.io[spring.io] web-site for a wealth of reference documentation. If
you are just starting out with Spring, try one of the http://spring.io/guides[guides]. you are just starting out with Spring, try one of the https://spring.io/guides[guides].
* Ask a question - we monitor http://stackoverflow.com[stackoverflow.com] for questions * Ask a question - we monitor https://stackoverflow.com[stackoverflow.com] for questions
tagged with http://stackoverflow.com/tags/spring-boot[`spring-boot`]. tagged with https://stackoverflow.com/tags/spring-boot[`spring-boot`].
* Report bugs with Spring Boot at https://github.com/spring-projects/spring-boot/issues. * Report bugs with Spring Boot at https://github.com/spring-projects/spring-boot/issues.
NOTE: All of Spring Boot is open source, including the documentation! If you find problems NOTE: All of Spring Boot is open source, including the documentation! If you find problems

@ -36,7 +36,7 @@ diverge from the defaults.
[[getting-started-system-requirements]] [[getting-started-system-requirements]]
== System Requirements == System Requirements
By default, Spring Boot {spring-boot-version} requires http://www.java.com[Java 7] and By default, Spring Boot {spring-boot-version} requires https://www.java.com[Java 7] and
Spring Framework {spring-version} or above. You can use Spring Boot with Java 6 with some Spring Framework {spring-version} or above. You can use Spring Boot with Java 6 with some
additional configuration. See <<howto.adoc#howto-use-java-6>> for more details. Explicit additional configuration. See <<howto.adoc#howto-use-java-6>> for more details. Explicit
build support is provided for Maven (3.2+) and Gradle (1.12 or 2.x). Gradle 3 is not build support is provided for Maven (3.2+) and Gradle (1.12 or 2.x). Gradle 3 is not
@ -79,7 +79,7 @@ You can also deploy Spring Boot applications to any Servlet 3.0+ compatible cont
[[getting-started-installing-spring-boot]] [[getting-started-installing-spring-boot]]
== Installing Spring Boot == Installing Spring Boot
Spring Boot can be used with "`classic`" Java development tools or installed as a command Spring Boot can be used with "`classic`" Java development tools or installed as a command
line tool. Regardless, you will need http://www.java.com[Java SDK v1.6] or higher. You line tool. Regardless, you will need https://www.java.com[Java SDK v1.6] or higher. You
should check your current Java installation before you begin: should check your current Java installation before you begin:
[indent=0] [indent=0]
@ -112,7 +112,7 @@ build tool that supports dependency management (such as Maven or Gradle).
[[getting-started-maven-installation]] [[getting-started-maven-installation]]
==== Maven installation ==== Maven installation
Spring Boot is compatible with Apache Maven 3.2 or above. If you don't already have Maven Spring Boot is compatible with Apache Maven 3.2 or above. If you don't already have Maven
installed you can follow the instructions at http://maven.apache.org. installed you can follow the instructions at https://maven.apache.org.
TIP: On many operating systems Maven can be installed via a package manager. If you're an TIP: On many operating systems Maven can be installed via a package manager. If you're an
OSX Homebrew user try `brew install maven`. Ubuntu users can run OSX Homebrew user try `brew install maven`. Ubuntu users can run
@ -131,7 +131,7 @@ Here is a typical `pom.xml` file:
---- ----
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId> <groupId>com.example</groupId>
@ -169,22 +169,22 @@ ifeval::["{spring-boot-repo}" != "release"]
<repositories> <repositories>
<repository> <repository>
<id>spring-snapshots</id> <id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url> <url>https://repo.spring.io/snapshot</url>
<snapshots><enabled>true</enabled></snapshots> <snapshots><enabled>true</enabled></snapshots>
</repository> </repository>
<repository> <repository>
<id>spring-milestones</id> <id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url> <url>https://repo.spring.io/milestone</url>
</repository> </repository>
</repositories> </repositories>
<pluginRepositories> <pluginRepositories>
<pluginRepository> <pluginRepository>
<id>spring-snapshots</id> <id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url> <url>https://repo.spring.io/snapshot</url>
</pluginRepository> </pluginRepository>
<pluginRepository> <pluginRepository>
<id>spring-milestones</id> <id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url> <url>https://repo.spring.io/milestone</url>
</pluginRepository> </pluginRepository>
</pluginRepositories> </pluginRepositories>
endif::[] endif::[]
@ -203,7 +203,7 @@ scope.
==== Gradle installation ==== Gradle installation
Spring Boot is compatible with Gradle 1.12 or 2.x. 2.14.1 is recommended. Gradle 3 is not Spring Boot is compatible with Gradle 1.12 or 2.x. 2.14.1 is recommended. Gradle 3 is not
supported. If you don't already have Gradle installed you can follow the instructions at supported. If you don't already have Gradle installed you can follow the instructions at
http://www.gradle.org/. https://www.gradle.org/.
Spring Boot dependencies can be declared using the `org.springframework.boot` `group`. Spring Boot dependencies can be declared using the `org.springframework.boot` `group`.
Typically your project will declare dependencies to one or more Typically your project will declare dependencies to one or more
@ -226,8 +226,8 @@ Here is a typical `build.gradle` file:
repositories { repositories {
jcenter() jcenter()
ifndef::release[] ifndef::release[]
maven { url "http://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" } maven { url "https://repo.spring.io/milestone" }
endif::release[] endif::release[]
} }
dependencies { dependencies {
@ -246,8 +246,8 @@ endif::release[]
repositories { repositories {
jcenter() jcenter()
ifndef::release[] ifndef::release[]
maven { url "http://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" } maven { url "https://repo.spring.io/milestone" }
endif::release[] endif::release[]
} }
@ -262,7 +262,7 @@ endif::release[]
[[getting-started-installing-the-cli]] [[getting-started-installing-the-cli]]
=== Installing the Spring Boot CLI === Installing the Spring Boot CLI
The Spring Boot CLI is a command line tool that can be used if you want to quickly The Spring Boot CLI is a command line tool that can be used if you want to quickly
prototype with Spring. It allows you to run http://groovy.codehaus.org/[Groovy] scripts, prototype with Spring. It allows you to run https://groovy.codehaus.org/[Groovy] scripts,
which means that you have a familiar Java-like syntax, without so much boilerplate code. which means that you have a familiar Java-like syntax, without so much boilerplate code.
You don't need to use the CLI to work with Spring Boot but it's definitely the quickest You don't need to use the CLI to work with Spring Boot but it's definitely the quickest
@ -274,10 +274,10 @@ way to get a Spring application off the ground.
==== Manual installation ==== Manual installation
You can download the Spring CLI distribution from the Spring software repository: You can download the Spring CLI distribution from the Spring software repository:
* http://repo.spring.io/{spring-boot-repo}/org/springframework/boot/spring-boot-cli/{spring-boot-version}/spring-boot-cli-{spring-boot-version}-bin.zip[spring-boot-cli-{spring-boot-version}-bin.zip] * https://repo.spring.io/{spring-boot-repo}/org/springframework/boot/spring-boot-cli/{spring-boot-version}/spring-boot-cli-{spring-boot-version}-bin.zip[spring-boot-cli-{spring-boot-version}-bin.zip]
* http://repo.spring.io/{spring-boot-repo}/org/springframework/boot/spring-boot-cli/{spring-boot-version}/spring-boot-cli-{spring-boot-version}-bin.tar.gz[spring-boot-cli-{spring-boot-version}-bin.tar.gz] * https://repo.spring.io/{spring-boot-repo}/org/springframework/boot/spring-boot-cli/{spring-boot-version}/spring-boot-cli-{spring-boot-version}-bin.tar.gz[spring-boot-cli-{spring-boot-version}-bin.tar.gz]
Cutting edge http://repo.spring.io/snapshot/org/springframework/boot/spring-boot-cli/[snapshot distributions] Cutting edge https://repo.spring.io/snapshot/org/springframework/boot/spring-boot-cli/[snapshot distributions]
are also available. are also available.
Once downloaded, follow the {github-raw}/spring-boot-cli/src/main/content/INSTALL.txt[INSTALL.txt] Once downloaded, follow the {github-raw}/spring-boot-cli/src/main/content/INSTALL.txt[INSTALL.txt]
@ -292,7 +292,7 @@ classpath is set correctly).
==== Installation with SDKMAN! ==== Installation with SDKMAN!
SDKMAN! (The Software Development Kit Manager) can be used for managing multiple versions of SDKMAN! (The Software Development Kit Manager) can be used for managing multiple versions of
various binary SDKs, including Groovy and the Spring Boot CLI. various binary SDKs, including Groovy and the Spring Boot CLI.
Get SDKMAN! from http://sdkman.io and install Spring Boot with Get SDKMAN! from https://sdkman.io and install Spring Boot with
[indent=0,subs="verbatim,quotes,attributes"] [indent=0,subs="verbatim,quotes,attributes"]
---- ----
@ -339,7 +339,7 @@ You can see it by doing this:
[[getting-started-homebrew-cli-installation]] [[getting-started-homebrew-cli-installation]]
==== OSX Homebrew installation ==== OSX Homebrew installation
If you are on a Mac and using http://brew.sh/[Homebrew], all you need to do to install If you are on a Mac and using https://brew.sh/[Homebrew], all you need to do to install
the Spring Boot CLI is: the Spring Boot CLI is:
[indent=0] [indent=0]
@ -357,7 +357,7 @@ Just execute `brew update` and try again.
[[getting-started-macports-cli-installation]] [[getting-started-macports-cli-installation]]
==== MacPorts installation ==== MacPorts installation
If you are on a Mac and using http://www.macports.org/[MacPorts], all you need to do to If you are on a Mac and using https://www.macports.org/[MacPorts], all you need to do to
install the Spring Boot CLI is: install the Spring Boot CLI is:
[indent=0] [indent=0]
@ -370,8 +370,8 @@ install the Spring Boot CLI is:
[[getting-started-cli-command-line-completion]] [[getting-started-cli-command-line-completion]]
==== Command-line completion ==== Command-line completion
Spring Boot CLI ships with scripts that provide command completion for Spring Boot CLI ships with scripts that provide command completion for
http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29[BASH] and https://en.wikipedia.org/wiki/Bash_%2528Unix_shell%2529[BASH] and
http://en.wikipedia.org/wiki/Zsh[zsh] shells. You can `source` the script (also named https://en.wikipedia.org/wiki/Zsh[zsh] shells. You can `source` the script (also named
`spring`) in any shell, or put it in your personal or system-wide bash completion `spring`) in any shell, or put it in your personal or system-wide bash completion
initialization. On a Debian system the system-wide scripts are in `/shell-completion/bash` initialization. On a Debian system the system-wide scripts are in `/shell-completion/bash`
and all scripts in that directory are executed when a new shell starts. To run the script and all scripts in that directory are executed when a new shell starts. To run the script
@ -448,7 +448,7 @@ support it.
[TIP] [TIP]
==== ====
The http://spring.io[spring.io] web site contains many "`Getting Started`" guides The https://spring.io[spring.io] web site contains many "`Getting Started`" guides
that use Spring Boot. If you're looking to solve a specific problem; check there first. that use Spring Boot. If you're looking to solve a specific problem; check there first.
You can shortcut the steps below by going to https://start.spring.io and choosing the You can shortcut the steps below by going to https://start.spring.io and choosing the
@ -491,7 +491,7 @@ will be used to build your project. Open your favorite text editor and add the f
---- ----
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId> <groupId>com.example</groupId>
@ -511,22 +511,22 @@ ifeval::["{spring-boot-repo}" != "release"]
<repositories> <repositories>
<repository> <repository>
<id>spring-snapshots</id> <id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url> <url>https://repo.spring.io/snapshot</url>
<snapshots><enabled>true</enabled></snapshots> <snapshots><enabled>true</enabled></snapshots>
</repository> </repository>
<repository> <repository>
<id>spring-milestones</id> <id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url> <url>https://repo.spring.io/milestone</url>
</repository> </repository>
</repositories> </repositories>
<pluginRepositories> <pluginRepositories>
<pluginRepository> <pluginRepository>
<id>spring-snapshots</id> <id>spring-snapshots</id>
<url>http://repo.spring.io/snapshot</url> <url>https://repo.spring.io/snapshot</url>
</pluginRepository> </pluginRepository>
<pluginRepository> <pluginRepository>
<id>spring-milestones</id> <id>spring-milestones</id>
<url>http://repo.spring.io/milestone</url> <url>https://repo.spring.io/milestone</url>
</pluginRepository> </pluginRepository>
</pluginRepositories> </pluginRepositories>
endif::[] endif::[]
@ -803,12 +803,12 @@ As before, to gracefully exit the application hit `ctrl-c`.
== What to read next == What to read next
Hopefully this section has provided you with some of the Spring Boot basics, and got you Hopefully this section has provided you with some of the Spring Boot basics, and got you
on your way to writing your own applications. If you're a task-oriented type of on your way to writing your own applications. If you're a task-oriented type of
developer you might want to jump over to http://spring.io and check out some of the developer you might want to jump over to https://spring.io and check out some of the
http://spring.io/guides/[getting started] guides that solve specific https://spring.io/guides/[getting started] guides that solve specific
"`How do I do that with Spring`" problems; we also have Spring Boot-specific "`How do I do that with Spring`" problems; we also have Spring Boot-specific
_<<howto.adoc#howto, How-to>>_ reference documentation. _<<howto.adoc#howto, How-to>>_ reference documentation.
The http://github.com/{github-repo}[Spring Boot repository] has also a The https://github.com/{github-repo}[Spring Boot repository] has also a
{github-code}/spring-boot-samples[bunch of samples] you can run. The samples are {github-code}/spring-boot-samples[bunch of samples] you can run. The samples are
independent of the rest of the code (that is you don't need to build the rest to run independent of the rest of the code (that is you don't need to build the rest to run
or use the samples). or use the samples).

@ -8,7 +8,7 @@ that often arise when using Spring Boot. This is by no means an exhaustive list,
does cover quite a lot. does cover quite a lot.
If you are having a specific problem that we don't cover here, you might want to check out If you are having a specific problem that we don't cover here, you might want to check out
http://stackoverflow.com/tags/spring-boot[stackoverflow.com] to see if someone has https://stackoverflow.com/tags/spring-boot[stackoverflow.com] to see if someone has
already provided an answer; this is also a great place to ask new questions (please use already provided an answer; this is also a great place to ask new questions (please use
the `spring-boot` tag). the `spring-boot` tag).
@ -209,7 +209,7 @@ token of the `maven-resources-plugins` has been changed from `+${*}+` to `@` (i.
`@maven.token@` instead of `${maven.token}`) to prevent conflicts with Spring-style `@maven.token@` instead of `${maven.token}`) to prevent conflicts with Spring-style
placeholders. If you have enabled maven filtering for the `application.properties` placeholders. If you have enabled maven filtering for the `application.properties`
directly, you may want to also change the default filter token to use directly, you may want to also change the default filter token to use
http://maven.apache.org/plugins/maven-resources-plugin/resources-mojo.html#delimiters[other delimiters]. https://maven.apache.org/plugins/maven-resources-plugin/resources-mojo.html#delimiters[other delimiters].
NOTE: In this specific case the port binding will work in a PaaS environment like Heroku NOTE: In this specific case the port binding will work in a PaaS environment like Heroku
and Cloud Foundry, since in those two platforms the `PORT` environment variable is set and Cloud Foundry, since in those two platforms the `PORT` environment variable is set
@ -1238,7 +1238,7 @@ have been applied from the auto-configuration:
== Logging == Logging
Spring Boot has no mandatory logging dependency, except for the `commons-logging` API, of Spring Boot has no mandatory logging dependency, except for the `commons-logging` API, of
which there are many implementations to choose from. To use http://logback.qos.ch[Logback] which there are many implementations to choose from. To use https://logback.qos.ch[Logback]
you need to include it, and some bindings for `commons-logging` on the classpath. The you need to include it, and some bindings for `commons-logging` on the classpath. The
simplest way to do that is through the starter poms which all depend on simplest way to do that is through the starter poms which all depend on
`spring-boot-starter-logging`. For a web application you only need `spring-boot-starter-logging`. For a web application you only need
@ -1342,8 +1342,8 @@ You also need to add `logging.file` to your `application.properties`:
[[howto-configure-log4j-for-logging]] [[howto-configure-log4j-for-logging]]
=== Configure Log4j for logging === Configure Log4j for logging
Spring Boot also supports either http://logging.apache.org/log4j/1.2[Log4j] or Spring Boot also supports either https://logging.apache.org/log4j/1.2[Log4j] or
http://logging.apache.org/log4j/2.x[Log4j 2] for logging configuration, but only if one https://logging.apache.org/log4j/2.x[Log4j 2] for logging configuration, but only if one
of them is on the classpath. If you are using the starter poms for assembling of them is on the classpath. If you are using the starter poms for assembling
dependencies that means you have to exclude Logback and then include your chosen version dependencies that means you have to exclude Logback and then include your chosen version
of Log4j instead. If you aren't using the starter poms then you need to provide of Log4j instead. If you aren't using the starter poms then you need to provide
@ -1731,8 +1731,8 @@ initialization explicitly using `spring.batch.initializer.enabled=false`.
[[howto-use-a-higher-level-database-migration-tool]] [[howto-use-a-higher-level-database-migration-tool]]
=== Use a higher level database migration tool === Use a higher level database migration tool
Spring Boot works fine with higher level migration tools http://flywaydb.org/[Flyway] Spring Boot works fine with higher level migration tools https://flywaydb.org/[Flyway]
(SQL-based) and http://www.liquibase.org/[Liquibase] (XML). In general we prefer (SQL-based) and https://www.liquibase.org/[Liquibase] (XML). In general we prefer
Flyway because it is easier on the eyes, and it isn't very common to need platform Flyway because it is easier on the eyes, and it isn't very common to need platform
independence: usually only one or at most couple of platforms is needed. independence: usually only one or at most couple of platforms is needed.
@ -1749,7 +1749,7 @@ addition Spring Boot provides a small set of properties in
{sc-spring-boot-autoconfigure}/flyway/FlywayProperties.{sc-ext}[`FlywayProperties`] {sc-spring-boot-autoconfigure}/flyway/FlywayProperties.{sc-ext}[`FlywayProperties`]
that can be used to disable the migrations, or switch off the location checking. that can be used to disable the migrations, or switch off the location checking.
TIP: If you want to make use of http://flywaydb.org/documentation/callbacks.html[Flyway TIP: If you want to make use of https://flywaydb.org/documentation/callbacks.html[Flyway
callbacks], those scripts should also live in the `classpath:db/migration` folder. callbacks], those scripts should also live in the `classpath:db/migration` folder.
By default Flyway will autowire the (`@Primary`) `DataSource` in your context and By default Flyway will autowire the (`@Primary`) `DataSource` in your context and
@ -1880,7 +1880,7 @@ for details of available settings) and `SECURITY` section of
=== Change the AuthenticationManager and add user accounts === Change the AuthenticationManager and add user accounts
If you provide a `@Bean` of type `AuthenticationManager` the default one will not be If you provide a `@Bean` of type `AuthenticationManager` the default one will not be
created, so you have the full feature set of Spring Security available (e.g. created, so you have the full feature set of Spring Security available (e.g.
http://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#jc-authentication[various authentication options]). https://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#jc-authentication[various authentication options]).
Spring Security also provides a convenient `AuthenticationManagerBuilder` which can be Spring Security also provides a convenient `AuthenticationManagerBuilder` which can be
used to build an `AuthenticationManager` with common options. The recommended way to used to build an `AuthenticationManager` with common options. The recommended way to
@ -2024,7 +2024,7 @@ for other Velocity customization options.
[[howto-reload-fast-restart]] [[howto-reload-fast-restart]]
=== Fast application restarts === Fast application restarts
The `spring-boot-devtools` module includes support for automatic application restarts. The `spring-boot-devtools` module includes support for automatic application restarts.
Whilst not as fast a technologies such as http://zeroturnaround.com/software/jrebel/[JRebel] Whilst not as fast a technologies such as https://zeroturnaround.com/software/jrebel/[JRebel]
or https://github.com/spring-projects/spring-loaded[Spring Loaded] it's usually or https://github.com/spring-projects/spring-loaded[Spring Loaded] it's usually
significantly faster than a "`cold start`". You should probably give it a try before significantly faster than a "`cold start`". You should probably give it a try before
investigating some of the more complex reload options discussed below. investigating some of the more complex reload options discussed below.
@ -2577,7 +2577,7 @@ For a non-web application it should be easy (throw away the code that creates yo
`ApplicationContext` and replace it with calls to `SpringApplication` or `ApplicationContext` and replace it with calls to `SpringApplication` or
`SpringApplicationBuilder`). Spring MVC web applications are generally amenable to first `SpringApplicationBuilder`). Spring MVC web applications are generally amenable to first
creating a deployable war application, and then migrating it later to an executable war creating a deployable war application, and then migrating it later to an executable war
and/or jar. Useful reading is in the http://spring.io/guides/gs/convert-jar-to-war/[Getting and/or jar. Useful reading is in the https://spring.io/guides/gs/convert-jar-to-war/[Getting
Started Guide on Converting a jar to a war]. Started Guide on Converting a jar to a war].
Create a deployable war by extending `SpringBootServletInitializer` (e.g. in a class Create a deployable war by extending `SpringBootServletInitializer` (e.g. in a class
@ -2692,9 +2692,9 @@ rather than the version that pre-installed with the server. You can do this by a
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app" xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd https://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd"> https://xmlns.oracle.com/weblogic/weblogic-web-app/1.4/weblogic-web-app.xsd">
<wls:container-descriptor> <wls:container-descriptor>
<wls:prefer-application-packages> <wls:prefer-application-packages>
<wls:package-name>org.slf4j</wls:package-name> <wls:package-name>org.slf4j</wls:package-name>
@ -2722,7 +2722,7 @@ but the rest of it is normal for a Spring application in Servlet 2.5. Example:
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> xsi:schemaLocation="http://java.sun.com/xml/ns/javaee https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<context-param> <context-param>
<param-name>contextConfigLocation</param-name> <param-name>contextConfigLocation</param-name>

@ -10,13 +10,13 @@ Phillip Webb; Dave Syer; Josh Long; Stéphane Nicoll; Rob Winch; Andy Wilkinson;
:spring-boot-repo: snapshot :spring-boot-repo: snapshot
:github-tag: master :github-tag: master
:spring-boot-docs-version: current :spring-boot-docs-version: current
:spring-boot-docs: http://docs.spring.io/spring-boot/docs/{spring-boot-docs-version}/reference :spring-boot-docs: https://docs.spring.io/spring-boot/docs/{spring-boot-docs-version}/reference
:spring-boot-docs-current: http://docs.spring.io/spring-boot/docs/current/reference :spring-boot-docs-current: https://docs.spring.io/spring-boot/docs/current/reference
:github-repo: spring-projects/spring-boot :github-repo: spring-projects/spring-boot
:github-raw: http://raw.github.com/{github-repo}/{github-tag} :github-raw: https://raw.github.com/{github-repo}/{github-tag}
:github-code: http://github.com/{github-repo}/tree/{github-tag} :github-code: https://github.com/{github-repo}/tree/{github-tag}
:github-wiki: http://github.com/{github-repo}/wiki :github-wiki: https://github.com/{github-repo}/wiki
:github-master-code: http://github.com/{github-repo}/tree/master :github-master-code: https://github.com/{github-repo}/tree/master
:sc-ext: java :sc-ext: java
:sc-spring-boot: {github-code}/spring-boot/src/main/java/org/springframework/boot :sc-spring-boot: {github-code}/spring-boot/src/main/java/org/springframework/boot
:sc-spring-boot-autoconfigure: {github-code}/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure :sc-spring-boot-autoconfigure: {github-code}/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure
@ -24,24 +24,24 @@ Phillip Webb; Dave Syer; Josh Long; Stéphane Nicoll; Rob Winch; Andy Wilkinson;
:sc-spring-boot-cli: {github-code}/spring-boot-cli/src/main/java/org/springframework/boot/cli :sc-spring-boot-cli: {github-code}/spring-boot-cli/src/main/java/org/springframework/boot/cli
:sc-spring-boot-devtools: {github-code}/spring-boot-devtools/src/main/java/org/springframework/boot/devtools :sc-spring-boot-devtools: {github-code}/spring-boot-devtools/src/main/java/org/springframework/boot/devtools
:dc-ext: html :dc-ext: html
:dc-root: http://docs.spring.io/spring-boot/docs/{spring-boot-docs-version}/api :dc-root: https://docs.spring.io/spring-boot/docs/{spring-boot-docs-version}/api
:dc-spring-boot: {dc-root}/org/springframework/boot :dc-spring-boot: {dc-root}/org/springframework/boot
:dc-spring-boot-autoconfigure: {dc-root}/org/springframework/boot/autoconfigure :dc-spring-boot-autoconfigure: {dc-root}/org/springframework/boot/autoconfigure
:dc-spring-boot-actuator: {dc-root}/org/springframework/boot/actuate :dc-spring-boot-actuator: {dc-root}/org/springframework/boot/actuate
:dependency-management-plugin: https://github.com/spring-gradle-plugins/dependency-management-plugin :dependency-management-plugin: https://github.com/spring-gradle-plugins/dependency-management-plugin
:dependency-management-plugin-documentation: {dependency-management-plugin}/blob/master/README.md :dependency-management-plugin-documentation: {dependency-management-plugin}/blob/master/README.md
:spring-boot-maven-plugin-site: http://docs.spring.io/spring-boot/docs/{spring-boot-docs-version}/maven-plugin :spring-boot-maven-plugin-site: https://docs.spring.io/spring-boot/docs/{spring-boot-docs-version}/maven-plugin
:spring-reference: http://docs.spring.io/spring/docs/{spring-docs-version}/spring-framework-reference/htmlsingle :spring-reference: https://docs.spring.io/spring/docs/{spring-docs-version}/spring-framework-reference/htmlsingle
:spring-security-reference: http://docs.spring.io/spring-security/site/docs/{spring-security-docs-version}/reference/htmlsingle :spring-security-reference: https://docs.spring.io/spring-security/site/docs/{spring-security-docs-version}/reference/htmlsingle
:spring-javadoc: http://docs.spring.io/spring/docs/{spring-docs-version}/javadoc-api/org/springframework :spring-javadoc: https://docs.spring.io/spring/docs/{spring-docs-version}/javadoc-api/org/springframework
:spring-amqp-javadoc: http://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp :spring-amqp-javadoc: https://docs.spring.io/spring-amqp/docs/current/api/org/springframework/amqp
:spring-data-javadoc: http://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa :spring-data-javadoc: https://docs.spring.io/spring-data/jpa/docs/current/api/org/springframework/data/jpa
:spring-data-commons-javadoc: http://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data :spring-data-commons-javadoc: https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data
:spring-data-mongo-javadoc: http://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb :spring-data-mongo-javadoc: https://docs.spring.io/spring-data/mongodb/docs/current/api/org/springframework/data/mongodb
:spring-data-rest-javadoc: http://docs.spring.io/spring-data/rest/docs/current/api/org/springframework/data/rest :spring-data-rest-javadoc: https://docs.spring.io/spring-data/rest/docs/current/api/org/springframework/data/rest
:gradle-userguide: http://www.gradle.org/docs/current/userguide :gradle-userguide: https://www.gradle.org/docs/current/userguide
:propdeps-plugin: https://github.com/spring-projects/gradle-plugins/tree/master/propdeps-plugin :propdeps-plugin: https://github.com/spring-projects/gradle-plugins/tree/master/propdeps-plugin
:ant-manual: http://ant.apache.org/manual :ant-manual: https://ant.apache.org/manual
:gradle-user-guide: https://docs.gradle.org/2.14.1/userguide :gradle-user-guide: https://docs.gradle.org/2.14.1/userguide
:gradle-dsl: https://docs.gradle.org/2.14.1/dsl :gradle-dsl: https://docs.gradle.org/2.14.1/dsl
// ====================================================================================== // ======================================================================================

@ -187,9 +187,9 @@ For example, to mark _all_ endpoints as sensitive except `info`:
[[production-ready-endpoint-hypermedia]] [[production-ready-endpoint-hypermedia]]
=== Hypermedia for actuator MVC endpoints === Hypermedia for actuator MVC endpoints
If http://projects.spring.io/spring-hateoas[Spring HATEOAS] is on the classpath (e.g. If https://projects.spring.io/spring-hateoas[Spring HATEOAS] is on the classpath (e.g.
through the `spring-boot-starter-hateoas` or if you are using through the `spring-boot-starter-hateoas` or if you are using
http://projects.spring.io/spring-data-rest[Spring Data REST]) then the HTTP endpoints https://projects.spring.io/spring-data-rest[Spring Data REST]) then the HTTP endpoints
from the Actuator are enhanced with hypermedia links, and a "`discovery page`" is added from the Actuator are enhanced with hypermedia links, and a "`discovery page`" is added
with links to all the endpoints. The "`discovery page`" is available on `/actuator` by with links to all the endpoints. The "`discovery page`" is available on `/actuator` by
default. It is implemented as an endpoint, allowing properties to be used to configure default. It is implemented as an endpoint, allowing properties to be used to configure
@ -209,8 +209,8 @@ an HTML "`discovery page`", in the form of the HAL Browser, is also provided.
[[production-ready-endpoint-cors]] [[production-ready-endpoint-cors]]
=== CORS support === CORS support
http://en.wikipedia.org/wiki/Cross-origin_resource_sharing[Cross-origin resource sharing] https://en.wikipedia.org/wiki/Cross-origin_resource_sharing[Cross-origin resource sharing]
(CORS) is a http://www.w3.org/TR/cors/[W3C specification] that allows you to specify in a (CORS) is a https://www.w3.org/TR/cors/[W3C specification] that allows you to specify in a
flexible way what kind of cross domain requests are authorized. Actuator's MVC endpoints flexible way what kind of cross domain requests are authorized. Actuator's MVC endpoints
can be configured to support such scenarios. can be configured to support such scenarios.
@ -220,7 +220,7 @@ CORS support is disabled by default and is only enabled once the
[source,properties,indent=0] [source,properties,indent=0]
---- ----
endpoints.cors.allowed-origins=http://example.com endpoints.cors.allowed-origins=https://example.com
endpoints.cors.allowed-methods=GET,POST endpoints.cors.allowed-methods=GET,POST
---- ----
@ -802,7 +802,7 @@ authentication will be applied and you should see a message like this:
---- ----
Linux and OSX users can use `ssh` to connect to the remote shell, Windows users can Linux and OSX users can use `ssh` to connect to the remote shell, Windows users can
download and install http://www.putty.org/[PuTTY]. download and install https://www.putty.org/[PuTTY].
[indent=0,subs="attributes"] [indent=0,subs="attributes"]
---- ----
@ -900,7 +900,7 @@ In addition to new commands, it is also possible to extend other CRaSH shell fea
All Spring Beans that extend `org.crsh.plugin.CRaSHPlugin` will be automatically All Spring Beans that extend `org.crsh.plugin.CRaSHPlugin` will be automatically
registered with the shell. registered with the shell.
For more information please refer to the http://www.crashub.org/[CRaSH reference For more information please refer to the https://www.crashub.org/[CRaSH reference
documentation]. documentation].
@ -1076,7 +1076,7 @@ Here is a simple example that counts the number of times that a method is invoke
TIP: You can use any string as a metric name but you should follow guidelines of your chosen TIP: You can use any string as a metric name but you should follow guidelines of your chosen
store/graphing technology. Some good guidelines for Graphite are available on store/graphing technology. Some good guidelines for Graphite are available on
http://matt.aimonetti.net/posts/2013/06/26/practical-guide-to-graphite-monitoring/[Matt Aimonetti's Blog]. https://matt.aimonetti.net/posts/2013/06/26/practical-guide-to-graphite-monitoring/[Matt Aimonetti's Blog].
@ -1461,7 +1461,7 @@ customize the file name and path via the `Writer` constructor.
== What to read next == What to read next
If you want to explore some of the concepts discussed in this chapter, you can take a If you want to explore some of the concepts discussed in this chapter, you can take a
look at the actuator {github-code}/spring-boot-samples[sample applications]. You also look at the actuator {github-code}/spring-boot-samples[sample applications]. You also
might want to read about graphing tools such as http://graphite.wikidot.com/[Graphite]. might want to read about graphing tools such as https://graphite.wikidot.com/[Graphite].
Otherwise, you can continue on, to read about <<deployment.adoc#deployment, Otherwise, you can continue on, to read about <<deployment.adoc#deployment,
'`deployment options`'>> or jump ahead '`deployment options`'>> or jump ahead

@ -247,7 +247,7 @@ You can use `@DependencyManagementBom` anywhere that you can use `@Grab`, howeve
ensure consistent ordering of the dependency management, you can only use ensure consistent ordering of the dependency management, you can only use
`@DependencyManagementBom` at most once in your application. A useful source of `@DependencyManagementBom` at most once in your application. A useful source of
dependency management (that is a superset of Spring Boot's dependency management) is the dependency management (that is a superset of Spring Boot's dependency management) is the
http://platform.spring.io/[Spring IO Platform], e.g. https://platform.spring.io/[Spring IO Platform], e.g.
`@DependencyManagementBom('io.spring.platform:platform-bom:1.1.2.RELEASE')`. `@DependencyManagementBom('io.spring.platform:platform-bom:1.1.2.RELEASE')`.
@ -457,7 +457,7 @@ To uninstall all additional dependencies you can use the `--all` option. For exa
[[cli-groovy-beans-dsl]] [[cli-groovy-beans-dsl]]
== Developing application with the Groovy beans DSL == Developing application with the Groovy beans DSL
Spring Framework 4.0 has native support for a `beans{}` "`DSL`" (borrowed from Spring Framework 4.0 has native support for a `beans{}` "`DSL`" (borrowed from
http://grails.org/[Grails]), and you can embed bean definitions in your Groovy https://grails.org/[Grails]), and you can embed bean definitions in your Groovy
application scripts using the same format. This is sometimes a good way to include application scripts using the same format. This is sometimes a good way to include
external features like middleware declarations. For example: external features like middleware declarations. For example:

@ -536,10 +536,10 @@ for details.
[[boot-features-external-config-yaml]] [[boot-features-external-config-yaml]]
=== Using YAML instead of Properties === Using YAML instead of Properties
http://yaml.org[YAML] is a superset of JSON, and as such is a very convenient format https://yaml.org[YAML] is a superset of JSON, and as such is a very convenient format
for specifying hierarchical configuration data. The `SpringApplication` class will for specifying hierarchical configuration data. The `SpringApplication` class will
automatically support YAML as an alternative to properties whenever you have the automatically support YAML as an alternative to properties whenever you have the
http://www.snakeyaml.org/[SnakeYAML] library on your classpath. https://bitbucket.org/asomov/snakeyaml[SnakeYAML] library on your classpath.
NOTE: If you use '`starter POMs`' SnakeYAML will be automatically provided via NOTE: If you use '`starter POMs`' SnakeYAML will be automatically provided via
`spring-boot-starter`. `spring-boot-starter`.
@ -558,10 +558,10 @@ For example, the following YAML document:
---- ----
environments: environments:
dev: dev:
url: http://dev.bar.com url: https://dev.bar.com
name: Developer Setup name: Developer Setup
prod: prod:
url: http://foo.bar.com url: https://foo.bar.com
name: My Cool App name: My Cool App
---- ----
@ -569,9 +569,9 @@ Would be transformed into these properties:
[source,properties,indent=0] [source,properties,indent=0]
---- ----
environments.dev.url=http://dev.bar.com environments.dev.url=https://dev.bar.com
environments.dev.name=Developer Setup environments.dev.name=Developer Setup
environments.prod.url=http://foo.bar.com environments.prod.url=https://foo.bar.com
environments.prod.name=My Cool App environments.prod.name=My Cool App
---- ----
@ -1005,12 +1005,12 @@ See _<<boot-features-external-config-profile-specific-properties>>_ for details.
[[boot-features-logging]] [[boot-features-logging]]
== Logging == Logging
Spring Boot uses http://commons.apache.org/logging[Commons Logging] for all internal Spring Boot uses https://commons.apache.org/logging[Commons Logging] for all internal
logging, but leaves the underlying log implementation open. Default configurations are logging, but leaves the underlying log implementation open. Default configurations are
provided for provided for
http://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html[Java Util Logging], https://docs.oracle.com/javase/7/docs/api/java/util/logging/package-summary.html[Java Util Logging],
http://logging.apache.org/log4j/[Log4J], http://logging.apache.org/log4j/2.x/[Log4J2] and https://logging.apache.org/log4j/[Log4J], https://logging.apache.org/log4j/2.x/[Log4J2] and
http://logback.qos.ch/[Logback]. In each case loggers are pre-configured to use console https://logback.qos.ch/[Logback]. In each case loggers are pre-configured to use console
output with optional file output also available. output with optional file output also available.
By default, If you use the '`Starter POMs`', Logback will be used for logging. Appropriate By default, If you use the '`Starter POMs`', Logback will be used for logging. Appropriate
@ -1396,7 +1396,7 @@ Here is a typical example `@RestController` to serve JSON data:
Spring MVC is part of the core Spring Framework and detailed information is available in Spring MVC is part of the core Spring Framework and detailed information is available in
the {spring-reference}#mvc[reference documentation]. There are also several guides the {spring-reference}#mvc[reference documentation]. There are also several guides
available at http://spring.io/guides that cover Spring MVC. available at https://spring.io/guides that cover Spring MVC.
@ -1489,7 +1489,7 @@ default welcome page detection will switch to your custom locations, so if there
application. application.
In addition to the '`standard`' static resource locations above, a special case is made In addition to the '`standard`' static resource locations above, a special case is made
for http://www.webjars.org/[Webjars content]. Any resources with a path in `+/webjars/**+` for https://www.webjars.org/[Webjars content]. Any resources with a path in `+/webjars/**+`
will be served from jar files if they are packaged in the Webjars format. will be served from jar files if they are packaged in the Webjars format.
TIP: Do not use the `src/main/webapp` directory if your application will be packaged as a TIP: Do not use the `src/main/webapp` directory if your application will be packaged as a
@ -1562,11 +1562,11 @@ and JSPs. Many other templating engines also ship their own Spring MVC integrati
Spring Boot includes auto-configuration support for the following templating engines: Spring Boot includes auto-configuration support for the following templating engines:
* http://freemarker.org/docs/[FreeMarker] * https://freemarker.apache.org/docs[FreeMarker]
* http://docs.groovy-lang.org/docs/next/html/documentation/template-engines.html#_the_markuptemplateengine[Groovy] * http://docs.groovy-lang.org/docs/next/html/documentation/template-engines.html#_the_markuptemplateengine[Groovy]
* http://www.thymeleaf.org[Thymeleaf] * https://www.thymeleaf.org[Thymeleaf]
* http://velocity.apache.org[Velocity] * https://velocity.apache.org[Velocity]
* http://mustache.github.io/[Mustache] * https://mustache.github.io/[Mustache]
TIP: JSPs should be avoided if possible, there are several TIP: JSPs should be avoided if possible, there are several
<<boot-features-jsp-limitations, known limitations>> when using them with embedded <<boot-features-jsp-limitations, known limitations>> when using them with embedded
@ -1710,9 +1710,9 @@ described above.
[[boot-features-cors]] [[boot-features-cors]]
==== CORS support ==== CORS support
http://en.wikipedia.org/wiki/Cross-origin_resource_sharing[Cross-origin resource sharing] https://en.wikipedia.org/wiki/Cross-origin_resource_sharing[Cross-origin resource sharing]
(CORS) is a http://www.w3.org/TR/cors/[W3C specification] implemented by (CORS) is a https://www.w3.org/TR/cors/[W3C specification] implemented by
http://caniuse.com/#feat=cors[most browsers] that allows you to specify in a flexible https://caniuse.com/#feat=cors[most browsers] that allows you to specify in a flexible
way what kind of cross domain requests are authorized, instead of using some less secure way what kind of cross domain requests are authorized, instead of using some less secure
and less powerful approaches like IFRAME or JSONP. and less powerful approaches like IFRAME or JSONP.
@ -2295,8 +2295,8 @@ data when your application ends.
TIP: The '`How-to`' section includes a _<<howto.adoc#howto-database-initialization, TIP: The '`How-to`' section includes a _<<howto.adoc#howto-database-initialization,
section on how to initialize a database>>_ section on how to initialize a database>>_
Spring Boot can auto-configure embedded http://www.h2database.com[H2], Spring Boot can auto-configure embedded https://www.h2database.com[H2],
http://hsqldb.org/[HSQL] and http://db.apache.org/derby/[Derby] databases. You don't need http://hsqldb.org/[HSQL] and https://db.apache.org/derby/[Derby] databases. You don't need
to provide any connection URLs, simply include a build dependency to the embedded database to provide any connection URLs, simply include a build dependency to the embedded database
that you want to use. that you want to use.
@ -2377,7 +2377,7 @@ using the `+spring.datasource.*+` prefix, refer to the documentation of the conn
implementation you are using for more details. implementation you are using for more details.
For instance, if you are using the For instance, if you are using the
http://tomcat.apache.org/tomcat-8.0-doc/jdbc-pool.html#Common_Attributes[Tomcat connection pool] https://tomcat.apache.org/tomcat-8.0-doc/jdbc-pool.html#Common_Attributes[Tomcat connection pool]
you could customize many additional settings: you could customize many additional settings:
@ -2453,9 +2453,9 @@ started. It provides the following key dependencies:
* Spring ORMs -- Core ORM support from the Spring Framework. * Spring ORMs -- Core ORM support from the Spring Framework.
TIP: We won't go into too many details of JPA or Spring Data here. You can follow the TIP: We won't go into too many details of JPA or Spring Data here. You can follow the
http://spring.io/guides/gs/accessing-data-jpa/['`Accessing Data with JPA`'] guide from https://spring.io/guides/gs/accessing-data-jpa/['`Accessing Data with JPA`'] guide from
http://spring.io and read the http://projects.spring.io/spring-data-jpa/[Spring Data JPA] https://spring.io and read the https://projects.spring.io/spring-data-jpa/[Spring Data JPA]
and http://hibernate.org/orm/documentation/[Hibernate] reference documentation. and https://hibernate.org/orm/documentation/[Hibernate] reference documentation.
@ -2555,7 +2555,7 @@ Here is a typical Spring Data repository:
---- ----
TIP: We have barely scratched the surface of Spring Data JPA. For complete details check TIP: We have barely scratched the surface of Spring Data JPA. For complete details check
their http://projects.spring.io/spring-data-jpa/[reference documentation]. their https://projects.spring.io/spring-data-jpa/[reference documentation].
@ -2591,8 +2591,8 @@ Hibernate autoconfig is active because the `ddl-auto` settings are more fine-gra
[[boot-features-sql-h2-console]] [[boot-features-sql-h2-console]]
=== Using H2's web console === Using H2's web console
The http://www.h2database.com[H2 database] provides a The https://www.h2database.com[H2 database] provides a
http://www.h2database.com/html/quickstart.html#h2_console[browser-based console] that https://www.h2database.com/html/quickstart.html#h2_console[browser-based console] that
Spring Boot can auto-configure for you. The console will be auto-configured when the Spring Boot can auto-configure for you. The console will be auto-configured when the
following conditions are met: following conditions are met:
@ -2630,8 +2630,8 @@ the security configuration:
[[boot-features-jooq]] [[boot-features-jooq]]
== Using jOOQ == Using jOOQ
Java Object Oriented Querying (http://www.jooq.org/[jOOQ]) is a popular product from Java Object Oriented Querying (https://www.jooq.org/[jOOQ]) is a popular product from
http://www.datageekery.com/[Data Geekery] which generates Java code from your https://www.datageekery.com/[Data Geekery] which generates Java code from your
database, and lets you build type safe SQL queries through its fluent API. Both the database, and lets you build type safe SQL queries through its fluent API. Both the
commercial and open source editions can be used with Spring Boot. commercial and open source editions can be used with Spring Boot.
@ -2640,7 +2640,7 @@ commercial and open source editions can be used with Spring Boot.
=== Code Generation === Code Generation
In order to use jOOQ type-safe queries, you need to generate Java classes from your In order to use jOOQ type-safe queries, you need to generate Java classes from your
database schema. You can follow the instructions in the database schema. You can follow the instructions in the
http://www.jooq.org/doc/3.6/manual-single-page/#jooq-in-7-steps-step3[jOOQ user manual]. https://www.jooq.org/doc/3.6/manual-single-page/#jooq-in-7-steps-step3[jOOQ user manual].
If you are using the `jooq-codegen-maven` plugin (and you also use the If you are using the `jooq-codegen-maven` plugin (and you also use the
`spring-boot-starter-parent` "`parent POM`") you can safely omit the plugin's `<version>` `spring-boot-starter-parent` "`parent POM`") you can safely omit the plugin's `<version>`
tag. You can also use Spring Boot defined version variables (e.g. `h2.version`) to tag. You can also use Spring Boot defined version variables (e.g. `h2.version`) to
@ -2740,24 +2740,24 @@ complete control of the jOOQ configuration.
== Working with NoSQL technologies == Working with NoSQL technologies
Spring Data provides additional projects that help you access a variety of NoSQL Spring Data provides additional projects that help you access a variety of NoSQL
technologies including technologies including
http://projects.spring.io/spring-data-mongodb/[MongoDB], https://projects.spring.io/spring-data-mongodb/[MongoDB],
http://projects.spring.io/spring-data-neo4j/[Neo4J], https://projects.spring.io/spring-data-neo4j/[Neo4J],
https://github.com/spring-projects/spring-data-elasticsearch/[Elasticsearch], https://github.com/spring-projects/spring-data-elasticsearch/[Elasticsearch],
http://projects.spring.io/spring-data-solr/[Solr], https://projects.spring.io/spring-data-solr/[Solr],
http://projects.spring.io/spring-data-redis/[Redis], https://projects.spring.io/spring-data-redis/[Redis],
http://projects.spring.io/spring-data-gemfire/[Gemfire], https://projects.spring.io/spring-data-gemfire/[Gemfire],
http://projects.spring.io/spring-data-couchbase/[Couchbase] and https://projects.spring.io/spring-data-couchbase/[Couchbase] and
http://projects.spring.io/spring-data-cassandra/[Cassandra]. https://projects.spring.io/spring-data-cassandra/[Cassandra].
Spring Boot provides auto-configuration for Redis, MongoDB, Elasticsearch, Solr and Spring Boot provides auto-configuration for Redis, MongoDB, Elasticsearch, Solr and
Cassandra; you can make use of the other projects, but you will need to configure them Cassandra; you can make use of the other projects, but you will need to configure them
yourself. Refer to the appropriate reference documentation at yourself. Refer to the appropriate reference documentation at
http://projects.spring.io/spring-data[projects.spring.io/spring-data]. https://projects.spring.io/spring-data[projects.spring.io/spring-data].
[[boot-features-redis]] [[boot-features-redis]]
=== Redis === Redis
http://redis.io/[Redis] is a cache, message broker and richly-featured key-value store. https://redis.io/[Redis] is a cache, message broker and richly-featured key-value store.
Spring Boot offers basic auto-configuration for the Spring Boot offers basic auto-configuration for the
https://github.com/xetorthio/jedis/[Jedis] client library and abstractions on top of it https://github.com/xetorthio/jedis/[Jedis] client library and abstractions on top of it
provided by https://github.com/spring-projects/spring-data-redis[Spring Data Redis]. There provided by https://github.com/spring-projects/spring-data-redis[Spring Data Redis]. There
@ -2798,7 +2798,7 @@ pooled connection factory by default.
[[boot-features-mongodb]] [[boot-features-mongodb]]
=== MongoDB === MongoDB
http://www.mongodb.com/[MongoDB] is an open-source NoSQL document database that uses a https://www.mongodb.com/[MongoDB] is an open-source NoSQL document database that uses a
JSON-like schema instead of traditional table-based relational data. Spring Boot offers JSON-like schema instead of traditional table-based relational data. Spring Boot offers
several conveniences for working with MongoDB, including the several conveniences for working with MongoDB, including the
`spring-boot-starter-data-mongodb` '`Starter POM`'. `spring-boot-starter-data-mongodb` '`Starter POM`'.
@ -2927,7 +2927,7 @@ is now a Mongo data class rather than a JPA `@Entity`, it will work in the same
---- ----
TIP: For complete details of Spring Data MongoDB, including its rich object mapping TIP: For complete details of Spring Data MongoDB, including its rich object mapping
technologies, refer to their http://projects.spring.io/spring-data-mongodb/[reference technologies, refer to their https://projects.spring.io/spring-data-mongodb/[reference
documentation]. documentation].
@ -2956,7 +2956,7 @@ Mongo instance's configuration and logging routing.
=== Gemfire === Gemfire
https://github.com/spring-projects/spring-data-gemfire[Spring Data Gemfire] provides https://github.com/spring-projects/spring-data-gemfire[Spring Data Gemfire] provides
convenient Spring-friendly tools for accessing the convenient Spring-friendly tools for accessing the
http://pivotal.io/big-data/pivotal-gemfire#details[Pivotal Gemfire] data management https://pivotal.io/big-data/pivotal-gemfire#details[Pivotal Gemfire] data management
platform. There is a `spring-boot-starter-data-gemfire` '`Starter POM`' for collecting the platform. There is a `spring-boot-starter-data-gemfire` '`Starter POM`' for collecting the
dependencies in a convenient way. There is currently no auto-configuration support for dependencies in a convenient way. There is currently no auto-configuration support for
Gemfire, but you can enable Spring Data Repositories with a Gemfire, but you can enable Spring Data Repositories with a
@ -2966,7 +2966,7 @@ https://github.com/spring-projects/spring-data-gemfire/blob/master/src/main/java
[[boot-features-solr]] [[boot-features-solr]]
=== Solr === Solr
http://lucene.apache.org/solr/[Apache Solr] is a search engine. Spring Boot offers basic https://lucene.apache.org/solr/[Apache Solr] is a search engine. Spring Boot offers basic
auto-configuration for the Solr 4 client library and abstractions on top of it provided by auto-configuration for the Solr 4 client library and abstractions on top of it provided by
https://github.com/spring-projects/spring-data-solr[Spring Data Solr]. There is https://github.com/spring-projects/spring-data-solr[Spring Data Solr]. There is
a `spring-boot-starter-data-solr` '`Starter POM`' for collecting the dependencies in a a `spring-boot-starter-data-solr` '`Starter POM`' for collecting the dependencies in a
@ -3015,13 +3015,13 @@ so you could take the JPA example from earlier and, assuming that `City` is now
`@SolrDocument` class rather than a JPA `@Entity`, it will work in the same way. `@SolrDocument` class rather than a JPA `@Entity`, it will work in the same way.
TIP: For complete details of Spring Data Solr, refer to their TIP: For complete details of Spring Data Solr, refer to their
http://projects.spring.io/spring-data-solr/[reference documentation]. https://projects.spring.io/spring-data-solr/[reference documentation].
[[boot-features-elasticsearch]] [[boot-features-elasticsearch]]
=== Elasticsearch === Elasticsearch
http://www.elasticsearch.org/[Elasticsearch] is an open source, distributed, https://www.elastic.co/[Elasticsearch] is an open source, distributed,
real-time search and analytics engine. Spring Boot offers basic auto-configuration for real-time search and analytics engine. Spring Boot offers basic auto-configuration for
the Elasticsearch and abstractions on top of it provided by the Elasticsearch and abstractions on top of it provided by
https://github.com/spring-projects/spring-data-elasticsearch[Spring Data Elasticsearch]. https://github.com/spring-projects/spring-data-elasticsearch[Spring Data Elasticsearch].
@ -3072,13 +3072,13 @@ infrastructure; so you could take the JPA example from earlier and, assuming tha
work in the same way. work in the same way.
TIP: For complete details of Spring Data Elasticsearch, refer to their TIP: For complete details of Spring Data Elasticsearch, refer to their
http://docs.spring.io/spring-data/elasticsearch/docs/[reference documentation]. https://docs.spring.io/spring-data/elasticsearch/docs/[reference documentation].
[[boot-features-cassandra]] [[boot-features-cassandra]]
=== Cassandra === Cassandra
http://cassandra.apache.org/[Cassandra] is an open source, distributed database management https://cassandra.apache.org/[Cassandra] is an open source, distributed database management
system designed to handle large amounts of data across many commodity servers. Spring Boot system designed to handle large amounts of data across many commodity servers. Spring Boot
offers auto-configuration for Cassandra and abstractions on top of it provided by offers auto-configuration for Cassandra and abstractions on top of it provided by
https://github.com/spring-projects/spring-data-cassandra[Spring Data Cassandra]. https://github.com/spring-projects/spring-data-cassandra[Spring Data Cassandra].
@ -3129,7 +3129,7 @@ limited than the JPA repositories discussed earlier, and will need to annotate f
methods with `@Query`. methods with `@Query`.
TIP: For complete details of Spring Data Cassandra, refer to their TIP: For complete details of Spring Data Cassandra, refer to their
http://docs.spring.io/spring-data/cassandra/docs/[reference documentation]. https://docs.spring.io/spring-data/cassandra/docs/[reference documentation].
@ -3609,7 +3609,7 @@ RabbitMQ configuration is controlled by external configuration properties in
See {sc-spring-boot-autoconfigure}/amqp/RabbitProperties.{sc-ext}[`RabbitProperties`] See {sc-spring-boot-autoconfigure}/amqp/RabbitProperties.{sc-ext}[`RabbitProperties`]
for more of the supported options. for more of the supported options.
TIP: Check http://spring.io/blog/2010/06/14/understanding-amqp-the-protocol-used-by-rabbitmq/[Understanding AMQP, the protocol used by RabbitMQ] TIP: Check https://spring.io/blog/2010/06/14/understanding-amqp-the-protocol-used-by-rabbitmq/[Understanding AMQP, the protocol used by RabbitMQ]
for more details. for more details.
@ -3738,7 +3738,7 @@ details.
[[boot-features-jta]] [[boot-features-jta]]
== Distributed Transactions with JTA == Distributed Transactions with JTA
Spring Boot supports distributed JTA transactions across multiple XA resources using Spring Boot supports distributed JTA transactions across multiple XA resources using
either an http://www.atomikos.com/[Atomikos] or https://github.com/bitronix/btm[Bitronix] either an https://www.atomikos.com/[Atomikos] or https://github.com/bitronix/btm[Bitronix]
embedded transaction manager. JTA transactions are also supported when deploying to a embedded transaction manager. JTA transactions are also supported when deploying to a
suitable Java EE Application Server. suitable Java EE Application Server.
@ -3881,7 +3881,7 @@ You could also specify the `hazelcast.xml` configuration file to use via configu
Otherwise, Spring Boot tries to find the Hazelcast configuration from the default Otherwise, Spring Boot tries to find the Hazelcast configuration from the default
locations, that is `hazelcast.xml` in the working directory or at the root of the locations, that is `hazelcast.xml` in the working directory or at the root of the
classpath. We also check if the `hazelcast.config` system property is set. Check the classpath. We also check if the `hazelcast.config` system property is set. Check the
http://docs.hazelcast.org/docs/latest/manual/html-single/[Hazelcast documentation] for https://docs.hazelcast.org/docs/latest/manual/html-single/[Hazelcast documentation] for
more details. more details.
NOTE: Spring Boot also has an NOTE: Spring Boot also has an
@ -4165,7 +4165,7 @@ public class MyTest {
@Test @Test
public void testRequest() throws Exception { public void testRequest() throws Exception {
HttpHeaders headers = template.getForEntity("http://myhost.com", String.class).getHeaders(); HttpHeaders headers = template.getForEntity("https://myhost.com", String.class).getHeaders();
assertThat(headers.getLocation().toString(), containsString("myotherhost")); assertThat(headers.getLocation().toString(), containsString("myotherhost"));
} }
@ -4249,7 +4249,7 @@ code by annotating `@Configuration` classes or individual `@Bean` methods.
==== Class conditions ==== Class conditions
The `@ConditionalOnClass` and `@ConditionalOnMissingClass` annotations allows The `@ConditionalOnClass` and `@ConditionalOnMissingClass` annotations allows
configuration to be included based on the presence or absence of specific classes. Due to configuration to be included based on the presence or absence of specific classes. Due to
the fact that annotation metadata is parsed using http://asm.ow2.org/[ASM] you can the fact that annotation metadata is parsed using https://asm.ow2.org/[ASM] you can
actually use the `value` attribute to refer to the real class, even though that class actually use the `value` attribute to refer to the real class, even though that class
might not actually appear on the running application classpath. You can also use the might not actually appear on the running application classpath. You can also use the
`name` attribute if you prefer to specify the class name using a `String` value. `name` attribute if you prefer to specify the class name using a `String` value.

@ -60,10 +60,10 @@ defaults. The parent project provides the following features:
omit `<version>` tags for common dependencies, inherited from the omit `<version>` tags for common dependencies, inherited from the
`spring-boot-dependencies` POM. `spring-boot-dependencies` POM.
* Sensible https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html[resource filtering]. * Sensible https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html[resource filtering].
* Sensible plugin configuration (http://www.mojohaus.org/exec-maven-plugin/[exec plugin], * Sensible plugin configuration (https://www.mojohaus.org/exec-maven-plugin/[exec plugin],
http://maven.apache.org/surefire/maven-surefire-plugin/[surefire], https://maven.apache.org/surefire/maven-surefire-plugin/[surefire],
https://github.com/ktoso/maven-git-commit-id-plugin[Git commit ID], https://github.com/ktoso/maven-git-commit-id-plugin[Git commit ID],
http://maven.apache.org/plugins/maven-shade-plugin/[shade]). https://maven.apache.org/plugins/maven-shade-plugin/[shade]).
* Sensible resource filtering for `application.properties` and `application.yml` * Sensible resource filtering for `application.properties` and `application.yml`
On the last point: since the default config files accept On the last point: since the default config files accept
@ -217,8 +217,8 @@ Maven, there is no "`super parent`" to import to share some configuration.
repositories { repositories {
ifeval::["{spring-boot-repo}" != "release"] ifeval::["{spring-boot-repo}" != "release"]
maven { url "http://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" } maven { url "https://repo.spring.io/milestone" }
endif::[] endif::[]
ifeval::["{spring-boot-repo}" == "release"] ifeval::["{spring-boot-repo}" == "release"]
jcenter() jcenter()
@ -242,8 +242,8 @@ managed by Spring Boot:
buildscript { buildscript {
repositories { repositories {
ifeval::["{spring-boot-repo}" != "release"] ifeval::["{spring-boot-repo}" != "release"]
maven { url "http://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" } maven { url "https://repo.spring.io/milestone" }
endif::[] endif::[]
ifeval::["{spring-boot-repo}" == "release"] ifeval::["{spring-boot-repo}" == "release"]
jcenter() jcenter()
@ -260,8 +260,8 @@ endif::[]
repositories { repositories {
ifeval::["{spring-boot-repo}" != "release"] ifeval::["{spring-boot-repo}" != "release"]
maven { url "http://repo.spring.io/snapshot" } maven { url "https://repo.spring.io/snapshot" }
maven { url "http://repo.spring.io/milestone" } maven { url "https://repo.spring.io/milestone" }
endif::[] endif::[]
ifeval::["{spring-boot-repo}" == "release"] ifeval::["{spring-boot-repo}" == "release"]
jcenter() jcenter()
@ -789,8 +789,8 @@ can select `Import...` -> `Existing Maven Projects` from the `File` menu.
If you can't directly import your project into your IDE, you may be able to generate IDE If you can't directly import your project into your IDE, you may be able to generate IDE
metadata using a build plugin. Maven includes plugins for metadata using a build plugin. Maven includes plugins for
http://maven.apache.org/plugins/maven-eclipse-plugin/[Eclipse] and https://maven.apache.org/plugins/maven-eclipse-plugin/[Eclipse] and
http://maven.apache.org/plugins/maven-idea-plugin/[IDEA]; Gradle offers plugins https://maven.apache.org/plugins/maven-idea-plugin/[IDEA]; Gradle offers plugins
for {gradle-user-guide}/userguide.html[various IDEs]. for {gradle-user-guide}/userguide.html[various IDEs].
TIP: If you accidentally run a web application twice you will see a "`Port already in TIP: If you accidentally run a web application twice you will see a "`Port already in
@ -867,7 +867,7 @@ You might also want to use this useful operating system environment variable:
Since Spring Boot applications are just plain Java applications, JVM hot-swapping should Since Spring Boot applications are just plain Java applications, JVM hot-swapping should
work out of the box. JVM hot swapping is somewhat limited with the bytecode that it can work out of the box. JVM hot swapping is somewhat limited with the bytecode that it can
replace, for a more complete solution replace, for a more complete solution
http://zeroturnaround.com/software/jrebel/[JRebel] or the https://zeroturnaround.com/software/jrebel/[JRebel] or the
https://github.com/spring-projects/spring-loaded[Spring Loaded] project can be used. The https://github.com/spring-projects/spring-loaded[Spring Loaded] project can be used. The
`spring-boot-devtools` module also includes support for quick application restarts. `spring-boot-devtools` module also includes support for quick application restarts.
@ -1011,7 +1011,7 @@ populated.
If you find that restarts aren't quick enough for your applications, or you encounter If you find that restarts aren't quick enough for your applications, or you encounter
classloading issues, you could consider reloading technologies such as classloading issues, you could consider reloading technologies such as
http://zeroturnaround.com/software/jrebel/[JRebel] from ZeroTurnaround. These work by https://zeroturnaround.com/software/jrebel/[JRebel] from ZeroTurnaround. These work by
rewriting classes as they are loaded to make them more amenable to reloading. rewriting classes as they are loaded to make them more amenable to reloading.
https://github.com/spring-projects/spring-loaded[Spring Loaded] provides another option, https://github.com/spring-projects/spring-loaded[Spring Loaded] provides another option,
however it doesn't support as many frameworks and it isn't commercially supported. however it doesn't support as many frameworks and it isn't commercially supported.

@ -20,7 +20,7 @@
--> -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xslthl="http://xslthl.sf.net" xmlns:xslthl="http://xslthl.sourceforge.net/"
xmlns:d="http://docbook.org/ns/docbook" xmlns:d="http://docbook.org/ns/docbook"
exclude-result-prefixes="xslthl d" exclude-result-prefixes="xslthl d"
version='1.0'> version='1.0'>

@ -20,7 +20,7 @@ under the License.
--> -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xslthl="http://xslthl.sf.net" xmlns:xslthl="http://xslthl.sourceforge.net/"
xmlns:d="http://docbook.org/ns/docbook" xmlns:d="http://docbook.org/ns/docbook"
exclude-result-prefixes="xslthl d" exclude-result-prefixes="xslthl d"
version='1.0'> version='1.0'>

@ -20,7 +20,7 @@ under the License.
--> -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xslthl="http://xslthl.sf.net" xmlns:xslthl="http://xslthl.sourceforge.net/"
xmlns:d="http://docbook.org/ns/docbook" xmlns:d="http://docbook.org/ns/docbook"
exclude-result-prefixes="xslthl" exclude-result-prefixes="xslthl"
version='1.0'> version='1.0'>

@ -22,7 +22,7 @@ under the License.
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:d="http://docbook.org/ns/docbook" xmlns:d="http://docbook.org/ns/docbook"
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:xslthl="http://xslthl.sf.net" xmlns:xslthl="http://xslthl.sourceforge.net/"
xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:xlink='http://www.w3.org/1999/xlink'
xmlns:exsl="http://exslt.org/common" xmlns:exsl="http://exslt.org/common"
exclude-result-prefixes="exsl xslthl d xlink" exclude-result-prefixes="exsl xslthl d xlink"

@ -11,7 +11,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Freemarker - <a class="brand" href="https://www.thymeleaf.org"> Freemarker -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a href="${home}"> Home </a></li> <li><a href="${home}"> Home </a></li>

@ -11,7 +11,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Freemarker - <a class="brand" href="https://www.thymeleaf.org"> Freemarker -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a href="${home}"> Home </a></li> <li><a href="${home}"> Home </a></li>

@ -1,13 +1,13 @@
/*! /*!
* jQuery JavaScript Library v1.9.0 * jQuery JavaScript Library v1.9.0
* http://jquery.com/ * https://jquery.com/
* *
* Includes Sizzle.js * Includes Sizzle.js
* http://sizzlejs.com/ * https://sizzlejs.com/
* *
* Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors * Copyright 2005, 2012 jQuery Foundation, Inc. and other contributors
* Released under the MIT license * Released under the MIT license
* http://jquery.org/license * https://jquery.org/license
* *
* Date: 2013-1-14 * Date: 2013-1-14
*/ */
@ -535,7 +535,7 @@ jQuery.extend({
if ( data ) { if ( data ) {
// Make sure the incoming data is actual JSON // Make sure the incoming data is actual JSON
// Logic borrowed from http://json.org/json2.js // Logic borrowed from https://json.org/json2.js
if ( rvalidchars.test( data.replace( rvalidescape, "@" ) if ( rvalidchars.test( data.replace( rvalidescape, "@" )
.replace( rvalidtokens, "]" ) .replace( rvalidtokens, "]" )
.replace( rvalidbraces, "")) ) { .replace( rvalidbraces, "")) ) {
@ -576,7 +576,7 @@ jQuery.extend({
// Evaluates a script in a global context // Evaluates a script in a global context
// Workarounds based on findings by Jim Driscoll // Workarounds based on findings by Jim Driscoll
// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context // https://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
globalEval: function( data ) { globalEval: function( data ) {
if ( data && jQuery.trim( data ) ) { if ( data && jQuery.trim( data ) ) {
// We use execScript on Internet Explorer // We use execScript on Internet Explorer
@ -872,7 +872,7 @@ jQuery.ready.promise = function( obj ) {
// Catch cases where $(document).ready() is called after the browser event has already occurred. // Catch cases where $(document).ready() is called after the browser event has already occurred.
// we once tried to use readyState "interactive" here, but it caused issues like the one // we once tried to use readyState "interactive" here, but it caused issues like the one
// discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15 // discovered by ChrisS here: https://bugs.jquery.com/ticket/12282#comment:15
if ( document.readyState === "complete" ) { if ( document.readyState === "complete" ) {
// Handle it asynchronously to allow scripts the opportunity to delay ready // Handle it asynchronously to allow scripts the opportunity to delay ready
setTimeout( jQuery.ready ); setTimeout( jQuery.ready );
@ -1956,7 +1956,7 @@ jQuery.fn.extend({
}); });
}, },
// Based off of the plugin by Clint Helfers, with permission. // Based off of the plugin by Clint Helfers, with permission.
// http://blindsignals.com/index.php/2009/07/jquery-delay/ // http://blindsignals.com
delay: function( time, type ) { delay: function( time, type ) {
time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
type = type || "fx"; type = type || "fx";
@ -2448,7 +2448,7 @@ jQuery.extend({
tabIndex: { tabIndex: {
get: function( elem ) { get: function( elem ) {
// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ // https://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
var attributeNode = elem.getAttributeNode("tabindex"); var attributeNode = elem.getAttributeNode("tabindex");
return attributeNode && attributeNode.specified ? return attributeNode && attributeNode.specified ?
@ -2583,7 +2583,7 @@ if ( !getSetAttribute ) {
// Some attributes require a special call on IE // Some attributes require a special call on IE
// http://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx // https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx
if ( !jQuery.support.hrefNormalized ) { if ( !jQuery.support.hrefNormalized ) {
jQuery.each([ "href", "src", "width", "height" ], function( i, name ) { jQuery.each([ "href", "src", "width", "height" ], function( i, name ) {
jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], { jQuery.attrHooks[ name ] = jQuery.extend( jQuery.attrHooks[ name ], {
@ -3325,7 +3325,7 @@ jQuery.Event = function( src, props ) {
}; };
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
jQuery.Event.prototype = { jQuery.Event.prototype = {
isDefaultPrevented: returnFalse, isDefaultPrevented: returnFalse,
isPropagationStopped: returnFalse, isPropagationStopped: returnFalse,
@ -3674,7 +3674,7 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
* Sizzle CSS Selector Engine * Sizzle CSS Selector Engine
* Copyright 2012 jQuery Foundation and other contributors * Copyright 2012 jQuery Foundation and other contributors
* Released under the MIT license * Released under the MIT license
* http://sizzlejs.com/ * https://sizzlejs.com/
*/ */
(function( window, undefined ) { (function( window, undefined ) {
@ -3732,17 +3732,17 @@ var i,
// Regular expressions // Regular expressions
// Whitespace characters http://www.w3.org/TR/css3-selectors/#whitespace // Whitespace characters https://www.w3.org/TR/css3-selectors/#whitespace
whitespace = "[\\x20\\t\\r\\n\\f]", whitespace = "[\\x20\\t\\r\\n\\f]",
// http://www.w3.org/TR/css3-syntax/#characters // https://www.w3.org/TR/css3-syntax/#characters
characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+", characterEncoding = "(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",
// Loosely modeled on CSS identifier characters // Loosely modeled on CSS identifier characters
// An unquoted value should be a CSS identifier http://www.w3.org/TR/css3-selectors/#attribute-selectors // An unquoted value should be a CSS identifier https://www.w3.org/TR/css3-selectors/#attribute-selectors
// Proper syntax: http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier // Proper syntax: https://www.w3.org/TR/CSS21/syndata.html#value-def-identifier
identifier = characterEncoding.replace( "w", "w#" ), identifier = characterEncoding.replace( "w", "w#" ),
// Acceptable operators http://www.w3.org/TR/selectors/#attribute-selectors // Acceptable operators https://www.w3.org/TR/selectors/#attribute-selectors
operators = "([*^$|!~]?=)", operators = "([*^$|!~]?=)",
attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace + attributes = "\\[" + whitespace + "*(" + characterEncoding + ")" + whitespace +
"*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]", "*(?:" + operators + whitespace + "*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|(" + identifier + ")|)|)" + whitespace + "*\\]",
@ -3792,7 +3792,7 @@ var i,
rescape = /'|\\/g, rescape = /'|\\/g,
rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g, rattributeQuotes = /\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,
// CSS escapes http://www.w3.org/TR/CSS21/syndata.html#escaped-characters // CSS escapes https://www.w3.org/TR/CSS21/syndata.html#escaped-characters
runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g, runescape = /\\([\da-fA-F]{1,6}[\x20\t\r\n\f]?|.)/g,
funescape = function( _, escaped ) { funescape = function( _, escaped ) {
var high = "0x" + escaped - 0x10000; var high = "0x" + escaped - 0x10000;
@ -4175,7 +4175,7 @@ setDocument = Sizzle.setDocument = function( node ) {
// This is to test IE's treatment of not explictly // This is to test IE's treatment of not explictly
// setting a boolean content attribute, // setting a boolean content attribute,
// since its presence should be enough // since its presence should be enough
// http://bugs.jquery.com/ticket/12359 // https://bugs.jquery.com/ticket/12359
div.innerHTML = "<select><option selected=''></option></select>"; div.innerHTML = "<select><option selected=''></option></select>";
// IE8 - Some boolean attributes are not treated correctly // IE8 - Some boolean attributes are not treated correctly
@ -4184,7 +4184,7 @@ setDocument = Sizzle.setDocument = function( node ) {
} }
// Webkit/Opera - :checked should return selected option elements // Webkit/Opera - :checked should return selected option elements
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
// IE8 throws error here and will not see later tests // IE8 throws error here and will not see later tests
if ( !div.querySelectorAll(":checked").length ) { if ( !div.querySelectorAll(":checked").length ) {
rbuggyQSA.push(":checked"); rbuggyQSA.push(":checked");
@ -4749,7 +4749,7 @@ Expr = Sizzle.selectors = {
"PSEUDO": function( pseudo, argument ) { "PSEUDO": function( pseudo, argument ) {
// pseudo-class names are case-insensitive // pseudo-class names are case-insensitive
// http://www.w3.org/TR/selectors/#pseudo-classes // https://www.w3.org/TR/selectors/#pseudo-classes
// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters // Prioritize by case sensitivity in case custom pseudos are added with uppercase letters
// Remember that setFilters inherits from pseudos // Remember that setFilters inherits from pseudos
var args, var args,
@ -4833,7 +4833,7 @@ Expr = Sizzle.selectors = {
// or beginning with the identifier C immediately followed by "-". // or beginning with the identifier C immediately followed by "-".
// The matching of C against the element's language value is performed case-insensitively. // The matching of C against the element's language value is performed case-insensitively.
// The identifier C does not have to be a valid language name." // The identifier C does not have to be a valid language name."
// http://www.w3.org/TR/selectors/#lang-pseudo // https://www.w3.org/TR/selectors/#lang-pseudo
"lang": markFunction( function( lang ) { "lang": markFunction( function( lang ) {
// lang value must be a valid identifider // lang value must be a valid identifider
if ( !ridentifier.test(lang || "") ) { if ( !ridentifier.test(lang || "") ) {
@ -4880,7 +4880,7 @@ Expr = Sizzle.selectors = {
"checked": function( elem ) { "checked": function( elem ) {
// In CSS3, :checked should return both checked and selected elements // In CSS3, :checked should return both checked and selected elements
// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked // https://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked
var nodeName = elem.nodeName.toLowerCase(); var nodeName = elem.nodeName.toLowerCase();
return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected); return (nodeName === "input" && !!elem.checked) || (nodeName === "option" && !!elem.selected);
}, },
@ -4897,7 +4897,7 @@ Expr = Sizzle.selectors = {
// Contents // Contents
"empty": function( elem ) { "empty": function( elem ) {
// http://www.w3.org/TR/selectors/#empty-pseudo // https://www.w3.org/TR/selectors/#empty-pseudo
// :empty is only affected by element nodes and content nodes(including text(3), cdata(4)), // :empty is only affected by element nodes and content nodes(including text(3), cdata(4)),
// not comment, processing instructions, or others // not comment, processing instructions, or others
// Thanks to Diego Perini for the nodeName shortcut // Thanks to Diego Perini for the nodeName shortcut
@ -6377,7 +6377,7 @@ jQuery.extend({
if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) && if ( (!jQuery.support.noCloneEvent || !jQuery.support.noCloneChecked) &&
(elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) { (elem.nodeType === 1 || elem.nodeType === 11) && !jQuery.isXMLDoc(elem) ) {
// We eschew Sizzle here for performance reasons: http://jsperf.com/getall-vs-sizzle/2 // We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2
destElements = getAll( clone ); destElements = getAll( clone );
srcElements = getAll( elem ); srcElements = getAll( elem );
@ -6915,7 +6915,7 @@ if ( window.getComputedStyle ) {
// A tribute to the "awesome hack by Dean Edwards" // A tribute to the "awesome hack by Dean Edwards"
// Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right // Chrome < 17 and Safari 5.0 uses "computed value" instead of "used value" for margin-right
// Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels // Safari 5.1.7 (at least) returns percentage for a larger set of values, but width seems to be reliably pixels
// this is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values // this is against the CSSOM draft spec: https://dev.w3.org/csswg/cssom/#resolved-values
if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) { if ( rnumnonpx.test( ret ) && rmargin.test( name ) ) {
// Remember the original values // Remember the original values
@ -8485,7 +8485,7 @@ if ( xhrSupported ) {
// Firefox throws exceptions when accessing properties // Firefox throws exceptions when accessing properties
// of an xhr when a network error occurred // of an xhr when a network error occurred
// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE) // https://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
try { try {
// Was never called and is aborted or complete // Was never called and is aborted or complete

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" <html xmlns:th="https://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"
layout:decorator="layout"> layout:decorator="layout">
<head> <head>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" <html xmlns:th="https://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"> xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout">
<head> <head>
<title>Layout</title> <title>Layout</title>

@ -23,7 +23,7 @@ import sample.jooq.domain.tables.records.LanguageRecord;
* A class modelling foreign key relationships between tables of the <code>PUBLIC</code> * A class modelling foreign key relationships between tables of the <code>PUBLIC</code>
* schema * schema
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Keys { public class Keys {

@ -20,7 +20,7 @@ import sample.jooq.domain.tables.Language;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Public extends SchemaImpl { public class Public extends SchemaImpl {

@ -14,7 +14,7 @@ import sample.jooq.domain.tables.Language;
/** /**
* Convenience access to all tables in PUBLIC * Convenience access to all tables in PUBLIC
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Tables { public class Tables {

@ -21,7 +21,7 @@ import sample.jooq.domain.tables.records.AuthorRecord;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Author extends TableImpl<AuthorRecord> { public class Author extends TableImpl<AuthorRecord> {

@ -21,7 +21,7 @@ import sample.jooq.domain.tables.records.BookRecord;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Book extends TableImpl<BookRecord> { public class Book extends TableImpl<BookRecord> {

@ -20,7 +20,7 @@ import sample.jooq.domain.tables.records.BookStoreRecord;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class BookStore extends TableImpl<BookStoreRecord> { public class BookStore extends TableImpl<BookStoreRecord> {

@ -21,7 +21,7 @@ import sample.jooq.domain.tables.records.BookToBookStoreRecord;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class BookToBookStore extends TableImpl<BookToBookStoreRecord> { public class BookToBookStore extends TableImpl<BookToBookStoreRecord> {

@ -20,7 +20,7 @@ import sample.jooq.domain.tables.records.LanguageRecord;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class Language extends TableImpl<LanguageRecord> { public class Language extends TableImpl<LanguageRecord> {

@ -17,7 +17,7 @@ import sample.jooq.domain.tables.Author;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class AuthorRecord extends UpdatableRecordImpl<AuthorRecord> public class AuthorRecord extends UpdatableRecordImpl<AuthorRecord>

@ -15,7 +15,7 @@ import sample.jooq.domain.tables.Book;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class BookRecord extends UpdatableRecordImpl<BookRecord> public class BookRecord extends UpdatableRecordImpl<BookRecord>

@ -14,7 +14,7 @@ import sample.jooq.domain.tables.BookStore;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class BookStoreRecord extends TableRecordImpl<BookStoreRecord> public class BookStoreRecord extends TableRecordImpl<BookStoreRecord>

@ -15,7 +15,7 @@ import sample.jooq.domain.tables.BookToBookStore;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class BookToBookStoreRecord extends UpdatableRecordImpl<BookToBookStoreRecord> public class BookToBookStoreRecord extends UpdatableRecordImpl<BookToBookStoreRecord>

@ -15,7 +15,7 @@ import sample.jooq.domain.tables.Language;
/** /**
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@Generated(value = { "http://www.jooq.org", @Generated(value = { "https://www.jooq.org",
"jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ") "jOOQ version:3.6.2" }, comments = "This class is generated by jOOQ")
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class LanguageRecord extends UpdatableRecordImpl<LanguageRecord> public class LanguageRecord extends UpdatableRecordImpl<LanguageRecord>

@ -11,7 +11,7 @@ JNDI machinery.
### Postgres ### Postgres
We will use postgres as the underlying database, v9.3.5 or above is recommend. Follow We will use postgres as the underlying database, v9.3.5 or above is recommend. Follow
the installation instructions from http://www.postgresql.org/[postgresql.org] or use the installation instructions from https://www.postgresql.org/[postgresql.org] or use
a package manager to install the appropriate binaries. a package manager to install the appropriate binaries.
Once installed you will need to initialize and start the server. Once installed you will need to initialize and start the server.
@ -40,7 +40,7 @@ Finally you can type `psql bootdemo` to configure a password:
### WildFly 8.1 ### WildFly 8.1
Download an install WildFly 8.1 from http://wildfly.org/downloads/[wildfly.org]. Once Download an install WildFly 8.1 from https://wildfly.org/downloads/[wildfly.org]. Once
installed you will need to add a management user by running `$JBOSS_HOME/bin/add-user.sh` installed you will need to add a management user by running `$JBOSS_HOME/bin/add-user.sh`
(see the WildFly documentation for details). (see the WildFly documentation for details).
@ -51,7 +51,7 @@ structure:
---- ----
$ cd $JBOSS_HOME $ cd $JBOSS_HOME
mkdir -p modules/org/postgresql/main mkdir -p modules/org/postgresql/main
wget http://jdbc.postgresql.org/download/postgresql-9.3-1102.jdbc41.jar wget https://jdbc.postgresql.org/download/postgresql-9.3-1102.jdbc41.jar
mv postgresql-9.3-1102.jdbc41.jar modules/org/postgresql/main mv postgresql-9.3-1102.jdbc41.jar modules/org/postgresql/main
---- ----

@ -1,5 +1,5 @@
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "https://www.w3.org/TR/html4/loose.dtd">
<html> <html>
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

@ -1,13 +1,13 @@
/*! /*!
* jQuery JavaScript Library v1.7.2 * jQuery JavaScript Library v1.7.2
* http://jquery.com/ * https://jquery.com/
* *
* Copyright 2011, John Resig * Copyright 2011, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses. * Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license * https://jquery.org/license
* *
* Includes Sizzle.js * Includes Sizzle.js
* http://sizzlejs.com/ * https://sizzlejs.com/
* Copyright 2011, The Dojo Foundation * Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses. * Released under the MIT, BSD, and GPL Licenses.
* *
@ -565,7 +565,7 @@ jQuery.extend({
} }
// Make sure the incoming data is actual JSON // Make sure the incoming data is actual JSON
// Logic borrowed from http://json.org/json2.js // Logic borrowed from https://json.org/json2.js
if ( rvalidchars.test( data.replace( rvalidescape, "@" ) if ( rvalidchars.test( data.replace( rvalidescape, "@" )
.replace( rvalidtokens, "]" ) .replace( rvalidtokens, "]" )
.replace( rvalidbraces, "")) ) { .replace( rvalidbraces, "")) ) {
@ -604,7 +604,7 @@ jQuery.extend({
// Evaluates a script in a global context // Evaluates a script in a global context
// Workarounds based on findings by Jim Driscoll // Workarounds based on findings by Jim Driscoll
// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context // https://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
globalEval: function( data ) { globalEval: function( data ) {
if ( data && rnotwhite.test( data ) ) { if ( data && rnotwhite.test( data ) ) {
// We use execScript on Internet Explorer // We use execScript on Internet Explorer
@ -880,7 +880,7 @@ jQuery.extend({
}, },
// Use of jQuery.browser is frowned upon. // Use of jQuery.browser is frowned upon.
// More details: http://docs.jquery.com/Utilities/jQuery.browser // More details: https://docs.jquery.com/Utilities/jQuery.browser
uaMatch: function( ua ) { uaMatch: function( ua ) {
ua = ua.toLowerCase(); ua = ua.toLowerCase();
@ -2159,7 +2159,7 @@ jQuery.fn.extend({
}); });
}, },
// Based off of the plugin by Clint Helfers, with permission. // Based off of the plugin by Clint Helfers, with permission.
// http://blindsignals.com/index.php/2009/07/jquery-delay/ // http://blindsignals.com
delay: function( time, type ) { delay: function( time, type ) {
time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
type = type || "fx"; type = type || "fx";
@ -2688,7 +2688,7 @@ jQuery.extend({
tabIndex: { tabIndex: {
get: function( elem ) { get: function( elem ) {
// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ // https://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
var attributeNode = elem.getAttributeNode("tabindex"); var attributeNode = elem.getAttributeNode("tabindex");
return attributeNode && attributeNode.specified ? return attributeNode && attributeNode.specified ?
@ -3551,7 +3551,7 @@ function returnTrue() {
} }
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
jQuery.Event.prototype = { jQuery.Event.prototype = {
preventDefault: function() { preventDefault: function() {
this.isDefaultPrevented = returnTrue; this.isDefaultPrevented = returnTrue;
@ -3941,7 +3941,7 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
* Sizzle CSS Selector Engine * Sizzle CSS Selector Engine
* Copyright 2011, The Dojo Foundation * Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses. * Released under the MIT, BSD, and GPL Licenses.
* More information: http://sizzlejs.com/ * More information: https://sizzlejs.com/
*/ */
(function(){ (function(){
@ -6298,7 +6298,7 @@ function findInputs( elem ) {
} }
} }
// Derived From: http://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js // Derived From: https://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js
function shimCloneNode( elem ) { function shimCloneNode( elem ) {
var div = document.createElement( "div" ); var div = document.createElement( "div" );
safeFragment.appendChild( div ); safeFragment.appendChild( div );
@ -6735,7 +6735,7 @@ if ( document.defaultView && document.defaultView.getComputedStyle ) {
// A tribute to the "awesome hack by Dean Edwards" // A tribute to the "awesome hack by Dean Edwards"
// WebKit uses "computed value (percentage if specified)" instead of "used value" for margins // WebKit uses "computed value (percentage if specified)" instead of "used value" for margins
// which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values // which is against the CSSOM draft spec: https://dev.w3.org/csswg/cssom/#resolved-values
if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) { if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) {
width = style.width; width = style.width;
style.width = ret; style.width = ret;
@ -8250,7 +8250,7 @@ if ( jQuery.support.ajax ) {
// Firefox throws exceptions when accessing properties // Firefox throws exceptions when accessing properties
// of an xhr when a network error occured // of an xhr when a network error occured
// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE) // https://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
try { try {
// Was never called and is aborted or complete // Was never called and is aborted or complete

@ -1,20 +1,20 @@
/** /**
* jQuery Validation Plugin @VERSION * jQuery Validation Plugin @VERSION
* *
* http://bassistance.de/jquery-plugins/jquery-plugin-validation/ * https://bassistance.de/jquery-plugins/jquery-plugin-validation/
* http://docs.jquery.com/Plugins/Validation * https://docs.jquery.com/Plugins/Validation
* *
* Copyright (c) 2012 rn Zaefferer * Copyright (c) 2012 rn Zaefferer
* *
* Dual licensed under the MIT and GPL licenses: * Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php * https://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html * https://www.gnu.org/licenses/gpl.html
*/ */
(function($) { (function($) {
$.extend($.fn, { $.extend($.fn, {
// http://docs.jquery.com/Plugins/Validation/validate // https://docs.jquery.com/Plugins/Validation/validate
validate: function( options ) { validate: function( options ) {
// if nothing is selected, return nothing; can't chain anyway // if nothing is selected, return nothing; can't chain anyway
@ -92,7 +92,7 @@ $.extend($.fn, {
return validator; return validator;
}, },
// http://docs.jquery.com/Plugins/Validation/valid // https://docs.jquery.com/Plugins/Validation/valid
valid: function() { valid: function() {
if ( $(this[0]).is('form')) { if ( $(this[0]).is('form')) {
return this.validate().form(); return this.validate().form();
@ -115,7 +115,7 @@ $.extend($.fn, {
}); });
return result; return result;
}, },
// http://docs.jquery.com/Plugins/Validation/rules // https://docs.jquery.com/Plugins/Validation/rules
rules: function(command, argument) { rules: function(command, argument) {
var element = this[0]; var element = this[0];
@ -167,11 +167,11 @@ $.extend($.fn, {
// Custom selectors // Custom selectors
$.extend($.expr[":"], { $.extend($.expr[":"], {
// http://docs.jquery.com/Plugins/Validation/blank // https://docs.jquery.com/Plugins/Validation/blank
blank: function(a) {return !$.trim("" + a.value);}, blank: function(a) {return !$.trim("" + a.value);},
// http://docs.jquery.com/Plugins/Validation/filled // https://docs.jquery.com/Plugins/Validation/filled
filled: function(a) {return !!$.trim("" + a.value);}, filled: function(a) {return !!$.trim("" + a.value);},
// http://docs.jquery.com/Plugins/Validation/unchecked // https://docs.jquery.com/Plugins/Validation/unchecked
unchecked: function(a) {return !a.checked;} unchecked: function(a) {return !a.checked;}
}); });
@ -264,7 +264,7 @@ $.extend($.validator, {
} }
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/setDefaults // https://docs.jquery.com/Plugins/Validation/Validator/setDefaults
setDefaults: function(settings) { setDefaults: function(settings) {
$.extend( $.validator.defaults, settings ); $.extend( $.validator.defaults, settings );
}, },
@ -336,7 +336,7 @@ $.extend($.validator, {
} }
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/form // https://docs.jquery.com/Plugins/Validation/Validator/form
form: function() { form: function() {
this.checkForm(); this.checkForm();
$.extend(this.submitted, this.errorMap); $.extend(this.submitted, this.errorMap);
@ -356,7 +356,7 @@ $.extend($.validator, {
return this.valid(); return this.valid();
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/element // https://docs.jquery.com/Plugins/Validation/Validator/element
element: function( element ) { element: function( element ) {
element = this.validationTargetFor( this.clean( element ) ); element = this.validationTargetFor( this.clean( element ) );
this.lastElement = element; this.lastElement = element;
@ -376,7 +376,7 @@ $.extend($.validator, {
return result; return result;
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/showErrors // https://docs.jquery.com/Plugins/Validation/Validator/showErrors
showErrors: function(errors) { showErrors: function(errors) {
if(errors) { if(errors) {
// add items to error list and map // add items to error list and map
@ -400,7 +400,7 @@ $.extend($.validator, {
} }
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/resetForm // https://docs.jquery.com/Plugins/Validation/Validator/resetForm
resetForm: function() { resetForm: function() {
if ( $.fn.resetForm ) { if ( $.fn.resetForm ) {
$( this.currentForm ).resetForm(); $( this.currentForm ).resetForm();
@ -966,7 +966,7 @@ $.extend($.validator, {
return data; return data;
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/addMethod // https://docs.jquery.com/Plugins/Validation/Validator/addMethod
addMethod: function(name, method, message) { addMethod: function(name, method, message) {
$.validator.methods[name] = method; $.validator.methods[name] = method;
$.validator.messages[name] = message !== undefined ? message : $.validator.messages[name]; $.validator.messages[name] = message !== undefined ? message : $.validator.messages[name];
@ -977,7 +977,7 @@ $.extend($.validator, {
methods: { methods: {
// http://docs.jquery.com/Plugins/Validation/Methods/required // https://docs.jquery.com/Plugins/Validation/Methods/required
required: function(value, element, param) { required: function(value, element, param) {
// check if dependency is met // check if dependency is met
if ( !this.depend(param, element) ) { if ( !this.depend(param, element) ) {
@ -994,7 +994,7 @@ $.extend($.validator, {
return $.trim(value).length > 0; return $.trim(value).length > 0;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/remote // https://docs.jquery.com/Plugins/Validation/Methods/remote
remote: function(value, element, param) { remote: function(value, element, param) {
if ( this.optional(element) ) { if ( this.optional(element) ) {
return "dependency-mismatch"; return "dependency-mismatch";
@ -1049,73 +1049,73 @@ $.extend($.validator, {
return "pending"; return "pending";
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/minlength // https://docs.jquery.com/Plugins/Validation/Methods/minlength
minlength: function(value, element, param) { minlength: function(value, element, param) {
var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element); var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
return this.optional(element) || length >= param; return this.optional(element) || length >= param;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/maxlength // https://docs.jquery.com/Plugins/Validation/Methods/maxlength
maxlength: function(value, element, param) { maxlength: function(value, element, param) {
var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element); var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
return this.optional(element) || length <= param; return this.optional(element) || length <= param;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/rangelength // https://docs.jquery.com/Plugins/Validation/Methods/rangelength
rangelength: function(value, element, param) { rangelength: function(value, element, param) {
var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element); var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
return this.optional(element) || ( length >= param[0] && length <= param[1] ); return this.optional(element) || ( length >= param[0] && length <= param[1] );
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/min // https://docs.jquery.com/Plugins/Validation/Methods/min
min: function( value, element, param ) { min: function( value, element, param ) {
return this.optional(element) || value >= param; return this.optional(element) || value >= param;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/max // https://docs.jquery.com/Plugins/Validation/Methods/max
max: function( value, element, param ) { max: function( value, element, param ) {
return this.optional(element) || value <= param; return this.optional(element) || value <= param;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/range // https://docs.jquery.com/Plugins/Validation/Methods/range
range: function( value, element, param ) { range: function( value, element, param ) {
return this.optional(element) || ( value >= param[0] && value <= param[1] ); return this.optional(element) || ( value >= param[0] && value <= param[1] );
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/email // https://docs.jquery.com/Plugins/Validation/Methods/email
email: function(value, element) { email: function(value, element) {
// contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/ // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(value); return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(value);
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/url // https://docs.jquery.com/Plugins/Validation/Methods/url
url: function(value, element) { url: function(value, element) {
// contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/ // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/
return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value); return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/date // https://docs.jquery.com/Plugins/Validation/Methods/date
date: function(value, element) { date: function(value, element) {
return this.optional(element) || !/Invalid|NaN/.test(new Date(value)); return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/dateISO // https://docs.jquery.com/Plugins/Validation/Methods/dateISO
dateISO: function(value, element) { dateISO: function(value, element) {
return this.optional(element) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(value); return this.optional(element) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(value);
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/number // https://docs.jquery.com/Plugins/Validation/Methods/number
number: function(value, element) { number: function(value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value); return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/digits // https://docs.jquery.com/Plugins/Validation/Methods/digits
digits: function(value, element) { digits: function(value, element) {
return this.optional(element) || /^\d+$/.test(value); return this.optional(element) || /^\d+$/.test(value);
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/creditcard // https://docs.jquery.com/Plugins/Validation/Methods/creditcard
// based on http://en.wikipedia.org/wiki/Luhn // based on https://en.wikipedia.org/wiki/Luhn
creditcard: function(value, element) { creditcard: function(value, element) {
if ( this.optional(element) ) { if ( this.optional(element) ) {
return "dependency-mismatch"; return "dependency-mismatch";
@ -1145,13 +1145,13 @@ $.extend($.validator, {
return (nCheck % 10) === 0; return (nCheck % 10) === 0;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/accept // https://docs.jquery.com/Plugins/Validation/Methods/accept
accept: function(value, element, param) { accept: function(value, element, param) {
param = typeof param === "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif"; param = typeof param === "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif";
return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i")); return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i"));
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/equalTo // https://docs.jquery.com/Plugins/Validation/Methods/equalTo
equalTo: function(value, element, param) { equalTo: function(value, element, param) {
// bind to the blur event of the target in order to revalidate whenever the target field is updated // bind to the blur event of the target in order to revalidate whenever the target field is updated
// TODO find a way to bind the event just once, avoiding the unbind-rebind overhead // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead

@ -8,7 +8,7 @@ html {
div(class:'navbar') { div(class:'navbar') {
div(class:'navbar-inner') { div(class:'navbar-inner') {
a(class:'brand', a(class:'brand',
href:'http://beta.groovy-lang.org/docs/groovy-2.3.0/html/documentation/markup-template-engine.html') { href:'http://groovy-lang.org/404.html') {
yield 'Groovy - Layout' yield 'Groovy - Layout'
} }
ul(class:'nav') { ul(class:'nav') {

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title>Error</title> <title>Error</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title>Error</title> <title>Error</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title th:text="${title}">Title</title> <title th:text="${title}">Title</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title>Login</title> <title>Login</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title>Error</title> <title>Error</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title th:text="${title}">Title</title> <title th:text="${title}">Title</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title>Login</title> <title>Login</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -8,7 +8,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://spring.io"> Spring </a> <a class="brand" href="https://spring.io"> Spring </a>
<ul class="nav"> <ul class="nav">
<li><a href="/"> Home </a></li> <li><a href="/"> Home </a></li>
</ul> </ul>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title>Error</title> <title>Error</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title th:text="${title}">Title</title> <title th:text="${title}">Title</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title>Login</title> <title>Login</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title>Error</title> <title>Error</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title th:text="${title}">Title</title> <title th:text="${title}">Title</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org"> <html xmlns:th="https://www.thymeleaf.org">
<head> <head>
<title>Login</title> <title>Login</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"
@ -9,7 +9,7 @@
<div class="container"> <div class="container">
<div class="navbar"> <div class="navbar">
<div class="navbar-inner"> <div class="navbar-inner">
<a class="brand" href="http://www.thymeleaf.org"> Thymeleaf - <a class="brand" href="https://www.thymeleaf.org"> Thymeleaf -
Plain </a> Plain </a>
<ul class="nav"> <ul class="nav">
<li><a th:href="@{/}" href="home.html"> Home </a></li> <li><a th:href="@{/}" href="home.html"> Home </a></li>

@ -1,13 +1,13 @@
/*! /*!
* jQuery JavaScript Library v1.7.2 * jQuery JavaScript Library v1.7.2
* http://jquery.com/ * https://jquery.com/
* *
* Copyright 2011, John Resig * Copyright 2011, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses. * Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license * https://jquery.org/license
* *
* Includes Sizzle.js * Includes Sizzle.js
* http://sizzlejs.com/ * https://sizzlejs.com/
* Copyright 2011, The Dojo Foundation * Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses. * Released under the MIT, BSD, and GPL Licenses.
* *
@ -565,7 +565,7 @@ jQuery.extend({
} }
// Make sure the incoming data is actual JSON // Make sure the incoming data is actual JSON
// Logic borrowed from http://json.org/json2.js // Logic borrowed from https://json.org/json2.js
if ( rvalidchars.test( data.replace( rvalidescape, "@" ) if ( rvalidchars.test( data.replace( rvalidescape, "@" )
.replace( rvalidtokens, "]" ) .replace( rvalidtokens, "]" )
.replace( rvalidbraces, "")) ) { .replace( rvalidbraces, "")) ) {
@ -604,7 +604,7 @@ jQuery.extend({
// Evaluates a script in a global context // Evaluates a script in a global context
// Workarounds based on findings by Jim Driscoll // Workarounds based on findings by Jim Driscoll
// http://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context // https://weblogs.java.net/blog/driscoll/archive/2009/09/08/eval-javascript-global-context
globalEval: function( data ) { globalEval: function( data ) {
if ( data && rnotwhite.test( data ) ) { if ( data && rnotwhite.test( data ) ) {
// We use execScript on Internet Explorer // We use execScript on Internet Explorer
@ -880,7 +880,7 @@ jQuery.extend({
}, },
// Use of jQuery.browser is frowned upon. // Use of jQuery.browser is frowned upon.
// More details: http://docs.jquery.com/Utilities/jQuery.browser // More details: https://docs.jquery.com/Utilities/jQuery.browser
uaMatch: function( ua ) { uaMatch: function( ua ) {
ua = ua.toLowerCase(); ua = ua.toLowerCase();
@ -2159,7 +2159,7 @@ jQuery.fn.extend({
}); });
}, },
// Based off of the plugin by Clint Helfers, with permission. // Based off of the plugin by Clint Helfers, with permission.
// http://blindsignals.com/index.php/2009/07/jquery-delay/ // http://blindsignals.com
delay: function( time, type ) { delay: function( time, type ) {
time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time; time = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;
type = type || "fx"; type = type || "fx";
@ -2688,7 +2688,7 @@ jQuery.extend({
tabIndex: { tabIndex: {
get: function( elem ) { get: function( elem ) {
// elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set // elem.tabIndex doesn't always return the correct value when it hasn't been explicitly set
// http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/ // https://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/
var attributeNode = elem.getAttributeNode("tabindex"); var attributeNode = elem.getAttributeNode("tabindex");
return attributeNode && attributeNode.specified ? return attributeNode && attributeNode.specified ?
@ -3551,7 +3551,7 @@ function returnTrue() {
} }
// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding // jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding
// http://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html // https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html
jQuery.Event.prototype = { jQuery.Event.prototype = {
preventDefault: function() { preventDefault: function() {
this.isDefaultPrevented = returnTrue; this.isDefaultPrevented = returnTrue;
@ -3941,7 +3941,7 @@ jQuery.each( ("blur focus focusin focusout load resize scroll unload click dblcl
* Sizzle CSS Selector Engine * Sizzle CSS Selector Engine
* Copyright 2011, The Dojo Foundation * Copyright 2011, The Dojo Foundation
* Released under the MIT, BSD, and GPL Licenses. * Released under the MIT, BSD, and GPL Licenses.
* More information: http://sizzlejs.com/ * More information: https://sizzlejs.com/
*/ */
(function(){ (function(){
@ -6298,7 +6298,7 @@ function findInputs( elem ) {
} }
} }
// Derived From: http://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js // Derived From: https://www.iecss.com/shimprove/javascript/shimprove.1-0-1.js
function shimCloneNode( elem ) { function shimCloneNode( elem ) {
var div = document.createElement( "div" ); var div = document.createElement( "div" );
safeFragment.appendChild( div ); safeFragment.appendChild( div );
@ -6735,7 +6735,7 @@ if ( document.defaultView && document.defaultView.getComputedStyle ) {
// A tribute to the "awesome hack by Dean Edwards" // A tribute to the "awesome hack by Dean Edwards"
// WebKit uses "computed value (percentage if specified)" instead of "used value" for margins // WebKit uses "computed value (percentage if specified)" instead of "used value" for margins
// which is against the CSSOM draft spec: http://dev.w3.org/csswg/cssom/#resolved-values // which is against the CSSOM draft spec: https://dev.w3.org/csswg/cssom/#resolved-values
if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) { if ( !jQuery.support.pixelMargin && computedStyle && rmargin.test( name ) && rnumnonpx.test( ret ) ) {
width = style.width; width = style.width;
style.width = ret; style.width = ret;
@ -8250,7 +8250,7 @@ if ( jQuery.support.ajax ) {
// Firefox throws exceptions when accessing properties // Firefox throws exceptions when accessing properties
// of an xhr when a network error occured // of an xhr when a network error occured
// http://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE) // https://helpful.knobs-dials.com/index.php/Component_returned_failure_code:_0x80040111_(NS_ERROR_NOT_AVAILABLE)
try { try {
// Was never called and is aborted or complete // Was never called and is aborted or complete

@ -1,20 +1,20 @@
/** /**
* jQuery Validation Plugin @VERSION * jQuery Validation Plugin @VERSION
* *
* http://bassistance.de/jquery-plugins/jquery-plugin-validation/ * https://bassistance.de/jquery-plugins/jquery-plugin-validation/
* http://docs.jquery.com/Plugins/Validation * https://docs.jquery.com/Plugins/Validation
* *
* Copyright (c) 2012 rn Zaefferer * Copyright (c) 2012 rn Zaefferer
* *
* Dual licensed under the MIT and GPL licenses: * Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php * https://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html * https://www.gnu.org/licenses/gpl.html
*/ */
(function($) { (function($) {
$.extend($.fn, { $.extend($.fn, {
// http://docs.jquery.com/Plugins/Validation/validate // https://docs.jquery.com/Plugins/Validation/validate
validate: function( options ) { validate: function( options ) {
// if nothing is selected, return nothing; can't chain anyway // if nothing is selected, return nothing; can't chain anyway
@ -92,7 +92,7 @@ $.extend($.fn, {
return validator; return validator;
}, },
// http://docs.jquery.com/Plugins/Validation/valid // https://docs.jquery.com/Plugins/Validation/valid
valid: function() { valid: function() {
if ( $(this[0]).is('form')) { if ( $(this[0]).is('form')) {
return this.validate().form(); return this.validate().form();
@ -115,7 +115,7 @@ $.extend($.fn, {
}); });
return result; return result;
}, },
// http://docs.jquery.com/Plugins/Validation/rules // https://docs.jquery.com/Plugins/Validation/rules
rules: function(command, argument) { rules: function(command, argument) {
var element = this[0]; var element = this[0];
@ -167,11 +167,11 @@ $.extend($.fn, {
// Custom selectors // Custom selectors
$.extend($.expr[":"], { $.extend($.expr[":"], {
// http://docs.jquery.com/Plugins/Validation/blank // https://docs.jquery.com/Plugins/Validation/blank
blank: function(a) {return !$.trim("" + a.value);}, blank: function(a) {return !$.trim("" + a.value);},
// http://docs.jquery.com/Plugins/Validation/filled // https://docs.jquery.com/Plugins/Validation/filled
filled: function(a) {return !!$.trim("" + a.value);}, filled: function(a) {return !!$.trim("" + a.value);},
// http://docs.jquery.com/Plugins/Validation/unchecked // https://docs.jquery.com/Plugins/Validation/unchecked
unchecked: function(a) {return !a.checked;} unchecked: function(a) {return !a.checked;}
}); });
@ -264,7 +264,7 @@ $.extend($.validator, {
} }
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/setDefaults // https://docs.jquery.com/Plugins/Validation/Validator/setDefaults
setDefaults: function(settings) { setDefaults: function(settings) {
$.extend( $.validator.defaults, settings ); $.extend( $.validator.defaults, settings );
}, },
@ -336,7 +336,7 @@ $.extend($.validator, {
} }
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/form // https://docs.jquery.com/Plugins/Validation/Validator/form
form: function() { form: function() {
this.checkForm(); this.checkForm();
$.extend(this.submitted, this.errorMap); $.extend(this.submitted, this.errorMap);
@ -356,7 +356,7 @@ $.extend($.validator, {
return this.valid(); return this.valid();
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/element // https://docs.jquery.com/Plugins/Validation/Validator/element
element: function( element ) { element: function( element ) {
element = this.validationTargetFor( this.clean( element ) ); element = this.validationTargetFor( this.clean( element ) );
this.lastElement = element; this.lastElement = element;
@ -376,7 +376,7 @@ $.extend($.validator, {
return result; return result;
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/showErrors // https://docs.jquery.com/Plugins/Validation/Validator/showErrors
showErrors: function(errors) { showErrors: function(errors) {
if(errors) { if(errors) {
// add items to error list and map // add items to error list and map
@ -400,7 +400,7 @@ $.extend($.validator, {
} }
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/resetForm // https://docs.jquery.com/Plugins/Validation/Validator/resetForm
resetForm: function() { resetForm: function() {
if ( $.fn.resetForm ) { if ( $.fn.resetForm ) {
$( this.currentForm ).resetForm(); $( this.currentForm ).resetForm();
@ -966,7 +966,7 @@ $.extend($.validator, {
return data; return data;
}, },
// http://docs.jquery.com/Plugins/Validation/Validator/addMethod // https://docs.jquery.com/Plugins/Validation/Validator/addMethod
addMethod: function(name, method, message) { addMethod: function(name, method, message) {
$.validator.methods[name] = method; $.validator.methods[name] = method;
$.validator.messages[name] = message !== undefined ? message : $.validator.messages[name]; $.validator.messages[name] = message !== undefined ? message : $.validator.messages[name];
@ -977,7 +977,7 @@ $.extend($.validator, {
methods: { methods: {
// http://docs.jquery.com/Plugins/Validation/Methods/required // https://docs.jquery.com/Plugins/Validation/Methods/required
required: function(value, element, param) { required: function(value, element, param) {
// check if dependency is met // check if dependency is met
if ( !this.depend(param, element) ) { if ( !this.depend(param, element) ) {
@ -994,7 +994,7 @@ $.extend($.validator, {
return $.trim(value).length > 0; return $.trim(value).length > 0;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/remote // https://docs.jquery.com/Plugins/Validation/Methods/remote
remote: function(value, element, param) { remote: function(value, element, param) {
if ( this.optional(element) ) { if ( this.optional(element) ) {
return "dependency-mismatch"; return "dependency-mismatch";
@ -1049,73 +1049,73 @@ $.extend($.validator, {
return "pending"; return "pending";
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/minlength // https://docs.jquery.com/Plugins/Validation/Methods/minlength
minlength: function(value, element, param) { minlength: function(value, element, param) {
var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element); var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
return this.optional(element) || length >= param; return this.optional(element) || length >= param;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/maxlength // https://docs.jquery.com/Plugins/Validation/Methods/maxlength
maxlength: function(value, element, param) { maxlength: function(value, element, param) {
var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element); var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
return this.optional(element) || length <= param; return this.optional(element) || length <= param;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/rangelength // https://docs.jquery.com/Plugins/Validation/Methods/rangelength
rangelength: function(value, element, param) { rangelength: function(value, element, param) {
var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element); var length = $.isArray( value ) ? value.length : this.getLength($.trim(value), element);
return this.optional(element) || ( length >= param[0] && length <= param[1] ); return this.optional(element) || ( length >= param[0] && length <= param[1] );
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/min // https://docs.jquery.com/Plugins/Validation/Methods/min
min: function( value, element, param ) { min: function( value, element, param ) {
return this.optional(element) || value >= param; return this.optional(element) || value >= param;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/max // https://docs.jquery.com/Plugins/Validation/Methods/max
max: function( value, element, param ) { max: function( value, element, param ) {
return this.optional(element) || value <= param; return this.optional(element) || value <= param;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/range // https://docs.jquery.com/Plugins/Validation/Methods/range
range: function( value, element, param ) { range: function( value, element, param ) {
return this.optional(element) || ( value >= param[0] && value <= param[1] ); return this.optional(element) || ( value >= param[0] && value <= param[1] );
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/email // https://docs.jquery.com/Plugins/Validation/Methods/email
email: function(value, element) { email: function(value, element) {
// contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/ // contributed by Scott Gonzalez: http://projects.scottsplayground.com/email_address_validation/
return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(value); return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i.test(value);
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/url // https://docs.jquery.com/Plugins/Validation/Methods/url
url: function(value, element) { url: function(value, element) {
// contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/ // contributed by Scott Gonzalez: http://projects.scottsplayground.com/iri/
return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value); return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value);
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/date // https://docs.jquery.com/Plugins/Validation/Methods/date
date: function(value, element) { date: function(value, element) {
return this.optional(element) || !/Invalid|NaN/.test(new Date(value)); return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/dateISO // https://docs.jquery.com/Plugins/Validation/Methods/dateISO
dateISO: function(value, element) { dateISO: function(value, element) {
return this.optional(element) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(value); return this.optional(element) || /^\d{4}[\/\-]\d{1,2}[\/\-]\d{1,2}$/.test(value);
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/number // https://docs.jquery.com/Plugins/Validation/Methods/number
number: function(value, element) { number: function(value, element) {
return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value); return this.optional(element) || /^-?(?:\d+|\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/digits // https://docs.jquery.com/Plugins/Validation/Methods/digits
digits: function(value, element) { digits: function(value, element) {
return this.optional(element) || /^\d+$/.test(value); return this.optional(element) || /^\d+$/.test(value);
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/creditcard // https://docs.jquery.com/Plugins/Validation/Methods/creditcard
// based on http://en.wikipedia.org/wiki/Luhn // based on https://en.wikipedia.org/wiki/Luhn
creditcard: function(value, element) { creditcard: function(value, element) {
if ( this.optional(element) ) { if ( this.optional(element) ) {
return "dependency-mismatch"; return "dependency-mismatch";
@ -1145,13 +1145,13 @@ $.extend($.validator, {
return (nCheck % 10) === 0; return (nCheck % 10) === 0;
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/accept // https://docs.jquery.com/Plugins/Validation/Methods/accept
accept: function(value, element, param) { accept: function(value, element, param) {
param = typeof param === "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif"; param = typeof param === "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif";
return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i")); return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i"));
}, },
// http://docs.jquery.com/Plugins/Validation/Methods/equalTo // https://docs.jquery.com/Plugins/Validation/Methods/equalTo
equalTo: function(value, element, param) { equalTo: function(value, element, param) {
// bind to the blur event of the target in order to revalidate whenever the target field is updated // bind to the blur event of the target in order to revalidate whenever the target field is updated
// TODO find a way to bind the event just once, avoiding the unbind-rebind overhead // TODO find a way to bind the event just once, avoiding the unbind-rebind overhead

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" <html xmlns:th="https://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"> xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout">
<head> <head>
<title>Layout</title> <title>Layout</title>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" <html xmlns:th="https://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"
layout:decorator="layout"> layout:decorator="layout">
<head> <head>

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org" <html xmlns:th="https://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"
layout:decorator="layout"> layout:decorator="layout">
<head> <head>

@ -1,4 +1,4 @@
<html xmlns:th="http://www.thymeleaf.org" <html xmlns:th="https://www.thymeleaf.org"
xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout" xmlns:layout="http://www.ultraq.net.nz/web/thymeleaf/layout"
layout:decorator="layout"> layout:decorator="layout">
<head> <head>

@ -16,7 +16,7 @@ limitations under the License.
--> -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

@ -16,7 +16,7 @@ limitations under the License.
--> -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

@ -16,7 +16,7 @@ limitations under the License.
--> -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head> <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>

@ -1,8 +1,8 @@
== Spring Boot - Samples - Web Services == Spring Boot - Samples - Web Services
This sample project demonstrates how to use http://projects.spring.io/spring-ws/[Spring Web Services] This sample project demonstrates how to use https://projects.spring.io/spring-ws/[Spring Web Services]
with Spring Boot. It is an implementation of the with Spring Boot. It is an implementation of the
http://docs.spring.io/spring-ws/site/reference/html/tutorial.html#tutorial.implementing.endpoint[Holiday Request sample] https://docs.spring.io/spring-ws/site/reference/html/tutorial.html#tutorial.implementing.endpoint[Holiday Request sample]
in the Spring Web Services reference guide. in the Spring Web Services reference guide.
The sample uses Maven. It can be built and run from the command line: The sample uses Maven. It can be built and run from the command line:

@ -8,14 +8,14 @@ JPA for database access just include the `spring-boot-starter-data-jpa` dependen
your project, and you are good to go. your project, and you are good to go.
For complete details see the For complete details see the
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter-poms[reference documentation] https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter-poms[reference documentation]
== Community Contributions == Community Contributions
If you create a starter for a technology that is not already in the standard list we can If you create a starter for a technology that is not already in the standard list we can
list it here. Just send a pull request for this page. list it here. Just send a pull request for this page.
WARNING: While the WARNING: While the
http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter-poms[reference documentation] https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#using-boot-starter-poms[reference documentation]
mentions that 3rd party starters should not start with `spring-boot`, some starters mentions that 3rd party starters should not start with `spring-boot`, some starters
do as they were designed before this was clarified. do as they were designed before this was clarified.
@ -28,10 +28,10 @@ do as they were designed before this was clarified.
| http://modelmapper.org/[ModelMapper] | http://modelmapper.org/[ModelMapper]
| https://github.com/jmnarloch/modelmapper-spring-boot-starter | https://github.com/jmnarloch/modelmapper-spring-boot-starter
| http://secondmarket.github.io/mongeez/[Mongeez] | https://secondmarket.github.io/mongeez/[Mongeez]
| https://github.com/hzpz/mongeez-spring-boot-starter/ | https://github.com/hzpz/mongeez-spring-boot-starter/
| http://ha-jdbc.github.io/[HA JDBC] | https://ha-jdbc.github.io/[HA JDBC]
| https://github.com/lievendoclo/hajdbc-spring-boot | https://github.com/lievendoclo/hajdbc-spring-boot
| https://github.com/jknack/handlebars.java[Handlebars] | https://github.com/jknack/handlebars.java[Handlebars]
@ -40,16 +40,16 @@ do as they were designed before this was clarified.
| https://vaadin.com/[Vaadin] | https://vaadin.com/[Vaadin]
| https://github.com/vaadin/spring/tree/master/vaadin-spring-boot-starter | https://github.com/vaadin/spring/tree/master/vaadin-spring-boot-starter
| http://camel.apache.org/spring-boot.html[Apache Camel] | https://camel.apache.org/spring-boot.html[Apache Camel]
| https://github.com/apache/camel/tree/master/components/camel-spring-boot | https://github.com/apache/camel/tree/master/components/camel-spring-boot
| https://code.google.com/p/wro4j/[WRO4J] | https://code.google.com/p/wro4j/[WRO4J]
| https://github.com/sbuettner/spring-boot-autoconfigure-wro4j | https://github.com/sbuettner/spring-boot-autoconfigure-wro4j
| http://projects.spring.io/spring-batch/[Spring Batch] (Advanced usage) | https://projects.spring.io/spring-batch/[Spring Batch] (Advanced usage)
| https://github.com/codecentric/spring-boot-starter-batch-web | https://github.com/codecentric/spring-boot-starter-batch-web
| http://hdiv.org/[HDIV] | https://hdiv.org/[HDIV]
| https://github.com/hdiv/spring-boot-starter-hdiv | https://github.com/hdiv/spring-boot-starter-hdiv
| https://github.com/neuland/jade4j[Jade Templates] (Jade4J) | https://github.com/neuland/jade4j[Jade Templates] (Jade4J)
@ -58,10 +58,10 @@ do as they were designed before this was clarified.
| https://www.google.com/recaptcha[Google's reCAPTCHA] | https://www.google.com/recaptcha[Google's reCAPTCHA]
| https://github.com/mkopylec/recaptcha-spring-boot-starter | https://github.com/mkopylec/recaptcha-spring-boot-starter
| http://mybatis.org/mybatis-3/[Mybatis] | http://www.mybatis.org/mybatis-3/[Mybatis]
| https://github.com/mybatis/mybatis-spring-boot | https://github.com/mybatis/mybatis-spring-boot
| http://wicket.apache.org/[Apache Wicket] | https://wicket.apache.org/[Apache Wicket]
| https://github.com/MarcGiffing/wicket-spring-boot | https://github.com/MarcGiffing/wicket-spring-boot
|=== |===

@ -24,7 +24,7 @@ import org.springframework.boot.loader.data.RandomAccessData;
* A ZIP File "End of central directory record" (EOCD). * A ZIP File "End of central directory record" (EOCD).
* *
* @author Phillip Webb * @author Phillip Webb
* @see <a href="http://en.wikipedia.org/wiki/Zip_%28file_format%29">Zip File Format</a> * @see <a href="https://en.wikipedia.org/wiki/Zip_%2528file_format%2529">Zip File Format</a>
*/ */
class CentralDirectoryEndRecord { class CentralDirectoryEndRecord {

@ -28,7 +28,7 @@ import org.apache.maven.plugins.shade.relocation.Relocator;
import org.apache.maven.plugins.shade.resource.ResourceTransformer; import org.apache.maven.plugins.shade.resource.ResourceTransformer;
/** /**
* Extension for the <a href="http://maven.apache.org/plugins/maven-shade-plugin/">Maven * Extension for the <a href="https://maven.apache.org/plugins/maven-shade-plugin/">Maven
* shade plugin</a> to allow properties files (e.g. {@literal META-INF/spring.factories}) * shade plugin</a> to allow properties files (e.g. {@literal META-INF/spring.factories})
* to be merged without losing any information. * to be merged without losing any information.
* *

@ -99,7 +99,7 @@ public class RepackageMojo extends AbstractDependencyFilterMojo {
* artifact. If this is not given (default), it will replace the main artifact and * artifact. If this is not given (default), it will replace the main artifact and
* only the repackaged artifact will be deployed. Attaching the artifact allows to * only the repackaged artifact will be deployed. Attaching the artifact allows to
* deploy it alongside to the original one, see <a href= * deploy it alongside to the original one, see <a href=
* "http://maven.apache.org/plugins/maven-deploy-plugin/examples/deploying-with-classifiers.html" * "https://maven.apache.org/plugins/maven-deploy-plugin/examples/deploying-with-classifiers.html"
* > the maven documentation for more details</a>. * > the maven documentation for more details</a>.
* @since 1.0 * @since 1.0
*/ */

@ -12,7 +12,7 @@
port to the integration test itself. port to the integration test itself.
The example below showcases how you could achieve the same feature using the The example below showcases how you could achieve the same feature using the
{{{http://mojo.codehaus.org/build-helper-maven-plugin/}build-helper-plugin}}: {{{https://mojo.codehaus.org/build-helper-maven-plugin/}build-helper-plugin}}:
--- ---
<project> <project>

@ -29,7 +29,7 @@ Spring Boot Maven Plugin
more specific use cases are described in the examples given below. more specific use cases are described in the examples given below.
In case you still have questions regarding the plugin's usage, please have a look at the existing In case you still have questions regarding the plugin's usage, please have a look at the existing
{{{http://stackoverflow.com/questions/tagged/spring-boot}stack overflow issue}}. If you still don't get an {{{https://stackoverflow.com/questions/tagged/spring-boot}stack overflow issue}}. If you still don't get an
answer, feel free to create a new thread with the <<<#spring-boot>>> tag. answer, feel free to create a new thread with the <<<#spring-boot>>> tag.
If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report If you feel like the plugin is missing a feature or has a defect, you can fill a feature request or bug report

@ -242,7 +242,7 @@ spring.devtools.remote.restart.enabled=false
</build> </build>
--- ---
Such setup can now use the {{{http://maven.apache.org/surefire/maven-failsafe-plugin/}failsafe-plugin}} to Such setup can now use the {{{https://maven.apache.org/surefire/maven-failsafe-plugin/}failsafe-plugin}} to
run your integration tests as you would expect. run your integration tests as you would expect.
For more detailed examples of how to configure this goal see: For more detailed examples of how to configure this goal see:

@ -24,7 +24,7 @@ import org.springframework.core.env.Environment;
* *
* @author Phillip Webb * @author Phillip Webb
* @since 1.3.0 * @since 1.3.0
* @see "http://cloud.spring.io" * @see "https://cloud.spring.io"
*/ */
public enum CloudPlatform { public enum CloudPlatform {

@ -33,7 +33,7 @@ import org.springframework.core.Ordered;
/** /**
* {@link BeanFactoryPostProcessor} to automatically setup the recommended * {@link BeanFactoryPostProcessor} to automatically setup the recommended
* {@link BeanDefinition#setDependsOn(String[]) dependsOn} settings for * {@link BeanDefinition#setDependsOn(String[]) dependsOn} settings for
* <a href="http://www.atomikos.com/Documentation/SpringIntegration">correct Atomikos * <a href="https://www.atomikos.com/Documentation/SpringIntegration">correct Atomikos
* ordering</a>. * ordering</a>.
* *
* @author Phillip Webb * @author Phillip Webb

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save