diff --git a/CODE_OF_CONDUCT.adoc b/CODE_OF_CONDUCT.adoc index f013d6f36b..17783c7c06 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 8679c09c6c..809e80443a 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 a64e3ba4e7..6fbdd60956 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 9f7529e286..ed49a1b923 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 5c46f967b9..d242fb8a49 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 942b71f5d3..1d555305c0 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 49cda9de8c..0b669c9018 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 fe137cc284..3ca7fc95c7 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 af4b006b1f..48e391756b 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 2466db0dc3..200f78c4c9 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 4497650b45..a29b453f3e 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 956cdc8d53..250cd01890 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 a724a5d1cb..e619a2abef 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 6b8a3a7cba..1bea8aea45 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 f87b775a0e..42f487cfeb 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 ec64e9e4c9..533a0c3a8d 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 5099a6cec7..8dc92e7eec 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 b6ae64a7cb..3297291ace 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 3906421115..c37577ad18 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 ce52b514b5..2885b1c521 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 fe74f41d58..dc04ed6e6d 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 ffb1e23c55..eac067eda1 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 00c29fcf6c..f9d54992b2 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 2b2fec4528..1ea2d5df22 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 67dda7af02..14f90bc2b8 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 d8e8aea516..fc975ef366 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 02df20fb4a..4865b4748f 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 55daf6622b..c9c3c8ceff 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 6e8a28a1c5..0fbbe69bb5 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 96186f6812..8d4b9e14f0 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 6518aa5a5b..6ef7d71678 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 e43d7d192e..88a4aa4c06 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 927fb3bbfc..75ab5dc900 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 039a0a9fb8..3048b680ff 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 5c3ac8cb51..e35849de52 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 16cbd77695..e72012c6bf 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 bbbf6598e2..dbb83ddf18 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 6c83f3cc37..d67edec362 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 9e3e239ffe..9a36d73d9b 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 395b106701..f8fbdd64e9 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 692090839b..6e8aa8a41b 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 8c16a2e8e6..e53b544d47 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 b351c17d24..50056707b7 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 bd8e6e0f4b..6aac0f0b93 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 2827cd4350..936ec4660f 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 7ca8658a38..0be01a502c 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 76390836cc..f4a7c18e3f 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 7dbc8c1df4..25ff4717c1 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 cd8ea77224..215653ba9b 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 7f04c9cfc9..498e1c2bff 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 c5d272bea2..8944bfff09 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 0b05f07b56..c9ee936d7b 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 9d0c6e21c5..9d5082a1fd 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 5755bf9f52..84d1b9b57c 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 5b01d9a235..b2500f3490 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 70bf75abb6..57e04bb62c 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 119ac7b960..4fe5e1f6e7 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 f374935be6..ea0720e596 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 bb53469a23..c8607879a8 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 e8f429e291..b06abd68ed 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 749d860cc4..cbf63edfff 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 c23f8d83c4..2cc72789a6 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 1c9cdc7a33..975d2ffbe6 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 ff278e317f..e19d89ddf9 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 1dfc47c03d..81f2b6984c 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 61bac017c4..b13c09b802 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 027932fc5f..86f4c59af6 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 e220570312..06d253f99b 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 5eb502aeae..468a91158c 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 8b5f7b30e8..f454160fa5 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 101388900b..d4b3373c7f 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 e684453b2d..ffc698432d 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 39a6674e4c..a6dca75db6 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 c002bc802d..9a0d5bfe90 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 888b859694..d5d4ad4eaa 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 9d25cc7bab..d732b4e489 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 9324cfa2e6..0ee67d0774 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 fe20e27913..914b695744 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 0767ea4025..8a630106f4 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 d56c8ac652..0354572395 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 576188f6d9..b1199e14c4 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 fc4adcf737..a8cf083f5b 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 a701bd6d44..c01a9cbd10 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 2152a14ebd..7305ff44f6 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 c6145c5ed9..fe14beb04a 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 4a14c26f74..ede0f2b5a7 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 1b508e986f..cb6ee84281 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 513a4e2453..919d9b4504 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 26bc503450..2f61fc4b66 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 7c3886fcc7..3b91f1061b 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 92eee80e41..bf8d3718eb 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 599c70774d..10c050e91a 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 1a783dba25..8c959ffb53 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 c6ee98f04a..c1ef45c229 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 d50bc84016..a4322c8b43 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 f7c82739ec..60451d6764 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 abe4901a2e..84c6015caf 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 b1e3349fe2..9c80d40d76 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 7b8d8ea419..ff902c6619 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 7e441e5710..32c9a5cef3 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 7a341f5730..97274401f0 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 a727902501..efd60eadbc 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 8bb0eabec8..d4eb3a0291 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 e2540cfabb..a282649a6f 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 71692c80fa..f3b75c99c9 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 6508935647..2f3da5a432 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 9c59b53fa2..2e9b6e9cbb 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 1385da61a2..5c32bdfe37 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 28571470be..248426df62 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 ce647d6bbf..753e10addb 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 4730d4eabb..d36983847e 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 0af0fbc285..66cb01be63 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 c35a40e9fc..39c7e22b63 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 fde70ab2af..4f2d584f7b 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 b283956f36..319f468583 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 7d18436089..675f6e57aa 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 ecf4f24591..1e5c5edd72 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 698c0b782f..642888580e 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 223aa24a91..176f48d78e 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 d033611a48..c008dd79ae 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 1ee3e95dab..e08e27d75a 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 0714543882..6881c9b3ca 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 e2684e4109..f533d18d92 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 cd3156405e..b6b96384a7 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 dc3f6216ae..51499dabc9 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 408d8fc932..a3f3f6584a 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 390e9bdfae..85113ce5a5 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 8ed5a8ade9..da3fd7911e 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 57b603982c..a45e82af3c 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 e3ff87f339..ceeb71b3d3 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 844fbad1b8..461d13a43f 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 0589364c5c..06dc1c2ddb 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 d4ece9f249..c3d35d4b55 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 e4c0164c91..c1025ac1df 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 897b1a2582..e1bf669cd1 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 47d8c32ee9..34158d6020 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 3cc7f99ff6..a1a3a7ff8a 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 fd388cbc5a..54976dd8ab 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 e025b94566..83dc9cc056 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 2e9257a5e7..ae2e3de801 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 b2db6a5dbc..a66f82c287 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 54ef771ee5..1d6c1fbb22 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 9c431351ca..a0ca57711e 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 50aa301da7..7f8650d996 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 39dfc017d5..5c430e2235 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 811fa9f939..0058abbe49 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 a7a1736887..3f8404aba4 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 d4dda4bd71..9808424104 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 c82ad127c8..e7cde894f2 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 e2f16edec2..39d2d6aa0a 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 4ab27910fb..1ef0ee24aa 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 967622ae43..96c27722cd 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 2ed8a37dab..30d03c5176 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 dd65458994..e35adf1ebb 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 69ad8e5dd8..8ff4b4aaeb 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 1732fea367..ac2f82d114 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 1cc852c968..c9d92a2aff 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 77502a0ff2..164d509b61 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 c8e048cddf..33b1d01e1f 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 0a236968a2..3b885f39bb 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 16619f8211..c7b946236f 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 654d220715..2e31588101 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 fcc5fd4a74..1c8b0ec136 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 9e2ef96b90..c27a06575c 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 63bce2af38..ff9324b80c 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 f397a4e57f..c2926bb43b 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 d9c17d252b..5881e7e104 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 658bc50bb6..d85fce5505 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 aeb0542b3f..c8d7b64239 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 b7215b4392..a887b48f76 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 15ca916777..03b636815d 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 ff7a0cc938..96a7f8a1f8 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 148a0987f0..fd076077b2 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 5503d416a3..396aff1b4a 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 d2d6a0b3cc..2b408ebc70 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 dea13f0e17..ed81719c56 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 cd3f86525c..49e5d99d31 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 6a831323c8..597425c118 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 02739cda00..f28ec98b83 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 80371e4210..1d28a27fe6 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 f7b164baba..267fbf1f04 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 1802b03707..749d1a0f6f 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 e7cdd48668..1afa1bcc5b 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 245b17373d..bee37740d6 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 09a3792652..aa674b4d80 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 f8281ba64f..170c788035 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 612e91d4bc..ab03d33fd9 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 1a737114cb..f2434e3ed5 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 c7414ca42f..86a4563b87 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 164bc9207b..5b6e6c38e6 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 05c6a5f1b7..342d5de076 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 43d43cea2f..e188f8d80b 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 9ca1c2368c..0a923d67ff 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 daf974cdab..0f49e8b5d0 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 60c6008a36..7e3a60aef0 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 2538912a0f..a351fc3ea0 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 adf5127aa6..675f23e12c 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 92bca32138..77458b5ada 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 8ed78c14c3..4ebc1b082a 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 6baca91698..55dbadf0a2 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 d96f9fdff3..9823232e06 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 3ececf15fe..6759871191 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 a2ff643576..6680ccdc52 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 5e95d65dfc..41850581db 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 49aefaa4eb..e38f3fe66d 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 3404f3b2e2..47bad514f1 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 52e37d17f3..a8ad9606a0 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 129c287ed5..b27ef6d847 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 f4db584381..61d6e9e1f5 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 348b253711..e68d7aec2f 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 5d71dab2fa..8dad2ae07f 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 aee21a91e7..fd5003b812 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 3fd2cc6666..9078462f86 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 d1b74bf13f..581c9a6aba 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 12d4d0a240..3312026258 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 9c45c6c183..9d756d6e61 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 311ce00924..b46c377026 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 dba7c83913..ff9aa1f93e 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 ccd9f49b7d..e35246a557 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 cec104c7a8..11fc428e4f 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 cfd8d5f10a..29ed13f1f6 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 a1024abd48..12c03496a0 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 0a10dd9828..1e1cbf9a32 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 15278f7832..b6acb53218 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 9ae6ccafae..e639a00129 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 320602d4b3..77c0a6077d 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 3b82324807..4a4cfa5ade 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 439a4426f2..8a283386c0 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 b0b7d0da24..2dc0bc8016 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 eaf38ed479..ec3cbebcfd 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 051fc36701..d4663f51bc 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 da616c1768..a8fb4c30e5 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 7f5c06348e..338bcb2dfe 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 eca23fa50d..c70c4f8157 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 f29bb47e47..e1e03235e8 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 4ee50967cb..26c033e434 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 4e5a3d2a36..057fd03a45 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 d21e42aaf2..01b801aee0 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 83ff005e6b..b2f02184a6 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 76e2f32a98..986d1055a6 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 5772df3a59..a39695faa3 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 7cd1f74d3f..cf641d3218 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 9c9be1d852..7c716bf4f3 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 2a10c05776..6cad0be8b6 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 1be1c20acd..e55d68285d 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 fc75176abe..d2d213bb3c 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 dadf4c66d6..6d42511faa 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 f0665b942c..6bba2b433e 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 c2fc5c1e1c..a942cc15b8 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 dea479b07f..98df661b9e 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 abf1b39a43..8186b7cb47 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 c66e57c866..c563043bff 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 93540ddd85..7397807dd4 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 5b516c4c1c..82e472c1e1 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 a23e25dded..8715c2bdc3 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 e6ef588614..f0087de538 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 4f80f3ca05..735073e5d3 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 b1638eb796..37b0a52c52 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 874dcd4f9a..f32eada4b0 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 df0e3e9dc5..efb3b64eac 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 732bbb992e..afa7b4231d 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 c948a0562d..ca03c5e3c4 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 8b2c6f58c8..fc376b7c8a 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 a85779c571..a44b25de42 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 a9b3744c22..33eeaf1dec 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 1ec6c84049..a1a62d6bd2 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 1d0942dea8..c8b061acee 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 f4fac4bf6d..098b9d3c2b 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 28885e0f71..f5f339734d 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 4914500d5c..35c25f47d6 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 a4f077b89a..058df05dbc 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 b53f8ba235..d2fcb90af2 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 50992b4114..211486dcc6 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 206d9775fc..299be871fa 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 e90b46b5e6..0ff1a7d4d7 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 e06d0678be..463cdadeb8 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 e3c9a68a95..79c296d426 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 05667d0aa1..7795ae870e 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 10ef9854b7..f0f051fd76 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 48647dc6c4..135e1a4d7c 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 1d64f8cfc4..7bd7b6fcb7 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 ec2cc030f6..676b914c6f 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 3e061acb9d..6d162a3f66 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 22495ecbdf..5e815e59fb 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 46df8a3f54..1932b62f01 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 d21e42aaf2..01b801aee0 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 83ff005e6b..b2f02184a6 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 76e2f32a98..986d1055a6 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 4ae061e0d4..d675341989 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 49d06cfd2c..0a719fedef 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 10eb7bc582..446687e2e9 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 0436deaa9b..ec92607e5a 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 b9a316b87d..a77a13f8cf 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 861aa18b71..a3fb8df007 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 36e216d118..b57b9687e9 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 38645d8a9c..4cc8da5d2e 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 0139f5660f..57b0a69a06 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 659a0bc5a7..b29954ea0b 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 966cf8037f..e88937c933 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 47df818151..f36bdcb4bf 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 75e1c53af4..d78038cc4d 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 e20afbb0bc..8893002736 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 976e3a8b6f..dd1b9b17a7 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 d990d36114..b6af54dbce 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 19208b8018..34d8d65a18 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 12c72587c7..defdb431e4 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 8735b11a97..f751d4e31b 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 2cd810721a..dc7e020d93 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 803f22a6c8..4fc57ca972 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 92cd95c949..d21fa6e534 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 2ca88cfaf3..f37932935e 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 a2c47423c8..6aac375ea9 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 714af013c5..f6421b296c 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 d8e99477bb..2d7adf177d 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 4e3b6b3f74..9aa4031b62 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 826dfaa932..e1e8fb52e1 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 e87b5c8080..ca2f9379a0 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 6c228c31ae..a42878fcdf 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 3813752a40..8675627fe3 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 8226bf08ef..d512dc6917 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 11e10c2475..86878d9447 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 6a1d4278a8..d78f722e0c 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 7e1c19f1df..4b72bf4528 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 3dcbe41270..1e0774681a 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 0f5628e183..58ed20dbca 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 06874d05ba..eb5a6e473a 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 842834713a..ebf529caa5 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 f4d9667dc2..de7f9b1064 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 11b4f2ae44..38700c9cbb 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 f8f20cc329..70210dee67 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 59346a7dd1..ebe37c96d8 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 31e9e36f21..21b8d636ac 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 a7fa9bb5b4..0d51798e61 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 42fc350566..a34103f5e9 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 539ab204e3..43b4240961 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 2b5fc622cd..8430694cbc 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 e04b099c41..8d1ebfaf7f 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 fa652874c0..7345cf9f17 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 6c029c9417..a8299b4abf 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 5fa44a03ec..a7a8d8a6c8 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 910ff32248..aa78404f93 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 68e8875a1b..b9439390a7 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 b74775706c..1b0bcf9db3 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 9e8a1cea3d..6e4c2e749a 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 da224d22ba..1a517dfdf7 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 03c97100d1..9bab4389f8 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.