diff --git a/CODE_OF_CONDUCT.adoc b/CODE_OF_CONDUCT.adoc index f013d6f36ba..17783c7c066 100644 --- a/CODE_OF_CONDUCT.adoc +++ b/CODE_OF_CONDUCT.adoc @@ -40,5 +40,5 @@ appropriate to the circumstances. Maintainers are obligated to maintain confiden with regard to the reporter of an incident. This Code of Conduct is adapted from the -http://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[Contributor Covenant], version 1.3.0, available at +https://contributor-covenant.org/version/1/3/0/[contributor-covenant.org/version/1/3/0/] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8679c09c6cc..809e80443a4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -80,13 +80,13 @@ otherwise using succinct, lower-case, dash (-) delimited names, such as `fix-war 1. Choose the granularity of your commits consciously and squash commits that represent multiple edits or corrections of the same logical change. See -[Rewriting History section of Pro Git](http://git-scm.com/book/en/Git-Tools-Rewriting-History) +[Rewriting History section of Pro Git](https://git-scm.com/book/en/Git-Tools-Rewriting-History) for an overview of streamlining commit history. 1. Format commit messages using 55 characters for the subject line, 72 lines for the description, followed by related issues, e.g. `Issues: SPR-1234, SPR-1235`. See the -[Commit Guidelines section of Pro Git](http://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project#Commit-Guidelines) +[Commit Guidelines section of Pro Git](https://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project#Commit-Guidelines) for best practices around commit messages and use `git log` to see some examples. 1. List the JIRA issue number in the PR description. @@ -115,14 +115,14 @@ defines the source file coding standards we use along with some IDEA editor sett ### Reference Docs The reference documentation is in the [src/docs/asciidoc](src/docs/asciidoc) directory and, in -[Asciidoctor](http://asciidoctor.org/) format. For trivial changes, you may be able to browse, +[Asciidoctor](https://asciidoctor.org/) format. For trivial changes, you may be able to browse, edit source files, and submit directly from Github. When making changes locally, use `./gradlew asciidoctor` and then browse the result under `build/asciidoc/html5/index.html`. Asciidoctor also supports live editing. For more details read -[Editing AsciiDoc with Live Preview](http://asciidoctor.org/docs/editing-asciidoc-with-live-preview/). +[Editing AsciiDoc with Live Preview](https://asciidoctor.org/docs/editing-asciidoc-with-live-preview/). Note that if you choose the -[System Monitor](http://asciidoctor.org/docs/editing-asciidoc-with-live-preview/#using-a-system-monitor) +[System Monitor](https://asciidoctor.org/docs/editing-asciidoc-with-live-preview/#using-a-system-monitor) option, you can find a Guardfile under `src/docs/asciidoc`. diff --git a/README.md b/README.md index a64e3ba4e7e..6fbdd60956f 100644 --- a/README.md +++ b/README.md @@ -23,10 +23,10 @@ wiki page. ## Documentation The Spring Frameworks maintains reference documentation -([published](http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/) and +([published](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/) and [source](src/docs/asciidoc)), Github [wiki pages](https://github.com/spring-projects/spring-framework/wiki), and an -[API reference](http://docs.spring.io/spring-framework/docs/current/javadoc-api/). +[API reference](https://docs.spring.io/spring-framework/docs/current/javadoc-api/). There are also [guides and tutorials](https://spring.io/guides) across Spring projects. ## Build from Source @@ -39,8 +39,8 @@ wiki page and also [CONTRIBUTING.md](CONTRIBUTING.md). Follow [@SpringCentral](https://twitter.com/springcentral), [@SpringFramework](https://twitter.com/springframework), and its [team members](https://twitter.com/springframework/lists/team/members) on Twitter. -In-depth articles can be found at [The Spring Blog](http://spring.io/blog/), -and releases are announced via our [news feed](http://spring.io/blog/category/news). +In-depth articles can be found at [The Spring Blog](https://spring.io/blog/), +and releases are announced via our [news feed](https://spring.io/blog/category/news). ## License diff --git a/gradle/jdiff/README.txt b/gradle/jdiff/README.txt index 9f7529e2864..ed49a1b9231 100644 --- a/gradle/jdiff/README.txt +++ b/gradle/jdiff/README.txt @@ -11,7 +11,7 @@ difference between two public Java APIs. The file jdiff.html contains the reference page for JDiff. The latest version of JDiff can be downloaded at: -http://sourceforge.net/projects/javadiff +https://sourceforge.net/projects/javadiff To use the Ant task on your own project, see example.xml. More examples of using JDiff to compare the public APIs of J2SE1.3 and J2SE1.4 can @@ -40,7 +40,7 @@ Acknowledgements JDiff uses Stuart D. Gathman's Java translation of Gene Myers' O(ND) difference algorithm. -JDiff uses Xerces 1.4.2 from http://www.apache.org. +JDiff uses Xerces 1.4.2 from https://www.apache.org. JDiff also includes a script to use the classdoc application from http://classdoc.sourceforge.net or http://www.jensgulden.de, by Jens @@ -56,4 +56,4 @@ much of this work. Footnote: If you are looking for a generalized diff tool for XML, try diffmk from -http://wwws.sun.com/software/xml/developers/diffmk/ +https://wwws.sun.com/software/xml/developers/diffmk/ diff --git a/gradle/jdiff/jdiff.html b/gradle/jdiff/jdiff.html index 5c46f967b9e..d242fb8a495 100644 --- a/gradle/jdiff/jdiff.html +++ b/gradle/jdiff/jdiff.html @@ -7,10 +7,10 @@ - - +
+ JDiff Logo SourceForge Logo SourceForge Logo
@@ -21,7 +21,7 @@ width="88" height="31" border="0" alt="JDiff Logo">
JDiff is a Javadoc doclet which generates an +href="https://java.sun.com/j2se/javadoc">doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared. This is very useful @@ -312,7 +312,7 @@ the HTML output to the given directory. -javadocnew <javadoc files location for the new API>
The location of existing Javadoc files - for the new API, e.g. "http://java.sun.com/j2se/1.5.0/docs/api/" for the + for the new API, e.g. "https://java.sun.com/j2se/1.5.0/docs/api/" for the public documentation for J2SE1.5.0. The default value is "../", which implies that the documentation directory generated by Javadoc is at the same level as the "changes.html" file generated by JDiff. Slashes are always @@ -325,7 +325,7 @@ the HTML output to the given directory.
-javadocold <javadoc files location for the old API>
The location of existing - Javadoc files for the old API, e.g. "http://java.sun.com/j2se/1.5.0/docs/API/" + Javadoc files for the old API, e.g. "https://java.sun.com/j2se/1.5.0/docs/API/" for the public documentation for J2SE1.5.0. The default value is null, which results in no links to Javadoc-generated documentation for the previous release. Slashes are always forward in the argument, since this is an HTML @@ -426,7 +426,7 @@ the HTML output to the given directory. -showallchanges
If this argument is used, JDiff will show changes in - native and synchronized modifiers. See here for why these are not shown by default. + native and synchronized modifiers. See here for why these are not shown by default.
@@ -547,7 +547,7 @@ moved to the end of the file and placed inside XML comments.
The text which is added can be HTML text if necessary, but if the HTML is incorrect, JDiff may fail to read the comments file and exit. Note that - the required HTML is in fact XHTML. Since this HTML is stored in an XML document, single tags without their closing ("slash") element are not permitted. + the required HTML is in fact XHTML. Since this HTML is stored in an XML document, single tags without their closing ("slash") element are not permitted. For example, most browsers permit HTML which looks like "<p>Here is some text.", with no closing tag. XML requires that either a closing tag exists ("</p>"), or that the single tag is closed, e.g. "<p/>Here is some text.". @@ -988,7 +988,7 @@ it can tell you how the content has changed. Nor does it compare what the methods in an API do; if JDiff could tell you what had changed about the way two versions of an API execute, the Halting +href="https://en.wikipedia.org/wiki/Halting_Problem">Halting Problem would be solved, and our lives would be very different.
  • On a P3 450MHz machine, to scan all of the J2SE Java and javax packages and generate XML takes about 2 minutes @@ -1002,14 +1002,14 @@ per version. To generate a report from the XML files takes about 30s
  • diff --git a/import-into-idea.md b/import-into-idea.md index 942b71f5d32..1d555305c02 100644 --- a/import-into-idea.md +++ b/import-into-idea.md @@ -14,7 +14,7 @@ _Within your locally cloned spring-framework working directory:_ 1. `spring-core` and `spring-oxm` should be pre-compiled due to repackaged dependencies. See `*RepackJar` tasks in the build and https://youtrack.jetbrains.com/issue/IDEA-160605). 2. `spring-aspects` does not compile due to references to aspect types unknown to -IntelliJ IDEA. See http://youtrack.jetbrains.com/issue/IDEA-64446 for details. In the meantime, the +IntelliJ IDEA. See https://youtrack.jetbrains.com/issue/IDEA-64446 for details. In the meantime, the 'spring-aspects' can be excluded from the project to avoid compilation errors. 3. While JUnit tests pass from the command line with Gradle, some may fail when run from IntelliJ IDEA. Resolving this is a work in progress. If attempting to run all JUnit tests from within @@ -31,6 +31,6 @@ You'll notice these files are already intentionally in .gitignore. The same poli ## FAQ -Q. What about IntelliJ IDEA's own [Gradle support](http://confluence.jetbrains.net/display/IDEADEV/Gradle+integration)? +Q. What about IntelliJ IDEA's own [Gradle support](https://confluence.jetbrains.net/display/IDEADEV/Gradle+integration)? -A. Keep an eye on http://youtrack.jetbrains.com/issue/IDEA-53476 +A. Keep an eye on https://youtrack.jetbrains.com/issue/IDEA-53476 diff --git a/spring-aop/src/main/resources/org/springframework/aop/config/spring-aop.xsd b/spring-aop/src/main/resources/org/springframework/aop/config/spring-aop.xsd index 49cda9de8cd..0b669c9018e 100644 --- a/spring-aop/src/main/resources/org/springframework/aop/config/spring-aop.xsd +++ b/spring-aop/src/main/resources/org/springframework/aop/config/spring-aop.xsd @@ -7,8 +7,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + Kotlin docs + * @see Kotlin docs */ @SuppressWarnings("unchecked") @Nullable @@ -718,8 +718,8 @@ public abstract class BeanUtils { /** * Retrieve the Java constructor corresponding to the Kotlin primary constructor, if any. * @param clazz the {@link Class} of the Kotlin class - * @see - * http://kotlinlang.org/docs/reference/classes.html#constructors + * @see + * https://kotlinlang.org/docs/reference/classes.html#constructors */ @Nullable public static Constructor findPrimaryConstructor(Class clazz) { diff --git a/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java b/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java index fe137cc2840..3ca7fc95c7e 100644 --- a/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java +++ b/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java @@ -67,7 +67,7 @@ import org.springframework.util.ObjectUtils; * used within Spring {@code } XML. {@link #getPropertyDescriptors()} returns all * existing property descriptors from the wrapped {@code BeanInfo} as well any added for * non-void returning setters. Both standard ("non-indexed") and - * + * * indexed properties are fully supported. * * @author Chris Beams @@ -138,7 +138,7 @@ class ExtendedBeanInfo implements BeanInfo { } // Sort non-void returning write methods to guard against the ill effects of // non-deterministic sorting of methods returned from Class#getDeclaredMethods - // under JDK 7. See http://bugs.sun.com/view_bug.do?bug_id=7023180 + // under JDK 7. See https://bugs.java.com/view_bug.do?bug_id=7023180 matches.sort((m1, m2) -> m2.toString().compareTo(m1.toString())); return matches; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java index af4b006b1f1..48e391756ba 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java @@ -72,11 +72,11 @@ public abstract class YamlProcessor { * to properties before the match is made. E.g. *
     	 * environment: dev
    -	 * url: http://dev.bar.com
    +	 * url: https://dev.bar.com
     	 * name: Developer Setup
     	 * ---
     	 * environment: prod
    -	 * url:http://foo.bar.com
    +	 * url:https://foo.bar.com
     	 * name: My Cool App
     	 * 
    * when mapped with @@ -87,7 +87,7 @@ public abstract class YamlProcessor { * would end up as *
     	 * environment=prod
    -	 * url=http://foo.bar.com
    +	 * url=https://foo.bar.com
     	 * name=My Cool App
     	 * 
    */ diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBean.java index 2466db0dc3a..200f78c4c9f 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBean.java @@ -42,19 +42,19 @@ import org.springframework.lang.Nullable; *
      * environments:
      *   dev:
    - *     url: http://dev.bar.com
    + *     url: https://dev.bar.com
      *     name: Developer Setup
      *   prod:
    - *     url: http://foo.bar.com
    + *     url: https://foo.bar.com
      *     name: My Cool App
      * 
    * * is transformed into these properties: * *
    - * environments.dev.url=http://dev.bar.com
    + * environments.dev.url=https://dev.bar.com
      * 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
      * 
    * diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/package-info.java b/spring-beans/src/main/java/org/springframework/beans/factory/package-info.java index 4497650b455..a29b453f3ee 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/package-info.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/package-info.java @@ -6,7 +6,7 @@ * Builds on the org.springframework.beans package. * *

    This package and related packages are discussed in Chapter 11 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). */ @NonNullApi diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java index 956cdc8d537..250cd018905 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java @@ -1406,7 +1406,7 @@ public class BeanDefinitionParserDelegate { return decorated; } } - else if (namespaceUri.startsWith("http://www.springframework.org/")) { + else if (namespaceUri.startsWith("https://www.springframework.org/")) { error("Unable to locate Spring NamespaceHandler for XML schema namespace [" + namespaceUri + "]", node); } else { diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeansDtdResolver.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeansDtdResolver.java index a724a5d1cbe..e619a2abef2 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeansDtdResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeansDtdResolver.java @@ -35,7 +35,7 @@ import org.springframework.lang.Nullable; *

    Fetches "spring-beans.dtd" from the class path resource * "/org/springframework/beans/factory/xml/spring-beans.dtd", * no matter whether specified as some local URL that includes "spring-beans" - * in the DTD name or as "http://www.springframework.org/dtd/spring-beans-2.0.dtd". + * in the DTD name or as "https://www.springframework.org/dtd/spring-beans-2.0.dtd". * * @author Juergen Hoeller * @author Colin Sampaleanu diff --git a/spring-beans/src/main/java/org/springframework/beans/package-info.java b/spring-beans/src/main/java/org/springframework/beans/package-info.java index 6b8a3a7cba1..1bea8aea458 100644 --- a/spring-beans/src/main/java/org/springframework/beans/package-info.java +++ b/spring-beans/src/main/java/org/springframework/beans/package-info.java @@ -6,7 +6,7 @@ * singly or in bulk. * *

    The classes in this package are discussed in Chapter 11 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). */ @NonNullApi diff --git a/spring-beans/src/main/resources/org/springframework/beans/factory/xml/spring-beans.dtd b/spring-beans/src/main/resources/org/springframework/beans/factory/xml/spring-beans.dtd index f87b775a0eb..42f487cfeb3 100644 --- a/spring-beans/src/main/resources/org/springframework/beans/factory/xml/spring-beans.dtd +++ b/spring-beans/src/main/resources/org/springframework/beans/factory/xml/spring-beans.dtd @@ -34,7 +34,7 @@ XML documents that conform to this DTD should declare the following doctype: + "https://www.springframework.org/dtd/spring-beans-2.0.dtd"> --> diff --git a/spring-beans/src/main/resources/org/springframework/beans/factory/xml/spring-util.xsd b/spring-beans/src/main/resources/org/springframework/beans/factory/xml/spring-util.xsd index ec64e9e4c96..533a0c3a8de 100644 --- a/spring-beans/src/main/resources/org/springframework/beans/factory/xml/spring-util.xsd +++ b/spring-beans/src/main/resources/org/springframework/beans/factory/xml/spring-util.xsd @@ -8,8 +8,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + diff --git a/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java b/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java index 5099a6cec7a..8dc92e7eec1 100644 --- a/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/ExtendedBeanInfoTests.java @@ -572,7 +572,7 @@ public class ExtendedBeanInfoTests { * IntrospectionException regarding a "type mismatch between indexed and non-indexed * methods" intermittently (approximately one out of every four times) under JDK 7 * due to non-deterministic results from {@link Class#getDeclaredMethods()}. - * See http://bugs.sun.com/view_bug.do?bug_id=7023180 + * See https://bugs.java.com/view_bug.do?bug_id=7023180 * @see #cornerSpr9702() */ @Test diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java index b6ae64a7cb5..3297291ace9 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/DefaultListableBeanFactoryTests.java @@ -1680,7 +1680,7 @@ public class DefaultListableBeanFactoryTests { /** * Verifies that a dependency on a {@link FactoryBean} can be autowired * by type, specifically addressing the JIRA issue raised in SPR-4040. */ @Test diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessorTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessorTests.java index 39064211150..c37577ad18d 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessorTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessorTests.java @@ -1445,7 +1445,7 @@ public class AutowiredAnnotationBeanPostProcessorTests { * Verifies that a dependency on a {@link FactoryBean} can be autowired via * {@link Autowired @Autowired}, specifically addressing the JIRA issue * raised in SPR-4040. */ @Test diff --git a/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java b/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java index ce52b514b57..2885b1c521f 100644 --- a/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/factory/support/BeanFactoryGenericsTests.java @@ -651,7 +651,7 @@ public class BeanFactoryGenericsTests { new ClassPathResource("genericBeanTests.xml", getClass())); UrlSet us = (UrlSet) bf.getBean("setBean"); assertEquals(1, us.size()); - assertEquals(new URL("http://www.springframework.org"), us.iterator().next()); + assertEquals(new URL("https://www.springframework.org"), us.iterator().next()); } /** diff --git a/spring-beans/src/test/java/org/springframework/beans/propertyeditors/URIEditorTests.java b/spring-beans/src/test/java/org/springframework/beans/propertyeditors/URIEditorTests.java index fe74f41d588..dc04ed6e6db 100644 --- a/spring-beans/src/test/java/org/springframework/beans/propertyeditors/URIEditorTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/propertyeditors/URIEditorTests.java @@ -43,22 +43,22 @@ public class URIEditorTests { @Test public void standardURL() throws Exception { - doTestURI("http://www.springframework.org"); + doTestURI("https://www.springframework.org"); } @Test public void standardURLWithFragment() throws Exception { - doTestURI("http://www.springframework.org#1"); + doTestURI("https://www.springframework.org#1"); } @Test public void standardURLWithWhitespace() throws Exception { PropertyEditor uriEditor = new URIEditor(); - uriEditor.setAsText(" http://www.springframework.org "); + uriEditor.setAsText(" https://www.springframework.org "); Object value = uriEditor.getValue(); assertTrue(value instanceof URI); URI uri = (URI) value; - assertEquals("http://www.springframework.org", uri.toString()); + assertEquals("https://www.springframework.org", uri.toString()); } @Test @@ -113,23 +113,23 @@ public class URIEditorTests { @Test public void encodeURI() throws Exception { PropertyEditor uriEditor = new URIEditor(); - uriEditor.setAsText("http://example.com/spaces and \u20AC"); + uriEditor.setAsText("https://example.com/spaces and \u20AC"); Object value = uriEditor.getValue(); assertTrue(value instanceof URI); URI uri = (URI) value; assertEquals(uri.toString(), uriEditor.getAsText()); - assertEquals("http://example.com/spaces%20and%20%E2%82%AC", uri.toASCIIString()); + assertEquals("https://example.com/spaces%20and%20%E2%82%AC", uri.toASCIIString()); } @Test public void encodeAlreadyEncodedURI() throws Exception { PropertyEditor uriEditor = new URIEditor(false); - uriEditor.setAsText("http://example.com/spaces%20and%20%E2%82%AC"); + uriEditor.setAsText("https://example.com/spaces%20and%20%E2%82%AC"); Object value = uriEditor.getValue(); assertTrue(value instanceof URI); URI uri = (URI) value; assertEquals(uri.toString(), uriEditor.getAsText()); - assertEquals("http://example.com/spaces%20and%20%E2%82%AC", uri.toASCIIString()); + assertEquals("https://example.com/spaces%20and%20%E2%82%AC", uri.toASCIIString()); } diff --git a/spring-beans/src/test/java/org/springframework/beans/propertyeditors/URLEditorTests.java b/spring-beans/src/test/java/org/springframework/beans/propertyeditors/URLEditorTests.java index ffb1e23c55d..eac067eda16 100644 --- a/spring-beans/src/test/java/org/springframework/beans/propertyeditors/URLEditorTests.java +++ b/spring-beans/src/test/java/org/springframework/beans/propertyeditors/URLEditorTests.java @@ -49,7 +49,7 @@ public class URLEditorTests { @Test public void testStandardURL() throws Exception { PropertyEditor urlEditor = new URLEditor(); - urlEditor.setAsText("http://www.springframework.org"); + urlEditor.setAsText("https://www.springframework.org"); Object value = urlEditor.getValue(); assertTrue(value instanceof URL); URL url = (URL) value; diff --git a/spring-context-support/src/main/java/org/springframework/cache/ehcache/package-info.java b/spring-context-support/src/main/java/org/springframework/cache/ehcache/package-info.java index 00c29fcf6cd..f9d54992b28 100644 --- a/spring-context-support/src/main/java/org/springframework/cache/ehcache/package-info.java +++ b/spring-context-support/src/main/java/org/springframework/cache/ehcache/package-info.java @@ -1,6 +1,6 @@ /** * Support classes for the open source cache - * EhCache 2.x, + * EhCache 2.x, * allowing to set up an EhCache CacheManager and Caches * as beans in a Spring context. * diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java index 2b2fec4528e..1ea2d5df22a 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/MethodInvokingJobDetailFactoryBean.java @@ -123,7 +123,7 @@ public class MethodInvokingJobDetailFactoryBean extends ArgumentConvertingMethod * realized through adding the {@code @PersistJobDataAfterExecution} and * {@code @DisallowConcurrentExecution} markers. * More information on stateful versus stateless jobs can be found - * here. + * here. *

    The default setting is to run jobs concurrently. */ public void setConcurrent(boolean concurrent) { diff --git a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/package-info.java b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/package-info.java index 67dda7af026..14f90bc2b84 100644 --- a/spring-context-support/src/main/java/org/springframework/scheduling/quartz/package-info.java +++ b/spring-context-support/src/main/java/org/springframework/scheduling/quartz/package-info.java @@ -1,6 +1,6 @@ /** * Support classes for the open source scheduler - * Quartz, + * Quartz, * allowing to set up Quartz Schedulers, JobDetails and * Triggers as beans in a Spring context. Also provides * convenience classes for implementing Quartz Jobs. diff --git a/spring-context-support/src/main/java/org/springframework/ui/freemarker/package-info.java b/spring-context-support/src/main/java/org/springframework/ui/freemarker/package-info.java index d8e8aea516c..fc975ef366a 100644 --- a/spring-context-support/src/main/java/org/springframework/ui/freemarker/package-info.java +++ b/spring-context-support/src/main/java/org/springframework/ui/freemarker/package-info.java @@ -1,6 +1,6 @@ /** * Support classes for setting up - * FreeMarker + * FreeMarker * within a Spring application context. */ @NonNullApi diff --git a/spring-context-support/src/main/resources/org/springframework/mail/javamail/mime.types b/spring-context-support/src/main/resources/org/springframework/mail/javamail/mime.types index 02df20fb4a4..4865b4748f1 100644 --- a/spring-context-support/src/main/resources/org/springframework/mail/javamail/mime.types +++ b/spring-context-support/src/main/resources/org/springframework/mail/javamail/mime.types @@ -48,7 +48,7 @@ video/x-msvideo avi ################################################################################ # # Additional file types adapted from -# http://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html +# https://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html # kindly re-licensed to Apache Software License 2.0 by Ian Graham. # ################################################################################ diff --git a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheProxyFactoryBean.java b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheProxyFactoryBean.java index 55daf6622b9..c9c3c8ceff4 100644 --- a/spring-context/src/main/java/org/springframework/cache/interceptor/CacheProxyFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/cache/interceptor/CacheProxyFactoryBean.java @@ -35,7 +35,7 @@ import org.springframework.cache.CacheManager; * target implements. Exists primarily for third-party framework integration. * Users should favor the {@code cache:} XML namespace * {@link org.springframework.cache.annotation.Cacheable @Cacheable} annotation. - * See the declarative annotation-based caching section + * See the declarative annotation-based caching section * of the Spring reference documentation for more information. * * @author Costin Leau diff --git a/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java b/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java index 6e8a28a1c54..0fbbe69bb56 100644 --- a/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java +++ b/spring-context/src/main/java/org/springframework/context/support/SimpleThreadScope.java @@ -42,7 +42,7 @@ import org.springframework.lang.Nullable; * *

    For an implementation of a thread-based {@code Scope} with support for destruction * callbacks, refer to - * Spring by Example. + * Spring by Example. * *

    Thanks to Eugene Kuleshov for submitting the original prototype for a thread scope! * diff --git a/spring-context/src/main/java/org/springframework/ejb/access/package-info.java b/spring-context/src/main/java/org/springframework/ejb/access/package-info.java index 96186f68124..8d4b9e14f06 100644 --- a/spring-context/src/main/java/org/springframework/ejb/access/package-info.java +++ b/spring-context/src/main/java/org/springframework/ejb/access/package-info.java @@ -12,7 +12,7 @@ * affecting code using business objects. * *

    The motivation for the classes in this package are discussed in Chapter 11 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). * *

    However, the implementation and naming of classes in this package has changed. diff --git a/spring-context/src/main/java/org/springframework/jmx/support/WebSphereMBeanServerFactoryBean.java b/spring-context/src/main/java/org/springframework/jmx/support/WebSphereMBeanServerFactoryBean.java index 6518aa5a5bd..6ef7d716782 100644 --- a/spring-context/src/main/java/org/springframework/jmx/support/WebSphereMBeanServerFactoryBean.java +++ b/spring-context/src/main/java/org/springframework/jmx/support/WebSphereMBeanServerFactoryBean.java @@ -35,8 +35,8 @@ import org.springframework.lang.Nullable; * which uses standard JMX 1.2 API to access the platform's MBeanServer. * *

    See the javadocs for WebSphere's - * {@code AdminServiceFactory} - * and {@code MBeanFactory}. + * {@code AdminServiceFactory} + * and {@code MBeanFactory}. * * @author Juergen Hoeller * @author Rob Harrop diff --git a/spring-context/src/main/java/org/springframework/jndi/JndiPropertySource.java b/spring-context/src/main/java/org/springframework/jndi/JndiPropertySource.java index e43d7d192ea..88a4aa4c06f 100644 --- a/spring-context/src/main/java/org/springframework/jndi/JndiPropertySource.java +++ b/spring-context/src/main/java/org/springframework/jndi/JndiPropertySource.java @@ -29,7 +29,7 @@ import org.springframework.lang.Nullable; * {@link JndiLocatorDelegate#setResourceRef(boolean) "resourceRef"} property set to * {@code true}, meaning that names looked up will automatically be prefixed with * "java:comp/env/" in alignment with published - * JNDI + * JNDI * naming conventions. To override this setting or to change the prefix, manually * configure a {@code JndiLocatorDelegate} and provide it to one of the constructors here * that accepts it. The same applies when providing custom JNDI properties. These should diff --git a/spring-context/src/main/java/org/springframework/jndi/package-info.java b/spring-context/src/main/java/org/springframework/jndi/package-info.java index 927fb3bbfce..75ab5dc9006 100644 --- a/spring-context/src/main/java/org/springframework/jndi/package-info.java +++ b/spring-context/src/main/java/org/springframework/jndi/package-info.java @@ -4,7 +4,7 @@ * and provide useful superclasses for JNDI access classes. * *

    The classes in this package are discussed in Chapter 11 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). */ @NonNullApi diff --git a/spring-context/src/main/java/org/springframework/scheduling/support/CronSequenceGenerator.java b/spring-context/src/main/java/org/springframework/scheduling/support/CronSequenceGenerator.java index 039a0a9fb8e..3048b680ff4 100644 --- a/spring-context/src/main/java/org/springframework/scheduling/support/CronSequenceGenerator.java +++ b/spring-context/src/main/java/org/springframework/scheduling/support/CronSequenceGenerator.java @@ -30,7 +30,7 @@ import org.springframework.util.StringUtils; /** * Date sequence generator for a - * Crontab pattern, + * Crontab pattern, * allowing clients to specify a pattern that the sequence matches. * *

    The pattern is a list of six single space-separated fields: representing diff --git a/spring-context/src/main/java/org/springframework/scripting/bsh/package-info.java b/spring-context/src/main/java/org/springframework/scripting/bsh/package-info.java index 5c3ac8cb517..e35849de523 100644 --- a/spring-context/src/main/java/org/springframework/scripting/bsh/package-info.java +++ b/spring-context/src/main/java/org/springframework/scripting/bsh/package-info.java @@ -1,7 +1,7 @@ /** * Package providing integration of * BeanShell - * (and BeanShell2) + * (and BeanShell2) * into Spring's scripting infrastructure. */ @NonNullApi diff --git a/spring-context/src/main/resources/org/springframework/cache/config/spring-cache.xsd b/spring-context/src/main/resources/org/springframework/cache/config/spring-cache.xsd index 16cbd776950..e72012c6bfa 100644 --- a/spring-context/src/main/resources/org/springframework/cache/config/spring-cache.xsd +++ b/spring-context/src/main/resources/org/springframework/cache/config/spring-cache.xsd @@ -8,8 +8,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + - - + + - - + + - - + + diff --git a/spring-context/src/main/resources/org/springframework/scripting/config/spring-lang.xsd b/spring-context/src/main/resources/org/springframework/scripting/config/spring-lang.xsd index bbbf6598e2c..dbb83ddf18c 100644 --- a/spring-context/src/main/resources/org/springframework/scripting/config/spring-lang.xsd +++ b/spring-context/src/main/resources/org/springframework/scripting/config/spring-lang.xsd @@ -15,8 +15,8 @@ ]]> - - + + diff --git a/spring-context/src/test/java/org/springframework/context/annotation/Spr3775InitDestroyLifecycleTests.java b/spring-context/src/test/java/org/springframework/context/annotation/Spr3775InitDestroyLifecycleTests.java index 6c83f3cc37c..d67edec3627 100644 --- a/spring-context/src/test/java/org/springframework/context/annotation/Spr3775InitDestroyLifecycleTests.java +++ b/spring-context/src/test/java/org/springframework/context/annotation/Spr3775InitDestroyLifecycleTests.java @@ -38,7 +38,7 @@ import static org.junit.Assert.*; *

    * JUnit-3.8-based unit test which verifies expected init and * destroy bean lifecycle behavior as requested in SPR-3775. *

    *

    diff --git a/spring-context/src/test/java/org/springframework/jmx/AbstractMBeanServerTests.java b/spring-context/src/test/java/org/springframework/jmx/AbstractMBeanServerTests.java index 9e3e239ffe4..9a36d73d9be 100644 --- a/spring-context/src/test/java/org/springframework/jmx/AbstractMBeanServerTests.java +++ b/spring-context/src/test/java/org/springframework/jmx/AbstractMBeanServerTests.java @@ -42,7 +42,7 @@ import static org.junit.Assert.*; * {@code -DtestGroups=jmxmp}). * *

    If you run into the "Unsupported protocol: jmxmp" error, you will need to - * download the JMX + * download the JMX * Remote API 1.0.1_04 Reference Implementation from Oracle and extract * {@code jmxremote_optional.jar} into your classpath, for example in the {@code lib/ext} * folder of your JVM. diff --git a/spring-context/src/test/java/org/springframework/jmx/export/assembler/MethodExclusionMBeanInfoAssemblerTests.java b/spring-context/src/test/java/org/springframework/jmx/export/assembler/MethodExclusionMBeanInfoAssemblerTests.java index 395b106701d..f8fbdd64e9c 100644 --- a/spring-context/src/test/java/org/springframework/jmx/export/assembler/MethodExclusionMBeanInfoAssemblerTests.java +++ b/spring-context/src/test/java/org/springframework/jmx/export/assembler/MethodExclusionMBeanInfoAssemblerTests.java @@ -74,7 +74,7 @@ public class MethodExclusionMBeanInfoAssemblerTests extends AbstractJmxAssembler } /* - * http://opensource.atlassian.com/projects/spring/browse/SPR-2754 + * https://opensource.atlassian.com/projects/spring/browse/SPR-2754 */ @Test public void testIsNotIgnoredDoesntIgnoreUnspecifiedBeanMethods() throws Exception { diff --git a/spring-core/src/main/java/org/springframework/asm/package-info.java b/spring-core/src/main/java/org/springframework/asm/package-info.java index 692090839bc..6e8aa8a41b7 100644 --- a/spring-core/src/main/java/org/springframework/asm/package-info.java +++ b/spring-core/src/main/java/org/springframework/asm/package-info.java @@ -1,6 +1,6 @@ /** * Spring's repackaging of - * ASM 6.0 + * ASM 6.0 * (with Spring-specific patches; for internal use only). * *

    This repackaging technique avoids any potential conflicts with diff --git a/spring-core/src/main/java/org/springframework/core/BridgeMethodResolver.java b/spring-core/src/main/java/org/springframework/core/BridgeMethodResolver.java index 8c16a2e8e69..e53b544d47b 100644 --- a/spring-core/src/main/java/org/springframework/core/BridgeMethodResolver.java +++ b/spring-core/src/main/java/org/springframework/core/BridgeMethodResolver.java @@ -37,7 +37,7 @@ import org.springframework.util.ReflectionUtils; * When attempting to locate annotations on {@link Method Methods}, it is wise to check * for bridge {@link Method Methods} as appropriate and find the bridged {@link Method}. * - *

    See + *

    See * The Java Language Specification for more details on the use of bridge methods. * * @author Rob Harrop @@ -223,8 +223,8 @@ public abstract class BridgeMethodResolver { /** * Compare the signatures of the bridge method and the method which it bridges. If * the parameter and return types are the same, it is a 'visibility' bridge method - * introduced in Java 6 to fix http://bugs.sun.com/view_bug.do?bug_id=6342411. - * See also http://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html + * introduced in Java 6 to fix https://bugs.java.com/view_bug.do?bug_id=6342411. + * See also https://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html * @return whether signatures match as described */ public static boolean isVisibilityBridgeMethodPair(Method bridgeMethod, Method bridgedMethod) { diff --git a/spring-core/src/main/java/org/springframework/core/ParameterizedTypeReference.java b/spring-core/src/main/java/org/springframework/core/ParameterizedTypeReference.java index b351c17d24e..50056707b73 100644 --- a/spring-core/src/main/java/org/springframework/core/ParameterizedTypeReference.java +++ b/spring-core/src/main/java/org/springframework/core/ParameterizedTypeReference.java @@ -37,7 +37,7 @@ import org.springframework.util.Assert; * @author Arjen Poutsma * @author Rossen Stoyanchev * @since 3.2 - * @see Neal Gafter on Super Type Tokens + * @see Neal Gafter on Super Type Tokens */ public abstract class ParameterizedTypeReference { diff --git a/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java b/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java index bd8e6e0f4bd..6aac0f0b937 100644 --- a/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java +++ b/spring-core/src/main/java/org/springframework/util/AntPathMatcher.java @@ -30,7 +30,7 @@ import org.springframework.lang.Nullable; /** * {@link PathMatcher} implementation for Ant-style path patterns. * - *

    Part of this mapping code has been kindly borrowed from Apache Ant. + *

    Part of this mapping code has been kindly borrowed from Apache Ant. * *

    The mapping matches URLs using the following rules:
    *

      diff --git a/spring-core/src/main/java/org/springframework/util/Assert.java b/spring-core/src/main/java/org/springframework/util/Assert.java index 2827cd43503..936ec4660f6 100644 --- a/spring-core/src/main/java/org/springframework/util/Assert.java +++ b/spring-core/src/main/java/org/springframework/util/Assert.java @@ -46,7 +46,7 @@ import org.springframework.lang.Nullable; * Assert.isTrue(i > 0, "The value must be greater than zero"); * *

      Mainly for internal use within the framework; consider - * Apache's Commons Lang + * Apache's Commons Lang * for a more comprehensive suite of {@code String} utilities. * * @author Keith Donald diff --git a/spring-core/src/main/java/org/springframework/util/DigestUtils.java b/spring-core/src/main/java/org/springframework/util/DigestUtils.java index 7ca8658a38d..0be01a502c1 100644 --- a/spring-core/src/main/java/org/springframework/util/DigestUtils.java +++ b/spring-core/src/main/java/org/springframework/util/DigestUtils.java @@ -25,7 +25,7 @@ import java.security.NoSuchAlgorithmException; * Miscellaneous methods for calculating digests. * *

      Mainly for internal use within the framework; consider - * Apache Commons Codec + * Apache Commons Codec * for a more comprehensive suite of digest utilities. * * @author Arjen Poutsma diff --git a/spring-core/src/main/java/org/springframework/util/MimeType.java b/spring-core/src/main/java/org/springframework/util/MimeType.java index 76390836ccf..f4a7c18e3f5 100644 --- a/spring-core/src/main/java/org/springframework/util/MimeType.java +++ b/spring-core/src/main/java/org/springframework/util/MimeType.java @@ -190,7 +190,7 @@ public class MimeType implements Comparable, Serializable { * Checks the given token string for illegal characters, as defined in RFC 2616, * section 2.2. * @throws IllegalArgumentException in case of illegal characters - * @see HTTP 1.1, section 2.2 + * @see HTTP 1.1, section 2.2 */ private void checkToken(String token) { for (int i = 0; i < token.length(); i++ ) { diff --git a/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java b/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java index 7dbc8c1df49..25ff4717c1c 100644 --- a/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java +++ b/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java @@ -305,7 +305,7 @@ public abstract class MimeTypeUtils { *

      audio/basic == text/html
      audio/basic == * audio/wave
      * @param mimeTypes the list of mime types to be sorted - * @see HTTP 1.1: Semantics + * @see HTTP 1.1: Semantics * and Content, section 5.3.2 */ public static void sortBySpecificity(List mimeTypes) { diff --git a/spring-core/src/main/java/org/springframework/util/StringUtils.java b/spring-core/src/main/java/org/springframework/util/StringUtils.java index cd8ea77224a..215653ba9bc 100644 --- a/spring-core/src/main/java/org/springframework/util/StringUtils.java +++ b/spring-core/src/main/java/org/springframework/util/StringUtils.java @@ -39,7 +39,7 @@ import org.springframework.lang.Nullable; * Miscellaneous {@link String} utility methods. * *

      Mainly for internal use within the framework; consider - * Apache's Commons Lang + * Apache's Commons Lang * for a more comprehensive suite of {@code String} utilities. * *

      This class delivers some simple functionality that should really be diff --git a/spring-core/src/main/java/org/springframework/util/xml/TransformerUtils.java b/spring-core/src/main/java/org/springframework/util/xml/TransformerUtils.java index 7f04c9cfc97..498e1c2bff3 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/TransformerUtils.java +++ b/spring-core/src/main/java/org/springframework/util/xml/TransformerUtils.java @@ -67,7 +67,7 @@ public abstract class TransformerUtils { transformer.setOutputProperty(OutputKeys.INDENT, "yes"); try { // Xalan-specific, but this is the most common XSLT engine in any case - transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", String.valueOf(indentAmount)); + transformer.setOutputProperty("{https://xml.apache.org/xslt}indent-amount", String.valueOf(indentAmount)); } catch (IllegalArgumentException ignored) { } diff --git a/spring-core/src/test/java/org/springframework/core/env/StandardEnvironmentTests.java b/spring-core/src/test/java/org/springframework/core/env/StandardEnvironmentTests.java index c5d272bea22..8944bfff095 100644 --- a/spring-core/src/test/java/org/springframework/core/env/StandardEnvironmentTests.java +++ b/spring-core/src/test/java/org/springframework/core/env/StandardEnvironmentTests.java @@ -396,12 +396,12 @@ public class StandardEnvironmentTests { SecurityManager securityManager = new SecurityManager() { @Override public void checkPropertiesAccess() { - // see http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getProperties() + // see https://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getProperties() throw new AccessControlException("Accessing the system properties is disallowed"); } @Override public void checkPropertyAccess(String key) { - // see http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getProperty(java.lang.String) + // see https://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getProperty(java.lang.String) if (DISALLOWED_PROPERTY_NAME.equals(key)) { throw new AccessControlException( String.format("Accessing the system property [%s] is disallowed", DISALLOWED_PROPERTY_NAME)); @@ -463,11 +463,11 @@ public class StandardEnvironmentTests { SecurityManager securityManager = new SecurityManager() { @Override public void checkPermission(Permission perm) { - //see http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getenv() + //see https://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getenv() if ("getenv.*".equals(perm.getName())) { throw new AccessControlException("Accessing the system environment is disallowed"); } - //see http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getenv(java.lang.String) + //see https://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html#getenv(java.lang.String) if (("getenv."+DISALLOWED_PROPERTY_NAME).equals(perm.getName())) { throw new AccessControlException( String.format("Accessing the system environment variable [%s] is disallowed", DISALLOWED_PROPERTY_NAME)); diff --git a/spring-core/src/test/java/org/springframework/core/io/ResourceTests.java b/spring-core/src/test/java/org/springframework/core/io/ResourceTests.java index 0b05f07b560..c9ee936d7ba 100644 --- a/spring-core/src/test/java/org/springframework/core/io/ResourceTests.java +++ b/spring-core/src/test/java/org/springframework/core/io/ResourceTests.java @@ -187,7 +187,7 @@ public class ResourceTests { @Ignore @Test // this test is quite slow. TODO: re-enable with JUnit categories public void testNonFileResourceExists() throws Exception { - Resource resource = new UrlResource("http://www.springframework.org"); + Resource resource = new UrlResource("https://www.springframework.org"); assertTrue(resource.exists()); } diff --git a/spring-core/src/test/java/org/springframework/util/AntPathMatcherTests.java b/spring-core/src/test/java/org/springframework/util/AntPathMatcherTests.java index 9d0c6e21c5d..9d5082a1fd7 100644 --- a/spring-core/src/test/java/org/springframework/util/AntPathMatcherTests.java +++ b/spring-core/src/test/java/org/springframework/util/AntPathMatcherTests.java @@ -53,7 +53,7 @@ public class AntPathMatcherTests { // test exact matching assertTrue(pathMatcher.match("test", "test")); assertTrue(pathMatcher.match("/test", "/test")); - assertTrue(pathMatcher.match("http://example.org", "http://example.org")); // SPR-14141 + assertTrue(pathMatcher.match("https://example.org", "https://example.org")); // SPR-14141 assertFalse(pathMatcher.match("/test.jpg", "test.jpg")); assertFalse(pathMatcher.match("test", "/test")); assertFalse(pathMatcher.match("/test", "test")); diff --git a/spring-core/src/test/java/org/springframework/util/MimeTypeTests.java b/spring-core/src/test/java/org/springframework/util/MimeTypeTests.java index 5755bf9f526..84d1b9b57c4 100644 --- a/spring-core/src/test/java/org/springframework/util/MimeTypeTests.java +++ b/spring-core/src/test/java/org/springframework/util/MimeTypeTests.java @@ -89,12 +89,12 @@ public class MimeTypeTests { @Test public void parseQuotedSeparator() { - String s = "application/xop+xml;charset=utf-8;type=\"application/soap+xml;action=\\\"http://x.y.z\\\"\""; + String s = "application/xop+xml;charset=utf-8;type=\"application/soap+xml;action=\\\"https://x.y.z\\\"\""; MimeType mimeType = MimeType.valueOf(s); assertEquals("Invalid type", "application", mimeType.getType()); assertEquals("Invalid subtype", "xop+xml", mimeType.getSubtype()); assertEquals("Invalid charset", StandardCharsets.UTF_8, mimeType.getCharset()); - assertEquals("\"application/soap+xml;action=\\\"http://x.y.z\\\"\"", mimeType.getParameter("type")); + assertEquals("\"application/soap+xml;action=\\\"https://x.y.z\\\"\"", mimeType.getParameter("type")); } @Test diff --git a/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxHandlerTestCase.java b/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxHandlerTestCase.java index 5b01d9a2353..b2500f34903 100644 --- a/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxHandlerTestCase.java +++ b/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxHandlerTestCase.java @@ -46,7 +46,7 @@ public abstract class AbstractStaxHandlerTestCase { private static final String COMPLEX_XML = "" + - "" + + "" + "characters " + "" + ""; diff --git a/spring-core/src/test/java/org/springframework/util/xml/SimpleNamespaceContextTests.java b/spring-core/src/test/java/org/springframework/util/xml/SimpleNamespaceContextTests.java index 70bf75abb68..57e04bb62c8 100644 --- a/spring-core/src/test/java/org/springframework/util/xml/SimpleNamespaceContextTests.java +++ b/spring-core/src/test/java/org/springframework/util/xml/SimpleNamespaceContextTests.java @@ -50,7 +50,7 @@ public class SimpleNamespaceContextTests { @Test public void getNamespaceURI() { context.bindNamespaceUri(XMLConstants.XMLNS_ATTRIBUTE, additionalNamespaceUri); - assertThat("Always returns \"http://www.w3.org/2000/xmlns/\" for \"xmlns\"", + assertThat("Always returns \"https://www.w3.org/2000/xmlns/\" for \"xmlns\"", context.getNamespaceURI(XMLConstants.XMLNS_ATTRIBUTE), is(XMLConstants.XMLNS_ATTRIBUTE_NS_URI)); context.bindNamespaceUri(XMLConstants.XML_NS_PREFIX, additionalNamespaceUri); assertThat("Always returns \"http://www.w3.org/XML/1998/namespace\" for \"xml\"", @@ -76,7 +76,7 @@ public class SimpleNamespaceContextTests { @Test public void getPrefix() { - assertThat("Always returns \"xmlns\" for \"http://www.w3.org/2000/xmlns/\"", + assertThat("Always returns \"xmlns\" for \"https://www.w3.org/2000/xmlns/\"", context.getPrefix(XMLConstants.XMLNS_ATTRIBUTE_NS_URI), is(XMLConstants.XMLNS_ATTRIBUTE)); assertThat("Always returns \"xml\" for \"http://www.w3.org/XML/1998/namespace\"", context.getPrefix(XMLConstants.XML_NS_URI), is(XMLConstants.XML_NS_PREFIX)); @@ -103,7 +103,7 @@ public class SimpleNamespaceContextTests { @Test public void getPrefixes() { - assertThat("Returns only \"xmlns\" for \"http://www.w3.org/2000/xmlns/\"", + assertThat("Returns only \"xmlns\" for \"https://www.w3.org/2000/xmlns/\"", getItemSet(context.getPrefixes(XMLConstants.XMLNS_ATTRIBUTE_NS_URI)), is(makeSet(XMLConstants.XMLNS_ATTRIBUTE))); assertThat("Returns only \"xml\" for \"http://www.w3.org/XML/1998/namespace\"", diff --git a/spring-core/src/test/java/org/springframework/util/xml/TransformerUtilsTests.java b/spring-core/src/test/java/org/springframework/util/xml/TransformerUtilsTests.java index 119ac7b9607..4fe5e1f6e70 100644 --- a/spring-core/src/test/java/org/springframework/util/xml/TransformerUtilsTests.java +++ b/spring-core/src/test/java/org/springframework/util/xml/TransformerUtilsTests.java @@ -42,7 +42,7 @@ public class TransformerUtilsTests { String indent = transformer.getOutputProperty(OutputKeys.INDENT); assertNotNull(indent); assertEquals("yes", indent); - String indentAmount = transformer.getOutputProperty("{http://xml.apache.org/xslt}indent-amount"); + String indentAmount = transformer.getOutputProperty("{https://xml.apache.org/xslt}indent-amount"); assertNotNull(indentAmount); assertEquals(String.valueOf(TransformerUtils.DEFAULT_INDENT_AMOUNT), indentAmount); } @@ -55,7 +55,7 @@ public class TransformerUtilsTests { String indent = transformer.getOutputProperty(OutputKeys.INDENT); assertNotNull(indent); assertEquals("yes", indent); - String indentAmount = transformer.getOutputProperty("{http://xml.apache.org/xslt}indent-amount"); + String indentAmount = transformer.getOutputProperty("{https://xml.apache.org/xslt}indent-amount"); assertNotNull(indentAmount); assertEquals(indentAmountProperty, indentAmount); } diff --git a/spring-expression/readme.txt b/spring-expression/readme.txt index f374935be6c..ea0720e5961 100644 --- a/spring-expression/readme.txt +++ b/spring-expression/readme.txt @@ -31,7 +31,7 @@ Syntax - Need to agree on a standard date format for 'default' processing of dates. Currently it is: formatter = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss z", Locale.UK); // this is something of this format: "Wed, 4 Jul 2001 12:08:56 GMT" - // http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html + // https://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html - See LiteralTests for Date (4,5,6) - should date take an expression rather than be hardcoded in the grammar to take 2 strings only? - when doing arithmetic, eg. 8.4 / 4 and the user asks for an Integer return type - do we silently coerce or diff --git a/spring-expression/src/main/java/org/springframework/expression/spel/ast/OpMultiply.java b/spring-expression/src/main/java/org/springframework/expression/spel/ast/OpMultiply.java index bb53469a239..c8607879a87 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/OpMultiply.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/OpMultiply.java @@ -32,7 +32,7 @@ import org.springframework.util.NumberUtils; * Implements the {@code multiply} operator. * *

      Conversions and promotions are handled as defined in - * Section 5.6.2 of the + * Section 5.6.2 of the * Java Language Specification, with the addiction of {@code BigDecimal}/{@code BigInteger} management: * *

      If any of the operands is of a reference type, unboxing conversion (Section 5.1.8) diff --git a/spring-jcl/src/main/java/org/apache/commons/logging/impl/package-info.java b/spring-jcl/src/main/java/org/apache/commons/logging/impl/package-info.java index e8f429e2915..b06abd68edf 100644 --- a/spring-jcl/src/main/java/org/apache/commons/logging/impl/package-info.java +++ b/spring-jcl/src/main/java/org/apache/commons/logging/impl/package-info.java @@ -1,6 +1,6 @@ /** * Spring's variant of the - * Commons Logging API: + * Commons Logging API: * with special support for Log4J 2, SLF4J and {@code java.util.logging}. * *

      This {@code impl} package is only present for binary compatibility diff --git a/spring-jcl/src/main/java/org/apache/commons/logging/package-info.java b/spring-jcl/src/main/java/org/apache/commons/logging/package-info.java index 749d860cc41..cbf63edfff6 100644 --- a/spring-jcl/src/main/java/org/apache/commons/logging/package-info.java +++ b/spring-jcl/src/main/java/org/apache/commons/logging/package-info.java @@ -1,6 +1,6 @@ /** * Spring's variant of the - * Commons Logging API: + * Commons Logging API: * with special support for Log4J 2, SLF4J and {@code java.util.logging}. * *

      This is a custom bridge along the lines of {@code jcl-over-slf4j}. diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DriverManagerDataSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DriverManagerDataSource.java index c23f8d83c49..2cc72789a6b 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DriverManagerDataSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DriverManagerDataSource.java @@ -53,8 +53,8 @@ import org.springframework.util.ClassUtils; * bean definition to a local DataSource (which is simpler and thus recommended). * *

      If you need a "real" connection pool outside of a Java EE container, consider - * Apache Commons DBCP - * or C3P0. + * Apache Commons DBCP + * or C3P0. * Commons DBCP's BasicDataSource and C3P0's ComboPooledDataSource are full * connection pool beans, supporting the same basic properties as this class * plus specific settings (such as minimal/maximal pool size etc). diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SimpleDriverDataSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SimpleDriverDataSource.java index 1c9cdc7a331..975d2ffbe63 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SimpleDriverDataSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SimpleDriverDataSource.java @@ -41,8 +41,8 @@ import org.springframework.util.Assert; * for seamless switching to and from a local DataSource bean like this class. * *

      If you need a "real" connection pool outside of a Java EE container, consider - * Apache Commons DBCP - * or C3P0. + * Apache Commons DBCP + * or C3P0. * Commons DBCP's BasicDataSource and C3P0's ComboPooledDataSource are full * connection pool beans, supporting the same basic properties as this class * plus specific settings (such as minimal/maximal pool size etc). diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/WebSphereDataSourceAdapter.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/WebSphereDataSourceAdapter.java index ff278e317f9..e19d89ddf9e 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/WebSphereDataSourceAdapter.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/WebSphereDataSourceAdapter.java @@ -38,7 +38,7 @@ import org.springframework.util.StringUtils; * *

      Uses IBM-specific API to get a JDBC Connection with a specific isolation * level (and read-only flag) from a WebSphere DataSource - * (IBM code example). + * (IBM code example). * Supports the transaction-specific isolation level exposed by * {@link org.springframework.transaction.support.TransactionSynchronizationManager#getCurrentTransactionIsolationLevel()}. * It's also possible to specify a default isolation level, to be applied when the @@ -152,8 +152,8 @@ public class WebSphereDataSourceAdapter extends IsolationLevelDataSourceAdapter * Create a WebSphere {@code JDBCConnectionSpec} object for the given characteristics. *

      The default implementation uses reflection to apply the given settings. * Can be overridden in subclasses to customize the JDBCConnectionSpec object - * (JDBCConnectionSpec javadoc; - * IBM developerWorks article). + * (JDBCConnectionSpec javadoc; + * IBM developerWorks article). * @param isolationLevel the isolation level to apply (or {@code null} if none) * @param readOnlyFlag the read-only flag to apply (or {@code null} if none) * @param username the username to apply ({@code null} or empty indicates the default) diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseType.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseType.java index 1dfc47c03d4..81f2b6984c6 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseType.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseType.java @@ -28,10 +28,10 @@ public enum EmbeddedDatabaseType { /** The Hypersonic Embedded Java SQL Database (http://hsqldb.org) */ HSQL, - /** The H2 Embedded Java SQL Database Engine (http://h2database.com) */ + /** The H2 Embedded Java SQL Database Engine (https://h2database.com) */ H2, - /** The Apache Derby Embedded SQL Database (http://db.apache.org/derby) */ + /** The Apache Derby Embedded SQL Database (https://db.apache.org/derby) */ DERBY } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/object/package-info.java b/spring-jdbc/src/main/java/org/springframework/jdbc/object/package-info.java index 61bac017c4c..b13c09b802f 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/object/package-info.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/object/package-info.java @@ -11,7 +11,7 @@ * RDBMS-specific error handling. * *

      This package and related packages are discussed in Chapter 9 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). */ @NonNullApi diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/package-info.java b/spring-jdbc/src/main/java/org/springframework/jdbc/package-info.java index 027932fc5f5..86f4c59af6a 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/package-info.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/package-info.java @@ -14,7 +14,7 @@ *

    * *

    This package and related packages are discussed in Chapter 9 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). */ @NonNullApi diff --git a/spring-jdbc/src/main/resources/org/springframework/jdbc/config/spring-jdbc.xsd b/spring-jdbc/src/main/resources/org/springframework/jdbc/config/spring-jdbc.xsd index e2205703122..06d253f99ba 100644 --- a/spring-jdbc/src/main/resources/org/springframework/jdbc/config/spring-jdbc.xsd +++ b/spring-jdbc/src/main/resources/org/springframework/jdbc/config/spring-jdbc.xsd @@ -8,8 +8,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + diff --git a/spring-jdbc/src/test/resources/org/springframework/jdbc/datasource/init/db-test-data-h2-alias.sql b/spring-jdbc/src/test/resources/org/springframework/jdbc/datasource/init/db-test-data-h2-alias.sql index 5eb502aeae3..468a91158c1 100644 --- a/spring-jdbc/src/test/resources/org/springframework/jdbc/datasource/init/db-test-data-h2-alias.sql +++ b/spring-jdbc/src/test/resources/org/springframework/jdbc/datasource/init/db-test-data-h2-alias.sql @@ -1,6 +1,6 @@ DROP ALIAS IF EXISTS REVERSE; --- REVERSE function borrowed from http://www.h2database.com/html/grammar.html#create_alias +-- REVERSE function borrowed from https://www.h2database.com/html/grammar.html#create_alias CREATE ALIAS REVERSE AS $$ String reverse(String s) { return new StringBuilder(s).reverse().toString(); diff --git a/spring-jms/src/main/resources/org/springframework/jms/config/spring-jms.xsd b/spring-jms/src/main/resources/org/springframework/jms/config/spring-jms.xsd index 8b5f7b30e80..f454160fa58 100644 --- a/spring-jms/src/main/resources/org/springframework/jms/config/spring-jms.xsd +++ b/spring-jms/src/main/resources/org/springframework/jms/config/spring-jms.xsd @@ -7,7 +7,7 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - + + * @see * STOMP Specification 1.2 DISCONNECT */ private void afterDisconnectSent(StompHeaderAccessor accessor) { diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompClientSupport.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompClientSupport.java index 101388900be..d4b3373c7f1 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompClientSupport.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompClientSupport.java @@ -99,8 +99,8 @@ public abstract class StompClientSupport { * that default and for example set it to "0,0" if they require a * TaskScheduler to be configured first. * @param heartbeat the value for the CONNECT "heart-beat" header - * @see - * http://stomp.github.io/stomp-specification-1.2.html#Heart-beating + * @see + * https://stomp.github.io/stomp-specification-1.2.html#Heart-beating */ public void setDefaultHeartbeat(long[] heartbeat) { if (heartbeat.length != 2 || heartbeat[0] < 0 || heartbeat[1] < 0) { diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompDecoder.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompDecoder.java index e684453b2dd..ffc698432dc 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompDecoder.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompDecoder.java @@ -255,7 +255,7 @@ public class StompDecoder { /** * See STOMP Spec 1.2: - * "Value Encoding". + * "Value Encoding". */ private String unescape(String inString) { StringBuilder sb = new StringBuilder(inString.length()); diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompEncoder.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompEncoder.java index 39a6674e4c1..a6dca75db66 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompEncoder.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompEncoder.java @@ -191,7 +191,7 @@ public class StompEncoder { /** * See STOMP Spec 1.2: - * "Value Encoding". + * "Value Encoding". */ private String escape(String inString) { StringBuilder sb = null; diff --git a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompHeaders.java b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompHeaders.java index c002bc802dc..9a0d5bfe901 100644 --- a/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompHeaders.java +++ b/spring-messaging/src/main/java/org/springframework/messaging/simp/stomp/StompHeaders.java @@ -48,8 +48,8 @@ import org.springframework.util.StringUtils; * * @author Rossen Stoyanchev * @since 4.2 - * @see - * http://stomp.github.io/stomp-specification-1.2.html#Frames_and_Headers + * @see + * https://stomp.github.io/stomp-specification-1.2.html#Frames_and_Headers */ public class StompHeaders implements MultiValueMap, Serializable { diff --git a/spring-messaging/src/test/java/org/springframework/messaging/simp/SimpMessagingTemplateTests.java b/spring-messaging/src/test/java/org/springframework/messaging/simp/SimpMessagingTemplateTests.java index 888b8596943..d5d4ad4eaac 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/simp/SimpMessagingTemplateTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/simp/SimpMessagingTemplateTests.java @@ -74,7 +74,7 @@ public class SimpMessagingTemplateTests { @Test public void convertAndSendToUserWithEncoding() { - this.messagingTemplate.convertAndSendToUser("http://joe.openid.example.org/", "/queue/foo", "data"); + this.messagingTemplate.convertAndSendToUser("https://joe.openid.example.org/", "/queue/foo", "data"); List> messages = this.messageChannel.getMessages(); assertEquals(1, messages.size()); diff --git a/spring-messaging/src/test/java/org/springframework/messaging/simp/user/DefaultUserDestinationResolverTests.java b/spring-messaging/src/test/java/org/springframework/messaging/simp/user/DefaultUserDestinationResolverTests.java index 9d25cc7bab7..d732b4e4892 100644 --- a/spring-messaging/src/test/java/org/springframework/messaging/simp/user/DefaultUserDestinationResolverTests.java +++ b/spring-messaging/src/test/java/org/springframework/messaging/simp/user/DefaultUserDestinationResolverTests.java @@ -173,7 +173,7 @@ public class DefaultUserDestinationResolverTests { @Test public void handleMessageEncodedUserName() { - String userName = "http://joe.openid.example.org/"; + String userName = "https://joe.openid.example.org/"; TestSimpUser simpUser = new TestSimpUser(userName); simpUser.addSessions(new TestSimpSession("openid123")); diff --git a/spring-orm/src/main/java/org/springframework/orm/hibernate5/package-info.java b/spring-orm/src/main/java/org/springframework/orm/hibernate5/package-info.java index 9324cfa2e65..0ee67d0774f 100644 --- a/spring-orm/src/main/java/org/springframework/orm/hibernate5/package-info.java +++ b/spring-orm/src/main/java/org/springframework/orm/hibernate5/package-info.java @@ -1,6 +1,6 @@ /** * Package providing integration of - * Hibernate 5.x + * Hibernate 5.x * with Spring concepts. * *

    Contains an implementation of Spring's transaction SPI for local Hibernate transactions. diff --git a/spring-oxm/src/main/java/org/springframework/oxm/castor/package-info.java b/spring-oxm/src/main/java/org/springframework/oxm/castor/package-info.java index fe20e279135..914b695744b 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/castor/package-info.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/castor/package-info.java @@ -1,5 +1,5 @@ /** - * Package providing integration of Castor + * Package providing integration of Castor * within Spring's O/X Mapping support. */ @NonNullApi diff --git a/spring-oxm/src/main/java/org/springframework/oxm/jaxb/package-info.java b/spring-oxm/src/main/java/org/springframework/oxm/jaxb/package-info.java index 0767ea4025e..8a630106f41 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/jaxb/package-info.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/jaxb/package-info.java @@ -1,5 +1,5 @@ /** - * Package providing integration of JAXB + * Package providing integration of JAXB * with Spring's O/X Mapping support. */ @NonNullApi diff --git a/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeContainer.java b/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeContainer.java index d56c8ac6529..03545723951 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeContainer.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeContainer.java @@ -26,23 +26,23 @@ import org.springframework.lang.Nullable; * * @author Arjen Poutsma * @since 3.0 - * @see XML-binary Optimized Packaging + * @see XML-binary Optimized Packaging */ public interface MimeContainer { /** * Indicate whether this container is a XOP package. * @return {@code true} when the constraints specified in - * Identifying XOP Documents + * Identifying XOP Documents * are met - * @see XOP Packages + * @see XOP Packages */ boolean isXopPackage(); /** * Turn this message into a XOP package. * @return {@code true} when the message actually is a XOP package - * @see XOP Packages + * @see XOP Packages */ boolean convertToXopPackage(); diff --git a/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeMarshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeMarshaller.java index 576188f6d92..b1199e14c41 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeMarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeMarshaller.java @@ -29,8 +29,8 @@ import org.springframework.oxm.XmlMappingException; * * @author Arjen Poutsma * @since 3.0 - * @see SOAP Message Transmission Optimization Mechanism - * @see XML-binary Optimized Packaging + * @see SOAP Message Transmission Optimization Mechanism + * @see XML-binary Optimized Packaging */ public interface MimeMarshaller extends Marshaller { diff --git a/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeUnmarshaller.java b/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeUnmarshaller.java index fc4adcf7375..a8cf083f5ba 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeUnmarshaller.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/mime/MimeUnmarshaller.java @@ -29,8 +29,8 @@ import org.springframework.oxm.XmlMappingException; * * @author Arjen Poutsma * @since 3.0 - * @see SOAP Message Transmission Optimization Mechanism - * @see XML-binary Optimized Packaging + * @see SOAP Message Transmission Optimization Mechanism + * @see XML-binary Optimized Packaging */ public interface MimeUnmarshaller extends Unmarshaller { diff --git a/spring-oxm/src/main/java/org/springframework/oxm/xstream/package-info.java b/spring-oxm/src/main/java/org/springframework/oxm/xstream/package-info.java index a701bd6d44f..c01a9cbd107 100644 --- a/spring-oxm/src/main/java/org/springframework/oxm/xstream/package-info.java +++ b/spring-oxm/src/main/java/org/springframework/oxm/xstream/package-info.java @@ -1,5 +1,5 @@ /** - * Package providing integration of XStream + * Package providing integration of XStream * with Spring's O/X Mapping support. */ @NonNullApi diff --git a/spring-oxm/src/main/resources/org/springframework/oxm/config/spring-oxm.xsd b/spring-oxm/src/main/resources/org/springframework/oxm/config/spring-oxm.xsd index 2152a14ebd3..7305ff44f6e 100644 --- a/spring-oxm/src/main/resources/org/springframework/oxm/config/spring-oxm.xsd +++ b/spring-oxm/src/main/resources/org/springframework/oxm/config/spring-oxm.xsd @@ -6,8 +6,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + diff --git a/spring-oxm/src/test/java/org/springframework/oxm/AbstractMarshallerTests.java b/spring-oxm/src/test/java/org/springframework/oxm/AbstractMarshallerTests.java index c6145c5ed9f..fe14beb04a6 100644 --- a/spring-oxm/src/test/java/org/springframework/oxm/AbstractMarshallerTests.java +++ b/spring-oxm/src/test/java/org/springframework/oxm/AbstractMarshallerTests.java @@ -74,7 +74,7 @@ public abstract class AbstractMarshallerTests { marshaller.marshal(flights, domResult); Document expected = builder.newDocument(); Element flightsElement = expected.createElementNS("http://samples.springframework.org/flight", "tns:flights"); - Attr namespace = expected.createAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:tns"); + Attr namespace = expected.createAttributeNS("https://www.w3.org/2000/xmlns/", "xmlns:tns"); namespace.setNodeValue("http://samples.springframework.org/flight"); flightsElement.setAttributeNode(namespace); expected.appendChild(flightsElement); @@ -98,7 +98,7 @@ public abstract class AbstractMarshallerTests { Document result = (Document) domResult.getNode(); Document expected = builder.newDocument(); Element flightsElement = expected.createElementNS("http://samples.springframework.org/flight", "tns:flights"); - Attr namespace = expected.createAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns:tns"); + Attr namespace = expected.createAttributeNS("https://www.w3.org/2000/xmlns/", "xmlns:tns"); namespace.setNodeValue("http://samples.springframework.org/flight"); flightsElement.setAttributeNode(namespace); expected.appendChild(flightsElement); diff --git a/spring-oxm/src/test/java/org/springframework/oxm/castor/CastorMarshallerTests.java b/spring-oxm/src/test/java/org/springframework/oxm/castor/CastorMarshallerTests.java index 4a14c26f741..ede0f2b5a76 100644 --- a/spring-oxm/src/test/java/org/springframework/oxm/castor/CastorMarshallerTests.java +++ b/spring-oxm/src/test/java/org/springframework/oxm/castor/CastorMarshallerTests.java @@ -76,7 +76,7 @@ public class CastorMarshallerTests extends AbstractMarshallerTests" + "" + "test8"; @@ -91,7 +91,7 @@ public class CastorMarshallerTests extends AbstractMarshallerTests" + "" + "" + "test8"; @@ -101,7 +101,7 @@ public class CastorMarshallerTests extends AbstractMarshallerTests" + "" + "test8"; diff --git a/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb2MarshallerTests.java b/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb2MarshallerTests.java index 1b508e986fa..cb6ee842810 100644 --- a/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb2MarshallerTests.java +++ b/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb2MarshallerTests.java @@ -203,7 +203,7 @@ public class Jaxb2MarshallerTests extends AbstractMarshallerTests flightTypeJAXBElement = new JAXBElement<>(new QName("http://springframework.org", "flight"), FlightType.class, + JAXBElement flightTypeJAXBElement = new JAXBElement<>(new QName("https://springframework.org", "flight"), FlightType.class, new FlightType()); assertTrue("Jaxb2Marshaller does not support JAXBElement", marshaller.supports(flightTypeJAXBElement.getClass())); diff --git a/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb2UnmarshallerTests.java b/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb2UnmarshallerTests.java index 513a4e24535..919d9b4504a 100644 --- a/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb2UnmarshallerTests.java +++ b/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb2UnmarshallerTests.java @@ -91,9 +91,9 @@ public class Jaxb2UnmarshallerTests extends AbstractUnmarshallerTests")).willReturn(dataHandler); given(mimeContainer.getAttachment("696cfb9a-4d2d-402f-bb5c-59fa69e7f0b3@spring-ws.png")).willReturn(dataHandler); String content = "" + "" + - "" + + "" + "" + "" + - "" + + "" + "" + "696cfb9a-4d2d-402f-bb5c-59fa69e7f0b3@spring-ws.png" + ""; diff --git a/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Primitives.java b/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Primitives.java index 26bc5034503..2f61fc4b669 100644 --- a/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Primitives.java +++ b/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Primitives.java @@ -26,7 +26,7 @@ import javax.xml.namespace.QName; */ public class Primitives { - private static final QName NAME = new QName("http://springframework.org/oxm-test", "primitives"); + private static final QName NAME = new QName("https://springframework.org/oxm-test", "primitives"); // following methods are used to test support for primitives public JAXBElement primitiveBoolean() { diff --git a/spring-oxm/src/test/java/org/springframework/oxm/jaxb/StandardClasses.java b/spring-oxm/src/test/java/org/springframework/oxm/jaxb/StandardClasses.java index 7c3886fcc74..3b91f1061ba 100644 --- a/spring-oxm/src/test/java/org/springframework/oxm/jaxb/StandardClasses.java +++ b/spring-oxm/src/test/java/org/springframework/oxm/jaxb/StandardClasses.java @@ -43,7 +43,7 @@ import javax.xml.namespace.QName; */ public class StandardClasses { - private static final QName NAME = new QName("http://springframework.org/oxm-test", "standard-classes"); + private static final QName NAME = new QName("https://springframework.org/oxm-test", "standard-classes"); private DatatypeFactory factory; @@ -90,7 +90,7 @@ public class StandardClasses { } public JAXBElement standardClassURI() { - return new JAXBElement<>(NAME, URI.class, URI.create("http://springframework.org")); + return new JAXBElement<>(NAME, URI.class, URI.create("https://springframework.org")); } public JAXBElement standardClassXMLGregorianCalendar() throws DatatypeConfigurationException { diff --git a/spring-oxm/src/test/resources/org/springframework/oxm/order.xsd b/spring-oxm/src/test/resources/org/springframework/oxm/order.xsd index 92eee80e41a..bf8d3718eb6 100644 --- a/spring-oxm/src/test/resources/org/springframework/oxm/order.xsd +++ b/spring-oxm/src/test/resources/org/springframework/oxm/order.xsd @@ -1,7 +1,7 @@ + targetNamespace="https://samples.springframework.org/order" + xmlns:tns="https://samples.springframework.org/order"> diff --git a/spring-test/src/main/java/org/springframework/mock/web/package-info.java b/spring-test/src/main/java/org/springframework/mock/web/package-info.java index 599c70774d4..10c050e91ac 100644 --- a/spring-test/src/main/java/org/springframework/mock/web/package-info.java +++ b/spring-test/src/main/java/org/springframework/mock/web/package-info.java @@ -5,7 +5,7 @@ *

    Useful for testing web contexts and controllers. * *

    More convenient to use than dynamic mock objects - * (EasyMock) or + * (EasyMock) or * existing Servlet API mock objects * (MockObjects). */ diff --git a/spring-test/src/main/java/org/springframework/test/util/JsonExpectationsHelper.java b/spring-test/src/main/java/org/springframework/test/util/JsonExpectationsHelper.java index 1a783dba25c..8c959ffb530 100644 --- a/spring-test/src/main/java/org/springframework/test/util/JsonExpectationsHelper.java +++ b/spring-test/src/main/java/org/springframework/test/util/JsonExpectationsHelper.java @@ -22,7 +22,7 @@ import org.skyscreamer.jsonassert.JSONAssert; * A helper class for assertions on JSON content. * *

    Use of this class requires the JSONassert library. + * href="https://jsonassert.skyscreamer.org/">JSONassert library. * * @author Sebastien Deleuze * @since 4.1 diff --git a/spring-test/src/main/java/org/springframework/test/web/client/match/ContentRequestMatchers.java b/spring-test/src/main/java/org/springframework/test/web/client/match/ContentRequestMatchers.java index c6ee98f04a6..c1ef45c229d 100644 --- a/spring-test/src/main/java/org/springframework/test/web/client/match/ContentRequestMatchers.java +++ b/spring-test/src/main/java/org/springframework/test/web/client/match/ContentRequestMatchers.java @@ -187,7 +187,7 @@ public class ContentRequestMatchers { /** * Parse the request content as {@link DOMSource} and apply the given {@link Matcher}. - * @see http://code.google.com/p/xml-matchers/ + * @see https://code.google.com/p/xml-matchers/ */ public RequestMatcher source(final Matcher matcher) { return new AbstractXmlRequestMatcher() { @@ -204,7 +204,7 @@ public class ContentRequestMatchers { * regardless of formatting with a lenient checking (extensible, and non-strict array * ordering). *

    Use of this matcher requires the JSONassert library. + * href="https://jsonassert.skyscreamer.org/">JSONassert library. * @param expectedJsonContent the expected JSON content * @since 5.0.5 */ @@ -222,7 +222,7 @@ public class ContentRequestMatchers { *

  • {@code false}: lenient checking. Extensible, and non-strict array ordering.
  • * *

    Use of this matcher requires the JSONassert library. + * href="https://jsonassert.skyscreamer.org/">JSONassert library. * @param expectedJsonContent the expected JSON content * @param strict enables strict checking * @since 5.0.5 diff --git a/spring-test/src/main/java/org/springframework/test/web/reactive/server/WebTestClient.java b/spring-test/src/main/java/org/springframework/test/web/reactive/server/WebTestClient.java index d50bc840164..a4322c8b43c 100644 --- a/spring-test/src/main/java/org/springframework/test/web/reactive/server/WebTestClient.java +++ b/spring-test/src/main/java/org/springframework/test/web/reactive/server/WebTestClient.java @@ -803,7 +803,7 @@ public interface WebTestClient { * Parse the expected and actual response content as JSON and perform a * "lenient" comparison verifying the same attribute-value pairs. *

    Use of this option requires the - * JSONassert library + * JSONassert library * on to be on the classpath. * @param expectedJson the expected JSON content. */ diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/htmlunit/HostRequestMatcher.java b/spring-test/src/main/java/org/springframework/test/web/servlet/htmlunit/HostRequestMatcher.java index f7c82739ec1..60451d67640 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/htmlunit/HostRequestMatcher.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/htmlunit/HostRequestMatcher.java @@ -43,7 +43,7 @@ import com.gargoylesoftware.htmlunit.WebRequest; * *

    WebRequestMatcher cdnMatcher = new HostMatcher("code.jquery.com:80");
    * - *

    The above {@code cdnMatcher} would match {@code "http://code.jquery.com/jquery.js"} + *

    The above {@code cdnMatcher} would match {@code "https://code.jquery.com/jquery.js"} * which has a default port of {@code 80} and {@code "http://code.jquery.com:80/jquery.js"}. * However, it would not match {@code "https://code.jquery.com/jquery.js"} * which has a default port of {@code 443}. diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java b/spring-test/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java index abe4901a2ee..84c6015caf5 100644 --- a/spring-test/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java +++ b/spring-test/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java @@ -174,7 +174,7 @@ public class ContentResultMatchers { /** * Parse the response content as {@link DOMSource} and apply the given * Hamcrest {@link Matcher}. - * @see xml-matchers + * @see xml-matchers */ public ResultMatcher source(final Matcher matcher) { return result -> { @@ -204,7 +204,7 @@ public class ContentResultMatchers { *

  • {@code false}: lenient checking. Extensible, and non-strict array ordering.
  • * *

    Use of this matcher requires the JSONassert library. + * href="https://jsonassert.skyscreamer.org/">JSONassert library. * @param jsonContent the expected JSON content * @param strict enables strict checking * @since 4.2 diff --git a/spring-test/src/test/java/org/springframework/mock/web/MockServletContextTests.java b/spring-test/src/test/java/org/springframework/mock/web/MockServletContextTests.java index b1e3349fe2b..9c80d40d764 100644 --- a/spring-test/src/test/java/org/springframework/mock/web/MockServletContextTests.java +++ b/spring-test/src/test/java/org/springframework/mock/web/MockServletContextTests.java @@ -87,7 +87,7 @@ public class MockServletContextTests { /** * Introduced to dispel claims in a thread on Stack Overflow: - * Testing Spring managed servlet + * Testing Spring managed servlet */ @Test public void getMimeTypeWithCustomConfiguredType() { diff --git a/spring-test/src/test/java/org/springframework/test/context/env/InlinedPropertiesTestPropertySourceTests.java b/spring-test/src/test/java/org/springframework/test/context/env/InlinedPropertiesTestPropertySourceTests.java index 7b8d8ea4197..ff902c6619e 100644 --- a/spring-test/src/test/java/org/springframework/test/context/env/InlinedPropertiesTestPropertySourceTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/env/InlinedPropertiesTestPropertySourceTests.java @@ -41,7 +41,7 @@ import static org.springframework.test.context.support.TestPropertySourceUtils.* @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration @TestPropertySource(properties = { "", "foo = bar", "baz quux", "enigma: 42", "x.y.z = a=b=c", - "server.url = http://example.com", "key.value.1: key=value", "key.value.2 key=value", "key.value.3 key:value" }) + "server.url = https://example.com", "key.value.1: key=value", "key.value.2 key=value", "key.value.3 key:value" }) public class InlinedPropertiesTestPropertySourceTests { @Autowired @@ -61,7 +61,7 @@ public class InlinedPropertiesTestPropertySourceTests { // Values containing key/value delimiters (":", "=", " ") assertThat(property("x.y.z"), is("a=b=c")); - assertThat(property("server.url"), is("http://example.com")); + assertThat(property("server.url"), is("https://example.com")); assertThat(property("key.value.1"), is("key=value")); assertThat(property("key.value.2"), is("key=value")); assertThat(property("key.value.3"), is("key:value")); diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/aci/annotation/InitializerConfiguredViaMetaAnnotationTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/aci/annotation/InitializerConfiguredViaMetaAnnotationTests.java index 7e441e57109..32c9a5cef3e 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/aci/annotation/InitializerConfiguredViaMetaAnnotationTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/junit4/aci/annotation/InitializerConfiguredViaMetaAnnotationTests.java @@ -44,7 +44,7 @@ import static org.junit.Assert.assertEquals; * {@code @Configuration} classes. * *

    This class has been implemented in response to the following Stack Overflow question: - * + * * Can {@code @ContextConfiguration} in a custom annotation be merged? * * @author Sam Brannen diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/BeanOverridingDefaultLocationsInheritedTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/BeanOverridingDefaultLocationsInheritedTests.java index 7a341f57306..97274401f0f 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/BeanOverridingDefaultLocationsInheritedTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/BeanOverridingDefaultLocationsInheritedTests.java @@ -26,7 +26,7 @@ import static org.junit.Assert.*; * JUnit 4 based integration test for verifying support for the * {@link ContextConfiguration#inheritLocations() inheritLocations} flag of * {@link ContextConfiguration @ContextConfiguration} indirectly proposed in SPR-3896. * * @author Sam Brannen diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/BeanOverridingExplicitLocationsInheritedTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/BeanOverridingExplicitLocationsInheritedTests.java index a7279025019..efd60eadbc3 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/BeanOverridingExplicitLocationsInheritedTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/BeanOverridingExplicitLocationsInheritedTests.java @@ -26,7 +26,7 @@ import static org.junit.Assert.*; * JUnit 4 based integration test for verifying support for the * {@link ContextConfiguration#inheritLocations() inheritLocations} flag of * {@link ContextConfiguration @ContextConfiguration} indirectly proposed in SPR-3896. * * @author Sam Brannen diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/DefaultLocationsBaseTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/DefaultLocationsBaseTests.java index 8bb0eabec8e..d4eb3a0291f 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/DefaultLocationsBaseTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/DefaultLocationsBaseTests.java @@ -30,7 +30,7 @@ import static org.junit.Assert.*; * JUnit 4 based integration test for verifying support for the * {@link ContextConfiguration#inheritLocations() inheritLocations} flag of * {@link ContextConfiguration @ContextConfiguration} indirectly proposed in SPR-3896. * * @author Sam Brannen diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/DefaultLocationsInheritedTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/DefaultLocationsInheritedTests.java index e2540cfabb6..a282649a6f4 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/DefaultLocationsInheritedTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/DefaultLocationsInheritedTests.java @@ -28,7 +28,7 @@ import static org.junit.Assert.*; * JUnit 4 based integration test for verifying support for the * {@link ContextConfiguration#inheritLocations() inheritLocations} flag of * {@link ContextConfiguration @ContextConfiguration} indirectly proposed in SPR-3896. * * @author Sam Brannen diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/ExplicitLocationsBaseTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/ExplicitLocationsBaseTests.java index 71692c80faa..f3b75c99c96 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/ExplicitLocationsBaseTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/ExplicitLocationsBaseTests.java @@ -30,7 +30,7 @@ import static org.junit.Assert.*; * JUnit 4 based integration test for verifying support for the * {@link ContextConfiguration#inheritLocations() inheritLocations} flag of * {@link ContextConfiguration @ContextConfiguration} indirectly proposed in SPR-3896. * * @author Sam Brannen diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/ExplicitLocationsInheritedTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/ExplicitLocationsInheritedTests.java index 6508935647c..2f3da5a432d 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/ExplicitLocationsInheritedTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/ExplicitLocationsInheritedTests.java @@ -28,7 +28,7 @@ import static org.junit.Assert.*; * JUnit 4 based integration test for verifying support for the * {@link ContextConfiguration#inheritLocations() inheritLocations} flag of * {@link ContextConfiguration @ContextConfiguration} indirectly proposed in SPR-3896. * * @author Sam Brannen diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/Spr3896SuiteTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/Spr3896SuiteTests.java index 9c59b53fa20..2e9b6e9cbb2 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/Spr3896SuiteTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/junit4/spr3896/Spr3896SuiteTests.java @@ -22,7 +22,7 @@ import org.junit.runners.Suite.SuiteClasses; /** * JUnit 4 based test suite for functionality proposed in SPR-3896. * * @author Sam Brannen diff --git a/spring-test/src/test/java/org/springframework/test/context/junit4/spr6128/AutowiredQualifierTests.java b/spring-test/src/test/java/org/springframework/test/context/junit4/spr6128/AutowiredQualifierTests.java index 1385da61a2c..5c32bdfe37d 100644 --- a/spring-test/src/test/java/org/springframework/test/context/junit4/spr6128/AutowiredQualifierTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/junit4/spr6128/AutowiredQualifierTests.java @@ -29,7 +29,7 @@ import static org.junit.Assert.*; /** * Integration tests to verify claims made in SPR-6128. * * @author Sam Brannen diff --git a/spring-test/src/test/java/org/springframework/test/context/support/BootstrapTestUtilsMergedConfigTests.java b/spring-test/src/test/java/org/springframework/test/context/support/BootstrapTestUtilsMergedConfigTests.java index 28571470beb..248426df62c 100644 --- a/spring-test/src/test/java/org/springframework/test/context/support/BootstrapTestUtilsMergedConfigTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/support/BootstrapTestUtilsMergedConfigTests.java @@ -122,7 +122,7 @@ public class BootstrapTestUtilsMergedConfigTests extends AbstractContextConfigur /** * Introduced to investigate claims made in a discussion on - * Stack Overflow. + * Stack Overflow. */ @Test public void buildMergedConfigWithAtWebAppConfigurationWithAnnotationAndClassesOnSuperclass() { diff --git a/spring-test/src/test/java/org/springframework/test/context/support/CustomizedGenericXmlContextLoaderTests.java b/spring-test/src/test/java/org/springframework/test/context/support/CustomizedGenericXmlContextLoaderTests.java index ce647d6bbf9..753e10addbe 100644 --- a/spring-test/src/test/java/org/springframework/test/context/support/CustomizedGenericXmlContextLoaderTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/support/CustomizedGenericXmlContextLoaderTests.java @@ -27,7 +27,7 @@ import static org.junit.Assert.*; * {@link AbstractGenericContextLoader} are able to customize the * newly created {@code ApplicationContext}. Specifically, this test * addresses the issues raised in SPR-4008: Supply an opportunity to customize context * before calling refresh in ContextLoaders. * diff --git a/spring-test/src/test/java/org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests.java b/spring-test/src/test/java/org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests.java index 4730d4eabbf..d36983847e4 100644 --- a/spring-test/src/test/java/org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/support/GenericXmlContextLoaderResourceLocationsTests.java @@ -39,7 +39,7 @@ import static org.junit.Assert.*; * {@code resource locations} by a {@link GenericXmlContextLoader} * configured via {@link ContextConfiguration @ContextConfiguration}. * Specifically, this test addresses the issues raised in SPR-3949: * ContextConfiguration annotation should accept not only classpath resources. * @@ -77,12 +77,12 @@ public class GenericXmlContextLoaderResourceLocationsTests { class ExplicitFileLocationsTestCase { } - @ContextConfiguration("http://example.com/context.xml") + @ContextConfiguration("https://example.com/context.xml") class ExplicitUrlLocationsTestCase { } @ContextConfiguration({ "context1.xml", "classpath:context2.xml", "/context3.xml", - "file:/testing/directory/context.xml", "http://example.com/context.xml" }) + "file:/testing/directory/context.xml", "https://example.com/context.xml" }) class ExplicitMixedPathTypesLocationsTestCase { } @@ -103,13 +103,13 @@ public class GenericXmlContextLoaderResourceLocationsTests { { ExplicitFileLocationsTestCase.class.getSimpleName(), new String[] { "file:/testing/directory/context.xml" } }, - { ExplicitUrlLocationsTestCase.class.getSimpleName(), new String[] { "http://example.com/context.xml" } }, + { ExplicitUrlLocationsTestCase.class.getSimpleName(), new String[] { "https://example.com/context.xml" } }, { ExplicitMixedPathTypesLocationsTestCase.class.getSimpleName(), new String[] { "classpath:/org/springframework/test/context/support/context1.xml", "classpath:context2.xml", "classpath:/context3.xml", "file:/testing/directory/context.xml", - "http://example.com/context.xml" } } + "https://example.com/context.xml" } } }); } diff --git a/spring-test/src/test/java/org/springframework/test/context/testng/DirtiesContextTransactionalTestNGSpringContextTests.java b/spring-test/src/test/java/org/springframework/test/context/testng/DirtiesContextTransactionalTestNGSpringContextTests.java index 0af0fbc2855..66cb01be63a 100644 --- a/spring-test/src/test/java/org/springframework/test/context/testng/DirtiesContextTransactionalTestNGSpringContextTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/testng/DirtiesContextTransactionalTestNGSpringContextTests.java @@ -29,7 +29,7 @@ import static org.testng.Assert.*; /** *

    * TestNG based integration test to assess the claim in SPR-3880 that a "context marked dirty using * {@link DirtiesContext @DirtiesContext} in [a] TestNG based test is not * reloaded in subsequent tests". diff --git a/spring-test/src/test/java/org/springframework/test/context/testng/TimedTransactionalTestNGSpringContextTests.java b/spring-test/src/test/java/org/springframework/test/context/testng/TimedTransactionalTestNGSpringContextTests.java index c35a40e9fc7..39c7e22b633 100644 --- a/spring-test/src/test/java/org/springframework/test/context/testng/TimedTransactionalTestNGSpringContextTests.java +++ b/spring-test/src/test/java/org/springframework/test/context/testng/TimedTransactionalTestNGSpringContextTests.java @@ -25,7 +25,7 @@ import static org.springframework.test.transaction.TransactionTestUtils.*; /** * Timed integration tests for * {@link AbstractTransactionalTestNGSpringContextTests}; used to verify claim - * raised in SPR-6124. * * @author Sam Brannen diff --git a/spring-test/src/test/java/org/springframework/test/web/client/match/MockRestRequestMatchersTests.java b/spring-test/src/test/java/org/springframework/test/web/client/match/MockRestRequestMatchersTests.java index fde70ab2afb..4f2d584f7b2 100644 --- a/spring-test/src/test/java/org/springframework/test/web/client/match/MockRestRequestMatchersTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/client/match/MockRestRequestMatchersTests.java @@ -43,29 +43,29 @@ public class MockRestRequestMatchersTests { @Test public void requestTo() throws Exception { - this.request.setURI(new URI("http://foo.com/bar")); + this.request.setURI(new URI("http://www.foo.com/bar")); - MockRestRequestMatchers.requestTo("http://foo.com/bar").match(this.request); + MockRestRequestMatchers.requestTo("http://www.foo.com/bar").match(this.request); } @Test // SPR-15819 public void requestToUriTemplate() throws Exception { - this.request.setURI(new URI("http://foo.com/bar")); + this.request.setURI(new URI("http://www.foo.com/bar")); - MockRestRequestMatchers.requestToUriTemplate("http://foo.com/{bar}", "bar").match(this.request); + MockRestRequestMatchers.requestToUriTemplate("http://www.foo.com/{bar}", "bar").match(this.request); } @Test public void requestToNoMatch() throws Exception { - this.request.setURI(new URI("http://foo.com/bar")); + this.request.setURI(new URI("http://www.foo.com/bar")); assertThrows(AssertionError.class, - () -> MockRestRequestMatchers.requestTo("http://foo.com/wrong").match(this.request)); + () -> MockRestRequestMatchers.requestTo("http://www.foo.com/wrong").match(this.request)); } @Test public void requestToContains() throws Exception { - this.request.setURI(new URI("http://foo.com/bar")); + this.request.setURI(new URI("http://www.foo.com/bar")); MockRestRequestMatchers.requestTo(containsString("bar")).match(this.request); } @@ -157,14 +157,14 @@ public class MockRestRequestMatchersTests { @Test public void queryParam() throws Exception { - this.request.setURI(new URI("http://foo.com/a?foo=bar&foo=baz")); + this.request.setURI(new URI("http://www.foo.com/a?foo=bar&foo=baz")); MockRestRequestMatchers.queryParam("foo", "bar", "baz").match(this.request); } @Test public void queryParamMissing() throws Exception { - this.request.setURI(new URI("http://foo.com/a")); + this.request.setURI(new URI("http://www.foo.com/a")); AssertionError error = assertThrows(AssertionError.class, () -> MockRestRequestMatchers.queryParam("foo", "bar").match(this.request)); @@ -173,7 +173,7 @@ public class MockRestRequestMatchersTests { @Test public void queryParamMissingValue() throws Exception { - this.request.setURI(new URI("http://foo.com/a?foo=bar&foo=baz")); + this.request.setURI(new URI("http://www.foo.com/a?foo=bar&foo=baz")); AssertionError error = assertThrows(AssertionError.class, () -> MockRestRequestMatchers.queryParam("foo", "bad").match(this.request)); @@ -182,14 +182,14 @@ public class MockRestRequestMatchersTests { @Test public void queryParamContains() throws Exception { - this.request.setURI(new URI("http://foo.com/a?foo=bar&foo=baz")); + this.request.setURI(new URI("http://www.foo.com/a?foo=bar&foo=baz")); MockRestRequestMatchers.queryParam("foo", containsString("ba")).match(this.request); } @Test public void queryParamContainsWithMissingValue() throws Exception { - this.request.setURI(new URI("http://foo.com/a?foo=bar&foo=baz")); + this.request.setURI(new URI("http://www.foo.com/a?foo=bar&foo=baz")); AssertionError error = assertThrows(AssertionError.class, () -> MockRestRequestMatchers.queryParam("foo", containsString("bx")).match(this.request)); diff --git a/spring-test/src/test/java/org/springframework/test/web/client/samples/matchers/XpathRequestMatchersIntegrationTests.java b/spring-test/src/test/java/org/springframework/test/web/client/samples/matchers/XpathRequestMatchersIntegrationTests.java index b283956f363..319f4685831 100644 --- a/spring-test/src/test/java/org/springframework/test/web/client/samples/matchers/XpathRequestMatchersIntegrationTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/client/samples/matchers/XpathRequestMatchersIntegrationTests.java @@ -52,7 +52,7 @@ import static org.springframework.test.web.client.response.MockRestResponseCreat public class XpathRequestMatchersIntegrationTests { private static final Map NS = - Collections.singletonMap("ns", "http://example.org/music/people"); + Collections.singletonMap("ns", "https://example.org/music/people"); private MockRestServiceServer mockServer; @@ -192,7 +192,7 @@ public class XpathRequestMatchersIntegrationTests { @SuppressWarnings("unused") - @XmlRootElement(name="people", namespace="http://example.org/music/people") + @XmlRootElement(name="people", namespace="https://example.org/music/people") @XmlAccessorType(XmlAccessType.FIELD) private static class PeopleWrapper { diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/DelegatingWebConnectionTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/DelegatingWebConnectionTests.java index 7d18436089f..675f6e57aa0 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/DelegatingWebConnectionTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/DelegatingWebConnectionTests.java @@ -139,7 +139,7 @@ public class DelegatingWebConnectionTests { webClient.setWebConnection( new DelegatingWebConnection(mockConnection, new DelegateWebConnection(cdnMatcher, httpConnection))); - Page page = webClient.getPage("http://code.jquery.com/jquery-1.11.0.min.js"); + Page page = webClient.getPage("https://code.jquery.com/jquery-1.11.0.min.js"); assertThat(page.getWebResponse().getStatusCode(), equalTo(200)); assertThat(page.getWebResponse().getContentAsString(), not(isEmptyString())); } diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/HostRequestMatcherTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/HostRequestMatcherTests.java index ecf4f245918..1e5c5edd722 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/HostRequestMatcherTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/HostRequestMatcherTests.java @@ -31,14 +31,14 @@ public class HostRequestMatcherTests extends AbstractWebRequestMatcherTests { public void localhost() throws Exception { WebRequestMatcher matcher = new HostRequestMatcher("localhost"); assertMatches(matcher, "http://localhost/jquery-1.11.0.min.js"); - assertDoesNotMatch(matcher, "http://example.com/jquery-1.11.0.min.js"); + assertDoesNotMatch(matcher, "https://example.com/jquery-1.11.0.min.js"); } @Test public void multipleHosts() throws Exception { WebRequestMatcher matcher = new HostRequestMatcher("localhost", "example.com"); assertMatches(matcher, "http://localhost/jquery-1.11.0.min.js"); - assertMatches(matcher, "http://example.com/jquery-1.11.0.min.js"); + assertMatches(matcher, "https://example.com/jquery-1.11.0.min.js"); } @Test diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/HtmlUnitRequestBuilderTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/HtmlUnitRequestBuilderTests.java index 698c0b782f9..642888580ec 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/HtmlUnitRequestBuilderTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/HtmlUnitRequestBuilderTests.java @@ -178,7 +178,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestContextPathUsesNoFirstSegmentWithDefault() throws MalformedURLException { - webRequest.setUrl(new URL("http://example.com/")); + webRequest.setUrl(new URL("https://example.com/")); String contextPath = requestBuilder.buildRequest(servletContext).getContextPath(); assertThat(contextPath, equalTo("")); @@ -421,7 +421,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestParameterMapFromSingleQueryParam() throws Exception { - webRequest.setUrl(new URL("http://example.com/example/?name=value")); + webRequest.setUrl(new URL("https://example.com/example/?name=value")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -432,7 +432,7 @@ public class HtmlUnitRequestBuilderTests { // SPR-14177 @Test public void buildRequestParameterMapDecodesParameterName() throws Exception { - webRequest.setUrl(new URL("http://example.com/example/?row%5B0%5D=value")); + webRequest.setUrl(new URL("https://example.com/example/?row%5B0%5D=value")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -442,7 +442,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestParameterMapDecodesParameterValue() throws Exception { - webRequest.setUrl(new URL("http://example.com/example/?name=row%5B0%5D")); + webRequest.setUrl(new URL("https://example.com/example/?name=row%5B0%5D")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -452,7 +452,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestParameterMapFromSingleQueryParamWithoutValueAndWithoutEqualsSign() throws Exception { - webRequest.setUrl(new URL("http://example.com/example/?name")); + webRequest.setUrl(new URL("https://example.com/example/?name")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -462,7 +462,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestParameterMapFromSingleQueryParamWithoutValueButWithEqualsSign() throws Exception { - webRequest.setUrl(new URL("http://example.com/example/?name=")); + webRequest.setUrl(new URL("https://example.com/example/?name=")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -472,7 +472,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestParameterMapFromSingleQueryParamWithValueSetToEncodedSpace() throws Exception { - webRequest.setUrl(new URL("http://example.com/example/?name=%20")); + webRequest.setUrl(new URL("https://example.com/example/?name=%20")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -482,7 +482,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestParameterMapFromMultipleQueryParams() throws Exception { - webRequest.setUrl(new URL("http://example.com/example/?name=value¶m2=value+2")); + webRequest.setUrl(new URL("https://example.com/example/?name=value¶m2=value+2")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -500,7 +500,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestPathInfoNull() throws Exception { - webRequest.setUrl(new URL("http://example.com/example")); + webRequest.setUrl(new URL("https://example.com/example")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -509,7 +509,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestAndAntPathRequestMatcher() throws Exception { - webRequest.setUrl(new URL("http://example.com/app/login/authenticate")); + webRequest.setUrl(new URL("https://example.com/app/login/authenticate")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -528,7 +528,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestQueryWithSingleQueryParam() throws Exception { String expectedQuery = "param=value"; - webRequest.setUrl(new URL("http://example.com/example?" + expectedQuery)); + webRequest.setUrl(new URL("https://example.com/example?" + expectedQuery)); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -538,7 +538,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestQueryWithSingleQueryParamWithoutValueAndWithoutEqualsSign() throws Exception { String expectedQuery = "param"; - webRequest.setUrl(new URL("http://example.com/example?" + expectedQuery)); + webRequest.setUrl(new URL("https://example.com/example?" + expectedQuery)); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -548,7 +548,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestQueryWithSingleQueryParamWithoutValueButWithEqualsSign() throws Exception { String expectedQuery = "param="; - webRequest.setUrl(new URL("http://example.com/example?" + expectedQuery)); + webRequest.setUrl(new URL("https://example.com/example?" + expectedQuery)); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -558,7 +558,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestQueryWithSingleQueryParamWithValueSetToEncodedSpace() throws Exception { String expectedQuery = "param=%20"; - webRequest.setUrl(new URL("http://example.com/example?" + expectedQuery)); + webRequest.setUrl(new URL("https://example.com/example?" + expectedQuery)); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -568,7 +568,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestQueryWithMultipleQueryParams() throws Exception { String expectedQuery = "param1=value1¶m2=value2"; - webRequest.setUrl(new URL("http://example.com/example?" + expectedQuery)); + webRequest.setUrl(new URL("https://example.com/example?" + expectedQuery)); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -609,7 +609,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestRemotePort8080() throws Exception { - webRequest.setUrl(new URL("http://example.com:8080/")); + webRequest.setUrl(new URL("https://example.com:8080/")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -618,7 +618,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestRemotePort80WithDefault() throws Exception { - webRequest.setUrl(new URL("http://example.com/")); + webRequest.setUrl(new URL("https://example.com/")); MockHttpServletRequest actualRequest = requestBuilder.buildRequest(servletContext); @@ -650,7 +650,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestUrl() { String uri = requestBuilder.buildRequest(servletContext).getRequestURL().toString(); - assertThat(uri, equalTo("http://example.com/test/this/here")); + assertThat(uri, equalTo("https://example.com/test/this/here")); } @Test diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/MockMvcConnectionBuilderSupportTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/MockMvcConnectionBuilderSupportTests.java index 223aa24a911..176f48d78ea 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/MockMvcConnectionBuilderSupportTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/MockMvcConnectionBuilderSupportTests.java @@ -91,7 +91,7 @@ public class MockMvcConnectionBuilderSupportTests { WebConnection conn = this.builder.createConnection(this.client); assertMockMvcUsed(conn, "http://localhost/"); - assertMockMvcNotUsed(conn, "http://example.com/"); + assertMockMvcNotUsed(conn, "https://example.com/"); } @Test @@ -100,7 +100,7 @@ public class MockMvcConnectionBuilderSupportTests { WebConnection conn = new MockMvcWebConnectionBuilderSupport(mockMvc) {}.createConnection(this.client); assertMockMvcUsed(conn, "http://localhost/"); - assertMockMvcNotUsed(conn, "http://example.com/"); + assertMockMvcNotUsed(conn, "https://example.com/"); } @Test @@ -108,7 +108,7 @@ public class MockMvcConnectionBuilderSupportTests { WebConnection conn = this.builder.useMockMvcForHosts("example.com").createConnection(this.client); assertMockMvcUsed(conn, "http://localhost/"); - assertMockMvcUsed(conn, "http://example.com/"); + assertMockMvcUsed(conn, "https://example.com/"); assertMockMvcNotUsed(conn, "http://other.com/"); } diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/MockMvcWebClientBuilderTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/MockMvcWebClientBuilderTests.java index d033611a487..c008dd79ae5 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/MockMvcWebClientBuilderTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/MockMvcWebClientBuilderTests.java @@ -91,7 +91,7 @@ public class MockMvcWebClientBuilderTests { WebClient client = MockMvcWebClientBuilder.mockMvcSetup(this.mockMvc).build(); assertMockMvcUsed(client, "http://localhost/test"); - Assume.group(TestGroup.PERFORMANCE, () -> assertMockMvcNotUsed(client, "http://example.com/")); + Assume.group(TestGroup.PERFORMANCE, () -> assertMockMvcNotUsed(client, "https://example.com/")); } @Test @@ -100,7 +100,7 @@ public class MockMvcWebClientBuilderTests { WebClient client = MockMvcWebClientBuilder.mockMvcSetup(this.mockMvc).withDelegate(otherClient).build(); assertMockMvcUsed(client, "http://localhost/test"); - Assume.group(TestGroup.PERFORMANCE, () -> assertMockMvcNotUsed(client, "http://example.com/")); + Assume.group(TestGroup.PERFORMANCE, () -> assertMockMvcNotUsed(client, "https://example.com/")); } @Test // SPR-14066 diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/UrlRegexRequestMatcherTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/UrlRegexRequestMatcherTests.java index 1ee3e95dab7..e08e27d75ad 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/UrlRegexRequestMatcherTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/UrlRegexRequestMatcherTests.java @@ -30,7 +30,7 @@ public class UrlRegexRequestMatcherTests extends AbstractWebRequestMatcherTests @Test public void verifyExampleInClassLevelJavadoc() throws Exception { WebRequestMatcher cdnMatcher = new UrlRegexRequestMatcher(".*?//code.jquery.com/.*"); - assertMatches(cdnMatcher, "http://code.jquery.com/jquery-1.11.0.min.js"); + assertMatches(cdnMatcher, "https://code.jquery.com/jquery-1.11.0.min.js"); assertDoesNotMatch(cdnMatcher, "http://localhost/jquery-1.11.0.min.js"); } diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/webdriver/MockMvcHtmlUnitDriverBuilderTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/webdriver/MockMvcHtmlUnitDriverBuilderTests.java index 07145438823..6881c9b3caa 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/webdriver/MockMvcHtmlUnitDriverBuilderTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/htmlunit/webdriver/MockMvcHtmlUnitDriverBuilderTests.java @@ -87,7 +87,7 @@ public class MockMvcHtmlUnitDriverBuilderTests { this.driver = MockMvcHtmlUnitDriverBuilder.mockMvcSetup(this.mockMvc).withDelegate(otherDriver).build(); assertMockMvcUsed("http://localhost/test"); - Assume.group(TestGroup.PERFORMANCE, () -> assertMockMvcNotUsed("http://example.com/")); + Assume.group(TestGroup.PERFORMANCE, () -> assertMockMvcNotUsed("https://example.com/")); } @Test @@ -95,7 +95,7 @@ public class MockMvcHtmlUnitDriverBuilderTests { this.driver = MockMvcHtmlUnitDriverBuilder.mockMvcSetup(this.mockMvc).build(); assertMockMvcUsed("http://localhost/test"); - Assume.group(TestGroup.PERFORMANCE, () -> assertMockMvcNotUsed("http://example.com/")); + Assume.group(TestGroup.PERFORMANCE, () -> assertMockMvcNotUsed("https://example.com/")); } @Test diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/resultmatchers/FlashAttributeAssertionTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/resultmatchers/FlashAttributeAssertionTests.java index e2684e41097..f533d18d92b 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/resultmatchers/FlashAttributeAssertionTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/resultmatchers/FlashAttributeAssertionTests.java @@ -61,10 +61,10 @@ public class FlashAttributeAssertionTests { this.mockMvc.perform(post("/persons")) .andExpect(flash().attribute("one", "1")) .andExpect(flash().attribute("two", 2.222)) - .andExpect(flash().attribute("three", new URL("http://example.com"))) + .andExpect(flash().attribute("three", new URL("https://example.com"))) .andExpect(flash().attribute("one", equalTo("1"))) // Hamcrest... .andExpect(flash().attribute("two", equalTo(2.222))) - .andExpect(flash().attribute("three", equalTo(new URL("http://example.com")))); + .andExpect(flash().attribute("three", equalTo(new URL("https://example.com")))); } @Test @@ -83,7 +83,7 @@ public class FlashAttributeAssertionTests { public String save(RedirectAttributes redirectAttrs) throws Exception { redirectAttrs.addFlashAttribute("one", "1"); redirectAttrs.addFlashAttribute("two", 2.222); - redirectAttrs.addFlashAttribute("three", new URL("http://example.com")); + redirectAttrs.addFlashAttribute("three", new URL("https://example.com")); return "redirect:/person/1"; } } diff --git a/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/resultmatchers/XpathAssertionTests.java b/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/resultmatchers/XpathAssertionTests.java index cd3156405e6..b6b96384a79 100644 --- a/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/resultmatchers/XpathAssertionTests.java +++ b/spring-test/src/test/java/org/springframework/test/web/servlet/samples/standalone/resultmatchers/XpathAssertionTests.java @@ -53,7 +53,7 @@ import static org.springframework.web.bind.annotation.RequestMethod.*; public class XpathAssertionTests { private static final Map musicNamespace = - Collections.singletonMap("ns", "http://example.org/music/people"); + Collections.singletonMap("ns", "https://example.org/music/people"); private MockMvc mockMvc; @@ -160,7 +160,7 @@ public class XpathAssertionTests { .andExpect(status().isOk()) .andExpect(content().contentTypeCompatibleWith(MediaType.APPLICATION_ATOM_XML)) .andExpect(xpath("//feed/title").string("Test Feed")) - .andExpect(xpath("//feed/icon").string("http://www.example.com/favicon.ico")); + .andExpect(xpath("//feed/icon").string("https://www.example.com/favicon.ico")); } @@ -185,7 +185,7 @@ public class XpathAssertionTests { } @SuppressWarnings("unused") - @XmlRootElement(name="people", namespace="http://example.org/music/people") + @XmlRootElement(name="people", namespace="https://example.org/music/people") @XmlAccessorType(XmlAccessType.FIELD) private static class PeopleWrapper { @@ -224,7 +224,7 @@ public class XpathAssertionTests { return "\r\n" + "\r\n" + " Test Feed\r\n" - + " http://www.example.com/favicon.ico\r\n" + + " https://www.example.com/favicon.ico\r\n" + "\r\n\r\n"; } } diff --git a/spring-test/src/test/resources/META-INF/web-resources/WEB-INF/layouts/standardLayout.jsp b/spring-test/src/test/resources/META-INF/web-resources/WEB-INF/layouts/standardLayout.jsp index dc3f6216ae0..51499dabc98 100644 --- a/spring-test/src/test/resources/META-INF/web-resources/WEB-INF/layouts/standardLayout.jsp +++ b/spring-test/src/test/resources/META-INF/web-resources/WEB-INF/layouts/standardLayout.jsp @@ -1,6 +1,6 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %> - + diff --git a/spring-test/src/test/webapp/WEB-INF/layouts/main.jsp b/spring-test/src/test/webapp/WEB-INF/layouts/main.jsp index 408d8fc932a..a3f3f6584ae 100644 --- a/spring-test/src/test/webapp/WEB-INF/layouts/main.jsp +++ b/spring-test/src/test/webapp/WEB-INF/layouts/main.jsp @@ -1,6 +1,6 @@ <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> - + diff --git a/spring-tx/src/main/java/org/springframework/dao/DataAccessException.java b/spring-tx/src/main/java/org/springframework/dao/DataAccessException.java index 390e9bdfae7..85113ce5a59 100644 --- a/spring-tx/src/main/java/org/springframework/dao/DataAccessException.java +++ b/spring-tx/src/main/java/org/springframework/dao/DataAccessException.java @@ -21,7 +21,7 @@ import org.springframework.lang.Nullable; /** * Root of the hierarchy of data access exceptions discussed in - * Expert One-On-One J2EE Design and Development. + * Expert One-On-One J2EE Design and Development. * Please see Chapter 9 of this book for detailed discussion of the * motivation for this package. * diff --git a/spring-tx/src/main/java/org/springframework/dao/package-info.java b/spring-tx/src/main/java/org/springframework/dao/package-info.java index 8ed5a8ade97..da3fd7911e4 100644 --- a/spring-tx/src/main/java/org/springframework/dao/package-info.java +++ b/spring-tx/src/main/java/org/springframework/dao/package-info.java @@ -10,7 +10,7 @@ * leave them uncaught and treat all data access exceptions as fatal. * *

    The classes in this package are discussed in Chapter 9 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). */ @NonNullApi diff --git a/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java b/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java index 57b603982c4..a45e82af3c1 100644 --- a/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java +++ b/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java @@ -71,7 +71,7 @@ import org.springframework.util.StringUtils; * <?xml version="1.0" encoding="UTF-8"?> * <connector xmlns="http://java.sun.com/xml/ns/j2ee" * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - * xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd" + * xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee https://java.sun.com/xml/ns/j2ee/connector_1_5.xsd" * version="1.5"> * <vendor-name>Spring Framework</vendor-name> * <eis-type>Spring Connector</eis-type> diff --git a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java index e3ff87f3397..ceeb71b3d30 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java @@ -40,7 +40,7 @@ import org.springframework.transaction.PlatformTransactionManager; * target object with a transactional proxy, proxying all the interfaces that the target * implements. However, in Spring versions 2.0 and beyond, the functionality provided here * is superseded by the more convenient {@code tx:} XML namespace. See the declarative transaction management section of the + * href="https://bit.ly/qUwvwz">declarative transaction management section of the * Spring reference documentation to understand the modern options for managing * transactions in Spring applications. For these reasons, users should favor of * the {@code tx:} XML namespace as well as diff --git a/spring-tx/src/main/resources/org/springframework/transaction/config/spring-tx.xsd b/spring-tx/src/main/resources/org/springframework/transaction/config/spring-tx.xsd index 844fbad1b88..461d13a43f8 100644 --- a/spring-tx/src/main/resources/org/springframework/transaction/config/spring-tx.xsd +++ b/spring-tx/src/main/resources/org/springframework/transaction/config/spring-tx.xsd @@ -8,8 +8,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + this forum post. + * See this forum post. */ @Test public void testConflictingRulesToDetermineExactContract() { diff --git a/spring-web/src/main/java/org/springframework/http/HttpEntity.java b/spring-web/src/main/java/org/springframework/http/HttpEntity.java index 0589364c5ca..06dc1c2ddb7 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpEntity.java +++ b/spring-web/src/main/java/org/springframework/http/HttpEntity.java @@ -29,11 +29,11 @@ import org.springframework.util.ObjectUtils; * HttpHeaders headers = new HttpHeaders(); * headers.setContentType(MediaType.TEXT_PLAIN); * HttpEntity<String> entity = new HttpEntity<String>(helloWorld, headers); - * URI location = template.postForLocation("http://example.com", entity); + * URI location = template.postForLocation("https://example.com", entity); * * or *

    - * HttpEntity<String> entity = template.getForEntity("http://example.com", String.class);
    + * HttpEntity<String> entity = template.getForEntity("https://example.com", String.class);
      * String body = entity.getBody();
      * MediaType contentType = entity.getHeaders().getContentType();
      * 
    diff --git a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java index d4ece9f249e..c3d35d4b558 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -74,302 +74,302 @@ public class HttpHeaders implements MultiValueMap, Serializable /** * The HTTP {@code Accept} header field name. - * @see Section 5.3.2 of RFC 7231 + * @see Section 5.3.2 of RFC 7231 */ public static final String ACCEPT = "Accept"; /** * The HTTP {@code Accept-Charset} header field name. - * @see Section 5.3.3 of RFC 7231 + * @see Section 5.3.3 of RFC 7231 */ public static final String ACCEPT_CHARSET = "Accept-Charset"; /** * The HTTP {@code Accept-Encoding} header field name. - * @see Section 5.3.4 of RFC 7231 + * @see Section 5.3.4 of RFC 7231 */ public static final String ACCEPT_ENCODING = "Accept-Encoding"; /** * The HTTP {@code Accept-Language} header field name. - * @see Section 5.3.5 of RFC 7231 + * @see Section 5.3.5 of RFC 7231 */ public static final String ACCEPT_LANGUAGE = "Accept-Language"; /** * The HTTP {@code Accept-Ranges} header field name. - * @see Section 5.3.5 of RFC 7233 + * @see Section 5.3.5 of RFC 7233 */ public static final String ACCEPT_RANGES = "Accept-Ranges"; /** * The CORS {@code Access-Control-Allow-Credentials} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_ALLOW_CREDENTIALS = "Access-Control-Allow-Credentials"; /** * The CORS {@code Access-Control-Allow-Headers} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_ALLOW_HEADERS = "Access-Control-Allow-Headers"; /** * The CORS {@code Access-Control-Allow-Methods} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_ALLOW_METHODS = "Access-Control-Allow-Methods"; /** * The CORS {@code Access-Control-Allow-Origin} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_ALLOW_ORIGIN = "Access-Control-Allow-Origin"; /** * The CORS {@code Access-Control-Expose-Headers} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_EXPOSE_HEADERS = "Access-Control-Expose-Headers"; /** * The CORS {@code Access-Control-Max-Age} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_MAX_AGE = "Access-Control-Max-Age"; /** * The CORS {@code Access-Control-Request-Headers} request header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_REQUEST_HEADERS = "Access-Control-Request-Headers"; /** * The CORS {@code Access-Control-Request-Method} request header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_REQUEST_METHOD = "Access-Control-Request-Method"; /** * The HTTP {@code Age} header field name. - * @see Section 5.1 of RFC 7234 + * @see Section 5.1 of RFC 7234 */ public static final String AGE = "Age"; /** * The HTTP {@code Allow} header field name. - * @see Section 7.4.1 of RFC 7231 + * @see Section 7.4.1 of RFC 7231 */ public static final String ALLOW = "Allow"; /** * The HTTP {@code Authorization} header field name. - * @see Section 4.2 of RFC 7235 + * @see Section 4.2 of RFC 7235 */ public static final String AUTHORIZATION = "Authorization"; /** * The HTTP {@code Cache-Control} header field name. - * @see Section 5.2 of RFC 7234 + * @see Section 5.2 of RFC 7234 */ public static final String CACHE_CONTROL = "Cache-Control"; /** * The HTTP {@code Connection} header field name. - * @see Section 6.1 of RFC 7230 + * @see Section 6.1 of RFC 7230 */ public static final String CONNECTION = "Connection"; /** * The HTTP {@code Content-Encoding} header field name. - * @see Section 3.1.2.2 of RFC 7231 + * @see Section 3.1.2.2 of RFC 7231 */ public static final String CONTENT_ENCODING = "Content-Encoding"; /** * The HTTP {@code Content-Disposition} header field name. - * @see RFC 6266 + * @see RFC 6266 */ public static final String CONTENT_DISPOSITION = "Content-Disposition"; /** * The HTTP {@code Content-Language} header field name. - * @see Section 3.1.3.2 of RFC 7231 + * @see Section 3.1.3.2 of RFC 7231 */ public static final String CONTENT_LANGUAGE = "Content-Language"; /** * The HTTP {@code Content-Length} header field name. - * @see Section 3.3.2 of RFC 7230 + * @see Section 3.3.2 of RFC 7230 */ public static final String CONTENT_LENGTH = "Content-Length"; /** * The HTTP {@code Content-Location} header field name. - * @see Section 3.1.4.2 of RFC 7231 + * @see Section 3.1.4.2 of RFC 7231 */ public static final String CONTENT_LOCATION = "Content-Location"; /** * The HTTP {@code Content-Range} header field name. - * @see Section 4.2 of RFC 7233 + * @see Section 4.2 of RFC 7233 */ public static final String CONTENT_RANGE = "Content-Range"; /** * The HTTP {@code Content-Type} header field name. - * @see Section 3.1.1.5 of RFC 7231 + * @see Section 3.1.1.5 of RFC 7231 */ public static final String CONTENT_TYPE = "Content-Type"; /** * The HTTP {@code Cookie} header field name. - * @see Section 4.3.4 of RFC 2109 + * @see Section 4.3.4 of RFC 2109 */ public static final String COOKIE = "Cookie"; /** * The HTTP {@code Date} header field name. - * @see Section 7.1.1.2 of RFC 7231 + * @see Section 7.1.1.2 of RFC 7231 */ public static final String DATE = "Date"; /** * The HTTP {@code ETag} header field name. - * @see Section 2.3 of RFC 7232 + * @see Section 2.3 of RFC 7232 */ public static final String ETAG = "ETag"; /** * The HTTP {@code Expect} header field name. - * @see Section 5.1.1 of RFC 7231 + * @see Section 5.1.1 of RFC 7231 */ public static final String EXPECT = "Expect"; /** * The HTTP {@code Expires} header field name. - * @see Section 5.3 of RFC 7234 + * @see Section 5.3 of RFC 7234 */ public static final String EXPIRES = "Expires"; /** * The HTTP {@code From} header field name. - * @see Section 5.5.1 of RFC 7231 + * @see Section 5.5.1 of RFC 7231 */ public static final String FROM = "From"; /** * The HTTP {@code Host} header field name. - * @see Section 5.4 of RFC 7230 + * @see Section 5.4 of RFC 7230 */ public static final String HOST = "Host"; /** * The HTTP {@code If-Match} header field name. - * @see Section 3.1 of RFC 7232 + * @see Section 3.1 of RFC 7232 */ public static final String IF_MATCH = "If-Match"; /** * The HTTP {@code If-Modified-Since} header field name. - * @see Section 3.3 of RFC 7232 + * @see Section 3.3 of RFC 7232 */ public static final String IF_MODIFIED_SINCE = "If-Modified-Since"; /** * The HTTP {@code If-None-Match} header field name. - * @see Section 3.2 of RFC 7232 + * @see Section 3.2 of RFC 7232 */ public static final String IF_NONE_MATCH = "If-None-Match"; /** * The HTTP {@code If-Range} header field name. - * @see Section 3.2 of RFC 7233 + * @see Section 3.2 of RFC 7233 */ public static final String IF_RANGE = "If-Range"; /** * The HTTP {@code If-Unmodified-Since} header field name. - * @see Section 3.4 of RFC 7232 + * @see Section 3.4 of RFC 7232 */ public static final String IF_UNMODIFIED_SINCE = "If-Unmodified-Since"; /** * The HTTP {@code Last-Modified} header field name. - * @see Section 2.2 of RFC 7232 + * @see Section 2.2 of RFC 7232 */ public static final String LAST_MODIFIED = "Last-Modified"; /** * The HTTP {@code Link} header field name. - * @see RFC 5988 + * @see RFC 5988 */ public static final String LINK = "Link"; /** * The HTTP {@code Location} header field name. - * @see Section 7.1.2 of RFC 7231 + * @see Section 7.1.2 of RFC 7231 */ public static final String LOCATION = "Location"; /** * The HTTP {@code Max-Forwards} header field name. - * @see Section 5.1.2 of RFC 7231 + * @see Section 5.1.2 of RFC 7231 */ public static final String MAX_FORWARDS = "Max-Forwards"; /** * The HTTP {@code Origin} header field name. - * @see RFC 6454 + * @see RFC 6454 */ public static final String ORIGIN = "Origin"; /** * The HTTP {@code Pragma} header field name. - * @see Section 5.4 of RFC 7234 + * @see Section 5.4 of RFC 7234 */ public static final String PRAGMA = "Pragma"; /** * The HTTP {@code Proxy-Authenticate} header field name. - * @see Section 4.3 of RFC 7235 + * @see Section 4.3 of RFC 7235 */ public static final String PROXY_AUTHENTICATE = "Proxy-Authenticate"; /** * The HTTP {@code Proxy-Authorization} header field name. - * @see Section 4.4 of RFC 7235 + * @see Section 4.4 of RFC 7235 */ public static final String PROXY_AUTHORIZATION = "Proxy-Authorization"; /** * The HTTP {@code Range} header field name. - * @see Section 3.1 of RFC 7233 + * @see Section 3.1 of RFC 7233 */ public static final String RANGE = "Range"; /** * The HTTP {@code Referer} header field name. - * @see Section 5.5.2 of RFC 7231 + * @see Section 5.5.2 of RFC 7231 */ public static final String REFERER = "Referer"; /** * The HTTP {@code Retry-After} header field name. - * @see Section 7.1.3 of RFC 7231 + * @see Section 7.1.3 of RFC 7231 */ public static final String RETRY_AFTER = "Retry-After"; /** * The HTTP {@code Server} header field name. - * @see Section 7.4.2 of RFC 7231 + * @see Section 7.4.2 of RFC 7231 */ public static final String SERVER = "Server"; /** * The HTTP {@code Set-Cookie} header field name. - * @see Section 4.2.2 of RFC 2109 + * @see Section 4.2.2 of RFC 2109 */ public static final String SET_COOKIE = "Set-Cookie"; /** * The HTTP {@code Set-Cookie2} header field name. - * @see RFC 2965 + * @see RFC 2965 */ public static final String SET_COOKIE2 = "Set-Cookie2"; /** * The HTTP {@code TE} header field name. - * @see Section 4.3 of RFC 7230 + * @see Section 4.3 of RFC 7230 */ public static final String TE = "TE"; /** * The HTTP {@code Trailer} header field name. - * @see Section 4.4 of RFC 7230 + * @see Section 4.4 of RFC 7230 */ public static final String TRAILER = "Trailer"; /** * The HTTP {@code Transfer-Encoding} header field name. - * @see Section 3.3.1 of RFC 7230 + * @see Section 3.3.1 of RFC 7230 */ public static final String TRANSFER_ENCODING = "Transfer-Encoding"; /** * The HTTP {@code Upgrade} header field name. - * @see Section 6.7 of RFC 7230 + * @see Section 6.7 of RFC 7230 */ public static final String UPGRADE = "Upgrade"; /** * The HTTP {@code User-Agent} header field name. - * @see Section 5.5.3 of RFC 7231 + * @see Section 5.5.3 of RFC 7231 */ public static final String USER_AGENT = "User-Agent"; /** * The HTTP {@code Vary} header field name. - * @see Section 7.1.4 of RFC 7231 + * @see Section 7.1.4 of RFC 7231 */ public static final String VARY = "Vary"; /** * The HTTP {@code Via} header field name. - * @see Section 5.7.1 of RFC 7230 + * @see Section 5.7.1 of RFC 7230 */ public static final String VIA = "Via"; /** * The HTTP {@code Warning} header field name. - * @see Section 5.5 of RFC 7234 + * @see Section 5.5 of RFC 7234 */ public static final String WARNING = "Warning"; /** * The HTTP {@code WWW-Authenticate} header field name. - * @see Section 4.1 of RFC 7235 + * @see Section 4.1 of RFC 7235 */ public static final String WWW_AUTHENTICATE = "WWW-Authenticate"; diff --git a/spring-web/src/main/java/org/springframework/http/HttpRange.java b/spring-web/src/main/java/org/springframework/http/HttpRange.java index e4c0164c910..c1025ac1df6 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpRange.java +++ b/spring-web/src/main/java/org/springframework/http/HttpRange.java @@ -38,7 +38,7 @@ import org.springframework.util.StringUtils; * @author Arjen Poutsma * @author Juergen Hoeller * @since 4.2 - * @see HTTP/1.1: Range Requests + * @see HTTP/1.1: Range Requests * @see HttpHeaders#setRange(List) * @see HttpHeaders#getRange() */ @@ -99,7 +99,7 @@ public abstract class HttpRange { * Create an {@code HttpRange} from the given position to the end. * @param firstBytePos the first byte position * @return a byte range that ranges from {@code firstPos} till the end - * @see Byte Ranges + * @see Byte Ranges */ public static HttpRange createByteRange(long firstBytePos) { return new ByteRange(firstBytePos, null); @@ -110,7 +110,7 @@ public abstract class HttpRange { * @param firstBytePos the first byte position * @param lastBytePos the last byte position * @return a byte range that ranges from {@code firstPos} till {@code lastPos} - * @see Byte Ranges + * @see Byte Ranges */ public static HttpRange createByteRange(long firstBytePos, long lastBytePos) { return new ByteRange(firstBytePos, lastBytePos); @@ -120,7 +120,7 @@ public abstract class HttpRange { * Create an {@code HttpRange} that ranges over the last given number of bytes. * @param suffixLength the number of bytes for the range * @return a byte range that ranges over the last {@code suffixLength} number of bytes - * @see Byte Ranges + * @see Byte Ranges */ public static HttpRange createSuffixRange(long suffixLength) { return new SuffixByteRange(suffixLength); @@ -224,7 +224,7 @@ public abstract class HttpRange { /** * Represents an HTTP/1.1 byte range, with a first and optional last position. - * @see Byte Ranges + * @see Byte Ranges * @see HttpRange#createByteRange(long) * @see HttpRange#createByteRange(long, long) */ @@ -300,7 +300,7 @@ public abstract class HttpRange { /** * Represents an HTTP/1.1 suffix byte range, with a number of suffix bytes. - * @see Byte Ranges + * @see Byte Ranges * @see HttpRange#createSuffixRange(long) */ private static class SuffixByteRange extends HttpRange { diff --git a/spring-web/src/main/java/org/springframework/http/HttpStatus.java b/spring-web/src/main/java/org/springframework/http/HttpStatus.java index 897b1a25820..e1bf669cd12 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpStatus.java +++ b/spring-web/src/main/java/org/springframework/http/HttpStatus.java @@ -28,8 +28,8 @@ import org.springframework.lang.Nullable; * @author Brian Clozel * @since 3.0 * @see HttpStatus.Series - * @see HTTP Status Code Registry - * @see List of HTTP status codes - Wikipedia + * @see HTTP Status Code Registry + * @see List of HTTP status codes - Wikipedia */ public enum HttpStatus { @@ -37,22 +37,22 @@ public enum HttpStatus { /** * {@code 100 Continue}. - * @see HTTP/1.1: Semantics and Content, section 6.2.1 + * @see HTTP/1.1: Semantics and Content, section 6.2.1 */ CONTINUE(100, "Continue"), /** * {@code 101 Switching Protocols}. - * @see HTTP/1.1: Semantics and Content, section 6.2.2 + * @see HTTP/1.1: Semantics and Content, section 6.2.2 */ SWITCHING_PROTOCOLS(101, "Switching Protocols"), /** * {@code 102 Processing}. - * @see WebDAV + * @see WebDAV */ PROCESSING(102, "Processing"), /** * {@code 103 Checkpoint}. - * @see A proposal for supporting + * @see A proposal for supporting * resumable POST/PUT HTTP requests in HTTP/1.0 */ CHECKPOINT(103, "Checkpoint"), @@ -61,52 +61,52 @@ public enum HttpStatus { /** * {@code 200 OK}. - * @see HTTP/1.1: Semantics and Content, section 6.3.1 + * @see HTTP/1.1: Semantics and Content, section 6.3.1 */ OK(200, "OK"), /** * {@code 201 Created}. - * @see HTTP/1.1: Semantics and Content, section 6.3.2 + * @see HTTP/1.1: Semantics and Content, section 6.3.2 */ CREATED(201, "Created"), /** * {@code 202 Accepted}. - * @see HTTP/1.1: Semantics and Content, section 6.3.3 + * @see HTTP/1.1: Semantics and Content, section 6.3.3 */ ACCEPTED(202, "Accepted"), /** * {@code 203 Non-Authoritative Information}. - * @see HTTP/1.1: Semantics and Content, section 6.3.4 + * @see HTTP/1.1: Semantics and Content, section 6.3.4 */ NON_AUTHORITATIVE_INFORMATION(203, "Non-Authoritative Information"), /** * {@code 204 No Content}. - * @see HTTP/1.1: Semantics and Content, section 6.3.5 + * @see HTTP/1.1: Semantics and Content, section 6.3.5 */ NO_CONTENT(204, "No Content"), /** * {@code 205 Reset Content}. - * @see HTTP/1.1: Semantics and Content, section 6.3.6 + * @see HTTP/1.1: Semantics and Content, section 6.3.6 */ RESET_CONTENT(205, "Reset Content"), /** * {@code 206 Partial Content}. - * @see HTTP/1.1: Range Requests, section 4.1 + * @see HTTP/1.1: Range Requests, section 4.1 */ PARTIAL_CONTENT(206, "Partial Content"), /** * {@code 207 Multi-Status}. - * @see WebDAV + * @see WebDAV */ MULTI_STATUS(207, "Multi-Status"), /** * {@code 208 Already Reported}. - * @see WebDAV Binding Extensions + * @see WebDAV Binding Extensions */ ALREADY_REPORTED(208, "Already Reported"), /** * {@code 226 IM Used}. - * @see Delta encoding in HTTP + * @see Delta encoding in HTTP */ IM_USED(226, "IM Used"), @@ -114,51 +114,51 @@ public enum HttpStatus { /** * {@code 300 Multiple Choices}. - * @see HTTP/1.1: Semantics and Content, section 6.4.1 + * @see HTTP/1.1: Semantics and Content, section 6.4.1 */ MULTIPLE_CHOICES(300, "Multiple Choices"), /** * {@code 301 Moved Permanently}. - * @see HTTP/1.1: Semantics and Content, section 6.4.2 + * @see HTTP/1.1: Semantics and Content, section 6.4.2 */ MOVED_PERMANENTLY(301, "Moved Permanently"), /** * {@code 302 Found}. - * @see HTTP/1.1: Semantics and Content, section 6.4.3 + * @see HTTP/1.1: Semantics and Content, section 6.4.3 */ FOUND(302, "Found"), /** * {@code 302 Moved Temporarily}. - * @see HTTP/1.0, section 9.3 + * @see HTTP/1.0, section 9.3 * @deprecated in favor of {@link #FOUND} which will be returned from {@code HttpStatus.valueOf(302)} */ @Deprecated MOVED_TEMPORARILY(302, "Moved Temporarily"), /** * {@code 303 See Other}. - * @see HTTP/1.1: Semantics and Content, section 6.4.4 + * @see HTTP/1.1: Semantics and Content, section 6.4.4 */ SEE_OTHER(303, "See Other"), /** * {@code 304 Not Modified}. - * @see HTTP/1.1: Conditional Requests, section 4.1 + * @see HTTP/1.1: Conditional Requests, section 4.1 */ NOT_MODIFIED(304, "Not Modified"), /** * {@code 305 Use Proxy}. - * @see HTTP/1.1: Semantics and Content, section 6.4.5 + * @see HTTP/1.1: Semantics and Content, section 6.4.5 * @deprecated due to security concerns regarding in-band configuration of a proxy */ @Deprecated USE_PROXY(305, "Use Proxy"), /** * {@code 307 Temporary Redirect}. - * @see HTTP/1.1: Semantics and Content, section 6.4.7 + * @see HTTP/1.1: Semantics and Content, section 6.4.7 */ TEMPORARY_REDIRECT(307, "Temporary Redirect"), /** * {@code 308 Permanent Redirect}. - * @see RFC 7238 + * @see RFC 7238 */ PERMANENT_REDIRECT(308, "Permanent Redirect"), @@ -166,82 +166,82 @@ public enum HttpStatus { /** * {@code 400 Bad Request}. - * @see HTTP/1.1: Semantics and Content, section 6.5.1 + * @see HTTP/1.1: Semantics and Content, section 6.5.1 */ BAD_REQUEST(400, "Bad Request"), /** * {@code 401 Unauthorized}. - * @see HTTP/1.1: Authentication, section 3.1 + * @see HTTP/1.1: Authentication, section 3.1 */ UNAUTHORIZED(401, "Unauthorized"), /** * {@code 402 Payment Required}. - * @see HTTP/1.1: Semantics and Content, section 6.5.2 + * @see HTTP/1.1: Semantics and Content, section 6.5.2 */ PAYMENT_REQUIRED(402, "Payment Required"), /** * {@code 403 Forbidden}. - * @see HTTP/1.1: Semantics and Content, section 6.5.3 + * @see HTTP/1.1: Semantics and Content, section 6.5.3 */ FORBIDDEN(403, "Forbidden"), /** * {@code 404 Not Found}. - * @see HTTP/1.1: Semantics and Content, section 6.5.4 + * @see HTTP/1.1: Semantics and Content, section 6.5.4 */ NOT_FOUND(404, "Not Found"), /** * {@code 405 Method Not Allowed}. - * @see HTTP/1.1: Semantics and Content, section 6.5.5 + * @see HTTP/1.1: Semantics and Content, section 6.5.5 */ METHOD_NOT_ALLOWED(405, "Method Not Allowed"), /** * {@code 406 Not Acceptable}. - * @see HTTP/1.1: Semantics and Content, section 6.5.6 + * @see HTTP/1.1: Semantics and Content, section 6.5.6 */ NOT_ACCEPTABLE(406, "Not Acceptable"), /** * {@code 407 Proxy Authentication Required}. - * @see HTTP/1.1: Authentication, section 3.2 + * @see HTTP/1.1: Authentication, section 3.2 */ PROXY_AUTHENTICATION_REQUIRED(407, "Proxy Authentication Required"), /** * {@code 408 Request Timeout}. - * @see HTTP/1.1: Semantics and Content, section 6.5.7 + * @see HTTP/1.1: Semantics and Content, section 6.5.7 */ REQUEST_TIMEOUT(408, "Request Timeout"), /** * {@code 409 Conflict}. - * @see HTTP/1.1: Semantics and Content, section 6.5.8 + * @see HTTP/1.1: Semantics and Content, section 6.5.8 */ CONFLICT(409, "Conflict"), /** * {@code 410 Gone}. - * @see + * @see * HTTP/1.1: Semantics and Content, section 6.5.9 */ GONE(410, "Gone"), /** * {@code 411 Length Required}. - * @see + * @see * HTTP/1.1: Semantics and Content, section 6.5.10 */ LENGTH_REQUIRED(411, "Length Required"), /** * {@code 412 Precondition failed}. - * @see + * @see * HTTP/1.1: Conditional Requests, section 4.2 */ PRECONDITION_FAILED(412, "Precondition Failed"), /** * {@code 413 Payload Too Large}. * @since 4.1 - * @see + * @see * HTTP/1.1: Semantics and Content, section 6.5.11 */ PAYLOAD_TOO_LARGE(413, "Payload Too Large"), /** * {@code 413 Request Entity Too Large}. - * @see HTTP/1.1, section 10.4.14 + * @see HTTP/1.1, section 10.4.14 * @deprecated in favor of {@link #PAYLOAD_TOO_LARGE} which will be * returned from {@code HttpStatus.valueOf(413)} */ @@ -250,93 +250,93 @@ public enum HttpStatus { /** * {@code 414 URI Too Long}. * @since 4.1 - * @see + * @see * HTTP/1.1: Semantics and Content, section 6.5.12 */ URI_TOO_LONG(414, "URI Too Long"), /** * {@code 414 Request-URI Too Long}. - * @see HTTP/1.1, section 10.4.15 + * @see HTTP/1.1, section 10.4.15 * @deprecated in favor of {@link #URI_TOO_LONG} which will be returned from {@code HttpStatus.valueOf(414)} */ @Deprecated REQUEST_URI_TOO_LONG(414, "Request-URI Too Long"), /** * {@code 415 Unsupported Media Type}. - * @see + * @see * HTTP/1.1: Semantics and Content, section 6.5.13 */ UNSUPPORTED_MEDIA_TYPE(415, "Unsupported Media Type"), /** * {@code 416 Requested Range Not Satisfiable}. - * @see HTTP/1.1: Range Requests, section 4.4 + * @see HTTP/1.1: Range Requests, section 4.4 */ REQUESTED_RANGE_NOT_SATISFIABLE(416, "Requested range not satisfiable"), /** * {@code 417 Expectation Failed}. - * @see + * @see * HTTP/1.1: Semantics and Content, section 6.5.14 */ EXPECTATION_FAILED(417, "Expectation Failed"), /** * {@code 418 I'm a teapot}. - * @see HTCPCP/1.0 + * @see HTCPCP/1.0 */ I_AM_A_TEAPOT(418, "I'm a teapot"), /** * @deprecated See - * + * * WebDAV Draft Changes */ @Deprecated INSUFFICIENT_SPACE_ON_RESOURCE(419, "Insufficient Space On Resource"), /** * @deprecated See - * + * * WebDAV Draft Changes */ @Deprecated METHOD_FAILURE(420, "Method Failure"), /** * @deprecated - * See + * See * WebDAV Draft Changes */ @Deprecated DESTINATION_LOCKED(421, "Destination Locked"), /** * {@code 422 Unprocessable Entity}. - * @see WebDAV + * @see WebDAV */ UNPROCESSABLE_ENTITY(422, "Unprocessable Entity"), /** * {@code 423 Locked}. - * @see WebDAV + * @see WebDAV */ LOCKED(423, "Locked"), /** * {@code 424 Failed Dependency}. - * @see WebDAV + * @see WebDAV */ FAILED_DEPENDENCY(424, "Failed Dependency"), /** * {@code 426 Upgrade Required}. - * @see Upgrading to TLS Within HTTP/1.1 + * @see Upgrading to TLS Within HTTP/1.1 */ UPGRADE_REQUIRED(426, "Upgrade Required"), /** * {@code 428 Precondition Required}. - * @see Additional HTTP Status Codes + * @see Additional HTTP Status Codes */ PRECONDITION_REQUIRED(428, "Precondition Required"), /** * {@code 429 Too Many Requests}. - * @see Additional HTTP Status Codes + * @see Additional HTTP Status Codes */ TOO_MANY_REQUESTS(429, "Too Many Requests"), /** * {@code 431 Request Header Fields Too Large}. - * @see Additional HTTP Status Codes + * @see Additional HTTP Status Codes */ REQUEST_HEADER_FIELDS_TOO_LARGE(431, "Request Header Fields Too Large"), /** @@ -351,47 +351,47 @@ public enum HttpStatus { /** * {@code 500 Internal Server Error}. - * @see HTTP/1.1: Semantics and Content, section 6.6.1 + * @see HTTP/1.1: Semantics and Content, section 6.6.1 */ INTERNAL_SERVER_ERROR(500, "Internal Server Error"), /** * {@code 501 Not Implemented}. - * @see HTTP/1.1: Semantics and Content, section 6.6.2 + * @see HTTP/1.1: Semantics and Content, section 6.6.2 */ NOT_IMPLEMENTED(501, "Not Implemented"), /** * {@code 502 Bad Gateway}. - * @see HTTP/1.1: Semantics and Content, section 6.6.3 + * @see HTTP/1.1: Semantics and Content, section 6.6.3 */ BAD_GATEWAY(502, "Bad Gateway"), /** * {@code 503 Service Unavailable}. - * @see HTTP/1.1: Semantics and Content, section 6.6.4 + * @see HTTP/1.1: Semantics and Content, section 6.6.4 */ SERVICE_UNAVAILABLE(503, "Service Unavailable"), /** * {@code 504 Gateway Timeout}. - * @see HTTP/1.1: Semantics and Content, section 6.6.5 + * @see HTTP/1.1: Semantics and Content, section 6.6.5 */ GATEWAY_TIMEOUT(504, "Gateway Timeout"), /** * {@code 505 HTTP Version Not Supported}. - * @see HTTP/1.1: Semantics and Content, section 6.6.6 + * @see HTTP/1.1: Semantics and Content, section 6.6.6 */ HTTP_VERSION_NOT_SUPPORTED(505, "HTTP Version not supported"), /** * {@code 506 Variant Also Negotiates} - * @see Transparent Content Negotiation + * @see Transparent Content Negotiation */ VARIANT_ALSO_NEGOTIATES(506, "Variant Also Negotiates"), /** * {@code 507 Insufficient Storage} - * @see WebDAV + * @see WebDAV */ INSUFFICIENT_STORAGE(507, "Insufficient Storage"), /** * {@code 508 Loop Detected} - * @see WebDAV Binding Extensions + * @see WebDAV Binding Extensions */ LOOP_DETECTED(508, "Loop Detected"), /** @@ -400,12 +400,12 @@ public enum HttpStatus { BANDWIDTH_LIMIT_EXCEEDED(509, "Bandwidth Limit Exceeded"), /** * {@code 510 Not Extended} - * @see HTTP Extension Framework + * @see HTTP Extension Framework */ NOT_EXTENDED(510, "Not Extended"), /** * {@code 511 Network Authentication Required}. - * @see Additional HTTP Status Codes + * @see Additional HTTP Status Codes */ NETWORK_AUTHENTICATION_REQUIRED(511, "Network Authentication Required"); diff --git a/spring-web/src/main/java/org/springframework/http/MediaType.java b/spring-web/src/main/java/org/springframework/http/MediaType.java index 47d8c32ee97..34158d60207 100644 --- a/spring-web/src/main/java/org/springframework/http/MediaType.java +++ b/spring-web/src/main/java/org/springframework/http/MediaType.java @@ -45,7 +45,7 @@ import org.springframework.util.StringUtils; * @author Sebastien Deleuze * @author Kazuki Shimizu * @since 3.0 - * @see + * @see * HTTP 1.1: Semantics and Content, section 3.1.1.1 */ public class MediaType extends MimeType implements Serializable { @@ -638,7 +638,7 @@ public class MediaType extends MimeType implements Serializable { *
    audio/basic == text/html
    *
    audio/basic == audio/wave
    * @param mediaTypes the list of media types to be sorted - * @see HTTP 1.1: Semantics + * @see HTTP 1.1: Semantics * and Content, section 5.3.2 */ public static void sortBySpecificity(List mediaTypes) { diff --git a/spring-web/src/main/java/org/springframework/http/RequestEntity.java b/spring-web/src/main/java/org/springframework/http/RequestEntity.java index 3cc7f99ff6d..a1a3a7ff8a0 100644 --- a/spring-web/src/main/java/org/springframework/http/RequestEntity.java +++ b/spring-web/src/main/java/org/springframework/http/RequestEntity.java @@ -34,7 +34,7 @@ import org.springframework.util.ObjectUtils; *
      * MyRequest body = ...
      * RequestEntity<MyRequest> request = RequestEntity
    - *     .post(new URI("http://example.com/bar"))
    + *     .post(new URI("https://example.com/bar"))
      *     .accept(MediaType.APPLICATION_JSON)
      *     .body(body);
      * ResponseEntity<MyResponse> response = template.exchange(request, MyResponse.class);
    @@ -43,7 +43,7 @@ import org.springframework.util.ObjectUtils;
      * 

    If you would like to provide a URI template with variables, consider using * {@link org.springframework.web.util.UriTemplate}: *

    - * URI uri = new UriTemplate("http://example.com/{foo}").expand("bar");
    + * URI uri = new UriTemplate("https://example.com/{foo}").expand("bar");
      * RequestEntity<MyRequest> request = RequestEntity.post(uri).accept(MediaType.APPLICATION_JSON).body(body);
      * 
    * diff --git a/spring-web/src/main/java/org/springframework/http/ResponseCookie.java b/spring-web/src/main/java/org/springframework/http/ResponseCookie.java index fd388cbc5a5..54976dd8ab2 100644 --- a/spring-web/src/main/java/org/springframework/http/ResponseCookie.java +++ b/spring-web/src/main/java/org/springframework/http/ResponseCookie.java @@ -99,7 +99,7 @@ public final class ResponseCookie extends HttpCookie { /** * Return {@code true} if the cookie has the "HttpOnly" attribute. - * @see http://www.owasp.org/index.php/HTTPOnly + * @see https://www.owasp.org/index.php/HTTPOnly */ public boolean isHttpOnly() { return this.httpOnly; @@ -260,7 +260,7 @@ public final class ResponseCookie extends HttpCookie { /** * Add the "HttpOnly" attribute to the cookie. - * @see http://www.owasp.org/index.php/HTTPOnly + * @see https://www.owasp.org/index.php/HTTPOnly */ ResponseCookieBuilder httpOnly(boolean httpOnly); diff --git a/spring-web/src/main/java/org/springframework/http/ResponseEntity.java b/spring-web/src/main/java/org/springframework/http/ResponseEntity.java index e025b945669..83dc9cc0564 100644 --- a/spring-web/src/main/java/org/springframework/http/ResponseEntity.java +++ b/spring-web/src/main/java/org/springframework/http/ResponseEntity.java @@ -34,7 +34,7 @@ import org.springframework.util.ObjectUtils; * {@link org.springframework.web.client.RestTemplate#getForEntity getForEntity()} and * {@link org.springframework.web.client.RestTemplate#exchange exchange()}: *
    - * ResponseEntity<String> entity = template.getForEntity("http://example.com", String.class);
    + * ResponseEntity<String> entity = template.getForEntity("https://example.com", String.class);
      * String body = entity.getBody();
      * MediaType contentType = entity.getHeaders().getContentType();
      * HttpStatus statusCode = entity.getStatusCode();
    diff --git a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsAsyncClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsAsyncClientHttpRequestFactory.java
    index 2e9257a5e74..ae2e3de801a 100644
    --- a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsAsyncClientHttpRequestFactory.java
    +++ b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsAsyncClientHttpRequestFactory.java
    @@ -37,7 +37,7 @@ import org.springframework.util.Assert;
     
     /**
      * Asynchronous extension of the {@link HttpComponentsClientHttpRequestFactory}. Uses
    - * Apache HttpComponents
    + * Apache HttpComponents
      * HttpAsyncClient 4.0 to create requests.
      *
      * @author Arjen Poutsma
    diff --git a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java
    index b2db6a5dbcf..a66f82c287b 100644
    --- a/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java
    +++ b/spring-web/src/main/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java
    @@ -43,7 +43,7 @@ import org.springframework.util.Assert;
     
     /**
      * {@link org.springframework.http.client.ClientHttpRequestFactory} implementation that
    - * uses Apache HttpComponents
    + * uses Apache HttpComponents
      * HttpClient to create requests.
      *
      * 

    Allows to use a pre-configured {@link HttpClient} instance - diff --git a/spring-web/src/main/java/org/springframework/http/client/Netty4ClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/Netty4ClientHttpRequestFactory.java index 54ef771ee5c..1d6c1fbb22d 100644 --- a/spring-web/src/main/java/org/springframework/http/client/Netty4ClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/Netty4ClientHttpRequestFactory.java @@ -44,7 +44,7 @@ import org.springframework.util.Assert; /** * {@link org.springframework.http.client.ClientHttpRequestFactory} implementation - * that uses Netty 4 to create requests. + * that uses Netty 4 to create requests. * *

    Allows to use a pre-configured {@link EventLoopGroup} instance: useful for * sharing across multiple clients. diff --git a/spring-web/src/main/java/org/springframework/http/client/OkHttp3ClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/OkHttp3ClientHttpRequestFactory.java index 9c431351ca4..a0ca57711e1 100644 --- a/spring-web/src/main/java/org/springframework/http/client/OkHttp3ClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/OkHttp3ClientHttpRequestFactory.java @@ -35,7 +35,7 @@ import org.springframework.util.StringUtils; /** * {@link ClientHttpRequestFactory} implementation that uses - * OkHttp 3.x to create requests. + * OkHttp 3.x to create requests. * * @author Luciano Leggieri * @author Arjen Poutsma diff --git a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java index 50aa301da7f..7f8650d9965 100644 --- a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java +++ b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java @@ -49,7 +49,7 @@ public abstract class Jackson2CodecSupport { /** * The key for the hint to specify a "JSON View" for encoding or decoding * with the value expected to be a {@link Class}. - * @see Jackson JSON Views + * @see Jackson JSON Views */ public static final String JSON_VIEW_HINT = Jackson2CodecSupport.class.getName() + ".jsonView"; diff --git a/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java index 39dfc017d5e..5c430e2235c 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/FormHttpMessageConverter.java @@ -70,7 +70,7 @@ import org.springframework.util.StringUtils; * form.add("field 1", "value 1"); * form.add("field 2", "value 2"); * form.add("field 2", "value 3"); - * template.postForLocation("http://example.com/myForm", form); + * template.postForLocation("https://example.com/myForm", form); *

    * *

    The following snippet shows how to do a file upload: @@ -78,7 +78,7 @@ import org.springframework.util.StringUtils; * MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>(); * parts.add("field 1", "value 1"); * parts.add("file", new ClassPathResource("myFile.jpg")); - * template.postForLocation("http://example.com/myFileUpload", parts); + * template.postForLocation("https://example.com/myFileUpload", parts); *

    * *

    Some methods in this class were inspired by @@ -196,7 +196,7 @@ public class FormHttpMessageConverter implements HttpMessageConverterEncoded-Word + * @see Encoded-Word */ public void setMultipartCharset(Charset charset) { this.multipartCharset = charset; diff --git a/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java index 811fa9f9394..0058abbe490 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java @@ -26,7 +26,7 @@ import org.springframework.util.Assert; /** * Implementation of {@link org.springframework.http.converter.HttpMessageConverter HttpMessageConverter} - * that can read and write CBOR data format using + * that can read and write CBOR data format using * * the dedicated Jackson 2.x extension. * diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java index a7a1736887e..3f8404aba48 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java @@ -26,7 +26,7 @@ import org.springframework.lang.Nullable; /** * Implementation of {@link org.springframework.http.converter.HttpMessageConverter} that can read and - * write JSON using Jackson 2.x's {@link ObjectMapper}. + * write JSON using Jackson 2.x's {@link ObjectMapper}. * *

    This converter can be used to bind to typed beans, or untyped {@code HashMap} instances. * diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java index d4dda4bd711..98084241049 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianClientInterceptor.java @@ -45,7 +45,7 @@ import org.springframework.util.Assert; * *

    Hessian is a slim, binary RPC protocol. * For information on Hessian, see the - * Hessian website + * Hessian website * Note: As of Spring 4.0, this client requires Hessian 4.0 or above. * *

    Note: There is no requirement for services accessed with this proxy factory diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java index c82ad127c8a..e7cde894f26 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianExporter.java @@ -46,7 +46,7 @@ import org.springframework.util.CommonsLogWriter; * *

    Hessian is a slim, binary RPC protocol. * For information on Hessian, see the - * Hessian website. + * Hessian website. * Note: As of Spring 4.0, this exporter requires Hessian 4.0 or above. * * @author Juergen Hoeller diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianProxyFactoryBean.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianProxyFactoryBean.java index e2f16edec20..39d2d6aa0a3 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianProxyFactoryBean.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianProxyFactoryBean.java @@ -26,7 +26,7 @@ import org.springframework.lang.Nullable; * *

    Hessian is a slim, binary RPC protocol. * For information on Hessian, see the - * Hessian website + * Hessian website * Note: As of Spring 4.0, this proxy factory requires Hessian 4.0 or above. * *

    The service URL must be an HTTP URL exposing a Hessian service. diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java index 4ab27910fb2..1ef0ee24aab 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java @@ -34,7 +34,7 @@ import org.springframework.web.util.NestedServletException; * *

    Hessian is a slim, binary RPC protocol. * For information on Hessian, see the - * Hessian website. + * Hessian website. * Note: As of Spring 4.0, this exporter requires Hessian 4.0 or above. * *

    Hessian services exported with this class can be accessed by diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java index 967622ae436..96c27722cdd 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/SimpleHessianServiceExporter.java @@ -33,7 +33,7 @@ import org.springframework.util.FileCopyUtils; * *

    Hessian is a slim, binary RPC protocol. * For information on Hessian, see the - * Hessian website. + * Hessian website. * Note: As of Spring 4.0, this exporter requires Hessian 4.0 or above. * *

    Hessian services exported with this class can be accessed by diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/package-info.java b/spring-web/src/main/java/org/springframework/remoting/caucho/package-info.java index 2ed8a37dab4..30d03c51762 100644 --- a/spring-web/src/main/java/org/springframework/remoting/caucho/package-info.java +++ b/spring-web/src/main/java/org/springframework/remoting/caucho/package-info.java @@ -5,7 +5,7 @@ * *

    Hessian is a slim, binary RPC protocol over HTTP. * For information on Hessian, see the - * Hessian website + * Hessian website */ @NonNullApi @NonNullFields diff --git a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpComponentsHttpInvokerRequestExecutor.java b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpComponentsHttpInvokerRequestExecutor.java index dd654589947..e35adf1ebb6 100644 --- a/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpComponentsHttpInvokerRequestExecutor.java +++ b/spring-web/src/main/java/org/springframework/remoting/httpinvoker/HttpComponentsHttpInvokerRequestExecutor.java @@ -47,7 +47,7 @@ import org.springframework.util.Assert; /** * {@link org.springframework.remoting.httpinvoker.HttpInvokerRequestExecutor} implementation that uses - * Apache HttpComponents HttpClient + * Apache HttpComponents HttpClient * to execute POST requests. * *

    Allows to use a pre-configured {@link org.apache.http.client.HttpClient} diff --git a/spring-web/src/main/java/org/springframework/web/SpringServletContainerInitializer.java b/spring-web/src/main/java/org/springframework/web/SpringServletContainerInitializer.java index 69ad8e5dd88..8ff4b4aaebf 100644 --- a/spring-web/src/main/java/org/springframework/web/SpringServletContainerInitializer.java +++ b/spring-web/src/main/java/org/springframework/web/SpringServletContainerInitializer.java @@ -43,7 +43,7 @@ import org.springframework.util.ReflectionUtils; * the JAR Services API {@link ServiceLoader#load(Class)} method detecting the * {@code spring-web} module's {@code META-INF/services/javax.servlet.ServletContainerInitializer} * service provider configuration file. See the - * + * * JAR Services API documentation as well as section 8.2.4 of the Servlet 3.0 * Final Draft specification for complete details. * diff --git a/spring-web/src/main/java/org/springframework/web/bind/annotation/CrossOrigin.java b/spring-web/src/main/java/org/springframework/web/bind/annotation/CrossOrigin.java index 1732fea367e..ac2f82d114e 100644 --- a/spring-web/src/main/java/org/springframework/web/bind/annotation/CrossOrigin.java +++ b/spring-web/src/main/java/org/springframework/web/bind/annotation/CrossOrigin.java @@ -77,12 +77,12 @@ public @interface CrossOrigin { /** * The list of allowed origins that be specific origins, e.g. - * {@code "http://domain1.com"}, or {@code "*"} for all origins. + * {@code "https://domain1.com"}, or {@code "*"} for all origins. *

    A matched origin is listed in the {@code Access-Control-Allow-Origin} * response header of preflight actual CORS requests. *

    By default all origins are allowed. *

    Note: CORS checks use values from "Forwarded" - * (RFC 7239), + * (RFC 7239), * "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" headers, * if present, in order to reflect the client-originated address. * Consider using the {@code ForwardedHeaderFilter} in order to choose from a diff --git a/spring-web/src/main/java/org/springframework/web/client/AsyncRestOperations.java b/spring-web/src/main/java/org/springframework/web/client/AsyncRestOperations.java index 1cc852c9689..c9d92a2aff4 100644 --- a/spring-web/src/main/java/org/springframework/web/client/AsyncRestOperations.java +++ b/spring-web/src/main/java/org/springframework/web/client/AsyncRestOperations.java @@ -351,7 +351,7 @@ public interface AsyncRestOperations { * new ParameterizedTypeReference<List<MyBean>>() {}; * * ResponseEntity<List<MyBean>> response = - * template.exchange("http://example.com",HttpMethod.GET, null, myBean); + * template.exchange("https://example.com",HttpMethod.GET, null, myBean); * * @param url the URL * @param method the HTTP method (GET, POST, etc) @@ -375,7 +375,7 @@ public interface AsyncRestOperations { * new ParameterizedTypeReference<List<MyBean>>() {}; * * ResponseEntity<List<MyBean>> response = - * template.exchange("http://example.com",HttpMethod.GET, null, myBean); + * template.exchange("https://example.com",HttpMethod.GET, null, myBean); * * @param url the URL * @param method the HTTP method (GET, POST, etc) @@ -399,7 +399,7 @@ public interface AsyncRestOperations { * new ParameterizedTypeReference<List<MyBean>>() {}; * * ResponseEntity<List<MyBean>> response = - * template.exchange("http://example.com",HttpMethod.GET, null, myBean); + * template.exchange("https://example.com",HttpMethod.GET, null, myBean); * * @param url the URL * @param method the HTTP method (GET, POST, etc) diff --git a/spring-web/src/main/java/org/springframework/web/client/MessageBodyClientHttpResponseWrapper.java b/spring-web/src/main/java/org/springframework/web/client/MessageBodyClientHttpResponseWrapper.java index 77502a0ff25..164d509b613 100644 --- a/spring-web/src/main/java/org/springframework/web/client/MessageBodyClientHttpResponseWrapper.java +++ b/spring-web/src/main/java/org/springframework/web/client/MessageBodyClientHttpResponseWrapper.java @@ -32,7 +32,7 @@ import org.springframework.lang.Nullable; * * @author Brian Clozel * @since 4.1.5 - * @see RFC 7230 Section 3.3.3 + * @see RFC 7230 Section 3.3.3 */ class MessageBodyClientHttpResponseWrapper implements ClientHttpResponse { diff --git a/spring-web/src/main/java/org/springframework/web/client/RestOperations.java b/spring-web/src/main/java/org/springframework/web/client/RestOperations.java index c8e048cddf0..33b1d01e1f6 100644 --- a/spring-web/src/main/java/org/springframework/web/client/RestOperations.java +++ b/spring-web/src/main/java/org/springframework/web/client/RestOperations.java @@ -555,7 +555,7 @@ public interface RestOperations { * new ParameterizedTypeReference<List<MyBean>>() {}; * * ResponseEntity<List<MyBean>> response = - * template.exchange("http://example.com",HttpMethod.GET, null, myBean); + * template.exchange("https://example.com",HttpMethod.GET, null, myBean); * * @param url the URL * @param method the HTTP method (GET, POST, etc) @@ -578,7 +578,7 @@ public interface RestOperations { * new ParameterizedTypeReference<List<MyBean>>() {}; * * ResponseEntity<List<MyBean>> response = - * template.exchange("http://example.com",HttpMethod.GET, null, myBean); + * template.exchange("https://example.com",HttpMethod.GET, null, myBean); * * @param url the URL * @param method the HTTP method (GET, POST, etc) @@ -601,7 +601,7 @@ public interface RestOperations { * new ParameterizedTypeReference<List<MyBean>>() {}; * * ResponseEntity<List<MyBean>> response = - * template.exchange("http://example.com",HttpMethod.GET, null, myBean); + * template.exchange("https://example.com",HttpMethod.GET, null, myBean); * * @param url the URL * @param method the HTTP method (GET, POST, etc) @@ -621,7 +621,7 @@ public interface RestOperations { *

     	 * MyRequest body = ...
     	 * RequestEntity request = RequestEntity
    -	 *     .post(new URI("http://example.com/foo"))
    +	 *     .post(new URI("https://example.com/foo"))
     	 *     .accept(MediaType.APPLICATION_JSON)
     	 *     .body(body);
     	 * ResponseEntity<MyResponse> response = template.exchange(request, MyResponse.class);
    @@ -641,7 +641,7 @@ public interface RestOperations {
     	 * 
     	 * MyRequest body = ...
     	 * RequestEntity request = RequestEntity
    -	 *     .post(new URI("http://example.com/foo"))
    +	 *     .post(new URI("https://example.com/foo"))
     	 *     .accept(MediaType.APPLICATION_JSON)
     	 *     .body(body);
     	 * ParameterizedTypeReference<List<MyResponse>> myBean =
    diff --git a/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java b/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java
    index 0a236968a2a..3b885f39bb7 100644
    --- a/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java
    +++ b/spring-web/src/main/java/org/springframework/web/cors/CorsConfiguration.java
    @@ -45,7 +45,7 @@ import org.springframework.util.StringUtils;
      * @author Juergen Hoeller
      * @author Sam Brannen
      * @since 4.2
    - * @see CORS spec
    + * @see CORS spec
      */
     public class CorsConfiguration {
     
    @@ -108,7 +108,7 @@ public class CorsConfiguration {
     
     
     	/**
    -	 * Set the origins to allow, e.g. {@code "http://domain1.com"}.
    +	 * Set the origins to allow, e.g. {@code "https://domain1.com"}.
     	 * 

    The special value {@code "*"} allows all domains. *

    By default this is not set. */ @@ -146,7 +146,7 @@ public class CorsConfiguration { *

    If not set, only {@code "GET"} and {@code "HEAD"} are allowed. *

    By default this is not set. *

    Note: CORS checks use values from "Forwarded" - * (RFC 7239), + * (RFC 7239), * "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" headers, * if present, in order to reflect the client-originated address. * Consider using the {@code ForwardedHeaderFilter} in order to choose from a diff --git a/spring-web/src/main/java/org/springframework/web/cors/CorsProcessor.java b/spring-web/src/main/java/org/springframework/web/cors/CorsProcessor.java index 16619f8211b..c7b946236fe 100644 --- a/spring-web/src/main/java/org/springframework/web/cors/CorsProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/cors/CorsProcessor.java @@ -34,7 +34,7 @@ import org.springframework.lang.Nullable; * @author Sebastien Deleuze * @author Rossen Stoyanchev * @since 4.2 - * @see CORS W3C recommendation + * @see CORS W3C recommendation * @see org.springframework.web.servlet.handler.AbstractHandlerMapping#setCorsProcessor */ public interface CorsProcessor { diff --git a/spring-web/src/main/java/org/springframework/web/cors/CorsUtils.java b/spring-web/src/main/java/org/springframework/web/cors/CorsUtils.java index 654d220715d..2e31588101c 100644 --- a/spring-web/src/main/java/org/springframework/web/cors/CorsUtils.java +++ b/spring-web/src/main/java/org/springframework/web/cors/CorsUtils.java @@ -23,7 +23,7 @@ import org.springframework.http.HttpMethod; /** * Utility class for CORS request handling based on the - * CORS W3C recommendation. + * CORS W3C recommendation. * * @author Sebastien Deleuze * @since 4.2 diff --git a/spring-web/src/main/java/org/springframework/web/cors/DefaultCorsProcessor.java b/spring-web/src/main/java/org/springframework/web/cors/DefaultCorsProcessor.java index fcc5fd4a74f..1c8b0ec136d 100644 --- a/spring-web/src/main/java/org/springframework/web/cors/DefaultCorsProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/cors/DefaultCorsProcessor.java @@ -40,7 +40,7 @@ import org.springframework.web.util.WebUtils; /** * The default implementation of {@link CorsProcessor}, as defined by the - * CORS W3C recommendation. + * CORS W3C recommendation. * *

    Note that when input {@link CorsConfiguration} is {@code null}, this * implementation does not reject simple or actual requests outright but simply diff --git a/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsProcessor.java b/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsProcessor.java index 9e2ef96b904..c27a06575c9 100644 --- a/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsProcessor.java @@ -28,7 +28,7 @@ import org.springframework.web.server.ServerWebExchange; * @author Sebastien Deleuze * @author Rossen Stoyanchev * @since 5.0 - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public interface CorsProcessor { diff --git a/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsUtils.java b/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsUtils.java index 63bce2af389..ff9324b80c7 100644 --- a/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsUtils.java +++ b/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsUtils.java @@ -26,7 +26,7 @@ import org.springframework.web.util.UriComponentsBuilder; /** * Utility class for CORS reactive request handling based on the - * CORS W3C recommendation. + * CORS W3C recommendation. * * @author Sebastien Deleuze * @since 5.0 @@ -55,7 +55,7 @@ public abstract class CorsUtils { * @return {@code true} if the request is a same-origin one, {@code false} in case * of a cross-origin request *

    Note: this method uses values from "Forwarded" - * (RFC 7239), + * (RFC 7239), * "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" headers, * if present, in order to reflect the client-originated address. * Consider using the {@code ForwardedHeaderFilter} in order to choose from a diff --git a/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsWebFilter.java b/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsWebFilter.java index f397a4e57fb..c2926bb43b7 100644 --- a/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsWebFilter.java +++ b/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsWebFilter.java @@ -23,7 +23,7 @@ import org.springframework.web.server.WebFilterChain; * * @author Sebastien Deleuze * @since 5.0 - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public class CorsWebFilter implements WebFilter { diff --git a/spring-web/src/main/java/org/springframework/web/cors/reactive/DefaultCorsProcessor.java b/spring-web/src/main/java/org/springframework/web/cors/reactive/DefaultCorsProcessor.java index d9c17d252b0..5881e7e1042 100644 --- a/spring-web/src/main/java/org/springframework/web/cors/reactive/DefaultCorsProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/cors/reactive/DefaultCorsProcessor.java @@ -35,7 +35,7 @@ import org.springframework.web.server.ServerWebExchange; /** * The default implementation of {@link CorsProcessor}, - * as defined by the CORS W3C recommendation. + * as defined by the CORS W3C recommendation. * *

    Note that when input {@link CorsConfiguration} is {@code null}, this * implementation does not reject simple or actual requests outright but simply diff --git a/spring-web/src/main/java/org/springframework/web/filter/CorsFilter.java b/spring-web/src/main/java/org/springframework/web/filter/CorsFilter.java index 658bc50bb6e..d85fce5505a 100644 --- a/spring-web/src/main/java/org/springframework/web/filter/CorsFilter.java +++ b/spring-web/src/main/java/org/springframework/web/filter/CorsFilter.java @@ -48,7 +48,7 @@ import org.springframework.web.cors.UrlBasedCorsConfigurationSource; * * @author Sebastien Deleuze * @since 4.2 - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public class CorsFilter extends OncePerRequestFilter { diff --git a/spring-web/src/main/java/org/springframework/web/multipart/MultipartResolver.java b/spring-web/src/main/java/org/springframework/web/multipart/MultipartResolver.java index aeb0542b3fa..c8d7b642391 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/MultipartResolver.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/MultipartResolver.java @@ -20,7 +20,7 @@ import javax.servlet.http.HttpServletRequest; /** * A strategy interface for multipart file upload resolution in accordance - * with RFC 1867. + * with RFC 1867. * Implementations are typically usable both within an application context * and standalone. * diff --git a/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartResolver.java b/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartResolver.java index b7215b43926..a887b48f765 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartResolver.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/commons/CommonsMultipartResolver.java @@ -39,7 +39,7 @@ import org.springframework.web.util.WebUtils; /** * Servlet-based {@link MultipartResolver} implementation for - * Apache Commons FileUpload + * Apache Commons FileUpload * 1.2 or above. * *

    Provides "maxUploadSize", "maxInMemorySize" and "defaultEncoding" settings as diff --git a/spring-web/src/main/java/org/springframework/web/multipart/commons/package-info.java b/spring-web/src/main/java/org/springframework/web/multipart/commons/package-info.java index 15ca9167778..03b636815d4 100644 --- a/spring-web/src/main/java/org/springframework/web/multipart/commons/package-info.java +++ b/spring-web/src/main/java/org/springframework/web/multipart/commons/package-info.java @@ -1,6 +1,6 @@ /** * MultipartResolver implementation for - * Apache Commons FileUpload. + * Apache Commons FileUpload. */ @NonNullApi @NonNullFields diff --git a/spring-web/src/main/java/org/springframework/web/util/HierarchicalUriComponents.java b/spring-web/src/main/java/org/springframework/web/util/HierarchicalUriComponents.java index ff7a0cc938f..96a7f8a1f83 100644 --- a/spring-web/src/main/java/org/springframework/web/util/HierarchicalUriComponents.java +++ b/spring-web/src/main/java/org/springframework/web/util/HierarchicalUriComponents.java @@ -46,7 +46,7 @@ import org.springframework.util.StringUtils; * @author Rossen Stoyanchev * @author Phillip Webb * @since 3.1.3 - * @see Hierarchical URIs + * @see Hierarchical URIs */ @SuppressWarnings("serial") final class HierarchicalUriComponents extends UriComponents { @@ -576,7 +576,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Enumeration used to identify the allowed characters per URI component. *

    Contains methods to indicate whether a given character is valid in a specific URI component. - * @see RFC 3986 + * @see RFC 3986 */ enum Type { @@ -666,7 +666,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code ALPHA} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isAlpha(int c) { return (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z'); @@ -674,7 +674,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code DIGIT} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isDigit(int c) { return (c >= '0' && c <= '9'); @@ -682,7 +682,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code gen-delims} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isGenericDelimiter(int c) { return (':' == c || '/' == c || '?' == c || '#' == c || '[' == c || ']' == c || '@' == c); @@ -690,7 +690,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code sub-delims} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isSubDelimiter(int c) { return ('!' == c || '$' == c || '&' == c || '\'' == c || '(' == c || ')' == c || '*' == c || '+' == c || @@ -699,7 +699,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code reserved} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isReserved(int c) { return (isGenericDelimiter(c) || isSubDelimiter(c)); @@ -707,7 +707,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code unreserved} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isUnreserved(int c) { return (isAlpha(c) || isDigit(c) || '-' == c || '.' == c || '_' == c || '~' == c); @@ -715,7 +715,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code pchar} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isPchar(int c) { return (isUnreserved(c) || isSubDelimiter(c) || ':' == c || '@' == c); diff --git a/spring-web/src/main/java/org/springframework/web/util/OpaqueUriComponents.java b/spring-web/src/main/java/org/springframework/web/util/OpaqueUriComponents.java index 148a0987f0e..fd076077b27 100644 --- a/spring-web/src/main/java/org/springframework/web/util/OpaqueUriComponents.java +++ b/spring-web/src/main/java/org/springframework/web/util/OpaqueUriComponents.java @@ -33,7 +33,7 @@ import org.springframework.util.ObjectUtils; * @author Arjen Poutsma * @author Phillip Webb * @since 3.2 - * @see Hierarchical vs Opaque URIs + * @see Hierarchical vs Opaque URIs */ @SuppressWarnings("serial") final class OpaqueUriComponents extends UriComponents { diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java index 5503d416a38..396aff1b4aa 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java @@ -294,7 +294,7 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable { /** * Create a new {@code UriComponents} object from the URI associated with * the given HttpRequest while also overlaying with values from the headers - * "Forwarded" (RFC 7239), + * "Forwarded" (RFC 7239), * or "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" if * "Forwarded" is not found. * @param request the source request @@ -799,7 +799,7 @@ public class UriComponentsBuilder implements UriBuilder, Cloneable { /** * Adapt this builder's scheme+host+port from the given headers, specifically - * "Forwarded" (RFC 7239, + * "Forwarded" (RFC 7239, * or "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" if * "Forwarded" is not found. *

    Note: this method uses values from forwarded headers, diff --git a/spring-web/src/main/java/org/springframework/web/util/UriTemplate.java b/spring-web/src/main/java/org/springframework/web/util/UriTemplate.java index d2d6a0b3cc0..2b408ebc707 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriTemplate.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriTemplate.java @@ -84,13 +84,13 @@ public class UriTemplate implements Serializable { * the Map values variable values. The order of variables is not significant. *

    Example: *

    -	 * UriTemplate template = new UriTemplate("http://example.com/hotels/{hotel}/bookings/{booking}");
    +	 * UriTemplate template = new UriTemplate("https://example.com/hotels/{hotel}/bookings/{booking}");
     	 * Map<String, String> uriVariables = new HashMap<String, String>();
     	 * uriVariables.put("booking", "42");
     	 * uriVariables.put("hotel", "Rest & Relax");
     	 * System.out.println(template.expand(uriVariables));
     	 * 
    - * will print:
    {@code http://example.com/hotels/Rest%20%26%20Relax/bookings/42}
    + * will print:
    {@code https://example.com/hotels/Rest%20%26%20Relax/bookings/42}
    * @param uriVariables the map of URI variables * @return the expanded URI * @throws IllegalArgumentException if {@code uriVariables} is {@code null}; @@ -107,10 +107,10 @@ public class UriTemplate implements Serializable { * The order of variables is significant. *

    Example: *

    -     * UriTemplate template = new UriTemplate("http://example.com/hotels/{hotel}/bookings/{booking}");
    +     * UriTemplate template = new UriTemplate("https://example.com/hotels/{hotel}/bookings/{booking}");
          * System.out.println(template.expand("Rest & Relax", 42));
          * 
    - * will print:
    {@code http://example.com/hotels/Rest%20%26%20Relax/bookings/42}
    + * will print:
    {@code https://example.com/hotels/Rest%20%26%20Relax/bookings/42}
    * @param uriVariableValues the array of URI variables * @return the expanded URI * @throws IllegalArgumentException if {@code uriVariables} is {@code null} @@ -140,8 +140,8 @@ public class UriTemplate implements Serializable { * values are variable values, as occurred in the given URI. *

    Example: *

    -	 * UriTemplate template = new UriTemplate("http://example.com/hotels/{hotel}/bookings/{booking}");
    -	 * System.out.println(template.match("http://example.com/hotels/1/bookings/42"));
    +	 * UriTemplate template = new UriTemplate("https://example.com/hotels/{hotel}/bookings/{booking}");
    +	 * System.out.println(template.match("https://example.com/hotels/1/bookings/42"));
     	 * 
    * will print:
    {@code {hotel=1, booking=42}}
    * @param uri the URI to match to diff --git a/spring-web/src/main/java/org/springframework/web/util/UriUtils.java b/spring-web/src/main/java/org/springframework/web/util/UriUtils.java index dea13f0e17a..ed81719c56f 100644 --- a/spring-web/src/main/java/org/springframework/web/util/UriUtils.java +++ b/spring-web/src/main/java/org/springframework/web/util/UriUtils.java @@ -46,7 +46,7 @@ import org.springframework.util.StringUtils; * @author Juergen Hoeller * @author Rossen Stoyanchev * @since 3.0 - * @see RFC 3986 + * @see RFC 3986 */ public abstract class UriUtils { diff --git a/spring-web/src/main/java/org/springframework/web/util/WebUtils.java b/spring-web/src/main/java/org/springframework/web/util/WebUtils.java index cd3f86525ce..49e5d99d318 100644 --- a/spring-web/src/main/java/org/springframework/web/util/WebUtils.java +++ b/spring-web/src/main/java/org/springframework/web/util/WebUtils.java @@ -678,7 +678,7 @@ public abstract class WebUtils { * A list containing "*" means that all origins are allowed. * An empty list means only same origin is allowed. *

    Note: this method may use values from "Forwarded" - * (RFC 7239), + * (RFC 7239), * "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" headers, * if present, in order to reflect the client-originated address. * Consider using the {@code ForwardedHeaderFilter} in order to choose from a @@ -709,7 +709,7 @@ public abstract class WebUtils { * {@code Forwarded}, {@code X-Forwarded-Proto}, {@code X-Forwarded-Host} and * @code X-Forwarded-Port} headers. *

    Note: this method uses values from "Forwarded" - * (RFC 7239), + * (RFC 7239), * "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" headers, * if present, in order to reflect the client-originated address. * Consider using the {@code ForwardedHeaderFilter} in order to choose from a diff --git a/spring-web/src/main/resources/org/springframework/http/mime.types b/spring-web/src/main/resources/org/springframework/http/mime.types index 6a831323c82..597425c1184 100644 --- a/spring-web/src/main/resources/org/springframework/http/mime.types +++ b/spring-web/src/main/resources/org/springframework/http/mime.types @@ -9,7 +9,7 @@ # content languages and encodings, so choose them carefully. # # Internet media types should be registered as described in RFC 4288. -# The registry is at . +# The registry is at . # # This file was retrieved from https://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types?revision=1752884&view=co # diff --git a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java index 02739cda001..f28ec98b83d 100644 --- a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java +++ b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java @@ -133,10 +133,10 @@ public class HttpHeadersTests { @Test public void location() throws URISyntaxException { - URI location = new URI("http://www.example.com/hotels"); + URI location = new URI("https://www.example.com/hotels"); headers.setLocation(location); assertEquals("Invalid Location header", location, headers.getLocation()); - assertEquals("Invalid Location header", "http://www.example.com/hotels", headers.getFirst("Location")); + assertEquals("Invalid Location header", "https://www.example.com/hotels", headers.getFirst("Location")); } @Test diff --git a/spring-web/src/test/java/org/springframework/http/RequestEntityTests.java b/spring-web/src/test/java/org/springframework/http/RequestEntityTests.java index 80371e42101..1d28a27fe6c 100644 --- a/spring-web/src/test/java/org/springframework/http/RequestEntityTests.java +++ b/spring-web/src/test/java/org/springframework/http/RequestEntityTests.java @@ -42,7 +42,7 @@ public class RequestEntityTests { public void normal() throws URISyntaxException { String headerName = "My-Custom-Header"; String headerValue = "HeaderValue"; - URI url = new URI("http://example.com"); + URI url = new URI("https://example.com"); Integer entity = 42; RequestEntity requestEntity = @@ -58,13 +58,13 @@ public class RequestEntityTests { @Test public void uriVariablesExpansion() throws URISyntaxException { - URI uri = new UriTemplate("http://example.com/{foo}").expand("bar"); + URI uri = new UriTemplate("https://example.com/{foo}").expand("bar"); RequestEntity.get(uri).accept(MediaType.TEXT_PLAIN).build(); String url = "http://www.{host}.com/{path}"; String host = "example"; String path = "foo/bar"; - URI expected = new URI("http://www.example.com/foo/bar"); + URI expected = new URI("https://www.example.com/foo/bar"); uri = new UriTemplate(url).expand(host, path); RequestEntity entity = RequestEntity.get(uri).build(); @@ -81,7 +81,7 @@ public class RequestEntityTests { @Test public void get() { - RequestEntity requestEntity = RequestEntity.get(URI.create("http://example.com")).accept( + RequestEntity requestEntity = RequestEntity.get(URI.create("https://example.com")).accept( MediaType.IMAGE_GIF, MediaType.IMAGE_JPEG, MediaType.IMAGE_PNG).build(); assertNotNull(requestEntity); @@ -99,7 +99,7 @@ public class RequestEntityTests { long contentLength = 67890; MediaType contentType = MediaType.TEXT_PLAIN; - RequestEntity responseEntity = RequestEntity.post(new URI("http://example.com")). + RequestEntity responseEntity = RequestEntity.post(new URI("https://example.com")). accept(accept). acceptCharset(StandardCharsets.UTF_8). ifModifiedSince(ifModifiedSince). @@ -110,7 +110,7 @@ public class RequestEntityTests { assertNotNull(responseEntity); assertEquals(HttpMethod.POST, responseEntity.getMethod()); - assertEquals(new URI("http://example.com"), responseEntity.getUrl()); + assertEquals(new URI("https://example.com"), responseEntity.getUrl()); HttpHeaders responseHeaders = responseEntity.getHeaders(); assertEquals("text/plain", responseHeaders.getFirst("Accept")); @@ -125,7 +125,7 @@ public class RequestEntityTests { @Test public void methods() throws URISyntaxException { - URI url = new URI("http://example.com"); + URI url = new URI("https://example.com"); RequestEntity entity = RequestEntity.get(url).build(); assertEquals(HttpMethod.GET, entity.getMethod()); @@ -152,7 +152,7 @@ public class RequestEntityTests { @Test // SPR-13154 public void types() throws URISyntaxException { - URI url = new URI("http://example.com"); + URI url = new URI("https://example.com"); List body = Arrays.asList("foo", "bar"); ParameterizedTypeReference typeReference = new ParameterizedTypeReference>() {}; diff --git a/spring-web/src/test/java/org/springframework/http/client/BufferedSimpleHttpRequestFactoryTests.java b/spring-web/src/test/java/org/springframework/http/client/BufferedSimpleHttpRequestFactoryTests.java index f7b164baba6..267fbf1f041 100644 --- a/spring-web/src/test/java/org/springframework/http/client/BufferedSimpleHttpRequestFactoryTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/BufferedSimpleHttpRequestFactoryTests.java @@ -49,7 +49,7 @@ public class BufferedSimpleHttpRequestFactoryTests extends AbstractHttpRequestFa @Test public void prepareConnectionWithRequestBody() throws Exception { - URL uri = new URL("http://example.com"); + URL uri = new URL("https://example.com"); testRequestBodyAllowed(uri, "GET", false); testRequestBodyAllowed(uri, "HEAD", false); testRequestBodyAllowed(uri, "OPTIONS", false); @@ -61,7 +61,7 @@ public class BufferedSimpleHttpRequestFactoryTests extends AbstractHttpRequestFa @Test public void deleteWithoutBodyDoesNotRaiseException() throws Exception { - HttpURLConnection connection = new TestHttpURLConnection(new URL("http://example.com")); + HttpURLConnection connection = new TestHttpURLConnection(new URL("https://example.com")); ((SimpleClientHttpRequestFactory) this.factory).prepareConnection(connection, "DELETE"); SimpleBufferingClientHttpRequest request = new SimpleBufferingClientHttpRequest(connection, false); request.execute(); diff --git a/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java b/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java index 1802b037071..749d1a0f6f5 100644 --- a/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java @@ -150,7 +150,7 @@ public class HttpComponentsClientHttpRequestFactoryTests extends AbstractHttpReq @Test public void createHttpUriRequest() throws Exception { - URI uri = new URI("http://example.com"); + URI uri = new URI("https://example.com"); testRequestBodyAllowed(uri, HttpMethod.GET, false); testRequestBodyAllowed(uri, HttpMethod.HEAD, false); testRequestBodyAllowed(uri, HttpMethod.OPTIONS, false); diff --git a/spring-web/src/test/java/org/springframework/http/client/InterceptingClientHttpRequestFactoryTests.java b/spring-web/src/test/java/org/springframework/http/client/InterceptingClientHttpRequestFactoryTests.java index e7cdd48668f..1afa1bcc5b5 100644 --- a/spring-web/src/test/java/org/springframework/http/client/InterceptingClientHttpRequestFactoryTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/InterceptingClientHttpRequestFactoryTests.java @@ -59,7 +59,7 @@ public class InterceptingClientHttpRequestFactoryTests { interceptors.add(new NoOpInterceptor()); requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, interceptors); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); ClientHttpResponse response = request.execute(); assertTrue(((NoOpInterceptor) interceptors.get(0)).invoked); @@ -83,7 +83,7 @@ public class InterceptingClientHttpRequestFactoryTests { interceptors.add(new NoOpInterceptor()); requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, interceptors); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); ClientHttpResponse response = request.execute(); assertFalse(((NoOpInterceptor) interceptors.get(1)).invoked); @@ -122,13 +122,13 @@ public class InterceptingClientHttpRequestFactoryTests { requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, Collections.singletonList(interceptor)); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); request.execute(); } @Test public void changeURI() throws Exception { - final URI changedUri = new URI("http://example.com/2"); + final URI changedUri = new URI("https://example.com/2"); ClientHttpRequestInterceptor interceptor = new ClientHttpRequestInterceptor() { @Override @@ -155,7 +155,7 @@ public class InterceptingClientHttpRequestFactoryTests { requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, Collections.singletonList(interceptor)); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); request.execute(); } @@ -188,7 +188,7 @@ public class InterceptingClientHttpRequestFactoryTests { requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, Collections.singletonList(interceptor)); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); request.execute(); } @@ -207,7 +207,7 @@ public class InterceptingClientHttpRequestFactoryTests { requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, Collections.singletonList(interceptor)); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); request.execute(); assertTrue(Arrays.equals(changedBody, requestMock.body.toByteArray())); } diff --git a/spring-web/src/test/java/org/springframework/http/client/support/BasicAuthorizationInterceptorTests.java b/spring-web/src/test/java/org/springframework/http/client/support/BasicAuthorizationInterceptorTests.java index 245b17373df..bee37740d63 100644 --- a/spring-web/src/test/java/org/springframework/http/client/support/BasicAuthorizationInterceptorTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/support/BasicAuthorizationInterceptorTests.java @@ -66,7 +66,7 @@ public class BasicAuthorizationInterceptorTests { @Test public void interceptShouldAddHeader() throws Exception { SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); ClientHttpRequestExecution execution = mock(ClientHttpRequestExecution.class); byte[] body = new byte[] {}; new BasicAuthorizationInterceptor("spring", "boot").intercept(request, body, diff --git a/spring-web/src/test/java/org/springframework/http/converter/feed/RssChannelHttpMessageConverterTests.java b/spring-web/src/test/java/org/springframework/http/converter/feed/RssChannelHttpMessageConverterTests.java index 09a37926522..aa674b4d80b 100644 --- a/spring-web/src/test/java/org/springframework/http/converter/feed/RssChannelHttpMessageConverterTests.java +++ b/spring-web/src/test/java/org/springframework/http/converter/feed/RssChannelHttpMessageConverterTests.java @@ -86,7 +86,7 @@ public class RssChannelHttpMessageConverterTests { public void write() throws IOException, SAXException { Channel channel = new Channel("rss_2.0"); channel.setTitle("title"); - channel.setLink("http://example.com"); + channel.setLink("https://example.com"); channel.setDescription("description"); Item item1 = new Item(); @@ -106,7 +106,7 @@ public class RssChannelHttpMessageConverterTests { assertEquals("Invalid content-type", new MediaType("application", "rss+xml", StandardCharsets.UTF_8), outputMessage.getHeaders().getContentType()); String expected = "" + - "titlehttp://example.comdescription" + + "titlehttps://example.comdescription" + "title1" + "title2" + ""; @@ -117,7 +117,7 @@ public class RssChannelHttpMessageConverterTests { public void writeOtherCharset() throws IOException, SAXException { Channel channel = new Channel("rss_2.0"); channel.setTitle("title"); - channel.setLink("http://example.com"); + channel.setLink("https://example.com"); channel.setDescription("description"); String encoding = "ISO-8859-1"; diff --git a/spring-web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTests.java b/spring-web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTests.java index f8281ba64f7..170c7880354 100644 --- a/spring-web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTests.java +++ b/spring-web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTests.java @@ -125,7 +125,7 @@ public class Jaxb2RootElementHttpMessageConverterTests { @Test public void readXmlRootElementExternalEntityDisabled() throws Exception { Resource external = new ClassPathResource("external.txt", getClass()); - String content = "\n" + " ]>" + " &ext;"; diff --git a/spring-web/src/test/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverterTests.java b/spring-web/src/test/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverterTests.java index 612e91d4bc9..ab03d33fd90 100644 --- a/spring-web/src/test/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverterTests.java +++ b/spring-web/src/test/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverterTests.java @@ -150,7 +150,7 @@ public class MappingJackson2XmlHttpMessageConverterTests { @Test public void readWithExternalReference() throws IOException { - String body = "\n" + " (); Resource external = new ClassPathResource("external.txt", getClass()); - bodyExternal = "\n" + " ]>&ext;"; } diff --git a/spring-web/src/test/java/org/springframework/http/server/ServletServerHttpRequestTests.java b/spring-web/src/test/java/org/springframework/http/server/ServletServerHttpRequestTests.java index 1a737114cbf..f2434e3ed5d 100644 --- a/spring-web/src/test/java/org/springframework/http/server/ServletServerHttpRequestTests.java +++ b/spring-web/src/test/java/org/springframework/http/server/ServletServerHttpRequestTests.java @@ -59,7 +59,7 @@ public class ServletServerHttpRequestTests { @Test public void getUriForSimplePath() throws URISyntaxException { - URI uri = new URI("http://example.com/path"); + URI uri = new URI("https://example.com/path"); mockRequest.setServerName(uri.getHost()); mockRequest.setServerPort(uri.getPort()); mockRequest.setRequestURI(uri.getPath()); @@ -69,7 +69,7 @@ public class ServletServerHttpRequestTests { @Test public void getUriWithQueryString() throws URISyntaxException { - URI uri = new URI("http://example.com/path?query"); + URI uri = new URI("https://example.com/path?query"); mockRequest.setServerName(uri.getHost()); mockRequest.setServerPort(uri.getPort()); mockRequest.setRequestURI(uri.getPath()); @@ -82,7 +82,7 @@ public class ServletServerHttpRequestTests { mockRequest.setServerName("example.com"); mockRequest.setRequestURI("/path"); mockRequest.setQueryString("query=foo"); - assertEquals(new URI("http://example.com/path?query=foo"), request.getURI()); + assertEquals(new URI("https://example.com/path?query=foo"), request.getURI()); } @Test // SPR-16414 @@ -90,7 +90,7 @@ public class ServletServerHttpRequestTests { mockRequest.setServerName("example.com"); mockRequest.setRequestURI("/path"); mockRequest.setQueryString("query=foo%%x"); - assertEquals(new URI("http://example.com/path"), request.getURI()); + assertEquals(new URI("https://example.com/path"), request.getURI()); } @Test // SPR-13876 diff --git a/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpRequestTests.java b/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpRequestTests.java index c7414ca42f5..86a4563b876 100644 --- a/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpRequestTests.java +++ b/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpRequestTests.java @@ -96,16 +96,16 @@ public class ServerHttpRequestTests { request = createHttpRequest("/").mutate().method(HttpMethod.DELETE).build(); assertEquals(HttpMethod.DELETE, request.getMethod()); - String baseUri = "http://aaa.org:8080/a"; + String baseUri = "https://www.aaa.org/articles/"; - request = createHttpRequest(baseUri).mutate().uri(URI.create("http://bbb.org:9090/b")).build(); - assertEquals("http://bbb.org:9090/b", request.getURI().toString()); + request = createHttpRequest(baseUri).mutate().uri(URI.create("https://bbb.org:9090/b")).build(); + assertEquals("https://bbb.org:9090/b", request.getURI().toString()); request = createHttpRequest(baseUri).mutate().path("/b/c/d").build(); - assertEquals("http://aaa.org:8080/b/c/d", request.getURI().toString()); + assertEquals("https://www.aaa.org/b/c/d", request.getURI().toString()); request = createHttpRequest(baseUri).mutate().path("/app/b/c/d").contextPath("/app").build(); - assertEquals("http://aaa.org:8080/app/b/c/d", request.getURI().toString()); + assertEquals("https://www.aaa.org/app/b/c/d", request.getURI().toString()); assertEquals("/app", request.getPath().contextPath().value()); } diff --git a/spring-web/src/test/java/org/springframework/web/client/RestTemplateTests.java b/spring-web/src/test/java/org/springframework/web/client/RestTemplateTests.java index 164bc9207ba..5b6e6c38e67 100644 --- a/spring-web/src/test/java/org/springframework/web/client/RestTemplateTests.java +++ b/spring-web/src/test/java/org/springframework/web/client/RestTemplateTests.java @@ -106,10 +106,10 @@ public class RestTemplateTests { @Test public void varArgsTemplateVariables() throws Exception { - mockSentRequest(GET, "http://example.com/hotels/42/bookings/21"); + mockSentRequest(GET, "https://example.com/hotels/42/bookings/21"); mockResponseStatus(HttpStatus.OK); - template.execute("http://example.com/hotels/{hotel}/bookings/{booking}", GET, + template.execute("https://example.com/hotels/{hotel}/bookings/{booking}", GET, null, null, "42", "21"); verify(response).close(); @@ -117,41 +117,41 @@ public class RestTemplateTests { @Test public void varArgsNullTemplateVariable() throws Exception { - mockSentRequest(GET, "http://example.com/-foo"); + mockSentRequest(GET, "https://example.com/-foo"); mockResponseStatus(HttpStatus.OK); - template.execute("http://example.com/{first}-{last}", GET, null, null, null, "foo"); + template.execute("https://example.com/{first}-{last}", GET, null, null, null, "foo"); verify(response).close(); } @Test public void mapTemplateVariables() throws Exception { - mockSentRequest(GET, "http://example.com/hotels/42/bookings/42"); + mockSentRequest(GET, "https://example.com/hotels/42/bookings/42"); mockResponseStatus(HttpStatus.OK); Map vars = Collections.singletonMap("hotel", "42"); - template.execute("http://example.com/hotels/{hotel}/bookings/{hotel}", GET, null, null, vars); + template.execute("https://example.com/hotels/{hotel}/bookings/{hotel}", GET, null, null, vars); verify(response).close(); } @Test public void mapNullTemplateVariable() throws Exception { - mockSentRequest(GET, "http://example.com/-foo"); + mockSentRequest(GET, "https://example.com/-foo"); mockResponseStatus(HttpStatus.OK); Map vars = new HashMap<>(2); vars.put("first", null); vars.put("last", "foo"); - template.execute("http://example.com/{first}-{last}", GET, null, null, vars); + template.execute("https://example.com/{first}-{last}", GET, null, null, vars); verify(response).close(); } @Test // SPR-15201 public void uriTemplateWithTrailingSlash() throws Exception { - String url = "http://example.com/spring/"; + String url = "https://example.com/spring/"; mockSentRequest(GET, url); mockResponseStatus(HttpStatus.OK); @@ -162,7 +162,7 @@ public class RestTemplateTests { @Test public void errorHandling() throws Exception { - String url = "http://example.com"; + String url = "https://example.com"; mockSentRequest(GET, url); mockResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR); willThrow(new HttpServerErrorException(HttpStatus.INTERNAL_SERVER_ERROR)) @@ -184,11 +184,11 @@ public class RestTemplateTests { String expected = "Hello World"; mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(GET, "http://example.com", requestHeaders); + mockSentRequest(GET, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); mockTextResponseBody("Hello World"); - String result = template.getForObject("http://example.com", String.class); + String result = template.getForObject("https://example.com", String.class); assertEquals("Invalid GET result", expected, result); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -198,7 +198,7 @@ public class RestTemplateTests { @Test public void getUnsupportedMediaType() throws Exception { - mockSentRequest(GET, "http://example.com/resource"); + mockSentRequest(GET, "https://example.com/resource"); mockResponseStatus(HttpStatus.OK); given(converter.canRead(String.class, null)).willReturn(true); @@ -210,7 +210,7 @@ public class RestTemplateTests { given(converter.canRead(String.class, barBaz)).willReturn(false); try { - template.getForObject("http://example.com/{p}", String.class, "resource"); + template.getForObject("https://example.com/{p}", String.class, "resource"); fail("UnsupportedMediaTypeException expected"); } catch (RestClientException ex) { @@ -232,12 +232,12 @@ public class RestTemplateTests { .willReturn(Collections.singletonList(MediaType.TEXT_PLAIN)); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(GET, "http://example.com/", requestHeaders); + mockSentRequest(GET, "https://example.com/", requestHeaders); mockResponseStatus(HttpStatus.OK); mockTextResponseBody("Hello World"); template.setMessageConverters(Arrays.asList(firstConverter, secondConverter)); - template.getForObject("http://example.com/", String.class); + template.getForObject("https://example.com/", String.class); assertEquals("Sent duplicate Accept header values", 1, requestHeaders.getAccept().size()); @@ -246,13 +246,13 @@ public class RestTemplateTests { @Test public void getForEntity() throws Exception { HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(GET, "http://example.com", requestHeaders); + mockSentRequest(GET, "https://example.com", requestHeaders); mockTextPlainHttpMessageConverter(); mockResponseStatus(HttpStatus.OK); String expected = "Hello World"; mockTextResponseBody(expected); - ResponseEntity result = template.getForEntity("http://example.com", String.class); + ResponseEntity result = template.getForEntity("https://example.com", String.class); assertEquals("Invalid GET result", expected, result.getBody()); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); assertEquals("Invalid Content-Type header", MediaType.TEXT_PLAIN, result.getHeaders().getContentType()); @@ -265,7 +265,7 @@ public class RestTemplateTests { public void getForObjectWithCustomUriTemplateHandler() throws Exception { DefaultUriBuilderFactory uriTemplateHandler = new DefaultUriBuilderFactory(); template.setUriTemplateHandler(uriTemplateHandler); - mockSentRequest(GET, "http://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150"); + mockSentRequest(GET, "https://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150"); mockResponseStatus(HttpStatus.OK); given(response.getHeaders()).willReturn(new HttpHeaders()); given(response.getBody()).willReturn(StreamUtils.emptyInput()); @@ -275,7 +275,7 @@ public class RestTemplateTests { uriVariables.put("publicpath", "pics/logo.png"); uriVariables.put("scale", "150x150"); - String url = "http://example.com/hotels/{hotel}/pic/{publicpath}/size/{scale}"; + String url = "https://example.com/hotels/{hotel}/pic/{publicpath}/size/{scale}"; template.getForObject(url, String.class, uriVariables); verify(response).close(); @@ -283,12 +283,12 @@ public class RestTemplateTests { @Test public void headForHeaders() throws Exception { - mockSentRequest(HEAD, "http://example.com"); + mockSentRequest(HEAD, "https://example.com"); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); given(response.getHeaders()).willReturn(responseHeaders); - HttpHeaders result = template.headForHeaders("http://example.com"); + HttpHeaders result = template.headForHeaders("https://example.com"); assertSame("Invalid headers returned", responseHeaders, result); @@ -297,16 +297,16 @@ public class RestTemplateTests { @Test public void postForLocation() throws Exception { - mockSentRequest(POST, "http://example.com"); + mockSentRequest(POST, "https://example.com"); mockTextPlainHttpMessageConverter(); mockResponseStatus(HttpStatus.OK); String helloWorld = "Hello World"; HttpHeaders responseHeaders = new HttpHeaders(); - URI expected = new URI("http://example.com/hotels"); + URI expected = new URI("https://example.com/hotels"); responseHeaders.setLocation(expected); given(response.getHeaders()).willReturn(responseHeaders); - URI result = template.postForLocation("http://example.com", helloWorld); + URI result = template.postForLocation("https://example.com", helloWorld); assertEquals("Invalid POST result", expected, result); verify(response).close(); @@ -314,13 +314,13 @@ public class RestTemplateTests { @Test public void postForLocationEntityContentType() throws Exception { - mockSentRequest(POST, "http://example.com"); + mockSentRequest(POST, "https://example.com"); mockTextPlainHttpMessageConverter(); mockResponseStatus(HttpStatus.OK); String helloWorld = "Hello World"; HttpHeaders responseHeaders = new HttpHeaders(); - URI expected = new URI("http://example.com/hotels"); + URI expected = new URI("https://example.com/hotels"); responseHeaders.setLocation(expected); given(response.getHeaders()).willReturn(responseHeaders); @@ -328,7 +328,7 @@ public class RestTemplateTests { entityHeaders.setContentType(MediaType.TEXT_PLAIN); HttpEntity entity = new HttpEntity<>(helloWorld, entityHeaders); - URI result = template.postForLocation("http://example.com", entity); + URI result = template.postForLocation("https://example.com", entity); assertEquals("Invalid POST result", expected, result); verify(response).close(); @@ -337,11 +337,11 @@ public class RestTemplateTests { @Test public void postForLocationEntityCustomHeader() throws Exception { HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockTextPlainHttpMessageConverter(); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); - URI expected = new URI("http://example.com/hotels"); + URI expected = new URI("https://example.com/hotels"); responseHeaders.setLocation(expected); given(response.getHeaders()).willReturn(responseHeaders); @@ -349,7 +349,7 @@ public class RestTemplateTests { entityHeaders.set("MyHeader", "MyValue"); HttpEntity entity = new HttpEntity<>("Hello World", entityHeaders); - URI result = template.postForLocation("http://example.com", entity); + URI result = template.postForLocation("https://example.com", entity); assertEquals("Invalid POST result", expected, result); assertEquals("No custom header set", "MyValue", requestHeaders.getFirst("MyHeader")); @@ -358,11 +358,11 @@ public class RestTemplateTests { @Test public void postForLocationNoLocation() throws Exception { - mockSentRequest(POST, "http://example.com"); + mockSentRequest(POST, "https://example.com"); mockTextPlainHttpMessageConverter(); mockResponseStatus(HttpStatus.OK); - URI result = template.postForLocation("http://example.com", "Hello World"); + URI result = template.postForLocation("https://example.com", "Hello World"); assertNull("Invalid POST result", result); verify(response).close(); @@ -371,10 +371,10 @@ public class RestTemplateTests { @Test public void postForLocationNull() throws Exception { HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); - template.postForLocation("http://example.com", null); + template.postForLocation("https://example.com", null); assertEquals("Invalid content length", 0, requestHeaders.getContentLength()); verify(response).close(); @@ -384,12 +384,12 @@ public class RestTemplateTests { public void postForObject() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); String expected = "42"; mockResponseBody(expected, MediaType.TEXT_PLAIN); - String result = template.postForObject("http://example.com", "Hello World", String.class); + String result = template.postForObject("https://example.com", "Hello World", String.class); assertEquals("Invalid POST result", expected, result); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -400,12 +400,12 @@ public class RestTemplateTests { public void postForEntity() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); String expected = "42"; mockResponseBody(expected, MediaType.TEXT_PLAIN); - ResponseEntity result = template.postForEntity("http://example.com", "Hello World", String.class); + ResponseEntity result = template.postForEntity("https://example.com", "Hello World", String.class); assertEquals("Invalid POST result", expected, result.getBody()); assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType()); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -418,7 +418,7 @@ public class RestTemplateTests { public void postForObjectNull() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(MediaType.TEXT_PLAIN); @@ -427,7 +427,7 @@ public class RestTemplateTests { given(response.getBody()).willReturn(StreamUtils.emptyInput()); given(converter.read(String.class, response)).willReturn(null); - String result = template.postForObject("http://example.com", null, String.class); + String result = template.postForObject("https://example.com", null, String.class); assertNull("Invalid POST result", result); assertEquals("Invalid content length", 0, requestHeaders.getContentLength()); @@ -438,7 +438,7 @@ public class RestTemplateTests { public void postForEntityNull() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(MediaType.TEXT_PLAIN); @@ -447,7 +447,7 @@ public class RestTemplateTests { given(response.getBody()).willReturn(StreamUtils.emptyInput()); given(converter.read(String.class, response)).willReturn(null); - ResponseEntity result = template.postForEntity("http://example.com", null, String.class); + ResponseEntity result = template.postForEntity("https://example.com", null, String.class); assertFalse("Invalid POST result", result.hasBody()); assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType()); assertEquals("Invalid content length", 0, requestHeaders.getContentLength()); @@ -459,10 +459,10 @@ public class RestTemplateTests { @Test public void put() throws Exception { mockTextPlainHttpMessageConverter(); - mockSentRequest(PUT, "http://example.com"); + mockSentRequest(PUT, "https://example.com"); mockResponseStatus(HttpStatus.OK); - template.put("http://example.com", "Hello World"); + template.put("https://example.com", "Hello World"); verify(response).close(); } @@ -470,10 +470,10 @@ public class RestTemplateTests { @Test public void putNull() throws Exception { HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(PUT, "http://example.com", requestHeaders); + mockSentRequest(PUT, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); - template.put("http://example.com", null); + template.put("https://example.com", null); assertEquals("Invalid content length", 0, requestHeaders.getContentLength()); verify(response).close(); @@ -483,12 +483,12 @@ public class RestTemplateTests { public void patchForObject() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(PATCH, "http://example.com", requestHeaders); + mockSentRequest(PATCH, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); String expected = "42"; mockResponseBody("42", MediaType.TEXT_PLAIN); - String result = template.patchForObject("http://example.com", "Hello World", String.class); + String result = template.patchForObject("https://example.com", "Hello World", String.class); assertEquals("Invalid POST result", expected, result); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -499,7 +499,7 @@ public class RestTemplateTests { public void patchForObjectNull() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(PATCH, "http://example.com", requestHeaders); + mockSentRequest(PATCH, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(MediaType.TEXT_PLAIN); @@ -507,7 +507,7 @@ public class RestTemplateTests { given(response.getHeaders()).willReturn(responseHeaders); given(response.getBody()).willReturn(StreamUtils.emptyInput()); - String result = template.patchForObject("http://example.com", null, String.class); + String result = template.patchForObject("https://example.com", null, String.class); assertNull("Invalid POST result", result); assertEquals("Invalid content length", 0, requestHeaders.getContentLength()); @@ -517,24 +517,24 @@ public class RestTemplateTests { @Test public void delete() throws Exception { - mockSentRequest(DELETE, "http://example.com"); + mockSentRequest(DELETE, "https://example.com"); mockResponseStatus(HttpStatus.OK); - template.delete("http://example.com"); + template.delete("https://example.com"); verify(response).close(); } @Test public void optionsForAllow() throws Exception { - mockSentRequest(OPTIONS, "http://example.com"); + mockSentRequest(OPTIONS, "https://example.com"); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); EnumSet expected = EnumSet.of(GET, POST); responseHeaders.setAllow(expected); given(response.getHeaders()).willReturn(responseHeaders); - Set result = template.optionsForAllow("http://example.com"); + Set result = template.optionsForAllow("https://example.com"); assertEquals("Invalid OPTIONS result", expected, result); verify(response).close(); @@ -542,7 +542,7 @@ public class RestTemplateTests { @Test // SPR-9325, SPR-13860 public void ioException() throws Exception { - String url = "http://example.com/resource?access_token=123"; + String url = "https://example.com/resource?access_token=123"; mockSentRequest(GET, url); mockHttpMessageConverter(new MediaType("foo", "bar"), String.class); given(request.execute()).willThrow(new IOException("Socket failure")); @@ -552,7 +552,7 @@ public class RestTemplateTests { fail("RestClientException expected"); } catch (ResourceAccessException ex) { - assertEquals("I/O error on GET request for \"http://example.com/resource\": " + + assertEquals("I/O error on GET request for \"https://example.com/resource\": " + "Socket failure; nested exception is java.io.IOException: Socket failure", ex.getMessage()); } @@ -561,7 +561,7 @@ public class RestTemplateTests { @Test // SPR-15900 public void ioExceptionWithEmptyQueryString() throws Exception { - // http://example.com/resource? + // https://example.com/resource? URI uri = new URI("http", "example.com", "/resource", "", null); given(converter.canRead(String.class, null)).willReturn(true); @@ -575,7 +575,7 @@ public class RestTemplateTests { fail("RestClientException expected"); } catch (ResourceAccessException ex) { - assertEquals("I/O error on GET request for \"http://example.com/resource\": " + + assertEquals("I/O error on GET request for \"https://example.com/resource\": " + "Socket failure; nested exception is java.io.IOException: Socket failure", ex.getMessage()); } @@ -585,7 +585,7 @@ public class RestTemplateTests { public void exchange() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); String expected = "42"; mockResponseBody(expected, MediaType.TEXT_PLAIN); @@ -593,7 +593,7 @@ public class RestTemplateTests { HttpHeaders entityHeaders = new HttpHeaders(); entityHeaders.set("MyHeader", "MyValue"); HttpEntity entity = new HttpEntity<>("Hello World", entityHeaders); - ResponseEntity result = template.exchange("http://example.com", POST, entity, String.class); + ResponseEntity result = template.exchange("https://example.com", POST, entity, String.class); assertEquals("Invalid POST result", expected, result.getBody()); assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType()); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -614,7 +614,7 @@ public class RestTemplateTests { given(converter.canWrite(String.class, String.class, null)).willReturn(true); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); List expected = Collections.singletonList(42); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(MediaType.TEXT_PLAIN); @@ -628,7 +628,7 @@ public class RestTemplateTests { HttpHeaders entityHeaders = new HttpHeaders(); entityHeaders.set("MyHeader", "MyValue"); HttpEntity requestEntity = new HttpEntity<>("Hello World", entityHeaders); - ResponseEntity> result = template.exchange("http://example.com", POST, requestEntity, intList); + ResponseEntity> result = template.exchange("https://example.com", POST, requestEntity, intList); assertEquals("Invalid POST result", expected, result.getBody()); assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType()); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -647,13 +647,13 @@ public class RestTemplateTests { template.setInterceptors(Collections.singletonList(interceptor)); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); HttpHeaders entityHeaders = new HttpHeaders(); entityHeaders.add("MyHeader", "MyEntityValue"); HttpEntity entity = new HttpEntity<>(null, entityHeaders); - template.exchange("http://example.com", POST, entity, Void.class); + template.exchange("https://example.com", POST, entity, Void.class); assertThat(requestHeaders.get("MyHeader"), contains("MyEntityValue", "MyInterceptorValue")); verify(response).close(); @@ -670,14 +670,14 @@ public class RestTemplateTests { MediaType contentType = MediaType.TEXT_PLAIN; given(converter.canWrite(String.class, contentType)).willReturn(true); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); HttpHeaders entityHeaders = new HttpHeaders(); entityHeaders.setContentType(contentType); entityHeaders.add("MyHeader", "MyEntityValue"); HttpEntity entity = new HttpEntity<>("Hello World", entityHeaders); - template.exchange("http://example.com", POST, entity, Void.class); + template.exchange("https://example.com", POST, entity, Void.class); assertThat(requestHeaders.get("MyHeader"), contains("MyEntityValue", "MyInterceptorValue")); verify(response).close(); diff --git a/spring-web/src/test/java/org/springframework/web/context/request/ServletWebRequestHttpMethodsTests.java b/spring-web/src/test/java/org/springframework/web/context/request/ServletWebRequestHttpMethodsTests.java index 05c6a5f1b78..342d5de076e 100644 --- a/spring-web/src/test/java/org/springframework/web/context/request/ServletWebRequestHttpMethodsTests.java +++ b/spring-web/src/test/java/org/springframework/web/context/request/ServletWebRequestHttpMethodsTests.java @@ -67,7 +67,7 @@ public class ServletWebRequestHttpMethodsTests { @Before public void setup() { currentDate = new Date(); - servletRequest = new MockHttpServletRequest(method, "http://example.org"); + servletRequest = new MockHttpServletRequest(method, "https://example.org"); servletResponse = new MockHttpServletResponse(); request = new ServletWebRequest(servletRequest, servletResponse); } diff --git a/spring-web/src/test/java/org/springframework/web/cors/CorsConfigurationTests.java b/spring-web/src/test/java/org/springframework/web/cors/CorsConfigurationTests.java index 43d43cea2f5..e188f8d80b2 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/CorsConfigurationTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/CorsConfigurationTests.java @@ -112,17 +112,17 @@ public class CorsConfigurationTests { public void combineWithDefaultPermitValues() { CorsConfiguration config = new CorsConfiguration().applyPermitDefaultValues(); CorsConfiguration other = new CorsConfiguration(); - other.addAllowedOrigin("http://domain.com"); + other.addAllowedOrigin("https://domain.com"); other.addAllowedHeader("header1"); other.addAllowedMethod(HttpMethod.PUT.name()); CorsConfiguration combinedConfig = config.combine(other); - assertEquals(Arrays.asList("http://domain.com"), combinedConfig.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain.com"), combinedConfig.getAllowedOrigins()); assertEquals(Arrays.asList("header1"), combinedConfig.getAllowedHeaders()); assertEquals(Arrays.asList(HttpMethod.PUT.name()), combinedConfig.getAllowedMethods()); combinedConfig = other.combine(config); - assertEquals(Arrays.asList("http://domain.com"), combinedConfig.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain.com"), combinedConfig.getAllowedOrigins()); assertEquals(Arrays.asList("header1"), combinedConfig.getAllowedHeaders()); assertEquals(Arrays.asList(HttpMethod.PUT.name()), combinedConfig.getAllowedMethods()); @@ -146,7 +146,7 @@ public class CorsConfigurationTests { config.addAllowedHeader("*"); config.addAllowedMethod("*"); CorsConfiguration other = new CorsConfiguration(); - other.addAllowedOrigin("http://domain.com"); + other.addAllowedOrigin("https://domain.com"); other.addAllowedHeader("header1"); other.addExposedHeader("header2"); other.addAllowedMethod(HttpMethod.PUT.name()); @@ -163,8 +163,8 @@ public class CorsConfigurationTests { @Test // SPR-14792 public void combineWithDuplicatedElements() { CorsConfiguration config = new CorsConfiguration(); - config.addAllowedOrigin("http://domain1.com"); - config.addAllowedOrigin("http://domain2.com"); + config.addAllowedOrigin("https://domain1.com"); + config.addAllowedOrigin("https://domain2.com"); config.addAllowedHeader("header1"); config.addAllowedHeader("header2"); config.addExposedHeader("header3"); @@ -172,12 +172,12 @@ public class CorsConfigurationTests { config.addAllowedMethod(HttpMethod.GET.name()); config.addAllowedMethod(HttpMethod.PUT.name()); CorsConfiguration other = new CorsConfiguration(); - other.addAllowedOrigin("http://domain1.com"); + other.addAllowedOrigin("https://domain1.com"); other.addAllowedHeader("header1"); other.addExposedHeader("header3"); other.addAllowedMethod(HttpMethod.GET.name()); CorsConfiguration combinedConfig = config.combine(other); - assertEquals(Arrays.asList("http://domain1.com", "http://domain2.com"), combinedConfig.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain1.com", "https://domain2.com"), combinedConfig.getAllowedOrigins()); assertEquals(Arrays.asList("header1", "header2"), combinedConfig.getAllowedHeaders()); assertEquals(Arrays.asList("header3", "header4"), combinedConfig.getExposedHeaders()); assertEquals(Arrays.asList(HttpMethod.GET.name(), HttpMethod.PUT.name()), combinedConfig.getAllowedMethods()); @@ -186,21 +186,21 @@ public class CorsConfigurationTests { @Test public void combine() { CorsConfiguration config = new CorsConfiguration(); - config.addAllowedOrigin("http://domain1.com"); + config.addAllowedOrigin("https://domain1.com"); config.addAllowedHeader("header1"); config.addExposedHeader("header3"); config.addAllowedMethod(HttpMethod.GET.name()); config.setMaxAge(123L); config.setAllowCredentials(true); CorsConfiguration other = new CorsConfiguration(); - other.addAllowedOrigin("http://domain2.com"); + other.addAllowedOrigin("https://domain2.com"); other.addAllowedHeader("header2"); other.addExposedHeader("header4"); other.addAllowedMethod(HttpMethod.PUT.name()); other.setMaxAge(456L); other.setAllowCredentials(false); config = config.combine(other); - assertEquals(Arrays.asList("http://domain1.com", "http://domain2.com"), config.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain1.com", "https://domain2.com"), config.getAllowedOrigins()); assertEquals(Arrays.asList("header1", "header2"), config.getAllowedHeaders()); assertEquals(Arrays.asList("header3", "header4"), config.getExposedHeaders()); assertEquals(Arrays.asList(HttpMethod.GET.name(), HttpMethod.PUT.name()), config.getAllowedMethods()); @@ -212,26 +212,26 @@ public class CorsConfigurationTests { public void checkOriginAllowed() { CorsConfiguration config = new CorsConfiguration(); config.setAllowedOrigins(Arrays.asList("*")); - assertEquals("*", config.checkOrigin("http://domain.com")); + assertEquals("*", config.checkOrigin("https://domain.com")); config.setAllowCredentials(true); - assertEquals("http://domain.com", config.checkOrigin("http://domain.com")); - config.setAllowedOrigins(Arrays.asList("http://domain.com")); - assertEquals("http://domain.com", config.checkOrigin("http://domain.com")); + assertEquals("https://domain.com", config.checkOrigin("https://domain.com")); + config.setAllowedOrigins(Arrays.asList("https://domain.com")); + assertEquals("https://domain.com", config.checkOrigin("https://domain.com")); config.setAllowCredentials(false); - assertEquals("http://domain.com", config.checkOrigin("http://domain.com")); + assertEquals("https://domain.com", config.checkOrigin("https://domain.com")); } @Test public void checkOriginNotAllowed() { CorsConfiguration config = new CorsConfiguration(); assertNull(config.checkOrigin(null)); - assertNull(config.checkOrigin("http://domain.com")); + assertNull(config.checkOrigin("https://domain.com")); config.addAllowedOrigin("*"); assertNull(config.checkOrigin(null)); - config.setAllowedOrigins(Arrays.asList("http://domain1.com")); - assertNull(config.checkOrigin("http://domain2.com")); + config.setAllowedOrigins(Arrays.asList("https://domain1.com")); + assertNull(config.checkOrigin("https://domain2.com")); config.setAllowedOrigins(new ArrayList<>()); - assertNull(config.checkOrigin("http://domain.com")); + assertNull(config.checkOrigin("https://domain.com")); } @Test @@ -282,10 +282,10 @@ public class CorsConfigurationTests { @Test // SPR-15772 public void changePermitDefaultValues() { CorsConfiguration config = new CorsConfiguration().applyPermitDefaultValues(); - config.addAllowedOrigin("http://domain.com"); + config.addAllowedOrigin("https://domain.com"); config.addAllowedHeader("header1"); config.addAllowedMethod("PATCH"); - assertEquals(Arrays.asList("*", "http://domain.com"), config.getAllowedOrigins()); + assertEquals(Arrays.asList("*", "https://domain.com"), config.getAllowedOrigins()); assertEquals(Arrays.asList("*", "header1"), config.getAllowedHeaders()); assertEquals(Arrays.asList("GET", "HEAD", "POST", "PATCH"), config.getAllowedMethods()); } diff --git a/spring-web/src/test/java/org/springframework/web/cors/CorsUtilsTests.java b/spring-web/src/test/java/org/springframework/web/cors/CorsUtilsTests.java index 9ca1c2368c2..0a923d67ff5 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/CorsUtilsTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/CorsUtilsTests.java @@ -34,7 +34,7 @@ public class CorsUtilsTests { @Test public void isCorsRequest() { MockHttpServletRequest request = new MockHttpServletRequest(); - request.addHeader(HttpHeaders.ORIGIN, "http://domain.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain.com"); assertTrue(CorsUtils.isCorsRequest(request)); } @@ -48,7 +48,7 @@ public class CorsUtilsTests { public void isPreFlightRequest() { MockHttpServletRequest request = new MockHttpServletRequest(); request.setMethod(HttpMethod.OPTIONS.name()); - request.addHeader(HttpHeaders.ORIGIN, "http://domain.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain.com"); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); assertTrue(CorsUtils.isPreFlightRequest(request)); } @@ -60,7 +60,7 @@ public class CorsUtilsTests { request = new MockHttpServletRequest(); request.setMethod(HttpMethod.OPTIONS.name()); - request.addHeader(HttpHeaders.ORIGIN, "http://domain.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain.com"); assertFalse(CorsUtils.isPreFlightRequest(request)); request = new MockHttpServletRequest(); diff --git a/spring-web/src/test/java/org/springframework/web/cors/DefaultCorsProcessorTests.java b/spring-web/src/test/java/org/springframework/web/cors/DefaultCorsProcessorTests.java index daf974cdab3..0f49e8b5d06 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/DefaultCorsProcessorTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/DefaultCorsProcessorTests.java @@ -62,7 +62,7 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestWithOriginHeader() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertFalse(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -74,7 +74,7 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestWithOriginHeaderAndNullConfig() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.processor.processRequest(null, this.request, this.response); assertFalse(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -84,7 +84,7 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestWithOriginHeaderAndAllowedOrigin() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.conf.addAllowedOrigin("*"); this.processor.processRequest(this.conf, this.request, this.response); @@ -100,15 +100,15 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestCredentials() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); - this.conf.addAllowedOrigin("http://domain1.com"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); + this.conf.addAllowedOrigin("https://domain1.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.setAllowCredentials(true); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(this.response.getHeaders(HttpHeaders.VARY), contains(HttpHeaders.ORIGIN, @@ -119,13 +119,13 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestCredentialsWithOriginWildcard() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.conf.addAllowedOrigin("*"); this.conf.setAllowCredentials(true); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(this.response.getHeaders(HttpHeaders.VARY), contains(HttpHeaders.ORIGIN, @@ -136,8 +136,8 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestCaseInsensitiveOriginMatch() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); - this.conf.addAllowedOrigin("http://DOMAIN2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); + this.conf.addAllowedOrigin("https://DOMAIN2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -149,14 +149,14 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestExposedHeaders() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.conf.addExposedHeader("header1"); this.conf.addExposedHeader("header2"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS)); assertTrue(this.response.getHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS).contains("header1")); assertTrue(this.response.getHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS).contains("header2")); @@ -168,7 +168,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestAllOriginsAllowed() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.conf.addAllowedOrigin("*"); @@ -181,7 +181,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestWrongAllowedMethod() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "DELETE"); this.conf.addAllowedOrigin("*"); @@ -194,7 +194,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestMatchedAllowedMethod() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.conf.addAllowedOrigin("*"); @@ -208,7 +208,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestTestWithOriginButWithoutOtherHeaders() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertFalse(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -220,7 +220,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestWithoutRequestMethod() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1"); this.processor.processRequest(this.conf, this.request, this.response); @@ -233,7 +233,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestWithRequestAndMethodHeaderButNoConfig() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1"); @@ -247,7 +247,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestValidRequestAndConfig() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1"); this.conf.addAllowedOrigin("*"); @@ -270,18 +270,18 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestCredentials() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1"); - this.conf.addAllowedOrigin("http://domain1.com"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain1.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.addAllowedHeader("Header1"); this.conf.setAllowCredentials(true); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(this.response.getHeaders(HttpHeaders.VARY), contains(HttpHeaders.ORIGIN, @@ -292,10 +292,10 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestCredentialsWithOriginWildcard() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1"); - this.conf.addAllowedOrigin("http://domain1.com"); + this.conf.addAllowedOrigin("https://domain1.com"); this.conf.addAllowedOrigin("*"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.addAllowedHeader("Header1"); @@ -303,7 +303,7 @@ public class DefaultCorsProcessorTests { this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertThat(this.response.getHeaders(HttpHeaders.VARY), contains(HttpHeaders.ORIGIN, HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS)); assertEquals(HttpServletResponse.SC_OK, this.response.getStatus()); @@ -312,13 +312,13 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestAllowedHeaders() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1, Header2"); this.conf.addAllowedHeader("Header1"); this.conf.addAllowedHeader("Header2"); this.conf.addAllowedHeader("Header3"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -334,11 +334,11 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestAllowsAllHeaders() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1, Header2"); this.conf.addAllowedHeader("*"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -354,11 +354,11 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestWithEmptyHeaders() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, ""); this.conf.addAllowedHeader("*"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -371,7 +371,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestWithNullConfig() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.conf.addAllowedOrigin("*"); diff --git a/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsUtilsTests.java b/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsUtilsTests.java index 60c6008a361..7e3a60aef0f 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsUtilsTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsUtilsTests.java @@ -35,7 +35,7 @@ public class CorsUtilsTests { @Test public void isCorsRequest() { - MockServerHttpRequest request = get("/").header(HttpHeaders.ORIGIN, "http://domain.com").build(); + MockServerHttpRequest request = get("/").header(HttpHeaders.ORIGIN, "https://domain.com").build(); assertTrue(CorsUtils.isCorsRequest(request)); } @@ -48,7 +48,7 @@ public class CorsUtilsTests { @Test public void isPreFlightRequest() { MockServerHttpRequest request = options("/") - .header(HttpHeaders.ORIGIN, "http://domain.com") + .header(HttpHeaders.ORIGIN, "https://domain.com") .header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET") .build(); assertTrue(CorsUtils.isPreFlightRequest(request)); @@ -59,7 +59,7 @@ public class CorsUtilsTests { MockServerHttpRequest request = get("/").build(); assertFalse(CorsUtils.isPreFlightRequest(request)); - request = options("/").header(HttpHeaders.ORIGIN, "http://domain.com").build(); + request = options("/").header(HttpHeaders.ORIGIN, "https://domain.com").build(); assertFalse(CorsUtils.isPreFlightRequest(request)); request = options("/").header(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET").build(); diff --git a/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsWebFilterTests.java b/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsWebFilterTests.java index 2538912a0fe..a351fc3ea0b 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsWebFilterTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsWebFilterTests.java @@ -54,7 +54,7 @@ public class CorsWebFilterTests { @Before public void setup() throws Exception { - config.setAllowedOrigins(Arrays.asList("http://domain1.com", "http://domain2.com")); + config.setAllowedOrigins(Arrays.asList("https://domain1.com", "https://domain2.com")); config.setAllowedMethods(Arrays.asList("GET", "POST")); config.setAllowedHeaders(Arrays.asList("header1", "header2")); config.setExposedHeaders(Arrays.asList("header3", "header4")); @@ -68,7 +68,7 @@ public class CorsWebFilterTests { WebFilterChain filterChain = (filterExchange) -> { try { HttpHeaders headers = filterExchange.getResponse().getHeaders(); - assertEquals("http://domain2.com", headers.getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", headers.getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertEquals("header3, header4", headers.getFirst(ACCESS_CONTROL_EXPOSE_HEADERS)); } catch (AssertionError ex) { return Mono.error(ex); @@ -78,9 +78,9 @@ public class CorsWebFilterTests { }; MockServerWebExchange exchange = MockServerWebExchange.from( MockServerHttpRequest - .get("http://domain1.com/test.html") + .get("https://domain1.com/test.html") .header(HOST, "domain1.com") - .header(ORIGIN, "http://domain2.com") + .header(ORIGIN, "https://domain2.com") .header("header2", "foo")); this.filter.filter(exchange, filterChain); } @@ -89,9 +89,9 @@ public class CorsWebFilterTests { public void invalidActualRequest() throws ServletException, IOException { MockServerWebExchange exchange = MockServerWebExchange.from( MockServerHttpRequest - .delete("http://domain1.com/test.html") + .delete("https://domain1.com/test.html") .header(HOST, "domain1.com") - .header(ORIGIN, "http://domain2.com") + .header(ORIGIN, "https://domain2.com") .header("header2", "foo")); WebFilterChain filterChain = (filterExchange) -> Mono.error( @@ -106,9 +106,9 @@ public class CorsWebFilterTests { MockServerWebExchange exchange = MockServerWebExchange.from( MockServerHttpRequest - .options("http://domain1.com/test.html") + .options("https://domain1.com/test.html") .header(HOST, "domain1.com") - .header(ORIGIN, "http://domain2.com") + .header(ORIGIN, "https://domain2.com") .header(ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.GET.name()) .header(ACCESS_CONTROL_REQUEST_HEADERS, "header1, header2") ); @@ -118,7 +118,7 @@ public class CorsWebFilterTests { filter.filter(exchange, filterChain); HttpHeaders headers = exchange.getResponse().getHeaders(); - assertEquals("http://domain2.com", headers.getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", headers.getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertEquals("header1, header2", headers.getFirst(ACCESS_CONTROL_ALLOW_HEADERS)); assertEquals("header3, header4", headers.getFirst(ACCESS_CONTROL_EXPOSE_HEADERS)); assertEquals(123L, Long.parseLong(headers.getFirst(ACCESS_CONTROL_MAX_AGE))); @@ -129,9 +129,9 @@ public class CorsWebFilterTests { MockServerWebExchange exchange = MockServerWebExchange.from( MockServerHttpRequest - .options("http://domain1.com/test.html") + .options("https://domain1.com/test.html") .header(HOST, "domain1.com") - .header(ORIGIN, "http://domain2.com") + .header(ORIGIN, "https://domain2.com") .header(ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.DELETE.name()) .header(ACCESS_CONTROL_REQUEST_HEADERS, "header1, header2")); diff --git a/spring-web/src/test/java/org/springframework/web/cors/reactive/DefaultCorsProcessorTests.java b/spring-web/src/test/java/org/springframework/web/cors/reactive/DefaultCorsProcessorTests.java index adf5127aa6e..675f23e12c3 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/reactive/DefaultCorsProcessorTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/reactive/DefaultCorsProcessorTests.java @@ -101,15 +101,15 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestCredentials() throws Exception { ServerWebExchange exchange = actualRequest(); - this.conf.addAllowedOrigin("http://domain1.com"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain1.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.setAllowCredentials(true); this.processor.process(this.conf, exchange); ServerHttpResponse response = exchange.getResponse(); assertTrue(response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(response.getHeaders().containsKey(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", response.getHeaders().getFirst(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(response.getHeaders().get(VARY), contains(ORIGIN, @@ -126,7 +126,7 @@ public class DefaultCorsProcessorTests { ServerHttpResponse response = exchange.getResponse(); assertTrue(response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(response.getHeaders().containsKey(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", response.getHeaders().getFirst(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(response.getHeaders().get(VARY), contains(ORIGIN, @@ -137,7 +137,7 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestCaseInsensitiveOriginMatch() throws Exception { ServerWebExchange exchange = actualRequest(); - this.conf.addAllowedOrigin("http://DOMAIN2.com"); + this.conf.addAllowedOrigin("https://DOMAIN2.com"); this.processor.process(this.conf, exchange); ServerHttpResponse response = exchange.getResponse(); @@ -152,12 +152,12 @@ public class DefaultCorsProcessorTests { ServerWebExchange exchange = actualRequest(); this.conf.addExposedHeader("header1"); this.conf.addExposedHeader("header2"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.process(this.conf, exchange); ServerHttpResponse response = exchange.getResponse(); assertTrue(response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(response.getHeaders().containsKey(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS)); assertTrue(response.getHeaders().getFirst(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS).contains("header1")); assertTrue(response.getHeaders().getFirst(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS).contains("header2")); @@ -278,8 +278,8 @@ public class DefaultCorsProcessorTests { .header(ACCESS_CONTROL_REQUEST_METHOD, "GET") .header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1")); - this.conf.addAllowedOrigin("http://domain1.com"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain1.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.addAllowedHeader("Header1"); this.conf.setAllowCredentials(true); @@ -288,7 +288,7 @@ public class DefaultCorsProcessorTests { ServerHttpResponse response = exchange.getResponse(); assertTrue(response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(response.getHeaders().containsKey(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", response.getHeaders().getFirst(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(response.getHeaders().get(VARY), contains(ORIGIN, @@ -302,7 +302,7 @@ public class DefaultCorsProcessorTests { .header(ACCESS_CONTROL_REQUEST_METHOD, "GET") .header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1")); - this.conf.addAllowedOrigin("http://domain1.com"); + this.conf.addAllowedOrigin("https://domain1.com"); this.conf.addAllowedOrigin("*"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.addAllowedHeader("Header1"); @@ -312,7 +312,7 @@ public class DefaultCorsProcessorTests { ServerHttpResponse response = exchange.getResponse(); assertTrue(response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertThat(response.getHeaders().get(VARY), contains(ORIGIN, ACCESS_CONTROL_REQUEST_METHOD, ACCESS_CONTROL_REQUEST_HEADERS)); assertNull(response.getStatusCode()); @@ -327,7 +327,7 @@ public class DefaultCorsProcessorTests { this.conf.addAllowedHeader("Header1"); this.conf.addAllowedHeader("Header2"); this.conf.addAllowedHeader("Header3"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.process(this.conf, exchange); @@ -349,7 +349,7 @@ public class DefaultCorsProcessorTests { .header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1, Header2")); this.conf.addAllowedHeader("*"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.process(this.conf, exchange); @@ -371,7 +371,7 @@ public class DefaultCorsProcessorTests { .header(ACCESS_CONTROL_REQUEST_HEADERS, "")); this.conf.addAllowedHeader("*"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.process(this.conf, exchange); @@ -407,7 +407,7 @@ public class DefaultCorsProcessorTests { private MockServerHttpRequest.BaseBuilder corsRequest(HttpMethod method) { return MockServerHttpRequest .method(method, "http://localhost/test.html") - .header(HttpHeaders.ORIGIN, "http://domain2.com"); + .header(HttpHeaders.ORIGIN, "https://domain2.com"); } } diff --git a/spring-web/src/test/java/org/springframework/web/filter/CorsFilterTests.java b/spring-web/src/test/java/org/springframework/web/filter/CorsFilterTests.java index 92bca321382..77458b5ada5 100644 --- a/spring-web/src/test/java/org/springframework/web/filter/CorsFilterTests.java +++ b/spring-web/src/test/java/org/springframework/web/filter/CorsFilterTests.java @@ -43,7 +43,7 @@ public class CorsFilterTests { @Before public void setup() throws Exception { - config.setAllowedOrigins(Arrays.asList("http://domain1.com", "http://domain2.com")); + config.setAllowedOrigins(Arrays.asList("https://domain1.com", "https://domain2.com")); config.setAllowedMethods(Arrays.asList("GET", "POST")); config.setAllowedHeaders(Arrays.asList("header1", "header2")); config.setExposedHeaders(Arrays.asList("header3", "header4")); @@ -56,12 +56,12 @@ public class CorsFilterTests { public void validActualRequest() throws ServletException, IOException { MockHttpServletRequest request = new MockHttpServletRequest(HttpMethod.GET.name(), "/test.html"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); request.addHeader("header2", "foo"); MockHttpServletResponse response = new MockHttpServletResponse(); FilterChain filterChain = (filterRequest, filterResponse) -> { - assertEquals("http://domain2.com", response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertEquals("header3, header4", response.getHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS)); }; filter.doFilter(request, response, filterChain); @@ -71,7 +71,7 @@ public class CorsFilterTests { public void invalidActualRequest() throws ServletException, IOException { MockHttpServletRequest request = new MockHttpServletRequest(HttpMethod.DELETE.name(), "/test.html"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); request.addHeader("header2", "foo"); MockHttpServletResponse response = new MockHttpServletResponse(); @@ -86,7 +86,7 @@ public class CorsFilterTests { public void validPreFlightRequest() throws ServletException, IOException { MockHttpServletRequest request = new MockHttpServletRequest(HttpMethod.OPTIONS.name(), "/test.html"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.GET.name()); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "header1, header2"); MockHttpServletResponse response = new MockHttpServletResponse(); @@ -95,7 +95,7 @@ public class CorsFilterTests { fail("Preflight requests must not be forwarded to the filter chain"); filter.doFilter(request, response, filterChain); - assertEquals("http://domain2.com", response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertEquals("header1, header2", response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS)); assertEquals("header3, header4", response.getHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS)); assertEquals(123L, Long.parseLong(response.getHeader(HttpHeaders.ACCESS_CONTROL_MAX_AGE))); @@ -105,7 +105,7 @@ public class CorsFilterTests { public void invalidPreFlightRequest() throws ServletException, IOException { MockHttpServletRequest request = new MockHttpServletRequest(HttpMethod.OPTIONS.name(), "/test.html"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.DELETE.name()); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "header1, header2"); MockHttpServletResponse response = new MockHttpServletResponse(); diff --git a/spring-web/src/test/java/org/springframework/web/filter/ForwardedHeaderFilterTests.java b/spring-web/src/test/java/org/springframework/web/filter/ForwardedHeaderFilterTests.java index 8ed78c14c3a..4ebc1b082a3 100644 --- a/spring-web/src/test/java/org/springframework/web/filter/ForwardedHeaderFilterTests.java +++ b/spring-web/src/test/java/org/springframework/web/filter/ForwardedHeaderFilterTests.java @@ -372,7 +372,7 @@ public class ForwardedHeaderFilterTests { this.request.addHeader(X_FORWARDED_HOST, "example.com"); this.request.addHeader(X_FORWARDED_PORT, "443"); - String location = "http://other.info/foo/bar"; + String location = "https://weibo.com/otherinfo/foo/bar"; String redirectedUrl = sendRedirect(location); assertEquals(location, redirectedUrl); } diff --git a/spring-web/src/test/java/org/springframework/web/filter/ShallowEtagHeaderFilterTests.java b/spring-web/src/test/java/org/springframework/web/filter/ShallowEtagHeaderFilterTests.java index 6baca916985..55dbadf0a27 100644 --- a/spring-web/src/test/java/org/springframework/web/filter/ShallowEtagHeaderFilterTests.java +++ b/spring-web/src/test/java/org/springframework/web/filter/ShallowEtagHeaderFilterTests.java @@ -230,7 +230,7 @@ public class ShallowEtagHeaderFilterTests { assertEquals("Invalid request passed", request, filterRequest); response.setContentLength(100); FileCopyUtils.copy(responseBody, filterResponse.getOutputStream()); - ((HttpServletResponse) filterResponse).sendRedirect("http://www.google.com"); + ((HttpServletResponse) filterResponse).sendRedirect("https://www.google.com"); }; filter.doFilter(request, response, filterChain); @@ -238,7 +238,7 @@ public class ShallowEtagHeaderFilterTests { assertNull("Invalid ETag header", response.getHeader("ETag")); assertEquals("Invalid Content-Length header", 100, response.getContentLength()); assertArrayEquals("Invalid content", responseBody, response.getContentAsByteArray()); - assertEquals("Invalid redirect URL", "http://www.google.com", response.getRedirectedUrl()); + assertEquals("Invalid redirect URL", "https://www.google.com", response.getRedirectedUrl()); } // SPR-13717 diff --git a/spring-web/src/test/java/org/springframework/web/filter/reactive/ForwardedHeaderFilterTests.java b/spring-web/src/test/java/org/springframework/web/filter/reactive/ForwardedHeaderFilterTests.java index d96f9fdff36..9823232e065 100644 --- a/spring-web/src/test/java/org/springframework/web/filter/reactive/ForwardedHeaderFilterTests.java +++ b/spring-web/src/test/java/org/springframework/web/filter/reactive/ForwardedHeaderFilterTests.java @@ -67,7 +67,7 @@ public class ForwardedHeaderFilterTests { @Test public void xForwardedRequest() throws Exception { MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest - .get("http://example.com/path") + .get("https://example.com/path") .header("X-Forwarded-Host", "84.198.58.199") .header("X-Forwarded-Port", "443") .header("X-Forwarded-Proto", "https")); @@ -81,7 +81,7 @@ public class ForwardedHeaderFilterTests { @Test public void forwardedRequest() throws Exception { MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest - .get("http://example.com/path") + .get("https://example.com/path") .header("Forwarded", "host=84.198.58.199;proto=https")); this.filter.filter(exchange, this.filterChain).block(Duration.ZERO); @@ -93,31 +93,31 @@ public class ForwardedHeaderFilterTests { @Test public void requestUriWithForwardedPrefix() throws Exception { MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest - .get("http://example.com/path") + .get("https://example.com/path") .header("X-Forwarded-Prefix", "/prefix")); this.filter.filter(exchange, this.filterChain).block(Duration.ZERO); URI uri = this.filterChain.uri; - assertEquals(new URI("http://example.com/prefix/path"), uri); + assertEquals(new URI("https://example.com/prefix/path"), uri); } @Test public void requestUriWithForwardedPrefixTrailingSlash() throws Exception { MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest - .get("http://example.com/path") + .get("https://example.com/path") .header("X-Forwarded-Prefix", "/prefix/")); this.filter.filter(exchange, this.filterChain).block(Duration.ZERO); URI uri = this.filterChain.uri; - assertEquals(new URI("http://example.com/prefix/path"), uri); + assertEquals(new URI("https://example.com/prefix/path"), uri); } @Test // SPR-17525 public void shouldNotDoubleEncode() throws Exception { MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest - .method(HttpMethod.GET, new URI ("http://example.com/a%20b?q=a%2Bb")) + .method(HttpMethod.GET, new URI ("https://example.com/a%20b?q=a%2Bb")) .header("Forwarded", "host=84.198.58.199;proto=https")); this.filter.filter(exchange, this.filterChain).block(Duration.ZERO); diff --git a/spring-web/src/test/java/org/springframework/web/multipart/support/RequestPartServletServerHttpRequestTests.java b/spring-web/src/test/java/org/springframework/web/multipart/support/RequestPartServletServerHttpRequestTests.java index 3ececf15fea..6759871191f 100644 --- a/spring-web/src/test/java/org/springframework/web/multipart/support/RequestPartServletServerHttpRequestTests.java +++ b/spring-web/src/test/java/org/springframework/web/multipart/support/RequestPartServletServerHttpRequestTests.java @@ -56,7 +56,7 @@ public class RequestPartServletServerHttpRequestTests { this.mockRequest.addFile(new MockMultipartFile("part", "", "application/json", "content".getBytes("UTF-8"))); ServerHttpRequest request = new RequestPartServletServerHttpRequest(this.mockRequest, "part"); - URI uri = new URI("http://example.com/path?query"); + URI uri = new URI("https://example.com/path?query"); this.mockRequest.setServerName(uri.getHost()); this.mockRequest.setServerPort(uri.getPort()); this.mockRequest.setRequestURI(uri.getPath()); diff --git a/spring-web/src/test/java/org/springframework/web/server/adapter/DefaultServerWebExchangeTests.java b/spring-web/src/test/java/org/springframework/web/server/adapter/DefaultServerWebExchangeTests.java index a2ff643576e..6680ccdc522 100644 --- a/spring-web/src/test/java/org/springframework/web/server/adapter/DefaultServerWebExchangeTests.java +++ b/spring-web/src/test/java/org/springframework/web/server/adapter/DefaultServerWebExchangeTests.java @@ -58,7 +58,7 @@ public class DefaultServerWebExchangeTests { private DefaultServerWebExchange createExchange() { - MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com").build(); + MockServerHttpRequest request = MockServerHttpRequest.get("https://example.com").build(); return createExchange(request); } diff --git a/spring-web/src/test/java/org/springframework/web/util/DefaultUriBuilderFactoryTests.java b/spring-web/src/test/java/org/springframework/web/util/DefaultUriBuilderFactoryTests.java index 5e95d65dfc3..41850581dbe 100644 --- a/spring-web/src/test/java/org/springframework/web/util/DefaultUriBuilderFactoryTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/DefaultUriBuilderFactoryTests.java @@ -41,24 +41,24 @@ public class DefaultUriBuilderFactoryTests { @Test public void baseUri() { - DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://foo.com/v1?id=123"); + DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://www.foo.com/v1?id=123"); URI uri = factory.uriString("/bar").port(8080).build(); - assertEquals("http://foo.com:8080/v1/bar?id=123", uri.toString()); + assertEquals("https://foo.com:8080/v1/bar?id=123", uri.toString()); } @Test public void baseUriWithFullOverride() { - DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://foo.com/v1?id=123"); - URI uri = factory.uriString("http://example.com/1/2").build(); + DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://www.foo.com/v1?id=123"); + URI uri = factory.uriString("https://example.com/1/2").build(); assertEquals("Use of host should case baseUri to be completely ignored", - "http://example.com/1/2", uri.toString()); + "https://example.com/1/2", uri.toString()); } @Test public void baseUriWithPathOverride() { - DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://foo.com/v1"); + DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://www.foo.com/v1"); URI uri = factory.builder().replacePath("/baz").build(); - assertEquals("http://foo.com/baz", uri.toString()); + assertEquals("http://www.foo.com/baz", uri.toString()); } @Test @@ -66,7 +66,7 @@ public class DefaultUriBuilderFactoryTests { DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://{host}/v1"); factory.setDefaultUriVariables(singletonMap("host", "foo.com")); URI uri = factory.uriString("/{id}").build(singletonMap("id", "123")); - assertEquals("http://foo.com/v1/123", uri.toString()); + assertEquals("http://www.foo.com/v1/123", uri.toString()); } @Test @@ -74,7 +74,7 @@ public class DefaultUriBuilderFactoryTests { DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://{host}/v1"); factory.setDefaultUriVariables(singletonMap("host", "spring.io")); URI uri = factory.uriString("/bar").build(singletonMap("host", "docs.spring.io")); - assertEquals("http://docs.spring.io/v1/bar", uri.toString()); + assertEquals("https://docs.spring.io/v1/bar", uri.toString()); } @Test @@ -82,7 +82,7 @@ public class DefaultUriBuilderFactoryTests { DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://{host}/v1"); factory.setDefaultUriVariables(singletonMap("host", "foo.com")); URI uri = factory.uriString("/bar").build(); - assertEquals("Expected delegation to build(Map) method", "http://foo.com/v1/bar", uri.toString()); + assertEquals("Expected delegation to build(Map) method", "http://www.foo.com/v1/bar", uri.toString()); } @Test @@ -141,7 +141,7 @@ public class DefaultUriBuilderFactoryTests { factory.setDefaultUriVariables(singletonMap("host", "www.example.com")); UriBuilder uriBuilder = factory.uriString("http://{host}/user/{userId}/dashboard"); - assertEquals("http://www.example.com/user/john%3Bdoe/dashboard", + assertEquals("https://www.example.com/user/john%3Bdoe/dashboard", uriBuilder.build(singletonMap("userId", "john;doe")).toString()); } diff --git a/spring-web/src/test/java/org/springframework/web/util/DefaultUriTemplateHandlerTests.java b/spring-web/src/test/java/org/springframework/web/util/DefaultUriTemplateHandlerTests.java index 49aefaa4eb8..e38f3fe66d2 100644 --- a/spring-web/src/test/java/org/springframework/web/util/DefaultUriTemplateHandlerTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/DefaultUriTemplateHandlerTests.java @@ -73,10 +73,10 @@ public class DefaultUriTemplateHandlerTests { Map vars = new HashMap<>(2); vars.put("hotel", "1"); vars.put("publicpath", "pics/logo.png"); - String template = "http://example.com/hotels/{hotel}/pic/{publicpath}"; + String template = "https://example.com/hotels/{hotel}/pic/{publicpath}"; URI actual = this.handler.expand(template, vars); - assertEquals("http://example.com/hotels/1/pic/pics/logo.png", actual.toString()); + assertEquals("https://example.com/hotels/1/pic/pics/logo.png", actual.toString()); } @Test @@ -86,10 +86,10 @@ public class DefaultUriTemplateHandlerTests { vars.put("hotel", "1"); vars.put("publicpath", "pics/logo.png"); vars.put("scale", "150x150"); - String template = "http://example.com/hotels/{hotel}/pic/{publicpath}/size/{scale}"; + String template = "https://example.com/hotels/{hotel}/pic/{publicpath}/size/{scale}"; URI actual = this.handler.expand(template, vars); - assertEquals("http://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150", actual.toString()); + assertEquals("https://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150", actual.toString()); } @Test @@ -97,19 +97,19 @@ public class DefaultUriTemplateHandlerTests { this.handler.setStrictEncoding(false); Map vars = new HashMap<>(2); vars.put("userId", "john;doe"); - String template = "http://www.example.com/user/{userId}/dashboard"; + String template = "https://www.example.com/user/{userId}/dashboard"; URI actual = this.handler.expand(template, vars); - assertEquals("http://www.example.com/user/john;doe/dashboard", actual.toString()); + assertEquals("https://www.example.com/user/john;doe/dashboard", actual.toString()); } @Test public void strictEncodingOffWithArray() throws Exception { this.handler.setStrictEncoding(false); - String template = "http://www.example.com/user/{userId}/dashboard"; + String template = "https://www.example.com/user/{userId}/dashboard"; URI actual = this.handler.expand(template, "john;doe"); - assertEquals("http://www.example.com/user/john;doe/dashboard", actual.toString()); + assertEquals("https://www.example.com/user/john;doe/dashboard", actual.toString()); } @Test @@ -117,19 +117,19 @@ public class DefaultUriTemplateHandlerTests { this.handler.setStrictEncoding(true); Map vars = new HashMap<>(2); vars.put("userId", "john;doe"); - String template = "http://www.example.com/user/{userId}/dashboard"; + String template = "https://www.example.com/user/{userId}/dashboard"; URI actual = this.handler.expand(template, vars); - assertEquals("http://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); + assertEquals("https://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); } @Test public void strictEncodingOnWithArray() throws Exception { this.handler.setStrictEncoding(true); - String template = "http://www.example.com/user/{userId}/dashboard"; + String template = "https://www.example.com/user/{userId}/dashboard"; URI actual = this.handler.expand(template, "john;doe"); - assertEquals("http://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); + assertEquals("https://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); } @Test // SPR-14147 @@ -145,7 +145,7 @@ public class DefaultUriTemplateHandlerTests { String template = "http://{host}/user/{userId}/dashboard"; URI actual = this.handler.expand(template, vars); - assertEquals("http://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); + assertEquals("https://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); } } diff --git a/spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java b/spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java index 3404f3b2e22..47bad514f1e 100644 --- a/spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java @@ -60,7 +60,7 @@ public class UriComponentsBuilderTests { assertEquals("bar", result.getQuery()); assertEquals("baz", result.getFragment()); - URI expected = new URI("http://example.com/foo?bar#baz"); + URI expected = new URI("https://example.com/foo?bar#baz"); assertEquals("Invalid result URI", expected, result.toUri()); } @@ -75,7 +75,7 @@ public class UriComponentsBuilderTests { assertEquals("http", result1.getScheme()); assertEquals("example.com", result1.getHost()); assertEquals("/foo", result1.getPath()); - URI expected = new URI("http://example.com/foo"); + URI expected = new URI("https://example.com/foo"); assertEquals("Invalid result URI", expected, result1.toUri()); assertEquals("http", result2.getScheme()); @@ -83,7 +83,7 @@ public class UriComponentsBuilderTests { assertEquals("/foo/foo2", result2.getPath()); assertEquals("bar", result2.getQuery()); assertEquals("baz", result2.getFragment()); - expected = new URI("http://example.com/foo/foo2?bar#baz"); + expected = new URI("https://example.com/foo/foo2?bar#baz"); assertEquals("Invalid result URI", expected, result2.toUri()); } @@ -108,7 +108,7 @@ public class UriComponentsBuilderTests { @Test public void fromHierarchicalUri() throws URISyntaxException { - URI uri = new URI("http://example.com/foo?bar#baz"); + URI uri = new URI("https://example.com/foo?bar#baz"); UriComponents result = UriComponentsBuilder.fromUri(uri).build(); assertEquals("http", result.getScheme()); assertEquals("example.com", result.getHost()); @@ -132,7 +132,7 @@ public class UriComponentsBuilderTests { @Test // SPR-9317 public void fromUriEncodedQuery() throws URISyntaxException { - URI uri = new URI("http://www.example.org/?param=aGVsbG9Xb3JsZA%3D%3D"); + URI uri = new URI("https://www.example.org/?param=aGVsbG9Xb3JsZA%3D%3D"); String fromUri = UriComponentsBuilder.fromUri(uri).build().getQueryParams().get("param").get(0); String fromUriString = UriComponentsBuilder.fromUriString(uri.toString()) .build().getQueryParams().get("param").get(0); @@ -142,7 +142,7 @@ public class UriComponentsBuilderTests { @Test public void fromUriString() { - UriComponents result = UriComponentsBuilder.fromUriString("http://www.ietf.org/rfc/rfc3986.txt").build(); + UriComponents result = UriComponentsBuilder.fromUriString("https://www.ietf.org/rfc/rfc3986.txt").build(); assertEquals("http", result.getScheme()); assertNull(result.getUserInfo()); assertEquals("www.ietf.org", result.getHost()); @@ -152,7 +152,7 @@ public class UriComponentsBuilderTests { assertNull(result.getQuery()); assertNull(result.getFragment()); - String url = "http://arjen:foobar@java.sun.com:80" + + String url = "https://arjen:foobar@java.sun.com:80" + "/javase/6/docs/api/java/util/BitSet.html?foo=bar#and(java.util.BitSet)"; result = UriComponentsBuilder.fromUriString(url).build(); assertEquals("http", result.getScheme()); @@ -188,7 +188,7 @@ public class UriComponentsBuilderTests { @Test // SPR-9832 public void fromUriStringQueryParamWithReservedCharInValue() { - String uri = "http://www.google.com/ig/calculator?q=1USD=?EUR"; + String uri = "https://www.google.com/ig/calculator?q=1USD=?EUR"; UriComponents result = UriComponentsBuilder.fromUriString(uri).build(); assertEquals("q=1USD=?EUR", result.getQuery()); @@ -231,7 +231,7 @@ public class UriComponentsBuilderTests { @Test // SPR-11970 public void fromUriStringNoPathWithReservedCharInQuery() { - UriComponents result = UriComponentsBuilder.fromUriString("http://example.com?foo=bar@baz").build(); + UriComponents result = UriComponentsBuilder.fromUriString("https://example.com?foo=bar@baz").build(); assertTrue(StringUtils.isEmpty(result.getUserInfo())); assertEquals("example.com", result.getHost()); assertTrue(result.getQueryParams().containsKey("foo")); @@ -476,7 +476,7 @@ public class UriComponentsBuilderTests { HttpRequest httpRequest = new ServletServerHttpRequest(request); UriComponents result = UriComponentsBuilder.fromHttpRequest(httpRequest).build(); - assertEquals("http://a.example.org/mvc-showcase", result.toString()); + assertEquals("https://a.example.org/mvc-showcase", result.toString()); } @Test // SPR-12816 @@ -574,32 +574,32 @@ public class UriComponentsBuilderTests { @Test public void replacePath() { - UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("http://www.ietf.org/rfc/rfc2396.txt"); + UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("https://www.ietf.org/rfc/rfc2396.txt"); builder.replacePath("/rfc/rfc3986.txt"); UriComponents result = builder.build(); - assertEquals("http://www.ietf.org/rfc/rfc3986.txt", result.toUriString()); + assertEquals("https://www.ietf.org/rfc/rfc3986.txt", result.toUriString()); - builder = UriComponentsBuilder.fromUriString("http://www.ietf.org/rfc/rfc2396.txt"); + builder = UriComponentsBuilder.fromUriString("https://www.ietf.org/rfc/rfc2396.txt"); builder.replacePath(null); result = builder.build(); - assertEquals("http://www.ietf.org", result.toUriString()); + assertEquals("https://www.ietf.org", result.toUriString()); } @Test public void replaceQuery() { - UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("http://example.com/foo?foo=bar&baz=qux"); + UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("https://example.com/foo?foo=bar&baz=qux"); builder.replaceQuery("baz=42"); UriComponents result = builder.build(); - assertEquals("http://example.com/foo?baz=42", result.toUriString()); + assertEquals("https://example.com/foo?baz=42", result.toUriString()); - builder = UriComponentsBuilder.fromUriString("http://example.com/foo?foo=bar&baz=qux"); + builder = UriComponentsBuilder.fromUriString("https://example.com/foo?foo=bar&baz=qux"); builder.replaceQuery(null); result = builder.build(); - assertEquals("http://example.com/foo", result.toUriString()); + assertEquals("https://example.com/foo", result.toUriString()); } @Test @@ -667,22 +667,22 @@ public class UriComponentsBuilderTests { @Test public void queryParamWithValueWithEquals() { - UriComponents uriComponents = UriComponentsBuilder.fromUriString("http://example.com/foo?bar=baz").build(); - assertThat(uriComponents.toUriString(), equalTo("http://example.com/foo?bar=baz")); + UriComponents uriComponents = UriComponentsBuilder.fromUriString("https://example.com/foo?bar=baz").build(); + assertThat(uriComponents.toUriString(), equalTo("https://example.com/foo?bar=baz")); assertThat(uriComponents.getQueryParams().get("bar").get(0), equalTo("baz")); } @Test public void queryParamWithoutValueWithEquals() { - UriComponents uriComponents = UriComponentsBuilder.fromUriString("http://example.com/foo?bar=").build(); - assertThat(uriComponents.toUriString(), equalTo("http://example.com/foo?bar=")); + UriComponents uriComponents = UriComponentsBuilder.fromUriString("https://example.com/foo?bar=").build(); + assertThat(uriComponents.toUriString(), equalTo("https://example.com/foo?bar=")); assertThat(uriComponents.getQueryParams().get("bar").get(0), equalTo("")); } @Test public void queryParamWithoutValueWithoutEquals() { - UriComponents uriComponents = UriComponentsBuilder.fromUriString("http://example.com/foo?bar").build(); - assertThat(uriComponents.toUriString(), equalTo("http://example.com/foo?bar")); + UriComponents uriComponents = UriComponentsBuilder.fromUriString("https://example.com/foo?bar").build(); + assertThat(uriComponents.toUriString(), equalTo("https://example.com/foo?bar")); // TODO [SPR-13537] Change equalTo(null) to equalTo(""). assertThat(uriComponents.getQueryParams().get("bar").get(0), equalTo(null)); @@ -690,7 +690,7 @@ public class UriComponentsBuilderTests { @Test public void relativeUrls() { - String baseUrl = "http://example.com"; + String baseUrl = "https://example.com"; assertThat(UriComponentsBuilder.fromUriString(baseUrl + "/foo/../bar").build().toString(), equalTo(baseUrl + "/foo/../bar")); assertThat(UriComponentsBuilder.fromUriString(baseUrl + "/foo/../bar").build().toUriString(), @@ -713,15 +713,15 @@ public class UriComponentsBuilderTests { @Test public void emptySegments() { - String baseUrl = "http://example.com/abc/"; + String baseUrl = "https://example.com/abc/"; assertThat(UriComponentsBuilder.fromUriString(baseUrl).path("/x/y/z").build().toString(), - equalTo("http://example.com/abc/x/y/z")); + equalTo("https://example.com/abc/x/y/z")); assertThat(UriComponentsBuilder.fromUriString(baseUrl).pathSegment("x", "y", "z").build().toString(), - equalTo("http://example.com/abc/x/y/z")); + equalTo("https://example.com/abc/x/y/z")); assertThat(UriComponentsBuilder.fromUriString(baseUrl).path("/x/").path("/y/z").build().toString(), - equalTo("http://example.com/abc/x/y/z")); + equalTo("https://example.com/abc/x/y/z")); assertThat(UriComponentsBuilder.fromUriString(baseUrl).pathSegment("x").path("y").build().toString(), - equalTo("http://example.com/abc/x/y")); + equalTo("https://example.com/abc/x/y")); } @Test diff --git a/spring-web/src/test/java/org/springframework/web/util/UriComponentsTests.java b/spring-web/src/test/java/org/springframework/web/util/UriComponentsTests.java index 52e37d17f3d..a8ad9606a0f 100644 --- a/spring-web/src/test/java/org/springframework/web/util/UriComponentsTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/UriComponentsTests.java @@ -87,23 +87,23 @@ public class UriComponentsTests { @Test public void toUriEncoded() throws URISyntaxException { UriComponents uriComponents = UriComponentsBuilder.fromUriString( - "http://example.com/hotel list/Z\u00fcrich").build(); - assertEquals(new URI("http://example.com/hotel%20list/Z%C3%BCrich"), uriComponents.encode().toUri()); + "https://example.com/hotel list/Z\u00fcrich").build(); + assertEquals(new URI("https://example.com/hotel%20list/Z%C3%BCrich"), uriComponents.encode().toUri()); } @Test public void toUriNotEncoded() throws URISyntaxException { UriComponents uriComponents = UriComponentsBuilder.fromUriString( - "http://example.com/hotel list/Z\u00fcrich").build(); - assertEquals(new URI("http://example.com/hotel%20list/Z\u00fcrich"), uriComponents.toUri()); + "https://example.com/hotel list/Z\u00fcrich").build(); + assertEquals(new URI("https://example.com/hotel%20list/Z\u00fcrich"), uriComponents.toUri()); } @Test public void toUriAlreadyEncoded() throws URISyntaxException { UriComponents uriComponents = UriComponentsBuilder.fromUriString( - "http://example.com/hotel%20list/Z%C3%BCrich").build(true); + "https://example.com/hotel%20list/Z%C3%BCrich").build(true); UriComponents encoded = uriComponents.encode(); - assertEquals(new URI("http://example.com/hotel%20list/Z%C3%BCrich"), encoded.toUri()); + assertEquals(new URI("https://example.com/hotel%20list/Z%C3%BCrich"), encoded.toUri()); } @Test @@ -117,10 +117,10 @@ public class UriComponentsTests { @Test public void expand() { UriComponents uriComponents = UriComponentsBuilder.fromUriString( - "http://example.com").path("/{foo} {bar}").build(); + "https://example.com").path("/{foo} {bar}").build(); uriComponents = uriComponents.expand("1 2", "3 4"); assertEquals("/1 2 3 4", uriComponents.getPath()); - assertEquals("http://example.com/1 2 3 4", uriComponents.toUriString()); + assertEquals("https://example.com/1 2 3 4", uriComponents.toUriString()); } @Test // SPR-13311 @@ -139,18 +139,18 @@ public class UriComponentsTests { @Test // SPR-12123 public void port() { - UriComponents uri1 = fromUriString("http://example.com:8080/bar").build(); - UriComponents uri2 = fromUriString("http://example.com/bar").port(8080).build(); - UriComponents uri3 = fromUriString("http://example.com/bar").port("{port}").build().expand(8080); - UriComponents uri4 = fromUriString("http://example.com/bar").port("808{digit}").build().expand(0); + UriComponents uri1 = fromUriString("https://example.com:8080/bar").build(); + UriComponents uri2 = fromUriString("https://example.com/bar").port(8080).build(); + UriComponents uri3 = fromUriString("https://example.com/bar").port("{port}").build().expand(8080); + UriComponents uri4 = fromUriString("https://example.com/bar").port("808{digit}").build().expand(0); assertEquals(8080, uri1.getPort()); - assertEquals("http://example.com:8080/bar", uri1.toUriString()); + assertEquals("https://example.com:8080/bar", uri1.toUriString()); assertEquals(8080, uri2.getPort()); - assertEquals("http://example.com:8080/bar", uri2.toUriString()); + assertEquals("https://example.com:8080/bar", uri2.toUriString()); assertEquals(8080, uri3.getPort()); - assertEquals("http://example.com:8080/bar", uri3.toUriString()); + assertEquals("https://example.com:8080/bar", uri3.toUriString()); assertEquals(8080, uri4.getPort()); - assertEquals("http://example.com:8080/bar", uri4.toUriString()); + assertEquals("https://example.com:8080/bar", uri4.toUriString()); } @Test(expected = IllegalStateException.class) @@ -170,14 +170,14 @@ public class UriComponentsTests { @Test public void normalize() { - UriComponents uriComponents = UriComponentsBuilder.fromUriString("http://example.com/foo/../bar").build(); - assertEquals("http://example.com/bar", uriComponents.normalize().toString()); + UriComponents uriComponents = UriComponentsBuilder.fromUriString("https://example.com/foo/../bar").build(); + assertEquals("https://example.com/bar", uriComponents.normalize().toString()); } @Test public void serializable() throws Exception { UriComponents uriComponents = UriComponentsBuilder.fromUriString( - "http://example.com").path("/{foo}").query("bar={baz}").build(); + "https://example.com").path("/{foo}").query("bar={baz}").build(); ByteArrayOutputStream bos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(bos); oos.writeObject(uriComponents); @@ -198,7 +198,7 @@ public class UriComponentsTests { @Test public void equalsHierarchicalUriComponents() { - String url = "http://example.com"; + String url = "https://example.com"; UriComponents uric1 = UriComponentsBuilder.fromUriString(url).path("/{foo}").query("bar={baz}").build(); UriComponents uric2 = UriComponentsBuilder.fromUriString(url).path("/{foo}").query("bar={baz}").build(); UriComponents uric3 = UriComponentsBuilder.fromUriString(url).path("/{foo}").query("bin={baz}").build(); diff --git a/spring-web/src/test/java/org/springframework/web/util/UrlPathHelperTests.java b/spring-web/src/test/java/org/springframework/web/util/UrlPathHelperTests.java index 129c287ed51..b27ef6d8475 100644 --- a/spring-web/src/test/java/org/springframework/web/util/UrlPathHelperTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/UrlPathHelperTests.java @@ -169,7 +169,7 @@ public class UrlPathHelperTests { // // suite of tests root requests for default servlets (SRV 11.2) on Websphere vs Tomcat and other containers - // see: http://jira.springframework.org/browse/SPR-7064 + // see: https://jira.springframework.org/browse/SPR-7064 // diff --git a/spring-web/src/test/java/org/springframework/web/util/WebUtilsTests.java b/spring-web/src/test/java/org/springframework/web/util/WebUtilsTests.java index f4db584381d..61d6e9e1f59 100644 --- a/spring-web/src/test/java/org/springframework/web/util/WebUtilsTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/WebUtilsTests.java @@ -91,24 +91,24 @@ public class WebUtilsTests { @Test public void isValidOrigin() { List allowed = Collections.emptyList(); - assertTrue(checkValidOrigin("mydomain1.com", -1, "http://mydomain1.com", allowed)); + assertTrue(checkValidOrigin("mydomain1.com", -1, "https://mydomain1.com", allowed)); assertFalse(checkValidOrigin("mydomain1.com", -1, "http://mydomain2.com", allowed)); allowed = Collections.singletonList("*"); assertTrue(checkValidOrigin("mydomain1.com", -1, "http://mydomain2.com", allowed)); - allowed = Collections.singletonList("http://mydomain1.com"); - assertTrue(checkValidOrigin("mydomain2.com", -1, "http://mydomain1.com", allowed)); + allowed = Collections.singletonList("https://mydomain1.com"); + assertTrue(checkValidOrigin("mydomain2.com", -1, "https://mydomain1.com", allowed)); assertFalse(checkValidOrigin("mydomain2.com", -1, "http://mydomain3.com", allowed)); } @Test public void isSameOrigin() { - assertTrue(checkSameOrigin("mydomain1.com", -1, "http://mydomain1.com")); - assertTrue(checkSameOrigin("mydomain1.com", -1, "http://mydomain1.com:80")); + assertTrue(checkSameOrigin("mydomain1.com", -1, "https://mydomain1.com")); + assertTrue(checkSameOrigin("mydomain1.com", -1, "https://www.mydomain1.com/")); assertTrue(checkSameOrigin("mydomain1.com", 443, "https://mydomain1.com")); assertTrue(checkSameOrigin("mydomain1.com", 443, "https://mydomain1.com:443")); - assertTrue(checkSameOrigin("mydomain1.com", 123, "http://mydomain1.com:123")); + assertTrue(checkSameOrigin("mydomain1.com", 123, "https://mydomain1.com:123")); assertTrue(checkSameOrigin("mydomain1.com", -1, "ws://mydomain1.com")); assertTrue(checkSameOrigin("mydomain1.com", 443, "wss://mydomain1.com")); @@ -117,14 +117,14 @@ public class WebUtilsTests { assertFalse(checkSameOrigin("mydomain1.com", -1, "invalid-origin")); // Handling of invalid origins as described in SPR-13478 - assertTrue(checkSameOrigin("mydomain1.com", -1, "http://mydomain1.com/")); - assertTrue(checkSameOrigin("mydomain1.com", -1, "http://mydomain1.com:80/")); - assertTrue(checkSameOrigin("mydomain1.com", -1, "http://mydomain1.com/path")); - assertTrue(checkSameOrigin("mydomain1.com", -1, "http://mydomain1.com:80/path")); - assertFalse(checkSameOrigin("mydomain2.com", -1, "http://mydomain1.com/")); - assertFalse(checkSameOrigin("mydomain2.com", -1, "http://mydomain1.com:80/")); - assertFalse(checkSameOrigin("mydomain2.com", -1, "http://mydomain1.com/path")); - assertFalse(checkSameOrigin("mydomain2.com", -1, "http://mydomain1.com:80/path")); + assertTrue(checkSameOrigin("mydomain1.com", -1, "https://mydomain1.com/")); + assertTrue(checkSameOrigin("mydomain1.com", -1, "https://www.mydomain1.com/")); + assertTrue(checkSameOrigin("mydomain1.com", -1, "https://mydomain1.com/path")); + assertTrue(checkSameOrigin("mydomain1.com", -1, "https://www.mydomain1.com/path")); + assertFalse(checkSameOrigin("mydomain2.com", -1, "https://mydomain1.com/")); + assertFalse(checkSameOrigin("mydomain2.com", -1, "https://www.mydomain1.com/")); + assertFalse(checkSameOrigin("mydomain2.com", -1, "https://mydomain1.com/path")); + assertFalse(checkSameOrigin("mydomain2.com", -1, "https://www.mydomain1.com/path")); // Handling of IPv6 hosts as described in SPR-13525 assertTrue(checkSameOrigin("[::1]", -1, "http://[::1]")); diff --git a/spring-web/src/test/java/org/springframework/web/util/pattern/PathPatternTests.java b/spring-web/src/test/java/org/springframework/web/util/pattern/PathPatternTests.java index 348b2537117..e68d7aec2fb 100644 --- a/spring-web/src/test/java/org/springframework/web/util/pattern/PathPatternTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/pattern/PathPatternTests.java @@ -484,7 +484,7 @@ public class PathPatternTests { // test exact matching checkMatches("test", "test"); checkMatches("/test", "/test"); - checkMatches("http://example.org", "http://example.org"); + checkMatches("https://example.org", "https://example.org"); checkNoMatch("/test.jpg", "test.jpg"); checkNoMatch("test", "/test"); checkNoMatch("/test", "test"); diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/config/CorsRegistration.java b/spring-webflux/src/main/java/org/springframework/web/reactive/config/CorsRegistration.java index 5d71dab2fab..8dad2ae07fc 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/config/CorsRegistration.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/config/CorsRegistration.java @@ -45,12 +45,12 @@ public class CorsRegistration { /** * The list of allowed origins that be specific origins, e.g. - * {@code "http://domain1.com"}, or {@code "*"} for all origins. + * {@code "https://domain1.com"}, or {@code "*"} for all origins. *

    A matched origin is listed in the {@code Access-Control-Allow-Origin} * response header of preflight actual CORS requests. *

    By default all origins are allowed. *

    Note: CORS checks use values from "Forwarded" - * (RFC 7239), + * (RFC 7239), * "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" headers, * if present, in order to reflect the client-originated address. * Consider using the {@code ForwardedHeaderFilter} in order to choose from a diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/BodyExtractors.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/BodyExtractors.java index aee21a91e75..fd5003b8123 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/BodyExtractors.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/BodyExtractors.java @@ -76,7 +76,7 @@ public abstract class BodyExtractors { *

     	 * Mono<Map<String, String>> body = this.webClient
     	 *  .get()
    -	 *  .uri("http://example.com")
    +	 *  .uri("https://example.com")
     	 *  .exchange()
     	 *  .flatMap(r -> r.body(toMono(new ParameterizedTypeReference<Map<String,String>>() {})));
     	 * 
    @@ -126,7 +126,7 @@ public abstract class BodyExtractors { *
     	 * Flux<ServerSentEvent<String>> body = this.webClient
     	 *  .get()
    -	 *  .uri("http://example.com")
    +	 *  .uri("https://example.com")
     	 *  .exchange()
     	 *  .flatMap(r -> r.body(toFlux(new ParameterizedTypeReference<ServerSentEvent<String>>() {})));
     	 * 
    diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ExchangeFunction.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ExchangeFunction.java index 3fd2cc66666..9078462f867 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ExchangeFunction.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ExchangeFunction.java @@ -25,7 +25,7 @@ import reactor.core.publisher.Mono; *

    For example: *

      * ExchangeFunction exchangeFunction = ExchangeFunctions.create(new ReactorClientHttpConnector());
    - * ClientRequest<Void> request = ClientRequest.method(HttpMethod.GET, "http://example.com/resource").build();
    + * ClientRequest<Void> request = ClientRequest.method(HttpMethod.GET, "https://example.com/resource").build();
      *
      * Mono<String> result = exchangeFunction
      *     .exchange(request)
    diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/WebClient.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/WebClient.java
    index d1b74bf13f2..581c9a6aba9 100644
    --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/WebClient.java
    +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/WebClient.java
    @@ -156,31 +156,31 @@ public interface WebClient {
     		/**
     		 * Configure a base URL for requests performed through the client.
     		 *
    -		 * 

    For example given base URL "http://abc.com/v1": + *

    For example given base URL "https://abc.go.com/v1": *

     		 * Mono<Account> result = client.get()
     		 *         .uri("/accounts/{id}", 43)
     		 *         .exchange()
     		 *         .then(response -> response.bodyToMono(Account.class));
     		 *
    -		 * // Result: http://abc.com/v1/accounts/43
    +		 * // Result: https://abc.go.com/v1/accounts/43
     		 *
     		 * Flux<Account> result = client.get()
     		 *         .uri(builder -> builder.path("/accounts").queryParam("q", "12").build())
     		 *         .exchange()
     		 *         .then(response -> response.bodyToFlux(Account.class));
     		 *
    -		 * // Result: http://abc.com/v1/accounts?q=12
    +		 * // Result: https://abc.go.com/v1/accounts?q=12
     		 * 
    * *

    The base URL can be overridden with an absolute URI: *

     		 * Mono<Account> result = client.get()
    -		 *         .uri("http://xyz.com/path")
    +		 *         .uri("https://xyz.com/path")
     		 *         .exchange()
     		 *         .then(response -> response.bodyToMono(Account.class));
     		 *
    -		 * // Result: http://xyz.com/path
    +		 * // Result: https://xyz.com/path
     		 * 
    * *

    Or partially overridden with a {@code UriBuilder}: @@ -190,7 +190,7 @@ public interface WebClient { * .exchange() * .then(response -> response.bodyToFlux(Account.class)); * - * // Result: http://abc.com/v2/accounts?q=12 + * // Result: https://abc.go.com/v2/accounts?q=12 *

    * * @see #defaultUriVariables(Map) diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerRequest.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerRequest.java index 12d4d0a2406..33120262587 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerRequest.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/server/ServerRequest.java @@ -84,7 +84,7 @@ public interface ServerRequest { /** * Get a {@code UriBuilderComponents} from the URI associated with this * {@code ServerRequest}, while also overlaying with values from the headers - * "Forwarded" (RFC 7239), + * "Forwarded" (RFC 7239), * or "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" if * "Forwarded" is not found. * @return a URI builder diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/WebJarsResourceResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/WebJarsResourceResolver.java index 9c45c6c1838..9d756d6e61d 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/resource/WebJarsResourceResolver.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/WebJarsResourceResolver.java @@ -43,7 +43,7 @@ import org.springframework.web.server.ServerWebExchange; * @author Rossen Stoyanchev * @author Brian Clozel * @since 5.0 - * @see webjars.org + * @see webjars.org */ public class WebJarsResourceResolver extends AbstractResourceResolver { diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/freemarker/package-info.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/freemarker/package-info.java index 311ce009248..b46c377026d 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/freemarker/package-info.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/freemarker/package-info.java @@ -1,6 +1,6 @@ /** * Support classes for the integration of - * FreeMarker + * FreeMarker * as Spring web view technology. * Contains a View implementation for FreeMarker templates. */ diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/script/ScriptTemplateConfigurer.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/script/ScriptTemplateConfigurer.java index dba7c83913d..ff9aa1f93eb 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/script/ScriptTemplateConfigurer.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/script/ScriptTemplateConfigurer.java @@ -133,7 +133,7 @@ public class ScriptTemplateConfigurer implements ScriptTemplateConfig { * {@link #setEngineName(String)}. Using {@link #setEngine(ScriptEngine)} is not * possible because multiple instances of the script engine need to be created for * each request. - * @see THREADING ScriptEngine parameter + * @see THREADING ScriptEngine parameter */ public void setSharedEngine(@Nullable Boolean sharedEngine) { this.sharedEngine = sharedEngine; @@ -154,7 +154,7 @@ public class ScriptTemplateConfigurer implements ScriptTemplateConfig { * {@code configurer.setScripts("/META-INF/resources/webjars/library/version/library.js", * "com/myproject/script/render.js");}. * @see #setResourceLoaderPath - * @see WebJars + * @see WebJars */ public void setScripts(@Nullable String... scriptNames) { this.scripts = scriptNames; diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/config/CorsRegistryTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/config/CorsRegistryTests.java index ccd9f49b7dc..e35246a5579 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/config/CorsRegistryTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/config/CorsRegistryTests.java @@ -49,13 +49,13 @@ public class CorsRegistryTests { @Test public void customizedMapping() { - this.registry.addMapping("/foo").allowedOrigins("http://domain2.com", "http://domain2.com") + this.registry.addMapping("/foo").allowedOrigins("https://domain2.com", "https://domain2.com") .allowedMethods("DELETE").allowCredentials(false).allowedHeaders("header1", "header2") .exposedHeaders("header3", "header4").maxAge(3600); Map configs = this.registry.getCorsConfigurations(); assertEquals(1, configs.size()); CorsConfiguration config = configs.get("/foo"); - assertEquals(Arrays.asList("http://domain2.com", "http://domain2.com"), config.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain2.com", "https://domain2.com"), config.getAllowedOrigins()); assertEquals(Arrays.asList("DELETE"), config.getAllowedMethods()); assertEquals(Arrays.asList("header1", "header2"), config.getAllowedHeaders()); assertEquals(Arrays.asList("header3", "header4"), config.getExposedHeaders()); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/BodyInsertersTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/BodyInsertersTests.java index cec104c7a88..11fc428e4fe 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/BodyInsertersTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/BodyInsertersTests.java @@ -264,7 +264,7 @@ public class BodyInsertersTests { BodyInserter, ClientHttpRequest> inserter = BodyInserters.fromFormData(body); - MockClientHttpRequest request = new MockClientHttpRequest(HttpMethod.GET, URI.create("http://example.com")); + MockClientHttpRequest request = new MockClientHttpRequest(HttpMethod.GET, URI.create("https://example.com")); Mono result = inserter.insert(request, this.context); StepVerifier.create(result).expectComplete().verify(); @@ -289,7 +289,7 @@ public class BodyInsertersTests { .with("name 2", "value 2+2") .with("name 3", null); - MockClientHttpRequest request = new MockClientHttpRequest(HttpMethod.GET, URI.create("http://example.com")); + MockClientHttpRequest request = new MockClientHttpRequest(HttpMethod.GET, URI.create("https://example.com")); Mono result = inserter.insert(request, this.context); StepVerifier.create(result).expectComplete().verify(); @@ -316,7 +316,7 @@ public class BodyInsertersTests { .withPublisher("name 2", Flux.just("foo", "bar", "baz"), String.class) .with(map); - MockClientHttpRequest request = new MockClientHttpRequest(HttpMethod.GET, URI.create("http://example.com")); + MockClientHttpRequest request = new MockClientHttpRequest(HttpMethod.GET, URI.create("https://example.com")); Mono result = inserter.insert(request, this.context); StepVerifier.create(result).expectComplete().verify(); @@ -328,7 +328,7 @@ public class BodyInsertersTests { map.put("name", Arrays.asList("value1", "value2")); BodyInserters.FormInserter inserter = BodyInserters.fromMultipartData(map); - MockClientHttpRequest request = new MockClientHttpRequest(HttpMethod.GET, URI.create("http://example.com")); + MockClientHttpRequest request = new MockClientHttpRequest(HttpMethod.GET, URI.create("https://example.com")); Mono result = inserter.insert(request, this.context); StepVerifier.create(result).expectComplete().verify(); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientRequestBuilderTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientRequestBuilderTests.java index cfd8d5f10a3..29ed13f1f68 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientRequestBuilderTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientRequestBuilderTests.java @@ -50,14 +50,14 @@ public class DefaultClientRequestBuilderTests { @Test public void from() throws Exception { - ClientRequest other = ClientRequest.create(GET, URI.create("http://example.com")) + ClientRequest other = ClientRequest.create(GET, URI.create("https://example.com")) .header("foo", "bar") .cookie("baz", "qux").build(); ClientRequest result = ClientRequest.from(other) .headers(httpHeaders -> httpHeaders.set("foo", "baar")) .cookies(cookies -> cookies.set("baz", "quux")) .build(); - assertEquals(new URI("http://example.com"), result.url()); + assertEquals(new URI("https://example.com"), result.url()); assertEquals(GET, result.method()); assertEquals(1, result.headers().size()); assertEquals("baar", result.headers().getFirst("foo")); @@ -67,7 +67,7 @@ public class DefaultClientRequestBuilderTests { @Test public void method() throws Exception { - URI url = new URI("http://example.com"); + URI url = new URI("https://example.com"); ClientRequest.Builder builder = ClientRequest.create(DELETE, url); assertEquals(DELETE, builder.build().method()); @@ -77,8 +77,8 @@ public class DefaultClientRequestBuilderTests { @Test public void url() throws Exception { - URI url1 = new URI("http://example.com/foo"); - URI url2 = new URI("http://example.com/bar"); + URI url1 = new URI("https://example.com/foo"); + URI url2 = new URI("https://example.com/bar"); ClientRequest.Builder builder = ClientRequest.create(DELETE, url1); assertEquals(url1, builder.build().url()); @@ -88,14 +88,14 @@ public class DefaultClientRequestBuilderTests { @Test public void cookie() { - ClientRequest result = ClientRequest.create(GET, URI.create("http://example.com")) + ClientRequest result = ClientRequest.create(GET, URI.create("https://example.com")) .cookie("foo", "bar").build(); assertEquals("bar", result.cookies().getFirst("foo")); } @Test public void build() { - ClientRequest result = ClientRequest.create(GET, URI.create("http://example.com")) + ClientRequest result = ClientRequest.create(GET, URI.create("https://example.com")) .header("MyKey", "MyValue") .cookie("foo", "bar") .build(); @@ -121,7 +121,7 @@ public class DefaultClientRequestBuilderTests { return response.writeWith(Mono.just(buffer)); }; - ClientRequest result = ClientRequest.create(POST, URI.create("http://example.com")) + ClientRequest result = ClientRequest.create(POST, URI.create("https://example.com")) .body(inserter).build(); List> messageWriters = new ArrayList<>(); @@ -143,7 +143,7 @@ public class DefaultClientRequestBuilderTests { public void bodyClass() { String body = "foo"; Publisher publisher = Mono.just(body); - ClientRequest result = ClientRequest.create(POST, URI.create("http://example.com")) + ClientRequest result = ClientRequest.create(POST, URI.create("https://example.com")) .body(publisher, String.class).build(); List> messageWriters = new ArrayList<>(); @@ -166,7 +166,7 @@ public class DefaultClientRequestBuilderTests { String body = "foo"; Publisher publisher = Mono.just(body); ParameterizedTypeReference typeReference = new ParameterizedTypeReference() {}; - ClientRequest result = ClientRequest.create(POST, URI.create("http://example.com")) + ClientRequest result = ClientRequest.create(POST, URI.create("https://example.com")) .body(publisher, typeReference).build(); List> messageWriters = new ArrayList<>(); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultWebClientTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultWebClientTests.java index a1024abd48a..12c03496a07 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultWebClientTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultWebClientTests.java @@ -125,7 +125,7 @@ public class DefaultWebClientTests { Mono mono = Mono.empty(); WebClient client = builder().build(); - client.post().uri("http://example.com").syncBody(mono); + client.post().uri("https://example.com").syncBody(mono); } @Test diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/ExchangeFilterFunctionsTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/ExchangeFilterFunctionsTests.java index 0a10dd9828f..1e1cbf9a321 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/ExchangeFilterFunctionsTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/client/ExchangeFilterFunctionsTests.java @@ -37,7 +37,7 @@ public class ExchangeFilterFunctionsTests { @Test public void andThen() { - ClientRequest request = ClientRequest.create(GET, URI.create("http://example.com")).build(); + ClientRequest request = ClientRequest.create(GET, URI.create("https://example.com")).build(); ClientResponse response = mock(ClientResponse.class); ExchangeFunction exchange = r -> Mono.just(response); @@ -67,7 +67,7 @@ public class ExchangeFilterFunctionsTests { @Test public void apply() { - ClientRequest request = ClientRequest.create(GET, URI.create("http://example.com")).build(); + ClientRequest request = ClientRequest.create(GET, URI.create("https://example.com")).build(); ClientResponse response = mock(ClientResponse.class); ExchangeFunction exchange = r -> Mono.just(response); @@ -86,7 +86,7 @@ public class ExchangeFilterFunctionsTests { @Test public void basicAuthenticationUsernamePassword() { - ClientRequest request = ClientRequest.create(GET, URI.create("http://example.com")).build(); + ClientRequest request = ClientRequest.create(GET, URI.create("https://example.com")).build(); ClientResponse response = mock(ClientResponse.class); ExchangeFunction exchange = r -> { @@ -109,7 +109,7 @@ public class ExchangeFilterFunctionsTests { @Test public void basicAuthenticationAttributes() { - ClientRequest request = ClientRequest.create(GET, URI.create("http://example.com")) + ClientRequest request = ClientRequest.create(GET, URI.create("https://example.com")) .attributes(basicAuthenticationCredentials("foo", "bar")) .build(); ClientResponse response = mock(ClientResponse.class); @@ -128,7 +128,7 @@ public class ExchangeFilterFunctionsTests { @Test public void basicAuthenticationAbsentAttributes() { - ClientRequest request = ClientRequest.create(GET, URI.create("http://example.com")).build(); + ClientRequest request = ClientRequest.create(GET, URI.create("https://example.com")).build(); ClientResponse response = mock(ClientResponse.class); ExchangeFunction exchange = r -> { @@ -144,7 +144,7 @@ public class ExchangeFilterFunctionsTests { @Test public void statusHandlerMatch() { - ClientRequest request = ClientRequest.create(GET, URI.create("http://example.com")).build(); + ClientRequest request = ClientRequest.create(GET, URI.create("https://example.com")).build(); ClientResponse response = mock(ClientResponse.class); when(response.statusCode()).thenReturn(HttpStatus.NOT_FOUND); @@ -162,7 +162,7 @@ public class ExchangeFilterFunctionsTests { @Test public void statusHandlerNoMatch() { - ClientRequest request = ClientRequest.create(GET, URI.create("http://example.com")).build(); + ClientRequest request = ClientRequest.create(GET, URI.create("https://example.com")).build(); ClientResponse response = mock(ClientResponse.class); when(response.statusCode()).thenReturn(HttpStatus.NOT_FOUND); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultEntityResponseBuilderTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultEntityResponseBuilderTests.java index 15278f78320..b6acb53218d 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultEntityResponseBuilderTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultEntityResponseBuilderTests.java @@ -227,7 +227,7 @@ public class DefaultEntityResponseBuilderTests { .build() .block(); - MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com") + MockServerHttpRequest request = MockServerHttpRequest.get("https://example.com") .header(HttpHeaders.IF_NONE_MATCH, etag) .build(); MockServerWebExchange exchange = MockServerWebExchange.from(request); @@ -251,7 +251,7 @@ public class DefaultEntityResponseBuilderTests { .build() .block(); - MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com") + MockServerHttpRequest request = MockServerHttpRequest.get("https://example.com") .header(HttpHeaders.IF_MODIFIED_SINCE, DateTimeFormatter.RFC_1123_DATE_TIME.format(now)) .build(); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseTests.java index 9ae6ccafaee..e639a001296 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultRenderingResponseTests.java @@ -194,7 +194,7 @@ public class DefaultRenderingResponseTests { .build() .block(); - MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com") + MockServerHttpRequest request = MockServerHttpRequest.get("https://example.com") .header(HttpHeaders.IF_NONE_MATCH, etag) .build(); MockServerWebExchange exchange = MockServerWebExchange.from(request); @@ -218,7 +218,7 @@ public class DefaultRenderingResponseTests { .build() .block(); - MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com") + MockServerHttpRequest request = MockServerHttpRequest.get("https://example.com") .header(HttpHeaders.IF_MODIFIED_SINCE, DateTimeFormatter.RFC_1123_DATE_TIME.format(now)) .build(); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerRequestTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerRequestTests.java index 320602d4b3d..77c0a6077d0 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerRequestTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerRequestTests.java @@ -68,7 +68,7 @@ public class DefaultServerRequestTests { public void method() throws Exception { HttpMethod method = HttpMethod.HEAD; DefaultServerRequest request = new DefaultServerRequest( - MockServerWebExchange.from(MockServerHttpRequest.method(method, "http://example.com")), + MockServerWebExchange.from(MockServerHttpRequest.method(method, "https://example.com")), this.messageReaders); assertEquals(method, request.method()); @@ -104,7 +104,7 @@ public class DefaultServerRequestTests { @Test public void attribute() throws Exception { MockServerWebExchange exchange = MockServerWebExchange.from( - MockServerHttpRequest.method(HttpMethod.GET, "http://example.com")); + MockServerHttpRequest.method(HttpMethod.GET, "https://example.com")); exchange.getAttributes().put("foo", "bar"); DefaultServerRequest request = new DefaultServerRequest(exchange, messageReaders); @@ -115,7 +115,7 @@ public class DefaultServerRequestTests { @Test public void queryParams() throws Exception { DefaultServerRequest request = new DefaultServerRequest( - MockServerWebExchange.from(MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo=bar")), + MockServerWebExchange.from(MockServerHttpRequest.method(HttpMethod.GET, "https://example.com?foo=bar")), this.messageReaders); assertEquals(Optional.of("bar"), request.queryParam("foo")); @@ -124,7 +124,7 @@ public class DefaultServerRequestTests { @Test public void emptyQueryParam() throws Exception { DefaultServerRequest request = new DefaultServerRequest( - MockServerWebExchange.from(MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo")), + MockServerWebExchange.from(MockServerHttpRequest.method(HttpMethod.GET, "https://example.com?foo")), this.messageReaders); assertEquals(Optional.of(""), request.queryParam("foo")); @@ -133,7 +133,7 @@ public class DefaultServerRequestTests { @Test public void absentQueryParam() throws Exception { DefaultServerRequest request = new DefaultServerRequest( - MockServerWebExchange.from(MockServerHttpRequest.method(HttpMethod.GET, "http://example.com?foo")), + MockServerWebExchange.from(MockServerHttpRequest.method(HttpMethod.GET, "https://example.com?foo")), this.messageReaders); assertEquals(Optional.empty(), request.queryParam("bar")); @@ -141,7 +141,7 @@ public class DefaultServerRequestTests { @Test public void pathVariable() throws Exception { - MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://example.com")); + MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("https://example.com")); Map pathVariables = Collections.singletonMap("foo", "bar"); exchange.getAttributes().put(RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE, pathVariables); @@ -153,7 +153,7 @@ public class DefaultServerRequestTests { @Test(expected = IllegalArgumentException.class) public void pathVariableNotFound() throws Exception { - MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://example.com")); + MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("https://example.com")); Map pathVariables = Collections.singletonMap("foo", "bar"); exchange.getAttributes().put(RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE, pathVariables); @@ -164,7 +164,7 @@ public class DefaultServerRequestTests { @Test public void pathVariables() throws Exception { - MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://example.com")); + MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("https://example.com")); Map pathVariables = Collections.singletonMap("foo", "bar"); exchange.getAttributes().put(RouterFunctions.URI_TEMPLATE_VARIABLES_ATTRIBUTE, pathVariables); @@ -192,7 +192,7 @@ public class DefaultServerRequestTests { DefaultServerRequest request = new DefaultServerRequest( MockServerWebExchange.from(MockServerHttpRequest - .method(HttpMethod.GET, "http://example.com?foo=bar") + .method(HttpMethod.GET, "https://example.com?foo=bar") .headers(httpHeaders)), this.messageReaders); @@ -208,7 +208,7 @@ public class DefaultServerRequestTests { public void cookies() { HttpCookie cookie = new HttpCookie("foo", "bar"); MockServerWebExchange exchange = MockServerWebExchange.from( - MockServerHttpRequest.method(HttpMethod.GET, "http://example.com").cookie(cookie)); + MockServerHttpRequest.method(HttpMethod.GET, "https://example.com").cookie(cookie)); DefaultServerRequest request = new DefaultServerRequest(exchange, messageReaders); @@ -230,7 +230,7 @@ public class DefaultServerRequestTests { httpHeaders.setContentType(MediaType.TEXT_PLAIN); MockServerHttpRequest mockRequest = MockServerHttpRequest - .method(HttpMethod.GET, "http://example.com?foo=bar") + .method(HttpMethod.GET, "https://example.com?foo=bar") .headers(httpHeaders) .body(body); DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders); @@ -249,7 +249,7 @@ public class DefaultServerRequestTests { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.TEXT_PLAIN); MockServerHttpRequest mockRequest = MockServerHttpRequest - .method(HttpMethod.GET, "http://example.com?foo=bar") + .method(HttpMethod.GET, "https://example.com?foo=bar") .headers(httpHeaders) .body(body); DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders); @@ -268,7 +268,7 @@ public class DefaultServerRequestTests { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.TEXT_PLAIN); MockServerHttpRequest mockRequest = MockServerHttpRequest - .method(HttpMethod.GET, "http://example.com?foo=bar") + .method(HttpMethod.GET, "https://example.com?foo=bar") .headers(httpHeaders) .body(body); DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders); @@ -288,7 +288,7 @@ public class DefaultServerRequestTests { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.TEXT_PLAIN); MockServerHttpRequest mockRequest = MockServerHttpRequest - .method(HttpMethod.GET, "http://example.com?foo=bar") + .method(HttpMethod.GET, "https://example.com?foo=bar") .headers(httpHeaders) .body(body); DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders); @@ -307,7 +307,7 @@ public class DefaultServerRequestTests { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.TEXT_PLAIN); MockServerHttpRequest mockRequest = MockServerHttpRequest - .method(HttpMethod.GET, "http://example.com?foo=bar") + .method(HttpMethod.GET, "https://example.com?foo=bar") .headers(httpHeaders) .body(body); DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders); @@ -327,7 +327,7 @@ public class DefaultServerRequestTests { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.TEXT_PLAIN); MockServerHttpRequest mockRequest = MockServerHttpRequest - .method(HttpMethod.GET, "http://example.com?foo=bar") + .method(HttpMethod.GET, "https://example.com?foo=bar") .headers(httpHeaders) .body(body); DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), Collections.emptyList()); @@ -348,7 +348,7 @@ public class DefaultServerRequestTests { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED); MockServerHttpRequest mockRequest = MockServerHttpRequest - .method(HttpMethod.GET, "http://example.com") + .method(HttpMethod.GET, "https://example.com") .headers(httpHeaders) .body(body); DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), Collections.emptyList()); @@ -382,7 +382,7 @@ public class DefaultServerRequestTests { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.set(HttpHeaders.CONTENT_TYPE, "multipart/form-data; boundary=12345"); MockServerHttpRequest mockRequest = MockServerHttpRequest - .method(HttpMethod.GET, "http://example.com") + .method(HttpMethod.GET, "https://example.com") .headers(httpHeaders) .body(body); DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), Collections.emptyList()); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilderTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilderTests.java index 3b823248071..4a4cfa5adec 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilderTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerResponseBuilderTests.java @@ -94,7 +94,7 @@ public class DefaultServerResponseBuilderTests { @Test public void created() throws Exception { - URI location = URI.create("http://example.com"); + URI location = URI.create("https://example.com"); Mono result = ServerResponse.created(location).build(); StepVerifier.create(result) .expectNextMatches(response -> HttpStatus.CREATED.equals(response.statusCode()) && @@ -125,7 +125,7 @@ public class DefaultServerResponseBuilderTests { @Test public void seeOther() throws Exception { - URI location = URI.create("http://example.com"); + URI location = URI.create("https://example.com"); Mono result = ServerResponse.seeOther(location).build(); StepVerifier.create(result) .expectNextMatches(response -> HttpStatus.SEE_OTHER.equals(response.statusCode()) && @@ -136,7 +136,7 @@ public class DefaultServerResponseBuilderTests { @Test public void temporaryRedirect() throws Exception { - URI location = URI.create("http://example.com"); + URI location = URI.create("https://example.com"); Mono result = ServerResponse.temporaryRedirect(location).build(); StepVerifier.create(result) .expectNextMatches(response -> HttpStatus.TEMPORARY_REDIRECT.equals(response.statusCode()) && @@ -147,7 +147,7 @@ public class DefaultServerResponseBuilderTests { @Test public void permanentRedirect() throws Exception { - URI location = URI.create("http://example.com"); + URI location = URI.create("https://example.com"); Mono result = ServerResponse.permanentRedirect(location).build(); StepVerifier.create(result) .expectNextMatches(response -> HttpStatus.PERMANENT_REDIRECT.equals(response.statusCode()) && @@ -303,7 +303,7 @@ public class DefaultServerResponseBuilderTests { .header("MyKey", "MyValue") .cookie(cookie).build(); - MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com").build(); + MockServerHttpRequest request = MockServerHttpRequest.get("https://example.com").build(); MockServerWebExchange exchange = MockServerWebExchange.from(request); result.flatMap(res -> res.writeTo(exchange, EMPTY_CONTEXT)).block(); @@ -320,7 +320,7 @@ public class DefaultServerResponseBuilderTests { Mono mono = Mono.empty(); Mono result = ServerResponse.ok().build(mono); - MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com").build(); + MockServerHttpRequest request = MockServerHttpRequest.get("https://example.com").build(); MockServerWebExchange exchange = MockServerWebExchange.from(request); result.flatMap(res -> res.writeTo(exchange, EMPTY_CONTEXT)).block(); @@ -344,7 +344,7 @@ public class DefaultServerResponseBuilderTests { .syncBody("bar") .block(); - MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com") + MockServerHttpRequest request = MockServerHttpRequest.get("https://example.com") .header(HttpHeaders.IF_NONE_MATCH, etag) .build(); MockServerWebExchange exchange = MockServerWebExchange.from(request); @@ -368,7 +368,7 @@ public class DefaultServerResponseBuilderTests { .syncBody("bar") .block(); - MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com") + MockServerHttpRequest request = MockServerHttpRequest.get("https://example.com") .header(HttpHeaders.IF_MODIFIED_SINCE, DateTimeFormatter.RFC_1123_DATE_TIME.format(now)) .build(); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/support/RouterFunctionMappingTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/support/RouterFunctionMappingTests.java index 439a4426f24..8a283386c06 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/support/RouterFunctionMappingTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/support/RouterFunctionMappingTests.java @@ -33,7 +33,7 @@ import org.springframework.web.server.ServerWebExchange; */ public class RouterFunctionMappingTests { - private final ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://example.com/match")); + private final ServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("https://example.com/match")); private final ServerCodecConfigurer codecConfigurer = ServerCodecConfigurer.create(); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/handler/CorsUrlHandlerMappingTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/handler/CorsUrlHandlerMappingTests.java index b0b7d0da249..2dc0bc80166 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/handler/CorsUrlHandlerMappingTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/handler/CorsUrlHandlerMappingTests.java @@ -59,7 +59,7 @@ public class CorsUrlHandlerMappingTests { @Test public void actualRequestWithoutCorsConfigurationProvider() throws Exception { - String origin = "http://domain2.com"; + String origin = "https://domain2.com"; ServerWebExchange exchange = createExchange(HttpMethod.GET, "/welcome.html", origin); Object actual = this.handlerMapping.getHandler(exchange).block(); @@ -69,7 +69,7 @@ public class CorsUrlHandlerMappingTests { @Test public void preflightRequestWithoutCorsConfigurationProvider() throws Exception { - String origin = "http://domain2.com"; + String origin = "https://domain2.com"; ServerWebExchange exchange = createExchange(HttpMethod.OPTIONS, "/welcome.html", origin); Object actual = this.handlerMapping.getHandler(exchange).block(); @@ -80,7 +80,7 @@ public class CorsUrlHandlerMappingTests { @Test public void actualRequestWithCorsAwareHandler() throws Exception { - String origin = "http://domain2.com"; + String origin = "https://domain2.com"; ServerWebExchange exchange = createExchange(HttpMethod.GET, "/cors.html", origin); Object actual = this.handlerMapping.getHandler(exchange).block(); @@ -91,7 +91,7 @@ public class CorsUrlHandlerMappingTests { @Test public void preFlightWithCorsAwareHandler() throws Exception { - String origin = "http://domain2.com"; + String origin = "https://domain2.com"; ServerWebExchange exchange = createExchange(HttpMethod.OPTIONS, "/cors.html", origin); Object actual = this.handlerMapping.getHandler(exchange).block(); @@ -106,7 +106,7 @@ public class CorsUrlHandlerMappingTests { mappedConfig.addAllowedOrigin("*"); this.handlerMapping.setCorsConfigurations(Collections.singletonMap("/welcome.html", mappedConfig)); - String origin = "http://domain2.com"; + String origin = "https://domain2.com"; ServerWebExchange exchange = createExchange(HttpMethod.GET, "/welcome.html", origin); Object actual = this.handlerMapping.getHandler(exchange).block(); @@ -121,7 +121,7 @@ public class CorsUrlHandlerMappingTests { mappedConfig.addAllowedOrigin("*"); this.handlerMapping.setCorsConfigurations(Collections.singletonMap("/welcome.html", mappedConfig)); - String origin = "http://domain2.com"; + String origin = "https://domain2.com"; ServerWebExchange exchange = createExchange(HttpMethod.OPTIONS, "/welcome.html", origin); Object actual = this.handlerMapping.getHandler(exchange).block(); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/resource/AppCacheManifestTransformerTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/resource/AppCacheManifestTransformerTests.java index eaf38ed4791..ec3cbebcfd8 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/resource/AppCacheManifestTransformerTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/resource/AppCacheManifestTransformerTests.java @@ -134,7 +134,7 @@ public class AppCacheManifestTransformerTests { assertThat("should not rewrite external resources", content, Matchers.containsString("//example.org/style.css")); assertThat("should not rewrite external resources", content, - Matchers.containsString("http://example.org/image.png")); + Matchers.containsString("https://example.org/image.png")); assertThat("should generate fingerprint", content, Matchers.containsString("# Hash: 8eefc904df3bd46537fa7bdbbc5ab9fb")); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/resource/CssLinkResourceTransformerTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/resource/CssLinkResourceTransformerTests.java index 051fc367014..d4663f51bcc 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/resource/CssLinkResourceTransformerTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/resource/CssLinkResourceTransformerTests.java @@ -117,7 +117,7 @@ public class CssLinkResourceTransformerTests { Resource externalCss = new ClassPathResource("test/external.css", getClass()); StepVerifier.create(transformerChain.transform(exchange, externalCss).cast(TransformedResource.class)) .consumeNextWith(resource -> { - String expected = "@import url(\"http://example.org/fonts/css\");\n" + + String expected = "@import url(\"https://example.org/fonts/css\");\n" + "body { background: url(\"file:///home/spring/image.png\") }\n" + "figure { background: url(\"//example.org/style.css\")}"; String result = new String(resource.getByteArray(), StandardCharsets.UTF_8); @@ -126,7 +126,7 @@ public class CssLinkResourceTransformerTests { }).expectComplete().verify(); Mockito.verify(resolverChain, Mockito.never()) - .resolveUrlPath("http://example.org/fonts/css", Collections.singletonList(externalCss)); + .resolveUrlPath("https://example.org/fonts/css", Collections.singletonList(externalCss)); Mockito.verify(resolverChain, Mockito.never()) .resolveUrlPath("file:///home/spring/image.png", Collections.singletonList(externalCss)); Mockito.verify(resolverChain, Mockito.never()) diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/resource/ResourceUrlProviderTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/resource/ResourceUrlProviderTests.java index da616c17682..a8fb4c30e55 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/resource/ResourceUrlProviderTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/resource/ResourceUrlProviderTests.java @@ -81,7 +81,7 @@ public class ResourceUrlProviderTests { public void getStaticResourceUrlRequestWithQueryOrHash() { MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.get("/")); - String url = "/resources/foo.css?foo=bar&url=http://example.org"; + String url = "/resources/foo.css?foo=bar&url=https://example.org"; String resolvedUrl = this.urlProvider.getForUriString(url, exchange).block(Duration.ofSeconds(5)); assertEquals(url, resolvedUrl); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMappingInfoTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMappingInfoTests.java index 7f5c06348e3..338bcb2dfec 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMappingInfoTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMappingInfoTests.java @@ -283,7 +283,7 @@ public class RequestMappingInfoTests { @Ignore public void preFlightRequest() throws Exception { MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.options("/foo") - .header("Origin", "http://domain.com") + .header("Origin", "https://domain.com") .header(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "POST") ); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMethodsRequestConditionTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMethodsRequestConditionTests.java index eca23fa50d6..c70c4f8157a 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMethodsRequestConditionTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMethodsRequestConditionTests.java @@ -79,7 +79,7 @@ public class RequestMethodsRequestConditionTests { @Ignore public void getMatchingConditionWithCorsPreFlight() throws Exception { ServerWebExchange exchange = getExchange("OPTIONS"); - exchange.getRequest().getHeaders().add("Origin", "http://example.com"); + exchange.getRequest().getHeaders().add("Origin", "https://example.com"); exchange.getRequest().getHeaders().add(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "PUT"); assertNotNull(new RequestMethodsRequestCondition().getMatchingCondition(exchange)); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/CrossOriginAnnotationIntegrationTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/CrossOriginAnnotationIntegrationTests.java index f29bb47e473..e1e03235e8d 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/CrossOriginAnnotationIntegrationTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/CrossOriginAnnotationIntegrationTests.java @@ -59,7 +59,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin public void setup() throws Exception { super.setup(); this.headers = new HttpHeaders(); - this.headers.setOrigin("http://site1.com"); + this.headers.setOrigin("https://site1.com"); } @@ -68,7 +68,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); context.register(WebConfig.class); Properties props = new Properties(); - props.setProperty("myOrigin", "http://site1.com"); + props.setProperty("myOrigin", "https://site1.com"); context.getEnvironment().getPropertySources().addFirst(new PropertiesPropertySource("ps", props)); context.register(PropertySourcesPlaceholderConfigurer.class); context.refresh(); @@ -130,7 +130,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin public void actualRequestWithCustomizedAnnotation() throws Exception { ResponseEntity entity = performGet("/customized", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertFalse(entity.getHeaders().getAccessControlAllowCredentials()); assertEquals(-1, entity.getHeaders().getAccessControlMaxAge()); assertEquals("customized", entity.getBody()); @@ -143,7 +143,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin ResponseEntity entity = performOptions("/customized", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertArrayEquals(new HttpMethod[] {HttpMethod.GET}, entity.getHeaders().getAccessControlAllowMethods().toArray()); assertArrayEquals(new String[] {"header1", "header2"}, @@ -158,7 +158,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin public void customOriginDefinedViaValueAttribute() throws Exception { ResponseEntity entity = performGet("/origin-value-attribute", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertEquals("value-attribute", entity.getBody()); } @@ -166,7 +166,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin public void customOriginDefinedViaPlaceholder() throws Exception { ResponseEntity entity = performGet("/origin-placeholder", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertEquals("placeholder", entity.getBody()); } @@ -186,7 +186,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin entity = performGet("/baz", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertTrue(entity.getHeaders().getAccessControlAllowCredentials()); assertEquals("baz", entity.getBody()); } @@ -198,7 +198,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin ResponseEntity entity = performOptions("/ambiguous-header", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertArrayEquals(new HttpMethod[] {HttpMethod.GET}, entity.getHeaders().getAccessControlAllowMethods().toArray()); assertArrayEquals(new String[] {"header1"}, @@ -212,7 +212,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin ResponseEntity entity = performOptions("/ambiguous-produces", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertArrayEquals(new HttpMethod[] {HttpMethod.GET}, entity.getHeaders().getAccessControlAllowMethods().toArray()); assertTrue(entity.getHeaders().getAccessControlAllowCredentials()); @@ -274,7 +274,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin } @CrossOrigin( - origins = { "http://site1.com", "http://site2.com" }, + origins = { "https://site1.com", "https://site2.com" }, allowedHeaders = { "header1", "header2" }, exposedHeaders = { "header3", "header4" }, methods = RequestMethod.GET, @@ -285,7 +285,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin return "customized"; } - @CrossOrigin("http://site1.com") + @CrossOrigin("https://site1.com") @GetMapping("/origin-value-attribute") public String customOriginDefinedViaValueAttribute() { return "value-attribute"; diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ServerWebExchangeArgumentResolverTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ServerWebExchangeArgumentResolverTests.java index 4ee50967cb6..26c033e4340 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ServerWebExchangeArgumentResolverTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ServerWebExchangeArgumentResolverTests.java @@ -54,7 +54,7 @@ public class ServerWebExchangeArgumentResolverTests { new ServerWebExchangeArgumentResolver(ReactiveAdapterRegistry.getSharedInstance()); private final MockServerWebExchange exchange = MockServerWebExchange.from( - MockServerHttpRequest.get("http://example.org:9999/path?q=foo")); + MockServerHttpRequest.get("https://example.org:9999/path?q=foo")); private ResolvableMethod testMethod = ResolvableMethod.on(getClass()).named("handle").build(); @@ -105,7 +105,7 @@ public class ServerWebExchangeArgumentResolverTests { assertNotNull(value); assertEquals(UriComponentsBuilder.class, value.getClass()); - assertEquals("http://example.org:9999/next", ((UriComponentsBuilder) value).path("/next").toUriString()); + assertEquals("https://example.org:9999/next", ((UriComponentsBuilder) value).path("/next").toUriString()); } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/RedirectViewTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/RedirectViewTests.java index 4e5a3d2a36b..057fd03a455 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/RedirectViewTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/RedirectViewTests.java @@ -59,7 +59,7 @@ public class RedirectViewTests { @Test public void defaultStatusCode() { - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; RedirectView view = new RedirectView(url); view.render(new HashMap<>(), MediaType.TEXT_HTML, this.exchange).block(); assertEquals(HttpStatus.SEE_OTHER, this.exchange.getResponse().getStatusCode()); @@ -68,7 +68,7 @@ public class RedirectViewTests { @Test public void customStatusCode() { - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; RedirectView view = new RedirectView(url, HttpStatus.FOUND); view.render(new HashMap<>(), MediaType.TEXT_HTML, this.exchange).block(); assertEquals(HttpStatus.FOUND, this.exchange.getResponse().getStatusCode()); @@ -95,44 +95,44 @@ public class RedirectViewTests { public void remoteHost() { RedirectView view = new RedirectView(""); - assertFalse(view.isRemoteHost("http://url.somewhere.com")); + assertFalse(view.isRemoteHost("https://url.somewhere.com")); assertFalse(view.isRemoteHost("/path")); assertFalse(view.isRemoteHost("http://url.somewhereelse.com")); view.setHosts("url.somewhere.com"); - assertFalse(view.isRemoteHost("http://url.somewhere.com")); + assertFalse(view.isRemoteHost("https://url.somewhere.com")); assertFalse(view.isRemoteHost("/path")); assertTrue(view.isRemoteHost("http://url.somewhereelse.com")); } @Test public void expandUriTemplateVariablesFromModel() { - String url = "http://url.somewhere.com?foo={foo}"; + String url = "https://url.somewhere.com?foo={foo}"; Map model = Collections.singletonMap("foo", "bar"); RedirectView view = new RedirectView(url); view.render(model, MediaType.TEXT_HTML, this.exchange).block(); - assertEquals(URI.create("http://url.somewhere.com?foo=bar"), this.exchange.getResponse().getHeaders().getLocation()); + assertEquals(URI.create("https://url.somewhere.com?foo=bar"), this.exchange.getResponse().getHeaders().getLocation()); } @Test public void expandUriTemplateVariablesFromExchangeAttribute() { - String url = "http://url.somewhere.com?foo={foo}"; + String url = "https://url.somewhere.com?foo={foo}"; Map attributes = Collections.singletonMap("foo", "bar"); this.exchange.getAttributes().put(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, attributes); RedirectView view = new RedirectView(url); view.render(new HashMap<>(), MediaType.TEXT_HTML, exchange).block(); - assertEquals(URI.create("http://url.somewhere.com?foo=bar"), this.exchange.getResponse().getHeaders().getLocation()); + assertEquals(URI.create("https://url.somewhere.com?foo=bar"), this.exchange.getResponse().getHeaders().getLocation()); } @Test public void propagateQueryParams() throws Exception { - RedirectView view = new RedirectView("http://url.somewhere.com?foo=bar#bazz"); + RedirectView view = new RedirectView("https://url.somewhere.com?foo=bar#bazz"); view.setPropagateQuery(true); - this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://url.somewhere.com?a=b&c=d")); + this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("https://url.somewhere.com?a=b&c=d")); view.render(new HashMap<>(), MediaType.TEXT_HTML, this.exchange).block(); assertEquals(HttpStatus.SEE_OTHER, this.exchange.getResponse().getStatusCode()); - assertEquals(URI.create("http://url.somewhere.com?foo=bar&a=b&c=d#bazz"), + assertEquals(URI.create("https://url.somewhere.com?foo=bar&a=b&c=d#bazz"), this.exchange.getResponse().getHeaders().getLocation()); } diff --git a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/external.css b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/external.css index d21e42aaf2a..01b801aee03 100644 --- a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/external.css +++ b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/external.css @@ -1,3 +1,3 @@ -@import url("http://example.org/fonts/css"); +@import url("https://example.org/fonts/css"); body { background: url("file:///home/spring/image.png") } figure { background: url("//example.org/style.css")} \ No newline at end of file diff --git a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/foo.html b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/foo.html index 83ff005e6bf..b2f02184a64 100644 --- a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/foo.html +++ b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/foo.html @@ -1,4 +1,4 @@ - + diff --git a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/test.appcache b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/test.appcache index 76e2f32a98d..986d1055a64 100644 --- a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/test.appcache +++ b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/test.appcache @@ -11,7 +11,7 @@ NETWORK: CACHE: js/bar.js -http://example.org/image.png +https://example.org/image.png FALLBACK: /main /static.html \ No newline at end of file diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/View.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/View.java index 5772df3a598..a39695faa38 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/View.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/View.java @@ -27,7 +27,7 @@ import org.springframework.lang.Nullable; * content, and exposing the model. A single view exposes multiple model attributes. * *

    This class and the MVC approach associated with it is discussed in Chapter 12 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). * *

    View implementations may differ widely. An obvious implementation would be diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/CorsRegistration.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/CorsRegistration.java index 7cd1f74d3f0..cf641d3218f 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/CorsRegistration.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/CorsRegistration.java @@ -47,12 +47,12 @@ public class CorsRegistration { /** * The list of allowed origins that be specific origins, e.g. - * {@code "http://domain1.com"}, or {@code "*"} for all origins. + * {@code "https://domain1.com"}, or {@code "*"} for all origins. *

    A matched origin is listed in the {@code Access-Control-Allow-Origin} * response header of preflight actual CORS requests. *

    By default, all origins are allowed. *

    Note: CORS checks use values from "Forwarded" - * (RFC 7239), + * (RFC 7239), * "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" headers, * if present, in order to reflect the client-originated address. * Consider using the {@code ForwardedHeaderFilter} in order to choose from a diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ResourceHandlerRegistration.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ResourceHandlerRegistration.java index 9c9be1d852d..7c716bf4f35 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ResourceHandlerRegistration.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/ResourceHandlerRegistration.java @@ -75,7 +75,7 @@ public class ResourceHandlerRegistration { * (e.g. files, HTTP URLs, etc) this method supports a special prefix to * indicate the charset associated with the URL so that relative paths * appended to it can be encoded correctly, e.g. - * {@code [charset=Windows-31J]http://example.org/path}. + * {@code [charset=Windows-31J]https://example.org/path}. * @return the same {@link ResourceHandlerRegistration} instance, for * chained method invocation */ diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilder.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilder.java index 2a10c057769..6cad0be8b63 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilder.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilder.java @@ -83,7 +83,7 @@ import org.springframework.web.util.UriComponentsBuilder; * * *

    Note: This class uses values from "Forwarded" - * (RFC 7239), + * (RFC 7239), * "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" headers, * if present, in order to reflect the client-originated protocol and address. * Consider using the {@code ForwardedHeaderFilter} in order to choose from a diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/SseEmitter.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/SseEmitter.java index 1be1c20acdf..e55d68285db 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/SseEmitter.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/SseEmitter.java @@ -31,7 +31,7 @@ import org.springframework.util.StringUtils; /** * A specialization of {@link ResponseBodyEmitter} for sending - * Server-Sent Events. + * Server-Sent Events. * * @author Rossen Stoyanchev * @author Juergen Hoeller diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/package-info.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/package-info.java index fc75176abe8..d2d213bb3cc 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/package-info.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/package-info.java @@ -4,7 +4,7 @@ * Spring web MVC framework. * *

    This package and related packages are discussed in Chapters 12 and 13 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). */ @NonNullApi diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java index dadf4c66d6d..6d42511faa2 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java @@ -143,7 +143,7 @@ public class ResourceHttpRequestHandler extends WebContentGenerator * String-based location values, with support for {@link UrlResource}'s * (e.g. files or HTTP URLs) with a special prefix to indicate the charset * to use when appending relative paths. For example - * {@code "[charset=Windows-31J]http://example.org/path"}. + * {@code "[charset=Windows-31J]https://example.org/path"}. * @since 4.3.13 */ public void setLocationValues(List locationValues) { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/WebJarsResourceResolver.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/WebJarsResourceResolver.java index f0665b942c4..6bba2b433e6 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/WebJarsResourceResolver.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/WebJarsResourceResolver.java @@ -41,7 +41,7 @@ import org.springframework.lang.Nullable; * @author Brian Clozel * @since 4.2 * @see org.springframework.web.servlet.config.annotation.ResourceChainRegistration - * @see webjars.org + * @see webjars.org */ public class WebJarsResourceResolver extends AbstractResourceResolver { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/support/ServletUriComponentsBuilder.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/support/ServletUriComponentsBuilder.java index c2fc5c1e1cf..a942cc15b8f 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/support/ServletUriComponentsBuilder.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/support/ServletUriComponentsBuilder.java @@ -37,7 +37,7 @@ import org.springframework.web.util.UrlPathHelper; * based on the current HttpServletRequest. * *

    Note: This class uses values from "Forwarded" - * (RFC 7239), + * (RFC 7239), * "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" headers, * if present, in order to reflect the client-originated protocol and address. * Consider using the {@code ForwardedHeaderFilter} in order to choose from a @@ -270,12 +270,12 @@ public class ServletUriComponentsBuilder extends UriComponentsBuilder { * requestURI}. This method must be invoked before any calls to {@link #path(String)} * or {@link #pathSegment(String...)}. *

    -	 * GET http://foo.com/rest/books/6.json
    +	 * GET http://www.foo.com/rest/books/6.json
     	 *
     	 * ServletUriComponentsBuilder builder = ServletUriComponentsBuilder.fromRequestUri(this.request);
     	 * String ext = builder.removePathExtension();
     	 * String uri = builder.path("/pages/1.{ext}").buildAndExpand(ext).toUriString();
    -	 * assertEquals("http://foo.com/rest/books/6/pages/1.json", result);
    +	 * assertEquals("http://www.foo.com/rest/books/6/pages/1.json", result);
     	 * 
    * @return the removed path extension for possible re-use, or {@code null} * @since 4.0 diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/support/WebContentGenerator.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/support/WebContentGenerator.java index dea479b07f2..98df661b9e9 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/support/WebContentGenerator.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/support/WebContentGenerator.java @@ -573,7 +573,7 @@ public abstract class WebContentGenerator extends WebApplicationObjectSupport { /** * Prevent the response from being cached. * Only called in HTTP 1.0 compatibility mode. - *

    See {@code http://www.mnot.net/cache_docs}. + *

    See {@code https://www.mnot.net/cache_docs}. * @deprecated as of 4.2, in favor of {@link #applyCacheControl} */ @Deprecated diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/package-info.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/package-info.java index abf1b39a431..8186b7cb47f 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/package-info.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/tags/package-info.java @@ -20,8 +20,8 @@ * * *

    Please note that the various tags generated by this form tag library are - * compliant with http://www.w3.org/TR/xhtml1/ and attendant - * http://www.w3.org/TR/xhtml1/dtds.html#a_dtd_XHTML-1.0-Strict. + * compliant with https://www.w3.org/TR/xhtml1/ and attendant + * https://www.w3.org/TR/xhtml1/dtds.html#a_dtd_XHTML-1.0-Strict. */ @NonNullApi @NonNullFields diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfStamperView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfStamperView.java index c66e57c8669..c563043bff9 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfStamperView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfStamperView.java @@ -34,7 +34,7 @@ import org.springframework.web.servlet.view.AbstractUrlBasedView; * will extend this class to merge the PDF form with model data. * *

    This view implementation uses Bruno Lowagie's - * iText API. + * iText API. * Known to work with the original iText 2.1.7 as well as its fork * OpenPDF. * We strongly recommend OpenPDF since it is actively maintained diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfView.java index 93540ddd85c..7397807dd4a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractPdfView.java @@ -35,7 +35,7 @@ import org.springframework.web.servlet.view.AbstractView; * not in a template. * *

    This view implementation uses Bruno Lowagie's - * iText API. + * iText API. * Known to work with the original iText 2.1.7 as well as its fork * OpenPDF. * We strongly recommend OpenPDF since it is actively maintained diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsView.java index 5b516c4c1c7..82e472c1e10 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsView.java @@ -32,7 +32,7 @@ import org.springframework.web.servlet.view.AbstractView; * Compatible with Apache POI 3.5 and higher. * *

    For working with the workbook in the subclass, see - * Apache's POI site + * Apache's POI site * * @author Juergen Hoeller * @since 4.2 diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxStreamingView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxStreamingView.java index a23e25dded4..8715c2bdc3e 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxStreamingView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxStreamingView.java @@ -29,7 +29,7 @@ import org.apache.poi.xssf.streaming.SXSSFWorkbook; * using POI's streaming variant. Compatible with Apache POI 3.9 and higher. * *

    For working with the workbook in subclasses, see - * Apache's POI site. + * Apache's POI site. * * @author Juergen Hoeller * @since 4.2 diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxView.java index e6ef5886142..f0087de5384 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/document/AbstractXlsxView.java @@ -27,7 +27,7 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; * (as supported by POI-OOXML). Compatible with Apache POI 3.5 and higher. * *

    For working with the workbook in subclasses, see - * Apache's POI site. + * Apache's POI site. * * @author Juergen Hoeller * @since 4.2 diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java index 4f80f3ca05b..735073e5d32 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java @@ -42,7 +42,7 @@ import com.rometools.rome.feed.atom.Feed; * @since 3.0 * @see #buildFeedMetadata * @see #buildFeedEntries - * @see Atom Syndication Format + * @see Atom Syndication Format */ public abstract class AbstractAtomFeedView extends AbstractFeedView { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/package-info.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/package-info.java index b1638eb7962..37b0a52c52a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/package-info.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/package-info.java @@ -1,6 +1,6 @@ /** * Support classes for the integration of - * FreeMarker + * FreeMarker * as Spring web view technology. * Contains a View implementation for FreeMarker templates. */ diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java index 874dcd4f9a7..f32eada4b00 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java @@ -41,7 +41,7 @@ import org.springframework.web.servlet.View; /** * Spring MVC {@link View} that renders JSON content by serializing the model for the current request - * using Jackson 2's {@link ObjectMapper}. + * using Jackson 2's {@link ObjectMapper}. * *

    By default, the entire contents of the model map (with the exception of framework-specific classes) * will be encoded as JSON. If the model contains only one key, you can have it extracted encoded as JSON @@ -176,7 +176,7 @@ public class MappingJackson2JsonView extends AbstractJackson2View { *

    As of Spring Framework 5.0.7, there is no parameter name configured * by default. * @since 4.1 - * @see JSONP Wikipedia article + * @see JSONP Wikipedia article * @deprecated Will be removed as of Spring Framework 5.1, use * CORS instead. */ diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/script/ScriptTemplateConfigurer.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/script/ScriptTemplateConfigurer.java index df0e3e9dc5a..efb3b64eac5 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/script/ScriptTemplateConfigurer.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/script/ScriptTemplateConfigurer.java @@ -138,7 +138,7 @@ public class ScriptTemplateConfigurer implements ScriptTemplateConfig { * {@link #setEngineName(String)}. Using {@link #setEngine(ScriptEngine)} is not * possible because multiple instances of the script engine need to be created lazily * (one per thread). - * @see THREADING ScriptEngine parameter + * @see THREADING ScriptEngine parameter */ public void setSharedEngine(@Nullable Boolean sharedEngine) { this.sharedEngine = sharedEngine; @@ -159,7 +159,7 @@ public class ScriptTemplateConfigurer implements ScriptTemplateConfig { * {@code configurer.setScripts("/META-INF/resources/webjars/library/version/library.js", * "com/myproject/script/render.js");}. * @see #setResourceLoaderPath - * @see WebJars + * @see WebJars */ public void setScripts(@Nullable String... scriptNames) { this.scripts = scriptNames; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java index 732bbb992ed..afa7b4231d1 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java @@ -70,7 +70,7 @@ import org.springframework.web.context.ServletContextAware; /** * Helper class to configure Tiles 3.x for the Spring Framework. See - * http://tiles.apache.org + * https://tiles.apache.org * for more information about Tiles, which basically is a templating mechanism * for web applications using JSPs and other template engines. * diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/package-info.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/package-info.java index c948a0562d3..ca03c5e3c47 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/package-info.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/package-info.java @@ -1,6 +1,6 @@ /** * Support classes for the integration of - * Tiles 3 + * Tiles 3 * (the standalone version of Tiles) as Spring web view technology. * Contains a View implementation for Tiles definitions. */ diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java index 8b2c6f58c89..fc376b7c8ad 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java @@ -30,7 +30,7 @@ import org.springframework.web.servlet.view.json.AbstractJackson2View; /** * Spring MVC {@link View} that renders XML content by serializing the model for the current request - * using Jackson 2's {@link XmlMapper}. + * using Jackson 2's {@link XmlMapper}. * *

    The Object to be serialized is supplied as a parameter in the model. The first serializable * entry is used. Users can either specify a specific entry in the model via the diff --git a/spring-webmvc/src/main/resources/META-INF/spring-form.tld b/spring-webmvc/src/main/resources/META-INF/spring-form.tld index a85779c5712..a44b25de42c 100644 --- a/spring-webmvc/src/main/resources/META-INF/spring-form.tld +++ b/spring-webmvc/src/main/resources/META-INF/spring-form.tld @@ -1,7 +1,7 @@ Spring Framework JSP Form Tag Library diff --git a/spring-webmvc/src/main/resources/META-INF/spring.tld b/spring-webmvc/src/main/resources/META-INF/spring.tld index a9b3744c22c..33eeaf1dec5 100644 --- a/spring-webmvc/src/main/resources/META-INF/spring.tld +++ b/spring-webmvc/src/main/resources/META-INF/spring.tld @@ -1,7 +1,7 @@ Spring Framework JSP Tag Library diff --git a/spring-webmvc/src/main/resources/org/springframework/web/servlet/config/spring-mvc.xsd b/spring-webmvc/src/main/resources/org/springframework/web/servlet/config/spring-mvc.xsd index 1ec6c84049b..a1a62d6bd23 100644 --- a/spring-webmvc/src/main/resources/org/springframework/web/servlet/config/spring-mvc.xsd +++ b/spring-webmvc/src/main/resources/org/springframework/web/servlet/config/spring-mvc.xsd @@ -8,8 +8,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + @@ -641,7 +641,7 @@ with resources in the web app root taking precedence. For URL-based resources (e.g. files, HTTP URLs, etc) this property supports a special prefix to indicate the charset associated with the URL so that relative paths appended to it can be encoded - correctly, e.g. "[charset=Windows-31J]http://example.org/path". + correctly, e.g. "[charset=Windows-31J]https://example.org/path". ]]> @@ -1329,7 +1329,7 @@ SPR-4008: Supply an opportunity to customize * context before calling refresh in ContextLoaders. */ diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/CorsRegistryTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/CorsRegistryTests.java index 1d0942dea8b..c8b061acee6 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/CorsRegistryTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/CorsRegistryTests.java @@ -54,13 +54,13 @@ public class CorsRegistryTests { @Test public void customizedMapping() { - this.registry.addMapping("/foo").allowedOrigins("http://domain2.com", "http://domain2.com") + this.registry.addMapping("/foo").allowedOrigins("https://domain2.com", "https://domain2.com") .allowedMethods("DELETE").allowCredentials(false).allowedHeaders("header1", "header2") .exposedHeaders("header3", "header4").maxAge(3600); Map configs = this.registry.getCorsConfigurations(); assertEquals(1, configs.size()); CorsConfiguration config = configs.get("/foo"); - assertEquals(Arrays.asList("http://domain2.com", "http://domain2.com"), config.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain2.com", "https://domain2.com"), config.getAllowedOrigins()); assertEquals(Arrays.asList("DELETE"), config.getAllowedMethods()); assertEquals(Arrays.asList("header1", "header2"), config.getAllowedHeaders()); assertEquals(Arrays.asList("header3", "header4"), config.getExposedHeaders()); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/handler/CorsAbstractHandlerMappingTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/handler/CorsAbstractHandlerMappingTests.java index f4fac4bf6d9..098b9d3c2bb 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/handler/CorsAbstractHandlerMappingTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/handler/CorsAbstractHandlerMappingTests.java @@ -66,7 +66,7 @@ public class CorsAbstractHandlerMappingTests { public void actualRequestWithoutCorsConfigurationProvider() throws Exception { this.request.setMethod(RequestMethod.GET.name()); this.request.setRequestURI("/foo"); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); HandlerExecutionChain chain = handlerMapping.getHandler(this.request); assertNotNull(chain); @@ -77,7 +77,7 @@ public class CorsAbstractHandlerMappingTests { public void preflightRequestWithoutCorsConfigurationProvider() throws Exception { this.request.setMethod(RequestMethod.OPTIONS.name()); this.request.setRequestURI("/foo"); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); HandlerExecutionChain chain = handlerMapping.getHandler(this.request); assertNotNull(chain); @@ -89,7 +89,7 @@ public class CorsAbstractHandlerMappingTests { public void actualRequestWithCorsConfigurationProvider() throws Exception { this.request.setMethod(RequestMethod.GET.name()); this.request.setRequestURI("/cors"); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); HandlerExecutionChain chain = handlerMapping.getHandler(this.request); assertNotNull(chain); @@ -103,7 +103,7 @@ public class CorsAbstractHandlerMappingTests { public void preflightRequestWithCorsConfigurationProvider() throws Exception { this.request.setMethod(RequestMethod.OPTIONS.name()); this.request.setRequestURI("/cors"); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); HandlerExecutionChain chain = handlerMapping.getHandler(this.request); assertNotNull(chain); @@ -121,7 +121,7 @@ public class CorsAbstractHandlerMappingTests { this.handlerMapping.setCorsConfigurations(Collections.singletonMap("/foo", config)); this.request.setMethod(RequestMethod.GET.name()); this.request.setRequestURI("/foo"); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); HandlerExecutionChain chain = handlerMapping.getHandler(this.request); assertNotNull(chain); @@ -138,7 +138,7 @@ public class CorsAbstractHandlerMappingTests { this.handlerMapping.setCorsConfigurations(Collections.singletonMap("/foo", config)); this.request.setMethod(RequestMethod.OPTIONS.name()); this.request.setRequestURI("/foo"); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); HandlerExecutionChain chain = handlerMapping.getHandler(this.request); assertNotNull(chain); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/UrlFilenameViewControllerTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/UrlFilenameViewControllerTests.java index 28885e0f711..f5f339734d1 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/UrlFilenameViewControllerTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/UrlFilenameViewControllerTests.java @@ -166,7 +166,7 @@ public class UrlFilenameViewControllerTests { /** * This is the expected behavior, and it now has a test to prove it. - * http://opensource.atlassian.com/projects/spring/browse/SPR-2789 + * https://opensource.atlassian.com/projects/spring/browse/SPR-2789 */ @Test public void nestedPathisUsedAsViewName_InBreakingChangeFromSpring12Line() throws Exception { diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/WebContentInterceptorTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/WebContentInterceptorTests.java index 4914500d5cd..35c25f47d67 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/WebContentInterceptorTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/WebContentInterceptorTests.java @@ -138,7 +138,7 @@ public class WebContentInterceptorTests { mappings.setProperty("*/*.cache.html", "10"); // was **/*.cache.html interceptor.setCacheMappings(mappings); - // request.setRequestURI("http://example.org/foo/page.html"); + // request.setRequestURI("https://example.org/foo/page.html"); request.setRequestURI("foo/page.html"); interceptor.preHandle(request, response, null); @@ -149,7 +149,7 @@ public class WebContentInterceptorTests { Iterable pragmaHeaders = response.getHeaders("Pragma"); assertThat(pragmaHeaders, Matchers.contains("no-cache")); - // request.setRequestURI("http://example.org/page.cache.html"); + // request.setRequestURI("https://example.org/page.cache.html"); request = new MockHttpServletRequest("GET", "foo/page.cache.html"); response = new MockHttpServletResponse(); interceptor.preHandle(request, response, null); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java index a4f077b89a0..058df05dbca 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java @@ -71,7 +71,7 @@ public class RequestMethodsRequestConditionTests { @Test public void getMatchingConditionWithCorsPreFlight() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest("OPTIONS", ""); - request.addHeader("Origin", "http://example.com"); + request.addHeader("Origin", "https://example.com"); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "PUT"); assertNotNull(new RequestMethodsRequestCondition().getMatchingCondition(request)); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoTests.java index b53f8ba2359..d2fcb90af24 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoTests.java @@ -267,7 +267,7 @@ public class RequestMappingInfoTests { @Test public void preFlightRequest() { MockHttpServletRequest request = new MockHttpServletRequest("OPTIONS", "/foo"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain.com"); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "POST"); RequestMappingInfo info = paths("/foo").methods(RequestMethod.POST).build(); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/CrossOriginTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/CrossOriginTests.java index 50992b4114d..211486dcc68 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/CrossOriginTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/CrossOriginTests.java @@ -79,7 +79,7 @@ public class CrossOriginTests { public void setup() { StaticWebApplicationContext wac = new StaticWebApplicationContext(); Properties props = new Properties(); - props.setProperty("myOrigin", "http://example.com"); + props.setProperty("myOrigin", "https://example.com"); wac.getEnvironment().getPropertySources().addFirst(new PropertiesPropertySource("ps", props)); wac.registerSingleton("ppc", PropertySourcesPlaceholderConfigurer.class); wac.refresh(); @@ -88,7 +88,7 @@ public class CrossOriginTests { wac.getAutowireCapableBeanFactory().initializeBean(this.handlerMapping, "hm"); this.request.setMethod("GET"); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain.com/"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain.com/"); } @@ -140,7 +140,7 @@ public class CrossOriginTests { CorsConfiguration config = getCorsConfiguration(chain, false); assertNotNull(config); assertArrayEquals(new String[] {"DELETE"}, config.getAllowedMethods().toArray()); - assertArrayEquals(new String[] {"http://site1.com", "http://site2.com"}, config.getAllowedOrigins().toArray()); + assertArrayEquals(new String[] {"https://site1.com", "https://site2.com"}, config.getAllowedOrigins().toArray()); assertArrayEquals(new String[] {"header1", "header2"}, config.getAllowedHeaders().toArray()); assertArrayEquals(new String[] {"header3", "header4"}, config.getExposedHeaders().toArray()); assertEquals(new Long(123), config.getMaxAge()); @@ -154,7 +154,7 @@ public class CrossOriginTests { HandlerExecutionChain chain = this.handlerMapping.getHandler(request); CorsConfiguration config = getCorsConfiguration(chain, false); assertNotNull(config); - assertEquals(Arrays.asList("http://example.com"), config.getAllowedOrigins()); + assertEquals(Arrays.asList("https://example.com"), config.getAllowedOrigins()); assertNull(config.getAllowCredentials()); } @@ -165,7 +165,7 @@ public class CrossOriginTests { HandlerExecutionChain chain = this.handlerMapping.getHandler(request); CorsConfiguration config = getCorsConfiguration(chain, false); assertNotNull(config); - assertEquals(Arrays.asList("http://example.com"), config.getAllowedOrigins()); + assertEquals(Arrays.asList("https://example.com"), config.getAllowedOrigins()); assertNull(config.getAllowCredentials()); } @@ -215,7 +215,7 @@ public class CrossOriginTests { CorsConfiguration config = getCorsConfiguration(chain, false); assertNotNull(config); assertArrayEquals(new String[] {"GET"}, config.getAllowedMethods().toArray()); - assertArrayEquals(new String[] {"http://foo.com"}, config.getAllowedOrigins().toArray()); + assertArrayEquals(new String[] {"http://www.foo.com/"}, config.getAllowedOrigins().toArray()); assertTrue(config.getAllowCredentials()); } @@ -228,7 +228,7 @@ public class CrossOriginTests { CorsConfiguration config = getCorsConfiguration(chain, false); assertNotNull(config); assertArrayEquals(new String[] {"GET"}, config.getAllowedMethods().toArray()); - assertArrayEquals(new String[] {"http://foo.com"}, config.getAllowedOrigins().toArray()); + assertArrayEquals(new String[] {"http://www.foo.com/"}, config.getAllowedOrigins().toArray()); assertTrue(config.getAllowCredentials()); } @@ -287,7 +287,7 @@ public class CrossOriginTests { @Test public void preFlightRequestWithoutRequestMethodHeader() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest("OPTIONS", "/default"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); assertNull(this.handlerMapping.getHandler(request)); } @@ -357,7 +357,7 @@ public class CrossOriginTests { return "{}"; } - @CrossOrigin(origins = { "http://site1.com", "http://site2.com" }, + @CrossOrigin(origins = { "https://site1.com", "https://site2.com" }, allowedHeaders = { "header1", "header2" }, exposedHeaders = { "header3", "header4" }, methods = RequestMethod.DELETE, @@ -367,7 +367,7 @@ public class CrossOriginTests { public void customized() { } - @CrossOrigin("http://example.com") + @CrossOrigin("https://example.com") @RequestMapping("/customOrigin") public void customOriginDefinedViaValueAttribute() { } @@ -422,7 +422,7 @@ public class CrossOriginTests { @Controller - @ComposedCrossOrigin(origins = "http://foo.com", allowCredentials = "true") + @ComposedCrossOrigin(origins = "http://www.foo.com/", allowCredentials = "true") private static class ClassLevelMappingWithComposedAnnotation { @RequestMapping(path = "/foo", method = RequestMethod.GET) @@ -435,7 +435,7 @@ public class CrossOriginTests { private static class MethodLevelMappingWithComposedAnnotation { @RequestMapping(path = "/foo", method = RequestMethod.GET) - @ComposedCrossOrigin(origins = "http://foo.com", allowCredentials = "true") + @ComposedCrossOrigin(origins = "http://www.foo.com/", allowCredentials = "true") public void foo() { } } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilderTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilderTests.java index 206d9775fc4..299be871fa1 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilderTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/MvcUriComponentsBuilderTests.java @@ -118,21 +118,21 @@ public class MvcUriComponentsBuilderTests { @Test public void fromControllerWithCustomBaseUrlViaStaticCall() { - UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("http://example.org:9090/base"); + UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("https://example.org:9090/base"); UriComponents uriComponents = fromController(builder, PersonControllerImpl.class).build(); - assertEquals("http://example.org:9090/base/people", uriComponents.toString()); - assertEquals("http://example.org:9090/base", builder.toUriString()); + assertEquals("https://example.org:9090/base/people", uriComponents.toString()); + assertEquals("https://example.org:9090/base", builder.toUriString()); } @Test public void fromControllerWithCustomBaseUrlViaInstance() { - UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("http://example.org:9090/base"); + UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("https://example.org:9090/base"); MvcUriComponentsBuilder mvcBuilder = relativeTo(builder); UriComponents uriComponents = mvcBuilder.withController(PersonControllerImpl.class).build(); - assertEquals("http://example.org:9090/base/people", uriComponents.toString()); - assertEquals("http://example.org:9090/base", builder.toUriString()); + assertEquals("https://example.org:9090/base/people", uriComponents.toString()); + assertEquals("https://example.org:9090/base", builder.toUriString()); } @Test @@ -219,23 +219,23 @@ public class MvcUriComponentsBuilderTests { @Test public void fromMethodNameWithCustomBaseUrlViaStaticCall() { - UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("http://example.org:9090/base"); + UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("https://example.org:9090/base"); UriComponents uriComponents = fromMethodName(builder, ControllerWithMethods.class, "methodWithPathVariable", "1").build(); - assertEquals("http://example.org:9090/base/something/1/foo", uriComponents.toString()); - assertEquals("http://example.org:9090/base", builder.toUriString()); + assertEquals("https://example.org:9090/base/something/1/foo", uriComponents.toString()); + assertEquals("https://example.org:9090/base", builder.toUriString()); } @Test public void fromMethodNameWithCustomBaseUrlViaInstance() { - UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("http://example.org:9090/base"); + UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("https://example.org:9090/base"); MvcUriComponentsBuilder mvcBuilder = relativeTo(builder); UriComponents uriComponents = mvcBuilder.withMethodName(ControllerWithMethods.class, "methodWithPathVariable", "1").build(); - assertEquals("http://example.org:9090/base/something/1/foo", uriComponents.toString()); - assertEquals("http://example.org:9090/base", builder.toUriString()); + assertEquals("https://example.org:9090/base/something/1/foo", uriComponents.toString()); + assertEquals("https://example.org:9090/base", builder.toUriString()); } @Test // SPR-14405 @@ -312,21 +312,21 @@ public class MvcUriComponentsBuilderTests { @Test public void fromMethodCallWithCustomBaseUrlViaStaticCall() { - UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("http://example.org:9090/base"); + UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("https://example.org:9090/base"); UriComponents uriComponents = fromMethodCall(builder, on(ControllerWithMethods.class).myMethod(null)).build(); - assertEquals("http://example.org:9090/base/something/else", uriComponents.toString()); - assertEquals("http://example.org:9090/base", builder.toUriString()); + assertEquals("https://example.org:9090/base/something/else", uriComponents.toString()); + assertEquals("https://example.org:9090/base", builder.toUriString()); } @Test public void fromMethodCallWithCustomBaseUrlViaInstance() { - UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("http://example.org:9090/base"); + UriComponentsBuilder builder = UriComponentsBuilder.fromUriString("https://example.org:9090/base"); MvcUriComponentsBuilder mvcBuilder = relativeTo(builder); UriComponents result = mvcBuilder.withMethodCall(on(ControllerWithMethods.class).myMethod(null)).build(); - assertEquals("http://example.org:9090/base/something/else", result.toString()); - assertEquals("http://example.org:9090/base", builder.toUriString()); + assertEquals("https://example.org:9090/base/something/else", result.toString()); + assertEquals("https://example.org:9090/base", builder.toUriString()); } @Test // SPR-16710 @@ -377,10 +377,10 @@ public class MvcUriComponentsBuilderTests { public void fromMappingNameWithCustomBaseUrl() { initWebApplicationContext(WebConfig.class); - UriComponentsBuilder baseUrl = UriComponentsBuilder.fromUriString("http://example.org:9999/base"); + UriComponentsBuilder baseUrl = UriComponentsBuilder.fromUriString("https://example.org:9999/base"); MvcUriComponentsBuilder mvcBuilder = relativeTo(baseUrl); String url = mvcBuilder.withMappingName("PAC#getAddressesForCountry").arg(0, "DE").buildAndExpand(123); - assertEquals("http://example.org:9999/base/people/123/addresses/DE", url); + assertEquals("https://example.org:9999/base/people/123/addresses/DE", url); } @Test // SPR-17027 diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/AppCacheManifestTransformerTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/AppCacheManifestTransformerTests.java index e90b46b5e6d..0ff1a7d4d79 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/AppCacheManifestTransformerTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/AppCacheManifestTransformerTests.java @@ -113,7 +113,7 @@ public class AppCacheManifestTransformerTests { assertThat("should not rewrite external resources", content, Matchers.containsString("//example.org/style.css")); assertThat("should not rewrite external resources", content, - Matchers.containsString("http://example.org/image.png")); + Matchers.containsString("https://example.org/image.png")); assertThat("should generate fingerprint", content, Matchers.containsString("# Hash: 4bf0338bcbeb0a5b3a4ec9ed8864107d")); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/CssLinkResourceTransformerTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/CssLinkResourceTransformerTests.java index e06d0678bec..463cdadeb86 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/CssLinkResourceTransformerTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/CssLinkResourceTransformerTests.java @@ -116,7 +116,7 @@ public class CssLinkResourceTransformerTests { Resource resource = transformerChain.transform(this.request, externalCss); TransformedResource transformedResource = (TransformedResource) resource; - String expected = "@import url(\"http://example.org/fonts/css\");\n" + + String expected = "@import url(\"https://example.org/fonts/css\");\n" + "body { background: url(\"file:///home/spring/image.png\") }\n" + "figure { background: url(\"//example.org/style.css\")}"; String result = new String(transformedResource.getByteArray(), StandardCharsets.UTF_8); @@ -124,7 +124,7 @@ public class CssLinkResourceTransformerTests { assertEquals(expected, result); Mockito.verify(resolverChain, Mockito.never()) - .resolveUrlPath("http://example.org/fonts/css", Arrays.asList(externalCss)); + .resolveUrlPath("https://example.org/fonts/css", Arrays.asList(externalCss)); Mockito.verify(resolverChain, Mockito.never()) .resolveUrlPath("file:///home/spring/image.png", Arrays.asList(externalCss)); Mockito.verify(resolverChain, Mockito.never()) diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/ResourceUrlEncodingFilterTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/ResourceUrlEncodingFilterTests.java index e3c9a68a95d..79c296d426d 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/ResourceUrlEncodingFilterTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/ResourceUrlEncodingFilterTests.java @@ -143,8 +143,8 @@ public class ResourceUrlEncodingFilterTests { this.filter.doFilter(request, response, (req, res) -> { req.setAttribute(ResourceUrlProviderExposingInterceptor.RESOURCE_URL_PROVIDER_ATTR, this.urlProvider); - String result = ((HttpServletResponse) res).encodeURL("/resources/bar.css?foo=bar&url=http://example.org"); - assertEquals("/resources/bar-11e16cf79faee7ac698c805cf28248d2.css?foo=bar&url=http://example.org", result); + String result = ((HttpServletResponse) res).encodeURL("/resources/bar.css?foo=bar&url=https://example.org"); + assertEquals("/resources/bar-11e16cf79faee7ac698c805cf28248d2.css?foo=bar&url=https://example.org", result); }); } diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/ResourceUrlProviderTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/ResourceUrlProviderTests.java index 05667d0aa1b..7795ae870ea 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/ResourceUrlProviderTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/resource/ResourceUrlProviderTests.java @@ -81,9 +81,9 @@ public class ResourceUrlProviderTests { request.setContextPath("/"); request.setRequestURI("/"); - String url = "/resources/foo.css?foo=bar&url=http://example.org"; + String url = "/resources/foo.css?foo=bar&url=https://example.org"; String resolvedUrl = this.urlProvider.getForRequestUrl(request, url); - assertEquals("/resources/foo.css?foo=bar&url=http://example.org", resolvedUrl); + assertEquals("/resources/foo.css?foo=bar&url=https://example.org", resolvedUrl); url = "/resources/foo.css#hash"; resolvedUrl = this.urlProvider.getForRequestUrl(request, url); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/UrlTagTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/UrlTagTests.java index 10ef9854b75..f0f051fd762 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/UrlTagTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/UrlTagTests.java @@ -450,11 +450,11 @@ public class UrlTagTests extends AbstractTagTests { @Test public void createUrlRemoteServer() throws JspException { - tag.setValue("http://www.springframework.org/"); + tag.setValue("https://www.springframework.org/"); tag.doStartTag(); String uri = tag.createUrl(); - assertEquals("http://www.springframework.org/", uri); + assertEquals("https://www.springframework.org/", uri); } @Test diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/InputTagTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/InputTagTests.java index 48647dc6c4b..135e1a4d7c1 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/InputTagTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/InputTagTests.java @@ -323,7 +323,7 @@ public class InputTagTests extends AbstractFormTagTests { } /** - * See SPR-3127 (http://opensource.atlassian.com/projects/spring/browse/SPR-3127) + * See SPR-3127 (https://opensource.atlassian.com/projects/spring/browse/SPR-3127) */ @Test public void readOnlyAttributeRenderingWhenReadonlyIsTrue() throws Exception { diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java index 1d64f8cfc4d..7bd7b6fcb78 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java @@ -677,7 +677,7 @@ public class SelectTagTests extends AbstractFormTagTests { /** * Tests new support added as a result of SPR-2660. *

    * Specifically, if the {@code items} attribute is supplied a diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/RedirectViewTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/RedirectViewTests.java index ec2cc030f66..676b914c6f0 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/RedirectViewTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/RedirectViewTests.java @@ -88,60 +88,60 @@ public class RedirectViewTests { @Test public void http11() throws Exception { RedirectView rv = new RedirectView(); - rv.setUrl("http://url.somewhere.com"); + rv.setUrl("https://url.somewhere.com"); rv.setHttp10Compatible(false); rv.render(new HashMap<>(), request, response); assertEquals(303, response.getStatus()); - assertEquals("http://url.somewhere.com", response.getHeader("Location")); + assertEquals("https://url.somewhere.com", response.getHeader("Location")); } @Test public void explicitStatusCodeHttp11() throws Exception { RedirectView rv = new RedirectView(); - rv.setUrl("http://url.somewhere.com"); + rv.setUrl("https://url.somewhere.com"); rv.setHttp10Compatible(false); rv.setStatusCode(HttpStatus.MOVED_PERMANENTLY); rv.render(new HashMap<>(), request, response); assertEquals(301, response.getStatus()); - assertEquals("http://url.somewhere.com", response.getHeader("Location")); + assertEquals("https://url.somewhere.com", response.getHeader("Location")); } @Test public void explicitStatusCodeHttp10() throws Exception { RedirectView rv = new RedirectView(); - rv.setUrl("http://url.somewhere.com"); + rv.setUrl("https://url.somewhere.com"); rv.setStatusCode(HttpStatus.MOVED_PERMANENTLY); rv.render(new HashMap<>(), request, response); assertEquals(301, response.getStatus()); - assertEquals("http://url.somewhere.com", response.getHeader("Location")); + assertEquals("https://url.somewhere.com", response.getHeader("Location")); } @Test public void attributeStatusCodeHttp10() throws Exception { RedirectView rv = new RedirectView(); - rv.setUrl("http://url.somewhere.com"); + rv.setUrl("https://url.somewhere.com"); request.setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, HttpStatus.CREATED); rv.render(new HashMap<>(), request, response); assertEquals(201, response.getStatus()); - assertEquals("http://url.somewhere.com", response.getHeader("Location")); + assertEquals("https://url.somewhere.com", response.getHeader("Location")); } @Test public void attributeStatusCodeHttp11() throws Exception { RedirectView rv = new RedirectView(); - rv.setUrl("http://url.somewhere.com"); + rv.setUrl("https://url.somewhere.com"); rv.setHttp10Compatible(false); request.setAttribute(View.RESPONSE_STATUS_ATTRIBUTE, HttpStatus.CREATED); rv.render(new HashMap<>(), request, response); assertEquals(201, response.getStatus()); - assertEquals("http://url.somewhere.com", response.getHeader("Location")); + assertEquals("https://url.somewhere.com", response.getHeader("Location")); } @SuppressWarnings("AssertEqualsBetweenInconvertibleTypes") @Test public void flashMap() throws Exception { RedirectView rv = new RedirectView(); - rv.setUrl("http://url.somewhere.com/path"); + rv.setUrl("https://url.somewhere.com/path"); rv.setHttp10Compatible(false); FlashMap flashMap = new FlashMap(); flashMap.put("successMessage", "yay!"); @@ -149,7 +149,7 @@ public class RedirectViewTests { ModelMap model = new ModelMap("id", "1"); rv.render(model, request, response); assertEquals(303, response.getStatus()); - assertEquals("http://url.somewhere.com/path?id=1", response.getHeader("Location")); + assertEquals("https://url.somewhere.com/path?id=1", response.getHeader("Location")); assertEquals("/path", flashMap.getTargetRequestPath()); assertEquals(model, flashMap.getTargetRequestParams().toSingleValueMap()); @@ -206,13 +206,13 @@ public class RedirectViewTests { public void remoteHost() throws Exception { RedirectView rv = new RedirectView(); - assertFalse(rv.isRemoteHost("http://url.somewhere.com")); + assertFalse(rv.isRemoteHost("https://url.somewhere.com")); assertFalse(rv.isRemoteHost("/path")); assertFalse(rv.isRemoteHost("http://url.somewhereelse.com")); rv.setHosts(new String[] {"url.somewhere.com"}); - assertFalse(rv.isRemoteHost("http://url.somewhere.com")); + assertFalse(rv.isRemoteHost("https://url.somewhere.com")); assertFalse(rv.isRemoteHost("/path")); assertTrue(rv.isRemoteHost("http://url.somewhereelse.com")); @@ -245,7 +245,7 @@ public class RedirectViewTests { @Test public void singleParam() throws Exception { - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; String key = "foo"; String val = "bar"; Map model = new HashMap<>(); @@ -256,7 +256,7 @@ public class RedirectViewTests { @Test public void singleParamWithoutExposingModelAttributes() throws Exception { - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; Map model = Collections.singletonMap("foo", "bar"); TestRedirectView rv = new TestRedirectView(url, false, model); @@ -268,12 +268,12 @@ public class RedirectViewTests { @Test public void paramWithAnchor() throws Exception { - String url = "http://url.somewhere.com/test.htm#myAnchor"; + String url = "https://url.somewhere.com/test.htm#myAnchor"; String key = "foo"; String val = "bar"; Map model = new HashMap<>(); model.put(key, val); - String expectedUrlForEncoding = "http://url.somewhere.com/test.htm" + "?" + key + "=" + val + "#myAnchor"; + String expectedUrlForEncoding = "https://url.somewhere.com/test.htm" + "?" + key + "=" + val + "#myAnchor"; doTest(model, url, false, expectedUrlForEncoding); } @@ -285,7 +285,7 @@ public class RedirectViewTests { @Test public void twoParams() throws Exception { - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; String key = "foo"; String val = "bar"; String key2 = "thisIsKey2"; @@ -306,7 +306,7 @@ public class RedirectViewTests { @Test public void arrayParam() throws Exception { - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; String key = "foo"; String[] val = new String[] {"bar", "baz"}; Map model = new HashMap<>(); @@ -324,7 +324,7 @@ public class RedirectViewTests { @Test public void collectionParam() throws Exception { - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; String key = "foo"; List val = new ArrayList<>(); val.add("bar"); @@ -344,7 +344,7 @@ public class RedirectViewTests { @Test public void objectConversion() throws Exception { - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; String key = "foo"; String val = "bar"; String key2 = "int2"; @@ -363,11 +363,11 @@ public class RedirectViewTests { public void propagateQueryParams() throws Exception { RedirectView rv = new RedirectView(); rv.setPropagateQueryParams(true); - rv.setUrl("http://url.somewhere.com?foo=bar#bazz"); + rv.setUrl("https://url.somewhere.com?foo=bar#bazz"); request.setQueryString("a=b&c=d"); rv.render(new HashMap<>(), request, response); assertEquals(302, response.getStatus()); - assertEquals("http://url.somewhere.com?foo=bar&a=b&c=d#bazz", response.getHeader("Location")); + assertEquals("https://url.somewhere.com?foo=bar&a=b&c=d#bazz", response.getHeader("Location")); } private void doTest(Map map, String url, boolean contextRelative, String expectedUrl) diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/RedirectViewUriTemplateTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/RedirectViewUriTemplateTests.java index 3e061acb9d3..6d162a3f66f 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/RedirectViewUriTemplateTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/RedirectViewUriTemplateTests.java @@ -51,7 +51,7 @@ public class RedirectViewUriTemplateTests { Map model = new HashMap<>(); model.put("foo", "bar"); - String baseUrl = "http://url.somewhere.com"; + String baseUrl = "https://url.somewhere.com"; RedirectView redirectView = new RedirectView(baseUrl + "/{foo}"); redirectView.renderMergedOutputModel(model, this.request, this.response); @@ -63,7 +63,7 @@ public class RedirectViewUriTemplateTests { Map model = new HashMap<>(); model.put("foo", "bar/bar baz"); - String baseUrl = "http://url.somewhere.com"; + String baseUrl = "https://url.somewhere.com"; RedirectView redirectView = new RedirectView(baseUrl + "/context path/{foo}"); redirectView.renderMergedOutputModel(model, this.request, this.response); @@ -106,7 +106,7 @@ public class RedirectViewUriTemplateTests { currentRequestUriTemplateVars.put("var3", "v3"); this.request.setAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, currentRequestUriTemplateVars); - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; RedirectView redirectView = new RedirectView(url + "/{key1}/{var1}/{name}"); redirectView.renderMergedOutputModel(model, this.request, this.response); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/RssFeedViewTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/RssFeedViewTests.java index 22495ecbdf9..5e815e59fbe 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/RssFeedViewTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/view/feed/RssFeedViewTests.java @@ -57,7 +57,7 @@ public class RssFeedViewTests { assertEquals("Invalid content-type", "application/rss+xml", response.getContentType()); String expected = "" + "Test Feed" + - "http://example.com" + + "https://example.com" + "Test feed description" + "2This is entry 2" + "1This is entry 1" + @@ -72,7 +72,7 @@ public class RssFeedViewTests { protected void buildFeedMetadata(Map model, Channel channel, HttpServletRequest request) { channel.setTitle("Test Feed"); channel.setDescription("Test feed description"); - channel.setLink("http://example.com"); + channel.setLink("https://example.com"); } @Override diff --git a/spring-webmvc/src/test/resources/org/springframework/web/servlet/config/annotation/WEB-INF/index.jsp b/spring-webmvc/src/test/resources/org/springframework/web/servlet/config/annotation/WEB-INF/index.jsp index 46df8a3f54b..1932b62f019 100644 --- a/spring-webmvc/src/test/resources/org/springframework/web/servlet/config/annotation/WEB-INF/index.jsp +++ b/spring-webmvc/src/test/resources/org/springframework/web/servlet/config/annotation/WEB-INF/index.jsp @@ -1,5 +1,5 @@ <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> - + diff --git a/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/external.css b/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/external.css index d21e42aaf2a..01b801aee03 100644 --- a/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/external.css +++ b/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/external.css @@ -1,3 +1,3 @@ -@import url("http://example.org/fonts/css"); +@import url("https://example.org/fonts/css"); body { background: url("file:///home/spring/image.png") } figure { background: url("//example.org/style.css")} \ No newline at end of file diff --git a/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/foo.html b/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/foo.html index 83ff005e6bf..b2f02184a64 100644 --- a/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/foo.html +++ b/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/foo.html @@ -1,4 +1,4 @@ - + diff --git a/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/test.appcache b/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/test.appcache index 76e2f32a98d..986d1055a64 100644 --- a/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/test.appcache +++ b/spring-webmvc/src/test/resources/org/springframework/web/servlet/resource/test/test.appcache @@ -11,7 +11,7 @@ NETWORK: CACHE: js/bar.js -http://example.org/image.png +https://example.org/image.png FALLBACK: /main /static.html \ No newline at end of file diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/SubProtocolCapable.java b/spring-websocket/src/main/java/org/springframework/web/socket/SubProtocolCapable.java index 4ae061e0d42..d6753419891 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/SubProtocolCapable.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/SubProtocolCapable.java @@ -24,7 +24,7 @@ import java.util.List; * @author Rossen Stoyanchev * @since 4.0 * @see WebSocketHandler - * @see RFC-6455 section 1.9 + * @see RFC-6455 section 1.9 */ public interface SubProtocolCapable { diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketExtension.java b/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketExtension.java index 49d06cfd2c4..0a719fedef6 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketExtension.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/WebSocketExtension.java @@ -39,7 +39,7 @@ import org.springframework.util.StringUtils; * * *

    WebSocket Extension HTTP headers may include parameters and follow - * RFC 7230 section 3.2

    + * RFC 7230 section 3.2

    * *

    Note that the order of extensions in HTTP headers defines their order of execution, * e.g. extensions "foo, bar" will be executed as "bar(foo(message))".

    diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/OriginHandshakeInterceptor.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/OriginHandshakeInterceptor.java index 10eb7bc582a..446687e2e9f 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/OriginHandshakeInterceptor.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/OriginHandshakeInterceptor.java @@ -68,7 +68,7 @@ public class OriginHandshakeInterceptor implements HandshakeInterceptor { * designed for browsers. There is nothing preventing other types of client * to modify the {@code Origin} header value. *

    Each provided allowed origin must have a scheme, and optionally a port - * (e.g. "http://example.org", "http://example.org:9090"). An allowed origin + * (e.g. "https://example.org", "https://example.org:9090"). An allowed origin * string may also be "*" in which case all origins are allowed. * @see RFC 6454: The Web Origin Concept */ diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsService.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsService.java index 0436deaa9b0..ec92607e5af 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsService.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/SockJsService.java @@ -40,7 +40,7 @@ public interface SockJsService { /** * Process a SockJS HTTP request. *

    See the "Base URL", "Static URLs", and "Session URLs" sections of the SockJS + * href="https://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html">SockJS * protocol for details on the types of URLs expected. * @param request the current request * @param response the current response diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/client/SockJsClient.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/client/SockJsClient.java index b9a316b87dc..a77a13f8cf1 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/client/SockJsClient.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/client/SockJsClient.java @@ -57,7 +57,7 @@ import org.springframework.web.util.UriComponentsBuilder; * * @author Rossen Stoyanchev * @since 4.1 - * @see http://sockjs.org + * @see https://github.com/sockjs/sockjs-client * @see org.springframework.web.socket.sockjs.client.Transport */ public class SockJsClient implements WebSocketClient, Lifecycle { diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/frame/AbstractSockJsMessageCodec.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/frame/AbstractSockJsMessageCodec.java index 861aa18b715..a3fb8df007b 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/frame/AbstractSockJsMessageCodec.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/frame/AbstractSockJsMessageCodec.java @@ -46,7 +46,7 @@ public abstract class AbstractSockJsMessageCodec implements SockJsMessageCodec { } /** - * Apply standard JSON string quoting (see http://www.json.org/). + * Apply standard JSON string quoting (see https://www.json.org/). */ protected abstract char[] applyJsonQuoting(String content); diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/AbstractSockJsService.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/AbstractSockJsService.java index 36e216d1187..b57b9687e98 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/AbstractSockJsService.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/support/AbstractSockJsService.java @@ -302,7 +302,7 @@ public abstract class AbstractSockJsService implements SockJsService, CorsConfig * transports) are disabled. As a consequence, IE 6 to 9 are not supported * when origins are restricted. *

    Each provided allowed origin must have a scheme, and optionally a port - * (e.g. "http://example.org", "http://example.org:9090"). An allowed origin + * (e.g. "https://example.org", "https://example.org:9090"). An allowed origin * string may also be "*" in which case all origins are allowed. * @since 4.1.2 * @see RFC 6454: The Web Origin Concept diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/handler/EventSourceTransportHandler.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/handler/EventSourceTransportHandler.java index 38645d8a9c9..4cc8da5d2e6 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/handler/EventSourceTransportHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/handler/EventSourceTransportHandler.java @@ -31,7 +31,7 @@ import org.springframework.web.socket.sockjs.transport.session.StreamingSockJsSe /** * A TransportHandler for sending messages via Server-Sent events: - * http://dev.w3.org/html5/eventsource/. + * https://dev.w3.org/html5/eventsource/. * * @author Rossen Stoyanchev * @since 4.0 diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/handler/HtmlFileTransportHandler.java b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/handler/HtmlFileTransportHandler.java index 0139f5660fe..57b0a69a06f 100644 --- a/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/handler/HtmlFileTransportHandler.java +++ b/spring-websocket/src/main/java/org/springframework/web/socket/sockjs/transport/handler/HtmlFileTransportHandler.java @@ -41,8 +41,8 @@ import org.springframework.web.util.JavaScriptUtils; /** * An HTTP {@link TransportHandler} that uses a famous browser document.domain technique: - * - * http://stackoverflow.com/questions/1481251/what-does-document-domain-document-domain-do + * + * https://stackoverflow.com/questions/1481251/what-does-document-domain-document-domain-do * * @author Rossen Stoyanchev * @since 4.0 @@ -52,7 +52,7 @@ public class HtmlFileTransportHandler extends AbstractHttpSendingTransportHandle private static final String PARTIAL_HTML_CONTENT; // Safari needs at least 1024 bytes to parse the website. - // http://code.google.com/p/browsersec/wiki/Part2#Survey_of_content_sniffing_behaviors + // https://code.google.com/p/browsersec/wiki/Part2#Survey_of_content_sniffing_behaviors private static final int MINIMUM_PARTIAL_HTML_CONTENT_LENGTH = 1024; diff --git a/spring-websocket/src/main/resources/org/springframework/web/socket/config/spring-websocket.xsd b/spring-websocket/src/main/resources/org/springframework/web/socket/config/spring-websocket.xsd index 659a0bc5a7d..b29954ea0b2 100644 --- a/spring-websocket/src/main/resources/org/springframework/web/socket/config/spring-websocket.xsd +++ b/spring-websocket/src/main/resources/org/springframework/web/socket/config/spring-websocket.xsd @@ -8,8 +8,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/adapter/standard/StandardWebSocketHandlerAdapterTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/adapter/standard/StandardWebSocketHandlerAdapterTests.java index 966cf8037f5..e88937c933a 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/adapter/standard/StandardWebSocketHandlerAdapterTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/adapter/standard/StandardWebSocketHandlerAdapterTests.java @@ -57,7 +57,7 @@ public class StandardWebSocketHandlerAdapterTests { @Test public void onOpen() throws Throwable { - URI uri = URI.create("http://example.org"); + URI uri = URI.create("https://example.org"); given(this.session.getRequestURI()).willReturn(uri); this.adapter.onOpen(this.session, null); diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebMvcStompWebSocketEndpointRegistrationTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebMvcStompWebSocketEndpointRegistrationTests.java index 47df8181516..f36bdcb4bfa 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebMvcStompWebSocketEndpointRegistrationTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebMvcStompWebSocketEndpointRegistrationTests.java @@ -112,7 +112,7 @@ public class WebMvcStompWebSocketEndpointRegistrationTests { WebMvcStompWebSocketEndpointRegistration registration = new WebMvcStompWebSocketEndpointRegistration(new String[] {"/foo"}, this.handler, this.scheduler); - String origin = "http://mydomain.com"; + String origin = "https://mydomain.com"; registration.setAllowedOrigins(origin).withSockJS(); MultiValueMap mappings = registration.getMappings(); @@ -181,7 +181,7 @@ public class WebMvcStompWebSocketEndpointRegistrationTests { DefaultHandshakeHandler handshakeHandler = new DefaultHandshakeHandler(); HttpSessionHandshakeInterceptor interceptor = new HttpSessionHandshakeInterceptor(); - String origin = "http://mydomain.com"; + String origin = "https://mydomain.com"; registration.setHandshakeHandler(handshakeHandler).addInterceptors(interceptor).setAllowedOrigins(origin); MultiValueMap mappings = registration.getMappings(); @@ -235,7 +235,7 @@ public class WebMvcStompWebSocketEndpointRegistrationTests { DefaultHandshakeHandler handshakeHandler = new DefaultHandshakeHandler(); HttpSessionHandshakeInterceptor interceptor = new HttpSessionHandshakeInterceptor(); - String origin = "http://mydomain.com"; + String origin = "https://mydomain.com"; registration.setHandshakeHandler(handshakeHandler) .addInterceptors(interceptor).setAllowedOrigins(origin).withSockJS(); diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebSocketHandlerRegistrationTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebSocketHandlerRegistrationTests.java index 75e1c53af42..d78038cc4d5 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebSocketHandlerRegistrationTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/config/annotation/WebSocketHandlerRegistrationTests.java @@ -126,7 +126,7 @@ public class WebSocketHandlerRegistrationTests { WebSocketHandler handler = new TextWebSocketHandler(); HttpSessionHandshakeInterceptor interceptor = new HttpSessionHandshakeInterceptor(); - this.registration.addHandler(handler, "/foo").addInterceptors(interceptor).setAllowedOrigins("http://mydomain1.com"); + this.registration.addHandler(handler, "/foo").addInterceptors(interceptor).setAllowedOrigins("https://mydomain1.com"); List mappings = this.registration.getMappings(); assertEquals(1, mappings.size()); @@ -147,7 +147,7 @@ public class WebSocketHandlerRegistrationTests { this.registration.addHandler(handler, "/foo") .addInterceptors(interceptor) - .setAllowedOrigins("http://mydomain1.com") + .setAllowedOrigins("https://mydomain1.com") .withSockJS(); this.registration.getSockJsServiceRegistration().setTaskScheduler(this.taskScheduler); @@ -159,7 +159,7 @@ public class WebSocketHandlerRegistrationTests { assertEquals(handler, mapping.webSocketHandler); assertEquals("/foo/**", mapping.path); assertNotNull(mapping.sockJsService); - assertTrue(mapping.sockJsService.getAllowedOrigins().contains("http://mydomain1.com")); + assertTrue(mapping.sockJsService.getAllowedOrigins().contains("https://mydomain1.com")); List interceptors = mapping.sockJsService.getHandshakeInterceptors(); assertEquals(interceptor, interceptors.get(0)); assertEquals(OriginHandshakeInterceptor.class, interceptors.get(1).getClass()); diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/server/support/OriginHandshakeInterceptorTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/server/support/OriginHandshakeInterceptorTests.java index e20afbb0bc9..8893002736e 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/server/support/OriginHandshakeInterceptorTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/server/support/OriginHandshakeInterceptorTests.java @@ -49,8 +49,8 @@ public class OriginHandshakeInterceptorTests extends AbstractHttpRequestTests { public void originValueMatch() throws Exception { Map attributes = new HashMap<>(); WebSocketHandler wsHandler = Mockito.mock(WebSocketHandler.class); - this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain1.com"); - List allowed = Collections.singletonList("http://mydomain1.com"); + this.servletRequest.addHeader(HttpHeaders.ORIGIN, "https://mydomain1.com"); + List allowed = Collections.singletonList("https://mydomain1.com"); OriginHandshakeInterceptor interceptor = new OriginHandshakeInterceptor(allowed); assertTrue(interceptor.beforeHandshake(request, response, wsHandler, attributes)); assertNotEquals(servletResponse.getStatus(), HttpStatus.FORBIDDEN.value()); @@ -60,7 +60,7 @@ public class OriginHandshakeInterceptorTests extends AbstractHttpRequestTests { public void originValueNoMatch() throws Exception { Map attributes = new HashMap<>(); WebSocketHandler wsHandler = Mockito.mock(WebSocketHandler.class); - this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain1.com"); + this.servletRequest.addHeader(HttpHeaders.ORIGIN, "https://mydomain1.com"); List allowed = Collections.singletonList("http://mydomain2.com"); OriginHandshakeInterceptor interceptor = new OriginHandshakeInterceptor(allowed); assertFalse(interceptor.beforeHandshake(request, response, wsHandler, attributes)); @@ -72,7 +72,7 @@ public class OriginHandshakeInterceptorTests extends AbstractHttpRequestTests { Map attributes = new HashMap<>(); WebSocketHandler wsHandler = Mockito.mock(WebSocketHandler.class); this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain2.com"); - List allowed = Arrays.asList("http://mydomain1.com", "http://mydomain2.com", "http://mydomain3.com"); + List allowed = Arrays.asList("https://mydomain1.com", "http://mydomain2.com", "http://mydomain3.com"); OriginHandshakeInterceptor interceptor = new OriginHandshakeInterceptor(allowed); assertTrue(interceptor.beforeHandshake(request, response, wsHandler, attributes)); assertNotEquals(servletResponse.getStatus(), HttpStatus.FORBIDDEN.value()); @@ -82,8 +82,8 @@ public class OriginHandshakeInterceptorTests extends AbstractHttpRequestTests { public void originListNoMatch() throws Exception { Map attributes = new HashMap<>(); WebSocketHandler wsHandler = Mockito.mock(WebSocketHandler.class); - this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain4.com"); - List allowed = Arrays.asList("http://mydomain1.com", "http://mydomain2.com", "http://mydomain3.com"); + this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://www.mydomain4.com/"); + List allowed = Arrays.asList("https://mydomain1.com", "http://mydomain2.com", "http://mydomain3.com"); OriginHandshakeInterceptor interceptor = new OriginHandshakeInterceptor(allowed); assertFalse(interceptor.beforeHandshake(request, response, wsHandler, attributes)); assertEquals(servletResponse.getStatus(), HttpStatus.FORBIDDEN.value()); @@ -93,10 +93,10 @@ public class OriginHandshakeInterceptorTests extends AbstractHttpRequestTests { public void originNoMatchWithNullHostileCollection() throws Exception { Map attributes = new HashMap<>(); WebSocketHandler wsHandler = Mockito.mock(WebSocketHandler.class); - this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain4.com"); + this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://www.mydomain4.com/"); OriginHandshakeInterceptor interceptor = new OriginHandshakeInterceptor(); Set allowedOrigins = new ConcurrentSkipListSet<>(); - allowedOrigins.add("http://mydomain1.com"); + allowedOrigins.add("https://mydomain1.com"); interceptor.setAllowedOrigins(allowedOrigins); assertFalse(interceptor.beforeHandshake(request, response, wsHandler, attributes)); assertEquals(servletResponse.getStatus(), HttpStatus.FORBIDDEN.value()); @@ -106,7 +106,7 @@ public class OriginHandshakeInterceptorTests extends AbstractHttpRequestTests { public void originMatchAll() throws Exception { Map attributes = new HashMap<>(); WebSocketHandler wsHandler = Mockito.mock(WebSocketHandler.class); - this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain1.com"); + this.servletRequest.addHeader(HttpHeaders.ORIGIN, "https://mydomain1.com"); OriginHandshakeInterceptor interceptor = new OriginHandshakeInterceptor(); interceptor.setAllowedOrigins(Collections.singletonList("*")); assertTrue(interceptor.beforeHandshake(request, response, wsHandler, attributes)); @@ -130,7 +130,7 @@ public class OriginHandshakeInterceptorTests extends AbstractHttpRequestTests { WebSocketHandler wsHandler = Mockito.mock(WebSocketHandler.class); this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain2.com"); this.servletRequest.setServerName("mydomain2.com"); - OriginHandshakeInterceptor interceptor = new OriginHandshakeInterceptor(Arrays.asList("http://mydomain1.com")); + OriginHandshakeInterceptor interceptor = new OriginHandshakeInterceptor(Arrays.asList("https://mydomain1.com")); assertTrue(interceptor.beforeHandshake(request, response, wsHandler, attributes)); assertNotEquals(servletResponse.getStatus(), HttpStatus.FORBIDDEN.value()); } diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/ClientSockJsSessionTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/ClientSockJsSessionTests.java index 976e3a8b6fd..dd1b9b17a7f 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/ClientSockJsSessionTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/ClientSockJsSessionTests.java @@ -62,7 +62,7 @@ public class ClientSockJsSessionTests { @Before public void setup() throws Exception { - SockJsUrlInfo urlInfo = new SockJsUrlInfo(new URI("http://example.com")); + SockJsUrlInfo urlInfo = new SockJsUrlInfo(new URI("https://example.com")); Transport transport = mock(Transport.class); TransportRequest request = new DefaultTransportRequest(urlInfo, null, null, transport, TransportType.XHR, CODEC); this.handler = mock(WebSocketHandler.class); diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/DefaultTransportRequestTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/DefaultTransportRequestTests.java index d990d361145..b6af54dbce1 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/DefaultTransportRequestTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/DefaultTransportRequestTests.java @@ -126,7 +126,7 @@ public class DefaultTransportRequestTests { } protected DefaultTransportRequest createTransportRequest(Transport transport, TransportType type) throws Exception { - SockJsUrlInfo urlInfo = new SockJsUrlInfo(new URI("http://example.com")); + SockJsUrlInfo urlInfo = new SockJsUrlInfo(new URI("https://example.com")); return new DefaultTransportRequest(urlInfo, new HttpHeaders(), new HttpHeaders(), transport, type, CODEC); } diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/RestTemplateXhrTransportTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/RestTemplateXhrTransportTests.java index 19208b8018c..34d8d65a18d 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/RestTemplateXhrTransportTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/RestTemplateXhrTransportTests.java @@ -173,7 +173,7 @@ public class RestTemplateXhrTransportTests { RestTemplateXhrTransport transport = new RestTemplateXhrTransport(restTemplate); transport.setTaskExecutor(new SyncTaskExecutor()); - SockJsUrlInfo urlInfo = new SockJsUrlInfo(new URI("http://example.com")); + SockJsUrlInfo urlInfo = new SockJsUrlInfo(new URI("https://example.com")); HttpHeaders headers = new HttpHeaders(); headers.add("h-foo", "h-bar"); TransportRequest request = new DefaultTransportRequest(urlInfo, headers, headers, diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/SockJsClientTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/SockJsClientTests.java index 12c72587c7e..defdb431e4d 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/SockJsClientTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/SockJsClientTests.java @@ -52,7 +52,7 @@ import static org.mockito.BDDMockito.when; */ public class SockJsClientTests { - private static final String URL = "http://example.com"; + private static final String URL = "https://example.com"; private static final WebSocketHandler handler = mock(WebSocketHandler.class); diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/SockJsUrlInfoTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/SockJsUrlInfoTests.java index 8735b11a976..f751d4e31b1 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/SockJsUrlInfoTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/SockJsUrlInfoTests.java @@ -36,14 +36,14 @@ public class SockJsUrlInfoTests { @Test public void serverId() throws Exception { - SockJsUrlInfo info = new SockJsUrlInfo(new URI("http://example.com")); + SockJsUrlInfo info = new SockJsUrlInfo(new URI("https://example.com")); int serverId = Integer.valueOf(info.getServerId()); assertTrue("Invalid serverId: " + serverId, serverId >= 0 && serverId < 1000); } @Test public void sessionId() throws Exception { - SockJsUrlInfo info = new SockJsUrlInfo(new URI("http://example.com")); + SockJsUrlInfo info = new SockJsUrlInfo(new URI("https://example.com")); assertEquals("Invalid sessionId: " + info.getSessionId(), 32, info.getSessionId().length()); } diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/XhrTransportTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/XhrTransportTests.java index 2cd810721ae..dc7e020d938 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/XhrTransportTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/client/XhrTransportTests.java @@ -46,14 +46,14 @@ public class XhrTransportTests { public void infoResponse() throws Exception { TestXhrTransport transport = new TestXhrTransport(); transport.infoResponseToReturn = new ResponseEntity<>("body", HttpStatus.OK); - assertEquals("body", transport.executeInfoRequest(new URI("http://example.com/info"), null)); + assertEquals("body", transport.executeInfoRequest(new URI("https://example.com/info"), null)); } @Test(expected = HttpServerErrorException.class) public void infoResponseError() throws Exception { TestXhrTransport transport = new TestXhrTransport(); transport.infoResponseToReturn = new ResponseEntity<>("body", HttpStatus.BAD_REQUEST); - assertEquals("body", transport.executeInfoRequest(new URI("http://example.com/info"), null)); + assertEquals("body", transport.executeInfoRequest(new URI("https://example.com/info"), null)); } @Test @@ -63,7 +63,7 @@ public class XhrTransportTests { requestHeaders.setContentType(MediaType.APPLICATION_JSON); TestXhrTransport transport = new TestXhrTransport(); transport.sendMessageResponseToReturn = new ResponseEntity<>(HttpStatus.NO_CONTENT); - URI url = new URI("http://example.com"); + URI url = new URI("https://example.com"); transport.executeSendRequest(url, requestHeaders, new TextMessage("payload")); assertEquals(2, transport.actualSendRequestHeaders.size()); assertEquals("bar", transport.actualSendRequestHeaders.getFirst("foo")); @@ -74,7 +74,7 @@ public class XhrTransportTests { public void sendMessageError() throws Exception { TestXhrTransport transport = new TestXhrTransport(); transport.sendMessageResponseToReturn = new ResponseEntity<>(HttpStatus.BAD_REQUEST); - URI url = new URI("http://example.com"); + URI url = new URI("https://example.com"); transport.executeSendRequest(url, new HttpHeaders(), new TextMessage("payload")); } @@ -84,7 +84,7 @@ public class XhrTransportTests { handshakeHeaders.setOrigin("foo"); TransportRequest request = mock(TransportRequest.class); - given(request.getSockJsUrlInfo()).willReturn(new SockJsUrlInfo(new URI("http://example.com"))); + given(request.getSockJsUrlInfo()).willReturn(new SockJsUrlInfo(new URI("https://example.com"))); given(request.getHandshakeHeaders()).willReturn(handshakeHeaders); given(request.getHttpRequestHeaders()).willReturn(new HttpHeaders()); diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/SockJsServiceTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/SockJsServiceTests.java index 803f22a6c8e..4fc57ca972b 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/SockJsServiceTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/support/SockJsServiceTests.java @@ -104,7 +104,7 @@ public class SockJsServiceTests extends AbstractHttpRequestTests { assertEquals(",\"origins\":[\"*:*\"],\"cookie_needed\":false,\"websocket\":false}", body.substring(body.indexOf(','))); - this.service.setAllowedOrigins(Collections.singletonList("http://mydomain1.com")); + this.service.setAllowedOrigins(Collections.singletonList("https://mydomain1.com")); resetResponseAndHandleRequest("GET", "/echo/info", HttpStatus.OK); assertNull(this.servletResponse.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertNull(this.servletResponse.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); @@ -125,17 +125,17 @@ public class SockJsServiceTests extends AbstractHttpRequestTests { assertEquals(",\"origins\":[\"*:*\"],\"cookie_needed\":true,\"websocket\":true}", body.substring(body.indexOf(','))); - this.service.setAllowedOrigins(Collections.singletonList("http://mydomain1.com")); + this.service.setAllowedOrigins(Collections.singletonList("https://mydomain1.com")); resetResponseAndHandleRequest("GET", "/echo/info", HttpStatus.OK); - this.service.setAllowedOrigins(Arrays.asList("http://mydomain1.com", "http://mydomain2.com", "http://mydomain3.com")); + this.service.setAllowedOrigins(Arrays.asList("https://mydomain1.com", "http://mydomain2.com", "http://mydomain3.com")); resetResponseAndHandleRequest("GET", "/echo/info", HttpStatus.OK); this.service.setAllowedOrigins(Collections.singletonList("*")); resetResponseAndHandleRequest("GET", "/echo/info", HttpStatus.OK); this.servletRequest.setServerName("mydomain3.com"); - this.service.setAllowedOrigins(Collections.singletonList("http://mydomain1.com")); + this.service.setAllowedOrigins(Collections.singletonList("https://mydomain1.com")); resetResponseAndHandleRequest("GET", "/echo/info", HttpStatus.FORBIDDEN); } @@ -168,7 +168,7 @@ public class SockJsServiceTests extends AbstractHttpRequestTests { resetResponseAndHandleRequest("OPTIONS", "/echo/info", HttpStatus.NO_CONTENT); assertNull(this.service.getCorsConfiguration(this.servletRequest)); - this.service.setAllowedOrigins(Collections.singletonList("http://mydomain1.com")); + this.service.setAllowedOrigins(Collections.singletonList("https://mydomain1.com")); resetResponseAndHandleRequest("OPTIONS", "/echo/info", HttpStatus.NO_CONTENT); assertNull(this.service.getCorsConfiguration(this.servletRequest)); } @@ -182,11 +182,11 @@ public class SockJsServiceTests extends AbstractHttpRequestTests { resetResponseAndHandleRequest("OPTIONS", "/echo/info", HttpStatus.NO_CONTENT); assertNotNull(this.service.getCorsConfiguration(this.servletRequest)); - this.service.setAllowedOrigins(Collections.singletonList("http://mydomain1.com")); + this.service.setAllowedOrigins(Collections.singletonList("https://mydomain1.com")); resetResponseAndHandleRequest("OPTIONS", "/echo/info", HttpStatus.NO_CONTENT); assertNotNull(this.service.getCorsConfiguration(this.servletRequest)); - this.service.setAllowedOrigins(Arrays.asList("http://mydomain1.com", "http://mydomain2.com", "http://mydomain3.com")); + this.service.setAllowedOrigins(Arrays.asList("https://mydomain1.com", "http://mydomain2.com", "http://mydomain3.com")); resetResponseAndHandleRequest("OPTIONS", "/echo/info", HttpStatus.NO_CONTENT); assertNotNull(this.service.getCorsConfiguration(this.servletRequest)); @@ -205,10 +205,10 @@ public class SockJsServiceTests extends AbstractHttpRequestTests { CorsConfiguration corsConfiguration = this.service.getCorsConfiguration(this.servletRequest); assertTrue(corsConfiguration.getAllowedOrigins().isEmpty()); - this.service.setAllowedOrigins(Collections.singletonList("http://mydomain1.com")); + this.service.setAllowedOrigins(Collections.singletonList("https://mydomain1.com")); resetResponseAndHandleRequest("OPTIONS", "/echo/info", HttpStatus.FORBIDDEN); corsConfiguration = this.service.getCorsConfiguration(this.servletRequest); - assertEquals(Collections.singletonList("http://mydomain1.com"), corsConfiguration.getAllowedOrigins()); + assertEquals(Collections.singletonList("https://mydomain1.com"), corsConfiguration.getAllowedOrigins()); } @Test // SPR-12283 @@ -221,11 +221,11 @@ public class SockJsServiceTests extends AbstractHttpRequestTests { resetResponseAndHandleRequest("OPTIONS", "/echo/info", HttpStatus.NO_CONTENT); assertNull(this.service.getCorsConfiguration(this.servletRequest)); - this.service.setAllowedOrigins(Collections.singletonList("http://mydomain1.com")); + this.service.setAllowedOrigins(Collections.singletonList("https://mydomain1.com")); resetResponseAndHandleRequest("OPTIONS", "/echo/info", HttpStatus.FORBIDDEN); assertNull(this.service.getCorsConfiguration(this.servletRequest)); - this.service.setAllowedOrigins(Arrays.asList("http://mydomain1.com", "http://mydomain2.com", "http://mydomain3.com")); + this.service.setAllowedOrigins(Arrays.asList("https://mydomain1.com", "http://mydomain2.com", "http://mydomain3.com")); resetResponseAndHandleRequest("OPTIONS", "/echo/info", HttpStatus.NO_CONTENT); assertNull(this.service.getCorsConfiguration(this.servletRequest)); } diff --git a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/transport/handler/DefaultSockJsServiceTests.java b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/transport/handler/DefaultSockJsServiceTests.java index 92cd95c9492..d21fa6e5345 100644 --- a/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/transport/handler/DefaultSockJsServiceTests.java +++ b/spring-websocket/src/test/java/org/springframework/web/socket/sockjs/transport/handler/DefaultSockJsServiceTests.java @@ -158,8 +158,8 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { public void handleTransportRequestXhrAllowedOriginsMatch() throws Exception { String sockJsPath = sessionUrlPrefix + "xhr"; setRequest("POST", sockJsPrefix + sockJsPath); - this.service.setAllowedOrigins(Arrays.asList("http://mydomain1.com", "http://mydomain2.com")); - this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain1.com"); + this.service.setAllowedOrigins(Arrays.asList("https://mydomain1.com", "http://mydomain2.com")); + this.servletRequest.addHeader(HttpHeaders.ORIGIN, "https://mydomain1.com"); this.service.handleRequest(this.request, this.response, sockJsPath, this.wsHandler); assertEquals(200, this.servletResponse.getStatus()); @@ -169,7 +169,7 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { public void handleTransportRequestXhrAllowedOriginsNoMatch() throws Exception { String sockJsPath = sessionUrlPrefix + "xhr"; setRequest("POST", sockJsPrefix + sockJsPath); - this.service.setAllowedOrigins(Arrays.asList("http://mydomain1.com", "http://mydomain2.com")); + this.service.setAllowedOrigins(Arrays.asList("https://mydomain1.com", "http://mydomain2.com")); this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain3.com"); this.service.handleRequest(this.request, this.response, sockJsPath, this.wsHandler); @@ -180,7 +180,7 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { public void handleTransportRequestXhrSameOrigin() throws Exception { String sockJsPath = sessionUrlPrefix + "xhr"; setRequest("POST", sockJsPrefix + sockJsPath); - this.service.setAllowedOrigins(Arrays.asList("http://mydomain1.com")); + this.service.setAllowedOrigins(Arrays.asList("https://mydomain1.com")); this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain2.com"); this.servletRequest.setServerName("mydomain2.com"); this.service.handleRequest(this.request, this.response, sockJsPath, this.wsHandler); @@ -192,7 +192,7 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { public void handleInvalidTransportType() throws Exception { String sockJsPath = sessionUrlPrefix + "invalid"; setRequest("POST", sockJsPrefix + sockJsPath); - this.service.setAllowedOrigins(Arrays.asList("http://mydomain1.com")); + this.service.setAllowedOrigins(Arrays.asList("https://mydomain1.com")); this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain2.com"); this.servletRequest.setServerName("mydomain2.com"); this.service.handleRequest(this.request, this.response, sockJsPath, this.wsHandler); @@ -279,7 +279,7 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { assertEquals(404, this.servletResponse.getStatus()); resetRequestAndResponse(); - jsonpService.setAllowedOrigins(Collections.singletonList("http://mydomain1.com")); + jsonpService.setAllowedOrigins(Collections.singletonList("https://mydomain1.com")); setRequest("GET", sockJsPrefix + sockJsPath); jsonpService.handleRequest(this.request, this.response, sockJsPath, this.wsHandler); assertEquals(404, this.servletResponse.getStatus()); @@ -301,11 +301,11 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { assertNotEquals(403, this.servletResponse.getStatus()); resetRequestAndResponse(); - List allowed = Collections.singletonList("http://mydomain1.com"); + List allowed = Collections.singletonList("https://mydomain1.com"); OriginHandshakeInterceptor interceptor = new OriginHandshakeInterceptor(allowed); wsService.setHandshakeInterceptors(Collections.singletonList(interceptor)); setRequest("GET", sockJsPrefix + sockJsPath); - this.servletRequest.addHeader(HttpHeaders.ORIGIN, "http://mydomain1.com"); + this.servletRequest.addHeader(HttpHeaders.ORIGIN, "https://mydomain1.com"); wsService.handleRequest(this.request, this.response, sockJsPath, this.wsHandler); assertNotEquals(403, this.servletResponse.getStatus()); @@ -326,7 +326,7 @@ public class DefaultSockJsServiceTests extends AbstractHttpRequestTests { resetRequestAndResponse(); setRequest("GET", sockJsPrefix + sockJsPath); - this.service.setAllowedOrigins(Collections.singletonList("http://mydomain1.com")); + this.service.setAllowedOrigins(Collections.singletonList("https://mydomain1.com")); this.service.handleRequest(this.request, this.response, sockJsPath, this.wsHandler); assertEquals(404, this.servletResponse.getStatus()); assertNull(this.servletResponse.getHeader("X-Frame-Options")); diff --git a/src/docs/api/overview.html b/src/docs/api/overview.html index 2ca88cfaf34..f37932935e5 100644 --- a/src/docs/api/overview.html +++ b/src/docs/api/overview.html @@ -1,7 +1,7 @@

    -This is the public API documentation for the Spring Framework. +This is the public API documentation for the Spring Framework.

    diff --git a/src/docs/asciidoc/core/core-aop.adoc b/src/docs/asciidoc/core/core-aop.adoc index a2c47423c8a..6aac375ea9c 100644 --- a/src/docs/asciidoc/core/core-aop.adoc +++ b/src/docs/asciidoc/core/core-aop.adoc @@ -210,7 +210,7 @@ implementation detail actually means. @AspectJ refers to a style of declaring aspects as regular Java classes annotated with annotations. The @AspectJ style was introduced by the -http://www.eclipse.org/aspectj[AspectJ project] as part of the AspectJ 5 release. Spring +https://www.eclipse.org/aspectj[AspectJ project] as part of the AspectJ 5 release. Spring interprets the same annotations as AspectJ 5, using a library supplied by AspectJ for pointcut parsing and matching. The AOP runtime is still pure Spring AOP though, and there is no dependency on the AspectJ compiler or weaver. @@ -360,9 +360,9 @@ will match the execution of any method named `'transfer'`: The pointcut expression that forms the value of the `@Pointcut` annotation is a regular AspectJ 5 pointcut expression. For a full discussion of AspectJ's pointcut language, see -the http://www.eclipse.org/aspectj/doc/released/progguide/index.html[AspectJ +the https://www.eclipse.org/aspectj/doc/released/progguide/index.html[AspectJ Programming Guide] (and for extensions, the -http://www.eclipse.org/aspectj/doc/released/adk15notebook/index.html[AspectJ 5 +https://www.eclipse.org/aspectj/doc/released/adk15notebook/index.html[AspectJ 5 Developers Notebook]) or one of the books on AspectJ such as "Eclipse AspectJ" by Colyer et. al. or "AspectJ in Action" by Ramnivas Laddad. @@ -616,7 +616,7 @@ method that takes no parameters, whereas `(..)` matches any number of parameters or more). The pattern `({asterisk})` matches a method taking one parameter of any type, `(*,String)` matches a method taking two parameters, the first can be of any type, the second must be a String. Consult the -http://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html[Language +https://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html[Language Semantics] section of the AspectJ Programming Guide for more information. Some examples of common pointcut expressions are given below. @@ -2060,8 +2060,8 @@ above advice for a particular join point: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -2386,7 +2386,7 @@ simple method executions (for example, field get or set join points, and so on). When using AspectJ, you have the choice of the AspectJ language syntax (also known as the "code style") or the @AspectJ annotation style. Clearly, if you are not using Java 5+ then the choice has been made for you... use the code style. If aspects play a large -role in your design, and you are able to use the http://www.eclipse.org/ajdt/[AspectJ +role in your design, and you are able to use the https://www.eclipse.org/ajdt/[AspectJ Development Tools (AJDT)] plugin for Eclipse, then the AspectJ language syntax is the preferred option: it is cleaner and simpler because the language was purposefully designed for writing aspects. If you are not using Eclipse, or have only a few aspects @@ -2803,7 +2803,7 @@ using Spring in accordance with the properties of the annotation". In this conte __initialization__ refers to newly instantiated objects (e.g., objects instantiated with the `new` operator) as well as to `Serializable` objects that are undergoing deserialization (e.g., via -http://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html[readResolve()]). +https://docs.oracle.com/javase/6/docs/api/java/io/Serializable.html[readResolve()]). [NOTE] ==== @@ -2824,14 +2824,14 @@ available for use in the body of the constructors, then you need to define this You can find out more information about the language semantics of the various pointcut types in AspectJ -http://www.eclipse.org/aspectj/doc/next/progguide/semantics-joinPoints.html[in this -appendix] of the http://www.eclipse.org/aspectj/doc/next/progguide/index.html[AspectJ +https://www.eclipse.org/aspectj/doc/next/progguide/semantics-joinPoints.html[in this +appendix] of the https://www.eclipse.org/aspectj/doc/next/progguide/index.html[AspectJ Programming Guide]. ==== For this to work the annotated types must be woven with the AspectJ weaver - you can either use a build-time Ant or Maven task to do this (see for example the -http://www.eclipse.org/aspectj/doc/released/devguide/antTasks.html[AspectJ Development +https://www.eclipse.org/aspectj/doc/released/devguide/antTasks.html[AspectJ Development Environment Guide]) or load-time weaving (see <>). The `AnnotationBeanConfigurerAspect` itself needs configuring by Spring (in order to obtain a reference to the bean factory that is to be used to configure new objects). If you are @@ -3055,7 +3055,7 @@ The focus of this section is on configuring and using LTW in the specific contex Spring Framework: this section is not an introduction to LTW though. For full details on the specifics of LTW and configuring LTW with just AspectJ (with Spring not being involved at all), see the -http://www.eclipse.org/aspectj/doc/released/devguide/ltw.html[LTW section of the AspectJ +https://www.eclipse.org/aspectj/doc/released/devguide/ltw.html[LTW section of the AspectJ Development Environment Guide]. The value-add that the Spring Framework brings to AspectJ LTW is in enabling much @@ -3142,7 +3142,7 @@ namely the presence of a file (or files) on the Java classpath called [source,xml,indent=0] [subs="verbatim,quotes"] ---- - + @@ -3174,9 +3174,9 @@ are some more options that you can specify, but these are detailed later). xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -3403,19 +3403,19 @@ environment (summarized in the following table). | Runtime Environment| `LoadTimeWeaver` implementation | Running in Oracle's - http://www.oracle.com/technetwork/middleware/weblogic/overview/index-085209.html[WebLogic] + https://www.oracle.com/technetwork/middleware/weblogic/overview/index-085209.html[WebLogic] | `WebLogicLoadTimeWeaver` -| Running in Oracle's http://glassfish.dev.java.net/[GlassFish] +| Running in Oracle's https://glassfish.dev.java.net/[GlassFish] | `GlassFishLoadTimeWeaver` -| Running in http://tomcat.apache.org/[Apache Tomcat] +| Running in https://tomcat.apache.org/[Apache Tomcat] | `TomcatLoadTimeWeaver` -| Running in Red Hat's http://www.jboss.org/jbossas/[JBoss AS] or http://www.wildfly.org/[WildFly] +| Running in Red Hat's https://www.jboss.org/jbossas/[JBoss AS] or https://www.wildfly.org/[WildFly] | `JBossLoadTimeWeaver` -| Running in IBM's http://www-01.ibm.com/software/webservers/appserv/was/[WebSphere] +| Running in IBM's https://www-01.ibm.com/software/webservers/appserv/was/[WebSphere] | `WebSphereLoadTimeWeaver` | JVM started with Spring `InstrumentationSavingAgent` __(java @@ -3423,7 +3423,7 @@ environment (summarized in the following table). | `InstrumentationLoadTimeWeaver` | Fallback, expecting the underlying ClassLoader to follow common conventions (e.g. - applicable to `TomcatInstrumentableClassLoader` and http://www.caucho.com/[Resin]) + applicable to `TomcatInstrumentableClassLoader` and https://www.caucho.com/[Resin]) | `ReflectiveLoadTimeWeaver` |=== @@ -3461,9 +3461,9 @@ element: xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -3516,7 +3516,7 @@ containers. [[aop-aj-ltw-environment-tomcat]] ===== Tomcat -Historically, http://tomcat.apache.org/[Apache Tomcat]'s default class loader did not +Historically, https://tomcat.apache.org/[Apache Tomcat]'s default class loader did not support class transformation which is why Spring provides an enhanced implementation that addresses this need. Named `TomcatInstrumentableClassLoader`, the loader works on Tomcat 6.0 and above. @@ -3557,7 +3557,7 @@ Apache Tomcat (6.0+) supports several context locations: For efficiency, the embedded per-web-app configuration style is recommended because it will impact only applications that use the custom class loader and does not require any changes to the server configuration. See the Tomcat 6.0.x -http://tomcat.apache.org/tomcat-6.0-doc/config/context.html[documentation] for more +https://tomcat.apache.org/tomcat-6.0-doc/config/context.html[documentation] for more details about available context locations. Alternatively, consider the use of the Spring-provided generic VM agent, to be specified @@ -3611,7 +3611,7 @@ using this in application server environments (depending on your operation polic Additionally, the JDK agent will instrument the __entire__ VM which can prove expensive. For performance reasons, it is recommended to use this configuration only if your target -environment (such as http://www.eclipse.org/jetty/[Jetty]) does not have (or does not +environment (such as https://www.eclipse.org/jetty/[Jetty]) does not have (or does not support) a dedicated LTW. @@ -3620,7 +3620,7 @@ support) a dedicated LTW. [[aop-resources]] == Further Resources -More information on AspectJ can be found on the http://www.eclipse.org/aspectj[AspectJ +More information on AspectJ can be found on the https://www.eclipse.org/aspectj[AspectJ website]. The book __Eclipse AspectJ__ by Adrian Colyer et. al. (Addison-Wesley, 2005) provides a diff --git a/src/docs/asciidoc/core/core-appendix.adoc b/src/docs/asciidoc/core/core-appendix.adoc index 714af013c59..f6421b296c7 100644 --- a/src/docs/asciidoc/core/core-appendix.adoc +++ b/src/docs/asciidoc/core/core-appendix.adoc @@ -28,8 +28,8 @@ correct schema so that the tags in the `util` namespace are available to you. + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + __http://www.springframework.org/schema/util https://www.springframework.org/schema/util/spring-util.xsd"__> ---- @@ -519,8 +519,8 @@ are available to you. + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + __http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd"__> ---- @@ -543,8 +543,8 @@ available to you. + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + __http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd"__> ---- @@ -632,7 +632,7 @@ as-is). + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> ____ @@ -954,7 +954,7 @@ in a Spring XML configuration file. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:myns="http://www.mycompany.com/schema/myns" xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.mycompany.com/schema/myns http://www.mycompany.com/schema/myns/myns.xsd"> @@ -992,7 +992,7 @@ to satisfy a target of the following configuration: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:foo="http://www.foo.com/schema/component" xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd http://www.foo.com/schema/component http://www.foo.com/schema/component/component.xsd"> @@ -1220,7 +1220,7 @@ additional attribute to the existing bean definition element. By way of another example, let's say that the service class that you are defining a bean definition for a service object that will (unknown to it) be accessing a clustered -http://jcp.org/en/jsr/detail?id=107[JCache], and you want to ensure that the named +https://jcp.org/en/jsr/detail?id=107[JCache], and you want to ensure that the named JCache instance is eagerly started within the surrounding cluster: [source,xml,indent=0] diff --git a/src/docs/asciidoc/core/core-beans.adoc b/src/docs/asciidoc/core/core-beans.adoc index d8e99477bbe..2d7adf177d0 100644 --- a/src/docs/asciidoc/core/core-beans.adoc +++ b/src/docs/asciidoc/core/core-beans.adoc @@ -139,7 +139,7 @@ The following example shows the basic structure of XML-based configuration metad + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -194,7 +194,7 @@ The following example shows the service layer objects `(services.xml)` configura + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -218,7 +218,7 @@ The following example shows the data access objects `daos.xml` file: + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -958,7 +958,7 @@ You can also use the constructor parameter name for value disambiguation: Keep in mind that to make this work out of the box your code must be compiled with the debug flag enabled so that Spring can look up the parameter name from the constructor. If you can't compile your code with debug flag (or don't want to) you can use -http://download.oracle.com/javase/6/docs/api/java/beans/ConstructorProperties.html[@ConstructorProperties] +https://download.oracle.com/javase/6/docs/api/java/beans/ConstructorProperties.html[@ConstructorProperties] JDK annotation to explicitly name your constructor arguments. The sample class would then have to look as follows: @@ -1304,7 +1304,7 @@ XML configuration. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd"> + https://www.springframework.org/schema/beans/spring-beans.xsd"> + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -1758,7 +1758,7 @@ another bean: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd"> + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -1810,7 +1810,7 @@ Let's review the examples from <> with the `c:` nam xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:c="http://www.springframework.org/schema/c" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd"> + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -2758,9 +2758,9 @@ understand the "why" as well as the "how" behind it. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop.xsd"> + https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -2994,9 +2994,9 @@ of the scope. You can also do the `Scope` registration declaratively, using the xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop.xsd"> + https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -3846,9 +3846,9 @@ Find below the custom `BeanPostProcessor` implementation class definition: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:lang="http://www.springframework.org/schema/lang" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/lang - http://www.springframework.org/schema/lang/spring-lang.xsd"> + https://www.springframework.org/schema/lang/spring-lang.xsd"> @@ -4230,9 +4230,9 @@ configuration (notice the inclusion of the `context` namespace): xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -4624,9 +4624,9 @@ The corresponding bean definitions appear as follows. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -4701,9 +4701,9 @@ The corresponding bean definitions appear as follows. The bean with qualifier va xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -4837,9 +4837,9 @@ demonstrated in the following example. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -4977,9 +4977,9 @@ the following example. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -5420,9 +5420,9 @@ The following is an alternative using XML xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -5443,7 +5443,7 @@ entries in the classpath. When you build JARs with Ant, make sure that you do __ activate the files-only switch of the JAR task. Also, classpath directories may not get exposed based on security policies in some environments, e.g. standalone apps on JDK 1.7.0_45 and higher (which requires 'Trusted-Library' setup in your manifests; see -http://stackoverflow.com/questions/19394570/java-jre-7u45-breaks-classloader-getresources). +https://stackoverflow.com/questions/19394570/java-jre-7u45-breaks-classloader-getresources). On JDK 9's module path (Jigsaw), Spring's classpath scanning generally works as expected. However, please make sure that your component classes are exported in your `module-info` @@ -5974,7 +5974,7 @@ annotations. You just need to have the relevant jars in your classpath. ==== If you are using Maven, the `javax.inject` artifact is available in the standard Maven repository ( -http://repo1.maven.org/maven2/javax/inject/javax.inject/1/[http://repo1.maven.org/maven2/javax/inject/javax.inject/1/]). +https://repo1.maven.org/maven2/javax/inject/javax.inject/1/[https://repo1.maven.org/maven2/javax/inject/javax.inject/1/]). You can add the following dependency to your file pom.xml: [source,xml,indent=0] @@ -6191,7 +6191,7 @@ features are not available as shown in the table below: consistent with Spring's general defaults, a JSR-330 bean declared in the Spring container is a `singleton` by default. In order to use a scope other than `singleton`, you should use Spring's `@Scope` annotation. `javax.inject` also provides a - http://download.oracle.com/javaee/6/api/javax/inject/Scope.html[@Scope] annotation. + https://download.oracle.com/javaee/6/api/javax/inject/Scope.html[@Scope] annotation. Nevertheless, this one is only intended to be used for creating your own annotations. | @Qualifier @@ -8509,9 +8509,9 @@ notify appropriate parties. Spring's eventing mechanism is designed for simple communication between Spring beans within the same application context. However, for more sophisticated enterprise integration needs, the separately-maintained -http://projects.spring.io/spring-integration/[Spring Integration] project provides +https://projects.spring.io/spring-integration/[Spring Integration] project provides complete support for building lightweight, -http://www.enterpriseintegrationpatterns.com[pattern-oriented], event-driven +https://www.enterpriseintegrationpatterns.com[pattern-oriented], event-driven architectures that build upon the well-known Spring programming model. ==== diff --git a/src/docs/asciidoc/core/core-resources.adoc b/src/docs/asciidoc/core/core-resources.adoc index 4e3b6b3f74d..9aa4031b626 100644 --- a/src/docs/asciidoc/core/core-resources.adoc +++ b/src/docs/asciidoc/core/core-resources.adoc @@ -254,7 +254,7 @@ Similarly, one can force a `UrlResource` to be used by specifying any of the sta [source,java,indent=0] [subs="verbatim,quotes"] ---- - Resource template = ctx.getResource("http://myhost.com/resource/path/myTemplate.txt"); + Resource template = ctx.getResource("https://myhost.com/resource/path/myTemplate.txt"); ---- The following table summarizes the strategy for converting ``String``s to ``Resource``s: @@ -274,7 +274,7 @@ The following table summarizes the strategy for converting ``String``s to ``Reso pass:specialcharacters,macros[<>].] | http: -| `http://myserver/logo.png` +| `https://myserver/logo.png` | Loaded as a `URL`. | (none) @@ -593,7 +593,7 @@ entries in the classpath. When you build JARs with Ant, make sure that you do __ activate the files-only switch of the JAR task. Also, classpath directories may not get exposed based on security policies in some environments, e.g. standalone apps on JDK 1.7.0_45 and higher (which requires 'Trusted-Library' setup in your manifests; see -http://stackoverflow.com/questions/19394570/java-jre-7u45-breaks-classloader-getresources). +https://stackoverflow.com/questions/19394570/java-jre-7u45-breaks-classloader-getresources). On JDK 9's module path (Jigsaw), Spring's classpath scanning generally works as expected. Putting resources into a dedicated directory is highly recommendable here as well, diff --git a/src/docs/asciidoc/core/core-validation.adoc b/src/docs/asciidoc/core/core-validation.adoc index 826dfaa932b..e1e8fb52e1a 100644 --- a/src/docs/asciidoc/core/core-validation.adoc +++ b/src/docs/asciidoc/core/core-validation.adoc @@ -207,7 +207,7 @@ Oracle. A JavaBean is simply a class with a default no-argument constructor, whi a naming convention where (by way of an example) a property named `bingoMadness` would have a setter method `setBingoMadness(..)` and a getter method `getBingoMadness()`. For more information about JavaBeans and the specification, please refer to Oracle's website ( -http://docs.oracle.com/javase/6/docs/api/java/beans/package-summary.html[javabeans]). +https://docs.oracle.com/javase/6/docs/api/java/beans/package-summary.html[javabeans]). One quite important class in the beans package is the `BeanWrapper` interface and its corresponding implementation ( `BeanWrapperImpl`). As quoted from the javadocs, the @@ -461,7 +461,7 @@ com Note that you can also use the standard `BeanInfo` JavaBeans mechanism here as well (described -http://docs.oracle.com/javase/tutorial/javabeans/advanced/customization.html[in +https://docs.oracle.com/javase/tutorial/javabeans/advanced/customization.html[in not-amazing-detail here]). Find below an example of using the `BeanInfo` mechanism for explicitly registering one or more `PropertyEditor` instances with the properties of an associated class. @@ -1375,7 +1375,7 @@ Time: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd> + https://www.springframework.org/schema/beans/spring-beans.xsd> @@ -1465,7 +1465,7 @@ JSR-303 allows you to define declarative validation constraints against such pro When an instance of this class is validated by a JSR-303 Validator, these constraints will be enforced. -For general information on JSR-303/JSR-349, see the http://beanvalidation.org/[Bean +For general information on JSR-303/JSR-349, see the https://beanvalidation.org/[Bean Validation website]. For information on the specific capabilities of the default reference implementation, see the https://www.hibernate.org/412.html[Hibernate Validator] documentation. To learn how to setup a Bean Validation provider as a Spring diff --git a/src/docs/asciidoc/data-access-appendix.adoc b/src/docs/asciidoc/data-access-appendix.adoc index e87b5c80805..ca2f9379a07 100644 --- a/src/docs/asciidoc/data-access-appendix.adoc +++ b/src/docs/asciidoc/data-access-appendix.adoc @@ -40,9 +40,9 @@ are available to you. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" __xmlns:tx="http://www.springframework.org/schema/tx"__ xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd __http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd__ - http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> + http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd"> ---- @@ -76,8 +76,8 @@ correct schema so that the tags in the `jdbc` namespace are available to you. + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + __http://www.springframework.org/schema/jdbc https://www.springframework.org/schema/jdbc/spring-jdbc.xsd"__> ---- diff --git a/src/docs/asciidoc/data-access.adoc b/src/docs/asciidoc/data-access.adoc index 6c228c31aea..a42878fcdf6 100644 --- a/src/docs/asciidoc/data-access.adoc +++ b/src/docs/asciidoc/data-access.adoc @@ -135,7 +135,7 @@ Typically you need an application server's JTA capability only if your applicati to handle transactions across multiple resources, which is not a requirement for many applications. Many high-end applications use a single, highly scalable database (such as Oracle RAC) instead. Standalone transaction managers such as -http://www.atomikos.com/[Atomikos Transactions] and http://jotm.objectweb.org/[JOTM] +https://www.atomikos.com/[Atomikos Transactions] and http://jotm.objectweb.org/[JOTM] are other options. Of course, you may need other application server capabilities such as Java Message Service (JMS) and Java EE Connector Architecture (JCA). @@ -286,9 +286,9 @@ and JNDI lookup version would look like: xmlns:jee="http://www.springframework.org/schema/jee" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/jee - http://www.springframework.org/schema/jee/spring-jee.xsd"> + https://www.springframework.org/schema/jee/spring-jee.xsd"> @@ -627,11 +627,11 @@ configuration is explained in detail in the next few paragraphs. xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx.xsd + https://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop.xsd"> + https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -891,11 +891,11 @@ the default transactional configuration, you would write the following: xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx.xsd + https://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop.xsd"> + https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -939,11 +939,11 @@ transactional settings. xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx.xsd + https://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop.xsd"> + https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -1107,11 +1107,11 @@ In XML configuration, the `` tag provides similar conveni xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx.xsd + https://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop.xsd"> + https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -1589,11 +1589,11 @@ is controlled through the `Ordered` interface. For full details on advice orderi xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx.xsd + https://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop.xsd"> + https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -1645,11 +1645,11 @@ declarative approach. xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx.xsd + https://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop.xsd"> + https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -1744,7 +1744,7 @@ annotated, regardless of visibility. To weave your applications with the `AnnotationTransactionAspect` you must either build your application with AspectJ (see the -http://www.eclipse.org/aspectj/doc/released/devguide/index.html[AspectJ Development +https://www.eclipse.org/aspectj/doc/released/devguide/index.html[AspectJ Development Guide]) or use load-time weaving. See <> for a discussion of load-time weaving with AspectJ. @@ -2058,12 +2058,12 @@ treats them as errors. For more information about the Spring Framework's transaction support: -* http://www.javaworld.com/javaworld/jw-01-2009/jw-01-spring-transactions.html[Distributed +* https://www.javaworld.com/javaworld/jw-01-2009/jw-01-spring-transactions.html[Distributed transactions in Spring, with and without XA] is a JavaWorld presentation in which Spring's David Syer guides you through seven patterns for distributed transactions in Spring applications, three of them with XA and four without. -* http://www.infoq.com/minibooks/JTDS[Java Transaction Design Strategies] is a book - available from http://www.infoq.com/[InfoQ] that provides a well-paced introduction +* https://www.infoq.com/minibooks/JTDS[Java Transaction Design Strategies] is a book + available from https://www.infoq.com/[InfoQ] that provides a well-paced introduction to transactions in Java. It also includes side-by-side examples of how to configure and use transactions with both the Spring Framework and EJB3. @@ -2571,9 +2571,9 @@ The corresponding configuration might look like this. xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -2624,9 +2624,9 @@ The corresponding XML configuration file would look like the following: xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -2728,7 +2728,7 @@ are the parameter names and the values are the parameter values. Another `SqlParameterSource` implementation is the `BeanPropertySqlParameterSource` class. This class wraps an arbitrary JavaBean (that is, an instance of a class that -adheres to http://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html[the +adheres to https://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html[the JavaBean conventions]), and uses the properties of the wrapped JavaBean as the source of named parameter values. @@ -4583,7 +4583,7 @@ it with values from the Java `ARRAY`. The `org.springframework.jdbc.datasource.embedded` package provides support for embedded Java database engines. Support for http://www.hsqldb.org[HSQL], -http://www.h2database.com[H2], and http://db.apache.org/derby[Derby] is provided +https://www.h2database.com[H2], and https://db.apache.org/derby[Derby] is provided natively. You can also use an extensible API to plug in new embedded database types and `DataSource` implementations. @@ -5001,7 +5001,7 @@ Benefits of using the Spring Framework to create your ORM DAOs include: ==== For more comprehensive ORM support, including support for alternative database technologies such as MongoDB, you might want to check out the -http://projects.spring.io/spring-data/[Spring Data] suite of projects. If you are +https://projects.spring.io/spring-data/[Spring Data] suite of projects. If you are a JPA user, the https://spring.io/guides/gs/accessing-data-jpa/[Getting Started Accessing Data with JPA] guide from https://spring.io provides a great introduction. ==== @@ -5108,7 +5108,7 @@ exception hierarchies. [[orm-hibernate]] === Hibernate -We will start with a coverage of http://www.hibernate.org/[Hibernate 5] in a Spring +We will start with a coverage of https://hibernate.org/[Hibernate 5] in a Spring environment, using it to demonstrate the approach that Spring takes towards integrating O/R mappers. This section will cover many issues in detail and show different variations of DAO implementations and transaction demarcation. Most of these patterns can be @@ -5317,11 +5317,11 @@ opting into `@Transactional` processing at runtime. xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx.xsd + https://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop.xsd"> + https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -5562,7 +5562,7 @@ following events occur when a JTA transaction commits: The Spring JPA, available under the `org.springframework.orm.jpa` package, offers comprehensive support for the -http://www.oracle.com/technetwork/articles/javaee/jpa-137156.html[Java Persistence +https://www.oracle.com/technetwork/articles/javaee/jpa-137156.html[Java Persistence API] in a similar manner to the integration with Hibernate, while being aware of the underlying implementation in order to provide additional features. @@ -5728,7 +5728,7 @@ The `LoadTimeWeaver` interface is a Spring-provided class that allows JPA `ClassTransformer` instances to be plugged in a specific manner, depending whether the environment is a web container or application server. Hooking `ClassTransformers` through an -http://docs.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html[agent] +https://docs.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html[agent] typically is not efficient. The agents work against the __entire virtual machine__ and inspect __every__ class that is loaded, which is usually undesirable in a production server environment. @@ -6356,7 +6356,7 @@ preamble of the XML configuration file. Note the 'oxm' related text below: + **xmlns:oxm="http://www.springframework.org/schema/oxm"** xsi:schemaLocation="http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd **http://www.springframework.org/schema/oxm https://www.springframework.org/schema/oxm/spring-oxm.xsd"**> ---- Currently, the following tags are available: @@ -6468,7 +6468,7 @@ not require any further configuration, though a mapping file can be used to have control over the behavior of Castor. For more information on Castor, refer to the -http://castor-data-binding.github.io/castor[__Castor web site__]. The Spring +https://castor-data-binding.github.io/castor[__Castor web site__]. The Spring integration classes reside in the `org.springframework.oxm.castor` package. @@ -6493,7 +6493,7 @@ interface. It can be wired up as follows: Although it is possible to rely on Castor's default marshalling behavior, it might be necessary to have more control over it. This can be accomplished using a Castor mapping -file. For more information, refer to http://castor-data-binding.github.io/castor/reference-guides/1.3.3/html-single/index.html#xml.mapping[Castor +file. For more information, refer to https://castor-data-binding.github.io/castor/reference-guides/1.3.3/html-single/index.html#xml.mapping[Castor XML Mapping]. The mapping can be set using the `mappingLocation` resource property, indicated below @@ -6633,7 +6633,7 @@ Available attributes are: XStream is a simple library to serialize objects to XML and back again. It does not require any mapping, and generates clean XML. -For more information on XStream, refer to the http://x-stream.github.io/[__XStream +For more information on XStream, refer to the https://x-stream.github.io/[__XStream web site__]. The Spring integration classes reside in the `org.springframework.oxm.xstream` package. diff --git a/src/docs/asciidoc/images/overview-ejb.graffle b/src/docs/asciidoc/images/overview-ejb.graffle index 3813752a400..8675627fe34 100644 --- a/src/docs/asciidoc/images/overview-ejb.graffle +++ b/src/docs/asciidoc/images/overview-ejb.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/images/overview-full.graffle b/src/docs/asciidoc/images/overview-full.graffle index 8226bf08ef6..d512dc69172 100644 --- a/src/docs/asciidoc/images/overview-full.graffle +++ b/src/docs/asciidoc/images/overview-full.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/images/overview-remoting.graffle b/src/docs/asciidoc/images/overview-remoting.graffle index 11e10c2475c..86878d94472 100644 --- a/src/docs/asciidoc/images/overview-remoting.graffle +++ b/src/docs/asciidoc/images/overview-remoting.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/images/overview-thirdparty-web.graffle b/src/docs/asciidoc/images/overview-thirdparty-web.graffle index 6a1d4278a87..d78f722e0cb 100644 --- a/src/docs/asciidoc/images/overview-thirdparty-web.graffle +++ b/src/docs/asciidoc/images/overview-thirdparty-web.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/images/oxm-exceptions.graffle b/src/docs/asciidoc/images/oxm-exceptions.graffle index 7e1c19f1dff..4b72bf45285 100644 --- a/src/docs/asciidoc/images/oxm-exceptions.graffle +++ b/src/docs/asciidoc/images/oxm-exceptions.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/images/spring-overview.graffle b/src/docs/asciidoc/images/spring-overview.graffle index 3dcbe41270b..1e0774681a7 100644 --- a/src/docs/asciidoc/images/spring-overview.graffle +++ b/src/docs/asciidoc/images/spring-overview.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/integration-appendix.adoc b/src/docs/asciidoc/integration-appendix.adoc index 0f5628e1839..58ed20dbcab 100644 --- a/src/docs/asciidoc/integration-appendix.adoc +++ b/src/docs/asciidoc/integration-appendix.adoc @@ -27,8 +27,8 @@ correct schema so that the tags in the `jee` namespace are available to you. + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + __http://www.springframework.org/schema/jee https://www.springframework.org/schema/jee/spring-jee.xsd"__> ---- @@ -280,8 +280,8 @@ are available to you. + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + __http://www.springframework.org/schema/jms https://www.springframework.org/schema/jms/spring-jms.xsd"__> ---- @@ -314,8 +314,8 @@ the correct schema so that the tags in the `cache` namespace are available to yo + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + __http://www.springframework.org/schema/cache https://www.springframework.org/schema/cache/spring-cache.xsd"__> ---- diff --git a/src/docs/asciidoc/integration.adoc b/src/docs/asciidoc/integration.adoc index 06874d05ba0..eb5a6e473a8 100644 --- a/src/docs/asciidoc/integration.adoc +++ b/src/docs/asciidoc/integration.adoc @@ -204,7 +204,7 @@ will transparently create an invoker and remotely enable the account service thr === Using Hessian to remotely call services via HTTP Hessian offers a binary HTTP-based remoting protocol. It is developed by Caucho and more -information about Hessian itself can be found at http://www.caucho.com[]. +information about Hessian itself can be found at https://www.caucho.com/[]. [[remoting-caucho-protocols-hessian]] @@ -351,7 +351,7 @@ this application context. ==== Of course, this example doesn't show a flexible kind of security infrastructure. For more options as far as security is concerned, have a look at the Spring Security project -at http://projects.spring.io/spring-security/[]. +at https://projects.spring.io/spring-security/[]. ==== @@ -369,7 +369,7 @@ choosing a remoting technology). Under the hood, Spring uses either the standard facilities provided by the JDK or Apache `HttpComponents` to perform HTTP calls. Use the latter if you need more advanced and easier-to-use functionality. Refer to -http://hc.apache.org/httpcomponents-client-ga/[hc.apache.org/httpcomponents-client-ga/] +https://hc.apache.org/httpcomponents-client-ga/[hc.apache.org/httpcomponents-client-ga/] for more information. [WARNING] @@ -384,7 +384,7 @@ If you are concerned about security vulnerabilities due to Java serialization, consider the general-purpose serialization filter mechanism at the core JVM level, originally developed for JDK 9 but backported to JDK 8, 7 and 6 in the meantime: https://blogs.oracle.com/java-platform-group/entry/incoming_filter_serialization_data_a -http://openjdk.java.net/jeps/290 +https://openjdk.java.net/jeps/290 ==== @@ -764,7 +764,7 @@ the client and server. + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -791,7 +791,7 @@ On the server, you just need to expose the service object using the + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -843,7 +843,7 @@ proxy will take care of forwarding the call to the server-side object via JMS. + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -1065,7 +1065,7 @@ For example with a `String` vararg: [subs="verbatim,quotes"] ---- String result = restTemplate.getForObject( - "http://example.com/hotels/{hotel}/bookings/{booking}", String.class, "42", "21"); + "https://example.com/hotels/{hotel}/bookings/{booking}", String.class, "42", "21"); ---- Or with a `Map`: @@ -1076,7 +1076,7 @@ Or with a `Map`: Map vars = Collections.singletonMap("hotel", "42"); String result = restTemplate.getForObject( - "http://example.com/hotels/{hotel}/rooms/{hotel}", String.class, vars); + "https://example.com/hotels/{hotel}/rooms/{hotel}", String.class, vars); ---- Keep in mind URI templates are automatically encoded. For example: @@ -1084,9 +1084,9 @@ Keep in mind URI templates are automatically encoded. For example: [source,java,indent=0] [subs="verbatim,quotes"] ---- - restTemplate.getForObject("http://example.com/hotel list", String.class); + restTemplate.getForObject("https://example.com/hotel list", String.class); - // Results in request to "http://example.com/hotel%20list" + // Results in request to "https://example.com/hotel%20list" ---- You can use the `uriTemplateHandler` property of `RestTemplate` to customize how URIs are @@ -1105,7 +1105,7 @@ Use the `exchange()` methods to specify request headers. For example: [source,java,indent=0] [subs="verbatim,quotes"] ---- - String uriTemplate = "http://example.com/hotels/{hotel}"; + String uriTemplate = "https://example.com/hotels/{hotel}"; URI uri = UriComponentsBuilder.fromUriString(uriTemplate).build(42); RequestEntity requestEntity = RequestEntity.get(uri) @@ -1130,7 +1130,7 @@ content with the help of an `HttpMessageConverter`. On a POST, an input object is serialized to the request body: - URI location = template.postForLocation("http://example.com/people", person); + URI location = template.postForLocation("https://example.com/people", person); The "Content-Type" header of the request does not need to be set explicitly. In most cases a compatible message converter can be found based on the source Object type, and the chosen @@ -1140,7 +1140,7 @@ turn will influence what message converter is selected. On a GET, the body of the response is deserialized to an output Object: - Person person = restTemplate.getForObject("http://example.com/people/{id}", Person.class, 42); + Person person = restTemplate.getForObject("https://example.com/people/{id}", Person.class, 42); The "Accept" header of the request does not need to be set explicitly. In most cases a compatible message converter can be found based on the expected response type, which @@ -1235,7 +1235,7 @@ and writes the media type supported by the Java I/O API. [[rest-template-jsonview]] ===== Jackson JSON Views -It is possible to specify a http://wiki.fasterxml.com/JacksonJsonViews[Jackson JSON View] +It is possible to specify a https://wiki.fasterxml.com/JacksonJsonViews[Jackson JSON View] to serialize only a subset of the object properties. For example: [source,java,indent=0] @@ -1245,7 +1245,7 @@ to serialize only a subset of the object properties. For example: value.setSerializationView(User.WithoutPasswordView.class); RequestEntity requestEntity = - RequestEntity.post(new URI("http://example.com/user")).body(value); + RequestEntity.post(new URI("https://example.com/user")).body(value); ResponseEntity response = template.exchange(requestEntity, String.class); ---- @@ -1281,7 +1281,7 @@ Once the `MultiValueMap` is ready, you can pass it to the `RestTemplate`: [subs="verbatim,quotes"] ---- MultipartBodyBuilder builder = ...; - template.postForObject("http://example.com/upload", builder.build(), Void.class); + template.postForObject("https://example.com/upload", builder.build(), Void.class); ---- If the `MultiValueMap` contains at least one non-String value, which could also be @@ -2717,8 +2717,8 @@ namespace elements you will need to reference the JMS schema: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" **xmlns:jms="http://www.springframework.org/schema/jms"** xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - **http://www.springframework.org/schema/jms http://www.springframework.org/schema/jms/spring-jms.xsd**"> + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + **http://www.springframework.org/schema/jms https://www.springframework.org/schema/jms/spring-jms.xsd**"> @@ -4419,11 +4419,11 @@ you can accept the coupling to both Spring and JMX, then do so. This section contains links to further resources about JMX. -* The http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html[JMX +* The https://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html[JMX homepage] at Oracle -* The http://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html[JMX +* The https://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html[JMX specification] (JSR-000003) -* The http://jcp.org/aboutJava/communityprocess/final/jsr160/index.html[JMX Remote API +* The https://jcp.org/aboutJava/communityprocess/final/jsr160/index.html[JMX Remote API specification] (JSR-000160) * The http://mx4j.sourceforge.net/[MX4J homepage] (an Open Source implementation of various JMX specs) @@ -5910,7 +5910,7 @@ implementations behind the common interfaces abstracts away the differences betw SE 5, Java SE 6 and Java EE environments. Spring also features integration classes for supporting scheduling with the `Timer`, -part of the JDK since 1.3, and the Quartz Scheduler ( http://quartz-scheduler.org[]). +part of the JDK since 1.3, and the Quartz Scheduler ( https://www.quartz-scheduler.org/[]). Both of those schedulers are set up using a `FactoryBean` with optional references to `Timer` or `Trigger` instances, respectively. Furthermore, a convenience class for both the Quartz Scheduler and the `Timer` is available that allows you to invoke a method of @@ -6501,7 +6501,7 @@ As you can see from that configuration, a 'queue-capacity' value has also been p The configuration of the thread pool should also be considered in light of the executor's queue capacity. For the full description of the relationship between pool size and queue capacity, consult the documentation for -http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html[ThreadPoolExecutor]. +https://docs.oracle.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html[ThreadPoolExecutor]. The main idea is that when a task is submitted, the executor will first try to use a free thread if the number of active threads is currently less than the core size. If the core size has been reached, then the task will be added to the queue as long as its @@ -6611,7 +6611,7 @@ provided instead. Here is an example demonstrating these other options. Quartz uses `Trigger`, `Job` and `JobDetail` objects to realize scheduling of all kinds of jobs. For the basic concepts behind Quartz, have a look at -http://quartz-scheduler.org[]. For convenience purposes, Spring offers a couple of +https://www.quartz-scheduler.org/[]. For convenience purposes, Spring offers a couple of classes that simplify the usage of Quartz within Spring-based applications. @@ -6839,7 +6839,7 @@ caching occurs.It as well improves performance but does that by allowing the sam to be read multiple times in a fast fashion. A further explanation of the differences between two can be found -http://en.wikipedia.org/wiki/Cache_(computing)#The_difference_between_buffer_and_cache[here]. +https://en.wikipedia.org/wiki/Cache_(computing)#The_difference_between_buffer_and_cache[here]. **** At its core, the abstraction applies caching to Java methods, reducing thus the number @@ -6874,7 +6874,7 @@ materialized by the `org.springframework.cache.Cache` and There are <> of that abstraction available out of the box: JDK `java.util.concurrent.ConcurrentMap` based caches, -http://ehcache.org/[Ehcache 2.x], Gemfire cache, +https://www.ehcache.org/[Ehcache 2.x], Gemfire cache, https://github.com/ben-manes/caffeine/wiki[Caffeine] and JSR-107 compliant caches (e.g. Ehcache 3.x). See <> for more information on plugging in other cache stores/providers. @@ -7383,8 +7383,8 @@ Alternatively for XML configuration use the `cache:annotation-driven` element: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:cache="http://www.springframework.org/schema/cache" xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd"> + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/cache https://www.springframework.org/schema/cache/spring-cache.xsd"> @@ -7931,7 +7931,7 @@ Clearly there are plenty of caching products out there that can be used as a bac store. To plug them in, one needs to provide a `CacheManager` and `Cache` implementation since unfortunately there is no available standard that we can use instead. This may sound harder than it is since in practice, the classes tend to be simple -http://en.wikipedia.org/wiki/Adapter_pattern[adapter]s that map the caching abstraction +https://en.wikipedia.org/wiki/Adapter_pattern[adapter]s that map the caching abstraction framework on top of the storage API as the `ehcache` classes can show. Most `CacheManager` classes can use the classes in `org.springframework.cache.support` package, such as `AbstractCacheManager` which takes care of the boiler-plate code diff --git a/src/docs/asciidoc/languages/dynamic-languages.adoc b/src/docs/asciidoc/languages/dynamic-languages.adoc index 842834713a7..ebf529caa56 100644 --- a/src/docs/asciidoc/languages/dynamic-languages.adoc +++ b/src/docs/asciidoc/languages/dynamic-languages.adoc @@ -123,8 +123,8 @@ XML Schema-based configuration>>. + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/lang https://www.springframework.org/schema/lang/spring-lang.xsd"> @@ -850,8 +850,8 @@ a <>. + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/lang https://www.springframework.org/schema/lang/spring-lang.xsd"> @@ -892,8 +892,8 @@ are available to you. + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd + __http://www.springframework.org/schema/lang https://www.springframework.org/schema/lang/spring-lang.xsd"__> ---- @@ -907,6 +907,6 @@ are available to you. Find below links to further resources about the various dynamic languages described in this chapter. -* The http://jruby.org/[JRuby] homepage +* The https://www.jruby.org[JRuby] homepage * The http://www.groovy-lang.org/[Groovy] homepage * The http://www.beanshell.org/[BeanShell] homepage diff --git a/src/docs/asciidoc/languages/kotlin.adoc b/src/docs/asciidoc/languages/kotlin.adoc index f4d9667dc2b..de7f9b10641 100644 --- a/src/docs/asciidoc/languages/kotlin.adoc +++ b/src/docs/asciidoc/languages/kotlin.adoc @@ -11,7 +11,7 @@ Kotlin applications almost as if the Spring Framework was a native Kotlin framew The easiest way to learn about Spring + Kotlin is to follow https://spring.io/guides/tutorials/spring-boot-kotlin/[this comprehensive tutorial]. Feel -free to join the #spring channel of http://slack.kotlinlang.org/[Kotlin Slack] or ask a +free to join the #spring channel of https://slack.kotlinlang.org/[Kotlin Slack] or ask a question with `spring` and `kotlin` tags on https://stackoverflow.com/questions/tagged/spring+kotlin[Stackoverflow] if you need support. @@ -91,7 +91,7 @@ One of Kotlin's key features is https://kotlinlang.org/docs/reference/null-safet `NullPointerException` at runtime. This makes applications safer through nullability declarations and expressing "value or no value" semantics without paying the cost of wrappers like `Optional`. (Kotlin allows using functional constructs with nullable values; check out this -http://www.baeldung.com/kotlin-null-safety[comprehensive guide to Kotlin null-safety].) +https://www.baeldung.com/kotlin-null-safety[comprehensive guide to Kotlin null-safety].) Although Java does not allow one to express null-safety in its type-system, Spring Framework now provides <> @@ -330,7 +330,7 @@ for a concrete example. === Kotlin Script templates As of version 4.3, Spring Framework provides a -http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/view/script/ScriptTemplateView.html[ScriptTemplateView] +https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/view/script/ScriptTemplateView.html[ScriptTemplateView] to render templates using script engines that supports https://www.jcp.org/en/jsr/detail?id=223[JSR-223]. Spring Framework 5 goes even further by extending this feature to WebFlux and supporting @@ -403,7 +403,7 @@ Meta-annotations support means that types annotated with `@Configuration`, `@Con `@RestController`, `@Service` or `@Repository` are automatically opened since these annotations are meta-annotated with `@Component`. -http://start.spring.io/#!language=kotlin[start.spring.io] enables it by default, so in practice +https://start.spring.io/#!language=kotlin[start.spring.io] enables it by default, so in practice you will be able to write your Kotlin beans without any additional `open` keyword, like in Java. @@ -710,8 +710,8 @@ MVC and its annotation-based programming model is a perfectly valid and fully su [[kotlin-resources]] == Resources -* http://kotlinlang.org/docs/reference/[Kotlin language reference] -* http://slack.kotlinlang.org/[Kotlin Slack] (with a dedicated #spring channel) +* https://kotlinlang.org/docs/reference/[Kotlin language reference] +* https://slack.kotlinlang.org/[Kotlin Slack] (with a dedicated #spring channel) * https://stackoverflow.com/questions/tagged/spring+kotlin[Stackoverflow with `spring` and `kotlin` tags] * https://try.kotlinlang.org/[Try Kotlin in your browser] * https://blog.jetbrains.com/kotlin/[Kotlin blog] diff --git a/src/docs/asciidoc/overview.adoc b/src/docs/asciidoc/overview.adoc index 11b4f2ae442..38700c9cbb2 100644 --- a/src/docs/asciidoc/overview.adoc +++ b/src/docs/asciidoc/overview.adoc @@ -143,13 +143,13 @@ top-level project page. == Getting Started If you are just getting started with Spring, you may want to begin using the Spring -Framework by creating a http://projects.spring.io/spring-boot/[Spring Boot]-based +Framework by creating a https://projects.spring.io/spring-boot/[Spring Boot]-based application. Spring Boot provides a quick (and opinionated) way to create a production-ready Spring-based application. It is based on the Spring Framework, favors convention over configuration, and is designed to get you up and running as quickly as possible. -You can use http://start.spring.io/[start.spring.io] to generate a basic project or follow +You can use https://start.spring.io/[start.spring.io] to generate a basic project or follow one of the https://spring.io/guides["Getting Started" guides], such as https://spring.io/guides/gs/rest-service/[Getting Started Building a RESTful Web Service]. As well as being easier to digest, these guides are very task focused, and most of them diff --git a/src/docs/asciidoc/testing-webtestclient.adoc b/src/docs/asciidoc/testing-webtestclient.adoc index f8f20cc329c..70210dee670 100644 --- a/src/docs/asciidoc/testing-webtestclient.adoc +++ b/src/docs/asciidoc/testing-webtestclient.adoc @@ -233,7 +233,7 @@ Or if you want to assert there is no response content, use this: When you use `expectBody()` the response is consumed as a `byte[]`. This is useful for raw content assertions. For example you can use -http://jsonassert.skyscreamer.org[JSONAssert] to verify JSON content: +https://jsonassert.skyscreamer.org[JSONAssert] to verify JSON content: [source,java,intent=0] [subs="verbatim,quotes"] diff --git a/src/docs/asciidoc/testing.adoc b/src/docs/asciidoc/testing.adoc index 59346a7dd1d..ebe37c96d8a 100644 --- a/src/docs/asciidoc/testing.adoc +++ b/src/docs/asciidoc/testing.adoc @@ -86,7 +86,7 @@ configuration in testing scenarios without modification. The `org.springframework.mock.web` package contains a comprehensive set of Servlet API mock objects that are useful for testing web contexts, controllers, and filters. These mock objects are targeted at usage with Spring's Web MVC framework and are generally more -convenient to use than dynamic mock objects such as http://www.easymock.org[EasyMock] or +convenient to use than dynamic mock objects such as http://easymock.org/[EasyMock] or alternative Servlet API mock objects such as http://www.mockobjects.com[MockObjects]. [TIP] @@ -2769,7 +2769,7 @@ test suite. This can be achieved by executing all tests as a group within an IDE Similarly, when executing tests with a build framework such as Ant, Maven, or Gradle it is important to make sure that the build framework does not __fork__ between tests. For example, if the -http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html#forkMode[forkMode] +https://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html#forkMode[forkMode] for the Maven Surefire plug-in is set to `always` or `pertest`, the TestContext framework will not be able to cache application contexts between test classes and the build process will run significantly slower as a result. @@ -3069,7 +3069,7 @@ this: + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -4004,7 +4004,7 @@ and TestNG. * Dependency injection for test constructors, test methods, and test lifecycle callback methods - See <> for further details. -* Powerful support for link:http://junit.org/junit5/docs/current/user-guide/#extensions-conditions[_conditional test execution_] +* Powerful support for link:https://junit.org/junit5/docs/current/user-guide/#extensions-conditions[_conditional test execution_] based on SpEL expressions, environment variables, system properties, etc. - See the documentation for `@EnabledIf` and `@DisabledIf` in <> for further details and examples. @@ -4079,7 +4079,7 @@ See the documentation for `@SpringJUnitConfig` and `@SpringJUnitWebConfig` in ===== Dependency Injection with the SpringExtension The `SpringExtension` implements the -link:http://junit.org/junit5/docs/current/user-guide/#extensions-parameter-resolution[`ParameterResolver`] +link:https://junit.org/junit5/docs/current/user-guide/#extensions-parameter-resolution[`ParameterResolver`] extension API from JUnit Jupiter which allows Spring to provide dependency injection for test constructors, test methods, and test lifecycle callback methods. @@ -4729,7 +4729,7 @@ http://htmlunit.sourceforge.net/[HtmlUnit]. This simplifies performing end-to-en when using HTML based views. This integration enables developers to: * Easily test HTML pages using tools such as http://htmlunit.sourceforge.net/[HtmlUnit], -http://seleniumhq.org/projects/webdriver/[WebDriver], & +https://www.seleniumhq.org[WebDriver], & http://www.gebish.org/manual/current/testing.html#spock_junit__testng[Geb] without the need to deploy to a Servlet container * Test JavaScript within pages @@ -4959,7 +4959,7 @@ it to create a message. ---- Finally, we can verify that a new message was created successfully. The following -assertions use the http://joel-costigliola.github.io/assertj/[AssertJ] library. +assertions use the https://joel-costigliola.github.io/assertj/[AssertJ] library. [source,java,indent=0] ---- @@ -5060,7 +5060,7 @@ For additional information on creating a `MockMvc` instance refer to In the previous sections, we have seen how to use `MockMvc` in conjunction with the raw HtmlUnit APIs. In this section, we will leverage additional abstractions within the Selenium -http://docs.seleniumhq.org/projects/webdriver/[WebDriver] to make things even easier. +https://docs.seleniumhq.org/projects/webdriver/[WebDriver] to make things even easier. [[spring-mvc-test-server-htmlunit-webdriver-why]] ====== Why WebDriver and MockMvc? @@ -5071,7 +5071,7 @@ To better understand, let's explore an example. [NOTE] ==== -Despite being a part of http://docs.seleniumhq.org/[Selenium], WebDriver does not require +Despite being a part of https://docs.seleniumhq.org/[Selenium], WebDriver does not require a Selenium Server to run your tests. ==== @@ -5726,21 +5726,21 @@ PetClinic application for an example. == Further Resources Consult the following resources for more information about testing: -* http://www.junit.org/[JUnit]: "__A programmer-oriented testing framework for Java__". +* https://www.junit.org/[JUnit]: "__A programmer-oriented testing framework for Java__". Used by the Spring Framework in its test suite. * http://testng.org/[TestNG]: A testing framework inspired by JUnit with added support for annotations, test groups, data-driven testing, distributed testing, etc. -* http://joel-costigliola.github.io/assertj/[AssertJ]: "__Fluent assertions for Java__" +* https://joel-costigliola.github.io/assertj/[AssertJ]: "__Fluent assertions for Java__" including support for Java 8 lambdas, streams, etc. -* http://en.wikipedia.org/wiki/Mock_Object[Mock Objects]: Article in Wikipedia. +* https://en.wikipedia.org/wiki/Mock_Object[Mock Objects]: Article in Wikipedia. * http://www.mockobjects.com/[MockObjects.com]: Web site dedicated to mock objects, a technique for improving the design of code within test-driven development. -* http://mockito.org/[Mockito]: Java mock library based on the +* https://mockito.github.io[Mockito]: Java mock library based on the http://xunitpatterns.com/Test%20Spy.html[test spy] pattern. -* http://www.easymock.org/[EasyMock]: Java library "__that provides Mock Objects for +* http://easymock.org/[EasyMock]: Java library "__that provides Mock Objects for interfaces (and objects through the class extension) by generating them on the fly using Java's proxy mechanism.__" Used by the Spring Framework in its test suite. -* http://www.jmock.org/[JMock]: Library that supports test-driven development of Java +* http://jmock.org/[JMock]: Library that supports test-driven development of Java code with mock objects. * http://dbunit.sourceforge.net/[DbUnit]: JUnit extension (also usable with Ant and Maven) targeted for database-driven projects that, among other things, puts your diff --git a/src/docs/asciidoc/tocbot-3.0.2/tocbot.js b/src/docs/asciidoc/tocbot-3.0.2/tocbot.js index 31e9e36f21f..21b8d636ac3 100644 --- a/src/docs/asciidoc/tocbot-3.0.2/tocbot.js +++ b/src/docs/asciidoc/tocbot-3.0.2/tocbot.js @@ -86,7 +86,7 @@ eval("var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\tr \**********************************/ /***/ (function(module, exports, __webpack_require__) { -eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * Zenscroll 4.0.0\n * https://github.com/zengabor/zenscroll/\n *\n * Copyright 2015–2017 Gabor Lenard\n *\n * This is free and unencumbered software released into the public domain.\n * \n * Anyone is free to copy, modify, publish, use, compile, sell, or\n * distribute this software, either in source code form or as a compiled\n * binary, for any purpose, commercial or non-commercial, and by any\n * means.\n * \n * In jurisdictions that recognize copyright laws, the author or authors\n * of this software dedicate any and all copyright interest in the\n * software to the public domain. We make this dedication for the benefit\n * of the public at large and to the detriment of our heirs and\n * successors. We intend this dedication to be an overt act of\n * relinquishment in perpetuity of all present and future rights to this\n * software under copyright law.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n * \n * For more information, please refer to \n * \n */\n\n/*jshint devel:true, asi:true */\n\n/*global define, module */\n\n\n(function (root, factory) {\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory()),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory()\n\t} else {\n\t\t(function install() {\n\t\t\t// To make sure Zenscroll can be referenced from the header, before `body` is available\n\t\t\tif (document && document.body) {\n\t\t\t\troot.zenscroll = factory()\n\t\t\t} else {\n\t\t\t\t// retry 9ms later\n\t\t\t\tsetTimeout(install, 9)\n\t\t\t}\n\t\t})()\n\t}\n}(this, function () {\n\t\"use strict\"\n\n\n\t// Detect if the browser already supports native smooth scrolling (e.g., Firefox 36+ and Chrome 49+) and it is enabled:\n\tvar isNativeSmoothScrollEnabledOn = function (elem) {\n\t\treturn (\"getComputedStyle\" in window) &&\n\t\t\twindow.getComputedStyle(elem)[\"scroll-behavior\"] === \"smooth\"\n\t}\n\n\n\t// Exit if it’s not a browser environment:\n\tif (typeof window === \"undefined\" || !(\"document\" in window)) {\n\t\treturn {}\n\t}\n\n\n\tvar makeScroller = function (container, defaultDuration, edgeOffset) {\n\n\t\t// Use defaults if not provided\n\t\tdefaultDuration = defaultDuration || 999 //ms\n\t\tif (!edgeOffset && edgeOffset !== 0) {\n\t\t\t// When scrolling, this amount of distance is kept from the edges of the container:\n\t\t\tedgeOffset = 9 //px\n\t\t}\n\n\t\t// Handling the life-cycle of the scroller\n\t\tvar scrollTimeoutId\n\t\tvar setScrollTimeoutId = function (newValue) {\n\t\t\tscrollTimeoutId = newValue\n\t\t}\n\n\t\t/**\n\t\t * Stop the current smooth scroll operation immediately\n\t\t */\n\t\tvar stopScroll = function () {\n\t\t\tclearTimeout(scrollTimeoutId)\n\t\t\tsetScrollTimeoutId(0)\n\t\t}\n\n\t\tvar getTopWithEdgeOffset = function (elem) {\n\t\t\treturn Math.max(0, container.getTopOf(elem) - edgeOffset)\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to a specific vertical position in the document.\n\t\t *\n\t\t * @param {targetY} The vertical position within the document.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * If not provided the default duration is used.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToY = function (targetY, duration, onDone) {\n\t\t\tstopScroll()\n\t\t\tif (duration === 0 || (duration && duration < 0) || isNativeSmoothScrollEnabledOn(container.body)) {\n\t\t\t\tcontainer.toY(targetY)\n\t\t\t\tif (onDone) {\n\t\t\t\t\tonDone()\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar startY = container.getY()\n\t\t\t\tvar distance = Math.max(0, targetY) - startY\n\t\t\t\tvar startTime = new Date().getTime()\n\t\t\t\tduration = duration || Math.min(Math.abs(distance), defaultDuration);\n\t\t\t\t(function loopScroll() {\n\t\t\t\t\tsetScrollTimeoutId(setTimeout(function () {\n\t\t\t\t\t\t// Calculate percentage:\n\t\t\t\t\t\tvar p = Math.min(1, (new Date().getTime() - startTime) / duration)\n\t\t\t\t\t\t// Calculate the absolute vertical position:\n\t\t\t\t\t\tvar y = Math.max(0, Math.floor(startY + distance*(p < 0.5 ? 2*p*p : p*(4 - p*2)-1)))\n\t\t\t\t\t\tcontainer.toY(y)\n\t\t\t\t\t\tif (p < 1 && (container.getHeight() + y) < container.body.scrollHeight) {\n\t\t\t\t\t\t\tloopScroll()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout(stopScroll, 99) // with cooldown time\n\t\t\t\t\t\t\tif (onDone) {\n\t\t\t\t\t\t\t\tonDone()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9))\n\t\t\t\t})()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to the top of a specific element.\n\t\t *\n\t\t * @param {elem} The element to scroll to.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToElem = function (elem, duration, onDone) {\n\t\t\tscrollToY(getTopWithEdgeOffset(elem), duration, onDone)\n\t\t}\n\n\t\t/**\n\t\t * Scrolls an element into view if necessary.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollIntoView = function (elem, duration, onDone) {\n\t\t\tvar elemHeight = elem.getBoundingClientRect().height\n\t\t\tvar elemBottom = container.getTopOf(elem) + elemHeight\n\t\t\tvar containerHeight = container.getHeight()\n\t\t\tvar y = container.getY()\n\t\t\tvar containerBottom = y + containerHeight\n\t\t\tif (getTopWithEdgeOffset(elem) < y || (elemHeight + edgeOffset) > containerHeight) {\n\t\t\t\t// Element is clipped at top or is higher than screen.\n\t\t\t\tscrollToElem(elem, duration, onDone)\n\t\t\t} else if ((elemBottom + edgeOffset) > containerBottom) {\n\t\t\t\t// Element is clipped at the bottom.\n\t\t\t\tscrollToY(elemBottom - containerHeight + edgeOffset, duration, onDone)\n\t\t\t} else if (onDone) {\n\t\t\t\tonDone()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to the center of an element.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {offset} Optionally the offset of the top of the element from the center of the screen.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToCenterOf = function (elem, duration, offset, onDone) {\n\t\t\tscrollToY(Math.max(0, container.getTopOf(elem) - container.getHeight()/2 + (offset || elem.getBoundingClientRect().height/2)), duration, onDone)\n\t\t}\n\n\t\t/**\n\t\t * Changes default settings for this scroller.\n\t\t *\n\t\t * @param {newDefaultDuration} Optionally a new value for default duration, used for each scroll method by default.\n\t\t * Ignored if null or undefined.\n\t\t * @param {newEdgeOffset} Optionally a new value for the edge offset, used by each scroll method by default. Ignored if null or undefined.\n\t\t * @returns An object with the current values.\n\t\t */\n\t\tvar setup = function (newDefaultDuration, newEdgeOffset) {\n\t\t\tif (newDefaultDuration === 0 || newDefaultDuration) {\n\t\t\t\tdefaultDuration = newDefaultDuration\n\t\t\t}\n\t\t\tif (newEdgeOffset === 0 || newEdgeOffset) {\n\t\t\t\tedgeOffset = newEdgeOffset\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tdefaultDuration: defaultDuration,\n\t\t\t\tedgeOffset: edgeOffset\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsetup: setup,\n\t\t\tto: scrollToElem,\n\t\t\ttoY: scrollToY,\n\t\t\tintoView: scrollIntoView,\n\t\t\tcenter: scrollToCenterOf,\n\t\t\tstop: stopScroll,\n\t\t\tmoving: function () { return !!scrollTimeoutId },\n\t\t\tgetY: container.getY,\n\t\t\tgetTopOf: container.getTopOf\n\t\t}\n\n\t}\n\n\n\tvar docElem = document.documentElement\n\tvar getDocY = function () { return window.scrollY || docElem.scrollTop }\n\n\t// Create a scroller for the document:\n\tvar zenscroll = makeScroller({\n\t\tbody: document.scrollingElement || document.body,\n\t\ttoY: function (y) { window.scrollTo(0, y) },\n\t\tgetY: getDocY,\n\t\tgetHeight: function () { return window.innerHeight || docElem.clientHeight },\n\t\tgetTopOf: function (elem) { return elem.getBoundingClientRect().top + getDocY() - docElem.offsetTop }\n\t})\n\n\n\t/**\n\t * Creates a scroller from the provided container element (e.g., a DIV)\n\t *\n\t * @param {scrollContainer} The vertical position within the document.\n\t * @param {defaultDuration} Optionally a value for default duration, used for each scroll method by default.\n\t * Ignored if 0 or null or undefined.\n\t * @param {edgeOffset} Optionally a value for the edge offset, used by each scroll method by default. \n\t * Ignored if null or undefined.\n\t * @returns A scroller object, similar to `zenscroll` but controlling the provided element.\n\t */\n\tzenscroll.createScroller = function (scrollContainer, defaultDuration, edgeOffset) {\n\t\treturn makeScroller({\n\t\t\tbody: scrollContainer,\n\t\t\ttoY: function (y) { scrollContainer.scrollTop = y },\n\t\t\tgetY: function () { return scrollContainer.scrollTop },\n\t\t\tgetHeight: function () { return Math.min(scrollContainer.clientHeight, window.innerHeight || docElem.clientHeight) },\n\t\t\tgetTopOf: function (elem) { return elem.offsetTop }\n\t\t}, defaultDuration, edgeOffset)\n\t}\n\n\n\t// Automatic link-smoothing on achors\n\t// Exclude IE8- or when native is enabled or Zenscroll auto- is disabled\n\tif (\"addEventListener\" in window && !window.noZensmooth && !isNativeSmoothScrollEnabledOn(document.body)) {\n\n\n\t\tvar isScrollRestorationSupported = \"scrollRestoration\" in history\n\n\t\t// On first load & refresh make sure the browser restores the position first\n\t\tif (isScrollRestorationSupported) {\n\t\t\thistory.scrollRestoration = \"auto\"\n\t\t}\n\n\t\twindow.addEventListener(\"load\", function () {\n\n\t\t\tif (isScrollRestorationSupported) {\n\t\t\t\t// Set it to manual\n\t\t\t\tsetTimeout(function () { history.scrollRestoration = \"manual\" }, 9)\n\t\t\t\twindow.addEventListener(\"popstate\", function (event) {\n\t\t\t\t\tif (event.state && \"zenscrollY\" in event.state) {\n\t\t\t\t\t\tzenscroll.toY(event.state.zenscrollY)\n\t\t\t\t\t}\n\t\t\t\t}, false)\n\t\t\t}\n\n\t\t\t// Add edge offset on first load if necessary\n\t\t\t// This may not work on IE (or older computer?) as it requires more timeout, around 100 ms\n\t\t\tif (window.location.hash) {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t// Adjustment is only needed if there is an edge offset:\n\t\t\t\t\tvar edgeOffset = zenscroll.setup().edgeOffset\n\t\t\t\t\tif (edgeOffset) {\n\t\t\t\t\t\tvar targetElem = document.getElementById(window.location.href.split(\"#\")[1])\n\t\t\t\t\t\tif (targetElem) {\n\t\t\t\t\t\t\tvar targetY = Math.max(0, zenscroll.getTopOf(targetElem) - edgeOffset)\n\t\t\t\t\t\t\tvar diff = zenscroll.getY() - targetY\n\t\t\t\t\t\t\t// Only do the adjustment if the browser is very close to the element:\n\t\t\t\t\t\t\tif (0 <= diff && diff < 9 ) {\n\t\t\t\t\t\t\t\twindow.scrollTo(0, targetY)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 9)\n\t\t\t}\n\n\t\t}, false)\n\n\t\t// Handling clicks on anchors\n\t\tvar RE_noZensmooth = new RegExp(\"(^|\\\\s)noZensmooth(\\\\s|$)\")\n\t\twindow.addEventListener(\"click\", function (event) {\n\t\t\tvar anchor = event.target\n\t\t\twhile (anchor && anchor.tagName !== \"A\") {\n\t\t\t\tanchor = anchor.parentNode\n\t\t\t}\n\t\t\t// Let the browser handle the click if it wasn't with the primary button, or with some modifier keys:\n\t\t\tif (!anchor || event.which !== 1 || event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Save the current scrolling position so it can be used for scroll restoration:\n\t\t\tif (isScrollRestorationSupported) {\n\t\t\t\ttry {\n\t\t\t\t\thistory.replaceState({ zenscrollY: zenscroll.getY() }, \"\")\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Avoid the Chrome Security exception on file protocol, e.g., file://index.html\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Find the referenced ID:\n\t\t\tvar href = anchor.getAttribute(\"href\") || \"\"\n\t\t\tif (href.indexOf(\"#\") === 0 && !RE_noZensmooth.test(anchor.className)) {\n\t\t\t\tvar targetY = 0\n\t\t\t\tvar targetElem = document.getElementById(href.substring(1))\n\t\t\t\tif (href !== \"#\") {\n\t\t\t\t\tif (!targetElem) {\n\t\t\t\t\t\t// Let the browser handle the click if the target ID is not found.\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\ttargetY = zenscroll.getTopOf(targetElem)\n\t\t\t\t}\n\t\t\t\tevent.preventDefault()\n\t\t\t\t// By default trigger the browser's `hashchange` event...\n\t\t\t\tvar onDone = function () { window.location = href }\n\t\t\t\t// ...unless there is an edge offset specified\n\t\t\t\tvar edgeOffset = zenscroll.setup().edgeOffset\n\t\t\t\tif (edgeOffset) {\n\t\t\t\t\ttargetY = Math.max(0, targetY - edgeOffset)\n\t\t\t\t\tonDone = function () { history.pushState(null, \"\", href) }\n\t\t\t\t}\n\t\t\t\tzenscroll.toY(targetY, null, onDone)\n\t\t\t}\n\t\t}, false)\n\n\t}\n\n\n\treturn zenscroll\n\n\n}));\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL34vemVuc2Nyb2xsL3plbnNjcm9sbC5qcz8yNzMyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogWmVuc2Nyb2xsIDQuMC4wXG4gKiBodHRwczovL2dpdGh1Yi5jb20vemVuZ2Fib3IvemVuc2Nyb2xsL1xuICpcbiAqIENvcHlyaWdodCAyMDE14oCTMjAxNyBHYWJvciBMZW5hcmRcbiAqXG4gKiBUaGlzIGlzIGZyZWUgYW5kIHVuZW5jdW1iZXJlZCBzb2Z0d2FyZSByZWxlYXNlZCBpbnRvIHRoZSBwdWJsaWMgZG9tYWluLlxuICogXG4gKiBBbnlvbmUgaXMgZnJlZSB0byBjb3B5LCBtb2RpZnksIHB1Ymxpc2gsIHVzZSwgY29tcGlsZSwgc2VsbCwgb3JcbiAqIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSwgZWl0aGVyIGluIHNvdXJjZSBjb2RlIGZvcm0gb3IgYXMgYSBjb21waWxlZFxuICogYmluYXJ5LCBmb3IgYW55IHB1cnBvc2UsIGNvbW1lcmNpYWwgb3Igbm9uLWNvbW1lcmNpYWwsIGFuZCBieSBhbnlcbiAqIG1lYW5zLlxuICogXG4gKiBJbiBqdXJpc2RpY3Rpb25zIHRoYXQgcmVjb2duaXplIGNvcHlyaWdodCBsYXdzLCB0aGUgYXV0aG9yIG9yIGF1dGhvcnNcbiAqIG9mIHRoaXMgc29mdHdhcmUgZGVkaWNhdGUgYW55IGFuZCBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZVxuICogc29mdHdhcmUgdG8gdGhlIHB1YmxpYyBkb21haW4uIFdlIG1ha2UgdGhpcyBkZWRpY2F0aW9uIGZvciB0aGUgYmVuZWZpdFxuICogb2YgdGhlIHB1YmxpYyBhdCBsYXJnZSBhbmQgdG8gdGhlIGRldHJpbWVudCBvZiBvdXIgaGVpcnMgYW5kXG4gKiBzdWNjZXNzb3JzLiBXZSBpbnRlbmQgdGhpcyBkZWRpY2F0aW9uIHRvIGJlIGFuIG92ZXJ0IGFjdCBvZlxuICogcmVsaW5xdWlzaG1lbnQgaW4gcGVycGV0dWl0eSBvZiBhbGwgcHJlc2VudCBhbmQgZnV0dXJlIHJpZ2h0cyB0byB0aGlzXG4gKiBzb2Z0d2FyZSB1bmRlciBjb3B5cmlnaHQgbGF3LlxuICogXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuXG4gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUlxuICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsXG4gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1JcbiAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqIFxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byA8aHR0cDovL3VubGljZW5zZS5vcmc+XG4gKiBcbiAqL1xuXG4vKmpzaGludCBkZXZlbDp0cnVlLCBhc2k6dHJ1ZSAqL1xuXG4vKmdsb2JhbCBkZWZpbmUsIG1vZHVsZSAqL1xuXG5cbihmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkoKSlcblx0fSBlbHNlIGlmICh0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KClcblx0fSBlbHNlIHtcblx0XHQoZnVuY3Rpb24gaW5zdGFsbCgpIHtcblx0XHRcdC8vIFRvIG1ha2Ugc3VyZSBaZW5zY3JvbGwgY2FuIGJlIHJlZmVyZW5jZWQgZnJvbSB0aGUgaGVhZGVyLCBiZWZvcmUgYGJvZHlgIGlzIGF2YWlsYWJsZVxuXHRcdFx0aWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LmJvZHkpIHtcblx0XHRcdFx0cm9vdC56ZW5zY3JvbGwgPSBmYWN0b3J5KClcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIHJldHJ5IDltcyBsYXRlclxuXHRcdFx0XHRzZXRUaW1lb3V0KGluc3RhbGwsIDkpXG5cdFx0XHR9XG5cdFx0fSkoKVxuXHR9XG59KHRoaXMsIGZ1bmN0aW9uICgpIHtcblx0XCJ1c2Ugc3RyaWN0XCJcblxuXG5cdC8vIERldGVjdCBpZiB0aGUgYnJvd3NlciBhbHJlYWR5IHN1cHBvcnRzIG5hdGl2ZSBzbW9vdGggc2Nyb2xsaW5nIChlLmcuLCBGaXJlZm94IDM2KyBhbmQgQ2hyb21lIDQ5KykgYW5kIGl0IGlzIGVuYWJsZWQ6XG5cdHZhciBpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbiA9IGZ1bmN0aW9uIChlbGVtKSB7XG5cdFx0cmV0dXJuIChcImdldENvbXB1dGVkU3R5bGVcIiBpbiB3aW5kb3cpICYmXG5cdFx0XHR3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKVtcInNjcm9sbC1iZWhhdmlvclwiXSA9PT0gXCJzbW9vdGhcIlxuXHR9XG5cblxuXHQvLyBFeGl0IGlmIGl04oCZcyBub3QgYSBicm93c2VyIGVudmlyb25tZW50OlxuXHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhKFwiZG9jdW1lbnRcIiBpbiB3aW5kb3cpKSB7XG5cdFx0cmV0dXJuIHt9XG5cdH1cblxuXG5cdHZhciBtYWtlU2Nyb2xsZXIgPSBmdW5jdGlvbiAoY29udGFpbmVyLCBkZWZhdWx0RHVyYXRpb24sIGVkZ2VPZmZzZXQpIHtcblxuXHRcdC8vIFVzZSBkZWZhdWx0cyBpZiBub3QgcHJvdmlkZWRcblx0XHRkZWZhdWx0RHVyYXRpb24gPSBkZWZhdWx0RHVyYXRpb24gfHwgOTk5IC8vbXNcblx0XHRpZiAoIWVkZ2VPZmZzZXQgJiYgZWRnZU9mZnNldCAhPT0gMCkge1xuXHRcdFx0Ly8gV2hlbiBzY3JvbGxpbmcsIHRoaXMgYW1vdW50IG9mIGRpc3RhbmNlIGlzIGtlcHQgZnJvbSB0aGUgZWRnZXMgb2YgdGhlIGNvbnRhaW5lcjpcblx0XHRcdGVkZ2VPZmZzZXQgPSA5IC8vcHhcblx0XHR9XG5cblx0XHQvLyBIYW5kbGluZyB0aGUgbGlmZS1jeWNsZSBvZiB0aGUgc2Nyb2xsZXJcblx0XHR2YXIgc2Nyb2xsVGltZW91dElkXG5cdFx0dmFyIHNldFNjcm9sbFRpbWVvdXRJZCA9IGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuXHRcdFx0c2Nyb2xsVGltZW91dElkID0gbmV3VmFsdWVcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTdG9wIHRoZSBjdXJyZW50IHNtb290aCBzY3JvbGwgb3BlcmF0aW9uIGltbWVkaWF0ZWx5XG5cdFx0ICovXG5cdFx0dmFyIHN0b3BTY3JvbGwgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dElkKVxuXHRcdFx0c2V0U2Nyb2xsVGltZW91dElkKDApXG5cdFx0fVxuXG5cdFx0dmFyIGdldFRvcFdpdGhFZGdlT2Zmc2V0ID0gZnVuY3Rpb24gKGVsZW0pIHtcblx0XHRcdHJldHVybiBNYXRoLm1heCgwLCBjb250YWluZXIuZ2V0VG9wT2YoZWxlbSkgLSBlZGdlT2Zmc2V0KVxuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIFNjcm9sbHMgdG8gYSBzcGVjaWZpYyB2ZXJ0aWNhbCBwb3NpdGlvbiBpbiB0aGUgZG9jdW1lbnQuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge3RhcmdldFl9IFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiB3aXRoaW4gdGhlIGRvY3VtZW50LlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqICAgICAgICBJZiBub3QgcHJvdmlkZWQgdGhlIGRlZmF1bHQgZHVyYXRpb24gaXMgdXNlZC5cblx0XHQgKiBAcGFyYW0ge29uRG9uZX0gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBvbmNlIHRoZSBzY3JvbGwgZmluaXNoZWQuXG5cdFx0ICovXG5cdFx0dmFyIHNjcm9sbFRvWSA9IGZ1bmN0aW9uICh0YXJnZXRZLCBkdXJhdGlvbiwgb25Eb25lKSB7XG5cdFx0XHRzdG9wU2Nyb2xsKClcblx0XHRcdGlmIChkdXJhdGlvbiA9PT0gMCB8fCAoZHVyYXRpb24gJiYgZHVyYXRpb24gPCAwKSB8fCBpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbihjb250YWluZXIuYm9keSkpIHtcblx0XHRcdFx0Y29udGFpbmVyLnRvWSh0YXJnZXRZKVxuXHRcdFx0XHRpZiAob25Eb25lKSB7XG5cdFx0XHRcdFx0b25Eb25lKClcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFyIHN0YXJ0WSA9IGNvbnRhaW5lci5nZXRZKClcblx0XHRcdFx0dmFyIGRpc3RhbmNlID0gTWF0aC5tYXgoMCwgdGFyZ2V0WSkgLSBzdGFydFlcblx0XHRcdFx0dmFyIHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXG5cdFx0XHRcdGR1cmF0aW9uID0gZHVyYXRpb24gfHwgTWF0aC5taW4oTWF0aC5hYnMoZGlzdGFuY2UpLCBkZWZhdWx0RHVyYXRpb24pO1xuXHRcdFx0XHQoZnVuY3Rpb24gbG9vcFNjcm9sbCgpIHtcblx0XHRcdFx0XHRzZXRTY3JvbGxUaW1lb3V0SWQoc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHQvLyBDYWxjdWxhdGUgcGVyY2VudGFnZTpcblx0XHRcdFx0XHRcdHZhciBwID0gTWF0aC5taW4oMSwgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnRUaW1lKSAvIGR1cmF0aW9uKVxuXHRcdFx0XHRcdFx0Ly8gQ2FsY3VsYXRlIHRoZSBhYnNvbHV0ZSB2ZXJ0aWNhbCBwb3NpdGlvbjpcblx0XHRcdFx0XHRcdHZhciB5ID0gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcihzdGFydFkgKyBkaXN0YW5jZSoocCA8IDAuNSA/IDIqcCpwIDogcCooNCAtIHAqMiktMSkpKVxuXHRcdFx0XHRcdFx0Y29udGFpbmVyLnRvWSh5KVxuXHRcdFx0XHRcdFx0aWYgKHAgPCAxICYmIChjb250YWluZXIuZ2V0SGVpZ2h0KCkgKyB5KSA8IGNvbnRhaW5lci5ib2R5LnNjcm9sbEhlaWdodCkge1xuXHRcdFx0XHRcdFx0XHRsb29wU2Nyb2xsKClcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoc3RvcFNjcm9sbCwgOTkpIC8vIHdpdGggY29vbGRvd24gdGltZVxuXHRcdFx0XHRcdFx0XHRpZiAob25Eb25lKSB7XG5cdFx0XHRcdFx0XHRcdFx0b25Eb25lKClcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0sIDkpKVxuXHRcdFx0XHR9KSgpXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0ICogU2Nyb2xscyB0byB0aGUgdG9wIG9mIGEgc3BlY2lmaWMgZWxlbWVudC5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7ZWxlbX0gVGhlIGVsZW1lbnQgdG8gc2Nyb2xsIHRvLlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqIEBwYXJhbSB7b25Eb25lfSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIG9uY2UgdGhlIHNjcm9sbCBmaW5pc2hlZC5cblx0XHQgKi9cblx0XHR2YXIgc2Nyb2xsVG9FbGVtID0gZnVuY3Rpb24gKGVsZW0sIGR1cmF0aW9uLCBvbkRvbmUpIHtcblx0XHRcdHNjcm9sbFRvWShnZXRUb3BXaXRoRWRnZU9mZnNldChlbGVtKSwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTY3JvbGxzIGFuIGVsZW1lbnQgaW50byB2aWV3IGlmIG5lY2Vzc2FyeS5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7ZWxlbX0gVGhlIGVsZW1lbnQuXG5cdFx0ICogQHBhcmFtIHtkdXJhdGlvbn0gT3B0aW9uYWxseSB0aGUgZHVyYXRpb24gb2YgdGhlIHNjcm9sbCBvcGVyYXRpb24uXG5cdFx0ICogQHBhcmFtIHtvbkRvbmV9IEFuIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgb25jZSB0aGUgc2Nyb2xsIGZpbmlzaGVkLlxuXHRcdCAqL1xuXHRcdHZhciBzY3JvbGxJbnRvVmlldyA9IGZ1bmN0aW9uIChlbGVtLCBkdXJhdGlvbiwgb25Eb25lKSB7XG5cdFx0XHR2YXIgZWxlbUhlaWdodCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0XG5cdFx0XHR2YXIgZWxlbUJvdHRvbSA9IGNvbnRhaW5lci5nZXRUb3BPZihlbGVtKSArIGVsZW1IZWlnaHRcblx0XHRcdHZhciBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXIuZ2V0SGVpZ2h0KClcblx0XHRcdHZhciB5ID0gY29udGFpbmVyLmdldFkoKVxuXHRcdFx0dmFyIGNvbnRhaW5lckJvdHRvbSA9IHkgKyBjb250YWluZXJIZWlnaHRcblx0XHRcdGlmIChnZXRUb3BXaXRoRWRnZU9mZnNldChlbGVtKSA8IHkgfHwgKGVsZW1IZWlnaHQgKyBlZGdlT2Zmc2V0KSA+IGNvbnRhaW5lckhlaWdodCkge1xuXHRcdFx0XHQvLyBFbGVtZW50IGlzIGNsaXBwZWQgYXQgdG9wIG9yIGlzIGhpZ2hlciB0aGFuIHNjcmVlbi5cblx0XHRcdFx0c2Nyb2xsVG9FbGVtKGVsZW0sIGR1cmF0aW9uLCBvbkRvbmUpXG5cdFx0XHR9IGVsc2UgaWYgKChlbGVtQm90dG9tICsgZWRnZU9mZnNldCkgPiBjb250YWluZXJCb3R0b20pIHtcblx0XHRcdFx0Ly8gRWxlbWVudCBpcyBjbGlwcGVkIGF0IHRoZSBib3R0b20uXG5cdFx0XHRcdHNjcm9sbFRvWShlbGVtQm90dG9tIC0gY29udGFpbmVySGVpZ2h0ICsgZWRnZU9mZnNldCwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHRcdH0gZWxzZSBpZiAob25Eb25lKSB7XG5cdFx0XHRcdG9uRG9uZSgpXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0ICogU2Nyb2xscyB0byB0aGUgY2VudGVyIG9mIGFuIGVsZW1lbnQuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge2VsZW19IFRoZSBlbGVtZW50LlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqIEBwYXJhbSB7b2Zmc2V0fSBPcHRpb25hbGx5IHRoZSBvZmZzZXQgb2YgdGhlIHRvcCBvZiB0aGUgZWxlbWVudCBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIHNjcmVlbi5cblx0XHQgKiBAcGFyYW0ge29uRG9uZX0gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBvbmNlIHRoZSBzY3JvbGwgZmluaXNoZWQuXG5cdFx0ICovXG5cdFx0dmFyIHNjcm9sbFRvQ2VudGVyT2YgPSBmdW5jdGlvbiAoZWxlbSwgZHVyYXRpb24sIG9mZnNldCwgb25Eb25lKSB7XG5cdFx0XHRzY3JvbGxUb1koTWF0aC5tYXgoMCwgY29udGFpbmVyLmdldFRvcE9mKGVsZW0pIC0gY29udGFpbmVyLmdldEhlaWdodCgpLzIgKyAob2Zmc2V0IHx8IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LzIpKSwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBDaGFuZ2VzIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHRoaXMgc2Nyb2xsZXIuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge25ld0RlZmF1bHREdXJhdGlvbn0gT3B0aW9uYWxseSBhIG5ldyB2YWx1ZSBmb3IgZGVmYXVsdCBkdXJhdGlvbiwgdXNlZCBmb3IgZWFjaCBzY3JvbGwgbWV0aG9kIGJ5IGRlZmF1bHQuXG5cdFx0ICogICAgICAgIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdFx0ICogQHBhcmFtIHtuZXdFZGdlT2Zmc2V0fSBPcHRpb25hbGx5IGEgbmV3IHZhbHVlIGZvciB0aGUgZWRnZSBvZmZzZXQsIHVzZWQgYnkgZWFjaCBzY3JvbGwgbWV0aG9kIGJ5IGRlZmF1bHQuIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdFx0ICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggdGhlIGN1cnJlbnQgdmFsdWVzLlxuXHRcdCAqL1xuXHRcdHZhciBzZXR1cCA9IGZ1bmN0aW9uIChuZXdEZWZhdWx0RHVyYXRpb24sIG5ld0VkZ2VPZmZzZXQpIHtcblx0XHRcdGlmIChuZXdEZWZhdWx0RHVyYXRpb24gPT09IDAgfHwgbmV3RGVmYXVsdER1cmF0aW9uKSB7XG5cdFx0XHRcdGRlZmF1bHREdXJhdGlvbiA9IG5ld0RlZmF1bHREdXJhdGlvblxuXHRcdFx0fVxuXHRcdFx0aWYgKG5ld0VkZ2VPZmZzZXQgPT09IDAgfHwgbmV3RWRnZU9mZnNldCkge1xuXHRcdFx0XHRlZGdlT2Zmc2V0ID0gbmV3RWRnZU9mZnNldFxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0ZGVmYXVsdER1cmF0aW9uOiBkZWZhdWx0RHVyYXRpb24sXG5cdFx0XHRcdGVkZ2VPZmZzZXQ6IGVkZ2VPZmZzZXRcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0c2V0dXA6IHNldHVwLFxuXHRcdFx0dG86IHNjcm9sbFRvRWxlbSxcblx0XHRcdHRvWTogc2Nyb2xsVG9ZLFxuXHRcdFx0aW50b1ZpZXc6IHNjcm9sbEludG9WaWV3LFxuXHRcdFx0Y2VudGVyOiBzY3JvbGxUb0NlbnRlck9mLFxuXHRcdFx0c3RvcDogc3RvcFNjcm9sbCxcblx0XHRcdG1vdmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gISFzY3JvbGxUaW1lb3V0SWQgfSxcblx0XHRcdGdldFk6IGNvbnRhaW5lci5nZXRZLFxuXHRcdFx0Z2V0VG9wT2Y6IGNvbnRhaW5lci5nZXRUb3BPZlxuXHRcdH1cblxuXHR9XG5cblxuXHR2YXIgZG9jRWxlbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuXHR2YXIgZ2V0RG9jWSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHdpbmRvdy5zY3JvbGxZIHx8IGRvY0VsZW0uc2Nyb2xsVG9wIH1cblxuXHQvLyBDcmVhdGUgYSBzY3JvbGxlciBmb3IgdGhlIGRvY3VtZW50OlxuXHR2YXIgemVuc2Nyb2xsID0gbWFrZVNjcm9sbGVyKHtcblx0XHRib2R5OiBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50IHx8IGRvY3VtZW50LmJvZHksXG5cdFx0dG9ZOiBmdW5jdGlvbiAoeSkgeyB3aW5kb3cuc2Nyb2xsVG8oMCwgeSkgfSxcblx0XHRnZXRZOiBnZXREb2NZLFxuXHRcdGdldEhlaWdodDogZnVuY3Rpb24gKCkgeyByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY0VsZW0uY2xpZW50SGVpZ2h0IH0sXG5cdFx0Z2V0VG9wT2Y6IGZ1bmN0aW9uIChlbGVtKSB7IHJldHVybiBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIGdldERvY1koKSAtIGRvY0VsZW0ub2Zmc2V0VG9wIH1cblx0fSlcblxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgc2Nyb2xsZXIgZnJvbSB0aGUgcHJvdmlkZWQgY29udGFpbmVyIGVsZW1lbnQgKGUuZy4sIGEgRElWKVxuXHQgKlxuXHQgKiBAcGFyYW0ge3Njcm9sbENvbnRhaW5lcn0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIHdpdGhpbiB0aGUgZG9jdW1lbnQuXG5cdCAqIEBwYXJhbSB7ZGVmYXVsdER1cmF0aW9ufSBPcHRpb25hbGx5IGEgdmFsdWUgZm9yIGRlZmF1bHQgZHVyYXRpb24sIHVzZWQgZm9yIGVhY2ggc2Nyb2xsIG1ldGhvZCBieSBkZWZhdWx0LlxuXHQgKiAgICAgICAgSWdub3JlZCBpZiAwIG9yIG51bGwgb3IgdW5kZWZpbmVkLlxuXHQgKiBAcGFyYW0ge2VkZ2VPZmZzZXR9IE9wdGlvbmFsbHkgYSB2YWx1ZSBmb3IgdGhlIGVkZ2Ugb2Zmc2V0LCB1c2VkIGJ5IGVhY2ggc2Nyb2xsIG1ldGhvZCBieSBkZWZhdWx0LiBcblx0ICogICAgICAgIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdCAqIEByZXR1cm5zIEEgc2Nyb2xsZXIgb2JqZWN0LCBzaW1pbGFyIHRvIGB6ZW5zY3JvbGxgIGJ1dCBjb250cm9sbGluZyB0aGUgcHJvdmlkZWQgZWxlbWVudC5cblx0ICovXG5cdHplbnNjcm9sbC5jcmVhdGVTY3JvbGxlciA9IGZ1bmN0aW9uIChzY3JvbGxDb250YWluZXIsIGRlZmF1bHREdXJhdGlvbiwgZWRnZU9mZnNldCkge1xuXHRcdHJldHVybiBtYWtlU2Nyb2xsZXIoe1xuXHRcdFx0Ym9keTogc2Nyb2xsQ29udGFpbmVyLFxuXHRcdFx0dG9ZOiBmdW5jdGlvbiAoeSkgeyBzY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wID0geSB9LFxuXHRcdFx0Z2V0WTogZnVuY3Rpb24gKCkgeyByZXR1cm4gc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcCB9LFxuXHRcdFx0Z2V0SGVpZ2h0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBNYXRoLm1pbihzY3JvbGxDb250YWluZXIuY2xpZW50SGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jRWxlbS5jbGllbnRIZWlnaHQpIH0sXG5cdFx0XHRnZXRUb3BPZjogZnVuY3Rpb24gKGVsZW0pIHsgcmV0dXJuIGVsZW0ub2Zmc2V0VG9wIH1cblx0XHR9LCBkZWZhdWx0RHVyYXRpb24sIGVkZ2VPZmZzZXQpXG5cdH1cblxuXG5cdC8vIEF1dG9tYXRpYyBsaW5rLXNtb290aGluZyBvbiBhY2hvcnNcblx0Ly8gRXhjbHVkZSBJRTgtIG9yIHdoZW4gbmF0aXZlIGlzIGVuYWJsZWQgb3IgWmVuc2Nyb2xsIGF1dG8tIGlzIGRpc2FibGVkXG5cdGlmIChcImFkZEV2ZW50TGlzdGVuZXJcIiBpbiB3aW5kb3cgJiYgIXdpbmRvdy5ub1plbnNtb290aCAmJiAhaXNOYXRpdmVTbW9vdGhTY3JvbGxFbmFibGVkT24oZG9jdW1lbnQuYm9keSkpIHtcblxuXG5cdFx0dmFyIGlzU2Nyb2xsUmVzdG9yYXRpb25TdXBwb3J0ZWQgPSBcInNjcm9sbFJlc3RvcmF0aW9uXCIgaW4gaGlzdG9yeVxuXG5cdFx0Ly8gT24gZmlyc3QgbG9hZCAmIHJlZnJlc2ggbWFrZSBzdXJlIHRoZSBicm93c2VyIHJlc3RvcmVzIHRoZSBwb3NpdGlvbiBmaXJzdFxuXHRcdGlmIChpc1Njcm9sbFJlc3RvcmF0aW9uU3VwcG9ydGVkKSB7XG5cdFx0XHRoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gXCJhdXRvXCJcblx0XHR9XG5cblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRpZiAoaXNTY3JvbGxSZXN0b3JhdGlvblN1cHBvcnRlZCkge1xuXHRcdFx0XHQvLyBTZXQgaXQgdG8gbWFudWFsXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gXCJtYW51YWxcIiB9LCA5KVxuXHRcdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvcHN0YXRlXCIsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0XHRcdGlmIChldmVudC5zdGF0ZSAmJiBcInplbnNjcm9sbFlcIiBpbiBldmVudC5zdGF0ZSkge1xuXHRcdFx0XHRcdFx0emVuc2Nyb2xsLnRvWShldmVudC5zdGF0ZS56ZW5zY3JvbGxZKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSwgZmFsc2UpXG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCBlZGdlIG9mZnNldCBvbiBmaXJzdCBsb2FkIGlmIG5lY2Vzc2FyeVxuXHRcdFx0Ly8gVGhpcyBtYXkgbm90IHdvcmsgb24gSUUgKG9yIG9sZGVyIGNvbXB1dGVyPykgYXMgaXQgcmVxdWlyZXMgbW9yZSB0aW1lb3V0LCBhcm91bmQgMTAwIG1zXG5cdFx0XHRpZiAod2luZG93LmxvY2F0aW9uLmhhc2gpIHtcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0Ly8gQWRqdXN0bWVudCBpcyBvbmx5IG5lZWRlZCBpZiB0aGVyZSBpcyBhbiBlZGdlIG9mZnNldDpcblx0XHRcdFx0XHR2YXIgZWRnZU9mZnNldCA9IHplbnNjcm9sbC5zZXR1cCgpLmVkZ2VPZmZzZXRcblx0XHRcdFx0XHRpZiAoZWRnZU9mZnNldCkge1xuXHRcdFx0XHRcdFx0dmFyIHRhcmdldEVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdChcIiNcIilbMV0pXG5cdFx0XHRcdFx0XHRpZiAodGFyZ2V0RWxlbSkge1xuXHRcdFx0XHRcdFx0XHR2YXIgdGFyZ2V0WSA9IE1hdGgubWF4KDAsIHplbnNjcm9sbC5nZXRUb3BPZih0YXJnZXRFbGVtKSAtIGVkZ2VPZmZzZXQpXG5cdFx0XHRcdFx0XHRcdHZhciBkaWZmID0gemVuc2Nyb2xsLmdldFkoKSAtIHRhcmdldFlcblx0XHRcdFx0XHRcdFx0Ly8gT25seSBkbyB0aGUgYWRqdXN0bWVudCBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IGNsb3NlIHRvIHRoZSBlbGVtZW50OlxuXHRcdFx0XHRcdFx0XHRpZiAoMCA8PSBkaWZmICYmIGRpZmYgPCA5ICkge1xuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5zY3JvbGxUbygwLCB0YXJnZXRZKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LCA5KVxuXHRcdFx0fVxuXG5cdFx0fSwgZmFsc2UpXG5cblx0XHQvLyBIYW5kbGluZyBjbGlja3Mgb24gYW5jaG9yc1xuXHRcdHZhciBSRV9ub1plbnNtb290aCA9IG5ldyBSZWdFeHAoXCIoXnxcXFxccylub1plbnNtb290aChcXFxcc3wkKVwiKVxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHR2YXIgYW5jaG9yID0gZXZlbnQudGFyZ2V0XG5cdFx0XHR3aGlsZSAoYW5jaG9yICYmIGFuY2hvci50YWdOYW1lICE9PSBcIkFcIikge1xuXHRcdFx0XHRhbmNob3IgPSBhbmNob3IucGFyZW50Tm9kZVxuXHRcdFx0fVxuXHRcdFx0Ly8gTGV0IHRoZSBicm93c2VyIGhhbmRsZSB0aGUgY2xpY2sgaWYgaXQgd2Fzbid0IHdpdGggdGhlIHByaW1hcnkgYnV0dG9uLCBvciB3aXRoIHNvbWUgbW9kaWZpZXIga2V5czpcblx0XHRcdGlmICghYW5jaG9yIHx8IGV2ZW50LndoaWNoICE9PSAxIHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkpIHtcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHQvLyBTYXZlIHRoZSBjdXJyZW50IHNjcm9sbGluZyBwb3NpdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCBmb3Igc2Nyb2xsIHJlc3RvcmF0aW9uOlxuXHRcdFx0aWYgKGlzU2Nyb2xsUmVzdG9yYXRpb25TdXBwb3J0ZWQpIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRoaXN0b3J5LnJlcGxhY2VTdGF0ZSh7IHplbnNjcm9sbFk6IHplbnNjcm9sbC5nZXRZKCkgfSwgXCJcIilcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdC8vIEF2b2lkIHRoZSBDaHJvbWUgU2VjdXJpdHkgZXhjZXB0aW9uIG9uIGZpbGUgcHJvdG9jb2wsIGUuZy4sIGZpbGU6Ly9pbmRleC5odG1sXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIEZpbmQgdGhlIHJlZmVyZW5jZWQgSUQ6XG5cdFx0XHR2YXIgaHJlZiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpIHx8IFwiXCJcblx0XHRcdGlmIChocmVmLmluZGV4T2YoXCIjXCIpID09PSAwICYmICFSRV9ub1plbnNtb290aC50ZXN0KGFuY2hvci5jbGFzc05hbWUpKSB7XG5cdFx0XHRcdHZhciB0YXJnZXRZID0gMFxuXHRcdFx0XHR2YXIgdGFyZ2V0RWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhyZWYuc3Vic3RyaW5nKDEpKVxuXHRcdFx0XHRpZiAoaHJlZiAhPT0gXCIjXCIpIHtcblx0XHRcdFx0XHRpZiAoIXRhcmdldEVsZW0pIHtcblx0XHRcdFx0XHRcdC8vIExldCB0aGUgYnJvd3NlciBoYW5kbGUgdGhlIGNsaWNrIGlmIHRoZSB0YXJnZXQgSUQgaXMgbm90IGZvdW5kLlxuXHRcdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRhcmdldFkgPSB6ZW5zY3JvbGwuZ2V0VG9wT2YodGFyZ2V0RWxlbSlcblx0XHRcdFx0fVxuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG5cdFx0XHRcdC8vIEJ5IGRlZmF1bHQgdHJpZ2dlciB0aGUgYnJvd3NlcidzIGBoYXNoY2hhbmdlYCBldmVudC4uLlxuXHRcdFx0XHR2YXIgb25Eb25lID0gZnVuY3Rpb24gKCkgeyB3aW5kb3cubG9jYXRpb24gPSBocmVmIH1cblx0XHRcdFx0Ly8gLi4udW5sZXNzIHRoZXJlIGlzIGFuIGVkZ2Ugb2Zmc2V0IHNwZWNpZmllZFxuXHRcdFx0XHR2YXIgZWRnZU9mZnNldCA9IHplbnNjcm9sbC5zZXR1cCgpLmVkZ2VPZmZzZXRcblx0XHRcdFx0aWYgKGVkZ2VPZmZzZXQpIHtcblx0XHRcdFx0XHR0YXJnZXRZID0gTWF0aC5tYXgoMCwgdGFyZ2V0WSAtIGVkZ2VPZmZzZXQpXG5cdFx0XHRcdFx0b25Eb25lID0gZnVuY3Rpb24gKCkgeyBoaXN0b3J5LnB1c2hTdGF0ZShudWxsLCBcIlwiLCBocmVmKSB9XG5cdFx0XHRcdH1cblx0XHRcdFx0emVuc2Nyb2xsLnRvWSh0YXJnZXRZLCBudWxsLCBvbkRvbmUpXG5cdFx0XHR9XG5cdFx0fSwgZmFsc2UpXG5cblx0fVxuXG5cblx0cmV0dXJuIHplbnNjcm9sbFxuXG5cbn0pKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi96ZW5zY3JvbGwvemVuc2Nyb2xsLmpzXG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9"); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * Zenscroll 4.0.0\n * https://github.com/zengabor/zenscroll/\n *\n * Copyright 2015–2017 Gabor Lenard\n *\n * This is free and unencumbered software released into the public domain.\n * \n * Anyone is free to copy, modify, publish, use, compile, sell, or\n * distribute this software, either in source code form or as a compiled\n * binary, for any purpose, commercial or non-commercial, and by any\n * means.\n * \n * In jurisdictions that recognize copyright laws, the author or authors\n * of this software dedicate any and all copyright interest in the\n * software to the public domain. We make this dedication for the benefit\n * of the public at large and to the detriment of our heirs and\n * successors. We intend this dedication to be an overt act of\n * relinquishment in perpetuity of all present and future rights to this\n * software under copyright law.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n * \n * For more information, please refer to \n * \n */\n\n/*jshint devel:true, asi:true */\n\n/*global define, module */\n\n\n(function (root, factory) {\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory()),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory()\n\t} else {\n\t\t(function install() {\n\t\t\t// To make sure Zenscroll can be referenced from the header, before `body` is available\n\t\t\tif (document && document.body) {\n\t\t\t\troot.zenscroll = factory()\n\t\t\t} else {\n\t\t\t\t// retry 9ms later\n\t\t\t\tsetTimeout(install, 9)\n\t\t\t}\n\t\t})()\n\t}\n}(this, function () {\n\t\"use strict\"\n\n\n\t// Detect if the browser already supports native smooth scrolling (e.g., Firefox 36+ and Chrome 49+) and it is enabled:\n\tvar isNativeSmoothScrollEnabledOn = function (elem) {\n\t\treturn (\"getComputedStyle\" in window) &&\n\t\t\twindow.getComputedStyle(elem)[\"scroll-behavior\"] === \"smooth\"\n\t}\n\n\n\t// Exit if it’s not a browser environment:\n\tif (typeof window === \"undefined\" || !(\"document\" in window)) {\n\t\treturn {}\n\t}\n\n\n\tvar makeScroller = function (container, defaultDuration, edgeOffset) {\n\n\t\t// Use defaults if not provided\n\t\tdefaultDuration = defaultDuration || 999 //ms\n\t\tif (!edgeOffset && edgeOffset !== 0) {\n\t\t\t// When scrolling, this amount of distance is kept from the edges of the container:\n\t\t\tedgeOffset = 9 //px\n\t\t}\n\n\t\t// Handling the life-cycle of the scroller\n\t\tvar scrollTimeoutId\n\t\tvar setScrollTimeoutId = function (newValue) {\n\t\t\tscrollTimeoutId = newValue\n\t\t}\n\n\t\t/**\n\t\t * Stop the current smooth scroll operation immediately\n\t\t */\n\t\tvar stopScroll = function () {\n\t\t\tclearTimeout(scrollTimeoutId)\n\t\t\tsetScrollTimeoutId(0)\n\t\t}\n\n\t\tvar getTopWithEdgeOffset = function (elem) {\n\t\t\treturn Math.max(0, container.getTopOf(elem) - edgeOffset)\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to a specific vertical position in the document.\n\t\t *\n\t\t * @param {targetY} The vertical position within the document.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * If not provided the default duration is used.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToY = function (targetY, duration, onDone) {\n\t\t\tstopScroll()\n\t\t\tif (duration === 0 || (duration && duration < 0) || isNativeSmoothScrollEnabledOn(container.body)) {\n\t\t\t\tcontainer.toY(targetY)\n\t\t\t\tif (onDone) {\n\t\t\t\t\tonDone()\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar startY = container.getY()\n\t\t\t\tvar distance = Math.max(0, targetY) - startY\n\t\t\t\tvar startTime = new Date().getTime()\n\t\t\t\tduration = duration || Math.min(Math.abs(distance), defaultDuration);\n\t\t\t\t(function loopScroll() {\n\t\t\t\t\tsetScrollTimeoutId(setTimeout(function () {\n\t\t\t\t\t\t// Calculate percentage:\n\t\t\t\t\t\tvar p = Math.min(1, (new Date().getTime() - startTime) / duration)\n\t\t\t\t\t\t// Calculate the absolute vertical position:\n\t\t\t\t\t\tvar y = Math.max(0, Math.floor(startY + distance*(p < 0.5 ? 2*p*p : p*(4 - p*2)-1)))\n\t\t\t\t\t\tcontainer.toY(y)\n\t\t\t\t\t\tif (p < 1 && (container.getHeight() + y) < container.body.scrollHeight) {\n\t\t\t\t\t\t\tloopScroll()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout(stopScroll, 99) // with cooldown time\n\t\t\t\t\t\t\tif (onDone) {\n\t\t\t\t\t\t\t\tonDone()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9))\n\t\t\t\t})()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to the top of a specific element.\n\t\t *\n\t\t * @param {elem} The element to scroll to.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToElem = function (elem, duration, onDone) {\n\t\t\tscrollToY(getTopWithEdgeOffset(elem), duration, onDone)\n\t\t}\n\n\t\t/**\n\t\t * Scrolls an element into view if necessary.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollIntoView = function (elem, duration, onDone) {\n\t\t\tvar elemHeight = elem.getBoundingClientRect().height\n\t\t\tvar elemBottom = container.getTopOf(elem) + elemHeight\n\t\t\tvar containerHeight = container.getHeight()\n\t\t\tvar y = container.getY()\n\t\t\tvar containerBottom = y + containerHeight\n\t\t\tif (getTopWithEdgeOffset(elem) < y || (elemHeight + edgeOffset) > containerHeight) {\n\t\t\t\t// Element is clipped at top or is higher than screen.\n\t\t\t\tscrollToElem(elem, duration, onDone)\n\t\t\t} else if ((elemBottom + edgeOffset) > containerBottom) {\n\t\t\t\t// Element is clipped at the bottom.\n\t\t\t\tscrollToY(elemBottom - containerHeight + edgeOffset, duration, onDone)\n\t\t\t} else if (onDone) {\n\t\t\t\tonDone()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to the center of an element.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {offset} Optionally the offset of the top of the element from the center of the screen.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToCenterOf = function (elem, duration, offset, onDone) {\n\t\t\tscrollToY(Math.max(0, container.getTopOf(elem) - container.getHeight()/2 + (offset || elem.getBoundingClientRect().height/2)), duration, onDone)\n\t\t}\n\n\t\t/**\n\t\t * Changes default settings for this scroller.\n\t\t *\n\t\t * @param {newDefaultDuration} Optionally a new value for default duration, used for each scroll method by default.\n\t\t * Ignored if null or undefined.\n\t\t * @param {newEdgeOffset} Optionally a new value for the edge offset, used by each scroll method by default. Ignored if null or undefined.\n\t\t * @returns An object with the current values.\n\t\t */\n\t\tvar setup = function (newDefaultDuration, newEdgeOffset) {\n\t\t\tif (newDefaultDuration === 0 || newDefaultDuration) {\n\t\t\t\tdefaultDuration = newDefaultDuration\n\t\t\t}\n\t\t\tif (newEdgeOffset === 0 || newEdgeOffset) {\n\t\t\t\tedgeOffset = newEdgeOffset\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tdefaultDuration: defaultDuration,\n\t\t\t\tedgeOffset: edgeOffset\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsetup: setup,\n\t\t\tto: scrollToElem,\n\t\t\ttoY: scrollToY,\n\t\t\tintoView: scrollIntoView,\n\t\t\tcenter: scrollToCenterOf,\n\t\t\tstop: stopScroll,\n\t\t\tmoving: function () { return !!scrollTimeoutId },\n\t\t\tgetY: container.getY,\n\t\t\tgetTopOf: container.getTopOf\n\t\t}\n\n\t}\n\n\n\tvar docElem = document.documentElement\n\tvar getDocY = function () { return window.scrollY || docElem.scrollTop }\n\n\t// Create a scroller for the document:\n\tvar zenscroll = makeScroller({\n\t\tbody: document.scrollingElement || document.body,\n\t\ttoY: function (y) { window.scrollTo(0, y) },\n\t\tgetY: getDocY,\n\t\tgetHeight: function () { return window.innerHeight || docElem.clientHeight },\n\t\tgetTopOf: function (elem) { return elem.getBoundingClientRect().top + getDocY() - docElem.offsetTop }\n\t})\n\n\n\t/**\n\t * Creates a scroller from the provided container element (e.g., a DIV)\n\t *\n\t * @param {scrollContainer} The vertical position within the document.\n\t * @param {defaultDuration} Optionally a value for default duration, used for each scroll method by default.\n\t * Ignored if 0 or null or undefined.\n\t * @param {edgeOffset} Optionally a value for the edge offset, used by each scroll method by default. \n\t * Ignored if null or undefined.\n\t * @returns A scroller object, similar to `zenscroll` but controlling the provided element.\n\t */\n\tzenscroll.createScroller = function (scrollContainer, defaultDuration, edgeOffset) {\n\t\treturn makeScroller({\n\t\t\tbody: scrollContainer,\n\t\t\ttoY: function (y) { scrollContainer.scrollTop = y },\n\t\t\tgetY: function () { return scrollContainer.scrollTop },\n\t\t\tgetHeight: function () { return Math.min(scrollContainer.clientHeight, window.innerHeight || docElem.clientHeight) },\n\t\t\tgetTopOf: function (elem) { return elem.offsetTop }\n\t\t}, defaultDuration, edgeOffset)\n\t}\n\n\n\t// Automatic link-smoothing on achors\n\t// Exclude IE8- or when native is enabled or Zenscroll auto- is disabled\n\tif (\"addEventListener\" in window && !window.noZensmooth && !isNativeSmoothScrollEnabledOn(document.body)) {\n\n\n\t\tvar isScrollRestorationSupported = \"scrollRestoration\" in history\n\n\t\t// On first load & refresh make sure the browser restores the position first\n\t\tif (isScrollRestorationSupported) {\n\t\t\thistory.scrollRestoration = \"auto\"\n\t\t}\n\n\t\twindow.addEventListener(\"load\", function () {\n\n\t\t\tif (isScrollRestorationSupported) {\n\t\t\t\t// Set it to manual\n\t\t\t\tsetTimeout(function () { history.scrollRestoration = \"manual\" }, 9)\n\t\t\t\twindow.addEventListener(\"popstate\", function (event) {\n\t\t\t\t\tif (event.state && \"zenscrollY\" in event.state) {\n\t\t\t\t\t\tzenscroll.toY(event.state.zenscrollY)\n\t\t\t\t\t}\n\t\t\t\t}, false)\n\t\t\t}\n\n\t\t\t// Add edge offset on first load if necessary\n\t\t\t// This may not work on IE (or older computer?) as it requires more timeout, around 100 ms\n\t\t\tif (window.location.hash) {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t// Adjustment is only needed if there is an edge offset:\n\t\t\t\t\tvar edgeOffset = zenscroll.setup().edgeOffset\n\t\t\t\t\tif (edgeOffset) {\n\t\t\t\t\t\tvar targetElem = document.getElementById(window.location.href.split(\"#\")[1])\n\t\t\t\t\t\tif (targetElem) {\n\t\t\t\t\t\t\tvar targetY = Math.max(0, zenscroll.getTopOf(targetElem) - edgeOffset)\n\t\t\t\t\t\t\tvar diff = zenscroll.getY() - targetY\n\t\t\t\t\t\t\t// Only do the adjustment if the browser is very close to the element:\n\t\t\t\t\t\t\tif (0 <= diff && diff < 9 ) {\n\t\t\t\t\t\t\t\twindow.scrollTo(0, targetY)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 9)\n\t\t\t}\n\n\t\t}, false)\n\n\t\t// Handling clicks on anchors\n\t\tvar RE_noZensmooth = new RegExp(\"(^|\\\\s)noZensmooth(\\\\s|$)\")\n\t\twindow.addEventListener(\"click\", function (event) {\n\t\t\tvar anchor = event.target\n\t\t\twhile (anchor && anchor.tagName !== \"A\") {\n\t\t\t\tanchor = anchor.parentNode\n\t\t\t}\n\t\t\t// Let the browser handle the click if it wasn't with the primary button, or with some modifier keys:\n\t\t\tif (!anchor || event.which !== 1 || event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Save the current scrolling position so it can be used for scroll restoration:\n\t\t\tif (isScrollRestorationSupported) {\n\t\t\t\ttry {\n\t\t\t\t\thistory.replaceState({ zenscrollY: zenscroll.getY() }, \"\")\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Avoid the Chrome Security exception on file protocol, e.g., file://index.html\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Find the referenced ID:\n\t\t\tvar href = anchor.getAttribute(\"href\") || \"\"\n\t\t\tif (href.indexOf(\"#\") === 0 && !RE_noZensmooth.test(anchor.className)) {\n\t\t\t\tvar targetY = 0\n\t\t\t\tvar targetElem = document.getElementById(href.substring(1))\n\t\t\t\tif (href !== \"#\") {\n\t\t\t\t\tif (!targetElem) {\n\t\t\t\t\t\t// Let the browser handle the click if the target ID is not found.\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\ttargetY = zenscroll.getTopOf(targetElem)\n\t\t\t\t}\n\t\t\t\tevent.preventDefault()\n\t\t\t\t// By default trigger the browser's `hashchange` event...\n\t\t\t\tvar onDone = function () { window.location = href }\n\t\t\t\t// ...unless there is an edge offset specified\n\t\t\t\tvar edgeOffset = zenscroll.setup().edgeOffset\n\t\t\t\tif (edgeOffset) {\n\t\t\t\t\ttargetY = Math.max(0, targetY - edgeOffset)\n\t\t\t\t\tonDone = function () { history.pushState(null, \"\", href) }\n\t\t\t\t}\n\t\t\t\tzenscroll.toY(targetY, null, onDone)\n\t\t\t}\n\t\t}, false)\n\n\t}\n\n\n\treturn zenscroll\n\n\n}));\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL34vemVuc2Nyb2xsL3plbnNjcm9sbC5qcz8yNzMyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogWmVuc2Nyb2xsIDQuMC4wXG4gKiBodHRwczovL2dpdGh1Yi5jb20vemVuZ2Fib3IvemVuc2Nyb2xsL1xuICpcbiAqIENvcHlyaWdodCAyMDE14oCTMjAxNyBHYWJvciBMZW5hcmRcbiAqXG4gKiBUaGlzIGlzIGZyZWUgYW5kIHVuZW5jdW1iZXJlZCBzb2Z0d2FyZSByZWxlYXNlZCBpbnRvIHRoZSBwdWJsaWMgZG9tYWluLlxuICogXG4gKiBBbnlvbmUgaXMgZnJlZSB0byBjb3B5LCBtb2RpZnksIHB1Ymxpc2gsIHVzZSwgY29tcGlsZSwgc2VsbCwgb3JcbiAqIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSwgZWl0aGVyIGluIHNvdXJjZSBjb2RlIGZvcm0gb3IgYXMgYSBjb21waWxlZFxuICogYmluYXJ5LCBmb3IgYW55IHB1cnBvc2UsIGNvbW1lcmNpYWwgb3Igbm9uLWNvbW1lcmNpYWwsIGFuZCBieSBhbnlcbiAqIG1lYW5zLlxuICogXG4gKiBJbiBqdXJpc2RpY3Rpb25zIHRoYXQgcmVjb2duaXplIGNvcHlyaWdodCBsYXdzLCB0aGUgYXV0aG9yIG9yIGF1dGhvcnNcbiAqIG9mIHRoaXMgc29mdHdhcmUgZGVkaWNhdGUgYW55IGFuZCBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZVxuICogc29mdHdhcmUgdG8gdGhlIHB1YmxpYyBkb21haW4uIFdlIG1ha2UgdGhpcyBkZWRpY2F0aW9uIGZvciB0aGUgYmVuZWZpdFxuICogb2YgdGhlIHB1YmxpYyBhdCBsYXJnZSBhbmQgdG8gdGhlIGRldHJpbWVudCBvZiBvdXIgaGVpcnMgYW5kXG4gKiBzdWNjZXNzb3JzLiBXZSBpbnRlbmQgdGhpcyBkZWRpY2F0aW9uIHRvIGJlIGFuIG92ZXJ0IGFjdCBvZlxuICogcmVsaW5xdWlzaG1lbnQgaW4gcGVycGV0dWl0eSBvZiBhbGwgcHJlc2VudCBhbmQgZnV0dXJlIHJpZ2h0cyB0byB0aGlzXG4gKiBzb2Z0d2FyZSB1bmRlciBjb3B5cmlnaHQgbGF3LlxuICogXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuXG4gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUlxuICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsXG4gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1JcbiAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqIFxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byA8aHR0cDovL3VubGljZW5zZS5vcmc+XG4gKiBcbiAqL1xuXG4vKmpzaGludCBkZXZlbDp0cnVlLCBhc2k6dHJ1ZSAqL1xuXG4vKmdsb2JhbCBkZWZpbmUsIG1vZHVsZSAqL1xuXG5cbihmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkoKSlcblx0fSBlbHNlIGlmICh0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KClcblx0fSBlbHNlIHtcblx0XHQoZnVuY3Rpb24gaW5zdGFsbCgpIHtcblx0XHRcdC8vIFRvIG1ha2Ugc3VyZSBaZW5zY3JvbGwgY2FuIGJlIHJlZmVyZW5jZWQgZnJvbSB0aGUgaGVhZGVyLCBiZWZvcmUgYGJvZHlgIGlzIGF2YWlsYWJsZVxuXHRcdFx0aWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LmJvZHkpIHtcblx0XHRcdFx0cm9vdC56ZW5zY3JvbGwgPSBmYWN0b3J5KClcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIHJldHJ5IDltcyBsYXRlclxuXHRcdFx0XHRzZXRUaW1lb3V0KGluc3RhbGwsIDkpXG5cdFx0XHR9XG5cdFx0fSkoKVxuXHR9XG59KHRoaXMsIGZ1bmN0aW9uICgpIHtcblx0XCJ1c2Ugc3RyaWN0XCJcblxuXG5cdC8vIERldGVjdCBpZiB0aGUgYnJvd3NlciBhbHJlYWR5IHN1cHBvcnRzIG5hdGl2ZSBzbW9vdGggc2Nyb2xsaW5nIChlLmcuLCBGaXJlZm94IDM2KyBhbmQgQ2hyb21lIDQ5KykgYW5kIGl0IGlzIGVuYWJsZWQ6XG5cdHZhciBpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbiA9IGZ1bmN0aW9uIChlbGVtKSB7XG5cdFx0cmV0dXJuIChcImdldENvbXB1dGVkU3R5bGVcIiBpbiB3aW5kb3cpICYmXG5cdFx0XHR3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKVtcInNjcm9sbC1iZWhhdmlvclwiXSA9PT0gXCJzbW9vdGhcIlxuXHR9XG5cblxuXHQvLyBFeGl0IGlmIGl04oCZcyBub3QgYSBicm93c2VyIGVudmlyb25tZW50OlxuXHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhKFwiZG9jdW1lbnRcIiBpbiB3aW5kb3cpKSB7XG5cdFx0cmV0dXJuIHt9XG5cdH1cblxuXG5cdHZhciBtYWtlU2Nyb2xsZXIgPSBmdW5jdGlvbiAoY29udGFpbmVyLCBkZWZhdWx0RHVyYXRpb24sIGVkZ2VPZmZzZXQpIHtcblxuXHRcdC8vIFVzZSBkZWZhdWx0cyBpZiBub3QgcHJvdmlkZWRcblx0XHRkZWZhdWx0RHVyYXRpb24gPSBkZWZhdWx0RHVyYXRpb24gfHwgOTk5IC8vbXNcblx0XHRpZiAoIWVkZ2VPZmZzZXQgJiYgZWRnZU9mZnNldCAhPT0gMCkge1xuXHRcdFx0Ly8gV2hlbiBzY3JvbGxpbmcsIHRoaXMgYW1vdW50IG9mIGRpc3RhbmNlIGlzIGtlcHQgZnJvbSB0aGUgZWRnZXMgb2YgdGhlIGNvbnRhaW5lcjpcblx0XHRcdGVkZ2VPZmZzZXQgPSA5IC8vcHhcblx0XHR9XG5cblx0XHQvLyBIYW5kbGluZyB0aGUgbGlmZS1jeWNsZSBvZiB0aGUgc2Nyb2xsZXJcblx0XHR2YXIgc2Nyb2xsVGltZW91dElkXG5cdFx0dmFyIHNldFNjcm9sbFRpbWVvdXRJZCA9IGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuXHRcdFx0c2Nyb2xsVGltZW91dElkID0gbmV3VmFsdWVcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTdG9wIHRoZSBjdXJyZW50IHNtb290aCBzY3JvbGwgb3BlcmF0aW9uIGltbWVkaWF0ZWx5XG5cdFx0ICovXG5cdFx0dmFyIHN0b3BTY3JvbGwgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dElkKVxuXHRcdFx0c2V0U2Nyb2xsVGltZW91dElkKDApXG5cdFx0fVxuXG5cdFx0dmFyIGdldFRvcFdpdGhFZGdlT2Zmc2V0ID0gZnVuY3Rpb24gKGVsZW0pIHtcblx0XHRcdHJldHVybiBNYXRoLm1heCgwLCBjb250YWluZXIuZ2V0VG9wT2YoZWxlbSkgLSBlZGdlT2Zmc2V0KVxuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIFNjcm9sbHMgdG8gYSBzcGVjaWZpYyB2ZXJ0aWNhbCBwb3NpdGlvbiBpbiB0aGUgZG9jdW1lbnQuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge3RhcmdldFl9IFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiB3aXRoaW4gdGhlIGRvY3VtZW50LlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqICAgICAgICBJZiBub3QgcHJvdmlkZWQgdGhlIGRlZmF1bHQgZHVyYXRpb24gaXMgdXNlZC5cblx0XHQgKiBAcGFyYW0ge29uRG9uZX0gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBvbmNlIHRoZSBzY3JvbGwgZmluaXNoZWQuXG5cdFx0ICovXG5cdFx0dmFyIHNjcm9sbFRvWSA9IGZ1bmN0aW9uICh0YXJnZXRZLCBkdXJhdGlvbiwgb25Eb25lKSB7XG5cdFx0XHRzdG9wU2Nyb2xsKClcblx0XHRcdGlmIChkdXJhdGlvbiA9PT0gMCB8fCAoZHVyYXRpb24gJiYgZHVyYXRpb24gPCAwKSB8fCBpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbihjb250YWluZXIuYm9keSkpIHtcblx0XHRcdFx0Y29udGFpbmVyLnRvWSh0YXJnZXRZKVxuXHRcdFx0XHRpZiAob25Eb25lKSB7XG5cdFx0XHRcdFx0b25Eb25lKClcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFyIHN0YXJ0WSA9IGNvbnRhaW5lci5nZXRZKClcblx0XHRcdFx0dmFyIGRpc3RhbmNlID0gTWF0aC5tYXgoMCwgdGFyZ2V0WSkgLSBzdGFydFlcblx0XHRcdFx0dmFyIHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXG5cdFx0XHRcdGR1cmF0aW9uID0gZHVyYXRpb24gfHwgTWF0aC5taW4oTWF0aC5hYnMoZGlzdGFuY2UpLCBkZWZhdWx0RHVyYXRpb24pO1xuXHRcdFx0XHQoZnVuY3Rpb24gbG9vcFNjcm9sbCgpIHtcblx0XHRcdFx0XHRzZXRTY3JvbGxUaW1lb3V0SWQoc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHQvLyBDYWxjdWxhdGUgcGVyY2VudGFnZTpcblx0XHRcdFx0XHRcdHZhciBwID0gTWF0aC5taW4oMSwgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnRUaW1lKSAvIGR1cmF0aW9uKVxuXHRcdFx0XHRcdFx0Ly8gQ2FsY3VsYXRlIHRoZSBhYnNvbHV0ZSB2ZXJ0aWNhbCBwb3NpdGlvbjpcblx0XHRcdFx0XHRcdHZhciB5ID0gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcihzdGFydFkgKyBkaXN0YW5jZSoocCA8IDAuNSA/IDIqcCpwIDogcCooNCAtIHAqMiktMSkpKVxuXHRcdFx0XHRcdFx0Y29udGFpbmVyLnRvWSh5KVxuXHRcdFx0XHRcdFx0aWYgKHAgPCAxICYmIChjb250YWluZXIuZ2V0SGVpZ2h0KCkgKyB5KSA8IGNvbnRhaW5lci5ib2R5LnNjcm9sbEhlaWdodCkge1xuXHRcdFx0XHRcdFx0XHRsb29wU2Nyb2xsKClcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoc3RvcFNjcm9sbCwgOTkpIC8vIHdpdGggY29vbGRvd24gdGltZVxuXHRcdFx0XHRcdFx0XHRpZiAob25Eb25lKSB7XG5cdFx0XHRcdFx0XHRcdFx0b25Eb25lKClcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0sIDkpKVxuXHRcdFx0XHR9KSgpXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0ICogU2Nyb2xscyB0byB0aGUgdG9wIG9mIGEgc3BlY2lmaWMgZWxlbWVudC5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7ZWxlbX0gVGhlIGVsZW1lbnQgdG8gc2Nyb2xsIHRvLlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqIEBwYXJhbSB7b25Eb25lfSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIG9uY2UgdGhlIHNjcm9sbCBmaW5pc2hlZC5cblx0XHQgKi9cblx0XHR2YXIgc2Nyb2xsVG9FbGVtID0gZnVuY3Rpb24gKGVsZW0sIGR1cmF0aW9uLCBvbkRvbmUpIHtcblx0XHRcdHNjcm9sbFRvWShnZXRUb3BXaXRoRWRnZU9mZnNldChlbGVtKSwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTY3JvbGxzIGFuIGVsZW1lbnQgaW50byB2aWV3IGlmIG5lY2Vzc2FyeS5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7ZWxlbX0gVGhlIGVsZW1lbnQuXG5cdFx0ICogQHBhcmFtIHtkdXJhdGlvbn0gT3B0aW9uYWxseSB0aGUgZHVyYXRpb24gb2YgdGhlIHNjcm9sbCBvcGVyYXRpb24uXG5cdFx0ICogQHBhcmFtIHtvbkRvbmV9IEFuIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgb25jZSB0aGUgc2Nyb2xsIGZpbmlzaGVkLlxuXHRcdCAqL1xuXHRcdHZhciBzY3JvbGxJbnRvVmlldyA9IGZ1bmN0aW9uIChlbGVtLCBkdXJhdGlvbiwgb25Eb25lKSB7XG5cdFx0XHR2YXIgZWxlbUhlaWdodCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0XG5cdFx0XHR2YXIgZWxlbUJvdHRvbSA9IGNvbnRhaW5lci5nZXRUb3BPZihlbGVtKSArIGVsZW1IZWlnaHRcblx0XHRcdHZhciBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXIuZ2V0SGVpZ2h0KClcblx0XHRcdHZhciB5ID0gY29udGFpbmVyLmdldFkoKVxuXHRcdFx0dmFyIGNvbnRhaW5lckJvdHRvbSA9IHkgKyBjb250YWluZXJIZWlnaHRcblx0XHRcdGlmIChnZXRUb3BXaXRoRWRnZU9mZnNldChlbGVtKSA8IHkgfHwgKGVsZW1IZWlnaHQgKyBlZGdlT2Zmc2V0KSA+IGNvbnRhaW5lckhlaWdodCkge1xuXHRcdFx0XHQvLyBFbGVtZW50IGlzIGNsaXBwZWQgYXQgdG9wIG9yIGlzIGhpZ2hlciB0aGFuIHNjcmVlbi5cblx0XHRcdFx0c2Nyb2xsVG9FbGVtKGVsZW0sIGR1cmF0aW9uLCBvbkRvbmUpXG5cdFx0XHR9IGVsc2UgaWYgKChlbGVtQm90dG9tICsgZWRnZU9mZnNldCkgPiBjb250YWluZXJCb3R0b20pIHtcblx0XHRcdFx0Ly8gRWxlbWVudCBpcyBjbGlwcGVkIGF0IHRoZSBib3R0b20uXG5cdFx0XHRcdHNjcm9sbFRvWShlbGVtQm90dG9tIC0gY29udGFpbmVySGVpZ2h0ICsgZWRnZU9mZnNldCwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHRcdH0gZWxzZSBpZiAob25Eb25lKSB7XG5cdFx0XHRcdG9uRG9uZSgpXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0ICogU2Nyb2xscyB0byB0aGUgY2VudGVyIG9mIGFuIGVsZW1lbnQuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge2VsZW19IFRoZSBlbGVtZW50LlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqIEBwYXJhbSB7b2Zmc2V0fSBPcHRpb25hbGx5IHRoZSBvZmZzZXQgb2YgdGhlIHRvcCBvZiB0aGUgZWxlbWVudCBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIHNjcmVlbi5cblx0XHQgKiBAcGFyYW0ge29uRG9uZX0gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBvbmNlIHRoZSBzY3JvbGwgZmluaXNoZWQuXG5cdFx0ICovXG5cdFx0dmFyIHNjcm9sbFRvQ2VudGVyT2YgPSBmdW5jdGlvbiAoZWxlbSwgZHVyYXRpb24sIG9mZnNldCwgb25Eb25lKSB7XG5cdFx0XHRzY3JvbGxUb1koTWF0aC5tYXgoMCwgY29udGFpbmVyLmdldFRvcE9mKGVsZW0pIC0gY29udGFpbmVyLmdldEhlaWdodCgpLzIgKyAob2Zmc2V0IHx8IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LzIpKSwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBDaGFuZ2VzIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHRoaXMgc2Nyb2xsZXIuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge25ld0RlZmF1bHREdXJhdGlvbn0gT3B0aW9uYWxseSBhIG5ldyB2YWx1ZSBmb3IgZGVmYXVsdCBkdXJhdGlvbiwgdXNlZCBmb3IgZWFjaCBzY3JvbGwgbWV0aG9kIGJ5IGRlZmF1bHQuXG5cdFx0ICogICAgICAgIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdFx0ICogQHBhcmFtIHtuZXdFZGdlT2Zmc2V0fSBPcHRpb25hbGx5IGEgbmV3IHZhbHVlIGZvciB0aGUgZWRnZSBvZmZzZXQsIHVzZWQgYnkgZWFjaCBzY3JvbGwgbWV0aG9kIGJ5IGRlZmF1bHQuIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdFx0ICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggdGhlIGN1cnJlbnQgdmFsdWVzLlxuXHRcdCAqL1xuXHRcdHZhciBzZXR1cCA9IGZ1bmN0aW9uIChuZXdEZWZhdWx0RHVyYXRpb24sIG5ld0VkZ2VPZmZzZXQpIHtcblx0XHRcdGlmIChuZXdEZWZhdWx0RHVyYXRpb24gPT09IDAgfHwgbmV3RGVmYXVsdER1cmF0aW9uKSB7XG5cdFx0XHRcdGRlZmF1bHREdXJhdGlvbiA9IG5ld0RlZmF1bHREdXJhdGlvblxuXHRcdFx0fVxuXHRcdFx0aWYgKG5ld0VkZ2VPZmZzZXQgPT09IDAgfHwgbmV3RWRnZU9mZnNldCkge1xuXHRcdFx0XHRlZGdlT2Zmc2V0ID0gbmV3RWRnZU9mZnNldFxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0ZGVmYXVsdER1cmF0aW9uOiBkZWZhdWx0RHVyYXRpb24sXG5cdFx0XHRcdGVkZ2VPZmZzZXQ6IGVkZ2VPZmZzZXRcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0c2V0dXA6IHNldHVwLFxuXHRcdFx0dG86IHNjcm9sbFRvRWxlbSxcblx0XHRcdHRvWTogc2Nyb2xsVG9ZLFxuXHRcdFx0aW50b1ZpZXc6IHNjcm9sbEludG9WaWV3LFxuXHRcdFx0Y2VudGVyOiBzY3JvbGxUb0NlbnRlck9mLFxuXHRcdFx0c3RvcDogc3RvcFNjcm9sbCxcblx0XHRcdG1vdmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gISFzY3JvbGxUaW1lb3V0SWQgfSxcblx0XHRcdGdldFk6IGNvbnRhaW5lci5nZXRZLFxuXHRcdFx0Z2V0VG9wT2Y6IGNvbnRhaW5lci5nZXRUb3BPZlxuXHRcdH1cblxuXHR9XG5cblxuXHR2YXIgZG9jRWxlbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuXHR2YXIgZ2V0RG9jWSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHdpbmRvdy5zY3JvbGxZIHx8IGRvY0VsZW0uc2Nyb2xsVG9wIH1cblxuXHQvLyBDcmVhdGUgYSBzY3JvbGxlciBmb3IgdGhlIGRvY3VtZW50OlxuXHR2YXIgemVuc2Nyb2xsID0gbWFrZVNjcm9sbGVyKHtcblx0XHRib2R5OiBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50IHx8IGRvY3VtZW50LmJvZHksXG5cdFx0dG9ZOiBmdW5jdGlvbiAoeSkgeyB3aW5kb3cuc2Nyb2xsVG8oMCwgeSkgfSxcblx0XHRnZXRZOiBnZXREb2NZLFxuXHRcdGdldEhlaWdodDogZnVuY3Rpb24gKCkgeyByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY0VsZW0uY2xpZW50SGVpZ2h0IH0sXG5cdFx0Z2V0VG9wT2Y6IGZ1bmN0aW9uIChlbGVtKSB7IHJldHVybiBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIGdldERvY1koKSAtIGRvY0VsZW0ub2Zmc2V0VG9wIH1cblx0fSlcblxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgc2Nyb2xsZXIgZnJvbSB0aGUgcHJvdmlkZWQgY29udGFpbmVyIGVsZW1lbnQgKGUuZy4sIGEgRElWKVxuXHQgKlxuXHQgKiBAcGFyYW0ge3Njcm9sbENvbnRhaW5lcn0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIHdpdGhpbiB0aGUgZG9jdW1lbnQuXG5cdCAqIEBwYXJhbSB7ZGVmYXVsdER1cmF0aW9ufSBPcHRpb25hbGx5IGEgdmFsdWUgZm9yIGRlZmF1bHQgZHVyYXRpb24sIHVzZWQgZm9yIGVhY2ggc2Nyb2xsIG1ldGhvZCBieSBkZWZhdWx0LlxuXHQgKiAgICAgICAgSWdub3JlZCBpZiAwIG9yIG51bGwgb3IgdW5kZWZpbmVkLlxuXHQgKiBAcGFyYW0ge2VkZ2VPZmZzZXR9IE9wdGlvbmFsbHkgYSB2YWx1ZSBmb3IgdGhlIGVkZ2Ugb2Zmc2V0LCB1c2VkIGJ5IGVhY2ggc2Nyb2xsIG1ldGhvZCBieSBkZWZhdWx0LiBcblx0ICogICAgICAgIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdCAqIEByZXR1cm5zIEEgc2Nyb2xsZXIgb2JqZWN0LCBzaW1pbGFyIHRvIGB6ZW5zY3JvbGxgIGJ1dCBjb250cm9sbGluZyB0aGUgcHJvdmlkZWQgZWxlbWVudC5cblx0ICovXG5cdHplbnNjcm9sbC5jcmVhdGVTY3JvbGxlciA9IGZ1bmN0aW9uIChzY3JvbGxDb250YWluZXIsIGRlZmF1bHREdXJhdGlvbiwgZWRnZU9mZnNldCkge1xuXHRcdHJldHVybiBtYWtlU2Nyb2xsZXIoe1xuXHRcdFx0Ym9keTogc2Nyb2xsQ29udGFpbmVyLFxuXHRcdFx0dG9ZOiBmdW5jdGlvbiAoeSkgeyBzY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wID0geSB9LFxuXHRcdFx0Z2V0WTogZnVuY3Rpb24gKCkgeyByZXR1cm4gc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcCB9LFxuXHRcdFx0Z2V0SGVpZ2h0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBNYXRoLm1pbihzY3JvbGxDb250YWluZXIuY2xpZW50SGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jRWxlbS5jbGllbnRIZWlnaHQpIH0sXG5cdFx0XHRnZXRUb3BPZjogZnVuY3Rpb24gKGVsZW0pIHsgcmV0dXJuIGVsZW0ub2Zmc2V0VG9wIH1cblx0XHR9LCBkZWZhdWx0RHVyYXRpb24sIGVkZ2VPZmZzZXQpXG5cdH1cblxuXG5cdC8vIEF1dG9tYXRpYyBsaW5rLXNtb290aGluZyBvbiBhY2hvcnNcblx0Ly8gRXhjbHVkZSBJRTgtIG9yIHdoZW4gbmF0aXZlIGlzIGVuYWJsZWQgb3IgWmVuc2Nyb2xsIGF1dG8tIGlzIGRpc2FibGVkXG5cdGlmIChcImFkZEV2ZW50TGlzdGVuZXJcIiBpbiB3aW5kb3cgJiYgIXdpbmRvdy5ub1plbnNtb290aCAmJiAhaXNOYXRpdmVTbW9vdGhTY3JvbGxFbmFibGVkT24oZG9jdW1lbnQuYm9keSkpIHtcblxuXG5cdFx0dmFyIGlzU2Nyb2xsUmVzdG9yYXRpb25TdXBwb3J0ZWQgPSBcInNjcm9sbFJlc3RvcmF0aW9uXCIgaW4gaGlzdG9yeVxuXG5cdFx0Ly8gT24gZmlyc3QgbG9hZCAmIHJlZnJlc2ggbWFrZSBzdXJlIHRoZSBicm93c2VyIHJlc3RvcmVzIHRoZSBwb3NpdGlvbiBmaXJzdFxuXHRcdGlmIChpc1Njcm9sbFJlc3RvcmF0aW9uU3VwcG9ydGVkKSB7XG5cdFx0XHRoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gXCJhdXRvXCJcblx0XHR9XG5cblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRpZiAoaXNTY3JvbGxSZXN0b3JhdGlvblN1cHBvcnRlZCkge1xuXHRcdFx0XHQvLyBTZXQgaXQgdG8gbWFudWFsXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gXCJtYW51YWxcIiB9LCA5KVxuXHRcdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvcHN0YXRlXCIsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0XHRcdGlmIChldmVudC5zdGF0ZSAmJiBcInplbnNjcm9sbFlcIiBpbiBldmVudC5zdGF0ZSkge1xuXHRcdFx0XHRcdFx0emVuc2Nyb2xsLnRvWShldmVudC5zdGF0ZS56ZW5zY3JvbGxZKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSwgZmFsc2UpXG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCBlZGdlIG9mZnNldCBvbiBmaXJzdCBsb2FkIGlmIG5lY2Vzc2FyeVxuXHRcdFx0Ly8gVGhpcyBtYXkgbm90IHdvcmsgb24gSUUgKG9yIG9sZGVyIGNvbXB1dGVyPykgYXMgaXQgcmVxdWlyZXMgbW9yZSB0aW1lb3V0LCBhcm91bmQgMTAwIG1zXG5cdFx0XHRpZiAod2luZG93LmxvY2F0aW9uLmhhc2gpIHtcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0Ly8gQWRqdXN0bWVudCBpcyBvbmx5IG5lZWRlZCBpZiB0aGVyZSBpcyBhbiBlZGdlIG9mZnNldDpcblx0XHRcdFx0XHR2YXIgZWRnZU9mZnNldCA9IHplbnNjcm9sbC5zZXR1cCgpLmVkZ2VPZmZzZXRcblx0XHRcdFx0XHRpZiAoZWRnZU9mZnNldCkge1xuXHRcdFx0XHRcdFx0dmFyIHRhcmdldEVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdChcIiNcIilbMV0pXG5cdFx0XHRcdFx0XHRpZiAodGFyZ2V0RWxlbSkge1xuXHRcdFx0XHRcdFx0XHR2YXIgdGFyZ2V0WSA9IE1hdGgubWF4KDAsIHplbnNjcm9sbC5nZXRUb3BPZih0YXJnZXRFbGVtKSAtIGVkZ2VPZmZzZXQpXG5cdFx0XHRcdFx0XHRcdHZhciBkaWZmID0gemVuc2Nyb2xsLmdldFkoKSAtIHRhcmdldFlcblx0XHRcdFx0XHRcdFx0Ly8gT25seSBkbyB0aGUgYWRqdXN0bWVudCBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IGNsb3NlIHRvIHRoZSBlbGVtZW50OlxuXHRcdFx0XHRcdFx0XHRpZiAoMCA8PSBkaWZmICYmIGRpZmYgPCA5ICkge1xuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5zY3JvbGxUbygwLCB0YXJnZXRZKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LCA5KVxuXHRcdFx0fVxuXG5cdFx0fSwgZmFsc2UpXG5cblx0XHQvLyBIYW5kbGluZyBjbGlja3Mgb24gYW5jaG9yc1xuXHRcdHZhciBSRV9ub1plbnNtb290aCA9IG5ldyBSZWdFeHAoXCIoXnxcXFxccylub1plbnNtb290aChcXFxcc3wkKVwiKVxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHR2YXIgYW5jaG9yID0gZXZlbnQudGFyZ2V0XG5cdFx0XHR3aGlsZSAoYW5jaG9yICYmIGFuY2hvci50YWdOYW1lICE9PSBcIkFcIikge1xuXHRcdFx0XHRhbmNob3IgPSBhbmNob3IucGFyZW50Tm9kZVxuXHRcdFx0fVxuXHRcdFx0Ly8gTGV0IHRoZSBicm93c2VyIGhhbmRsZSB0aGUgY2xpY2sgaWYgaXQgd2Fzbid0IHdpdGggdGhlIHByaW1hcnkgYnV0dG9uLCBvciB3aXRoIHNvbWUgbW9kaWZpZXIga2V5czpcblx0XHRcdGlmICghYW5jaG9yIHx8IGV2ZW50LndoaWNoICE9PSAxIHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkpIHtcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHQvLyBTYXZlIHRoZSBjdXJyZW50IHNjcm9sbGluZyBwb3NpdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCBmb3Igc2Nyb2xsIHJlc3RvcmF0aW9uOlxuXHRcdFx0aWYgKGlzU2Nyb2xsUmVzdG9yYXRpb25TdXBwb3J0ZWQpIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRoaXN0b3J5LnJlcGxhY2VTdGF0ZSh7IHplbnNjcm9sbFk6IHplbnNjcm9sbC5nZXRZKCkgfSwgXCJcIilcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdC8vIEF2b2lkIHRoZSBDaHJvbWUgU2VjdXJpdHkgZXhjZXB0aW9uIG9uIGZpbGUgcHJvdG9jb2wsIGUuZy4sIGZpbGU6Ly9pbmRleC5odG1sXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIEZpbmQgdGhlIHJlZmVyZW5jZWQgSUQ6XG5cdFx0XHR2YXIgaHJlZiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpIHx8IFwiXCJcblx0XHRcdGlmIChocmVmLmluZGV4T2YoXCIjXCIpID09PSAwICYmICFSRV9ub1plbnNtb290aC50ZXN0KGFuY2hvci5jbGFzc05hbWUpKSB7XG5cdFx0XHRcdHZhciB0YXJnZXRZID0gMFxuXHRcdFx0XHR2YXIgdGFyZ2V0RWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhyZWYuc3Vic3RyaW5nKDEpKVxuXHRcdFx0XHRpZiAoaHJlZiAhPT0gXCIjXCIpIHtcblx0XHRcdFx0XHRpZiAoIXRhcmdldEVsZW0pIHtcblx0XHRcdFx0XHRcdC8vIExldCB0aGUgYnJvd3NlciBoYW5kbGUgdGhlIGNsaWNrIGlmIHRoZSB0YXJnZXQgSUQgaXMgbm90IGZvdW5kLlxuXHRcdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRhcmdldFkgPSB6ZW5zY3JvbGwuZ2V0VG9wT2YodGFyZ2V0RWxlbSlcblx0XHRcdFx0fVxuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG5cdFx0XHRcdC8vIEJ5IGRlZmF1bHQgdHJpZ2dlciB0aGUgYnJvd3NlcidzIGBoYXNoY2hhbmdlYCBldmVudC4uLlxuXHRcdFx0XHR2YXIgb25Eb25lID0gZnVuY3Rpb24gKCkgeyB3aW5kb3cubG9jYXRpb24gPSBocmVmIH1cblx0XHRcdFx0Ly8gLi4udW5sZXNzIHRoZXJlIGlzIGFuIGVkZ2Ugb2Zmc2V0IHNwZWNpZmllZFxuXHRcdFx0XHR2YXIgZWRnZU9mZnNldCA9IHplbnNjcm9sbC5zZXR1cCgpLmVkZ2VPZmZzZXRcblx0XHRcdFx0aWYgKGVkZ2VPZmZzZXQpIHtcblx0XHRcdFx0XHR0YXJnZXRZID0gTWF0aC5tYXgoMCwgdGFyZ2V0WSAtIGVkZ2VPZmZzZXQpXG5cdFx0XHRcdFx0b25Eb25lID0gZnVuY3Rpb24gKCkgeyBoaXN0b3J5LnB1c2hTdGF0ZShudWxsLCBcIlwiLCBocmVmKSB9XG5cdFx0XHRcdH1cblx0XHRcdFx0emVuc2Nyb2xsLnRvWSh0YXJnZXRZLCBudWxsLCBvbkRvbmUpXG5cdFx0XHR9XG5cdFx0fSwgZmFsc2UpXG5cblx0fVxuXG5cblx0cmV0dXJuIHplbnNjcm9sbFxuXG5cbn0pKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi96ZW5zY3JvbGwvemVuc2Nyb2xsLmpzXG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9"); /***/ }), /* 2 */ diff --git a/src/docs/asciidoc/web-reactive.adoc b/src/docs/asciidoc/web-reactive.adoc index a7fa9bb5b4b..0d51798e611 100644 --- a/src/docs/asciidoc/web-reactive.adoc +++ b/src/docs/asciidoc/web-reactive.adoc @@ -8,7 +8,7 @@ :docinfo1: This part of the documentation covers support for reactive stack, web applications built on a -http://www.reactive-streams.org/[Reactive Streams] API to run on non-blocking +https://www.reactive-streams.org/[Reactive Streams] API to run on non-blocking servers such as Netty, Undertow, and Servlet 3.1+ containers. Individual chapters cover the <> framework, the reactive <>, support for <>, diff --git a/src/docs/asciidoc/web/integration.adoc b/src/docs/asciidoc/web/integration.adoc index 42fc3505669..a34103f5e97 100644 --- a/src/docs/asciidoc/web/integration.adoc +++ b/src/docs/asciidoc/web/integration.adoc @@ -111,8 +111,8 @@ JavaServer Faces (JSF) is the JCP's standard component-based, event-driven web u interface framework. As of Java EE 5, it is an official part of the Java EE umbrella. For a popular JSF runtime as well as for popular JSF component libraries, check out the -http://myfaces.apache.org/[Apache MyFaces project]. The MyFaces project also provides -common JSF extensions such as http://myfaces.apache.org/orchestra/[MyFaces Orchestra]: +https://myfaces.apache.org/[Apache MyFaces project]. The MyFaces project also provides +common JSF extensions such as https://myfaces.apache.org/orchestra/[MyFaces Orchestra]: a Spring-based JSF extension that provides rich conversation scope support. [NOTE] @@ -120,7 +120,7 @@ a Spring-based JSF extension that provides rich conversation scope support. Spring Web Flow 2.0 provides rich JSF support through its newly established Spring Faces module, both for JSF-centric usage (as described in this section) and for Spring-centric usage (using JSF views within a Spring MVC dispatcher). Check out the -http://projects.spring.io/spring-webflow[Spring Web Flow website] for details! +https://projects.spring.io/spring-webflow[Spring Web Flow website] for details! ==== The key element in Spring's JSF integration is the JSF `ELResolver` mechanism. @@ -170,7 +170,7 @@ takes a `FacesContext` parameter rather than a `ServletContext` parameter. [[struts]] == Apache Struts 2.x -Invented by Craig McClanahan, http://struts.apache.org[Struts] is an open source project +Invented by Craig McClanahan, https://struts.apache.org[Struts] is an open source project hosted by the Apache Software Foundation. At the time, it greatly simplified the JSP/Servlet programming paradigm and won over many developers who were using proprietary frameworks. It simplified the programming model, it was open source (and thus free as in @@ -186,7 +186,7 @@ built-in Spring integration shipped with Struts. [[tapestry]] == Tapestry 5.x -From the http://tapestry.apache.org/[Tapestry homepage]: +From the https://tapestry.apache.org/[Tapestry homepage]: Tapestry is a "__Component oriented framework for creating dynamic, robust, highly scalable web applications in Java.__" @@ -207,6 +207,6 @@ Spring]. Find below links to further resources about the various web frameworks described in this chapter. -* The http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html[JSF] homepage -* The http://struts.apache.org/[Struts] homepage -* The http://tapestry.apache.org/[Tapestry] homepage +* The https://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html[JSF] homepage +* The https://struts.apache.org/[Struts] homepage +* The https://tapestry.apache.org/[Tapestry] homepage diff --git a/src/docs/asciidoc/web/web-uris.adoc b/src/docs/asciidoc/web/web-uris.adoc index 539ab204e38..43b42409610 100644 --- a/src/docs/asciidoc/web/web-uris.adoc +++ b/src/docs/asciidoc/web/web-uris.adoc @@ -9,7 +9,7 @@ [subs="verbatim,quotes"] ---- UriComponents uriComponents = UriComponentsBuilder - .fromUriString("http://example.com/hotels/{hotel}") // <1> + .fromUriString("https://example.com/hotels/{hotel}") // <1> .queryParam("q", "{q}") // <2> .encode() // <3> .build(); // <4> @@ -28,7 +28,7 @@ The above can be consolidated into one chain and shortened with `buildAndExpand` [subs="verbatim,quotes"] ---- URI uri = UriComponentsBuilder - .fromUriString("http://example.com/hotels/{hotel}") + .fromUriString("https://example.com/hotels/{hotel}") .queryParam("q", "{q}") .encode() .buildAndExpand("Westin", "123") @@ -41,7 +41,7 @@ It can be shortened further by going directly to URI (which implies encoding): [subs="verbatim,quotes"] ---- URI uri = UriComponentsBuilder - .fromUriString("http://example.com/hotels/{hotel}") + .fromUriString("https://example.com/hotels/{hotel}") .queryParam("q", "{q}") .build("Westin", "123"); ---- @@ -52,7 +52,7 @@ Or shorter further yet, with a full URI template: [subs="verbatim,quotes"] ---- URI uri = UriComponentsBuilder - .fromUriString("http://example.com/hotels/{hotel}?q={q}") + .fromUriString("https://example.com/hotels/{hotel}?q={q}") .build("Westin", "123"); ---- @@ -78,7 +78,7 @@ exposes shared configuration options. ---- // import org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode; - String baseUrl = "http://example.org"; + String baseUrl = "https://example.org"; DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory(baseUrl); factory.setEncodingMode(EncodingMode.TEMPLATE_AND_VARIABLES); @@ -93,7 +93,7 @@ exposes shared configuration options. ---- // import org.springframework.web.util.DefaultUriBuilderFactory.EncodingMode; - String baseUrl = "http://example.org"; + String baseUrl = "https://example.org"; DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory(baseUrl); factory.setEncodingMode(EncodingMode.TEMPLATE_AND_VARIABLES); @@ -107,7 +107,7 @@ that holds configuration and preferences: [source,java,indent=0] [subs="verbatim,quotes"] ---- - String baseUrl = "http://example.com"; + String baseUrl = "https://example.com"; DefaultUriBuilderFactory uriBuilderFactory = new DefaultUriBuilderFactory(baseUrl); URI uri = uriBuilderFactory.uriString("/hotels/{hotel}") @@ -180,7 +180,7 @@ the `UriBuilderFactory` strategy. Both can be configured with a custom strategy: [source,java,indent=0] [subs="verbatim,quotes"] ---- - String baseUrl = "http://example.com"; + String baseUrl = "https://example.com"; DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory(baseUrl) factory.setEncodingMode(EncodingMode.TEMPLATE_AND_VALUES); diff --git a/src/docs/asciidoc/web/webflux-cors.adoc b/src/docs/asciidoc/web/webflux-cors.adoc index 2b5fc622cd4..8430694cbca 100644 --- a/src/docs/asciidoc/web/webflux-cors.adoc +++ b/src/docs/asciidoc/web/webflux-cors.adoc @@ -14,8 +14,8 @@ For example you could have your bank account in one tab and evil.com in another. from evil.com should not be able to make AJAX requests to your bank API with your credentials, e.g. withdrawing money from your account! -Cross-Origin Resource Sharing (CORS) is a http://www.w3.org/TR/cors/[W3C specification] -implemented by http://caniuse.com/#feat=cors[most browsers] that allows you to specify +Cross-Origin Resource Sharing (CORS) is a https://www.w3.org/TR/cors/[W3C specification] +implemented by https://caniuse.com/#feat=cors[most browsers] that allows you to specify what kind of cross domain requests are authorized rather than using less secure and less powerful workarounds based on IFRAME or JSONP. @@ -114,7 +114,7 @@ should only be used where appropriate. [source,java,indent=0] [subs="verbatim,quotes"] ---- -@CrossOrigin(origins = "http://domain2.com", maxAge = 3600) +@CrossOrigin(origins = "https://domain2.com", maxAge = 3600) @RestController @RequestMapping("/account") public class AccountController { @@ -141,7 +141,7 @@ public class AccountController { @RequestMapping("/account") public class AccountController { - @CrossOrigin("http://domain2.com") + @CrossOrigin("https://domain2.com") @GetMapping("/{id}") public Mono retrieve(@PathVariable Long id) { // ... @@ -189,7 +189,7 @@ public class WebConfig implements WebFluxConfigurer { public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**") - .allowedOrigins("http://domain2.com") + .allowedOrigins("https://domain2.com") .allowedMethods("PUT", "DELETE") .allowedHeaders("header1", "header2", "header3") .exposedHeaders("header1", "header2") @@ -224,7 +224,7 @@ CorsWebFilter corsFilter() { // config.applyPermitDefaultValues() config.setAllowCredentials(true); - config.addAllowedOrigin("http://domain1.com"); + config.addAllowedOrigin("https://domain1.com"); config.addAllowedHeader("*"); config.addAllowedMethod("*"); diff --git a/src/docs/asciidoc/web/webflux-functional.adoc b/src/docs/asciidoc/web/webflux-functional.adoc index e04b099c412..8d1ebfaf7f1 100644 --- a/src/docs/asciidoc/web/webflux-functional.adoc +++ b/src/docs/asciidoc/web/webflux-functional.adoc @@ -77,7 +77,7 @@ Most applications will run through the WebFlux Java config, see <># -http://www.freemarker.org[Apache FreeMarker] is a template engine for generating any +https://freemarker.apache.org/[Apache FreeMarker] is a template engine for generating any kind of text output from HTML to email, and others. The Spring Framework has a built-in integration for using Spring WebFlux with FreeMarker templates. @@ -125,13 +125,13 @@ https://www.jcp.org/en/jsr/detail?id=223[JSR-223] Java scripting engine. Below i of templating libraries we've tested on different script engines: [horizontal] -http://handlebarsjs.com/[Handlebars] :: http://openjdk.java.net/projects/nashorn/[Nashorn] -https://mustache.github.io/[Mustache] :: http://openjdk.java.net/projects/nashorn/[Nashorn] -http://facebook.github.io/react/[React] :: http://openjdk.java.net/projects/nashorn/[Nashorn] -http://www.embeddedjs.com/[EJS] :: http://openjdk.java.net/projects/nashorn/[Nashorn] -http://www.stuartellis.eu/articles/erb/[ERB] :: http://jruby.org[JRuby] -https://docs.python.org/2/library/string.html#template-strings[String templates] :: http://www.jython.org/[Jython] -https://github.com/sdeleuze/kotlin-script-templating[Kotlin Script templating] :: http://kotlinlang.org/[Kotlin] +https://handlebarsjs.com/[Handlebars] :: https://openjdk.java.net/projects/nashorn/[Nashorn] +https://mustache.github.io/[Mustache] :: https://openjdk.java.net/projects/nashorn/[Nashorn] +https://facebook.github.io/react/[React] :: https://openjdk.java.net/projects/nashorn/[Nashorn] +https://www.embeddedjs.com/[EJS] :: https://openjdk.java.net/projects/nashorn/[Nashorn] +https://www.stuartellis.name/articles/erb/[ERB] :: https://www.jruby.org[JRuby] +https://docs.python.org/2/library/string.html#template-strings[String templates] :: https://www.jython.org/[Jython] +https://github.com/sdeleuze/kotlin-script-templating[Kotlin Script templating] :: https://kotlinlang.org/[Kotlin] [TIP] ==== @@ -147,17 +147,17 @@ The basic rule for integrating any other script engine is that it must implement You need to have the script engine on your classpath: -* http://openjdk.java.net/projects/nashorn/[Nashorn] JavaScript engine is provided with +* https://openjdk.java.net/projects/nashorn/[Nashorn] JavaScript engine is provided with Java 8+. Using the latest update release available is highly recommended. -* http://jruby.org[JRuby] should be added as a dependency for Ruby support. -* http://www.jython.org[Jython] should be added as a dependency for Python support. +* https://www.jruby.org[JRuby] should be added as a dependency for Ruby support. +* https://www.jython.org[Jython] should be added as a dependency for Python support. * `org.jetbrains.kotlin:kotlin-script-util` dependency and a `META-INF/services/javax.script.ScriptEngineFactory` file containing a `org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngineFactory` line should be added for Kotlin script support, see https://github.com/sdeleuze/kotlin-script-templating[this example] for more details. You need to have the script templating library. One way to do that for Javascript is -through http://www.webjars.org/[WebJars]. +through https://www.webjars.org/[WebJars]. @@ -205,9 +205,9 @@ The render function is called with the following parameters: `Mustache.render()` is natively compatible with this signature, so you can call it directly. If your templating technology requires some customization, you may provide a script that -implements a custom render function. For example, http://handlebarsjs.com[Handlerbars] +implements a custom render function. For example, https://handlebarsjs.com[Handlerbars] needs to compile templates before using them, and requires a -http://en.wikipedia.org/wiki/Polyfill[polyfill] in order to emulate some +https://en.wikipedia.org/wiki/Polyfill[polyfill] in order to emulate some browser facilities not available in the server-side script engine. [source,java,indent=0] diff --git a/src/docs/asciidoc/web/webflux-webclient.adoc b/src/docs/asciidoc/web/webflux-webclient.adoc index fa652874c05..7345cf9f177 100644 --- a/src/docs/asciidoc/web/webflux-webclient.adoc +++ b/src/docs/asciidoc/web/webflux-webclient.adoc @@ -38,7 +38,7 @@ The `retrieve()` method is the easiest way to get a response body and decode it: [source,java,intent=0] [subs="verbatim,quotes"] ---- - WebClient client = WebClient.create("http://example.org"); + WebClient client = WebClient.create("https://example.org"); Mono result = client.get() .uri("/persons/{id}", id).accept(MediaType.APPLICATION_JSON) @@ -374,7 +374,7 @@ WebClient client = WebClient.builder() }) .build(); -client.get().uri("http://example.org/") +client.get().uri("https://example.org/") .attribute("myAttribute", "...") .retrieve() .bodyToMono(Void.class); diff --git a/src/docs/asciidoc/web/webflux.adoc b/src/docs/asciidoc/web/webflux.adoc index 6c029c9417a..a8299b4abfd 100644 --- a/src/docs/asciidoc/web/webflux.adoc +++ b/src/docs/asciidoc/web/webflux.adoc @@ -10,7 +10,7 @@ The original web framework included in the Spring Framework, Spring Web MVC, was purpose built for the Servlet API and Servlet containers. The reactive stack, web framework, Spring WebFlux, was added later in version 5.0. It is fully non-blocking, supports -http://www.reactive-streams.org/[Reactive Streams] back pressure, and runs on servers such as +https://www.reactive-streams.org/[Reactive Streams] back pressure, and runs on servers such as Netty, Undertow, and Servlet 3.1+ containers. Both web frameworks mirror the names of their source modules @@ -66,9 +66,9 @@ https://github.com/reactive-streams/reactive-streams-jvm/blob/v1.0.1/README.md#s also https://docs.oracle.com/javase/9/docs/api/java/util/concurrent/Flow.html[adopted] in Java 9, that defines the interaction between asynchronous components with back pressure. For example a data repository -- acting as -http://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Publisher.html[Publisher], +https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Publisher.html[Publisher], can produce data that an HTTP server -- acting as -http://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Subscriber.html[Subscriber], +https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Subscriber.html[Subscriber], can then write to the response. The main purpose of Reactive Streams is to allow the subscriber to control how fast or how slow the publisher will produce data. @@ -943,7 +943,7 @@ The net effect is the same as if the controller had returned a `RedirectView` or `Rendering.redirectTo("abc").build()`, but now the controller itself can simply operate in terms of logical view names. A view name such as `redirect:/some/resource` is relative to the current application, while the view name -`redirect:http://example.com/arbitrary/path` redirects to an absolute URL. +`redirect:https://example.com/arbitrary/path` redirects to an absolute URL. [[webflux-multiple-representations]] @@ -1525,9 +1525,9 @@ can be customized through a `WebDataBinder`, see <>, or by r ==== Matrix variables [.small]#<># -http://tools.ietf.org/html/rfc3986#section-3.3[RFC 3986] discusses name-value pairs in +https://tools.ietf.org/html/rfc3986#section-3.3[RFC 3986] discusses name-value pairs in path segments. In Spring WebFlux we refer to those as "matrix variables" based on an -http://www.w3.org/DesignIssues/MatrixURIs.html["old post"] by Tim Berners-Lee but they +https://www.w3.org/DesignIssues/MatrixURIs.html["old post"] by Tim Berners-Lee but they can be also be referred to as URI path parameters. Matrix variables can appear in any path segment, each variable separated by semicolon and @@ -2172,7 +2172,7 @@ for the body. [.small]#<># Spring WebFlux provides built-in support for -http://wiki.fasterxml.com/JacksonJsonViews[Jackson's Serialization Views] +https://wiki.fasterxml.com/JacksonJsonViews[Jackson's Serialization Views] which allows rendering only a subset of all fields in an Object. To use it with `@ResponseBody` or `ResponseEntity` controller methods, use Jackson's `@JsonView` annotation to activate a serialization view class: @@ -2523,7 +2523,7 @@ include::webflux-cors.adoc[leveloffset=+1] == Web Security [.small]#<># -The http://projects.spring.io/spring-security/[Spring Security] project provides support +The https://projects.spring.io/spring-security/[Spring Security] project provides support for protecting web applications from malicious exploits. Check out the Spring Security reference documentation including: @@ -2852,8 +2852,8 @@ For Jackson JSON and XML, consider using the {api-spring-framework}/http/converter/json/Jackson2ObjectMapperBuilder.html[Jackson2ObjectMapperBuilder] which customizes Jackson's default properties with the following ones: -. http://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_UNKNOWN_PROPERTIES[`DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES`] is disabled. -. http://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html#DEFAULT_VIEW_INCLUSION[`MapperFeature.DEFAULT_VIEW_INCLUSION`] is disabled. +. https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_UNKNOWN_PROPERTIES[`DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES`] is disabled. +. https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html#DEFAULT_VIEW_INCLUSION[`MapperFeature.DEFAULT_VIEW_INCLUSION`] is disabled. It also automatically registers the following well-known modules if they are detected on the classpath: @@ -3035,7 +3035,7 @@ Note that when using both `GzipResourceResolver` and `VersionedResourceResolver` be registered in that order to ensure content based versions are always computed reliably based on the unencoded file. -http://www.webjars.org/documentation[WebJars] are also supported through the +https://www.webjars.org/documentation[WebJars] are also supported through the `WebJarsResourceResolver` which is automatically registered when the `org.webjars:webjars-locator-core` library is present on the classpath. The resolver can re-write URLs to include the version of the jar and can also match against incoming URLs diff --git a/src/docs/asciidoc/web/webmvc-cors.adoc b/src/docs/asciidoc/web/webmvc-cors.adoc index 5fa44a03ecf..a7a8d8a6c8b 100644 --- a/src/docs/asciidoc/web/webmvc-cors.adoc +++ b/src/docs/asciidoc/web/webmvc-cors.adoc @@ -14,8 +14,8 @@ For example you could have your bank account in one tab and evil.com in another. from evil.com should not be able to make AJAX requests to your bank API with your credentials, e.g. withdrawing money from your account! -Cross-Origin Resource Sharing (CORS) is a http://www.w3.org/TR/cors/[W3C specification] -implemented by http://caniuse.com/#feat=cors[most browsers] that allows you to specify +Cross-Origin Resource Sharing (CORS) is a https://www.w3.org/TR/cors/[W3C specification] +implemented by https://caniuse.com/#feat=cors[most browsers] that allows you to specify what kind of cross domain requests are authorized rather than using less secure and less powerful workarounds based on IFRAME or JSONP. @@ -114,7 +114,7 @@ should only be used where appropriate. [source,java,indent=0] [subs="verbatim,quotes"] ---- -@CrossOrigin(origins = "http://domain2.com", maxAge = 3600) +@CrossOrigin(origins = "https://domain2.com", maxAge = 3600) @RestController @RequestMapping("/account") public class AccountController { @@ -141,7 +141,7 @@ public class AccountController { @RequestMapping("/account") public class AccountController { - @CrossOrigin("http://domain2.com") + @CrossOrigin("https://domain2.com") @GetMapping("/{id}") public Account retrieve(@PathVariable Long id) { // ... @@ -196,7 +196,7 @@ public class WebConfig implements WebMvcConfigurer { public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**") - .allowedOrigins("http://domain2.com") + .allowedOrigins("https://domain2.com") .allowedMethods("PUT", "DELETE") .allowedHeaders("header1", "header2", "header3") .exposedHeaders("header1", "header2") @@ -220,14 +220,14 @@ To enable CORS in the XML namespace, use the `` element: + allowed-origins="https://domain1.com" /> ---- @@ -262,7 +262,7 @@ CorsConfiguration config = new CorsConfiguration(); // config.applyPermitDefaultValues() config.setAllowCredentials(true); -config.addAllowedOrigin("http://domain1.com"); +config.addAllowedOrigin("https://domain1.com"); config.addAllowedHeader("*"); config.addAllowedMethod("*"); diff --git a/src/docs/asciidoc/web/webmvc-view.adoc b/src/docs/asciidoc/web/webmvc-view.adoc index 910ff322484..aa78404f93d 100644 --- a/src/docs/asciidoc/web/webmvc-view.adoc +++ b/src/docs/asciidoc/web/webmvc-view.adoc @@ -20,12 +20,12 @@ helpful for independent work on UI templates, e.g. by designer, without the need running server. If you're looking to replace JSPs, Thymeleaf offers one of the most extensive set of features that will make such a transition easier. Thymeleaf is actively developed and maintained. For a more complete introduction see the -http://www.thymeleaf.org/[Thymeleaf] project home page. +https://www.thymeleaf.org/[Thymeleaf] project home page. The Thymeleaf integration with Spring MVC is managed by the Thymeleaf project. The configuration involves a few bean declarations such as `ServletContextTemplateResolver`, `SpringTemplateEngine`, and `ThymeleafViewResolver`. -See http://www.thymeleaf.org/documentation.html[Thymeleaf+Spring] for more details. +See https://www.thymeleaf.org/documentation.html[Thymeleaf+Spring] for more details. @@ -34,7 +34,7 @@ See http://www.thymeleaf.org/documentation.html[Thymeleaf+Spring] for more detai == FreeMarker [.small]#<># -http://www.freemarker.org[Apache FreeMarker] is a template engine for generating any +https://freemarker.apache.org/[Apache FreeMarker] is a template engine for generating any kind of text output from HTML to email, and others. The Spring Framework has a built-in integration for using Spring MVC with FreeMarker templates. @@ -545,13 +545,13 @@ https://www.jcp.org/en/jsr/detail?id=223[JSR-223] Java scripting engine. Below i of templating libraries we've tested on different script engines: [horizontal] -http://handlebarsjs.com/[Handlebars] :: http://openjdk.java.net/projects/nashorn/[Nashorn] -https://mustache.github.io/[Mustache] :: http://openjdk.java.net/projects/nashorn/[Nashorn] -http://facebook.github.io/react/[React] :: http://openjdk.java.net/projects/nashorn/[Nashorn] -http://www.embeddedjs.com/[EJS] :: http://openjdk.java.net/projects/nashorn/[Nashorn] -http://www.stuartellis.eu/articles/erb/[ERB] :: http://jruby.org[JRuby] -https://docs.python.org/2/library/string.html#template-strings[String templates] :: http://www.jython.org/[Jython] -https://github.com/sdeleuze/kotlin-script-templating[Kotlin Script templating] :: http://kotlinlang.org/[Kotlin] +https://handlebarsjs.com/[Handlebars] :: https://openjdk.java.net/projects/nashorn/[Nashorn] +https://mustache.github.io/[Mustache] :: https://openjdk.java.net/projects/nashorn/[Nashorn] +https://facebook.github.io/react/[React] :: https://openjdk.java.net/projects/nashorn/[Nashorn] +https://www.embeddedjs.com/[EJS] :: https://openjdk.java.net/projects/nashorn/[Nashorn] +https://www.stuartellis.name/articles/erb/[ERB] :: https://www.jruby.org[JRuby] +https://docs.python.org/2/library/string.html#template-strings[String templates] :: https://www.jython.org/[Jython] +https://github.com/sdeleuze/kotlin-script-templating[Kotlin Script templating] :: https://kotlinlang.org/[Kotlin] [TIP] ==== @@ -567,17 +567,17 @@ The basic rule for integrating any other script engine is that it must implement You need to have the script engine on your classpath: -* http://openjdk.java.net/projects/nashorn/[Nashorn] JavaScript engine is provided with +* https://openjdk.java.net/projects/nashorn/[Nashorn] JavaScript engine is provided with Java 8+. Using the latest update release available is highly recommended. -* http://jruby.org[JRuby] should be added as a dependency for Ruby support. -* http://www.jython.org[Jython] should be added as a dependency for Python support. +* https://www.jruby.org[JRuby] should be added as a dependency for Ruby support. +* https://www.jython.org[Jython] should be added as a dependency for Python support. * `org.jetbrains.kotlin:kotlin-script-util` dependency and a `META-INF/services/javax.script.ScriptEngineFactory` file containing a `org.jetbrains.kotlin.script.jsr223.KotlinJsr223JvmLocalScriptEngineFactory` line should be added for Kotlin script support, see https://github.com/sdeleuze/kotlin-script-templating[this example] for more details. You need to have the script templating library. One way to do that for Javascript is -through http://www.webjars.org/[WebJars]. +through https://www.webjars.org/[WebJars]. @@ -673,9 +673,9 @@ The render function is called with the following parameters: `Mustache.render()` is natively compatible with this signature, so you can call it directly. If your templating technology requires some customization, you may provide a script that -implements a custom render function. For example, http://handlebarsjs.com[Handlerbars] +implements a custom render function. For example, https://handlebarsjs.com[Handlerbars] needs to compile templates before using them, and requires a -http://en.wikipedia.org/wiki/Polyfill[polyfill] in order to emulate some +https://en.wikipedia.org/wiki/Polyfill[polyfill] in order to emulate some browser facilities not available in the server-side script engine. [source,java,indent=0] @@ -1591,7 +1591,7 @@ This section focuses on Spring's support for Tiles v3 in the === Dependencies To be able to use Tiles, you have to add a dependency on Tiles version 3.0.1 or higher -and http://tiles.apache.org/framework/dependency-management.html[its transitive dependencies] +and https://tiles.apache.org/framework/dependency-management.html[its transitive dependencies] to your project. @@ -1601,7 +1601,7 @@ to your project. To be able to use Tiles, you have to configure it using files containing definitions (for basic information on definitions and other Tiles concepts, please have a look at -http://tiles.apache.org[]). In Spring this is done using the `TilesConfigurer`. Have a +https://tiles.apache.org[]). In Spring this is done using the `TilesConfigurer`. Have a look at the following piece of example ApplicationContext configuration: [source,xml,indent=0] @@ -1907,7 +1907,7 @@ annotations. When further control is needed, a custom `ObjectMapper` can be inje through the `ObjectMapper` property for cases where custom JSON serializers/deserializers need to be provided for specific types. -As of Spring Framework 5.0.7, http://en.wikipedia.org/wiki/JSONP[JSONP] support is +As of Spring Framework 5.0.7, https://en.wikipedia.org/wiki/JSONP[JSONP] support is deprecated and requires to customize the JSONP query parameter name(s) through the `jsonpParameterNames` property. This support will be removed as of Spring Framework 5.1, <> should be used instead. diff --git a/src/docs/asciidoc/web/webmvc.adoc b/src/docs/asciidoc/web/webmvc.adoc index 68e8875a1b0..b9439390a75 100644 --- a/src/docs/asciidoc/web/webmvc.adoc +++ b/src/docs/asciidoc/web/webmvc.adoc @@ -707,7 +707,7 @@ redirect is needed. The rest of the view name is the redirect URL. The net effect is the same as if the controller had returned a `RedirectView`, but now the controller itself can simply operate in terms of logical view names. A logical view name such as `redirect:/myapp/some/resource` will redirect relative to the current -Servlet context, while a name such as `redirect:http://myhost.com/some/arbitrary/path` +Servlet context, while a name such as `redirect:https://myhost.com/some/arbitrary/path` will redirect to an absolute URL. Note that if a controller method is annotated with the `@ResponseStatus`, the annotation @@ -861,7 +861,7 @@ You can enable changing of locales by adding the `LocaleChangeInterceptor` to on accordingly, calling the `setLocale` method on the `LocaleResolver` in the dispatcher's application context. The next example shows that calls to all `{asterisk}.view` resources that contain a parameter named `siteLanguage` now changes the locale. So, for example, -a request for the URL, `http://www.sf.net/home.view?siteLanguage=nl`, changes the site +a request for the URL, `https://www.sf.net/home.view?siteLanguage=nl`, changes the site language to Dutch. The following example shows how to intercept the locale: [source,xml,indent=0] @@ -987,7 +987,7 @@ request with a simple request parameter. `MultipartResolver` from the `org.springframework.web.multipart` package is a strategy for parsing multipart requests including file uploads. There is one implementation -based on http://jakarta.apache.org/commons/fileupload[__Commons FileUpload__] and another +based on https://jakarta.apache.org/commons/fileupload[__Commons FileUpload__] and another based on Servlet 3.0 multipart request parsing. To enable multipart handling, you need declare a `MultipartResolver` bean in your @@ -1189,9 +1189,9 @@ The XML configuration equivalent: xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context.xsd"> + https://www.springframework.org/schema/context/spring-context.xsd"> @@ -1413,7 +1413,7 @@ Many common path extensions are whitelisted by default. Applications with custom negotiation to avoid having a `Content-Disposition` header added for those extensions. See <>. -Check http://pivotal.io/security/cve-2015-5211[CVE-2015-5211] for additional +Check https://pivotal.io/security/cve-2015-5211[CVE-2015-5211] for additional recommendations related to RFD. @@ -1836,9 +1836,9 @@ can be customized through a `WebDataBinder`, see <>, or by r ==== Matrix variables [.small]#<># -http://tools.ietf.org/html/rfc3986#section-3.3[RFC 3986] discusses name-value pairs in +https://tools.ietf.org/html/rfc3986#section-3.3[RFC 3986] discusses name-value pairs in path segments. In Spring MVC we refer to those as "matrix variables" based on an -http://www.w3.org/DesignIssues/MatrixURIs.html["old post"] by Tim Berners-Lee but they +https://www.w3.org/DesignIssues/MatrixURIs.html["old post"] by Tim Berners-Lee but they can be also be referred to as URI path parameters. Matrix variables can appear in any path segment, each variable separated by semicolon and @@ -2586,7 +2586,7 @@ types for the body. [.small]#<># Spring MVC provides built-in support for -http://wiki.fasterxml.com/JacksonJsonViews[Jackson's Serialization Views] +https://wiki.fasterxml.com/JacksonJsonViews[Jackson's Serialization Views] which allows rendering only a subset of all fields in an Object. To use it with `@ResponseBody` or `ResponseEntity` controller methods, use Jackson's `@JsonView` annotation to activate a serialization view class: @@ -2659,7 +2659,7 @@ to the model: [[mvc-ann-jsonp]] ===== Jackson JSONP -In order to enable http://en.wikipedia.org/wiki/JSONP[JSONP] support for `@ResponseBody` +In order to enable https://en.wikipedia.org/wiki/JSONP[JSONP] support for `@ResponseBody` and `ResponseEntity` methods, declare a `@ControllerAdvice` bean that extends `AbstractJsonpResponseBodyAdvice` as shown below where the constructor argument indicates the JSONP query parameter name(s): @@ -3557,7 +3557,7 @@ invokes the configured exception resolvers and completes the request. ==== SSE `SseEmitter` is a sub-class of `ResponseBodyEmitter` that provides support for -http://www.w3.org/TR/eventsource/[Server-Sent Events] where events sent from the server +https://www.w3.org/TR/eventsource/[Server-Sent Events] where events sent from the server are formatted according to the W3C SSE specification. In order to produce an SSE stream from a controller simply return `SseEmitter`: @@ -3729,7 +3729,7 @@ include::webmvc-cors.adoc[leveloffset=+1] == Web Security [.small]#<># -The http://projects.spring.io/spring-security/[Spring Security] project provides support +The https://projects.spring.io/spring-security/[Spring Security] project provides support for protecting web applications from malicious exploits. Check out the Spring Security reference documentation including: @@ -3738,7 +3738,7 @@ reference documentation including: * {doc-spring-security}/html5/#csrf[CSRF protection] * {doc-spring-security}/html5/#headers[Security Response Headers] -http://hdiv.org/[HDIV] is another web security framework that integrates with Spring MVC. +https://hdiv.org/[HDIV] is another web security framework that integrates with Spring MVC. @@ -3925,9 +3925,9 @@ In XML use the `` element: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc - http://www.springframework.org/schema/mvc/spring-mvc.xsd"> + https://www.springframework.org/schema/mvc/spring-mvc.xsd"> @@ -3958,7 +3958,7 @@ In Java config implement `WebMvcConfigurer` interface: ---- In XML check attributes and sub-elements of ``. You can -view the http://schema.spring.io/mvc/spring-mvc.xsd[Spring MVC XML schema] or use +view the https://schema.spring.io/mvc/spring-mvc.xsd[Spring MVC XML schema] or use the code completion feature of your IDE to discover what attributes and sub-elements are available. @@ -3999,9 +3999,9 @@ In XML, the same: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc - http://www.springframework.org/schema/mvc/spring-mvc.xsd"> + https://www.springframework.org/schema/mvc/spring-mvc.xsd"> @@ -4072,9 +4072,9 @@ In XML, the same: xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc - http://www.springframework.org/schema/mvc/spring-mvc.xsd"> + https://www.springframework.org/schema/mvc/spring-mvc.xsd"> @@ -4241,8 +4241,8 @@ that adds support for accessing parameter names (feature added in Java 8). This builder customizes Jackson's default properties with the following ones: -. http://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_UNKNOWN_PROPERTIES[`DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES`] is disabled. -. http://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html#DEFAULT_VIEW_INCLUSION[`MapperFeature.DEFAULT_VIEW_INCLUSION`] is disabled. +. https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html#FAIL_ON_UNKNOWN_PROPERTIES[`DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES`] is disabled. +. https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html#DEFAULT_VIEW_INCLUSION[`MapperFeature.DEFAULT_VIEW_INCLUSION`] is disabled. It also automatically registers the following well-known modules if they are detected on the classpath: @@ -4254,8 +4254,8 @@ It also automatically registers the following well-known modules if they are det [NOTE] ==== Enabling indentation with Jackson XML support requires -http://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.codehaus.woodstox%22%20AND%20a%3A%22woodstox-core-asl%22[`woodstox-core-asl`] -dependency in addition to http://search.maven.org/#search%7Cga%7C1%7Ca%3A%22jackson-dataformat-xml%22[`jackson-dataformat-xml`] one. +https://search.maven.org/#search%7Cgav%7C1%7Cg%3A%22org.codehaus.woodstox%22%20AND%20a%3A%22woodstox-core-asl%22[`woodstox-core-asl`] +dependency in addition to https://search.maven.org/#search%7Cga%7C1%7Ca%3A%22jackson-dataformat-xml%22[`jackson-dataformat-xml`] one. ==== Other interesting Jackson modules are available: @@ -4508,7 +4508,7 @@ bean so it can be injected into others. You can also make the rewrite transparen `ResourceUrlEncodingFilter` for Thymeleaf, JSPs, FreeMarker, and others with URL tags that rely on `HttpServletResponse#encodeURL`. -http://www.webjars.org/documentation[WebJars] are also supported through the +https://www.webjars.org/documentation[WebJars] are also supported through the `WebJarsResourceResolver` which is automatically registered when the `org.webjars:webjars-locator-core` library is present on the classpath. The resolver can re-write URLs to include the version of the jar and can also match against incoming URLs diff --git a/src/docs/asciidoc/web/websocket-intro.adoc b/src/docs/asciidoc/web/websocket-intro.adoc index b74775706c5..1b0bcf9db35 100644 --- a/src/docs/asciidoc/web/websocket-intro.adoc +++ b/src/docs/asciidoc/web/websocket-intro.adoc @@ -1,7 +1,7 @@ [[websocket-intro]] = Introduction -The WebSocket protocol http://tools.ietf.org/html/rfc6455[RFC 6455] provides a standardized +The WebSocket protocol https://tools.ietf.org/html/rfc6455[RFC 6455] provides a standardized way to establish a full-duplex, two-way communication channel between client and server over a single TCP connection. It is a different TCP protocol from HTTP but is designed to work over HTTP, using ports 80 and 443 and allowing re-use of existing firewall rules. diff --git a/src/docs/asciidoc/web/websocket.adoc b/src/docs/asciidoc/web/websocket.adoc index 9e8a1cea3dc..6e4c2e749a5 100644 --- a/src/docs/asciidoc/web/websocket.adoc +++ b/src/docs/asciidoc/web/websocket.adoc @@ -82,9 +82,9 @@ XML configuration equivalent: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> @@ -139,9 +139,9 @@ And the XML configuration equivalent: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> @@ -224,7 +224,7 @@ through the use of the `` element in `web.xml`: 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_3_0.xsd" + https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> @@ -243,7 +243,7 @@ Java initialization API, if required: 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_3_0.xsd" + https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> @@ -294,9 +294,9 @@ or WebSocket XML namespace: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> @@ -352,9 +352,9 @@ or WebSocket XML namespace: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> @@ -422,7 +422,7 @@ WebSocket and SockJS allowed origins can be configured as shown bellow: @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { - registry.addHandler(myHandler(), "/myHandler").setAllowedOrigins("http://mydomain.com"); + registry.addHandler(myHandler(), "/myHandler").setAllowedOrigins("https://mydomain.com"); } @Bean @@ -443,11 +443,11 @@ XML configuration equivalent: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> - + @@ -485,7 +485,7 @@ SockJS consists of: * The https://github.com/sockjs/sockjs-protocol[SockJS protocol] defined in the form of executable -http://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html[narrated tests]. +https://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html[narrated tests]. * The https://github.com/sockjs/sockjs-client/[SockJS JavaScript client] - a client library for use in browsers. * SockJS server implementations including one in the Spring Framework `spring-websocket` module. * As of 4.1 `spring-websocket` also provides a SockJS Java client. @@ -532,7 +532,7 @@ see each transport one at a time. The SockJS client also provides a debug flag which enables helpful messages in the browser console. On the server side enable `TRACE` logging for `org.springframework.web.socket`. For even more detail refer to the SockJS protocol -http://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html[narrated test]. +https://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html[narrated test]. @@ -571,9 +571,9 @@ and the XML configuration equivalent: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> @@ -609,7 +609,7 @@ a key reason for having SockJS. This section covers important considerations about running in those browsers. The SockJS client supports Ajax/XHR streaming in IE 8 and 9 via Microsoft's -http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx[XDomainRequest]. +https://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx[XDomainRequest]. That works across domains but does not support sending cookies. Cookies are very often essential for Java applications. However since the SockJS client can be used with many server @@ -692,7 +692,7 @@ from concluding a connection is hung. The Spring SockJS configuration has a prop called `heartbeatTime` that can be used to customize the frequency. By default a heartbeat is sent after 25 seconds assuming no other messages were sent on that connection. This 25 seconds value is in line with the following -http://tools.ietf.org/html/rfc6202[IETF recommendation] for public Internet applications. +https://tools.ietf.org/html/rfc6202[IETF recommendation] for public Internet applications. [NOTE] ==== @@ -860,7 +860,7 @@ server will need to agree on some protocol that defines message content. [[websocket-stomp-overview]] === Overview -http://stomp.github.io/stomp-specification-1.2.html#Abstract[STOMP] is a simple, +https://stomp.github.io/stomp-specification-1.2.html#Abstract[STOMP] is a simple, text-oriented messaging protocol that was originally created for scripting languages such as Ruby, Python, and Perl to connect to enterprise message brokers. It is designed to address a minimal subset of commonly used messaging patterns. STOMP can be @@ -948,7 +948,7 @@ client subscription. The above overview is intended to provide the most basic understanding of the STOMP protocol. It is recommended to review the protocol -http://stomp.github.io/stomp-specification-1.2.html[specification] in full. +https://stomp.github.io/stomp-specification-1.2.html[specification] in full. @@ -1019,9 +1019,9 @@ The same configuration in XML: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> @@ -1435,8 +1435,8 @@ sending loop, and is not suitable for clustering. As an alternative, application can upgrade to using a full-featured message broker. Check the STOMP documentation for your message broker of choice (e.g. -http://www.rabbitmq.com/stomp.html[RabbitMQ], -http://activemq.apache.org/stomp.html[ActiveMQ], etc.), install the broker, +https://www.rabbitmq.com/stomp.html[RabbitMQ], +https://activemq.apache.org/stomp.html[ActiveMQ], etc.), install the broker, and run it with STOMP support enabled. Then enable the STOMP broker relay in the Spring configuration instead of the simple broker. @@ -1473,9 +1473,9 @@ XML configuration equivalent: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> @@ -1625,9 +1625,9 @@ In XML: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> @@ -1710,7 +1710,7 @@ Spring Security provides https://docs.spring.io/spring-security/site/docs/current/reference/htmlsingle/#websocket[WebSocket sub-protocol authorization] that uses a `ChannelInterceptor` to authorize messages based on the user header in them. Also Spring Session provides a -http://docs.spring.io/spring-session/docs/current/reference/html5/#websocket[WebSocket integration] +https://docs.spring.io/spring-session/docs/current/reference/html5/#websocket[WebSocket integration] that ensures the user HTTP session does not expire when the WebSocket session is still active. ==== @@ -1902,7 +1902,7 @@ over, all unique user queues are removed. For example, RabbitMQ creates auto-del queues when destinations like `/exchange/amq.direct/position-updates` are used. So in that case the client could subscribe to `/user/exchange/amq.direct/position-updates`. Similarly, ActiveMQ has -http://activemq.apache.org/delete-inactive-destinations.html[configuration options] +https://activemq.apache.org/delete-inactive-destinations.html[configuration options] for purging inactive destinations. ==== @@ -2282,9 +2282,9 @@ Here is example configuration: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> @@ -2335,9 +2335,9 @@ Here is example configuration: xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> diff --git a/src/docs/dist/license.txt b/src/docs/dist/license.txt index da224d22baa..1a517dfdf79 100644 --- a/src/docs/dist/license.txt +++ b/src/docs/dist/license.txt @@ -244,13 +244,13 @@ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -Copyright (c) 1999-2009, OW2 Consortium +Copyright (c) 1999-2009, OW2 Consortium >>> CGLIB 3.0 (cglib:cglib:3.0): 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 is included above. @@ -263,7 +263,7 @@ source code to be made available (as would be noted above), you may obtain a copy of the source code corresponding to the binaries for such open source components and modifications thereto, if any, (the "Source Files"), by downloading the Source Files from https://spring.io/projects, Pivotal's website -at http://network.pivotal.io/open-source, or by sending a request, with your +at https://network.pivotal.io/open-source, or by sending a request, with your name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San Francisco, CA 94103, Attention: General Counsel. All such requests should clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal diff --git a/src/docs/dist/readme.txt b/src/docs/dist/readme.txt index 03c97100d12..9bab4389f83 100644 --- a/src/docs/dist/readme.txt +++ b/src/docs/dist/readme.txt @@ -6,7 +6,7 @@ https://jira.spring.io/browse/SPR Please consult the documentation located within the 'docs/spring-framework-reference' directory of this release and also visit the official Spring Framework home at -http://projects.spring.io/spring-framework/ +https://projects.spring.io/spring-framework/ There you will find links to the forum, issue tracker, and other resources.