Merge pull request #16317 from Spring Operator

* gh-16317:
  Polish "Use HTTPS for external links wherever possible"
  Use HTTPS for external links wherever possible

Closes gh-16317
1.4.x
Andy Wilkinson 6 years ago
commit f05f858286

@ -40,5 +40,5 @@ appropriate to the circumstances. Maintainers are obligated to maintain confiden
with regard to the reporter of an incident. with regard to the reporter of an incident.
This Code of Conduct is adapted from the This Code of Conduct is adapted from the
http://contributor-covenant.org[Contributor Covenant], version 1.3.0, available at https://contributor-covenant.org[Contributor Covenant], version 1.3.0, available at
http://contributor-covenant.org/version/1/3/0/[contributor-covenant.org/version/1/3/0/] https://contributor-covenant.org/version/1/3/0/[contributor-covenant.org/version/1/3/0/]

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2016 the original author or authors. * Copyright 2012-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -44,7 +44,7 @@ import org.springframework.transaction.jta.JtaTransactionManager;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
/** /**
* JTA Configuration for <a href="http://narayana.io/">Narayana</a>. * JTA Configuration for <a href="https://github.com/jbosstm/narayana">Narayana</a>.
* *
* @author Gytis Trikleris * @author Gytis Trikleris
* @since 1.4.0 * @since 1.4.0

@ -128,7 +128,7 @@ public class ResourceServerTokenServicesConfigurationTests {
@Test @Test
public void userInfoWithPrincipal() { public void userInfoWithPrincipal() {
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(PrincipalConfiguration.class) this.context = new SpringApplicationBuilder(PrincipalConfiguration.class)
.environment(this.environment).web(false).run(); .environment(this.environment).web(false).run();
UserInfoTokenServices services = this.context UserInfoTokenServices services = this.context

@ -48,8 +48,8 @@ import static org.mockito.Mockito.verifyZeroInteractions;
@SpringBootTest @SpringBootTest
@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.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 CustomRestTemplateBasicOAuth2SsoConfigurationTests { public class CustomRestTemplateBasicOAuth2SsoConfigurationTests {

@ -230,7 +230,7 @@ limitations under the License
>>> CGLIB 3.0 (cglib:cglib:3.0): >>> CGLIB 3.0 (cglib:cglib:3.0):
Per the LICENSE file in the CGLIB JAR distribution downloaded from Per the LICENSE file in the CGLIB JAR distribution downloaded from
http://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download, https://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download,
CGLIB 3.0 is licensed under the Apache License, version 2.0, the text of which CGLIB 3.0 is licensed under the Apache License, version 2.0, the text of which
is included above. is included above.
@ -250,7 +250,7 @@ Eclipse Public License, Version 1.0 is applicable to the following component(s).
The Eclipse Foundation makes available all content in this plug-in ("Content"). The Eclipse Foundation makes available all content in this plug-in ("Content").
Unless otherwise indicated below, the Content is provided to you under the terms Unless otherwise indicated below, the Content is provided to you under the terms
and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the and conditions of the Eclipse Public License Version 1.0 ("EPL"). A copy of the
EPL is available at http://www.eclipse.org/legal/epl-v10.html. EPL is available at https://www.eclipse.org/legal/epl-v10.html.
For purposes of the EPL, "Program" will mean the Content. For purposes of the EPL, "Program" will mean the Content.
@ -260,7 +260,7 @@ terms and conditions may apply to your use of any object code in the Content.
Check the Redistributor's license that was provided with the Content. If no such Check the Redistributor's license that was provided with the Content. If no such
license exists, contact the Redistributor. Unless otherwise indicated below, the license exists, contact the Redistributor. Unless otherwise indicated below, the
terms and conditions of the EPL still apply to any source code in the Content and terms and conditions of the EPL still apply to any source code in the Content and
such source code may be obtained at http://www.eclipse.org/ such source code may be obtained at https://www.eclipse.org/

@ -1587,7 +1587,7 @@ it's loaded too early. You need to either use `logback-spring.xml` or define a
`logging.config` property. `logging.config` property.
WARNING: The extensions cannot be used with Logback's WARNING: The extensions cannot be used with Logback's
http://logback.qos.ch/manual/configuration.html#autoScan[configuration scanning]. If you https://logback.qos.ch/manual/configuration.html#autoScan[configuration scanning]. If you
attempt to do so, making changes to the configuration file will result in an error similar attempt to do so, making changes to the configuration file will result in an error similar
to once of the following being logged: to once of the following being logged:
@ -1766,7 +1766,7 @@ of converters. You can also override default converters that way.
==== Custom JSON Serializers and Deserializers ==== Custom JSON Serializers and Deserializers
If you're using Jackson to serialize and deserialize JSON data, you might want to write If you're using Jackson to serialize and deserialize JSON data, you might want to write
your own `JsonSerializer` and `JsonDeserializer` classes. Custom serializers are usually your own `JsonSerializer` and `JsonDeserializer` classes. Custom serializers are usually
http://wiki.fasterxml.com/JacksonHowToCustomDeserializers[registered with Jackson via a Module], https://wiki.fasterxml.com/JacksonHowToCustomDeserializers[registered with Jackson via a Module],
but Spring Boot provides an alternative `@JsonComponent` annotation which makes it easier but Spring Boot provides an alternative `@JsonComponent` annotation which makes it easier
to directly register Spring Beans. to directly register Spring Beans.
@ -3449,7 +3449,7 @@ Mongo instance's configuration and logging routing.
[[boot-features-neo4j]] [[boot-features-neo4j]]
=== Neo4j === Neo4j
http://neo4j.com/[Neo4j] is an open-source NoSQL graph database that uses a rich data https://neo4j.com/[Neo4j] is an open-source NoSQL graph database that uses a rich data
model of nodes related by first class relationships which is better suited for connected model of nodes related by first class relationships which is better suited for connected
big data than traditional rdbms approaches. Spring Boot offers several conveniences for big data than traditional rdbms approaches. Spring Boot offers several conveniences for
working with Neo4j, including the `spring-boot-starter-data-neo4j` '`Starter`'. working with Neo4j, including the `spring-boot-starter-data-neo4j` '`Starter`'.
@ -3560,7 +3560,7 @@ following two annotations to your Spring configuration:
---- ----
TIP: For complete details of Spring Data Neo4j, including its rich object mapping TIP: For complete details of Spring Data Neo4j, including its rich object mapping
technologies, refer to their http://projects.spring.io/spring-data-neo4j/[reference technologies, refer to their https://projects.spring.io/spring-data-neo4j/[reference
documentation]. documentation].
@ -3648,7 +3648,7 @@ configured:
[source,properties,indent=0] [source,properties,indent=0]
---- ----
spring.elasticsearch.jest.uris=http://search.example.com:9200 spring.elasticsearch.jest.uris=https://search.example.com:9200
spring.elasticsearch.jest.read-timeout=10000 spring.elasticsearch.jest.read-timeout=10000
spring.elasticsearch.jest.username=user spring.elasticsearch.jest.username=user
spring.elasticsearch.jest.password=secret spring.elasticsearch.jest.password=secret
@ -3775,7 +3775,7 @@ https://docs.spring.io/spring-data/cassandra/docs/[reference documentation].
[[boot-features-couchbase]] [[boot-features-couchbase]]
=== Couchbase === Couchbase
http://www.couchbase.com/[Couchbase] is an open-source, distributed multi-model NoSQL https://www.couchbase.com/[Couchbase] is an open-source, distributed multi-model NoSQL
document-oriented database that is optimized for interactive applications. Spring Boot document-oriented database that is optimized for interactive applications. Spring Boot
offers auto-configuration for Couchbase and abstractions on top of it provided by offers auto-configuration for Couchbase and abstractions on top of it provided by
https://github.com/spring-projects/spring-data-couchbase[Spring Data Couchbase]. https://github.com/spring-projects/spring-data-couchbase[Spring Data Couchbase].
@ -3824,7 +3824,7 @@ Check the `spring.couchbase.env.*` properties for more details.
==== Spring Data Couchbase repositories ==== Spring Data Couchbase repositories
Spring Data includes repository support for Couchbase. For complete details of Spring Spring Data includes repository support for Couchbase. For complete details of Spring
Data Couchbase, refer to their Data Couchbase, refer to their
http://docs.spring.io/spring-data/couchbase/docs/current/reference/html/[reference documentation]. https://docs.spring.io/spring-data/couchbase/docs/current/reference/html/[reference documentation].
You can inject an auto-configured `CouchbaseTemplate` instance as you would with any You can inject an auto-configured `CouchbaseTemplate` instance as you would with any
other Spring Bean as long as a _default_ `CouchbaseConfigurer` is available (that other Spring Bean as long as a _default_ `CouchbaseConfigurer` is available (that
@ -5023,13 +5023,13 @@ If you use the
`spring-boot-starter-test` '`Starter`' (in the `test` `scope`), you will find `spring-boot-starter-test` '`Starter`' (in the `test` `scope`), you will find
the following provided libraries: the following provided libraries:
* http://junit.org[JUnit] -- The de-facto standard for unit testing Java applications. * https://junit.org[JUnit] -- The de-facto standard for unit testing Java applications.
* {spring-reference}/#integration-testing[Spring Test] & Spring Boot Test -- * {spring-reference}/#integration-testing[Spring Test] & Spring Boot Test --
Utilities and integration test support for Spring Boot applications. Utilities and integration test support for Spring Boot applications.
* http://joel-costigliola.github.io/assertj/[AssertJ] -- A fluent assertion library. * https://joel-costigliola.github.io/assertj/[AssertJ] -- A fluent assertion library.
* http://hamcrest.org/JavaHamcrest/[Hamcrest] -- A library of matcher objects (also known * https://github.com/hamcrest/JavaHamcrest[Hamcrest] -- A library of matcher objects
as constraints or predicates). (also known as constraints or predicates).
* http://mockito.org/[Mockito] -- A Java mocking framework. * https://mockito.github.io[Mockito] -- A Java mocking framework.
* https://github.com/skyscreamer/JSONassert[JSONassert] -- An assertion library for JSON. * https://github.com/skyscreamer/JSONassert[JSONassert] -- An assertion library for JSON.
* https://github.com/jayway/JsonPath[JsonPath] -- XPath for JSON. * https://github.com/jayway/JsonPath[JsonPath] -- XPath for JSON.
@ -5763,7 +5763,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"));
} }

@ -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="https://freemarker.apache.org"> FreeMarker - <a class="brand" href="https://freemarker.apache.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="https://freemarker.apache.org"> FreeMarker - <a class="brand" href="https://freemarker.apache.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>

@ -62,7 +62,7 @@ Simply add the `net.sf.ehcache:ehcache` dependency to the project. Since there i
default `ehcache.xml` configuration file at the root of the classpath, it is automatically default `ehcache.xml` configuration file at the root of the classpath, it is automatically
used to configure the underlying `CacheManager`. Note that EhCache 3 uses a different used to configure the underlying `CacheManager`. Note that EhCache 3 uses a different
format and doesn't default to `ehcache.xml` anymore. Check format and doesn't default to `ehcache.xml` anymore. Check
http://www.ehcache.org/documentation/3.0/xml.html[the documentation] for more details. https://www.ehcache.org/documentation/3.0/xml.html[the documentation] for more details.

@ -24,7 +24,7 @@ import org.jooq.impl.TableImpl;
*/ */
@Generated( @Generated(
value = { value = {
"http://www.jooq.org", "https://www.jooq.org",
"jOOQ version:3.8.2" "jOOQ version:3.8.2"
}, },
comments = "This class is generated by jOOQ" comments = "This class is generated by jOOQ"

@ -24,7 +24,7 @@ import org.jooq.impl.TableImpl;
*/ */
@Generated( @Generated(
value = { value = {
"http://www.jooq.org", "https://www.jooq.org",
"jOOQ version:3.8.2" "jOOQ version:3.8.2"
}, },
comments = "This class is generated by jOOQ" comments = "This class is generated by jOOQ"

@ -23,7 +23,7 @@ import org.jooq.impl.TableImpl;
*/ */
@Generated( @Generated(
value = { value = {
"http://www.jooq.org", "https://www.jooq.org",
"jOOQ version:3.8.2" "jOOQ version:3.8.2"
}, },
comments = "This class is generated by jOOQ" comments = "This class is generated by jOOQ"

@ -24,7 +24,7 @@ import org.jooq.impl.TableImpl;
*/ */
@Generated( @Generated(
value = { value = {
"http://www.jooq.org", "https://www.jooq.org",
"jOOQ version:3.8.2" "jOOQ version:3.8.2"
}, },
comments = "This class is generated by jOOQ" comments = "This class is generated by jOOQ"

@ -19,7 +19,7 @@ import org.jooq.impl.CatalogImpl;
*/ */
@Generated( @Generated(
value = { value = {
"http://www.jooq.org", "https://www.jooq.org",
"jOOQ version:3.8.2" "jOOQ version:3.8.2"
}, },
comments = "This class is generated by jOOQ" comments = "This class is generated by jOOQ"

@ -23,7 +23,7 @@ import org.jooq.impl.TableImpl;
*/ */
@Generated( @Generated(
value = { value = {
"http://www.jooq.org", "https://www.jooq.org",
"jOOQ version:3.8.2" "jOOQ version:3.8.2"
}, },
comments = "This class is generated by jOOQ" comments = "This class is generated by jOOQ"

@ -26,9 +26,9 @@ import static org.assertj.core.api.Assertions.assertThat;
* Tests for {@link VehicleIdentificationNumber}. * Tests for {@link VehicleIdentificationNumber}.
* *
* @author Phillip Webb * @author Phillip Webb
* @see <a href="http://osherove.com/blog/2005/4/3/naming-standards-for-unit-tests.html"> * @see <a href="https://osherove.com/blog/2005/4/3/naming-standards-for-unit-tests.html">
* Naming standards for unit tests</a> * Naming standards for unit tests</a>
* @see <a href="http://joel-costigliola.github.io/assertj/">AssertJ</a> * @see <a href="https://joel-costigliola.github.io/assertj/">AssertJ</a>
*/ */
public class VehicleIdentificationNumberTests { public class VehicleIdentificationNumberTests {

@ -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,6 +1,6 @@
<!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/thymeleaf/layout"> xmlns:layout="https://github.com/ultraq/thymeleaf-layout-dialect">
<head> <head>
<title>Layout</title> <title>Layout</title>
<link rel="stylesheet" th:href="@{/css/bootstrap.min.css}" <link rel="stylesheet" th:href="@{/css/bootstrap.min.css}"

@ -1,6 +1,6 @@
<!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/thymeleaf/layout" xmlns:layout="https://github.com/ultraq/thymeleaf-layout-dialect"
layout:decorate="layout"> layout:decorate="layout">
<head> <head>
<title>Messages : Create</title> <title>Messages : Create</title>

@ -1,6 +1,6 @@
<!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/thymeleaf/layout" xmlns:layout="https://github.com/ultraq/thymeleaf-layout-dialect"
layout:decorate="layout"> layout:decorate="layout">
<head> <head>
<title>Messages : View all</title> <title>Messages : View all</title>

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

@ -46,7 +46,7 @@ do as they were designed before this was clarified.
| 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://alexo.github.io/wro4j/[Wro4j] (Advanced usage) | https://alexo.github.io/wro4j/[Wro4j] (Advanced usage)
| https://github.com/michael-simons/wro4j-spring-boot-starter | https://github.com/michael-simons/wro4j-spring-boot-starter
| https://projects.spring.io/spring-batch/[Spring Batch] (Advanced usage) | https://projects.spring.io/spring-batch/[Spring Batch] (Advanced usage)
@ -70,13 +70,13 @@ do as they were designed before this was clarified.
| https://cloudant.com/[Cloudant] | https://cloudant.com/[Cloudant]
| https://github.com/icha024/cloudant-spring-boot-starter | https://github.com/icha024/cloudant-spring-boot-starter
| http://www.grpc.io/[gRPC] | https://www.grpc.io/[gRPC]
| https://github.com/LogNet/grpc-spring-boot-starter | https://github.com/LogNet/grpc-spring-boot-starter
| https://github.com/facebook/nifty[Nifty] (Thrift on Netty) | https://github.com/facebook/nifty[Nifty] (Thrift on Netty)
| https://github.com/bigdullrock/nifty-spring-boot-starter | https://github.com/bigdullrock/nifty-spring-boot-starter
| http://www.couchbase.com/[Couchbase] HTTP session | https://www.couchbase.com/[Couchbase] HTTP session
| https://github.com/mkopylec/session-couchbase-spring-boot-starter | https://github.com/mkopylec/session-couchbase-spring-boot-starter
| https://github.com/oembedler/spring-graphql-common[Spring GraphQL] (GraphQL and GraphiQL) | https://github.com/oembedler/spring-graphql-common[Spring GraphQL] (GraphQL and GraphiQL)
@ -88,19 +88,19 @@ do as they were designed before this was clarified.
| https://camunda.org/[Camunda BPM] | https://camunda.org/[Camunda BPM]
| https://github.com/camunda/camunda-bpm-spring-boot-starter | https://github.com/camunda/camunda-bpm-spring-boot-starter
| http://ff4j.org/[Feature Flipping For Java (FF4J)] | https://ff4j.github.io[Feature Flipping For Java (FF4J)]
| https://github.com/clun/ff4j/ | https://github.com/clun/ff4j/
| http://resteasy.jboss.org/[RESTEasy] | https://resteasy.jboss.org/[RESTEasy]
| https://github.com/paypal/resteasy-spring-boot | https://github.com/paypal/resteasy-spring-boot
| JSF (http://primefaces.org/[PrimeFaces], http://primefaces-extensions.github.io/[PrimeFaces Extensions], http://bootsfaces.net/[BootsFaces], http://butterfaces.org/[ButterFaces], http://omnifaces.org/[OmniFaces], http://angularfaces.net/[AngularFaces], https://javaserverfaces.java.net/[Mojarra] and http://myfaces.apache.org[MyFaces]) | JSF (https://primefaces.org/[PrimeFaces], https://primefaces-extensions.github.io/[PrimeFaces Extensions], https://bootsfaces.net/[BootsFaces], https://github.com/ButterFaces/ButterFaces[ButterFaces], https://omnifaces.org/[OmniFaces], https://angularfaces.net/[AngularFaces], https://javaserverfaces.java.net/[Mojarra] and https://myfaces.apache.org[MyFaces])
| http://joinfaces.org | https://github.com/joinfaces/joinfaces
| Charon reverse proxy | Charon reverse proxy
| https://github.com/mkopylec/charon-spring-boot-starter | https://github.com/mkopylec/charon-spring-boot-starter
| http://www.wiremock.org[WireMock] and Spring REST Docs | https://github.com/tomakehurst/wiremock[WireMock] and Spring REST Docs
| https://github.com/ePages-de/restdocs-wiremock | https://github.com/ePages-de/restdocs-wiremock
| https://cxf.apache.org/docs/springboot.html[Apache CXF] | https://cxf.apache.org/docs/springboot.html[Apache CXF]
@ -109,13 +109,13 @@ do as they were designed before this was clarified.
| LDAP | LDAP
| https://github.com/eddumelendez/ldap-spring-boot | https://github.com/eddumelendez/ldap-spring-boot
| http://infinispan.org/[Infinispan] | https://infinispan.org/[Infinispan]
| https://github.com/infinispan/infinispan-spring-boot | https://github.com/infinispan/infinispan-spring-boot
| http://restfb.com/[RestFB] Messenger | https://restfb.com/[RestFB] Messenger
| https://github.com/marsbits/restfbmessenger | https://github.com/marsbits/restfbmessenger
| http://square.github.io/okhttp/[OkHttp] | https://square.github.io/okhttp/[OkHttp]
| https://github.com/freefair/okhttp-spring-boot | https://github.com/freefair/okhttp-spring-boot
|=== |===

@ -31,7 +31,7 @@ public class AnotherExampleRestClient {
private RestTemplate restTemplate; private RestTemplate restTemplate;
public AnotherExampleRestClient(RestTemplateBuilder builder) { public AnotherExampleRestClient(RestTemplateBuilder builder) {
this.restTemplate = builder.rootUri("http://example.com").build(); this.restTemplate = builder.rootUri("https://example.com").build();
} }
protected RestTemplate getRestTemplate() { protected RestTemplate getRestTemplate() {

@ -31,7 +31,7 @@ public class ExampleRestClient {
private RestTemplate restTemplate; private RestTemplate restTemplate;
public ExampleRestClient(RestTemplateBuilder builder) { public ExampleRestClient(RestTemplateBuilder builder) {
this.restTemplate = builder.rootUri("http://example.com").build(); this.restTemplate = builder.rootUri("https://example.com").build();
} }
protected RestTemplate getRestTemplate() { protected RestTemplate getRestTemplate() {

@ -36,7 +36,7 @@ class HateoasController {
@RequestMapping("/resource") @RequestMapping("/resource")
public Resource<Map<String, String>> resource() { public Resource<Map<String, String>> resource() {
return new Resource<Map<String, String>>(new HashMap<String, String>(), return new Resource<Map<String, String>>(new HashMap<String, String>(),
new Link("self", "http://api.example.com")); new Link("self", "https://api.example.com"));
} }
@RequestMapping("/plain") @RequestMapping("/plain")

@ -41,7 +41,7 @@ import org.springframework.web.util.UriTemplateHandler;
* {@link RequestExpectationManager} that strips the specified root URI from the request * {@link RequestExpectationManager} that strips the specified root URI from the request
* before verification. Can be used to simply test declarations when all REST calls start * before verification. Can be used to simply test declarations when all REST calls start
* the same way. For example: <pre class="code"> * the same way. For example: <pre class="code">
* RestTemplate restTemplate = new RestTemplateBuilder().rootUri("http://example.com").build(); * RestTemplate restTemplate = new RestTemplateBuilder().rootUri("https://example.com").build();
* MockRestServiceServer server = RootUriRequestExpectationManager.bindTo(restTemplate); * MockRestServiceServer server = RootUriRequestExpectationManager.bindTo(restTemplate);
* server.expect(requestTo("/hello")).andRespond(withSuccess()); * server.expect(requestTo("/hello")).andRespond(withSuccess());
* restTemplate.getForEntity("/hello", String.class); * restTemplate.getForEntity("/hello", String.class);

@ -791,7 +791,7 @@ public class TestRestTemplate {
* {@link ParameterizedTypeReference} is used to pass generic type information: * {@link ParameterizedTypeReference} is used to pass generic type information:
* <pre class="code"> * <pre class="code">
* ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt; myBean = new ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt;() {}; * ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt; myBean = new ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt;() {};
* ResponseEntity&lt;List&lt;MyBean&gt;&gt; response = template.exchange(&quot;http://example.com&quot;,HttpMethod.GET, null, myBean); * ResponseEntity&lt;List&lt;MyBean&gt;&gt; response = template.exchange(&quot;https://example.com&quot;,HttpMethod.GET, null, myBean);
* </pre> * </pre>
* @param url the URL * @param url the URL
* @param method the HTTP method (GET, POST, etc) * @param method the HTTP method (GET, POST, etc)
@ -819,7 +819,7 @@ public class TestRestTemplate {
* {@link ParameterizedTypeReference} is used to pass generic type information: * {@link ParameterizedTypeReference} is used to pass generic type information:
* <pre class="code"> * <pre class="code">
* ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt; myBean = new ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt;() {}; * ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt; myBean = new ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt;() {};
* ResponseEntity&lt;List&lt;MyBean&gt;&gt; response = template.exchange(&quot;http://example.com&quot;,HttpMethod.GET, null, myBean); * ResponseEntity&lt;List&lt;MyBean&gt;&gt; response = template.exchange(&quot;https://example.com&quot;,HttpMethod.GET, null, myBean);
* </pre> * </pre>
* @param url the URL * @param url the URL
* @param method the HTTP method (GET, POST, etc) * @param method the HTTP method (GET, POST, etc)
@ -847,7 +847,7 @@ public class TestRestTemplate {
* {@link ParameterizedTypeReference} is used to pass generic type information: * {@link ParameterizedTypeReference} is used to pass generic type information:
* <pre class="code"> * <pre class="code">
* ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt; myBean = new ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt;() {}; * ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt; myBean = new ParameterizedTypeReference&lt;List&lt;MyBean&gt;&gt;() {};
* ResponseEntity&lt;List&lt;MyBean&gt;&gt; response = template.exchange(&quot;http://example.com&quot;,HttpMethod.GET, null, myBean); * ResponseEntity&lt;List&lt;MyBean&gt;&gt; response = template.exchange(&quot;https://example.com&quot;,HttpMethod.GET, null, myBean);
* </pre> * </pre>
* @param url the URL * @param url the URL
* @param method the HTTP method (GET, POST, etc) * @param method the HTTP method (GET, POST, etc)
@ -873,7 +873,7 @@ public class TestRestTemplate {
* response as {@link ResponseEntity}. Typically used in combination with the static * response as {@link ResponseEntity}. Typically used in combination with the static
* builder methods on {@code RequestEntity}, for instance: <pre class="code"> * builder methods on {@code RequestEntity}, for instance: <pre class="code">
* MyRequest body = ... * MyRequest body = ...
* RequestEntity request = RequestEntity.post(new URI(&quot;http://example.com/foo&quot;)).accept(MediaType.APPLICATION_JSON).body(body); * RequestEntity request = RequestEntity.post(new URI(&quot;https://example.com/foo&quot;)).accept(MediaType.APPLICATION_JSON).body(body);
* ResponseEntity&lt;MyResponse&gt; response = template.exchange(request, MyResponse.class); * ResponseEntity&lt;MyResponse&gt; response = template.exchange(request, MyResponse.class);
* </pre> * </pre>
* @param requestEntity the entity to write to the request * @param requestEntity the entity to write to the request
@ -894,7 +894,7 @@ public class TestRestTemplate {
* response as {@link ResponseEntity}. The given {@link ParameterizedTypeReference} is * response as {@link ResponseEntity}. The given {@link ParameterizedTypeReference} is
* used to pass generic type information: <pre class="code"> * used to pass generic type information: <pre class="code">
* MyRequest body = ... * MyRequest body = ...
* RequestEntity request = RequestEntity.post(new URI(&quot;http://example.com/foo&quot;)).accept(MediaType.APPLICATION_JSON).body(body); * RequestEntity request = RequestEntity.post(new URI(&quot;https://example.com/foo&quot;)).accept(MediaType.APPLICATION_JSON).body(body);
* ParameterizedTypeReference&lt;List&lt;MyResponse&gt;&gt; myBean = new ParameterizedTypeReference&lt;List&lt;MyResponse&gt;&gt;() {}; * ParameterizedTypeReference&lt;List&lt;MyResponse&gt;&gt; myBean = new ParameterizedTypeReference&lt;List&lt;MyResponse&gt;&gt;() {};
* ResponseEntity&lt;List&lt;MyResponse&gt;&gt; response = template.exchange(request, myBean); * ResponseEntity&lt;List&lt;MyResponse&gt;&gt; response = template.exchange(request, myBean);
* </pre> * </pre>

@ -78,7 +78,7 @@ public class MockServerRestTemplateCustomizerTests {
MockServerRestTemplateCustomizer customizer = new MockServerRestTemplateCustomizer( MockServerRestTemplateCustomizer customizer = new MockServerRestTemplateCustomizer(
UnorderedRequestExpectationManager.class); UnorderedRequestExpectationManager.class);
customizer.customize( customizer.customize(
new RestTemplateBuilder().rootUri("http://example.com").build()); new RestTemplateBuilder().rootUri("https://example.com").build());
assertThat(customizer.getServer()).extracting("expectationManager") assertThat(customizer.getServer()).extracting("expectationManager")
.hasAtLeastOneElementOfType(RootUriRequestExpectationManager.class); .hasAtLeastOneElementOfType(RootUriRequestExpectationManager.class);
} }
@ -87,7 +87,7 @@ public class MockServerRestTemplateCustomizerTests {
public void setDetectRootUriShouldDisableRootUriDetection() throws Exception { public void setDetectRootUriShouldDisableRootUriDetection() throws Exception {
this.customizer.setDetectRootUri(false); this.customizer.setDetectRootUri(false);
this.customizer.customize( this.customizer.customize(
new RestTemplateBuilder().rootUri("http://example.com").build()); new RestTemplateBuilder().rootUri("https://example.com").build());
assertThat(this.customizer.getServer()).extracting("expectationManager") assertThat(this.customizer.getServer()).extracting("expectationManager")
.hasAtLeastOneElementOfType(SimpleRequestExpectationManager.class); .hasAtLeastOneElementOfType(SimpleRequestExpectationManager.class);

@ -54,7 +54,7 @@ public class RootUriRequestExpectationManagerTests {
@Rule @Rule
public ExpectedException thrown = ExpectedException.none(); public ExpectedException thrown = ExpectedException.none();
private String uri = "http://example.com"; private String uri = "https://example.com";
@Mock @Mock
private RequestExpectationManager delegate; private RequestExpectationManager delegate;
@ -97,7 +97,7 @@ public class RootUriRequestExpectationManagerTests {
public void validateRequestWhenUriDoesNotStartWithRootUriShouldDelegateToExpectationManager() public void validateRequestWhenUriDoesNotStartWithRootUriShouldDelegateToExpectationManager()
throws Exception { throws Exception {
ClientHttpRequest request = mock(ClientHttpRequest.class); ClientHttpRequest request = mock(ClientHttpRequest.class);
given(request.getURI()).willReturn(new URI("http://spring.io/test")); given(request.getURI()).willReturn(new URI("https://spring.io/test"));
this.manager.validateRequest(request); this.manager.validateRequest(request);
verify(this.delegate).validateRequest(request); verify(this.delegate).validateRequest(request);
} }
@ -121,9 +121,9 @@ public class RootUriRequestExpectationManagerTests {
given(request.getURI()).willReturn(new URI(this.uri + "/hello")); given(request.getURI()).willReturn(new URI(this.uri + "/hello"));
given(this.delegate.validateRequest((ClientHttpRequest) any())) given(this.delegate.validateRequest((ClientHttpRequest) any()))
.willThrow(new AssertionError( .willThrow(new AssertionError(
"Request URI expected:</hello> was:<http://example.com/bad>")); "Request URI expected:</hello> was:<https://example.com/bad>"));
this.thrown.expect(AssertionError.class); this.thrown.expect(AssertionError.class);
this.thrown.expectMessage("Request URI expected:<http://example.com/hello>"); this.thrown.expectMessage("Request URI expected:<https://example.com/hello>");
this.manager.validateRequest(request); this.manager.validateRequest(request);
} }
@ -172,7 +172,7 @@ public class RootUriRequestExpectationManagerTests {
@Test @Test
public void boundRestTemplateShouldPrefixRootUri() { public void boundRestTemplateShouldPrefixRootUri() {
RestTemplate restTemplate = new RestTemplateBuilder() RestTemplate restTemplate = new RestTemplateBuilder()
.rootUri("http://example.com").build(); .rootUri("https://example.com").build();
MockRestServiceServer server = RootUriRequestExpectationManager MockRestServiceServer server = RootUriRequestExpectationManager
.bindTo(restTemplate); .bindTo(restTemplate);
server.expect(requestTo("/hello")).andRespond(withSuccess()); server.expect(requestTo("/hello")).andRespond(withSuccess());
@ -182,14 +182,14 @@ public class RootUriRequestExpectationManagerTests {
@Test @Test
public void boundRestTemplateWhenUrlIncludesDomainShouldNotPrefixRootUri() { public void boundRestTemplateWhenUrlIncludesDomainShouldNotPrefixRootUri() {
RestTemplate restTemplate = new RestTemplateBuilder() RestTemplate restTemplate = new RestTemplateBuilder()
.rootUri("http://example.com").build(); .rootUri("https://example.com").build();
MockRestServiceServer server = RootUriRequestExpectationManager MockRestServiceServer server = RootUriRequestExpectationManager
.bindTo(restTemplate); .bindTo(restTemplate);
server.expect(requestTo("/hello")).andRespond(withSuccess()); server.expect(requestTo("/hello")).andRespond(withSuccess());
this.thrown.expect(AssertionError.class); this.thrown.expect(AssertionError.class);
this.thrown.expectMessage( this.thrown.expectMessage(
"expected:<http://example.com/hello> but was:<http://spring.io/hello>"); "expected:<https://example.com/hello> but was:<https://spring.io/hello>");
restTemplate.getForEntity("http://spring.io/hello", String.class); restTemplate.getForEntity("https://spring.io/hello", String.class);
} }
} }

@ -1,5 +1,5 @@
/* /*
* Copyright 2012-2016 the original author or authors. * Copyright 2012-2019 the original author or authors.
* *
* Licensed under the Apache License, Version 2.0 (the "License"); * Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License. * you may not use this file except in compliance with the License.
@ -27,7 +27,7 @@ import org.springframework.boot.loader.data.RandomAccessData;
* *
* @author Phillip Webb * @author Phillip Webb
* @author Andy Wilkinson * @author Andy Wilkinson
* @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_%28file_format%29">Zip File Format</a>
*/ */
final class CentralDirectoryFileHeader implements FileHeader { final class CentralDirectoryFileHeader implements FileHeader {
@ -123,8 +123,8 @@ final class CentralDirectoryFileHeader implements FileHeader {
/** /**
* Decode MS-DOS Date Time details. See * Decode MS-DOS Date Time details. See
* <a href="http://mindprod.com/jgloss/zip.html">mindprod.com/jgloss/zip.html</a> for * <a href="https://docs.microsoft.com/en-gb/windows/desktop/api/winbase/nf-winbase-dosdatetimetofiletime">
* more details of the format. * Microsoft's documentation</a> for more details of the format.
* @param date the date part * @param date the date part
* @param time the time part * @param time the time part
* @return a {@link Calendar} containing the decoded date. * @return a {@link Calendar} containing the decoded date.

@ -121,7 +121,7 @@ public final class AnsiColors {
: (1.0 / 3.0) * Math.pow(29.0 / 6.0, 2) * t + (4.0 / 29.0)); : (1.0 / 3.0) * Math.pow(29.0 / 6.0, 2) * t + (4.0 / 29.0));
} }
// See http://en.wikipedia.org/wiki/Color_difference#CIE94 // See https://en.wikipedia.org/wiki/Color_difference#CIE94
public double getDistance(LabColor other) { public double getDistance(LabColor other) {
double c1 = Math.sqrt(this.a * this.a + this.b * this.b); double c1 = Math.sqrt(this.a * this.a + this.b * this.b);
double deltaC = c1 - Math.sqrt(other.a * other.a + other.b * other.b); double deltaC = c1 - Math.sqrt(other.a * other.a + other.b * other.b);

@ -111,9 +111,9 @@ public class RestTemplateBuilderTests {
@Test @Test
public void rootUriShouldApply() throws Exception { public void rootUriShouldApply() throws Exception {
RestTemplate restTemplate = this.builder.rootUri("http://example.com").build(); RestTemplate restTemplate = this.builder.rootUri("https://example.com").build();
MockRestServiceServer server = MockRestServiceServer.bindTo(restTemplate).build(); MockRestServiceServer server = MockRestServiceServer.bindTo(restTemplate).build();
server.expect(requestTo("http://example.com/hello")).andRespond(withSuccess()); server.expect(requestTo("https://example.com/hello")).andRespond(withSuccess());
restTemplate.getForEntity("/hello", String.class); restTemplate.getForEntity("/hello", String.class);
server.verify(); server.verify();
} }
@ -122,11 +122,11 @@ public class RestTemplateBuilderTests {
public void rootUriShouldApplyAfterUriTemplateHandler() throws Exception { public void rootUriShouldApplyAfterUriTemplateHandler() throws Exception {
UriTemplateHandler uriTemplateHandler = mock(UriTemplateHandler.class); UriTemplateHandler uriTemplateHandler = mock(UriTemplateHandler.class);
RestTemplate template = this.builder.uriTemplateHandler(uriTemplateHandler) RestTemplate template = this.builder.uriTemplateHandler(uriTemplateHandler)
.rootUri("http://example.com").build(); .rootUri("https://example.com").build();
UriTemplateHandler handler = template.getUriTemplateHandler(); UriTemplateHandler handler = template.getUriTemplateHandler();
handler.expand("/hello"); handler.expand("/hello");
assertThat(handler).isInstanceOf(RootUriTemplateHandler.class); assertThat(handler).isInstanceOf(RootUriTemplateHandler.class);
verify(uriTemplateHandler).expand("http://example.com/hello"); verify(uriTemplateHandler).expand("https://example.com/hello");
} }
@Test @Test

@ -58,8 +58,8 @@ public class RootUriTemplateHandlerTests {
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
public void setup() throws URISyntaxException { public void setup() throws URISyntaxException {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
this.uri = new URI("http://example.com/hello"); this.uri = new URI("https://example.com/hello");
this.handler = new RootUriTemplateHandler("http://example.com", this.delegate); this.handler = new RootUriTemplateHandler("https://example.com", this.delegate);
given(this.delegate.expand(anyString(), anyMap())).willReturn(this.uri); given(this.delegate.expand(anyString(), anyMap())).willReturn(this.uri);
given(this.delegate.expand(anyString(), (Object[]) anyVararg())) given(this.delegate.expand(anyString(), (Object[]) anyVararg()))
.willReturn(this.uri); .willReturn(this.uri);
@ -76,14 +76,14 @@ public class RootUriTemplateHandlerTests {
public void createWithNullHandlerShouldThrowException() throws Exception { public void createWithNullHandlerShouldThrowException() throws Exception {
this.thrown.expect(IllegalArgumentException.class); this.thrown.expect(IllegalArgumentException.class);
this.thrown.expectMessage("Handler must not be null"); this.thrown.expectMessage("Handler must not be null");
new RootUriTemplateHandler("http://example.com", null); new RootUriTemplateHandler("https://example.com", null);
} }
@Test @Test
public void expandMapVariablesShouldPrefixRoot() throws Exception { public void expandMapVariablesShouldPrefixRoot() throws Exception {
HashMap<String, Object> uriVariables = new HashMap<String, Object>(); HashMap<String, Object> uriVariables = new HashMap<String, Object>();
URI expanded = this.handler.expand("/hello", uriVariables); URI expanded = this.handler.expand("/hello", uriVariables);
verify(this.delegate).expand("http://example.com/hello", uriVariables); verify(this.delegate).expand("https://example.com/hello", uriVariables);
assertThat(expanded).isEqualTo(this.uri); assertThat(expanded).isEqualTo(this.uri);
} }
@ -91,8 +91,8 @@ public class RootUriTemplateHandlerTests {
public void expandMapVariablesWhenPathDoesNotStartWithSlashShouldNotPrefixRoot() public void expandMapVariablesWhenPathDoesNotStartWithSlashShouldNotPrefixRoot()
throws Exception { throws Exception {
HashMap<String, Object> uriVariables = new HashMap<String, Object>(); HashMap<String, Object> uriVariables = new HashMap<String, Object>();
URI expanded = this.handler.expand("http://spring.io/hello", uriVariables); URI expanded = this.handler.expand("https://spring.io/hello", uriVariables);
verify(this.delegate).expand("http://spring.io/hello", uriVariables); verify(this.delegate).expand("https://spring.io/hello", uriVariables);
assertThat(expanded).isEqualTo(this.uri); assertThat(expanded).isEqualTo(this.uri);
} }
@ -100,7 +100,7 @@ public class RootUriTemplateHandlerTests {
public void expandArrayVariablesShouldPrefixRoot() throws Exception { public void expandArrayVariablesShouldPrefixRoot() throws Exception {
Object[] uriVariables = new Object[0]; Object[] uriVariables = new Object[0];
URI expanded = this.handler.expand("/hello", uriVariables); URI expanded = this.handler.expand("/hello", uriVariables);
verify(this.delegate).expand("http://example.com/hello", uriVariables); verify(this.delegate).expand("https://example.com/hello", uriVariables);
assertThat(expanded).isEqualTo(this.uri); assertThat(expanded).isEqualTo(this.uri);
} }
@ -108,8 +108,8 @@ public class RootUriTemplateHandlerTests {
public void expandArrayVariablesWhenPathDoesNotStartWithSlashShouldNotPrefixRoot() public void expandArrayVariablesWhenPathDoesNotStartWithSlashShouldNotPrefixRoot()
throws Exception { throws Exception {
Object[] uriVariables = new Object[0]; Object[] uriVariables = new Object[0];
URI expanded = this.handler.expand("http://spring.io/hello", uriVariables); URI expanded = this.handler.expand("https://spring.io/hello", uriVariables);
verify(this.delegate).expand("http://spring.io/hello", uriVariables); verify(this.delegate).expand("https://spring.io/hello", uriVariables);
assertThat(expanded).isEqualTo(this.uri); assertThat(expanded).isEqualTo(this.uri);
} }
@ -117,10 +117,10 @@ public class RootUriTemplateHandlerTests {
public void applyShouldWrapExistingTemplate() throws Exception { public void applyShouldWrapExistingTemplate() throws Exception {
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
restTemplate.setUriTemplateHandler(this.delegate); restTemplate.setUriTemplateHandler(this.delegate);
this.handler = RootUriTemplateHandler.addTo(restTemplate, "http://example.com"); this.handler = RootUriTemplateHandler.addTo(restTemplate, "https://example.com");
Object[] uriVariables = new Object[0]; Object[] uriVariables = new Object[0];
URI expanded = this.handler.expand("/hello", uriVariables); URI expanded = this.handler.expand("/hello", uriVariables);
verify(this.delegate).expand("http://example.com/hello", uriVariables); verify(this.delegate).expand("https://example.com/hello", uriVariables);
assertThat(expanded).isEqualTo(this.uri); assertThat(expanded).isEqualTo(this.uri);
} }

Loading…
Cancel
Save