From 3db08c6b7af48ca213fca46ae2cb63cbb1137cc4 Mon Sep 17 00:00:00 2001 From: Spring Operator Date: Tue, 26 Mar 2019 04:25:05 -0500 Subject: [PATCH 1/5] URL Cleanup This commit updates URLs to prefer the https protocol. Redirects are not followed to avoid accidentally expanding intentionally shortened URLs (i.e. if using a URL shortener). These URLs were unable to be fixed. Please review them to see if they can be manually resolved. * [ ] http://aopalliance.sourceforge.net (200) with 1 occurrences could not be migrated: ([https](https://aopalliance.sourceforge.net) result AnnotatedConnectException). * [ ] http://cglib.sourceforge.net (200) with 2 occurrences could not be migrated: ([https](https://cglib.sourceforge.net) result AnnotatedConnectException). * [ ] http://classdoc.sourceforge.net (200) with 1 occurrences could not be migrated: ([https](https://classdoc.sourceforge.net) result AnnotatedConnectException). * [ ] http://code.jquery.com:80/jquery.js (200) with 1 occurrences could not be migrated: ([https](https://code.jquery.com:80/jquery.js) result SSLException). * [ ] http://dbunit.sourceforge.net/ (200) with 1 occurrences could not be migrated: ([https](https://dbunit.sourceforge.net/) result AnnotatedConnectException). * [ ] http://docs.groovy-lang.org/docs/next/html/documentation/template-engines.html (200) with 1 occurrences could not be migrated: ([https](https://docs.groovy-lang.org/docs/next/html/documentation/template-engines.html) result SSLProtocolException). * [ ] http://domain3.com (200) with 6 occurrences could not be migrated: ([https](https://domain3.com) result ConnectTimeoutException). * [ ] http://forum.thymeleaf.org/Thymeleaf-3-0-8-JUST-PUBLISHED-td4030687.html (200) with 1 occurrences could not be migrated: ([https](https://forum.thymeleaf.org/Thymeleaf-3-0-8-JUST-PUBLISHED-td4030687.html) result SSLHandshakeException). * [ ] http://gregfranko.com/jquery.tocify.js/ (200) with 1 occurrences could not be migrated: ([https](https://gregfranko.com/jquery.tocify.js/) result SSLHandshakeException). * [ ] http://grinder.sourceforge.net/ (200) with 1 occurrences could not be migrated: ([https](https://grinder.sourceforge.net/) result AnnotatedConnectException). * [ ] http://groovy-lang.org/templating.html (200) with 3 occurrences could not be migrated: ([https](https://groovy-lang.org/templating.html) result SSLProtocolException). * [ ] http://hsqldb.org (200) with 1 occurrences could not be migrated: ([https](https://hsqldb.org) result SSLHandshakeException). * [ ] http://htmlunit.sourceforge.net/ (200) with 3 occurrences could not be migrated: ([https](https://htmlunit.sourceforge.net/) result AnnotatedConnectException). * [ ] http://htmlunit.sourceforge.net/gettingStarted.html (200) with 1 occurrences could not be migrated: ([https](https://htmlunit.sourceforge.net/gettingStarted.html) result AnnotatedConnectException). * [ ] http://htmlunit.sourceforge.net/javascript.html (200) with 1 occurrences could not be migrated: ([https](https://htmlunit.sourceforge.net/javascript.html) result AnnotatedConnectException). * [ ] http://javadiff.cvs.sourceforge.net/ (200) with 3 occurrences could not be migrated: ([https](https://javadiff.cvs.sourceforge.net/) result SSLHandshakeException). * [ ] http://jibx.sourceforge.net/ (200) with 2 occurrences could not be migrated: ([https](https://jibx.sourceforge.net/) result AnnotatedConnectException). * [ ] http://joda-time.sourceforge.net (200) with 1 occurrences could not be migrated: ([https](https://joda-time.sourceforge.net) result AnnotatedConnectException). * [ ] http://jotm.objectweb.org/ (200) with 1 occurrences could not be migrated: ([https](https://jotm.objectweb.org/) result NotSslRecordException). * [ ] http://json-b.net/ (200) with 1 occurrences could not be migrated: ([https](https://json-b.net/) result SSLHandshakeException). * [ ] http://mx4j.sourceforge.net (200) with 1 occurrences could not be migrated: ([https](https://mx4j.sourceforge.net) result AnnotatedConnectException). * [ ] http://mx4j.sourceforge.net/ (200) with 1 occurrences could not be migrated: ([https](https://mx4j.sourceforge.net/) result AnnotatedConnectException). * [ ] http://mydomain3.com (200) with 9 occurrences could not be migrated: ([https](https://mydomain3.com) result ConnectTimeoutException). * [ ] http://objenesis.org (200) with 1 occurrences could not be migrated: ([https](https://objenesis.org) result SSLHandshakeException). * [ ] http://objenesis.org/tutorial.html (200) with 1 occurrences could not be migrated: ([https](https://objenesis.org/tutorial.html) result SSLHandshakeException). * [ ] http://other.com/ (200) with 2 occurrences could not be migrated: ([https](https://other.com/) result SSLHandshakeException). * [ ] http://reactivex.io/ (200) with 1 occurrences could not be migrated: ([https](https://reactivex.io/) result SSLHandshakeException). * [ ] http://reactivex.io/documentation/operators.html (200) with 1 occurrences could not be migrated: ([https](https://reactivex.io/documentation/operators.html) result SSLHandshakeException). * [ ] http://url.somewhereelse.com (200) with 4 occurrences could not be migrated: ([https](https://url.somewhereelse.com) result SSLHandshakeException). * [ ] http://www.beanshell.org (200) with 1 occurrences could not be migrated: ([https](https://www.beanshell.org) result SSLHandshakeException). * [ ] http://www.beanshell.org/ (200) with 1 occurrences could not be migrated: ([https](https://www.beanshell.org/) result SSLHandshakeException). * [ ] http://www.doclet.com (200) with 1 occurrences could not be migrated: ([https](https://www.doclet.com) result AnnotatedConnectException). * [ ] http://www.gebish.org/ (200) with 1 occurrences could not be migrated: ([https](https://www.gebish.org/) result SSLHandshakeException). * [ ] http://www.gebish.org/manual/current/ (200) with 3 occurrences could not be migrated: ([https](https://www.gebish.org/manual/current/) result SSLHandshakeException). * [ ] http://www.groovy-lang.org/ (200) with 2 occurrences could not be migrated: ([https](https://www.groovy-lang.org/) result SSLProtocolException). * [ ] http://www.groovy-lang.org/operators.html (200) with 2 occurrences could not be migrated: ([https](https://www.groovy-lang.org/operators.html) result SSLProtocolException). * [ ] http://www.hsqldb.org (200) with 1 occurrences could not be migrated: ([https](https://www.hsqldb.org) result SSLHandshakeException). * [ ] http://www.jensgulden.de (200) with 1 occurrences could not be migrated: ([https](https://www.jensgulden.de) result AnnotatedConnectException). * [ ] http://www.mockobjects.com (200) with 2 occurrences could not be migrated: ([https](https://www.mockobjects.com) result ClosedChannelException). * [ ] http://www.mockobjects.com/ (200) with 1 occurrences could not be migrated: ([https](https://www.mockobjects.com/) result ClosedChannelException). * [ ] http://xmlunit.sourceforge.net/ (200) with 2 occurrences could not be migrated: ([https](https://xmlunit.sourceforge.net/) result AnnotatedConnectException). * [ ] http://192.168.0.1/mvc-showcase (301) with 1 occurrences could not be migrated: ([https](https://192.168.0.1/mvc-showcase) result ConnectTimeoutException). * [ ] http://www.easymock.org (301) with 2 occurrences could not be migrated: ([https](https://www.easymock.org) result SSLHandshakeException). * [ ] http://www.easymock.org/ (301) with 1 occurrences could not be migrated: ([https](https://www.easymock.org/) result SSLHandshakeException). * [ ] http://www.jmock.org/ (301) with 1 occurrences could not be migrated: ([https](https://www.jmock.org/) result SSLHandshakeException). * [ ] http://foo.com (301) with 4 occurrences could not be migrated: ([https](https://foo.com) result SSLHandshakeException). * [ ] http://foo.com/ (301) with 1 occurrences could not be migrated: ([https](https://foo.com/) result SSLHandshakeException). * [ ] http://foo.com/a (301) with 1 occurrences could not be migrated: ([https](https://foo.com/a) result SSLHandshakeException). * [ ] http://foo.com/a?foo=bar&foo=baz (301) with 4 occurrences could not be migrated: ([https](https://foo.com/a?foo=bar&foo=baz) result SSLHandshakeException). * [ ] http://foo.com/bar (301) with 5 occurrences could not be migrated: ([https](https://foo.com/bar) result SSLHandshakeException). * [ ] http://foo.com/baz (301) with 1 occurrences could not be migrated: ([https](https://foo.com/baz) result SSLHandshakeException). * [ ] http://foo.com/rest/books/6.json (301) with 1 occurrences could not be migrated: ([https](https://foo.com/rest/books/6.json) result SSLHandshakeException). * [ ] http://foo.com/rest/books/6/pages/1.json (301) with 1 occurrences could not be migrated: ([https](https://foo.com/rest/books/6/pages/1.json) result SSLHandshakeException). * [ ] http://foo.com/v1 (301) with 1 occurrences could not be migrated: ([https](https://foo.com/v1) result SSLHandshakeException). * [ ] http://foo.com/v1/123 (301) with 1 occurrences could not be migrated: ([https](https://foo.com/v1/123) result SSLHandshakeException). * [ ] http://foo.com/v1/bar (301) with 1 occurrences could not be migrated: ([https](https://foo.com/v1/bar) result SSLHandshakeException). * [ ] http://foo.com/v1?id=123 (301) with 2 occurrences could not be migrated: ([https](https://foo.com/v1?id=123) result SSLHandshakeException). * [ ] http://foo.com/wrong (301) with 1 occurrences could not be migrated: ([https](https://foo.com/wrong) result SSLHandshakeException). * [ ] http://mydomain4.com (301) with 3 occurrences could not be migrated: ([https](https://mydomain4.com) result SSLHandshakeException). * [ ] http://www.caucho.com/hessian (302) with 6 occurrences could not be migrated: ([https](https://www.caucho.com/hessian) result SSLHandshakeException). * [ ] http://mydomain2.com (302) with 22 occurrences could not be migrated: ([https](https://mydomain2.com) result ConnectTimeoutException). * [ ] http://www.jdiff.org (302) with 1 occurrences could not be migrated: ([https](https://www.jdiff.org) result ConnectTimeoutException). * [ ] http://example.com:80/test/this/here (404) with 3 occurrences could not be migrated: ([https](https://example.com:80/test/this/here) result NotSslRecordException). * [ ] http://www.foo.com/schema/component/component.xsd (404) with 1 occurrences could not be migrated: ([https](https://www.foo.com/schema/component/component.xsd) result SSLHandshakeException). * [ ] http://www.foo.com/schema/jcache (404) with 2 occurrences could not be migrated: ([https](https://www.foo.com/schema/jcache) result SSLHandshakeException). * [ ] http://www.mycompany.com/schema/myns/myns.xsd (404) with 1 occurrences could not be migrated: ([https](https://www.mycompany.com/schema/myns/myns.xsd) result ConnectTimeoutException). * [ ] http://xunitpatterns.com/Test%20Spy.html (404) with 1 occurrences could not be migrated: ([https](https://xunitpatterns.com/Test%20Spy.html) result AnnotatedConnectException). These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended. * [ ] http://bugs.sun.com/view_bug.do?bug_id=6342411 (302) with 1 occurrences migrated to: https://bugs.java.com/view_bug.do?bug_id=6342411 ([https](https://bugs.sun.com/view_bug.do?bug_id=6342411) result SSLHandshakeException). * [ ] http://bugs.sun.com/view_bug.do?bug_id=7023180 (302) with 2 occurrences migrated to: https://bugs.java.com/view_bug.do?bug_id=7023180 ([https](https://bugs.sun.com/view_bug.do?bug_id=7023180) result SSLHandshakeException). * [ ] http://www.freemarker.org (301) with 5 occurrences migrated to: https://freemarker.apache.org/ ([https](https://www.freemarker.org) result ConnectTimeoutException). * [ ] http://sockjs.org (303) with 2 occurrences migrated to: https://github.com/sockjs/sockjs-client ([https](https://sockjs.org) result AnnotatedConnectException). * [ ] http://network.pivotal.io/open-source (301) with 1 occurrences migrated to: https://network.pivotal.io/open-source ([https](https://network.pivotal.io/open-source) result ReadTimeoutException). * [ ] http://projects.eclipse.org/projects/tools.buildship (301) with 1 occurrences migrated to: https://projects.eclipse.org/projects/tools.buildship ([https](https://projects.eclipse.org/projects/tools.buildship) result SSLException). * [ ] http://aaa.org:8080/a (301) with 1 occurrences migrated to: https://www.aaa.org/articles/ ([https](https://aaa.org:8080/a) result NotSslRecordException). * [ ] http://aaa.org:8080/b/c/d (301) with 1 occurrences migrated to: https://www.aaa.org/b/c/d ([https](https://aaa.org:8080/b/c/d) result ReadTimeoutException). * [ ] http://www.caucho.com (302) with 1 occurrences migrated to: https://www.caucho.com/ ([https](https://www.caucho.com) result SSLHandshakeException). * [ ] http://jruby.org (301) with 4 occurrences migrated to: https://www.jruby.org ([https](https://jruby.org) result SSLHandshakeException). * [ ] http://jruby.org/ (301) with 1 occurrences migrated to: https://www.jruby.org ([https](https://jruby.org/) result SSLHandshakeException). * [ ] http://bbb.org:9090/b (AnnotatedConnectException) with 2 occurrences migrated to: https://bbb.org:9090/b ([https](https://bbb.org:9090/b) result AnnotatedConnectException). * [ ] http://192.168.28.42/1.jsp (ConnectTimeoutException) with 3 occurrences migrated to: https://192.168.28.42/1.jsp ([https](https://192.168.28.42/1.jsp) result ConnectTimeoutException). * [ ] http://example.com:8080/ (ConnectTimeoutException) with 1 occurrences migrated to: https://example.com:8080/ ([https](https://example.com:8080/) result ConnectTimeoutException). * [ ] http://example.com:8080/bar (ConnectTimeoutException) with 5 occurrences migrated to: https://example.com:8080/bar ([https](https://example.com:8080/bar) result ConnectTimeoutException). * [ ] http://example.org:9090 (ConnectTimeoutException) with 2 occurrences migrated to: https://example.org:9090 ([https](https://example.org:9090) result ConnectTimeoutException). * [ ] http://example.org:9090/base (ConnectTimeoutException) with 12 occurrences migrated to: https://example.org:9090/base ([https](https://example.org:9090/base) result ConnectTimeoutException). * [ ] http://example.org:9090/base/people (ConnectTimeoutException) with 2 occurrences migrated to: https://example.org:9090/base/people ([https](https://example.org:9090/base/people) result ConnectTimeoutException). * [ ] http://example.org:9090/base/something/1/foo (ConnectTimeoutException) with 2 occurrences migrated to: https://example.org:9090/base/something/1/foo ([https](https://example.org:9090/base/something/1/foo) result ConnectTimeoutException). * [ ] http://example.org:9090/base/something/else (ConnectTimeoutException) with 2 occurrences migrated to: https://example.org:9090/base/something/else ([https](https://example.org:9090/base/something/else) result ConnectTimeoutException). * [ ] http://example.org:9999/base (ConnectTimeoutException) with 1 occurrences migrated to: https://example.org:9999/base ([https](https://example.org:9999/base) result ConnectTimeoutException). * [ ] http://example.org:9999/base/api/people/123/addresses (ConnectTimeoutException) with 1 occurrences migrated to: https://example.org:9999/base/api/people/123/addresses ([https](https://example.org:9999/base/api/people/123/addresses) result ConnectTimeoutException). * [ ] http://example.org:9999/base/api/people/123/addresses/DE (ConnectTimeoutException) with 1 occurrences migrated to: https://example.org:9999/base/api/people/123/addresses/DE ([https](https://example.org:9999/base/api/people/123/addresses/DE) result ConnectTimeoutException). * [ ] http://example.org:9999/base/people/123/addresses/DE (ConnectTimeoutException) with 1 occurrences migrated to: https://example.org:9999/base/people/123/addresses/DE ([https](https://example.org:9999/base/people/123/addresses/DE) result ConnectTimeoutException). * [ ] http://example.org:9999/next (ConnectTimeoutException) with 1 occurrences migrated to: https://example.org:9999/next ([https](https://example.org:9999/next) result ConnectTimeoutException). * [ ] http://example.org:9999/path?q=foo (ConnectTimeoutException) with 1 occurrences migrated to: https://example.org:9999/path?q=foo ([https](https://example.org:9999/path?q=foo) result ConnectTimeoutException). * [ ] http://foo.com:8080/v1/bar?id=123 (ConnectTimeoutException) with 1 occurrences migrated to: https://foo.com:8080/v1/bar?id=123 ([https](https://foo.com:8080/v1/bar?id=123) result ConnectTimeoutException). * [ ] http://mydomain1.com:123 (ConnectTimeoutException) with 1 occurrences migrated to: https://mydomain1.com:123 ([https](https://mydomain1.com:123) result ConnectTimeoutException). * [ ] http://site1.com (ConnectTimeoutException) with 13 occurrences migrated to: https://site1.com ([https](https://site1.com) result ConnectTimeoutException). * [ ] http://wwws.sun.com/software/xml/developers/diffmk/ (ConnectTimeoutException) with 1 occurrences migrated to: https://wwws.sun.com/software/xml/developers/diffmk/ ([https](https://wwws.sun.com/software/xml/developers/diffmk/) result ConnectTimeoutException). * [ ] http://www.w3.org/TR/html4/loose.dtd (ReadTimeoutException) with 5 occurrences migrated to: https://www.w3.org/TR/html4/loose.dtd ([https](https://www.w3.org/TR/html4/loose.dtd) result ReadTimeoutException). * [ ] http://DOMAIN2.com (UnknownHostException) with 2 occurrences migrated to: https://DOMAIN2.com ([https](https://DOMAIN2.com) result UnknownHostException). * [ ] http://a.example.org/mvc-showcase (UnknownHostException) with 1 occurrences migrated to: https://a.example.org/mvc-showcase ([https](https://a.example.org/mvc-showcase) result UnknownHostException). * [ ] http://arjen:foobar@java.sun.com:80 (UnknownHostException) with 1 occurrences migrated to: https://arjen:foobar@java.sun.com:80 ([https](https://arjen:foobar@java.sun.com:80) result UnknownHostException). * [ ] http://dev.bar.com (UnknownHostException) with 3 occurrences migrated to: https://dev.bar.com ([https](https://dev.bar.com) result UnknownHostException). * [ ] http://domain1.com (UnknownHostException) with 25 occurrences migrated to: https://domain1.com ([https](https://domain1.com) result UnknownHostException). * [ ] http://domain1.com/test.html (UnknownHostException) with 4 occurrences migrated to: https://domain1.com/test.html ([https](https://domain1.com/test.html) result UnknownHostException). * [ ] http://domain2.com (UnknownHostException) with 98 occurrences migrated to: https://domain2.com ([https](https://domain2.com) result UnknownHostException). * [ ] http://example.com",HttpMethod.GET (UnknownHostException) with 6 occurrences migrated to: https://example.com",HttpMethod.GET ([https](https://example.com",HttpMethod.GET) result UnknownHostException). * [ ] http://foo.bar.com (UnknownHostException) with 4 occurrences migrated to: https://foo.bar.com ([https](https://foo.bar.com) result UnknownHostException). * [ ] http://joe.openid.example.org/ (UnknownHostException) with 2 occurrences migrated to: https://joe.openid.example.org/ ([https](https://joe.openid.example.org/) result UnknownHostException). * [ ] http://myserver/logo.png (UnknownHostException) with 1 occurrences migrated to: https://myserver/logo.png ([https](https://myserver/logo.png) result UnknownHostException). * [ ] http://samples.springframework.org/order (UnknownHostException) with 2 occurrences migrated to: https://samples.springframework.org/order ([https](https://samples.springframework.org/order) result UnknownHostException). * [ ] http://url.somewhere.com (UnknownHostException) with 25 occurrences migrated to: https://url.somewhere.com ([https](https://url.somewhere.com) result UnknownHostException). * [ ] http://url.somewhere.com/path (UnknownHostException) with 1 occurrences migrated to: https://url.somewhere.com/path ([https](https://url.somewhere.com/path) result UnknownHostException). * [ ] http://url.somewhere.com/path?id=1 (UnknownHostException) with 1 occurrences migrated to: https://url.somewhere.com/path?id=1 ([https](https://url.somewhere.com/path?id=1) result UnknownHostException). * [ ] http://url.somewhere.com/test.htm (UnknownHostException) with 2 occurrences migrated to: https://url.somewhere.com/test.htm ([https](https://url.somewhere.com/test.htm) result UnknownHostException). * [ ] http://url.somewhere.com?a=b&c=d (UnknownHostException) with 1 occurrences migrated to: https://url.somewhere.com?a=b&c=d ([https](https://url.somewhere.com?a=b&c=d) result UnknownHostException). * [ ] http://url.somewhere.com?foo= (UnknownHostException) with 2 occurrences migrated to: https://url.somewhere.com?foo= ([https](https://url.somewhere.com?foo=) result UnknownHostException). * [ ] http://url.somewhere.com?foo=bar (UnknownHostException) with 4 occurrences migrated to: https://url.somewhere.com?foo=bar ([https](https://url.somewhere.com?foo=bar) result UnknownHostException). * [ ] http://url.somewhere.com?foo=bar&a=b&c=d (UnknownHostException) with 2 occurrences migrated to: https://url.somewhere.com?foo=bar&a=b&c=d ([https](https://url.somewhere.com?foo=bar&a=b&c=d) result UnknownHostException). * [ ] http://wiki.fasterxml.com/JacksonHome (UnknownHostException) with 3 occurrences migrated to: https://wiki.fasterxml.com/JacksonHome ([https](https://wiki.fasterxml.com/JacksonHome) result UnknownHostException). * [ ] http://wiki.fasterxml.com/JacksonJsonViews (UnknownHostException) with 4 occurrences migrated to: https://wiki.fasterxml.com/JacksonJsonViews ([https](https://wiki.fasterxml.com/JacksonJsonViews) result UnknownHostException). * [ ] http://x.y.z (UnknownHostException) with 2 occurrences migrated to: https://x.y.z ([https](https://x.y.z) result UnknownHostException). * [ ] http://abc.com/v1 (301) with 1 occurrences migrated to: https://abc.go.com/v1 ([https](https://abc.com/v1) result 404). * [ ] http://abc.com/v1/accounts/43 (301) with 1 occurrences migrated to: https://abc.go.com/v1/accounts/43 ([https](https://abc.com/v1/accounts/43) result 404). * [ ] http://abc.com/v1/accounts?q=12 (301) with 1 occurrences migrated to: https://abc.go.com/v1/accounts?q=12 ([https](https://abc.com/v1/accounts?q=12) result 404). * [ ] http://abc.com/v2/accounts?q=12 (301) with 1 occurrences migrated to: https://abc.go.com/v2/accounts?q=12 ([https](https://abc.com/v2/accounts?q=12) result 404). * [ ] http://docs.spring.io/v1/bar (301) with 1 occurrences migrated to: https://docs.spring.io/v1/bar ([https](https://docs.spring.io/v1/bar) result 404). * [ ] http://example.com/-foo (404) with 2 occurrences migrated to: https://example.com/-foo ([https](https://example.com/-foo) result 404). * [ ] http://example.com/1 (404) with 1 occurrences migrated to: https://example.com/1 ([https](https://example.com/1) result 404). * [ ] http://example.com/1/2 (404) with 2 occurrences migrated to: https://example.com/1/2 ([https](https://example.com/1/2) result 404). * [ ] http://example.com/2 (404) with 1 occurrences migrated to: https://example.com/2 ([https](https://example.com/2) result 404). * [ ] http://example.com/a%20b?q=a%2Bb (404) with 1 occurrences migrated to: https://example.com/a%20b?q=a%2Bb ([https](https://example.com/a%20b?q=a%2Bb) result 404). * [ ] http://example.com/abc/ (404) with 1 occurrences migrated to: https://example.com/abc/ ([https](https://example.com/abc/) result 404). * [ ] http://example.com/abc/x/y (404) with 1 occurrences migrated to: https://example.com/abc/x/y ([https](https://example.com/abc/x/y) result 404). * [ ] http://example.com/abc/x/y/z (404) with 3 occurrences migrated to: https://example.com/abc/x/y/z ([https](https://example.com/abc/x/y/z) result 404). * [ ] http://example.com/app/login/authenticate (404) with 1 occurrences migrated to: https://example.com/app/login/authenticate ([https](https://example.com/app/login/authenticate) result 404). * [ ] http://example.com/arbitrary/path (404) with 1 occurrences migrated to: https://example.com/arbitrary/path ([https](https://example.com/arbitrary/path) result 404). * [ ] http://example.com/bar (404) with 6 occurrences migrated to: https://example.com/bar ([https](https://example.com/bar) result 404). * [ ] http://example.com/context.xml (404) with 4 occurrences migrated to: https://example.com/context.xml ([https](https://example.com/context.xml) result 404). * [ ] http://example.com/example (404) with 6 occurrences migrated to: https://example.com/example ([https](https://example.com/example) result 404). * [ ] http://example.com/example/?name (404) with 1 occurrences migrated to: https://example.com/example/?name ([https](https://example.com/example/?name) result 404). * [ ] http://example.com/example/?name= (404) with 1 occurrences migrated to: https://example.com/example/?name= ([https](https://example.com/example/?name=) result 404). * [ ] http://example.com/example/?name=%20 (404) with 1 occurrences migrated to: https://example.com/example/?name=%20 ([https](https://example.com/example/?name=%20) result 404). * [ ] http://example.com/example/?name=row%5B0%5D (404) with 1 occurrences migrated to: https://example.com/example/?name=row%5B0%5D ([https](https://example.com/example/?name=row%5B0%5D) result 404). * [ ] http://example.com/example/?name=value (404) with 1 occurrences migrated to: https://example.com/example/?name=value ([https](https://example.com/example/?name=value) result 404). * [ ] http://example.com/example/?name=value¶m2=value+2 (404) with 1 occurrences migrated to: https://example.com/example/?name=value¶m2=value+2 ([https](https://example.com/example/?name=value¶m2=value+2) result 404). * [ ] http://example.com/example/?row%5B0%5D=value (404) with 1 occurrences migrated to: https://example.com/example/?row%5B0%5D=value ([https](https://example.com/example/?row%5B0%5D=value) result 404). * [ ] http://example.com/foo (404) with 6 occurrences migrated to: https://example.com/foo ([https](https://example.com/foo) result 404). * [ ] http://example.com/foo/../bar (404) with 1 occurrences migrated to: https://example.com/foo/../bar ([https](https://example.com/foo/../bar) result 404). * [ ] http://example.com/foo/foo2?bar (404) with 1 occurrences migrated to: https://example.com/foo/foo2?bar ([https](https://example.com/foo/foo2?bar) result 404). * [ ] http://example.com/foo?bar (404) with 4 occurrences migrated to: https://example.com/foo?bar ([https](https://example.com/foo?bar) result 404). * [ ] http://example.com/foo?bar= (404) with 2 occurrences migrated to: https://example.com/foo?bar= ([https](https://example.com/foo?bar=) result 404). * [ ] http://example.com/foo?bar=baz (404) with 2 occurrences migrated to: https://example.com/foo?bar=baz ([https](https://example.com/foo?bar=baz) result 404). * [ ] http://example.com/foo?baz=42 (404) with 1 occurrences migrated to: https://example.com/foo?baz=42 ([https](https://example.com/foo?baz=42) result 404). * [ ] http://example.com/foo?foo=bar&baz=qux (404) with 2 occurrences migrated to: https://example.com/foo?foo=bar&baz=qux ([https](https://example.com/foo?foo=bar&baz=qux) result 404). * [ ] http://example.com/hotel (404) with 3 occurrences migrated to: https://example.com/hotel ([https](https://example.com/hotel) result 404). * [ ] http://example.com/hotel%20list (404) with 1 occurrences migrated to: https://example.com/hotel%20list ([https](https://example.com/hotel%20list) result 404). * [ ] http://example.com/hotel%20list/Z (404) with 1 occurrences migrated to: https://example.com/hotel%20list/Z ([https](https://example.com/hotel%20list/Z) result 404). * [ ] http://example.com/hotel%20list/Z%C3%BCrich (404) with 3 occurrences migrated to: https://example.com/hotel%20list/Z%C3%BCrich ([https](https://example.com/hotel%20list/Z%C3%BCrich) result 404). * [ ] http://example.com/hotels (404) with 3 occurrences migrated to: https://example.com/hotels ([https](https://example.com/hotels) result 404). * [ ] http://example.com/hotels/ (404) with 15 occurrences migrated to: https://example.com/hotels/ ([https](https://example.com/hotels/) result 404). * [ ] http://example.com/hotels/1/bookings/42 (404) with 1 occurrences migrated to: https://example.com/hotels/1/bookings/42 ([https](https://example.com/hotels/1/bookings/42) result 404). * [ ] http://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150 (404) with 2 occurrences migrated to: https://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150 ([https](https://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150) result 404). * [ ] http://example.com/hotels/1/pic/pics/logo.png (404) with 1 occurrences migrated to: https://example.com/hotels/1/pic/pics/logo.png ([https](https://example.com/hotels/1/pic/pics/logo.png) result 404). * [ ] http://example.com/hotels/42/bookings/21 (404) with 1 occurrences migrated to: https://example.com/hotels/42/bookings/21 ([https](https://example.com/hotels/42/bookings/21) result 404). * [ ] http://example.com/hotels/42/bookings/42 (404) with 1 occurrences migrated to: https://example.com/hotels/42/bookings/42 ([https](https://example.com/hotels/42/bookings/42) result 404). * [ ] http://example.com/hotels/Rest%20%26%20Relax/bookings/42 (404) with 2 occurrences migrated to: https://example.com/hotels/Rest%20%26%20Relax/bookings/42 ([https](https://example.com/hotels/Rest%20%26%20Relax/bookings/42) result 404). * [ ] http://example.com/info (404) with 2 occurrences migrated to: https://example.com/info ([https](https://example.com/info) result 404). * [ ] http://example.com/invalid (404) with 1 occurrences migrated to: https://example.com/invalid ([https](https://example.com/invalid) result 404). * [ ] http://example.com/jquery-1.11.0.min.js (404) with 2 occurrences migrated to: https://example.com/jquery-1.11.0.min.js ([https](https://example.com/jquery-1.11.0.min.js) result 404). * [ ] http://example.com/match (404) with 1 occurrences migrated to: https://example.com/match ([https](https://example.com/match) result 404). * [ ] http://example.com/myFileUpload (404) with 1 occurrences migrated to: https://example.com/myFileUpload ([https](https://example.com/myFileUpload) result 404). * [ ] http://example.com/myForm (404) with 1 occurrences migrated to: https://example.com/myForm ([https](https://example.com/myForm) result 404). * [ ] http://example.com/path (404) with 4 occurrences migrated to: https://example.com/path ([https](https://example.com/path) result 404). * [ ] http://example.com/path?query (404) with 2 occurrences migrated to: https://example.com/path?query ([https](https://example.com/path?query) result 404). * [ ] http://example.com/path?query=foo (404) with 1 occurrences migrated to: https://example.com/path?query=foo ([https](https://example.com/path?query=foo) result 404). * [ ] http://example.com/people (404) with 1 occurrences migrated to: https://example.com/people ([https](https://example.com/people) result 404). * [ ] http://example.com/people/ (404) with 1 occurrences migrated to: https://example.com/people/ ([https](https://example.com/people/) result 404). * [ ] http://example.com/prefix/path (404) with 2 occurrences migrated to: https://example.com/prefix/path ([https](https://example.com/prefix/path) result 404). * [ ] http://example.com/resource (404) with 5 occurrences migrated to: https://example.com/resource ([https](https://example.com/resource) result 404). * [ ] http://example.com/resource?access_token=123 (404) with 1 occurrences migrated to: https://example.com/resource?access_token=123 ([https](https://example.com/resource?access_token=123) result 404). * [ ] http://example.com/spaces (404) with 1 occurrences migrated to: https://example.com/spaces ([https](https://example.com/spaces) result 404). * [ ] http://example.com/spaces%20and%20%E2%82%AC (404) with 3 occurrences migrated to: https://example.com/spaces%20and%20%E2%82%AC ([https](https://example.com/spaces%20and%20%E2%82%AC) result 404). * [ ] http://example.com/spring/ (404) with 1 occurrences migrated to: https://example.com/spring/ ([https](https://example.com/spring/) result 404). * [ ] http://example.com/test/this/here (404) with 1 occurrences migrated to: https://example.com/test/this/here ([https](https://example.com/test/this/here) result 404). * [ ] http://example.com/upload (404) with 1 occurrences migrated to: https://example.com/upload ([https](https://example.com/upload) result 404). * [ ] http://example.com/user (404) with 1 occurrences migrated to: https://example.com/user ([https](https://example.com/user) result 404). * [ ] http://example.org/fonts/css (404) with 6 occurrences migrated to: https://example.org/fonts/css ([https](https://example.org/fonts/css) result 404). * [ ] http://example.org/foo/page.html (404) with 1 occurrences migrated to: https://example.org/foo/page.html ([https](https://example.org/foo/page.html) result 404). * [ ] http://example.org/image.png (404) with 4 occurrences migrated to: https://example.org/image.png ([https](https://example.org/image.png) result 404). * [ ] http://example.org/music/people (404) with 4 occurrences migrated to: https://example.org/music/people ([https](https://example.org/music/people) result 404). * [ ] http://example.org/page.cache.html (404) with 1 occurrences migrated to: https://example.org/page.cache.html ([https](https://example.org/page.cache.html) result 404). * [ ] http://example.org/path (404) with 3 occurrences migrated to: https://example.org/path ([https](https://example.org/path) result 404). * [ ] http://springframework.org/oxm-test (404) with 2 occurrences migrated to: https://springframework.org/oxm-test ([https](https://springframework.org/oxm-test) result 404). * [ ] http://aaa.org:8080/app/b/c/d (301) with 1 occurrences migrated to: https://www.aaa.org/app/b/c/d ([https](https://aaa.org:8080/app/b/c/d) result 404). * [ ] http://www.example.com/favicon.ico (404) with 2 occurrences migrated to: https://www.example.com/favicon.ico ([https](https://www.example.com/favicon.ico) result 404). * [ ] http://www.example.com/foo/bar (404) with 1 occurrences migrated to: https://www.example.com/foo/bar ([https](https://www.example.com/foo/bar) result 404). * [ ] http://www.example.com/hotels (404) with 2 occurrences migrated to: https://www.example.com/hotels ([https](https://www.example.com/hotels) result 404). * [ ] http://www.example.com/user/ (404) with 4 occurrences migrated to: https://www.example.com/user/ ([https](https://www.example.com/user/) result 404). * [ ] http://www.example.com/user/john%3Bdoe/dashboard (404) with 4 occurrences migrated to: https://www.example.com/user/john%3Bdoe/dashboard ([https](https://www.example.com/user/john%3Bdoe/dashboard) result 404). * [ ] http://www.example.com/user/john;doe/dashboard (404) with 2 occurrences migrated to: https://www.example.com/user/john;doe/dashboard ([https](https://www.example.com/user/john;doe/dashboard) result 404). * [ ] http://www.ibm.com/developerworks/websphere/library/techarticles/0404_tang/0404_tang.html (301) with 1 occurrences migrated to: https://www.ibm.com/developerworks/websphere/library/techarticles/0404_tang/0404_tang.html ([https](https://www.ibm.com/developerworks/websphere/library/techarticles/0404_tang/0404_tang.html) result 404). * [ ] http://mydomain1.com:80/path (301) with 2 occurrences migrated to: https://www.mydomain1.com/path ([https](https://mydomain1.com:80/path) result 404). * [ ] http://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/tutorial-lesson-03 (404) with 1 occurrences migrated to: https://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/tutorial-lesson-03 ([https](https://www.quartz-scheduler.org/documentation/quartz-2.1.x/tutorials/tutorial-lesson-03) result 404). * [ ] http://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html (301) with 1 occurrences migrated to: https://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html ([https](https://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html) result 404). * [ ] http://xml.apache.org/xslt (404) with 3 occurrences migrated to: https://xml.apache.org/xslt ([https](https://xml.apache.org/xslt) result 404). * [ ] http://myhost.com/resource/path/myTemplate.txt (500) with 1 occurrences migrated to: https://myhost.com/resource/path/myTemplate.txt ([https](https://myhost.com/resource/path/myTemplate.txt) result 500). These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended. * [ ] http://activemq.apache.org/delete-inactive-destinations.html with 1 occurrences migrated to: https://activemq.apache.org/delete-inactive-destinations.html ([https](https://activemq.apache.org/delete-inactive-destinations.html) result 200). * [ ] http://activemq.apache.org/stomp.html with 1 occurrences migrated to: https://activemq.apache.org/stomp.html ([https](https://activemq.apache.org/stomp.html) result 200). * [ ] http://ant.apache.org with 1 occurrences migrated to: https://ant.apache.org ([https](https://ant.apache.org) result 200). * [ ] http://asciidoctor.org/ with 1 occurrences migrated to: https://asciidoctor.org/ ([https](https://asciidoctor.org/) result 200). * [ ] http://asciidoctor.org/docs/editing-asciidoc-with-live-preview/ with 2 occurrences migrated to: https://asciidoctor.org/docs/editing-asciidoc-with-live-preview/ ([https](https://asciidoctor.org/docs/editing-asciidoc-with-live-preview/) result 200). * [ ] http://beanvalidation.org/ with 1 occurrences migrated to: https://beanvalidation.org/ ([https](https://beanvalidation.org/) result 200). * [ ] http://caniuse.com/ with 2 occurrences migrated to: https://caniuse.com/ ([https](https://caniuse.com/) result 200). * [ ] http://castor-data-binding.github.io/castor/reference-guides/1.3.3/html-single/index.html with 2 occurrences migrated to: https://castor-data-binding.github.io/castor/reference-guides/1.3.3/html-single/index.html ([https](https://castor-data-binding.github.io/castor/reference-guides/1.3.3/html-single/index.html) result 200). * [ ] http://cbor.io/ with 1 occurrences migrated to: https://cbor.io/ ([https](https://cbor.io/) result 200). * [ ] http://code.jquery.com/jquery-1.11.0.min.js with 2 occurrences migrated to: https://code.jquery.com/jquery-1.11.0.min.js ([https](https://code.jquery.com/jquery-1.11.0.min.js) result 200). * [ ] http://code.jquery.com/jquery.js with 1 occurrences migrated to: https://code.jquery.com/jquery.js ([https](https://code.jquery.com/jquery.js) result 200). * [ ] http://commons.apache.org/proper/commons-lang/ with 2 occurrences migrated to: https://commons.apache.org/proper/commons-lang/ ([https](https://commons.apache.org/proper/commons-lang/) result 200). * [ ] http://docs.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html with 1 occurrences migrated to: https://docs.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html ([https](https://docs.oracle.com/javase/6/docs/api/java/lang/instrument/package-summary.html) result 200). * [ ] http://docs.oracle.com/javase/8/docs/api/java/beans/package-summary.html with 1 occurrences migrated to: https://docs.oracle.com/javase/8/docs/api/java/beans/package-summary.html ([https](https://docs.oracle.com/javase/8/docs/api/java/beans/package-summary.html) result 200). * [ ] http://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html with 1 occurrences migrated to: https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html ([https](https://docs.oracle.com/javase/8/docs/api/java/lang/instrument/package-summary.html) result 200). * [ ] http://docs.oracle.com/javase/8/docs/api/javax/script/ScriptEngineFactory.html with 2 occurrences migrated to: https://docs.oracle.com/javase/8/docs/api/javax/script/ScriptEngineFactory.html ([https](https://docs.oracle.com/javase/8/docs/api/javax/script/ScriptEngineFactory.html) result 200). * [ ] http://docs.oracle.com/javase/tutorial/javabeans/advanced/customization.html with 1 occurrences migrated to: https://docs.oracle.com/javase/tutorial/javabeans/advanced/customization.html ([https](https://docs.oracle.com/javase/tutorial/javabeans/advanced/customization.html) result 200). * [ ] http://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html with 1 occurrences migrated to: https://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html ([https](https://docs.oracle.com/javase/tutorial/javabeans/writing/properties.html) result 200). * [ ] http://docs.seleniumhq.org/ with 1 occurrences migrated to: https://docs.seleniumhq.org/ ([https](https://docs.seleniumhq.org/) result 200). * [ ] http://docs.seleniumhq.org/projects/webdriver/ with 1 occurrences migrated to: https://docs.seleniumhq.org/projects/webdriver/ ([https](https://docs.seleniumhq.org/projects/webdriver/) result 200). * [ ] http://docs.spring.io/spring-framework/docs/current/javadoc-api/ with 1 occurrences migrated to: https://docs.spring.io/spring-framework/docs/current/javadoc-api/ ([https](https://docs.spring.io/spring-framework/docs/current/javadoc-api/) result 200). * [ ] http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/view/script/ScriptTemplateView.html with 1 occurrences migrated to: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/view/script/ScriptTemplateView.html ([https](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/servlet/view/script/ScriptTemplateView.html) result 200). * [ ] http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/ with 1 occurrences migrated to: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/ ([https](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/) result 200). * [ ] http://docs.spring.io/spring-session/docs/current/reference/html5/ with 1 occurrences migrated to: https://docs.spring.io/spring-session/docs/current/reference/html5/ ([https](https://docs.spring.io/spring-session/docs/current/reference/html5/) result 200). * [ ] http://en.wikipedia.org/wiki/Adapter_pattern with 1 occurrences migrated to: https://en.wikipedia.org/wiki/Adapter_pattern ([https](https://en.wikipedia.org/wiki/Adapter_pattern) result 200). * [ ] http://en.wikipedia.org/wiki/Halting_Problem with 1 occurrences migrated to: https://en.wikipedia.org/wiki/Halting_Problem ([https](https://en.wikipedia.org/wiki/Halting_Problem) result 200). * [ ] http://en.wikipedia.org/wiki/List_of_HTTP_status_codes with 1 occurrences migrated to: https://en.wikipedia.org/wiki/List_of_HTTP_status_codes ([https](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) result 200). * [ ] http://en.wikipedia.org/wiki/MIME with 1 occurrences migrated to: https://en.wikipedia.org/wiki/MIME ([https](https://en.wikipedia.org/wiki/MIME) result 200). * [ ] http://en.wikipedia.org/wiki/Mock_Object with 1 occurrences migrated to: https://en.wikipedia.org/wiki/Mock_Object ([https](https://en.wikipedia.org/wiki/Mock_Object) result 200). * [ ] http://en.wikipedia.org/wiki/Polyfill with 2 occurrences migrated to: https://en.wikipedia.org/wiki/Polyfill ([https](https://en.wikipedia.org/wiki/Polyfill) result 200). * [ ] http://example.com with 132 occurrences migrated to: https://example.com ([https](https://example.com) result 200). * [ ] http://example.com/ with 16 occurrences migrated to: https://example.com/ ([https](https://example.com/) result 200). * [ ] http://example.com?foo with 2 occurrences migrated to: https://example.com?foo ([https](https://example.com?foo) result 200). * [ ] http://example.com?foo=bar with 8 occurrences migrated to: https://example.com?foo=bar ([https](https://example.com?foo=bar) result 200). * [ ] http://example.com?foo=bar@baz with 1 occurrences migrated to: https://example.com?foo=bar@baz ([https](https://example.com?foo=bar@baz) result 200). * [ ] http://example.org with 18 occurrences migrated to: https://example.org ([https](https://example.org) result 200). * [ ] http://example.org/ with 1 occurrences migrated to: https://example.org/ ([https](https://example.org/) result 200). * [ ] http://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html with 2 occurrences migrated to: https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html ([https](https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/DeserializationFeature.html) result 200). * [ ] http://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html with 2 occurrences migrated to: https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html ([https](https://fasterxml.github.io/jackson-databind/javadoc/2.6/com/fasterxml/jackson/databind/MapperFeature.html) result 200). * [ ] http://h2database.com with 1 occurrences migrated to: https://h2database.com ([https](https://h2database.com) result 200). * [ ] http://handlebarsjs.com with 2 occurrences migrated to: https://handlebarsjs.com ([https](https://handlebarsjs.com) result 200). * [ ] http://handlebarsjs.com/ with 2 occurrences migrated to: https://handlebarsjs.com/ ([https](https://handlebarsjs.com/) result 200). * [ ] http://hc.apache.org/httpcomponents-asyncclient-dev/ with 1 occurrences migrated to: https://hc.apache.org/httpcomponents-asyncclient-dev/ ([https](https://hc.apache.org/httpcomponents-asyncclient-dev/) result 200). * [ ] http://hc.apache.org/httpcomponents-client-ga/ with 2 occurrences migrated to: https://hc.apache.org/httpcomponents-client-ga/ ([https](https://hc.apache.org/httpcomponents-client-ga/) result 200). * [ ] http://hc.apache.org/httpcomponents-client-ga/httpclient/ with 1 occurrences migrated to: https://hc.apache.org/httpcomponents-client-ga/httpclient/ ([https](https://hc.apache.org/httpcomponents-client-ga/httpclient/) result 200). * [ ] http://www.hibernate.org/ (301) with 1 occurrences migrated to: https://hibernate.org/ ([https](https://www.hibernate.org/) result 200). * [ ] http://www.hibernate.org (301) with 1 occurrences migrated to: https://hibernate.org/ ([https](https://www.hibernate.org) result 200). * [ ] http://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html with 1 occurrences migrated to: https://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html ([https](https://jcp.org/aboutJava/communityprocess/final/jsr003/index3.html) result 200). * [ ] http://jcp.org/aboutJava/communityprocess/final/jsr160/index.html with 1 occurrences migrated to: https://jcp.org/aboutJava/communityprocess/final/jsr160/index.html ([https](https://jcp.org/aboutJava/communityprocess/final/jsr160/index.html) result 200). * [ ] http://jcp.org/en/jsr/detail?id=107 with 1 occurrences migrated to: https://jcp.org/en/jsr/detail?id=107 ([https](https://jcp.org/en/jsr/detail?id=107) result 200). * [ ] http://joel-costigliola.github.io/assertj/ with 3 occurrences migrated to: https://joel-costigliola.github.io/assertj/ ([https](https://joel-costigliola.github.io/assertj/) result 200). * [ ] http://jsonassert.skyscreamer.org with 1 occurrences migrated to: https://jsonassert.skyscreamer.org ([https](https://jsonassert.skyscreamer.org) result 200). * [ ] http://jsonassert.skyscreamer.org/ with 5 occurrences migrated to: https://jsonassert.skyscreamer.org/ ([https](https://jsonassert.skyscreamer.org/) result 200). * [ ] http://junit.org/junit5/docs/current/user-guide/ with 2 occurrences migrated to: https://junit.org/junit5/docs/current/user-guide/ ([https](https://junit.org/junit5/docs/current/user-guide/) result 200). * [ ] http://kotlinlang.org/ with 2 occurrences migrated to: https://kotlinlang.org/ ([https](https://kotlinlang.org/) result 200). * [ ] http://kotlinlang.org/docs/reference/ with 1 occurrences migrated to: https://kotlinlang.org/docs/reference/ ([https](https://kotlinlang.org/docs/reference/) result 200). * [ ] http://kotlinlang.org/docs/reference/classes.html with 3 occurrences migrated to: https://kotlinlang.org/docs/reference/classes.html ([https](https://kotlinlang.org/docs/reference/classes.html) result 200). * [ ] http://mydomain.com with 5 occurrences migrated to: https://mydomain.com ([https](https://mydomain.com) result 200). * [ ] http://netty.io/ with 1 occurrences migrated to: https://netty.io/ ([https](https://netty.io/) result 200). * [ ] http://openjdk.java.net/jeps/290 with 1 occurrences migrated to: https://openjdk.java.net/jeps/290 ([https](https://openjdk.java.net/jeps/290) result 200). * [ ] http://openjdk.java.net/projects/nashorn/ with 10 occurrences migrated to: https://openjdk.java.net/projects/nashorn/ ([https](https://openjdk.java.net/projects/nashorn/) result 200). * [ ] http://poi.apache.org with 3 occurrences migrated to: https://poi.apache.org ([https](https://poi.apache.org) result 200). * [ ] http://projects.spring.io/spring-boot/ with 1 occurrences migrated to: https://projects.spring.io/spring-boot/ ([https](https://projects.spring.io/spring-boot/) result 200). * [ ] http://projects.spring.io/spring-data/ with 1 occurrences migrated to: https://projects.spring.io/spring-data/ ([https](https://projects.spring.io/spring-data/) result 200). * [ ] http://projects.spring.io/spring-framework/ with 1 occurrences migrated to: https://projects.spring.io/spring-framework/ ([https](https://projects.spring.io/spring-framework/) result 200). * [ ] http://projects.spring.io/spring-integration/ with 1 occurrences migrated to: https://projects.spring.io/spring-integration/ ([https](https://projects.spring.io/spring-integration/) result 200). * [ ] http://projects.spring.io/spring-security/ with 3 occurrences migrated to: https://projects.spring.io/spring-security/ ([https](https://projects.spring.io/spring-security/) result 200). * [ ] http://repo1.maven.org/maven2/javax/inject/javax.inject/1/ with 2 occurrences migrated to: https://repo1.maven.org/maven2/javax/inject/javax.inject/1/ ([https](https://repo1.maven.org/maven2/javax/inject/javax.inject/1/) result 200). * [ ] http://schema.spring.io/mvc/spring-mvc.xsd with 1 occurrences migrated to: https://schema.spring.io/mvc/spring-mvc.xsd ([https](https://schema.spring.io/mvc/spring-mvc.xsd) result 200). * [ ] http://search.maven.org/ with 2 occurrences migrated to: https://search.maven.org/ ([https](https://search.maven.org/) result 200). * [ ] http://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html with 3 occurrences migrated to: https://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html ([https](https://sockjs.github.io/sockjs-protocol/sockjs-protocol-0.3.3.html) result 200). * [ ] http://sourceforge.net with 1 occurrences migrated to: https://sourceforge.net ([https](https://sourceforge.net) result 200). * [ ] http://sourceforge.net/projects/javadiff/ with 1 occurrences migrated to: https://sourceforge.net/projects/javadiff/ ([https](https://sourceforge.net/projects/javadiff/) result 200). * [ ] http://sourceforge.net/sflogo.php?group_id=37160 with 1 occurrences migrated to: https://sourceforge.net/sflogo.php?group_id=37160 ([https](https://sourceforge.net/sflogo.php?group_id=37160) result 200). * [ ] http://spring.io/blog/ with 1 occurrences migrated to: https://spring.io/blog/ ([https](https://spring.io/blog/) result 200). * [ ] http://spring.io/blog/category/news with 1 occurrences migrated to: https://spring.io/blog/category/news ([https](https://spring.io/blog/category/news) result 200). * [ ] http://square.github.io/okhttp/ with 1 occurrences migrated to: https://square.github.io/okhttp/ ([https](https://square.github.io/okhttp/) result 200). * [ ] http://stackoverflow.com/questions/1481251/what-does-document-domain-document-domain-do with 1 occurrences migrated to: https://stackoverflow.com/questions/1481251/what-does-document-domain-document-domain-do ([https](https://stackoverflow.com/questions/1481251/what-does-document-domain-document-domain-do) result 200). * [ ] http://stackoverflow.com/questions/19394570/java-jre-7u45-breaks-classloader-getresources with 2 occurrences migrated to: https://stackoverflow.com/questions/19394570/java-jre-7u45-breaks-classloader-getresources ([https](https://stackoverflow.com/questions/19394570/java-jre-7u45-breaks-classloader-getresources) result 200). * [ ] http://stackoverflow.com/questions/22986109/testing-spring-managed-servlet with 1 occurrences migrated to: https://stackoverflow.com/questions/22986109/testing-spring-managed-servlet ([https](https://stackoverflow.com/questions/22986109/testing-spring-managed-servlet) result 200). * [ ] http://stackoverflow.com/questions/24725438/what-could-cause-a-class-implementing-applicationlistenercontextrefreshedevent with 1 occurrences migrated to: https://stackoverflow.com/questions/24725438/what-could-cause-a-class-implementing-applicationlistenercontextrefreshedevent ([https](https://stackoverflow.com/questions/24725438/what-could-cause-a-class-implementing-applicationlistenercontextrefreshedevent) result 200). * [ ] http://stackoverflow.com/questions/35733344/can-contextconfiguration-in-a-custom-annotation-be-merged with 1 occurrences migrated to: https://stackoverflow.com/questions/35733344/can-contextconfiguration-in-a-custom-annotation-be-merged ([https](https://stackoverflow.com/questions/35733344/can-contextconfiguration-in-a-custom-annotation-be-merged) result 200). * [ ] http://start.spring.io/ with 2 occurrences migrated to: https://start.spring.io/ ([https](https://start.spring.io/) result 200). * [ ] http://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html with 1 occurrences migrated to: https://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html ([https](https://stas-blogspot.blogspot.com/2010/03/java-bridge-methods-explained.html) result 200). * [ ] http://stomp.github.io/stomp-specification-1.2.html with 9 occurrences migrated to: https://stomp.github.io/stomp-specification-1.2.html ([https](https://stomp.github.io/stomp-specification-1.2.html) result 200). * [ ] http://struts.apache.org with 1 occurrences migrated to: https://struts.apache.org ([https](https://struts.apache.org) result 200). * [ ] http://struts.apache.org/ with 1 occurrences migrated to: https://struts.apache.org/ ([https](https://struts.apache.org/) result 200). * [ ] http://tapestry.apache.org/ with 2 occurrences migrated to: https://tapestry.apache.org/ ([https](https://tapestry.apache.org/) result 200). * [ ] http://tiles.apache.org with 4 occurrences migrated to: https://tiles.apache.org ([https](https://tiles.apache.org) result 200). * [ ] http://tiles.apache.org/framework/dependency-management.html with 1 occurrences migrated to: https://tiles.apache.org/framework/dependency-management.html ([https](https://tiles.apache.org/framework/dependency-management.html) result 200). * [ ] http://tools.ietf.org/html/rfc1945 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc1945 ([https](https://tools.ietf.org/html/rfc1945) result 200). * [ ] http://tools.ietf.org/html/rfc2109 with 2 occurrences migrated to: https://tools.ietf.org/html/rfc2109 ([https](https://tools.ietf.org/html/rfc2109) result 200). * [ ] http://tools.ietf.org/html/rfc2295 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2295 ([https](https://tools.ietf.org/html/rfc2295) result 200). * [ ] http://tools.ietf.org/html/rfc2324 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2324 ([https](https://tools.ietf.org/html/rfc2324) result 200). * [ ] http://tools.ietf.org/html/rfc2518 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2518 ([https](https://tools.ietf.org/html/rfc2518) result 200). * [ ] http://tools.ietf.org/html/rfc2616 with 3 occurrences migrated to: https://tools.ietf.org/html/rfc2616 ([https](https://tools.ietf.org/html/rfc2616) result 200). * [ ] http://tools.ietf.org/html/rfc2774 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2774 ([https](https://tools.ietf.org/html/rfc2774) result 200). * [ ] http://tools.ietf.org/html/rfc2817 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2817 ([https](https://tools.ietf.org/html/rfc2817) result 200). * [ ] http://tools.ietf.org/html/rfc2965 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc2965 ([https](https://tools.ietf.org/html/rfc2965) result 200). * [ ] http://tools.ietf.org/html/rfc3229 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc3229 ([https](https://tools.ietf.org/html/rfc3229) result 200). * [ ] http://tools.ietf.org/html/rfc3986 with 3 occurrences migrated to: https://tools.ietf.org/html/rfc3986 ([https](https://tools.ietf.org/html/rfc3986) result 200). * [ ] http://tools.ietf.org/html/rfc4918 with 5 occurrences migrated to: https://tools.ietf.org/html/rfc4918 ([https](https://tools.ietf.org/html/rfc4918) result 200). * [ ] http://tools.ietf.org/html/rfc5842 with 2 occurrences migrated to: https://tools.ietf.org/html/rfc5842 ([https](https://tools.ietf.org/html/rfc5842) result 200). * [ ] http://tools.ietf.org/html/rfc5988 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc5988 ([https](https://tools.ietf.org/html/rfc5988) result 200). * [ ] http://tools.ietf.org/html/rfc6202 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc6202 ([https](https://tools.ietf.org/html/rfc6202) result 200). * [ ] http://tools.ietf.org/html/rfc6266 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc6266 ([https](https://tools.ietf.org/html/rfc6266) result 200). * [ ] http://tools.ietf.org/html/rfc6454 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc6454 ([https](https://tools.ietf.org/html/rfc6454) result 200). * [ ] http://tools.ietf.org/html/rfc6455 with 2 occurrences migrated to: https://tools.ietf.org/html/rfc6455 ([https](https://tools.ietf.org/html/rfc6455) result 200). * [ ] http://tools.ietf.org/html/rfc6585 with 4 occurrences migrated to: https://tools.ietf.org/html/rfc6585 ([https](https://tools.ietf.org/html/rfc6585) result 200). * [ ] http://tools.ietf.org/html/rfc7230 with 10 occurrences migrated to: https://tools.ietf.org/html/rfc7230 ([https](https://tools.ietf.org/html/rfc7230) result 200). * [ ] http://tools.ietf.org/html/rfc7231 with 56 occurrences migrated to: https://tools.ietf.org/html/rfc7231 ([https](https://tools.ietf.org/html/rfc7231) result 200). * [ ] http://tools.ietf.org/html/rfc7232 with 8 occurrences migrated to: https://tools.ietf.org/html/rfc7232 ([https](https://tools.ietf.org/html/rfc7232) result 200). * [ ] http://tools.ietf.org/html/rfc7233 with 12 occurrences migrated to: https://tools.ietf.org/html/rfc7233 ([https](https://tools.ietf.org/html/rfc7233) result 200). * [ ] http://tools.ietf.org/html/rfc7234 with 5 occurrences migrated to: https://tools.ietf.org/html/rfc7234 ([https](https://tools.ietf.org/html/rfc7234) result 200). * [ ] http://tools.ietf.org/html/rfc7235 with 6 occurrences migrated to: https://tools.ietf.org/html/rfc7235 ([https](https://tools.ietf.org/html/rfc7235) result 200). * [ ] http://tools.ietf.org/html/rfc7238 with 1 occurrences migrated to: https://tools.ietf.org/html/rfc7238 ([https](https://tools.ietf.org/html/rfc7238) result 200). * [ ] http://tools.ietf.org/html/rfc7239 with 7 occurrences migrated to: https://tools.ietf.org/html/rfc7239 ([https](https://tools.ietf.org/html/rfc7239) result 200). * [ ] http://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt with 3 occurrences migrated to: https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt ([https](https://tools.ietf.org/rfcdiff?difftype=--hwdiff&url2=draft-ietf-webdav-protocol-06.txt) result 200). * [ ] http://unlicense.org with 1 occurrences migrated to: https://unlicense.org ([https](https://unlicense.org) result 200). * [ ] http://www.amazon.com/exec/obidos/tg/detail/-/0764543857/ with 10 occurrences migrated to: https://www.amazon.com/exec/obidos/tg/detail/-/0764543857/ ([https](https://www.amazon.com/exec/obidos/tg/detail/-/0764543857/) result 200). * [ ] http://www.apache.org with 1 occurrences migrated to: https://www.apache.org ([https](https://www.apache.org) result 200). * [ ] http://www.apple.com/DTDs/PropertyList-1.0.dtd with 6 occurrences migrated to: https://www.apple.com/DTDs/PropertyList-1.0.dtd ([https](https://www.apple.com/DTDs/PropertyList-1.0.dtd) result 200). * [ ] http://www.atomikos.com/ with 1 occurrences migrated to: https://www.atomikos.com/ ([https](https://www.atomikos.com/) result 200). * [ ] http://www.baeldung.com/kotlin-null-safety with 1 occurrences migrated to: https://www.baeldung.com/kotlin-null-safety ([https](https://www.baeldung.com/kotlin-null-safety) result 200). * [ ] http://www.eclipse.org/aspectj/doc/released/devguide/index.html with 1 occurrences migrated to: https://www.eclipse.org/aspectj/doc/released/devguide/index.html ([https](https://www.eclipse.org/aspectj/doc/released/devguide/index.html) result 200). * [ ] http://www.eclipse.org/aspectj/doc/released/devguide/ltw-configuration.html with 1 occurrences migrated to: https://www.eclipse.org/aspectj/doc/released/devguide/ltw-configuration.html ([https](https://www.eclipse.org/aspectj/doc/released/devguide/ltw-configuration.html) result 200). * [ ] http://www.eclipse.org/aspectj/dtd/aspectj.dtd with 1 occurrences migrated to: https://www.eclipse.org/aspectj/dtd/aspectj.dtd ([https](https://www.eclipse.org/aspectj/dtd/aspectj.dtd) result 200). * [ ] http://ehcache.sourceforge.net (301) with 1 occurrences migrated to: https://www.ehcache.org/ ([https](https://ehcache.sourceforge.net) result 200). * [ ] http://ehcache.org/ (301) with 1 occurrences migrated to: https://www.ehcache.org/ ([https](https://ehcache.org/) result 200). * [ ] http://www.embeddedjs.com/ with 2 occurrences migrated to: https://www.embeddedjs.com/ ([https](https://www.embeddedjs.com/) result 200). * [ ] http://www.enterpriseintegrationpatterns.com with 1 occurrences migrated to: https://www.enterpriseintegrationpatterns.com ([https](https://www.enterpriseintegrationpatterns.com) result 200). * [ ] http://www.example.org/?param=aGVsbG9Xb3JsZA%3D%3D with 1 occurrences migrated to: https://www.example.org/?param=aGVsbG9Xb3JsZA%3D%3D ([https](https://www.example.org/?param=aGVsbG9Xb3JsZA%3D%3D) result 200). * [ ] http://www.google.com with 2 occurrences migrated to: https://www.google.com ([https](https://www.google.com) result 200). * [ ] http://www.h2database.com with 1 occurrences migrated to: https://www.h2database.com ([https](https://www.h2database.com) result 200). * [ ] http://www.h2database.com/html/grammar.html with 1 occurrences migrated to: https://www.h2database.com/html/grammar.html ([https](https://www.h2database.com/html/grammar.html) result 200). * [ ] http://www.ietf.org with 1 occurrences migrated to: https://www.ietf.org ([https](https://www.ietf.org) result 200). * [ ] http://www.ietf.org/rfc/rfc1867.txt with 1 occurrences migrated to: https://www.ietf.org/rfc/rfc1867.txt ([https](https://www.ietf.org/rfc/rfc1867.txt) result 200). * [ ] http://www.ietf.org/rfc/rfc2396.txt with 2 occurrences migrated to: https://www.ietf.org/rfc/rfc2396.txt ([https](https://www.ietf.org/rfc/rfc2396.txt) result 200). * [ ] http://www.ietf.org/rfc/rfc3986.txt with 11 occurrences migrated to: https://www.ietf.org/rfc/rfc3986.txt ([https](https://www.ietf.org/rfc/rfc3986.txt) result 200). * [ ] http://www.infoq.com/ with 1 occurrences migrated to: https://www.infoq.com/ ([https](https://www.infoq.com/) result 200). * [ ] http://www.infoq.com/minibooks/JTDS with 1 occurrences migrated to: https://www.infoq.com/minibooks/JTDS ([https](https://www.infoq.com/minibooks/JTDS) result 200). * [ ] http://www.jetbrains.com/idea/ with 1 occurrences migrated to: https://www.jetbrains.com/idea/ ([https](https://www.jetbrains.com/idea/) result 200). * [ ] http://www.json.org/ with 1 occurrences migrated to: https://www.json.org/ ([https](https://www.json.org/) result 200). * [ ] http://www.jython.org with 2 occurrences migrated to: https://www.jython.org ([https](https://www.jython.org) result 200). * [ ] http://www.jython.org/ with 2 occurrences migrated to: https://www.jython.org/ ([https](https://www.jython.org/) result 200). * [ ] http://www.lowagie.com/iText with 2 occurrences migrated to: https://www.lowagie.com/iText ([https](https://www.lowagie.com/iText) result 200). * [ ] http://www.manpagez.com/man/5/crontab/ with 1 occurrences migrated to: https://www.manpagez.com/man/5/crontab/ ([https](https://www.manpagez.com/man/5/crontab/) result 200). * [ ] http://mydomain1.com:80/ (301) with 2 occurrences migrated to: https://www.mydomain1.com/ ([https](https://mydomain1.com:80/) result 200). * [ ] http://mydomain1.com:80 (301) with 1 occurrences migrated to: https://www.mydomain1.com/ ([https](https://mydomain1.com:80) result 200). * [ ] http://www.oracle.com/technetwork/articles/javaee/jpa-137156.html with 1 occurrences migrated to: https://www.oracle.com/technetwork/articles/javaee/jpa-137156.html ([https](https://www.oracle.com/technetwork/articles/javaee/jpa-137156.html) result 200). * [ ] http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html with 1 occurrences migrated to: https://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html ([https](https://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html) result 200). * [ ] http://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html with 1 occurrences migrated to: https://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html ([https](https://www.oracle.com/technetwork/java/javase/documentation/spec-136004.html) result 200). * [ ] http://www.oracle.com/technetwork/java/javase/tech/download-jsp-141676.html with 1 occurrences migrated to: https://www.oracle.com/technetwork/java/javase/tech/download-jsp-141676.html ([https](https://www.oracle.com/technetwork/java/javase/tech/download-jsp-141676.html) result 200). * [ ] http://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html with 1 occurrences migrated to: https://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html ([https](https://www.oracle.com/technetwork/java/javase/tech/javamanagement-140525.html) result 200). * [ ] http://www.ow2.org/ with 1 occurrences migrated to: https://www.ow2.org/ ([https](https://www.ow2.org/) result 200). * [ ] http://www.owasp.org/index.php/HTTPOnly with 4 occurrences migrated to: https://www.owasp.org/index.php/HTTPOnly ([https](https://www.owasp.org/index.php/HTTPOnly) result 200). * [ ] http://quartz-scheduler.org (301) with 3 occurrences migrated to: https://www.quartz-scheduler.org/ ([https](https://quartz-scheduler.org) result 200). * [ ] http://www.rabbitmq.com/stomp.html with 1 occurrences migrated to: https://www.rabbitmq.com/stomp.html ([https](https://www.rabbitmq.com/stomp.html) result 200). * [ ] http://www.reactive-streams.org with 1 occurrences migrated to: https://www.reactive-streams.org ([https](https://www.reactive-streams.org) result 200). * [ ] http://www.reactive-streams.org/ with 2 occurrences migrated to: https://www.reactive-streams.org/ ([https](https://www.reactive-streams.org/) result 200). * [ ] http://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Publisher.html with 1 occurrences migrated to: https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Publisher.html ([https](https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Publisher.html) result 200). * [ ] http://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Subscriber.html with 1 occurrences migrated to: https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Subscriber.html ([https](https://www.reactive-streams.org/reactive-streams-1.0.1-javadoc/org/reactivestreams/Subscriber.html) result 200). * [ ] http://seleniumhq.org/projects/webdriver/ (301) with 1 occurrences migrated to: https://www.seleniumhq.org ([https](https://seleniumhq.org/projects/webdriver/) result 200). * [ ] http://www.springbyexample.org/examples/custom-thread-scope-module.html with 1 occurrences migrated to: https://www.springbyexample.org/examples/custom-thread-scope-module.html ([https](https://www.springbyexample.org/examples/custom-thread-scope-module.html) result 200). * [ ] http://www.springframework.org/dtd/spring-beans-2.0.dtd with 3 occurrences migrated to: https://www.springframework.org/dtd/spring-beans-2.0.dtd ([https](https://www.springframework.org/dtd/spring-beans-2.0.dtd) result 200). * [ ] http://www.springframework.org/schema/aop/spring-aop.xsd with 12 occurrences migrated to: https://www.springframework.org/schema/aop/spring-aop.xsd ([https](https://www.springframework.org/schema/aop/spring-aop.xsd) result 200). * [ ] http://www.springframework.org/schema/beans/spring-beans.xsd with 80 occurrences migrated to: https://www.springframework.org/schema/beans/spring-beans.xsd ([https](https://www.springframework.org/schema/beans/spring-beans.xsd) result 200). * [ ] http://www.springframework.org/schema/cache/spring-cache.xsd with 2 occurrences migrated to: https://www.springframework.org/schema/cache/spring-cache.xsd ([https](https://www.springframework.org/schema/cache/spring-cache.xsd) result 200). * [ ] http://www.springframework.org/schema/context/spring-context.xsd with 13 occurrences migrated to: https://www.springframework.org/schema/context/spring-context.xsd ([https](https://www.springframework.org/schema/context/spring-context.xsd) result 200). * [ ] http://www.springframework.org/schema/jdbc/spring-jdbc.xsd with 1 occurrences migrated to: https://www.springframework.org/schema/jdbc/spring-jdbc.xsd ([https](https://www.springframework.org/schema/jdbc/spring-jdbc.xsd) result 200). * [ ] http://www.springframework.org/schema/jee/spring-jee.xsd with 2 occurrences migrated to: https://www.springframework.org/schema/jee/spring-jee.xsd ([https](https://www.springframework.org/schema/jee/spring-jee.xsd) result 200). * [ ] http://www.springframework.org/schema/jms/spring-jms.xsd with 2 occurrences migrated to: https://www.springframework.org/schema/jms/spring-jms.xsd ([https](https://www.springframework.org/schema/jms/spring-jms.xsd) result 200). * [ ] http://www.springframework.org/schema/lang/spring-lang.xsd with 4 occurrences migrated to: https://www.springframework.org/schema/lang/spring-lang.xsd ([https](https://www.springframework.org/schema/lang/spring-lang.xsd) result 200). * [ ] http://www.springframework.org/schema/mvc/spring-mvc.xsd with 3 occurrences migrated to: https://www.springframework.org/schema/mvc/spring-mvc.xsd ([https](https://www.springframework.org/schema/mvc/spring-mvc.xsd) result 200). * [ ] http://www.springframework.org/schema/oxm/spring-oxm.xsd with 1 occurrences migrated to: https://www.springframework.org/schema/oxm/spring-oxm.xsd ([https](https://www.springframework.org/schema/oxm/spring-oxm.xsd) result 200). * [ ] http://www.springframework.org/schema/tool/spring-tool.xsd with 13 occurrences migrated to: https://www.springframework.org/schema/tool/spring-tool.xsd ([https](https://www.springframework.org/schema/tool/spring-tool.xsd) result 200). * [ ] http://www.springframework.org/schema/tx/spring-tx.xsd with 8 occurrences migrated to: https://www.springframework.org/schema/tx/spring-tx.xsd ([https](https://www.springframework.org/schema/tx/spring-tx.xsd) result 200). * [ ] http://www.springframework.org/schema/util/spring-util.xsd with 1 occurrences migrated to: https://www.springframework.org/schema/util/spring-util.xsd ([https](https://www.springframework.org/schema/util/spring-util.xsd) result 200). * [ ] http://www.springframework.org/schema/websocket/spring-websocket.xsd with 12 occurrences migrated to: https://www.springframework.org/schema/websocket/spring-websocket.xsd ([https](https://www.springframework.org/schema/websocket/spring-websocket.xsd) result 200). * [ ] http://www.stuartellis.eu/articles/erb/ (301) with 2 occurrences migrated to: https://www.stuartellis.name/articles/erb/ ([https](https://www.stuartellis.eu/articles/erb/) result 200). * [ ] http://www.thymeleaf.org/ with 2 occurrences migrated to: https://www.thymeleaf.org/ ([https](https://www.thymeleaf.org/) result 200). * [ ] http://www.thymeleaf.org/documentation.html with 2 occurrences migrated to: https://www.thymeleaf.org/documentation.html ([https](https://www.thymeleaf.org/documentation.html) result 200). * [ ] http://www.w3.org/2000/xmlns/ with 5 occurrences migrated to: https://www.w3.org/2000/xmlns/ ([https](https://www.w3.org/2000/xmlns/) result 200). * [ ] http://www.w3.org/2004/08/xop/include with 2 occurrences migrated to: https://www.w3.org/2004/08/xop/include ([https](https://www.w3.org/2004/08/xop/include) result 200). * [ ] http://www.w3.org/DesignIssues/MatrixURIs.html with 1 occurrences migrated to: https://www.w3.org/DesignIssues/MatrixURIs.html ([https](https://www.w3.org/DesignIssues/MatrixURIs.html) result 200). * [ ] http://www.w3.org/TR/2004/WD-soap12-mtom-20040608/ with 2 occurrences migrated to: https://www.w3.org/TR/2004/WD-soap12-mtom-20040608/ ([https](https://www.w3.org/TR/2004/WD-soap12-mtom-20040608/) result 200). * [ ] http://www.w3.org/TR/2005/REC-xop10-20050125/ with 6 occurrences migrated to: https://www.w3.org/TR/2005/REC-xop10-20050125/ ([https](https://www.w3.org/TR/2005/REC-xop10-20050125/) result 200). * [ ] http://www.w3.org/TR/cors/ with 19 occurrences migrated to: https://www.w3.org/TR/cors/ ([https](https://www.w3.org/TR/cors/) result 200). * [ ] http://www.w3.org/TR/eventsource/ with 2 occurrences migrated to: https://www.w3.org/TR/eventsource/ ([https](https://www.w3.org/TR/eventsource/) result 200). * [ ] http://www.w3.org/TR/xhtml1/ with 1 occurrences migrated to: https://www.w3.org/TR/xhtml1/ ([https](https://www.w3.org/TR/xhtml1/) result 200). * [ ] http://www.w3.org/TR/xhtml1/diffs.html with 1 occurrences migrated to: https://www.w3.org/TR/xhtml1/diffs.html ([https](https://www.w3.org/TR/xhtml1/diffs.html) result 200). * [ ] http://www.w3.org/TR/xhtml1/dtds.html with 1 occurrences migrated to: https://www.w3.org/TR/xhtml1/dtds.html ([https](https://www.w3.org/TR/xhtml1/dtds.html) result 200). * [ ] http://www.webjars.org with 4 occurrences migrated to: https://www.webjars.org ([https](https://www.webjars.org) result 200). * [ ] http://www.webjars.org/ with 2 occurrences migrated to: https://www.webjars.org/ ([https](https://www.webjars.org/) result 200). * [ ] http://www.webjars.org/documentation with 2 occurrences migrated to: https://www.webjars.org/documentation ([https](https://www.webjars.org/documentation) result 200). * [ ] http://x-stream.github.io/ with 2 occurrences migrated to: https://x-stream.github.io/ ([https](https://x-stream.github.io/) result 200). * [ ] http://youtrack.jetbrains.com/issue/IDEA-53476 with 1 occurrences migrated to: https://youtrack.jetbrains.com/issue/IDEA-53476 ([https](https://youtrack.jetbrains.com/issue/IDEA-53476) result 200). * [ ] http://youtrack.jetbrains.com/issue/IDEA-64446 with 1 occurrences migrated to: https://youtrack.jetbrains.com/issue/IDEA-64446 ([https](https://youtrack.jetbrains.com/issue/IDEA-64446) result 200). * [ ] http://bit.ly/TRlX2r with 1 occurrences migrated to: https://bit.ly/TRlX2r ([https](https://bit.ly/TRlX2r) result 301). * [ ] http://bit.ly/UzccDt with 1 occurrences migrated to: https://bit.ly/UzccDt ([https](https://bit.ly/UzccDt) result 301). * [ ] http://bit.ly/p9rIvx with 1 occurrences migrated to: https://bit.ly/p9rIvx ([https](https://bit.ly/p9rIvx) result 301). * [ ] http://bit.ly/qUwvwz with 1 occurrences migrated to: https://bit.ly/qUwvwz ([https](https://bit.ly/qUwvwz) result 301). * [ ] http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx with 1 occurrences migrated to: https://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx ([https](https://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx) result 301). * [ ] http://castor-data-binding.github.io/castor with 1 occurrences migrated to: https://castor-data-binding.github.io/castor ([https](https://castor-data-binding.github.io/castor) result 301). * [ ] http://code.google.com/p/beanshell2/ with 1 occurrences migrated to: https://code.google.com/p/beanshell2/ ([https](https://code.google.com/p/beanshell2/) result 301). * [ ] http://code.google.com/p/browsersec/wiki/Part2 with 1 occurrences migrated to: https://code.google.com/p/browsersec/wiki/Part2 ([https](https://code.google.com/p/browsersec/wiki/Part2) result 301). * [ ] http://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal with 1 occurrences migrated to: https://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal ([https](https://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal) result 301). * [ ] http://code.google.com/p/xml-matchers/ with 3 occurrences migrated to: https://code.google.com/p/xml-matchers/ ([https](https://code.google.com/p/xml-matchers/) result 301). * [ ] http://commons.apache.org/proper/commons-dbcp with 2 occurrences migrated to: https://commons.apache.org/proper/commons-dbcp ([https](https://commons.apache.org/proper/commons-dbcp) result 301). * [ ] http://commons.apache.org/proper/commons-fileupload with 2 occurrences migrated to: https://commons.apache.org/proper/commons-fileupload ([https](https://commons.apache.org/proper/commons-fileupload) result 301). * [ ] http://confluence.jetbrains.net/display/IDEADEV/Gradle+integration with 1 occurrences migrated to: https://confluence.jetbrains.net/display/IDEADEV/Gradle+integration ([https](https://confluence.jetbrains.net/display/IDEADEV/Gradle+integration) result 301). * [ ] http://contributor-covenant.org with 1 occurrences migrated to: https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301). * [ ] http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to: https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301). * [ ] http://db.apache.org/derby with 2 occurrences migrated to: https://db.apache.org/derby ([https](https://db.apache.org/derby) result 301). * [ ] http://dev.w3.org/html5/eventsource/ with 2 occurrences migrated to: https://dev.w3.org/html5/eventsource/ ([https](https://dev.w3.org/html5/eventsource/) result 301). * [ ] http://domain.com with 24 occurrences migrated to: https://domain.com ([https](https://domain.com) result 301). * [ ] http://domain.com/ with 1 occurrences migrated to: https://domain.com/ ([https](https://domain.com/) result 301). * [ ] http://en.wikipedia.org/wiki/Cache_ with 1 occurrences migrated to: https://en.wikipedia.org/wiki/Cache_ ([https](https://en.wikipedia.org/wiki/Cache_) result 301). * [ ] http://facebook.github.io/react/ with 2 occurrences migrated to: https://facebook.github.io/react/ ([https](https://facebook.github.io/react/) result 301). * [ ] http://forum.springframework.org/showthread.php?t=41350 with 1 occurrences migrated to: https://forum.springframework.org/showthread.php?t=41350 ([https](https://forum.springframework.org/showthread.php?t=41350) result 301). * [ ] http://github.com/SpringSource/spring-framework with 1 occurrences migrated to: https://github.com/SpringSource/spring-framework ([https](https://github.com/SpringSource/spring-framework) result 301). * [ ] http://hdiv.org/ with 1 occurrences migrated to: https://hdiv.org/ ([https](https://hdiv.org/) result 301). * [ ] http://jakarta.apache.org/commons/fileupload with 1 occurrences migrated to: https://jakarta.apache.org/commons/fileupload ([https](https://jakarta.apache.org/commons/fileupload) result 301). * [ ] http://jira.springframework.org/browse/SPR-5708 with 1 occurrences migrated to: https://jira.springframework.org/browse/SPR-5708 ([https](https://jira.springframework.org/browse/SPR-5708) result 301). * [ ] http://jira.springframework.org/browse/SPR-6124 with 1 occurrences migrated to: https://jira.springframework.org/browse/SPR-6124 ([https](https://jira.springframework.org/browse/SPR-6124) result 301). * [ ] http://jira.springframework.org/browse/SPR-6128 with 1 occurrences migrated to: https://jira.springframework.org/browse/SPR-6128 ([https](https://jira.springframework.org/browse/SPR-6128) result 301). * [ ] http://jira.springframework.org/browse/SPR-7064 with 1 occurrences migrated to: https://jira.springframework.org/browse/SPR-7064 ([https](https://jira.springframework.org/browse/SPR-7064) result 301). * [ ] http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html with 1 occurrences migrated to: https://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html ([https](https://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html) result 301). * [ ] http://mockito.org/ (301) with 1 occurrences migrated to: https://mockito.github.io ([https](https://mockito.org/) result 301). * [ ] http://mydomain1.com with 37 occurrences migrated to: https://mydomain1.com ([https](https://mydomain1.com) result 301). * [ ] http://mydomain1.com/ with 2 occurrences migrated to: https://mydomain1.com/ ([https](https://mydomain1.com/) result 301). * [ ] http://mydomain1.com/path with 2 occurrences migrated to: https://mydomain1.com/path ([https](https://mydomain1.com/path) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2660 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-2660 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2660) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2754 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-2754 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2754) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2789 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-2789 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2789) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3127 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3127 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3127) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3775 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3775 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3775) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3880 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3880 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3880) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3896 with 7 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3896 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3896) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3949 with 1 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-3949 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3949) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-4008 with 2 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-4008 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-4008) result 301). * [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-4040 with 2 occurrences migrated to: https://opensource.atlassian.com/projects/spring/browse/SPR-4040 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-4040) result 301). * [ ] http://publib.boulder.ibm.com/infocenter/wasinfo/v5r1//topic/com.ibm.websphere.base.doc/info/aes/ae/rdat_extiapi.html with 1 occurrences migrated to: https://publib.boulder.ibm.com/infocenter/wasinfo/v5r1//topic/com.ibm.websphere.base.doc/info/aes/ae/rdat_extiapi.html ([https](https://publib.boulder.ibm.com/infocenter/wasinfo/v5r1//topic/com.ibm.websphere.base.doc/info/aes/ae/rdat_extiapi.html) result 301). * [ ] http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.javadoc.doc/public_html/api/com/ibm/websphere/rsadapter/JDBCConnectionSpec.html with 1 occurrences migrated to: https://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.javadoc.doc/public_html/api/com/ibm/websphere/rsadapter/JDBCConnectionSpec.html ([https](https://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/topic/com.ibm.websphere.javadoc.doc/public_html/api/com/ibm/websphere/rsadapter/JDBCConnectionSpec.html) result 301). * [ ] http://site2.com with 3 occurrences migrated to: https://site2.com ([https](https://site2.com) result 301). * [ ] http://slack.kotlinlang.org/ with 2 occurrences migrated to: https://slack.kotlinlang.org/ ([https](https://slack.kotlinlang.org/) result 301). * [ ] http://sourceforge.net/projects/c3p0 with 2 occurrences migrated to: https://sourceforge.net/projects/c3p0 ([https](https://sourceforge.net/projects/c3p0) result 301). * [ ] http://sourceforge.net/projects/javadiff with 1 occurrences migrated to: https://sourceforge.net/projects/javadiff ([https](https://sourceforge.net/projects/javadiff) result 301). * [ ] http://springframework.org with 2 occurrences migrated to: https://springframework.org ([https](https://springframework.org) result 301). * [ ] http://www.atomenabled.org/developers/syndication/ with 1 occurrences migrated to: https://www.atomenabled.org/developers/syndication/ ([https](https://www.atomenabled.org/developers/syndication/) result 301). * [ ] http://www.google.com/ig/calculator?q=1USD=?EUR with 1 occurrences migrated to: https://www.google.com/ig/calculator?q=1USD=?EUR ([https](https://www.google.com/ig/calculator?q=1USD=?EUR) result 301). * [ ] http://www.javaworld.com/javaworld/jw-01-2009/jw-01-spring-transactions.html with 1 occurrences migrated to: https://www.javaworld.com/javaworld/jw-01-2009/jw-01-spring-transactions.html ([https](https://www.javaworld.com/javaworld/jw-01-2009/jw-01-spring-transactions.html) result 301). * [ ] http://www.junit.org/ with 1 occurrences migrated to: https://www.junit.org/ ([https](https://www.junit.org/) result 301). * [ ] http://www.mnot.net/cache_docs with 1 occurrences migrated to: https://www.mnot.net/cache_docs ([https](https://www.mnot.net/cache_docs) result 301). * [ ] http://www.sf.net/home.view?siteLanguage=nl with 1 occurrences migrated to: https://www.sf.net/home.view?siteLanguage=nl ([https](https://www.sf.net/home.view?siteLanguage=nl) result 301). * [ ] http://www.springframework.org with 7 occurrences migrated to: https://www.springframework.org ([https](https://www.springframework.org) result 301). * [ ] http://www.springframework.org/ with 3 occurrences migrated to: https://www.springframework.org/ ([https](https://www.springframework.org/) result 301). * [ ] http://xyz.com/path with 2 occurrences migrated to: https://xyz.com/path ([https](https://xyz.com/path) result 301). * [ ] http://commons.apache.org/codec/ with 1 occurrences migrated to: https://commons.apache.org/codec/ ([https](https://commons.apache.org/codec/) result 302). * [ ] http://commons.apache.org/logging with 2 occurrences migrated to: https://commons.apache.org/logging ([https](https://commons.apache.org/logging) result 302). * [ ] http://download.oracle.com/javaee/6/api/javax/inject/Scope.html with 1 occurrences migrated to: https://download.oracle.com/javaee/6/api/javax/inject/Scope.html ([https](https://download.oracle.com/javaee/6/api/javax/inject/Scope.html) result 302). * [ ] http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html with 4 occurrences migrated to: https://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html ([https](https://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html) result 302). * [ ] http://download.oracle.com/javase/6/docs/technotes/guides/jar/jar.html with 1 occurrences migrated to: https://download.oracle.com/javase/6/docs/technotes/guides/jar/jar.html ([https](https://download.oracle.com/javase/6/docs/technotes/guides/jar/jar.html) result 302). * [ ] http://download.oracle.com/javase/8/docs/api/java/beans/ConstructorProperties.html with 1 occurrences migrated to: https://download.oracle.com/javase/8/docs/api/java/beans/ConstructorProperties.html ([https](https://download.oracle.com/javase/8/docs/api/java/beans/ConstructorProperties.html) result 302). * [ ] http://download.oracle.com/javase/jndi/tutorial/beyond/misc/policy.html with 1 occurrences migrated to: https://download.oracle.com/javase/jndi/tutorial/beyond/misc/policy.html ([https](https://download.oracle.com/javase/jndi/tutorial/beyond/misc/policy.html) result 302). * [ ] http://gafter.blogspot.nl/2006/12/super-type-tokens.html with 1 occurrences migrated to: https://gafter.blogspot.nl/2006/12/super-type-tokens.html ([https](https://gafter.blogspot.nl/2006/12/super-type-tokens.html) result 302). * [ ] http://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project with 1 occurrences migrated to: https://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project ([https](https://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project) result 302). * [ ] http://git-scm.com/book/en/Git-Tools-Rewriting-History with 1 occurrences migrated to: https://git-scm.com/book/en/Git-Tools-Rewriting-History ([https](https://git-scm.com/book/en/Git-Tools-Rewriting-History) result 302). * [ ] http://java.sun.com with 3 occurrences migrated to: https://java.sun.com ([https](https://java.sun.com) result 302). * [ ] http://java.sun.com/docs/books/jls/third_edition/html/conversions.html with 1 occurrences migrated to: https://java.sun.com/docs/books/jls/third_edition/html/conversions.html ([https](https://java.sun.com/docs/books/jls/third_edition/html/conversions.html) result 302). * [ ] http://java.sun.com/docs/books/jls/third_edition/html/expressions.html with 1 occurrences migrated to: https://java.sun.com/docs/books/jls/third_edition/html/expressions.html ([https](https://java.sun.com/docs/books/jls/third_edition/html/expressions.html) result 302). * [ ] http://java.sun.com/j2se/ with 2 occurrences migrated to: https://java.sun.com/j2se/ ([https](https://java.sun.com/j2se/) result 302). * [ ] http://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html with 1 occurrences migrated to: https://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html ([https](https://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html) result 302). * [ ] http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html with 1 occurrences migrated to: https://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html ([https](https://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html) result 302). * [ ] http://java.sun.com/j2se/javadoc with 1 occurrences migrated to: https://java.sun.com/j2se/javadoc ([https](https://java.sun.com/j2se/javadoc) result 302). * [ ] http://java.sun.com/j2se/javadoc/ with 1 occurrences migrated to: https://java.sun.com/j2se/javadoc/ ([https](https://java.sun.com/j2se/javadoc/) result 302). * [ ] http://java.sun.com/j2se/javadoc/faq.html with 1 occurrences migrated to: https://java.sun.com/j2se/javadoc/faq.html ([https](https://java.sun.com/j2se/javadoc/faq.html) result 302). * [ ] http://java.sun.com/webservices/jaxb/ with 1 occurrences migrated to: https://java.sun.com/webservices/jaxb/ ([https](https://java.sun.com/webservices/jaxb/) result 302). * [ ] http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd with 1 occurrences migrated to: https://java.sun.com/xml/ns/j2ee/connector_1_5.xsd ([https](https://java.sun.com/xml/ns/j2ee/connector_1_5.xsd) result 302). * [ ] http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd with 2 occurrences migrated to: https://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ([https](https://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd) result 302). * [ ] http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd with 2 occurrences migrated to: https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd ([https](https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd) result 302). * [ ] http://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download with 1 occurrences migrated to: https://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download ([https](https://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download) result 302). * [ ] http://other.info/foo/bar (301) with 1 occurrences migrated to: https://weibo.com/otherinfo/foo/bar ([https](https://other.info/foo/bar) result 302). * [ ] http://www.iana.org/assignments/http-status-codes with 1 occurrences migrated to: https://www.iana.org/assignments/http-status-codes ([https](https://www.iana.org/assignments/http-status-codes) result 302). * [ ] http://www.iana.org/assignments/media-types/ with 1 occurrences migrated to: https://www.iana.org/assignments/media-types/ ([https](https://www.iana.org/assignments/media-types/) result 302). * [ ] http://www.sys-con.com/java with 1 occurrences migrated to: https://www.sys-con.com/java ([https](https://www.sys-con.com/java) result 302). These URLs were intentionally ignored. * http://Additional-namespace-name-URI with 1 occurrences * http://Default-namespace-name-URI with 1 occurrences * http://HOST:8080/remoting/AccountService with 1 occurrences * http://Namespace-name-URI with 1 occurrences * http://Unbound-namespace-name-URI with 1 occurrences * http://anotherHost/mvc-showcase with 1 occurrences * http://apache.org/xml/features/disallow-doctype-decl with 14 occurrences * http://barfoo:8888 with 1 occurrences * http://example/ with 1 occurrences * http://fake-service with 7 occurrences * http://foo with 3 occurrences * http://foobar:8088 with 1 occurrences * http://host:port/myApp/myEndpoint/ with 1 occurrences * http://java.sun.com/jsp/jstl/core with 1 occurrences * http://java.sun.com/xml/jaxp/properties/schemaLanguage with 1 occurrences * http://java.sun.com/xml/ns/j2ee with 6 occurrences * http://java.sun.com/xml/ns/javaee with 4 occurrences * http://java.sun.com/xml/ns/persistence with 1 occurrences * http://java.sun.com/xml/stream/properties/report-cdata-event with 1 occurrences * http://jaxws.remoting.springframework.org/ with 4 occurrences * http://localhost with 86 occurrences * http://localhost/ with 16 occurrences * http://localhost/42 with 1 occurrences * http://localhost/?cookie=foo with 1 occurrences * http://localhost/FILE.TXT with 1 occurrences * http://localhost/abc with 1 occurrences * http://localhost/abc/def with 1 occurrences * http://localhost/app%20/path/ with 1 occurrences * http://localhost/app/path%20with%20spaces/ with 1 occurrences * http://localhost/bar with 2 occurrences * http://localhost/context/a with 3 occurrences * http://localhost/contextPath/main/path with 2 occurrences * http://localhost/file.foo with 1 occurrences * http://localhost/file.txt with 1 occurrences * http://localhost/foo with 2 occurrences * http://localhost/foo%20bar with 1 occurrences * http://localhost/foo/bar with 1 occurrences * http://localhost/foo/bar/baz with 1 occurrences * http://localhost/forward with 1 occurrences * http://localhost/hotels/42/bookings/21 with 4 occurrences * http://localhost/input with 1 occurrences * http://localhost/jquery-1.11.0.min.js with 5 occurrences * http://localhost/messages/form with 1 occurrences * http://localhost/mvc-showcase with 2 occurrences * http://localhost/mvc-showcase/app with 1 occurrences * http://localhost/mvc-showcase/data/foo%20bar with 1 occurrences * http://localhost/mvc-showcase/data/param with 1 occurrences * http://localhost/mvc-showcase/data/param?foo=123 with 2 occurrences * http://localhost/myapp/main with 1 occurrences * http://localhost/myapp/people/1/addresses/DE with 1 occurrences * http://localhost/path with 3 occurrences * http://localhost/path;a=b/with/semicolon with 1 occurrences * http://localhost/persons with 1 occurrences * http://localhost/prefix with 1 occurrences * http://localhost/prefix/app with 1 occurrences * http://localhost/prefix/bar with 1 occurrences * http://localhost/prefix/mvc-showcase with 3 occurrences * http://localhost/query= with 1 occurrences * http://localhost/query=foo@bar with 1 occurrences * http://localhost/resources/child/response.txt with 1 occurrences * http://localhost/resources/foo with 2 occurrences * http://localhost/resources/foo.txt with 1 occurrences * http://localhost/resources/response.txt with 2 occurrences * http://localhost/rest/books/6/pages/1.json with 1 occurrences * http://localhost/something/1/foo with 1 occurrences * http://localhost/something/optional-param with 1 occurrences * http://localhost/test with 4 occurrences * http://localhost/test.html with 1 occurrences * http://localhost/test/this with 2 occurrences * http://localhost:7070/example/adminhandle.vm with 1 occurrences * http://localhost:7070/example/bingo.html with 1 occurrences * http://localhost:80/jquery-1.11.0.min.js with 1 occurrences * http://localhost:8080 with 34 occurrences * http://localhost:8080/ with 4 occurrences * http://localhost:8080/OrderService with 3 occurrences * http://localhost:8080/aA/bB/cC with 1 occurrences * http://localhost:8080/context with 1 occurrences * http://localhost:8080/context/myapiresource with 1 occurrences * http://localhost:8080/gamecast/admin/index.html with 1 occurrences * http://localhost:8080/gamecast/display.html with 1 occurrences * http://localhost:8080/gamecast/displayShoppingCart.html with 1 occurrences * http://localhost:8080/jquery-1.11.0.min.js with 1 occurrences * http://localhost:8080/mvc-showcase with 1 occurrences * http://localhost:8080/myapiresource with 1 occurrences * http://localhost:8080/myapp/js/sockjs-client.js with 1 occurrences * http://localhost:8080/path with 2 occurrences * http://localhost:8080/people with 2 occurrences * http://localhost:8080/portfolio with 1 occurrences * http://localhost:8080/spring/ with 2 occurrences * http://localhost:8080/test/ with 2 occurrences * http://localhost:8080/test/print?value=%EA%B0%80+%EB%82%98 with 1 occurrences * http://localhost:8081 with 1 occurrences * http://localhost:8081/ with 1 occurrences * http://localhost:8181 with 1 occurrences * http://localhost:8888/AccountServiceEndpoint?WSDL with 1 occurrences * http://localhost:9000 with 7 occurrences * http://localhost:9090 with 18 occurrences * http://localhost:9090/jquery-1.11.0.min.js with 2 occurrences * http://localhost:9990/mail/messages/form with 1 occurrences * http://localhost:9999/ with 1 occurrences * http://localhost:9999/OrderService?wsdl with 4 occurrences * http://localhosta/testbean with 3 occurrences * http://myserver with 1 occurrences * http://myurl with 12 occurrences * http://remotehost:8080/remoting/AccountService with 2 occurrences * http://samples.springframework.org/flight with 39 occurrences * http://somethingDifferent with 1 occurrences * http://springframework.org/spring-ws with 17 occurrences * http://test.com with 1 occurrences * http://test.com/ with 1 occurrences * http://testng.org/ with 1 occurrences * http://tiles.apache.org/tags-tiles with 1 occurrences * http://www with 1 occurrences * http://www.foo.com/schema/component with 6 occurrences * http://www.mycompany.com/schema/myns with 4 occurrences * http://www.springframework.org/schema/aop with 30 occurrences * http://www.springframework.org/schema/beans with 169 occurrences * http://www.springframework.org/schema/beans/test with 2 occurrences * http://www.springframework.org/schema/c with 1 occurrences * http://www.springframework.org/schema/cache with 5 occurrences * http://www.springframework.org/schema/context with 28 occurrences * http://www.springframework.org/schema/jdbc with 8 occurrences * http://www.springframework.org/schema/jee with 9 occurrences * http://www.springframework.org/schema/jms with 5 occurrences * http://www.springframework.org/schema/lang with 10 occurrences * http://www.springframework.org/schema/mvc with 8 occurrences * http://www.springframework.org/schema/oxm with 4 occurrences * http://www.springframework.org/schema/p with 4 occurrences * http://www.springframework.org/schema/task with 2 occurrences * http://www.springframework.org/schema/tool with 27 occurrences * http://www.springframework.org/schema/tx with 18 occurrences * http://www.springframework.org/schema/util with 8 occurrences * http://www.springframework.org/schema/websocket with 26 occurrences * http://www.springframework.org/spring-ws with 1 occurrences * http://www.springframework.org/tags with 4 occurrences * http://www.springframework.org/tags/form with 2 occurrences * http://www.w3.org/1999/XSL/Transform with 8 occurrences * http://www.w3.org/2001/XMLSchema with 24 occurrences * http://www.w3.org/2001/XMLSchema-instance with 83 occurrences * http://www.w3.org/2005/Atom with 4 occurrences * http://www.w3.org/TR/html4/charset.html with 5 occurrences * http://www.w3.org/TR/html4/sgml/entities.html with 14 occurrences * http://www.w3.org/XML/1998/namespace with 5 occurrences * http://xml.org/sax/features/ with 4 occurrences * http://xml.org/sax/features/external-general-entities with 14 occurrences * http://xml.org/sax/features/is-standalone with 1 occurrences * http://xml.org/sax/features/namespace-prefixes with 13 occurrences * http://xml.org/sax/features/namespaces with 12 occurrences * http://xml.org/sax/features/namespaces-prefixes with 1 occurrences * http://xml.org/sax/properties/lexical-handler with 12 occurrences Closes gh-22680 --- CODE_OF_CONDUCT.adoc | 4 +- CONTRIBUTING.md | 10 +- README.md | 6 +- gradle/jdiff/README.txt | 6 +- gradle/jdiff/jdiff.html | 22 +-- import-into-eclipse.md | 2 +- import-into-idea.md | 6 +- .../springframework/aop/config/spring-aop.xsd | 4 +- .../aop/framework/ProxyFactoryTests.java | 2 +- .../org/springframework/beans/BeanUtils.java | 6 +- .../beans/ExtendedBeanInfo.java | 4 +- .../beans/factory/config/YamlProcessor.java | 6 +- .../config/YamlPropertiesFactoryBean.java | 8 +- .../beans/factory/package-info.java | 2 +- .../xml/BeanDefinitionParserDelegate.java | 2 +- .../beans/factory/xml/BeansDtdResolver.java | 2 +- .../springframework/beans/package-info.java | 2 +- .../beans/factory/xml/spring-beans.dtd | 2 +- .../beans/factory/xml/spring-util.xsd | 4 +- .../beans/ExtendedBeanInfoTests.java | 2 +- .../DefaultListableBeanFactoryTests.java | 2 +- ...wiredAnnotationBeanPostProcessorTests.java | 2 +- .../support/BeanFactoryGenericsTests.java | 2 +- .../beans/propertyeditors/URIEditorTests.java | 16 +-- .../beans/propertyeditors/URLEditorTests.java | 2 +- .../cache/ehcache/package-info.java | 2 +- .../MethodInvokingJobDetailFactoryBean.java | 2 +- .../scheduling/quartz/package-info.java | 2 +- .../ui/freemarker/package-info.java | 2 +- .../springframework/mail/javamail/mime.types | 2 +- .../interceptor/CacheProxyFactoryBean.java | 2 +- .../context/support/SimpleThreadScope.java | 2 +- .../ejb/access/package-info.java | 2 +- .../WebSphereMBeanServerFactoryBean.java | 4 +- .../jndi/JndiPropertySource.java | 2 +- .../springframework/jndi/package-info.java | 2 +- .../support/CronSequenceGenerator.java | 2 +- .../scripting/bsh/package-info.java | 2 +- .../cache/config/spring-cache.xsd | 4 +- .../context/config/spring-context.xsd | 4 +- .../springframework/ejb/config/spring-jee.xsd | 4 +- .../scheduling/config/spring-task.xsd | 4 +- .../scripting/config/spring-lang.xsd | 4 +- .../Spr3775InitDestroyLifecycleTests.java | 2 +- .../jmx/AbstractMBeanServerTests.java | 2 +- ...ethodExclusionMBeanInfoAssemblerTests.java | 2 +- .../core/BridgeMethodResolver.java | 6 +- .../core/ParameterizedTypeReference.java | 2 +- .../springframework/util/AntPathMatcher.java | 2 +- .../java/org/springframework/util/Assert.java | 2 +- .../org/springframework/util/DigestUtils.java | 2 +- .../org/springframework/util/MimeType.java | 2 +- .../springframework/util/MimeTypeUtils.java | 2 +- .../org/springframework/util/StringUtils.java | 2 +- .../util/xml/TransformerUtils.java | 2 +- .../core/env/StandardEnvironmentTests.java | 8 +- .../core/io/ResourceTests.java | 2 +- .../util/AntPathMatcherTests.java | 2 +- .../springframework/util/MimeTypeTests.java | 4 +- .../util/xml/AbstractStaxHandlerTestCase.java | 2 +- .../util/xml/SimpleNamespaceContextTests.java | 6 +- .../util/xml/TransformerUtilsTests.java | 4 +- spring-expression/readme.txt | 2 +- .../expression/spel/ast/OpMultiply.java | 2 +- .../commons/logging/impl/package-info.java | 2 +- .../apache/commons/logging/package-info.java | 2 +- .../datasource/DriverManagerDataSource.java | 4 +- .../datasource/SimpleDriverDataSource.java | 4 +- .../WebSphereDataSourceAdapter.java | 6 +- .../embedded/EmbeddedDatabaseType.java | 4 +- .../jdbc/object/package-info.java | 2 +- .../springframework/jdbc/package-info.java | 2 +- .../jdbc/config/spring-jdbc.xsd | 4 +- .../datasource/init/db-test-data-h2-alias.sql | 2 +- .../springframework/jms/config/spring-jms.xsd | 2 +- .../stomp/StompBrokerRelayMessageHandler.java | 2 +- .../simp/stomp/StompClientSupport.java | 4 +- .../messaging/simp/stomp/StompDecoder.java | 2 +- .../messaging/simp/stomp/StompEncoder.java | 2 +- .../messaging/simp/stomp/StompHeaders.java | 4 +- .../simp/SimpMessagingTemplateTests.java | 2 +- .../DefaultUserDestinationResolverTests.java | 2 +- .../orm/hibernate5/package-info.java | 2 +- .../oxm/castor/package-info.java | 2 +- .../oxm/jaxb/package-info.java | 2 +- .../oxm/mime/MimeContainer.java | 8 +- .../oxm/mime/MimeMarshaller.java | 4 +- .../oxm/mime/MimeUnmarshaller.java | 4 +- .../oxm/xstream/package-info.java | 2 +- .../springframework/oxm/config/spring-oxm.xsd | 4 +- .../oxm/AbstractMarshallerTests.java | 4 +- .../oxm/castor/CastorMarshallerTests.java | 6 +- .../oxm/jaxb/Jaxb2MarshallerTests.java | 2 +- .../oxm/jaxb/Jaxb2UnmarshallerTests.java | 4 +- .../springframework/oxm/jaxb/Primitives.java | 2 +- .../oxm/jaxb/StandardClasses.java | 4 +- .../org/springframework/oxm/order.xsd | 4 +- .../mock/web/package-info.java | 2 +- .../test/util/JsonExpectationsHelper.java | 2 +- .../client/match/ContentRequestMatchers.java | 6 +- .../web/reactive/server/WebTestClient.java | 2 +- .../servlet/htmlunit/HostRequestMatcher.java | 2 +- .../servlet/result/ContentResultMatchers.java | 4 +- .../mock/web/MockServletContextTests.java | 2 +- ...inedPropertiesTestPropertySourceTests.java | 4 +- ...lizerConfiguredViaMetaAnnotationTests.java | 2 +- ...rridingDefaultLocationsInheritedTests.java | 2 +- ...ridingExplicitLocationsInheritedTests.java | 2 +- .../spr3896/DefaultLocationsBaseTests.java | 2 +- .../DefaultLocationsInheritedTests.java | 2 +- .../spr3896/ExplicitLocationsBaseTests.java | 2 +- .../ExplicitLocationsInheritedTests.java | 2 +- .../junit4/spr3896/Spr3896SuiteTests.java | 2 +- .../spr6128/AutowiredQualifierTests.java | 2 +- .../BootstrapTestUtilsMergedConfigTests.java | 2 +- ...ustomizedGenericXmlContextLoaderTests.java | 2 +- ...mlContextLoaderResourceLocationsTests.java | 10 +- ...TransactionalTestNGSpringContextTests.java | 2 +- ...TransactionalTestNGSpringContextTests.java | 2 +- .../match/MockRestRequestMatchersTests.java | 24 ++-- .../XpathRequestMatchersIntegrationTests.java | 4 +- .../DelegatingWebConnectionTests.java | 2 +- .../htmlunit/HostRequestMatcherTests.java | 4 +- .../htmlunit/HtmlUnitRequestBuilderTests.java | 36 ++--- .../MockMvcConnectionBuilderSupportTests.java | 6 +- .../MockMvcWebClientBuilderTests.java | 4 +- .../htmlunit/UrlRegexRequestMatcherTests.java | 2 +- .../MockMvcHtmlUnitDriverBuilderTests.java | 4 +- .../FlashAttributeAssertionTests.java | 6 +- .../resultmatchers/XpathAssertionTests.java | 8 +- .../WEB-INF/layouts/standardLayout.jsp | 2 +- .../src/test/webapp/WEB-INF/layouts/main.jsp | 2 +- .../dao/DataAccessException.java | 2 +- .../org/springframework/dao/package-info.java | 2 +- .../context/SpringContextResourceAdapter.java | 2 +- .../TransactionProxyFactoryBean.java | 2 +- .../transaction/config/spring-tx.xsd | 4 +- .../RuleBasedTransactionAttributeTests.java | 2 +- .../org/springframework/http/HttpEntity.java | 4 +- .../org/springframework/http/HttpHeaders.java | 120 ++++++++-------- .../org/springframework/http/HttpRange.java | 12 +- .../org/springframework/http/HttpStatus.java | 134 +++++++++--------- .../org/springframework/http/MediaType.java | 4 +- .../springframework/http/RequestEntity.java | 4 +- .../springframework/http/ResponseCookie.java | 4 +- .../springframework/http/ResponseEntity.java | 2 +- ...mponentsAsyncClientHttpRequestFactory.java | 2 +- ...ttpComponentsClientHttpRequestFactory.java | 2 +- .../Netty4ClientHttpRequestFactory.java | 2 +- .../OkHttp3ClientHttpRequestFactory.java | 2 +- .../http/codec/json/Jackson2CodecSupport.java | 2 +- .../converter/FormHttpMessageConverter.java | 6 +- ...ppingJackson2CborHttpMessageConverter.java | 2 +- .../MappingJackson2HttpMessageConverter.java | 2 +- .../caucho/HessianClientInterceptor.java | 2 +- .../remoting/caucho/HessianExporter.java | 2 +- .../caucho/HessianProxyFactoryBean.java | 2 +- .../caucho/HessianServiceExporter.java | 2 +- .../caucho/SimpleHessianServiceExporter.java | 2 +- .../remoting/caucho/package-info.java | 2 +- ...pComponentsHttpInvokerRequestExecutor.java | 2 +- .../SpringServletContainerInitializer.java | 2 +- .../web/bind/annotation/CrossOrigin.java | 4 +- .../web/client/AsyncRestOperations.java | 6 +- .../MessageBodyClientHttpResponseWrapper.java | 2 +- .../web/client/RestOperations.java | 10 +- .../web/cors/CorsConfiguration.java | 6 +- .../web/cors/CorsProcessor.java | 2 +- .../springframework/web/cors/CorsUtils.java | 2 +- .../web/cors/DefaultCorsProcessor.java | 2 +- .../web/cors/reactive/CorsProcessor.java | 2 +- .../web/cors/reactive/CorsUtils.java | 2 +- .../web/cors/reactive/CorsWebFilter.java | 2 +- .../cors/reactive/DefaultCorsProcessor.java | 2 +- .../web/filter/CorsFilter.java | 2 +- .../web/multipart/MultipartResolver.java | 2 +- .../commons/CommonsMultipartResolver.java | 2 +- .../web/multipart/commons/package-info.java | 2 +- .../web/util/HierarchicalUriComponents.java | 18 +-- .../web/util/OpaqueUriComponents.java | 2 +- .../web/util/UriComponentsBuilder.java | 4 +- .../springframework/web/util/UriTemplate.java | 12 +- .../springframework/web/util/UriUtils.java | 2 +- .../org/springframework/http/mime.types | 2 +- .../http/HttpHeadersTests.java | 4 +- .../http/RequestEntityTests.java | 16 +-- ...BufferedSimpleHttpRequestFactoryTests.java | 4 +- ...mponentsClientHttpRequestFactoryTests.java | 2 +- ...rceptingClientHttpRequestFactoryTests.java | 14 +- .../BasicAuthorizationInterceptorTests.java | 2 +- .../RssChannelHttpMessageConverterTests.java | 6 +- ...2RootElementHttpMessageConverterTests.java | 2 +- ...gJackson2XmlHttpMessageConverterTests.java | 2 +- .../xml/SourceHttpMessageConverterTests.java | 2 +- .../server/ServletServerHttpRequestTests.java | 8 +- .../reactive/ServerHttpRequestTests.java | 10 +- .../web/client/RestTemplateTests.java | 134 +++++++++--------- .../ServletWebRequestHttpMethodsTests.java | 2 +- .../web/cors/CorsConfigurationTests.java | 44 +++--- .../web/cors/CorsUtilsTests.java | 6 +- .../web/cors/DefaultCorsProcessorTests.java | 70 ++++----- .../web/cors/reactive/CorsUtilsTests.java | 8 +- .../web/cors/reactive/CorsWebFilterTests.java | 22 +-- .../reactive/DefaultCorsProcessorTests.java | 32 ++--- .../web/filter/CorsFilterTests.java | 14 +- .../filter/ForwardedHeaderFilterTests.java | 2 +- .../filter/ShallowEtagHeaderFilterTests.java | 4 +- ...uestPartServletServerHttpRequestTests.java | 2 +- .../DefaultServerWebExchangeTests.java | 2 +- .../ForwardedHeaderTransformerTests.java | 8 +- .../util/DefaultUriBuilderFactoryTests.java | 22 +-- .../util/DefaultUriTemplateHandlerTests.java | 26 ++-- .../web/util/UriComponentsBuilderTests.java | 60 ++++---- .../web/util/UriComponentsTests.java | 40 +++--- .../web/util/UriUtilsTests.java | 2 +- .../web/util/UrlPathHelperTests.java | 2 +- .../web/util/WebUtilsTests.java | 30 ++-- .../web/util/pattern/PathPatternTests.java | 2 +- .../web/reactive/config/CorsRegistration.java | 4 +- .../function/client/ExchangeFunction.java | 2 +- .../reactive/function/client/WebClient.java | 12 +- .../resource/WebJarsResourceResolver.java | 2 +- .../result/view/freemarker/package-info.java | 2 +- .../view/script/ScriptTemplateConfigurer.java | 4 +- .../reactive/config/CorsRegistryTests.java | 4 +- .../reactive/function/BodyInsertersTests.java | 8 +- .../DefaultClientRequestBuilderTests.java | 20 +-- .../client/DefaultWebClientTests.java | 2 +- .../client/ExchangeFilterFunctionsTests.java | 2 +- .../DefaultEntityResponseBuilderTests.java | 4 +- .../server/DefaultRenderingResponseTests.java | 4 +- .../DefaultServerRequestBuilderTests.java | 2 +- .../server/DefaultServerRequestTests.java | 38 ++--- .../DefaultServerResponseBuilderTests.java | 16 +-- .../RequestPredicateAttributesTests.java | 2 +- .../support/RouterFunctionMappingTests.java | 2 +- .../handler/CorsUrlHandlerMappingTests.java | 20 +-- .../AppCacheManifestTransformerTests.java | 2 +- .../CssLinkResourceTransformerTests.java | 4 +- .../resource/ResourceUrlProviderTests.java | 2 +- .../condition/RequestMappingInfoTests.java | 2 +- .../RequestMethodsRequestConditionTests.java | 2 +- ...CrossOriginAnnotationIntegrationTests.java | 22 +-- ...erverWebExchangeArgumentResolverTests.java | 4 +- .../result/view/RedirectViewTests.java | 22 +-- .../web/reactive/resource/test/external.css | 2 +- .../web/reactive/resource/test/foo.html | 2 +- .../web/reactive/resource/test/test.appcache | 2 +- .../org/springframework/web/servlet/View.java | 2 +- .../config/annotation/CorsRegistration.java | 4 +- .../ResourceHandlerRegistration.java | 2 +- .../annotation/MvcUriComponentsBuilder.java | 2 +- .../mvc/method/annotation/SseEmitter.java | 2 +- .../web/servlet/package-info.java | 2 +- .../resource/ResourceHttpRequestHandler.java | 2 +- .../resource/WebJarsResourceResolver.java | 2 +- .../support/ServletUriComponentsBuilder.java | 4 +- .../servlet/support/WebContentGenerator.java | 2 +- .../web/servlet/tags/package-info.java | 4 +- .../view/document/AbstractPdfStamperView.java | 2 +- .../view/document/AbstractPdfView.java | 2 +- .../view/document/AbstractXlsView.java | 2 +- .../document/AbstractXlsxStreamingView.java | 2 +- .../view/document/AbstractXlsxView.java | 2 +- .../view/feed/AbstractAtomFeedView.java | 2 +- .../servlet/view/freemarker/package-info.java | 2 +- .../view/json/MappingJackson2JsonView.java | 2 +- .../view/script/ScriptTemplateConfigurer.java | 4 +- .../servlet/view/tiles3/TilesConfigurer.java | 2 +- .../web/servlet/view/tiles3/package-info.java | 2 +- .../view/xml/MappingJackson2XmlView.java | 2 +- .../main/resources/META-INF/spring-form.tld | 2 +- .../src/main/resources/META-INF/spring.tld | 2 +- .../web/servlet/config/spring-mvc.xsd | 8 +- .../web/context/ContextLoaderTests.java | 2 +- .../config/annotation/CorsRegistryTests.java | 4 +- .../CorsAbstractHandlerMappingTests.java | 16 +-- .../mvc/UrlFilenameViewControllerTests.java | 2 +- .../mvc/WebContentInterceptorTests.java | 4 +- .../RequestMethodsRequestConditionTests.java | 2 +- .../mvc/method/RequestMappingInfoTests.java | 2 +- .../method/annotation/CrossOriginTests.java | 24 ++-- .../MvcUriComponentsBuilderTests.java | 44 +++--- .../AppCacheManifestTransformerTests.java | 2 +- .../CssLinkResourceTransformerTests.java | 4 +- .../ResourceUrlEncodingFilterTests.java | 8 +- .../resource/ResourceUrlProviderTests.java | 4 +- .../web/servlet/tags/UrlTagTests.java | 4 +- .../web/servlet/tags/form/InputTagTests.java | 2 +- .../web/servlet/tags/form/SelectTagTests.java | 2 +- .../web/servlet/view/RedirectViewTests.java | 48 +++---- .../view/RedirectViewUriTemplateTests.java | 6 +- .../servlet/view/feed/RssFeedViewTests.java | 4 +- .../config/annotation/WEB-INF/index.jsp | 2 +- .../web/servlet/resource/test/external.css | 2 +- .../web/servlet/resource/test/foo.html | 2 +- .../web/servlet/resource/test/test.appcache | 2 +- .../web/socket/SubProtocolCapable.java | 2 +- .../web/socket/WebSocketExtension.java | 2 +- .../support/OriginHandshakeInterceptor.java | 2 +- .../web/socket/sockjs/SockJsService.java | 2 +- .../socket/sockjs/client/SockJsClient.java | 2 +- .../frame/AbstractSockJsMessageCodec.java | 2 +- .../sockjs/support/AbstractSockJsService.java | 2 +- .../handler/EventSourceTransportHandler.java | 2 +- .../handler/HtmlFileTransportHandler.java | 4 +- .../web/socket/config/spring-websocket.xsd | 4 +- .../StandardWebSocketHandlerAdapterTests.java | 2 +- ...ompWebSocketEndpointRegistrationTests.java | 6 +- .../WebSocketHandlerRegistrationTests.java | 6 +- .../OriginHandshakeInterceptorTests.java | 20 +-- .../client/ClientSockJsSessionTests.java | 2 +- .../client/DefaultTransportRequestTests.java | 2 +- .../client/RestTemplateXhrTransportTests.java | 2 +- .../sockjs/client/SockJsClientTests.java | 2 +- .../sockjs/client/SockJsUrlInfoTests.java | 4 +- .../sockjs/client/XhrTransportTests.java | 10 +- .../sockjs/support/SockJsServiceTests.java | 22 +-- .../handler/DefaultSockJsServiceTests.java | 16 +-- src/docs/api/overview.html | 2 +- src/docs/asciidoc/core/core-aop.adoc | 22 +-- src/docs/asciidoc/core/core-appendix.adoc | 20 +-- src/docs/asciidoc/core/core-beans.adoc | 64 ++++----- src/docs/asciidoc/core/core-resources.adoc | 6 +- src/docs/asciidoc/core/core-validation.adoc | 8 +- src/docs/asciidoc/data-access-appendix.adoc | 10 +- src/docs/asciidoc/data-access.adoc | 86 +++++------ src/docs/asciidoc/images/overview-ejb.graffle | 2 +- .../asciidoc/images/overview-full.graffle | 2 +- .../asciidoc/images/overview-remoting.graffle | 2 +- .../images/overview-thirdparty-web.graffle | 2 +- .../asciidoc/images/oxm-exceptions.graffle | 2 +- .../asciidoc/images/spring-overview.graffle | 2 +- src/docs/asciidoc/integration-appendix.adoc | 12 +- src/docs/asciidoc/integration.adoc | 58 ++++---- .../asciidoc/languages/dynamic-languages.adoc | 14 +- src/docs/asciidoc/languages/kotlin.adoc | 12 +- src/docs/asciidoc/overview.adoc | 4 +- src/docs/asciidoc/testing-webtestclient.adoc | 2 +- src/docs/asciidoc/testing.adoc | 32 ++--- src/docs/asciidoc/tocbot-3.0.2/tocbot.js | 2 +- src/docs/asciidoc/web-reactive.adoc | 2 +- src/docs/asciidoc/web/integration.adoc | 10 +- src/docs/asciidoc/web/web-uris.adoc | 16 +-- src/docs/asciidoc/web/webflux-cors.adoc | 12 +- src/docs/asciidoc/web/webflux-functional.adoc | 2 +- src/docs/asciidoc/web/webflux-view.adoc | 32 ++--- src/docs/asciidoc/web/webflux-webclient.adoc | 4 +- src/docs/asciidoc/web/webflux.adoc | 22 +-- src/docs/asciidoc/web/webmvc-cors.adoc | 16 +-- src/docs/asciidoc/web/webmvc-view.adoc | 36 ++--- src/docs/asciidoc/web/webmvc.adoc | 40 +++--- src/docs/asciidoc/web/websocket-intro.adoc | 2 +- src/docs/asciidoc/web/websocket.adoc | 76 +++++----- src/docs/dist/license.txt | 6 +- src/docs/dist/readme.txt | 2 +- 356 files changed, 1385 insertions(+), 1385 deletions(-) diff --git a/CODE_OF_CONDUCT.adoc b/CODE_OF_CONDUCT.adoc index f013d6f36ba..17783c7c066 100644 --- a/CODE_OF_CONDUCT.adoc +++ b/CODE_OF_CONDUCT.adoc @@ -40,5 +40,5 @@ appropriate to the circumstances. Maintainers are obligated to maintain confiden with regard to the reporter of an incident. This Code of Conduct is adapted from the -http://contributor-covenant.org[Contributor Covenant], version 1.3.0, available at -http://contributor-covenant.org/version/1/3/0/[contributor-covenant.org/version/1/3/0/] +https://contributor-covenant.org[Contributor Covenant], version 1.3.0, available at +https://contributor-covenant.org/version/1/3/0/[contributor-covenant.org/version/1/3/0/] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 18efecc931c..6085777ef9d 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 the issue fixed, e.g. `Fixes #22276`. 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 GitHub 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 ba186221021..004747a85eb 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ For access to artifacts or a distribution zip, see the [Spring Framework Artifac ## Documentation -The Spring Framework maintains reference documentation ([published](http://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/). There are also [guides and tutorials](https://spring.io/guides) across Spring projects. +The Spring Framework maintains reference documentation ([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](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 @@ -23,7 +23,7 @@ See the [Build from Source](https://github.com/spring-projects/spring-framework/ ## Stay in Touch -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). +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](https://spring.io/blog/), and releases are announced via our [news feed](https://spring.io/blog/category/news). ## License diff --git a/gradle/jdiff/README.txt b/gradle/jdiff/README.txt index 9f7529e2864..ed49a1b9231 100644 --- a/gradle/jdiff/README.txt +++ b/gradle/jdiff/README.txt @@ -11,7 +11,7 @@ difference between two public Java APIs. The file jdiff.html contains the reference page for JDiff. The latest version of JDiff can be downloaded at: -http://sourceforge.net/projects/javadiff +https://sourceforge.net/projects/javadiff To use the Ant task on your own project, see example.xml. More examples of using JDiff to compare the public APIs of J2SE1.3 and J2SE1.4 can @@ -40,7 +40,7 @@ Acknowledgements JDiff uses Stuart D. Gathman's Java translation of Gene Myers' O(ND) difference algorithm. -JDiff uses Xerces 1.4.2 from http://www.apache.org. +JDiff uses Xerces 1.4.2 from https://www.apache.org. JDiff also includes a script to use the classdoc application from http://classdoc.sourceforge.net or http://www.jensgulden.de, by Jens @@ -56,4 +56,4 @@ much of this work. Footnote: If you are looking for a generalized diff tool for XML, try diffmk from -http://wwws.sun.com/software/xml/developers/diffmk/ +https://wwws.sun.com/software/xml/developers/diffmk/ diff --git a/gradle/jdiff/jdiff.html b/gradle/jdiff/jdiff.html index 5c46f967b9e..d242fb8a495 100644 --- a/gradle/jdiff/jdiff.html +++ b/gradle/jdiff/jdiff.html @@ -7,10 +7,10 @@ - - +
+ JDiff Logo SourceForge Logo SourceForge Logo
@@ -21,7 +21,7 @@ width="88" height="31" border="0" alt="JDiff Logo">
JDiff is a Javadoc doclet which generates an +href="https://java.sun.com/j2se/javadoc">doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared. This is very useful @@ -312,7 +312,7 @@ the HTML output to the given directory. -javadocnew <javadoc files location for the new API>
The location of existing Javadoc files - for the new API, e.g. "http://java.sun.com/j2se/1.5.0/docs/api/" for the + for the new API, e.g. "https://java.sun.com/j2se/1.5.0/docs/api/" for the public documentation for J2SE1.5.0. The default value is "../", which implies that the documentation directory generated by Javadoc is at the same level as the "changes.html" file generated by JDiff. Slashes are always @@ -325,7 +325,7 @@ the HTML output to the given directory.
-javadocold <javadoc files location for the old API>
The location of existing - Javadoc files for the old API, e.g. "http://java.sun.com/j2se/1.5.0/docs/API/" + Javadoc files for the old API, e.g. "https://java.sun.com/j2se/1.5.0/docs/API/" for the public documentation for J2SE1.5.0. The default value is null, which results in no links to Javadoc-generated documentation for the previous release. Slashes are always forward in the argument, since this is an HTML @@ -426,7 +426,7 @@ the HTML output to the given directory. -showallchanges
If this argument is used, JDiff will show changes in - native and synchronized modifiers. See here for why these are not shown by default. + native and synchronized modifiers. See here for why these are not shown by default.
@@ -547,7 +547,7 @@ moved to the end of the file and placed inside XML comments.
The text which is added can be HTML text if necessary, but if the HTML is incorrect, JDiff may fail to read the comments file and exit. Note that - the required HTML is in fact XHTML. Since this HTML is stored in an XML document, single tags without their closing ("slash") element are not permitted. + the required HTML is in fact XHTML. Since this HTML is stored in an XML document, single tags without their closing ("slash") element are not permitted. For example, most browsers permit HTML which looks like "<p>Here is some text.", with no closing tag. XML requires that either a closing tag exists ("</p>"), or that the single tag is closed, e.g. "<p/>Here is some text.". @@ -988,7 +988,7 @@ it can tell you how the content has changed. Nor does it compare what the methods in an API do; if JDiff could tell you what had changed about the way two versions of an API execute, the Halting +href="https://en.wikipedia.org/wiki/Halting_Problem">Halting Problem would be solved, and our lives would be very different.
  • On a P3 450MHz machine, to scan all of the J2SE Java and javax packages and generate XML takes about 2 minutes @@ -1002,14 +1002,14 @@ per version. To generate a report from the XML files takes about 30s
  • diff --git a/import-into-eclipse.md b/import-into-eclipse.md index 1423db80e02..9c831d5a6fe 100644 --- a/import-into-eclipse.md +++ b/import-into-eclipse.md @@ -7,7 +7,7 @@ recent version of Eclipse or STS. As a bare minimum you will need Eclipse with f The following instructions have been tested against [Spring Tool Suite](https://spring.io/tools) (_STS_) 3.9.4 and 4.0.0.M11 with -[Eclipse Buildship](http://projects.eclipse.org/projects/tools.buildship) (Eclipse +[Eclipse Buildship](https://projects.eclipse.org/projects/tools.buildship) (Eclipse Plug-ins for Gradle). The instructions should work with the latest Eclipse distribution as long as you install [Buildship](https://marketplace.eclipse.org/content/buildship-gradle-integration). Note diff --git a/import-into-idea.md b/import-into-idea.md index 942b71f5d32..1d555305c02 100644 --- a/import-into-idea.md +++ b/import-into-idea.md @@ -14,7 +14,7 @@ _Within your locally cloned spring-framework working directory:_ 1. `spring-core` and `spring-oxm` should be pre-compiled due to repackaged dependencies. See `*RepackJar` tasks in the build and https://youtrack.jetbrains.com/issue/IDEA-160605). 2. `spring-aspects` does not compile due to references to aspect types unknown to -IntelliJ IDEA. See http://youtrack.jetbrains.com/issue/IDEA-64446 for details. In the meantime, the +IntelliJ IDEA. See https://youtrack.jetbrains.com/issue/IDEA-64446 for details. In the meantime, the 'spring-aspects' can be excluded from the project to avoid compilation errors. 3. While JUnit tests pass from the command line with Gradle, some may fail when run from IntelliJ IDEA. Resolving this is a work in progress. If attempting to run all JUnit tests from within @@ -31,6 +31,6 @@ You'll notice these files are already intentionally in .gitignore. The same poli ## FAQ -Q. What about IntelliJ IDEA's own [Gradle support](http://confluence.jetbrains.net/display/IDEADEV/Gradle+integration)? +Q. What about IntelliJ IDEA's own [Gradle support](https://confluence.jetbrains.net/display/IDEADEV/Gradle+integration)? -A. Keep an eye on http://youtrack.jetbrains.com/issue/IDEA-53476 +A. Keep an eye on https://youtrack.jetbrains.com/issue/IDEA-53476 diff --git a/spring-aop/src/main/resources/org/springframework/aop/config/spring-aop.xsd b/spring-aop/src/main/resources/org/springframework/aop/config/spring-aop.xsd index 49cda9de8cd..0b669c9018e 100644 --- a/spring-aop/src/main/resources/org/springframework/aop/config/spring-aop.xsd +++ b/spring-aop/src/main/resources/org/springframework/aop/config/spring-aop.xsd @@ -7,8 +7,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + Kotlin docs + * @see Kotlin docs */ @SuppressWarnings("unchecked") @Nullable @@ -704,8 +704,8 @@ public abstract class BeanUtils { /** * Retrieve the Java constructor corresponding to the Kotlin primary constructor, if any. * @param clazz the {@link Class} of the Kotlin class - * @see - * http://kotlinlang.org/docs/reference/classes.html#constructors + * @see + * https://kotlinlang.org/docs/reference/classes.html#constructors */ @Nullable public static Constructor findPrimaryConstructor(Class clazz) { diff --git a/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java b/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java index fe137cc2840..3ca7fc95c7e 100644 --- a/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java +++ b/spring-beans/src/main/java/org/springframework/beans/ExtendedBeanInfo.java @@ -67,7 +67,7 @@ import org.springframework.util.ObjectUtils; * used within Spring {@code } XML. {@link #getPropertyDescriptors()} returns all * existing property descriptors from the wrapped {@code BeanInfo} as well any added for * non-void returning setters. Both standard ("non-indexed") and - * + * * indexed properties are fully supported. * * @author Chris Beams @@ -138,7 +138,7 @@ class ExtendedBeanInfo implements BeanInfo { } // Sort non-void returning write methods to guard against the ill effects of // non-deterministic sorting of methods returned from Class#getDeclaredMethods - // under JDK 7. See http://bugs.sun.com/view_bug.do?bug_id=7023180 + // under JDK 7. See https://bugs.java.com/view_bug.do?bug_id=7023180 matches.sort((m1, m2) -> m2.toString().compareTo(m1.toString())); return matches; } diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlProcessor.java index 03ce7c71cb1..340dee2dcac 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 @@ -67,11 +67,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 @@ -82,7 +82,7 @@ public abstract class YamlProcessor { * would end up as *
     	 * environment=prod
    -	 * url=http://foo.bar.com
    +	 * url=https://foo.bar.com
     	 * name=My Cool App
     	 * 
    */ diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBean.java b/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBean.java index 2466db0dc3a..200f78c4c9f 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBean.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/config/YamlPropertiesFactoryBean.java @@ -42,19 +42,19 @@ import org.springframework.lang.Nullable; *
      * environments:
      *   dev:
    - *     url: http://dev.bar.com
    + *     url: https://dev.bar.com
      *     name: Developer Setup
      *   prod:
    - *     url: http://foo.bar.com
    + *     url: https://foo.bar.com
      *     name: My Cool App
      * 
    * * is transformed into these properties: * *
    - * environments.dev.url=http://dev.bar.com
    + * environments.dev.url=https://dev.bar.com
      * environments.dev.name=Developer Setup
    - * environments.prod.url=http://foo.bar.com
    + * environments.prod.url=https://foo.bar.com
      * environments.prod.name=My Cool App
      * 
    * diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/package-info.java b/spring-beans/src/main/java/org/springframework/beans/factory/package-info.java index 4497650b455..a29b453f3ee 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/package-info.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/package-info.java @@ -6,7 +6,7 @@ * Builds on the org.springframework.beans package. * *

    This package and related packages are discussed in Chapter 11 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). */ @NonNullApi diff --git a/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java b/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java index 5b0ee945f5b..eeec512b317 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 fd8a3234d5d..16496d31b9b 100644 --- a/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeansDtdResolver.java +++ b/spring-beans/src/main/java/org/springframework/beans/factory/xml/BeansDtdResolver.java @@ -35,7 +35,7 @@ import org.springframework.lang.Nullable; *

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

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

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

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

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

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

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

    See the javadocs for WebSphere's - * {@code AdminServiceFactory} - * and {@code MBeanFactory}. + * {@code AdminServiceFactory} + * and {@code MBeanFactory}. * * @author Juergen Hoeller * @author Rob Harrop diff --git a/spring-context/src/main/java/org/springframework/jndi/JndiPropertySource.java b/spring-context/src/main/java/org/springframework/jndi/JndiPropertySource.java index e43d7d192ea..88a4aa4c06f 100644 --- a/spring-context/src/main/java/org/springframework/jndi/JndiPropertySource.java +++ b/spring-context/src/main/java/org/springframework/jndi/JndiPropertySource.java @@ -29,7 +29,7 @@ import org.springframework.lang.Nullable; * {@link JndiLocatorDelegate#setResourceRef(boolean) "resourceRef"} property set to * {@code true}, meaning that names looked up will automatically be prefixed with * "java:comp/env/" in alignment with published - * JNDI + * JNDI * naming conventions. To override this setting or to change the prefix, manually * configure a {@code JndiLocatorDelegate} and provide it to one of the constructors here * that accepts it. The same applies when providing custom JNDI properties. These should diff --git a/spring-context/src/main/java/org/springframework/jndi/package-info.java b/spring-context/src/main/java/org/springframework/jndi/package-info.java index a7904375e5e..1ef8b64ac15 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 8581902145f..c5ed129843b 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 1e72c5c7a5e..18bd5e95e9b 100644 --- a/spring-context/src/main/java/org/springframework/scripting/bsh/package-info.java +++ b/spring-context/src/main/java/org/springframework/scripting/bsh/package-info.java @@ -1,7 +1,7 @@ /** * Package providing integration of * BeanShell - * (and BeanShell2) + * (and BeanShell2) * into Spring's scripting infrastructure. */ @NonNullApi diff --git a/spring-context/src/main/resources/org/springframework/cache/config/spring-cache.xsd b/spring-context/src/main/resources/org/springframework/cache/config/spring-cache.xsd index 16cbd776950..e72012c6bfa 100644 --- a/spring-context/src/main/resources/org/springframework/cache/config/spring-cache.xsd +++ b/spring-context/src/main/resources/org/springframework/cache/config/spring-cache.xsd @@ -8,8 +8,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + - - + + - - + + - - + + diff --git a/spring-context/src/main/resources/org/springframework/scripting/config/spring-lang.xsd b/spring-context/src/main/resources/org/springframework/scripting/config/spring-lang.xsd index bbbf6598e2c..dbb83ddf18c 100644 --- a/spring-context/src/main/resources/org/springframework/scripting/config/spring-lang.xsd +++ b/spring-context/src/main/resources/org/springframework/scripting/config/spring-lang.xsd @@ -15,8 +15,8 @@ ]]> - - + + diff --git a/spring-context/src/test/java/org/springframework/context/annotation/Spr3775InitDestroyLifecycleTests.java b/spring-context/src/test/java/org/springframework/context/annotation/Spr3775InitDestroyLifecycleTests.java index 6c83f3cc37c..d67edec3627 100644 --- a/spring-context/src/test/java/org/springframework/context/annotation/Spr3775InitDestroyLifecycleTests.java +++ b/spring-context/src/test/java/org/springframework/context/annotation/Spr3775InitDestroyLifecycleTests.java @@ -38,7 +38,7 @@ import static org.junit.Assert.*; *

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

    *

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

    If you run into the "Unsupported protocol: jmxmp" error, you will need to - * download the JMX + * download the JMX * Remote API 1.0.1_04 Reference Implementation from Oracle and extract * {@code jmxremote_optional.jar} into your classpath, for example in the {@code lib/ext} * folder of your JVM. diff --git a/spring-context/src/test/java/org/springframework/jmx/export/assembler/MethodExclusionMBeanInfoAssemblerTests.java b/spring-context/src/test/java/org/springframework/jmx/export/assembler/MethodExclusionMBeanInfoAssemblerTests.java index 395b106701d..f8fbdd64e9c 100644 --- a/spring-context/src/test/java/org/springframework/jmx/export/assembler/MethodExclusionMBeanInfoAssemblerTests.java +++ b/spring-context/src/test/java/org/springframework/jmx/export/assembler/MethodExclusionMBeanInfoAssemblerTests.java @@ -74,7 +74,7 @@ public class MethodExclusionMBeanInfoAssemblerTests extends AbstractJmxAssembler } /* - * http://opensource.atlassian.com/projects/spring/browse/SPR-2754 + * https://opensource.atlassian.com/projects/spring/browse/SPR-2754 */ @Test public void testIsNotIgnoredDoesntIgnoreUnspecifiedBeanMethods() throws Exception { diff --git a/spring-core/src/main/java/org/springframework/core/BridgeMethodResolver.java b/spring-core/src/main/java/org/springframework/core/BridgeMethodResolver.java index 5c4f437ac73..182a5775c77 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 @@ -227,8 +227,8 @@ public final 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 28f980987dd..979cafaa986 100644 --- a/spring-core/src/main/java/org/springframework/core/ParameterizedTypeReference.java +++ b/spring-core/src/main/java/org/springframework/core/ParameterizedTypeReference.java @@ -39,7 +39,7 @@ import org.springframework.util.Assert; * @author Rossen Stoyanchev * @since 3.2 * @param the referenced type - * @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 a75ba5b99c4..40574a5a2dc 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 f3b002462c4..1f526d5ddc7 100644 --- a/spring-core/src/main/java/org/springframework/util/Assert.java +++ b/spring-core/src/main/java/org/springframework/util/Assert.java @@ -46,7 +46,7 @@ import org.springframework.lang.Nullable; * Assert.isTrue(i > 0, "The value must be greater than zero"); * *

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

      Mainly for internal use within the framework; consider - * Apache Commons Codec + * Apache Commons Codec * for a more comprehensive suite of digest utilities. * * @author Arjen Poutsma diff --git a/spring-core/src/main/java/org/springframework/util/MimeType.java b/spring-core/src/main/java/org/springframework/util/MimeType.java index 64c56c6a258..cad9b5f5b77 100644 --- a/spring-core/src/main/java/org/springframework/util/MimeType.java +++ b/spring-core/src/main/java/org/springframework/util/MimeType.java @@ -191,7 +191,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 6a81891df89..cb4a60325d0 100644 --- a/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java +++ b/spring-core/src/main/java/org/springframework/util/MimeTypeUtils.java @@ -339,7 +339,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 4616508a2d8..ccaffd37ea9 100644 --- a/spring-core/src/main/java/org/springframework/util/StringUtils.java +++ b/spring-core/src/main/java/org/springframework/util/StringUtils.java @@ -39,7 +39,7 @@ import org.springframework.lang.Nullable; * Miscellaneous {@link String} utility methods. * *

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

      This class delivers some simple functionality that should really be diff --git a/spring-core/src/main/java/org/springframework/util/xml/TransformerUtils.java b/spring-core/src/main/java/org/springframework/util/xml/TransformerUtils.java index 7f04c9cfc97..498e1c2bff3 100644 --- a/spring-core/src/main/java/org/springframework/util/xml/TransformerUtils.java +++ b/spring-core/src/main/java/org/springframework/util/xml/TransformerUtils.java @@ -67,7 +67,7 @@ public abstract class TransformerUtils { transformer.setOutputProperty(OutputKeys.INDENT, "yes"); try { // Xalan-specific, but this is the most common XSLT engine in any case - transformer.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", String.valueOf(indentAmount)); + transformer.setOutputProperty("{https://xml.apache.org/xslt}indent-amount", String.valueOf(indentAmount)); } catch (IllegalArgumentException ignored) { } diff --git a/spring-core/src/test/java/org/springframework/core/env/StandardEnvironmentTests.java b/spring-core/src/test/java/org/springframework/core/env/StandardEnvironmentTests.java index 4963e566677..d3135506760 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 @@ -405,12 +405,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)); @@ -472,11 +472,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 1ba8a803785..be1c77d7838 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 @@ -231,7 +231,7 @@ public class ResourceTests { @Ignore @Test // this test is quite slow. TODO: re-enable with JUnit categories public void testNonFileResourceExists() throws Exception { - Resource resource = new UrlResource("http://www.springframework.org"); + Resource resource = new UrlResource("https://www.springframework.org"); assertTrue(resource.exists()); } diff --git a/spring-core/src/test/java/org/springframework/util/AntPathMatcherTests.java b/spring-core/src/test/java/org/springframework/util/AntPathMatcherTests.java index 9d0c6e21c5d..9d5082a1fd7 100644 --- a/spring-core/src/test/java/org/springframework/util/AntPathMatcherTests.java +++ b/spring-core/src/test/java/org/springframework/util/AntPathMatcherTests.java @@ -53,7 +53,7 @@ public class AntPathMatcherTests { // test exact matching assertTrue(pathMatcher.match("test", "test")); assertTrue(pathMatcher.match("/test", "/test")); - assertTrue(pathMatcher.match("http://example.org", "http://example.org")); // SPR-14141 + assertTrue(pathMatcher.match("https://example.org", "https://example.org")); // SPR-14141 assertFalse(pathMatcher.match("/test.jpg", "test.jpg")); assertFalse(pathMatcher.match("test", "/test")); assertFalse(pathMatcher.match("/test", "test")); diff --git a/spring-core/src/test/java/org/springframework/util/MimeTypeTests.java b/spring-core/src/test/java/org/springframework/util/MimeTypeTests.java index 6f571f1bf97..07f179ba5d5 100644 --- a/spring-core/src/test/java/org/springframework/util/MimeTypeTests.java +++ b/spring-core/src/test/java/org/springframework/util/MimeTypeTests.java @@ -90,12 +90,12 @@ public class MimeTypeTests { @Test public void parseQuotedSeparator() { - String s = "application/xop+xml;charset=utf-8;type=\"application/soap+xml;action=\\\"http://x.y.z\\\"\""; + String s = "application/xop+xml;charset=utf-8;type=\"application/soap+xml;action=\\\"https://x.y.z\\\"\""; MimeType mimeType = MimeType.valueOf(s); assertEquals("Invalid type", "application", mimeType.getType()); assertEquals("Invalid subtype", "xop+xml", mimeType.getSubtype()); assertEquals("Invalid charset", StandardCharsets.UTF_8, mimeType.getCharset()); - assertEquals("\"application/soap+xml;action=\\\"http://x.y.z\\\"\"", mimeType.getParameter("type")); + assertEquals("\"application/soap+xml;action=\\\"https://x.y.z\\\"\"", mimeType.getParameter("type")); } @Test diff --git a/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxHandlerTestCase.java b/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxHandlerTestCase.java index 5b01d9a2353..b2500f34903 100644 --- a/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxHandlerTestCase.java +++ b/spring-core/src/test/java/org/springframework/util/xml/AbstractStaxHandlerTestCase.java @@ -46,7 +46,7 @@ public abstract class AbstractStaxHandlerTestCase { private static final String COMPLEX_XML = "" + - "" + + "" + "characters " + "" + ""; diff --git a/spring-core/src/test/java/org/springframework/util/xml/SimpleNamespaceContextTests.java b/spring-core/src/test/java/org/springframework/util/xml/SimpleNamespaceContextTests.java index 70bf75abb68..57e04bb62c8 100644 --- a/spring-core/src/test/java/org/springframework/util/xml/SimpleNamespaceContextTests.java +++ b/spring-core/src/test/java/org/springframework/util/xml/SimpleNamespaceContextTests.java @@ -50,7 +50,7 @@ public class SimpleNamespaceContextTests { @Test public void getNamespaceURI() { context.bindNamespaceUri(XMLConstants.XMLNS_ATTRIBUTE, additionalNamespaceUri); - assertThat("Always returns \"http://www.w3.org/2000/xmlns/\" for \"xmlns\"", + assertThat("Always returns \"https://www.w3.org/2000/xmlns/\" for \"xmlns\"", context.getNamespaceURI(XMLConstants.XMLNS_ATTRIBUTE), is(XMLConstants.XMLNS_ATTRIBUTE_NS_URI)); context.bindNamespaceUri(XMLConstants.XML_NS_PREFIX, additionalNamespaceUri); assertThat("Always returns \"http://www.w3.org/XML/1998/namespace\" for \"xml\"", @@ -76,7 +76,7 @@ public class SimpleNamespaceContextTests { @Test public void getPrefix() { - assertThat("Always returns \"xmlns\" for \"http://www.w3.org/2000/xmlns/\"", + assertThat("Always returns \"xmlns\" for \"https://www.w3.org/2000/xmlns/\"", context.getPrefix(XMLConstants.XMLNS_ATTRIBUTE_NS_URI), is(XMLConstants.XMLNS_ATTRIBUTE)); assertThat("Always returns \"xml\" for \"http://www.w3.org/XML/1998/namespace\"", context.getPrefix(XMLConstants.XML_NS_URI), is(XMLConstants.XML_NS_PREFIX)); @@ -103,7 +103,7 @@ public class SimpleNamespaceContextTests { @Test public void getPrefixes() { - assertThat("Returns only \"xmlns\" for \"http://www.w3.org/2000/xmlns/\"", + assertThat("Returns only \"xmlns\" for \"https://www.w3.org/2000/xmlns/\"", getItemSet(context.getPrefixes(XMLConstants.XMLNS_ATTRIBUTE_NS_URI)), is(makeSet(XMLConstants.XMLNS_ATTRIBUTE))); assertThat("Returns only \"xml\" for \"http://www.w3.org/XML/1998/namespace\"", diff --git a/spring-core/src/test/java/org/springframework/util/xml/TransformerUtilsTests.java b/spring-core/src/test/java/org/springframework/util/xml/TransformerUtilsTests.java index 119ac7b9607..4fe5e1f6e70 100644 --- a/spring-core/src/test/java/org/springframework/util/xml/TransformerUtilsTests.java +++ b/spring-core/src/test/java/org/springframework/util/xml/TransformerUtilsTests.java @@ -42,7 +42,7 @@ public class TransformerUtilsTests { String indent = transformer.getOutputProperty(OutputKeys.INDENT); assertNotNull(indent); assertEquals("yes", indent); - String indentAmount = transformer.getOutputProperty("{http://xml.apache.org/xslt}indent-amount"); + String indentAmount = transformer.getOutputProperty("{https://xml.apache.org/xslt}indent-amount"); assertNotNull(indentAmount); assertEquals(String.valueOf(TransformerUtils.DEFAULT_INDENT_AMOUNT), indentAmount); } @@ -55,7 +55,7 @@ public class TransformerUtilsTests { String indent = transformer.getOutputProperty(OutputKeys.INDENT); assertNotNull(indent); assertEquals("yes", indent); - String indentAmount = transformer.getOutputProperty("{http://xml.apache.org/xslt}indent-amount"); + String indentAmount = transformer.getOutputProperty("{https://xml.apache.org/xslt}indent-amount"); assertNotNull(indentAmount); assertEquals(indentAmountProperty, indentAmount); } diff --git a/spring-expression/readme.txt b/spring-expression/readme.txt index 56dafb12e5d..54402b9cefd 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 26f07e578fc..39dcd2da340 100644 --- a/spring-expression/src/main/java/org/springframework/expression/spel/ast/OpMultiply.java +++ b/spring-expression/src/main/java/org/springframework/expression/spel/ast/OpMultiply.java @@ -32,7 +32,7 @@ import org.springframework.util.NumberUtils; * Implements the {@code multiply} operator. * *

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

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

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

      This is a custom bridge along the lines of {@code jcl-over-slf4j}. diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DriverManagerDataSource.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/DriverManagerDataSource.java index df76d2caf61..4ae64d36faf 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 c3abb00f76c..490780b7bf0 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SimpleDriverDataSource.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/SimpleDriverDataSource.java @@ -41,8 +41,8 @@ import org.springframework.util.Assert; * for seamless switching to and from a local DataSource bean like this class. * *

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

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

      The default implementation uses reflection to apply the given settings. * Can be overridden in subclasses to customize the JDBCConnectionSpec object - * (JDBCConnectionSpec javadoc; - * IBM developerWorks article). + * (JDBCConnectionSpec javadoc; + * IBM developerWorks article). * @param isolationLevel the isolation level to apply (or {@code null} if none) * @param readOnlyFlag the read-only flag to apply (or {@code null} if none) * @param username the username to apply ({@code null} or empty indicates the default) diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseType.java b/spring-jdbc/src/main/java/org/springframework/jdbc/datasource/embedded/EmbeddedDatabaseType.java index 0f9e498522b..8ae88dbec27 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. */ HSQL, - /** The H2 Embedded Java SQL Database Engine. */ + /** The H2 Embedded Java SQL Database Engine. */ H2, - /** The Apache Derby Embedded SQL Database. */ + /** The Apache Derby Embedded SQL Database. */ DERBY } diff --git a/spring-jdbc/src/main/java/org/springframework/jdbc/object/package-info.java b/spring-jdbc/src/main/java/org/springframework/jdbc/object/package-info.java index 61bac017c4c..b13c09b802f 100644 --- a/spring-jdbc/src/main/java/org/springframework/jdbc/object/package-info.java +++ b/spring-jdbc/src/main/java/org/springframework/jdbc/object/package-info.java @@ -11,7 +11,7 @@ * RDBMS-specific error handling. * *

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

    * *

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

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

    Useful for testing web contexts and controllers. * *

    More convenient to use than dynamic mock objects - * (EasyMock) or + * (EasyMock) or * existing Servlet API mock objects * (MockObjects). */ diff --git a/spring-test/src/main/java/org/springframework/test/util/JsonExpectationsHelper.java b/spring-test/src/main/java/org/springframework/test/util/JsonExpectationsHelper.java index d147d7c089c..4de0dba6eee 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 30318f3a190..13b652b850a 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 @@ -188,7 +188,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() { @@ -205,7 +205,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 */ @@ -223,7 +223,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 fdccd3cc8cd..cc2e8ab96fc 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 @@ -837,7 +837,7 @@ public interface WebTestClient { * Parse the expected and actual response content as JSON and perform a * "lenient" comparison verifying the same attribute-value pairs. *

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

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

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

    The above {@code cdnMatcher} would match {@code "https://code.jquery.com/jquery.js"} * which has a default port of {@code 80} and {@code "http://code.jquery.com:80/jquery.js"}. * However, it would not match {@code "https://code.jquery.com/jquery.js"} * which has a default port of {@code 443}. diff --git a/spring-test/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java b/spring-test/src/main/java/org/springframework/test/web/servlet/result/ContentResultMatchers.java index 32c0c31bdfa..b0cec4d2677 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 @@ -175,7 +175,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 -> { @@ -205,7 +205,7 @@ public class ContentResultMatchers { *

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

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

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

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

    The classes in this package are discussed in Chapter 9 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). */ @NonNullApi diff --git a/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java b/spring-tx/src/main/java/org/springframework/jca/context/SpringContextResourceAdapter.java index f23b3a4f598..20e37cd9b45 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 26db0abd73c..e6ebbe1441a 100644 --- a/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java +++ b/spring-tx/src/main/java/org/springframework/transaction/interceptor/TransactionProxyFactoryBean.java @@ -40,7 +40,7 @@ import org.springframework.transaction.PlatformTransactionManager; * target object with a transactional proxy, proxying all the interfaces that the target * implements. However, in Spring versions 2.0 and beyond, the functionality provided here * is superseded by the more convenient {@code tx:} XML namespace. See the declarative transaction management section of the + * href="https://bit.ly/qUwvwz">declarative transaction management section of the * Spring reference documentation to understand the modern options for managing * transactions in Spring applications. For these reasons, users should favor of * the {@code tx:} XML namespace as well as diff --git a/spring-tx/src/main/resources/org/springframework/transaction/config/spring-tx.xsd b/spring-tx/src/main/resources/org/springframework/transaction/config/spring-tx.xsd index 844fbad1b88..461d13a43f8 100644 --- a/spring-tx/src/main/resources/org/springframework/transaction/config/spring-tx.xsd +++ b/spring-tx/src/main/resources/org/springframework/transaction/config/spring-tx.xsd @@ -8,8 +8,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + this forum post. + * See this forum post. */ @Test public void testConflictingRulesToDetermineExactContract() { diff --git a/spring-web/src/main/java/org/springframework/http/HttpEntity.java b/spring-web/src/main/java/org/springframework/http/HttpEntity.java index acafa789556..35b2b97cafe 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 eb898b84af1..ea7d72fbbbd 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpHeaders.java +++ b/spring-web/src/main/java/org/springframework/http/HttpHeaders.java @@ -77,302 +77,302 @@ public class HttpHeaders implements MultiValueMap, Serializable /** * The HTTP {@code Accept} header field name. - * @see Section 5.3.2 of RFC 7231 + * @see Section 5.3.2 of RFC 7231 */ public static final String ACCEPT = "Accept"; /** * The HTTP {@code Accept-Charset} header field name. - * @see Section 5.3.3 of RFC 7231 + * @see Section 5.3.3 of RFC 7231 */ public static final String ACCEPT_CHARSET = "Accept-Charset"; /** * The HTTP {@code Accept-Encoding} header field name. - * @see Section 5.3.4 of RFC 7231 + * @see Section 5.3.4 of RFC 7231 */ public static final String ACCEPT_ENCODING = "Accept-Encoding"; /** * The HTTP {@code Accept-Language} header field name. - * @see Section 5.3.5 of RFC 7231 + * @see Section 5.3.5 of RFC 7231 */ public static final String ACCEPT_LANGUAGE = "Accept-Language"; /** * The HTTP {@code Accept-Ranges} header field name. - * @see Section 5.3.5 of RFC 7233 + * @see Section 5.3.5 of RFC 7233 */ public static final String ACCEPT_RANGES = "Accept-Ranges"; /** * The CORS {@code Access-Control-Allow-Credentials} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_ALLOW_CREDENTIALS = "Access-Control-Allow-Credentials"; /** * The CORS {@code Access-Control-Allow-Headers} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_ALLOW_HEADERS = "Access-Control-Allow-Headers"; /** * The CORS {@code Access-Control-Allow-Methods} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_ALLOW_METHODS = "Access-Control-Allow-Methods"; /** * The CORS {@code Access-Control-Allow-Origin} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_ALLOW_ORIGIN = "Access-Control-Allow-Origin"; /** * The CORS {@code Access-Control-Expose-Headers} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_EXPOSE_HEADERS = "Access-Control-Expose-Headers"; /** * The CORS {@code Access-Control-Max-Age} response header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_MAX_AGE = "Access-Control-Max-Age"; /** * The CORS {@code Access-Control-Request-Headers} request header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_REQUEST_HEADERS = "Access-Control-Request-Headers"; /** * The CORS {@code Access-Control-Request-Method} request header field name. - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public static final String ACCESS_CONTROL_REQUEST_METHOD = "Access-Control-Request-Method"; /** * The HTTP {@code Age} header field name. - * @see Section 5.1 of RFC 7234 + * @see Section 5.1 of RFC 7234 */ public static final String AGE = "Age"; /** * The HTTP {@code Allow} header field name. - * @see Section 7.4.1 of RFC 7231 + * @see Section 7.4.1 of RFC 7231 */ public static final String ALLOW = "Allow"; /** * The HTTP {@code Authorization} header field name. - * @see Section 4.2 of RFC 7235 + * @see Section 4.2 of RFC 7235 */ public static final String AUTHORIZATION = "Authorization"; /** * The HTTP {@code Cache-Control} header field name. - * @see Section 5.2 of RFC 7234 + * @see Section 5.2 of RFC 7234 */ public static final String CACHE_CONTROL = "Cache-Control"; /** * The HTTP {@code Connection} header field name. - * @see Section 6.1 of RFC 7230 + * @see Section 6.1 of RFC 7230 */ public static final String CONNECTION = "Connection"; /** * The HTTP {@code Content-Encoding} header field name. - * @see Section 3.1.2.2 of RFC 7231 + * @see Section 3.1.2.2 of RFC 7231 */ public static final String CONTENT_ENCODING = "Content-Encoding"; /** * The HTTP {@code Content-Disposition} header field name. - * @see RFC 6266 + * @see RFC 6266 */ public static final String CONTENT_DISPOSITION = "Content-Disposition"; /** * The HTTP {@code Content-Language} header field name. - * @see Section 3.1.3.2 of RFC 7231 + * @see Section 3.1.3.2 of RFC 7231 */ public static final String CONTENT_LANGUAGE = "Content-Language"; /** * The HTTP {@code Content-Length} header field name. - * @see Section 3.3.2 of RFC 7230 + * @see Section 3.3.2 of RFC 7230 */ public static final String CONTENT_LENGTH = "Content-Length"; /** * The HTTP {@code Content-Location} header field name. - * @see Section 3.1.4.2 of RFC 7231 + * @see Section 3.1.4.2 of RFC 7231 */ public static final String CONTENT_LOCATION = "Content-Location"; /** * The HTTP {@code Content-Range} header field name. - * @see Section 4.2 of RFC 7233 + * @see Section 4.2 of RFC 7233 */ public static final String CONTENT_RANGE = "Content-Range"; /** * The HTTP {@code Content-Type} header field name. - * @see Section 3.1.1.5 of RFC 7231 + * @see Section 3.1.1.5 of RFC 7231 */ public static final String CONTENT_TYPE = "Content-Type"; /** * The HTTP {@code Cookie} header field name. - * @see Section 4.3.4 of RFC 2109 + * @see Section 4.3.4 of RFC 2109 */ public static final String COOKIE = "Cookie"; /** * The HTTP {@code Date} header field name. - * @see Section 7.1.1.2 of RFC 7231 + * @see Section 7.1.1.2 of RFC 7231 */ public static final String DATE = "Date"; /** * The HTTP {@code ETag} header field name. - * @see Section 2.3 of RFC 7232 + * @see Section 2.3 of RFC 7232 */ public static final String ETAG = "ETag"; /** * The HTTP {@code Expect} header field name. - * @see Section 5.1.1 of RFC 7231 + * @see Section 5.1.1 of RFC 7231 */ public static final String EXPECT = "Expect"; /** * The HTTP {@code Expires} header field name. - * @see Section 5.3 of RFC 7234 + * @see Section 5.3 of RFC 7234 */ public static final String EXPIRES = "Expires"; /** * The HTTP {@code From} header field name. - * @see Section 5.5.1 of RFC 7231 + * @see Section 5.5.1 of RFC 7231 */ public static final String FROM = "From"; /** * The HTTP {@code Host} header field name. - * @see Section 5.4 of RFC 7230 + * @see Section 5.4 of RFC 7230 */ public static final String HOST = "Host"; /** * The HTTP {@code If-Match} header field name. - * @see Section 3.1 of RFC 7232 + * @see Section 3.1 of RFC 7232 */ public static final String IF_MATCH = "If-Match"; /** * The HTTP {@code If-Modified-Since} header field name. - * @see Section 3.3 of RFC 7232 + * @see Section 3.3 of RFC 7232 */ public static final String IF_MODIFIED_SINCE = "If-Modified-Since"; /** * The HTTP {@code If-None-Match} header field name. - * @see Section 3.2 of RFC 7232 + * @see Section 3.2 of RFC 7232 */ public static final String IF_NONE_MATCH = "If-None-Match"; /** * The HTTP {@code If-Range} header field name. - * @see Section 3.2 of RFC 7233 + * @see Section 3.2 of RFC 7233 */ public static final String IF_RANGE = "If-Range"; /** * The HTTP {@code If-Unmodified-Since} header field name. - * @see Section 3.4 of RFC 7232 + * @see Section 3.4 of RFC 7232 */ public static final String IF_UNMODIFIED_SINCE = "If-Unmodified-Since"; /** * The HTTP {@code Last-Modified} header field name. - * @see Section 2.2 of RFC 7232 + * @see Section 2.2 of RFC 7232 */ public static final String LAST_MODIFIED = "Last-Modified"; /** * The HTTP {@code Link} header field name. - * @see RFC 5988 + * @see RFC 5988 */ public static final String LINK = "Link"; /** * The HTTP {@code Location} header field name. - * @see Section 7.1.2 of RFC 7231 + * @see Section 7.1.2 of RFC 7231 */ public static final String LOCATION = "Location"; /** * The HTTP {@code Max-Forwards} header field name. - * @see Section 5.1.2 of RFC 7231 + * @see Section 5.1.2 of RFC 7231 */ public static final String MAX_FORWARDS = "Max-Forwards"; /** * The HTTP {@code Origin} header field name. - * @see RFC 6454 + * @see RFC 6454 */ public static final String ORIGIN = "Origin"; /** * The HTTP {@code Pragma} header field name. - * @see Section 5.4 of RFC 7234 + * @see Section 5.4 of RFC 7234 */ public static final String PRAGMA = "Pragma"; /** * The HTTP {@code Proxy-Authenticate} header field name. - * @see Section 4.3 of RFC 7235 + * @see Section 4.3 of RFC 7235 */ public static final String PROXY_AUTHENTICATE = "Proxy-Authenticate"; /** * The HTTP {@code Proxy-Authorization} header field name. - * @see Section 4.4 of RFC 7235 + * @see Section 4.4 of RFC 7235 */ public static final String PROXY_AUTHORIZATION = "Proxy-Authorization"; /** * The HTTP {@code Range} header field name. - * @see Section 3.1 of RFC 7233 + * @see Section 3.1 of RFC 7233 */ public static final String RANGE = "Range"; /** * The HTTP {@code Referer} header field name. - * @see Section 5.5.2 of RFC 7231 + * @see Section 5.5.2 of RFC 7231 */ public static final String REFERER = "Referer"; /** * The HTTP {@code Retry-After} header field name. - * @see Section 7.1.3 of RFC 7231 + * @see Section 7.1.3 of RFC 7231 */ public static final String RETRY_AFTER = "Retry-After"; /** * The HTTP {@code Server} header field name. - * @see Section 7.4.2 of RFC 7231 + * @see Section 7.4.2 of RFC 7231 */ public static final String SERVER = "Server"; /** * The HTTP {@code Set-Cookie} header field name. - * @see Section 4.2.2 of RFC 2109 + * @see Section 4.2.2 of RFC 2109 */ public static final String SET_COOKIE = "Set-Cookie"; /** * The HTTP {@code Set-Cookie2} header field name. - * @see RFC 2965 + * @see RFC 2965 */ public static final String SET_COOKIE2 = "Set-Cookie2"; /** * The HTTP {@code TE} header field name. - * @see Section 4.3 of RFC 7230 + * @see Section 4.3 of RFC 7230 */ public static final String TE = "TE"; /** * The HTTP {@code Trailer} header field name. - * @see Section 4.4 of RFC 7230 + * @see Section 4.4 of RFC 7230 */ public static final String TRAILER = "Trailer"; /** * The HTTP {@code Transfer-Encoding} header field name. - * @see Section 3.3.1 of RFC 7230 + * @see Section 3.3.1 of RFC 7230 */ public static final String TRANSFER_ENCODING = "Transfer-Encoding"; /** * The HTTP {@code Upgrade} header field name. - * @see Section 6.7 of RFC 7230 + * @see Section 6.7 of RFC 7230 */ public static final String UPGRADE = "Upgrade"; /** * The HTTP {@code User-Agent} header field name. - * @see Section 5.5.3 of RFC 7231 + * @see Section 5.5.3 of RFC 7231 */ public static final String USER_AGENT = "User-Agent"; /** * The HTTP {@code Vary} header field name. - * @see Section 7.1.4 of RFC 7231 + * @see Section 7.1.4 of RFC 7231 */ public static final String VARY = "Vary"; /** * The HTTP {@code Via} header field name. - * @see Section 5.7.1 of RFC 7230 + * @see Section 5.7.1 of RFC 7230 */ public static final String VIA = "Via"; /** * The HTTP {@code Warning} header field name. - * @see Section 5.5 of RFC 7234 + * @see Section 5.5 of RFC 7234 */ public static final String WARNING = "Warning"; /** * The HTTP {@code WWW-Authenticate} header field name. - * @see Section 4.1 of RFC 7235 + * @see Section 4.1 of RFC 7235 */ public static final String WWW_AUTHENTICATE = "WWW-Authenticate"; diff --git a/spring-web/src/main/java/org/springframework/http/HttpRange.java b/spring-web/src/main/java/org/springframework/http/HttpRange.java index e4c0164c910..c1025ac1df6 100644 --- a/spring-web/src/main/java/org/springframework/http/HttpRange.java +++ b/spring-web/src/main/java/org/springframework/http/HttpRange.java @@ -38,7 +38,7 @@ import org.springframework.util.StringUtils; * @author Arjen Poutsma * @author Juergen Hoeller * @since 4.2 - * @see HTTP/1.1: Range Requests + * @see HTTP/1.1: Range Requests * @see HttpHeaders#setRange(List) * @see HttpHeaders#getRange() */ @@ -99,7 +99,7 @@ public abstract class HttpRange { * Create an {@code HttpRange} from the given position to the end. * @param firstBytePos the first byte position * @return a byte range that ranges from {@code firstPos} till the end - * @see Byte Ranges + * @see Byte Ranges */ public static HttpRange createByteRange(long firstBytePos) { return new ByteRange(firstBytePos, null); @@ -110,7 +110,7 @@ public abstract class HttpRange { * @param firstBytePos the first byte position * @param lastBytePos the last byte position * @return a byte range that ranges from {@code firstPos} till {@code lastPos} - * @see Byte Ranges + * @see Byte Ranges */ public static HttpRange createByteRange(long firstBytePos, long lastBytePos) { return new ByteRange(firstBytePos, lastBytePos); @@ -120,7 +120,7 @@ public abstract class HttpRange { * Create an {@code HttpRange} that ranges over the last given number of bytes. * @param suffixLength the number of bytes for the range * @return a byte range that ranges over the last {@code suffixLength} number of bytes - * @see Byte Ranges + * @see Byte Ranges */ public static HttpRange createSuffixRange(long suffixLength) { return new SuffixByteRange(suffixLength); @@ -224,7 +224,7 @@ public abstract class HttpRange { /** * Represents an HTTP/1.1 byte range, with a first and optional last position. - * @see Byte Ranges + * @see Byte Ranges * @see HttpRange#createByteRange(long) * @see HttpRange#createByteRange(long, long) */ @@ -300,7 +300,7 @@ public abstract class HttpRange { /** * Represents an HTTP/1.1 suffix byte range, with a number of suffix bytes. - * @see Byte Ranges + * @see Byte Ranges * @see HttpRange#createSuffixRange(long) */ private static class SuffixByteRange extends HttpRange { diff --git a/spring-web/src/main/java/org/springframework/http/HttpStatus.java b/spring-web/src/main/java/org/springframework/http/HttpStatus.java index 8dded4e2a4a..1c68e23b8ab 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 e853161862c..1342b98a5ab 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 { @@ -634,7 +634,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 a92857fd400..30dd315d37c 100644 --- a/spring-web/src/main/java/org/springframework/http/RequestEntity.java +++ b/spring-web/src/main/java/org/springframework/http/RequestEntity.java @@ -36,7 +36,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);
    @@ -45,7 +45,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 864c0ac236a..7507de653ca 100644 --- a/spring-web/src/main/java/org/springframework/http/ResponseCookie.java +++ b/spring-web/src/main/java/org/springframework/http/ResponseCookie.java @@ -104,7 +104,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; @@ -288,7 +288,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 7753e42138c..5ac6bfdba93 100644 --- a/spring-web/src/main/java/org/springframework/http/ResponseEntity.java +++ b/spring-web/src/main/java/org/springframework/http/ResponseEntity.java @@ -37,7 +37,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 ece917cda61..fbf603009ab 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 7b7efc99a76..5d6cbd9fb75 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 c1b9e56757f..70913aa68e0 100644 --- a/spring-web/src/main/java/org/springframework/http/client/Netty4ClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/Netty4ClientHttpRequestFactory.java @@ -44,7 +44,7 @@ import org.springframework.util.Assert; /** * {@link org.springframework.http.client.ClientHttpRequestFactory} implementation - * that uses Netty 4 to create requests. + * that uses Netty 4 to create requests. * *

    Allows to use a pre-configured {@link EventLoopGroup} instance: useful for * sharing across multiple clients. diff --git a/spring-web/src/main/java/org/springframework/http/client/OkHttp3ClientHttpRequestFactory.java b/spring-web/src/main/java/org/springframework/http/client/OkHttp3ClientHttpRequestFactory.java index 9c431351ca4..a0ca57711e1 100644 --- a/spring-web/src/main/java/org/springframework/http/client/OkHttp3ClientHttpRequestFactory.java +++ b/spring-web/src/main/java/org/springframework/http/client/OkHttp3ClientHttpRequestFactory.java @@ -35,7 +35,7 @@ import org.springframework.util.StringUtils; /** * {@link ClientHttpRequestFactory} implementation that uses - * OkHttp 3.x to create requests. + * OkHttp 3.x to create requests. * * @author Luciano Leggieri * @author Arjen Poutsma diff --git a/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java b/spring-web/src/main/java/org/springframework/http/codec/json/Jackson2CodecSupport.java index 2938939d264..4e0105ddf21 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 @@ -52,7 +52,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 84dd33b3214..9656be51b35 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 @@ -71,7 +71,7 @@ import org.springframework.util.StringUtils; * form.add("field 2", "value 2"); * form.add("field 2", "value 3"); * form.add("field 3", 4); // non-String form values supported as of 5.1.4 - * template.postForLocation("http://example.com/myForm", form); + * template.postForLocation("https://example.com/myForm", form); *

    * *

    The following snippet shows how to do a file upload: @@ -79,7 +79,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 @@ -200,7 +200,7 @@ public class FormHttpMessageConverter implements HttpMessageConverterEncoded-Word + * @see Encoded-Word */ public void setMultipartCharset(Charset charset) { this.multipartCharset = charset; diff --git a/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java index 811fa9f9394..0058abbe490 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/cbor/MappingJackson2CborHttpMessageConverter.java @@ -26,7 +26,7 @@ import org.springframework.util.Assert; /** * Implementation of {@link org.springframework.http.converter.HttpMessageConverter HttpMessageConverter} - * that can read and write CBOR data format using + * that can read and write CBOR data format using * * the dedicated Jackson 2.x extension. * diff --git a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java index 6dcd31cf1dc..bfb25ef93c4 100644 --- a/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java +++ b/spring-web/src/main/java/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.java @@ -26,7 +26,7 @@ import org.springframework.lang.Nullable; /** * Implementation of {@link org.springframework.http.converter.HttpMessageConverter} that can read and - * write JSON using Jackson 2.x's {@link ObjectMapper}. + * write JSON using Jackson 2.x's {@link ObjectMapper}. * *

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

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

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

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

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

    The service URL must be an HTTP URL exposing a Hessian service. diff --git a/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java b/spring-web/src/main/java/org/springframework/remoting/caucho/HessianServiceExporter.java index 4b522b02206..10afbd47a10 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 @@ -31,7 +31,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 4f386c29d0b..cc96b28bfa0 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 @@ -32,7 +32,7 @@ import org.springframework.util.FileCopyUtils; * *

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

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

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

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

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

    By default all origins are allowed. *

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

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

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

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

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

    By default this is not set. *

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

    Note that when input {@link CorsConfiguration} is {@code null}, this * implementation does not reject simple or actual requests outright but simply diff --git a/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsProcessor.java b/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsProcessor.java index 9e2ef96b904..c27a06575c9 100644 --- a/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsProcessor.java @@ -28,7 +28,7 @@ import org.springframework.web.server.ServerWebExchange; * @author Sebastien Deleuze * @author Rossen Stoyanchev * @since 5.0 - * @see CORS W3C recommendation + * @see CORS W3C recommendation */ public interface CorsProcessor { diff --git a/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsUtils.java b/spring-web/src/main/java/org/springframework/web/cors/reactive/CorsUtils.java index 8fcee84589c..73107bb1dc7 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 @@ -28,7 +28,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 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 dac35b6ba1d..4938d7842e2 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 @@ -39,7 +39,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 5945d3eb0cb..f52d9be190e 100644 --- a/spring-web/src/main/java/org/springframework/web/cors/reactive/DefaultCorsProcessor.java +++ b/spring-web/src/main/java/org/springframework/web/cors/reactive/DefaultCorsProcessor.java @@ -35,7 +35,7 @@ import org.springframework.web.server.ServerWebExchange; /** * The default implementation of {@link CorsProcessor}, - * as defined by the CORS W3C recommendation. + * as defined by the CORS W3C recommendation. * *

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

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

    Contains methods to indicate whether a given character is valid in a specific URI component. - * @see RFC 3986 + * @see RFC 3986 */ enum Type { @@ -666,7 +666,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code ALPHA} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isAlpha(int c) { return (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z'); @@ -674,7 +674,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code DIGIT} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isDigit(int c) { return (c >= '0' && c <= '9'); @@ -682,7 +682,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code gen-delims} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isGenericDelimiter(int c) { return (':' == c || '/' == c || '?' == c || '#' == c || '[' == c || ']' == c || '@' == c); @@ -690,7 +690,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code sub-delims} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isSubDelimiter(int c) { return ('!' == c || '$' == c || '&' == c || '\'' == c || '(' == c || ')' == c || '*' == c || '+' == c || @@ -699,7 +699,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code reserved} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isReserved(int c) { return (isGenericDelimiter(c) || isSubDelimiter(c)); @@ -707,7 +707,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code unreserved} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isUnreserved(int c) { return (isAlpha(c) || isDigit(c) || '-' == c || '.' == c || '_' == c || '~' == c); @@ -715,7 +715,7 @@ final class HierarchicalUriComponents extends UriComponents { /** * Indicates whether the given character is in the {@code pchar} set. - * @see RFC 3986, appendix A + * @see RFC 3986, appendix A */ protected boolean isPchar(int c) { return (isUnreserved(c) || isSubDelimiter(c) || ':' == c || '@' == c); diff --git a/spring-web/src/main/java/org/springframework/web/util/OpaqueUriComponents.java b/spring-web/src/main/java/org/springframework/web/util/OpaqueUriComponents.java index 148a0987f0e..fd076077b27 100644 --- a/spring-web/src/main/java/org/springframework/web/util/OpaqueUriComponents.java +++ b/spring-web/src/main/java/org/springframework/web/util/OpaqueUriComponents.java @@ -33,7 +33,7 @@ import org.springframework.util.ObjectUtils; * @author Arjen Poutsma * @author Phillip Webb * @since 3.2 - * @see Hierarchical vs Opaque URIs + * @see Hierarchical vs Opaque URIs */ @SuppressWarnings("serial") final class OpaqueUriComponents extends UriComponents { diff --git a/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java b/spring-web/src/main/java/org/springframework/web/util/UriComponentsBuilder.java index 570cff348a8..5e3db7e8ef0 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 0a13fd79916..d9ccf3b995a 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 cb7df5c671b..c2d5d29ba84 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/resources/org/springframework/http/mime.types b/spring-web/src/main/resources/org/springframework/http/mime.types index 6a831323c82..597425c1184 100644 --- a/spring-web/src/main/resources/org/springframework/http/mime.types +++ b/spring-web/src/main/resources/org/springframework/http/mime.types @@ -9,7 +9,7 @@ # content languages and encodings, so choose them carefully. # # Internet media types should be registered as described in RFC 4288. -# The registry is at . +# The registry is at . # # This file was retrieved from https://svn.apache.org/viewvc/httpd/httpd/trunk/docs/conf/mime.types?revision=1752884&view=co # diff --git a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java index 8e0e108dd49..1a97828e708 100644 --- a/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java +++ b/spring-web/src/test/java/org/springframework/http/HttpHeadersTests.java @@ -134,10 +134,10 @@ public class HttpHeadersTests { @Test public void location() throws URISyntaxException { - URI location = new URI("http://www.example.com/hotels"); + URI location = new URI("https://www.example.com/hotels"); headers.setLocation(location); assertEquals("Invalid Location header", location, headers.getLocation()); - assertEquals("Invalid Location header", "http://www.example.com/hotels", headers.getFirst("Location")); + assertEquals("Invalid Location header", "https://www.example.com/hotels", headers.getFirst("Location")); } @Test diff --git a/spring-web/src/test/java/org/springframework/http/RequestEntityTests.java b/spring-web/src/test/java/org/springframework/http/RequestEntityTests.java index 80371e42101..1d28a27fe6c 100644 --- a/spring-web/src/test/java/org/springframework/http/RequestEntityTests.java +++ b/spring-web/src/test/java/org/springframework/http/RequestEntityTests.java @@ -42,7 +42,7 @@ public class RequestEntityTests { public void normal() throws URISyntaxException { String headerName = "My-Custom-Header"; String headerValue = "HeaderValue"; - URI url = new URI("http://example.com"); + URI url = new URI("https://example.com"); Integer entity = 42; RequestEntity requestEntity = @@ -58,13 +58,13 @@ public class RequestEntityTests { @Test public void uriVariablesExpansion() throws URISyntaxException { - URI uri = new UriTemplate("http://example.com/{foo}").expand("bar"); + URI uri = new UriTemplate("https://example.com/{foo}").expand("bar"); RequestEntity.get(uri).accept(MediaType.TEXT_PLAIN).build(); String url = "http://www.{host}.com/{path}"; String host = "example"; String path = "foo/bar"; - URI expected = new URI("http://www.example.com/foo/bar"); + URI expected = new URI("https://www.example.com/foo/bar"); uri = new UriTemplate(url).expand(host, path); RequestEntity entity = RequestEntity.get(uri).build(); @@ -81,7 +81,7 @@ public class RequestEntityTests { @Test public void get() { - RequestEntity requestEntity = RequestEntity.get(URI.create("http://example.com")).accept( + RequestEntity requestEntity = RequestEntity.get(URI.create("https://example.com")).accept( MediaType.IMAGE_GIF, MediaType.IMAGE_JPEG, MediaType.IMAGE_PNG).build(); assertNotNull(requestEntity); @@ -99,7 +99,7 @@ public class RequestEntityTests { long contentLength = 67890; MediaType contentType = MediaType.TEXT_PLAIN; - RequestEntity responseEntity = RequestEntity.post(new URI("http://example.com")). + RequestEntity responseEntity = RequestEntity.post(new URI("https://example.com")). accept(accept). acceptCharset(StandardCharsets.UTF_8). ifModifiedSince(ifModifiedSince). @@ -110,7 +110,7 @@ public class RequestEntityTests { assertNotNull(responseEntity); assertEquals(HttpMethod.POST, responseEntity.getMethod()); - assertEquals(new URI("http://example.com"), responseEntity.getUrl()); + assertEquals(new URI("https://example.com"), responseEntity.getUrl()); HttpHeaders responseHeaders = responseEntity.getHeaders(); assertEquals("text/plain", responseHeaders.getFirst("Accept")); @@ -125,7 +125,7 @@ public class RequestEntityTests { @Test public void methods() throws URISyntaxException { - URI url = new URI("http://example.com"); + URI url = new URI("https://example.com"); RequestEntity entity = RequestEntity.get(url).build(); assertEquals(HttpMethod.GET, entity.getMethod()); @@ -152,7 +152,7 @@ public class RequestEntityTests { @Test // SPR-13154 public void types() throws URISyntaxException { - URI url = new URI("http://example.com"); + URI url = new URI("https://example.com"); List body = Arrays.asList("foo", "bar"); ParameterizedTypeReference typeReference = new ParameterizedTypeReference>() {}; diff --git a/spring-web/src/test/java/org/springframework/http/client/BufferedSimpleHttpRequestFactoryTests.java b/spring-web/src/test/java/org/springframework/http/client/BufferedSimpleHttpRequestFactoryTests.java index f7b164baba6..267fbf1f041 100644 --- a/spring-web/src/test/java/org/springframework/http/client/BufferedSimpleHttpRequestFactoryTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/BufferedSimpleHttpRequestFactoryTests.java @@ -49,7 +49,7 @@ public class BufferedSimpleHttpRequestFactoryTests extends AbstractHttpRequestFa @Test public void prepareConnectionWithRequestBody() throws Exception { - URL uri = new URL("http://example.com"); + URL uri = new URL("https://example.com"); testRequestBodyAllowed(uri, "GET", false); testRequestBodyAllowed(uri, "HEAD", false); testRequestBodyAllowed(uri, "OPTIONS", false); @@ -61,7 +61,7 @@ public class BufferedSimpleHttpRequestFactoryTests extends AbstractHttpRequestFa @Test public void deleteWithoutBodyDoesNotRaiseException() throws Exception { - HttpURLConnection connection = new TestHttpURLConnection(new URL("http://example.com")); + HttpURLConnection connection = new TestHttpURLConnection(new URL("https://example.com")); ((SimpleClientHttpRequestFactory) this.factory).prepareConnection(connection, "DELETE"); SimpleBufferingClientHttpRequest request = new SimpleBufferingClientHttpRequest(connection, false); request.execute(); diff --git a/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java b/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java index 1802b037071..749d1a0f6f5 100644 --- a/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/HttpComponentsClientHttpRequestFactoryTests.java @@ -150,7 +150,7 @@ public class HttpComponentsClientHttpRequestFactoryTests extends AbstractHttpReq @Test public void createHttpUriRequest() throws Exception { - URI uri = new URI("http://example.com"); + URI uri = new URI("https://example.com"); testRequestBodyAllowed(uri, HttpMethod.GET, false); testRequestBodyAllowed(uri, HttpMethod.HEAD, false); testRequestBodyAllowed(uri, HttpMethod.OPTIONS, false); diff --git a/spring-web/src/test/java/org/springframework/http/client/InterceptingClientHttpRequestFactoryTests.java b/spring-web/src/test/java/org/springframework/http/client/InterceptingClientHttpRequestFactoryTests.java index e7cdd48668f..1afa1bcc5b5 100644 --- a/spring-web/src/test/java/org/springframework/http/client/InterceptingClientHttpRequestFactoryTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/InterceptingClientHttpRequestFactoryTests.java @@ -59,7 +59,7 @@ public class InterceptingClientHttpRequestFactoryTests { interceptors.add(new NoOpInterceptor()); requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, interceptors); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); ClientHttpResponse response = request.execute(); assertTrue(((NoOpInterceptor) interceptors.get(0)).invoked); @@ -83,7 +83,7 @@ public class InterceptingClientHttpRequestFactoryTests { interceptors.add(new NoOpInterceptor()); requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, interceptors); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); ClientHttpResponse response = request.execute(); assertFalse(((NoOpInterceptor) interceptors.get(1)).invoked); @@ -122,13 +122,13 @@ public class InterceptingClientHttpRequestFactoryTests { requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, Collections.singletonList(interceptor)); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); request.execute(); } @Test public void changeURI() throws Exception { - final URI changedUri = new URI("http://example.com/2"); + final URI changedUri = new URI("https://example.com/2"); ClientHttpRequestInterceptor interceptor = new ClientHttpRequestInterceptor() { @Override @@ -155,7 +155,7 @@ public class InterceptingClientHttpRequestFactoryTests { requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, Collections.singletonList(interceptor)); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); request.execute(); } @@ -188,7 +188,7 @@ public class InterceptingClientHttpRequestFactoryTests { requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, Collections.singletonList(interceptor)); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); request.execute(); } @@ -207,7 +207,7 @@ public class InterceptingClientHttpRequestFactoryTests { requestFactory = new InterceptingClientHttpRequestFactory(requestFactoryMock, Collections.singletonList(interceptor)); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); request.execute(); assertTrue(Arrays.equals(changedBody, requestMock.body.toByteArray())); } diff --git a/spring-web/src/test/java/org/springframework/http/client/support/BasicAuthorizationInterceptorTests.java b/spring-web/src/test/java/org/springframework/http/client/support/BasicAuthorizationInterceptorTests.java index 245b17373df..bee37740d63 100644 --- a/spring-web/src/test/java/org/springframework/http/client/support/BasicAuthorizationInterceptorTests.java +++ b/spring-web/src/test/java/org/springframework/http/client/support/BasicAuthorizationInterceptorTests.java @@ -66,7 +66,7 @@ public class BasicAuthorizationInterceptorTests { @Test public void interceptShouldAddHeader() throws Exception { SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory(); - ClientHttpRequest request = requestFactory.createRequest(new URI("http://example.com"), HttpMethod.GET); + ClientHttpRequest request = requestFactory.createRequest(new URI("https://example.com"), HttpMethod.GET); ClientHttpRequestExecution execution = mock(ClientHttpRequestExecution.class); byte[] body = new byte[] {}; new BasicAuthorizationInterceptor("spring", "boot").intercept(request, body, diff --git a/spring-web/src/test/java/org/springframework/http/converter/feed/RssChannelHttpMessageConverterTests.java b/spring-web/src/test/java/org/springframework/http/converter/feed/RssChannelHttpMessageConverterTests.java index 09a37926522..aa674b4d80b 100644 --- a/spring-web/src/test/java/org/springframework/http/converter/feed/RssChannelHttpMessageConverterTests.java +++ b/spring-web/src/test/java/org/springframework/http/converter/feed/RssChannelHttpMessageConverterTests.java @@ -86,7 +86,7 @@ public class RssChannelHttpMessageConverterTests { public void write() throws IOException, SAXException { Channel channel = new Channel("rss_2.0"); channel.setTitle("title"); - channel.setLink("http://example.com"); + channel.setLink("https://example.com"); channel.setDescription("description"); Item item1 = new Item(); @@ -106,7 +106,7 @@ public class RssChannelHttpMessageConverterTests { assertEquals("Invalid content-type", new MediaType("application", "rss+xml", StandardCharsets.UTF_8), outputMessage.getHeaders().getContentType()); String expected = "" + - "titlehttp://example.comdescription" + + "titlehttps://example.comdescription" + "title1" + "title2" + ""; @@ -117,7 +117,7 @@ public class RssChannelHttpMessageConverterTests { public void writeOtherCharset() throws IOException, SAXException { Channel channel = new Channel("rss_2.0"); channel.setTitle("title"); - channel.setLink("http://example.com"); + channel.setLink("https://example.com"); channel.setDescription("description"); String encoding = "ISO-8859-1"; diff --git a/spring-web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTests.java b/spring-web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTests.java index f8281ba64f7..170c7880354 100644 --- a/spring-web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTests.java +++ b/spring-web/src/test/java/org/springframework/http/converter/xml/Jaxb2RootElementHttpMessageConverterTests.java @@ -125,7 +125,7 @@ public class Jaxb2RootElementHttpMessageConverterTests { @Test public void readXmlRootElementExternalEntityDisabled() throws Exception { Resource external = new ClassPathResource("external.txt", getClass()); - String content = "\n" + " ]>" + " &ext;"; diff --git a/spring-web/src/test/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverterTests.java b/spring-web/src/test/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverterTests.java index 612e91d4bc9..ab03d33fd90 100644 --- a/spring-web/src/test/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverterTests.java +++ b/spring-web/src/test/java/org/springframework/http/converter/xml/MappingJackson2XmlHttpMessageConverterTests.java @@ -150,7 +150,7 @@ public class MappingJackson2XmlHttpMessageConverterTests { @Test public void readWithExternalReference() throws IOException { - String body = "\n" + " (); Resource external = new ClassPathResource("external.txt", getClass()); - bodyExternal = "\n" + " ]>&ext;"; } diff --git a/spring-web/src/test/java/org/springframework/http/server/ServletServerHttpRequestTests.java b/spring-web/src/test/java/org/springframework/http/server/ServletServerHttpRequestTests.java index 451abe988c1..35e1897189c 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 d275c2c4beb..e23a2b34aa6 100644 --- a/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpRequestTests.java +++ b/spring-web/src/test/java/org/springframework/http/server/reactive/ServerHttpRequestTests.java @@ -96,16 +96,16 @@ public class ServerHttpRequestTests { request = createHttpRequest("/").mutate().method(HttpMethod.DELETE).build(); assertEquals(HttpMethod.DELETE, request.getMethod()); - String baseUri = "http://aaa.org:8080/a"; + String baseUri = "https://www.aaa.org/articles/"; - request = createHttpRequest(baseUri).mutate().uri(URI.create("http://bbb.org:9090/b")).build(); - assertEquals("http://bbb.org:9090/b", request.getURI().toString()); + request = createHttpRequest(baseUri).mutate().uri(URI.create("https://bbb.org:9090/b")).build(); + assertEquals("https://bbb.org:9090/b", request.getURI().toString()); request = createHttpRequest(baseUri).mutate().path("/b/c/d").build(); - assertEquals("http://aaa.org:8080/b/c/d", request.getURI().toString()); + assertEquals("https://www.aaa.org/b/c/d", request.getURI().toString()); request = createHttpRequest(baseUri).mutate().path("/app/b/c/d").contextPath("/app").build(); - assertEquals("http://aaa.org:8080/app/b/c/d", request.getURI().toString()); + assertEquals("https://www.aaa.org/app/b/c/d", request.getURI().toString()); assertEquals("/app", request.getPath().contextPath().value()); } diff --git a/spring-web/src/test/java/org/springframework/web/client/RestTemplateTests.java b/spring-web/src/test/java/org/springframework/web/client/RestTemplateTests.java index 164bc9207ba..5b6e6c38e67 100644 --- a/spring-web/src/test/java/org/springframework/web/client/RestTemplateTests.java +++ b/spring-web/src/test/java/org/springframework/web/client/RestTemplateTests.java @@ -106,10 +106,10 @@ public class RestTemplateTests { @Test public void varArgsTemplateVariables() throws Exception { - mockSentRequest(GET, "http://example.com/hotels/42/bookings/21"); + mockSentRequest(GET, "https://example.com/hotels/42/bookings/21"); mockResponseStatus(HttpStatus.OK); - template.execute("http://example.com/hotels/{hotel}/bookings/{booking}", GET, + template.execute("https://example.com/hotels/{hotel}/bookings/{booking}", GET, null, null, "42", "21"); verify(response).close(); @@ -117,41 +117,41 @@ public class RestTemplateTests { @Test public void varArgsNullTemplateVariable() throws Exception { - mockSentRequest(GET, "http://example.com/-foo"); + mockSentRequest(GET, "https://example.com/-foo"); mockResponseStatus(HttpStatus.OK); - template.execute("http://example.com/{first}-{last}", GET, null, null, null, "foo"); + template.execute("https://example.com/{first}-{last}", GET, null, null, null, "foo"); verify(response).close(); } @Test public void mapTemplateVariables() throws Exception { - mockSentRequest(GET, "http://example.com/hotels/42/bookings/42"); + mockSentRequest(GET, "https://example.com/hotels/42/bookings/42"); mockResponseStatus(HttpStatus.OK); Map vars = Collections.singletonMap("hotel", "42"); - template.execute("http://example.com/hotels/{hotel}/bookings/{hotel}", GET, null, null, vars); + template.execute("https://example.com/hotels/{hotel}/bookings/{hotel}", GET, null, null, vars); verify(response).close(); } @Test public void mapNullTemplateVariable() throws Exception { - mockSentRequest(GET, "http://example.com/-foo"); + mockSentRequest(GET, "https://example.com/-foo"); mockResponseStatus(HttpStatus.OK); Map vars = new HashMap<>(2); vars.put("first", null); vars.put("last", "foo"); - template.execute("http://example.com/{first}-{last}", GET, null, null, vars); + template.execute("https://example.com/{first}-{last}", GET, null, null, vars); verify(response).close(); } @Test // SPR-15201 public void uriTemplateWithTrailingSlash() throws Exception { - String url = "http://example.com/spring/"; + String url = "https://example.com/spring/"; mockSentRequest(GET, url); mockResponseStatus(HttpStatus.OK); @@ -162,7 +162,7 @@ public class RestTemplateTests { @Test public void errorHandling() throws Exception { - String url = "http://example.com"; + String url = "https://example.com"; mockSentRequest(GET, url); mockResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR); willThrow(new HttpServerErrorException(HttpStatus.INTERNAL_SERVER_ERROR)) @@ -184,11 +184,11 @@ public class RestTemplateTests { String expected = "Hello World"; mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(GET, "http://example.com", requestHeaders); + mockSentRequest(GET, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); mockTextResponseBody("Hello World"); - String result = template.getForObject("http://example.com", String.class); + String result = template.getForObject("https://example.com", String.class); assertEquals("Invalid GET result", expected, result); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -198,7 +198,7 @@ public class RestTemplateTests { @Test public void getUnsupportedMediaType() throws Exception { - mockSentRequest(GET, "http://example.com/resource"); + mockSentRequest(GET, "https://example.com/resource"); mockResponseStatus(HttpStatus.OK); given(converter.canRead(String.class, null)).willReturn(true); @@ -210,7 +210,7 @@ public class RestTemplateTests { given(converter.canRead(String.class, barBaz)).willReturn(false); try { - template.getForObject("http://example.com/{p}", String.class, "resource"); + template.getForObject("https://example.com/{p}", String.class, "resource"); fail("UnsupportedMediaTypeException expected"); } catch (RestClientException ex) { @@ -232,12 +232,12 @@ public class RestTemplateTests { .willReturn(Collections.singletonList(MediaType.TEXT_PLAIN)); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(GET, "http://example.com/", requestHeaders); + mockSentRequest(GET, "https://example.com/", requestHeaders); mockResponseStatus(HttpStatus.OK); mockTextResponseBody("Hello World"); template.setMessageConverters(Arrays.asList(firstConverter, secondConverter)); - template.getForObject("http://example.com/", String.class); + template.getForObject("https://example.com/", String.class); assertEquals("Sent duplicate Accept header values", 1, requestHeaders.getAccept().size()); @@ -246,13 +246,13 @@ public class RestTemplateTests { @Test public void getForEntity() throws Exception { HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(GET, "http://example.com", requestHeaders); + mockSentRequest(GET, "https://example.com", requestHeaders); mockTextPlainHttpMessageConverter(); mockResponseStatus(HttpStatus.OK); String expected = "Hello World"; mockTextResponseBody(expected); - ResponseEntity result = template.getForEntity("http://example.com", String.class); + ResponseEntity result = template.getForEntity("https://example.com", String.class); assertEquals("Invalid GET result", expected, result.getBody()); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); assertEquals("Invalid Content-Type header", MediaType.TEXT_PLAIN, result.getHeaders().getContentType()); @@ -265,7 +265,7 @@ public class RestTemplateTests { public void getForObjectWithCustomUriTemplateHandler() throws Exception { DefaultUriBuilderFactory uriTemplateHandler = new DefaultUriBuilderFactory(); template.setUriTemplateHandler(uriTemplateHandler); - mockSentRequest(GET, "http://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150"); + mockSentRequest(GET, "https://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150"); mockResponseStatus(HttpStatus.OK); given(response.getHeaders()).willReturn(new HttpHeaders()); given(response.getBody()).willReturn(StreamUtils.emptyInput()); @@ -275,7 +275,7 @@ public class RestTemplateTests { uriVariables.put("publicpath", "pics/logo.png"); uriVariables.put("scale", "150x150"); - String url = "http://example.com/hotels/{hotel}/pic/{publicpath}/size/{scale}"; + String url = "https://example.com/hotels/{hotel}/pic/{publicpath}/size/{scale}"; template.getForObject(url, String.class, uriVariables); verify(response).close(); @@ -283,12 +283,12 @@ public class RestTemplateTests { @Test public void headForHeaders() throws Exception { - mockSentRequest(HEAD, "http://example.com"); + mockSentRequest(HEAD, "https://example.com"); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); given(response.getHeaders()).willReturn(responseHeaders); - HttpHeaders result = template.headForHeaders("http://example.com"); + HttpHeaders result = template.headForHeaders("https://example.com"); assertSame("Invalid headers returned", responseHeaders, result); @@ -297,16 +297,16 @@ public class RestTemplateTests { @Test public void postForLocation() throws Exception { - mockSentRequest(POST, "http://example.com"); + mockSentRequest(POST, "https://example.com"); mockTextPlainHttpMessageConverter(); mockResponseStatus(HttpStatus.OK); String helloWorld = "Hello World"; HttpHeaders responseHeaders = new HttpHeaders(); - URI expected = new URI("http://example.com/hotels"); + URI expected = new URI("https://example.com/hotels"); responseHeaders.setLocation(expected); given(response.getHeaders()).willReturn(responseHeaders); - URI result = template.postForLocation("http://example.com", helloWorld); + URI result = template.postForLocation("https://example.com", helloWorld); assertEquals("Invalid POST result", expected, result); verify(response).close(); @@ -314,13 +314,13 @@ public class RestTemplateTests { @Test public void postForLocationEntityContentType() throws Exception { - mockSentRequest(POST, "http://example.com"); + mockSentRequest(POST, "https://example.com"); mockTextPlainHttpMessageConverter(); mockResponseStatus(HttpStatus.OK); String helloWorld = "Hello World"; HttpHeaders responseHeaders = new HttpHeaders(); - URI expected = new URI("http://example.com/hotels"); + URI expected = new URI("https://example.com/hotels"); responseHeaders.setLocation(expected); given(response.getHeaders()).willReturn(responseHeaders); @@ -328,7 +328,7 @@ public class RestTemplateTests { entityHeaders.setContentType(MediaType.TEXT_PLAIN); HttpEntity entity = new HttpEntity<>(helloWorld, entityHeaders); - URI result = template.postForLocation("http://example.com", entity); + URI result = template.postForLocation("https://example.com", entity); assertEquals("Invalid POST result", expected, result); verify(response).close(); @@ -337,11 +337,11 @@ public class RestTemplateTests { @Test public void postForLocationEntityCustomHeader() throws Exception { HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockTextPlainHttpMessageConverter(); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); - URI expected = new URI("http://example.com/hotels"); + URI expected = new URI("https://example.com/hotels"); responseHeaders.setLocation(expected); given(response.getHeaders()).willReturn(responseHeaders); @@ -349,7 +349,7 @@ public class RestTemplateTests { entityHeaders.set("MyHeader", "MyValue"); HttpEntity entity = new HttpEntity<>("Hello World", entityHeaders); - URI result = template.postForLocation("http://example.com", entity); + URI result = template.postForLocation("https://example.com", entity); assertEquals("Invalid POST result", expected, result); assertEquals("No custom header set", "MyValue", requestHeaders.getFirst("MyHeader")); @@ -358,11 +358,11 @@ public class RestTemplateTests { @Test public void postForLocationNoLocation() throws Exception { - mockSentRequest(POST, "http://example.com"); + mockSentRequest(POST, "https://example.com"); mockTextPlainHttpMessageConverter(); mockResponseStatus(HttpStatus.OK); - URI result = template.postForLocation("http://example.com", "Hello World"); + URI result = template.postForLocation("https://example.com", "Hello World"); assertNull("Invalid POST result", result); verify(response).close(); @@ -371,10 +371,10 @@ public class RestTemplateTests { @Test public void postForLocationNull() throws Exception { HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); - template.postForLocation("http://example.com", null); + template.postForLocation("https://example.com", null); assertEquals("Invalid content length", 0, requestHeaders.getContentLength()); verify(response).close(); @@ -384,12 +384,12 @@ public class RestTemplateTests { public void postForObject() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); String expected = "42"; mockResponseBody(expected, MediaType.TEXT_PLAIN); - String result = template.postForObject("http://example.com", "Hello World", String.class); + String result = template.postForObject("https://example.com", "Hello World", String.class); assertEquals("Invalid POST result", expected, result); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -400,12 +400,12 @@ public class RestTemplateTests { public void postForEntity() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); String expected = "42"; mockResponseBody(expected, MediaType.TEXT_PLAIN); - ResponseEntity result = template.postForEntity("http://example.com", "Hello World", String.class); + ResponseEntity result = template.postForEntity("https://example.com", "Hello World", String.class); assertEquals("Invalid POST result", expected, result.getBody()); assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType()); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -418,7 +418,7 @@ public class RestTemplateTests { public void postForObjectNull() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(MediaType.TEXT_PLAIN); @@ -427,7 +427,7 @@ public class RestTemplateTests { given(response.getBody()).willReturn(StreamUtils.emptyInput()); given(converter.read(String.class, response)).willReturn(null); - String result = template.postForObject("http://example.com", null, String.class); + String result = template.postForObject("https://example.com", null, String.class); assertNull("Invalid POST result", result); assertEquals("Invalid content length", 0, requestHeaders.getContentLength()); @@ -438,7 +438,7 @@ public class RestTemplateTests { public void postForEntityNull() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(MediaType.TEXT_PLAIN); @@ -447,7 +447,7 @@ public class RestTemplateTests { given(response.getBody()).willReturn(StreamUtils.emptyInput()); given(converter.read(String.class, response)).willReturn(null); - ResponseEntity result = template.postForEntity("http://example.com", null, String.class); + ResponseEntity result = template.postForEntity("https://example.com", null, String.class); assertFalse("Invalid POST result", result.hasBody()); assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType()); assertEquals("Invalid content length", 0, requestHeaders.getContentLength()); @@ -459,10 +459,10 @@ public class RestTemplateTests { @Test public void put() throws Exception { mockTextPlainHttpMessageConverter(); - mockSentRequest(PUT, "http://example.com"); + mockSentRequest(PUT, "https://example.com"); mockResponseStatus(HttpStatus.OK); - template.put("http://example.com", "Hello World"); + template.put("https://example.com", "Hello World"); verify(response).close(); } @@ -470,10 +470,10 @@ public class RestTemplateTests { @Test public void putNull() throws Exception { HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(PUT, "http://example.com", requestHeaders); + mockSentRequest(PUT, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); - template.put("http://example.com", null); + template.put("https://example.com", null); assertEquals("Invalid content length", 0, requestHeaders.getContentLength()); verify(response).close(); @@ -483,12 +483,12 @@ public class RestTemplateTests { public void patchForObject() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(PATCH, "http://example.com", requestHeaders); + mockSentRequest(PATCH, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); String expected = "42"; mockResponseBody("42", MediaType.TEXT_PLAIN); - String result = template.patchForObject("http://example.com", "Hello World", String.class); + String result = template.patchForObject("https://example.com", "Hello World", String.class); assertEquals("Invalid POST result", expected, result); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -499,7 +499,7 @@ public class RestTemplateTests { public void patchForObjectNull() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(PATCH, "http://example.com", requestHeaders); + mockSentRequest(PATCH, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(MediaType.TEXT_PLAIN); @@ -507,7 +507,7 @@ public class RestTemplateTests { given(response.getHeaders()).willReturn(responseHeaders); given(response.getBody()).willReturn(StreamUtils.emptyInput()); - String result = template.patchForObject("http://example.com", null, String.class); + String result = template.patchForObject("https://example.com", null, String.class); assertNull("Invalid POST result", result); assertEquals("Invalid content length", 0, requestHeaders.getContentLength()); @@ -517,24 +517,24 @@ public class RestTemplateTests { @Test public void delete() throws Exception { - mockSentRequest(DELETE, "http://example.com"); + mockSentRequest(DELETE, "https://example.com"); mockResponseStatus(HttpStatus.OK); - template.delete("http://example.com"); + template.delete("https://example.com"); verify(response).close(); } @Test public void optionsForAllow() throws Exception { - mockSentRequest(OPTIONS, "http://example.com"); + mockSentRequest(OPTIONS, "https://example.com"); mockResponseStatus(HttpStatus.OK); HttpHeaders responseHeaders = new HttpHeaders(); EnumSet expected = EnumSet.of(GET, POST); responseHeaders.setAllow(expected); given(response.getHeaders()).willReturn(responseHeaders); - Set result = template.optionsForAllow("http://example.com"); + Set result = template.optionsForAllow("https://example.com"); assertEquals("Invalid OPTIONS result", expected, result); verify(response).close(); @@ -542,7 +542,7 @@ public class RestTemplateTests { @Test // SPR-9325, SPR-13860 public void ioException() throws Exception { - String url = "http://example.com/resource?access_token=123"; + String url = "https://example.com/resource?access_token=123"; mockSentRequest(GET, url); mockHttpMessageConverter(new MediaType("foo", "bar"), String.class); given(request.execute()).willThrow(new IOException("Socket failure")); @@ -552,7 +552,7 @@ public class RestTemplateTests { fail("RestClientException expected"); } catch (ResourceAccessException ex) { - assertEquals("I/O error on GET request for \"http://example.com/resource\": " + + assertEquals("I/O error on GET request for \"https://example.com/resource\": " + "Socket failure; nested exception is java.io.IOException: Socket failure", ex.getMessage()); } @@ -561,7 +561,7 @@ public class RestTemplateTests { @Test // SPR-15900 public void ioExceptionWithEmptyQueryString() throws Exception { - // http://example.com/resource? + // https://example.com/resource? URI uri = new URI("http", "example.com", "/resource", "", null); given(converter.canRead(String.class, null)).willReturn(true); @@ -575,7 +575,7 @@ public class RestTemplateTests { fail("RestClientException expected"); } catch (ResourceAccessException ex) { - assertEquals("I/O error on GET request for \"http://example.com/resource\": " + + assertEquals("I/O error on GET request for \"https://example.com/resource\": " + "Socket failure; nested exception is java.io.IOException: Socket failure", ex.getMessage()); } @@ -585,7 +585,7 @@ public class RestTemplateTests { public void exchange() throws Exception { mockTextPlainHttpMessageConverter(); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); String expected = "42"; mockResponseBody(expected, MediaType.TEXT_PLAIN); @@ -593,7 +593,7 @@ public class RestTemplateTests { HttpHeaders entityHeaders = new HttpHeaders(); entityHeaders.set("MyHeader", "MyValue"); HttpEntity entity = new HttpEntity<>("Hello World", entityHeaders); - ResponseEntity result = template.exchange("http://example.com", POST, entity, String.class); + ResponseEntity result = template.exchange("https://example.com", POST, entity, String.class); assertEquals("Invalid POST result", expected, result.getBody()); assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType()); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -614,7 +614,7 @@ public class RestTemplateTests { given(converter.canWrite(String.class, String.class, null)).willReturn(true); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); List expected = Collections.singletonList(42); HttpHeaders responseHeaders = new HttpHeaders(); responseHeaders.setContentType(MediaType.TEXT_PLAIN); @@ -628,7 +628,7 @@ public class RestTemplateTests { HttpHeaders entityHeaders = new HttpHeaders(); entityHeaders.set("MyHeader", "MyValue"); HttpEntity requestEntity = new HttpEntity<>("Hello World", entityHeaders); - ResponseEntity> result = template.exchange("http://example.com", POST, requestEntity, intList); + ResponseEntity> result = template.exchange("https://example.com", POST, requestEntity, intList); assertEquals("Invalid POST result", expected, result.getBody()); assertEquals("Invalid Content-Type", MediaType.TEXT_PLAIN, result.getHeaders().getContentType()); assertEquals("Invalid Accept header", MediaType.TEXT_PLAIN_VALUE, requestHeaders.getFirst("Accept")); @@ -647,13 +647,13 @@ public class RestTemplateTests { template.setInterceptors(Collections.singletonList(interceptor)); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); HttpHeaders entityHeaders = new HttpHeaders(); entityHeaders.add("MyHeader", "MyEntityValue"); HttpEntity entity = new HttpEntity<>(null, entityHeaders); - template.exchange("http://example.com", POST, entity, Void.class); + template.exchange("https://example.com", POST, entity, Void.class); assertThat(requestHeaders.get("MyHeader"), contains("MyEntityValue", "MyInterceptorValue")); verify(response).close(); @@ -670,14 +670,14 @@ public class RestTemplateTests { MediaType contentType = MediaType.TEXT_PLAIN; given(converter.canWrite(String.class, contentType)).willReturn(true); HttpHeaders requestHeaders = new HttpHeaders(); - mockSentRequest(POST, "http://example.com", requestHeaders); + mockSentRequest(POST, "https://example.com", requestHeaders); mockResponseStatus(HttpStatus.OK); HttpHeaders entityHeaders = new HttpHeaders(); entityHeaders.setContentType(contentType); entityHeaders.add("MyHeader", "MyEntityValue"); HttpEntity entity = new HttpEntity<>("Hello World", entityHeaders); - template.exchange("http://example.com", POST, entity, Void.class); + template.exchange("https://example.com", POST, entity, Void.class); assertThat(requestHeaders.get("MyHeader"), contains("MyEntityValue", "MyInterceptorValue")); verify(response).close(); diff --git a/spring-web/src/test/java/org/springframework/web/context/request/ServletWebRequestHttpMethodsTests.java b/spring-web/src/test/java/org/springframework/web/context/request/ServletWebRequestHttpMethodsTests.java index 05c6a5f1b78..342d5de076e 100644 --- a/spring-web/src/test/java/org/springframework/web/context/request/ServletWebRequestHttpMethodsTests.java +++ b/spring-web/src/test/java/org/springframework/web/context/request/ServletWebRequestHttpMethodsTests.java @@ -67,7 +67,7 @@ public class ServletWebRequestHttpMethodsTests { @Before public void setup() { currentDate = new Date(); - servletRequest = new MockHttpServletRequest(method, "http://example.org"); + servletRequest = new MockHttpServletRequest(method, "https://example.org"); servletResponse = new MockHttpServletResponse(); request = new ServletWebRequest(servletRequest, servletResponse); } diff --git a/spring-web/src/test/java/org/springframework/web/cors/CorsConfigurationTests.java b/spring-web/src/test/java/org/springframework/web/cors/CorsConfigurationTests.java index 43d43cea2f5..e188f8d80b2 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/CorsConfigurationTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/CorsConfigurationTests.java @@ -112,17 +112,17 @@ public class CorsConfigurationTests { public void combineWithDefaultPermitValues() { CorsConfiguration config = new CorsConfiguration().applyPermitDefaultValues(); CorsConfiguration other = new CorsConfiguration(); - other.addAllowedOrigin("http://domain.com"); + other.addAllowedOrigin("https://domain.com"); other.addAllowedHeader("header1"); other.addAllowedMethod(HttpMethod.PUT.name()); CorsConfiguration combinedConfig = config.combine(other); - assertEquals(Arrays.asList("http://domain.com"), combinedConfig.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain.com"), combinedConfig.getAllowedOrigins()); assertEquals(Arrays.asList("header1"), combinedConfig.getAllowedHeaders()); assertEquals(Arrays.asList(HttpMethod.PUT.name()), combinedConfig.getAllowedMethods()); combinedConfig = other.combine(config); - assertEquals(Arrays.asList("http://domain.com"), combinedConfig.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain.com"), combinedConfig.getAllowedOrigins()); assertEquals(Arrays.asList("header1"), combinedConfig.getAllowedHeaders()); assertEquals(Arrays.asList(HttpMethod.PUT.name()), combinedConfig.getAllowedMethods()); @@ -146,7 +146,7 @@ public class CorsConfigurationTests { config.addAllowedHeader("*"); config.addAllowedMethod("*"); CorsConfiguration other = new CorsConfiguration(); - other.addAllowedOrigin("http://domain.com"); + other.addAllowedOrigin("https://domain.com"); other.addAllowedHeader("header1"); other.addExposedHeader("header2"); other.addAllowedMethod(HttpMethod.PUT.name()); @@ -163,8 +163,8 @@ public class CorsConfigurationTests { @Test // SPR-14792 public void combineWithDuplicatedElements() { CorsConfiguration config = new CorsConfiguration(); - config.addAllowedOrigin("http://domain1.com"); - config.addAllowedOrigin("http://domain2.com"); + config.addAllowedOrigin("https://domain1.com"); + config.addAllowedOrigin("https://domain2.com"); config.addAllowedHeader("header1"); config.addAllowedHeader("header2"); config.addExposedHeader("header3"); @@ -172,12 +172,12 @@ public class CorsConfigurationTests { config.addAllowedMethod(HttpMethod.GET.name()); config.addAllowedMethod(HttpMethod.PUT.name()); CorsConfiguration other = new CorsConfiguration(); - other.addAllowedOrigin("http://domain1.com"); + other.addAllowedOrigin("https://domain1.com"); other.addAllowedHeader("header1"); other.addExposedHeader("header3"); other.addAllowedMethod(HttpMethod.GET.name()); CorsConfiguration combinedConfig = config.combine(other); - assertEquals(Arrays.asList("http://domain1.com", "http://domain2.com"), combinedConfig.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain1.com", "https://domain2.com"), combinedConfig.getAllowedOrigins()); assertEquals(Arrays.asList("header1", "header2"), combinedConfig.getAllowedHeaders()); assertEquals(Arrays.asList("header3", "header4"), combinedConfig.getExposedHeaders()); assertEquals(Arrays.asList(HttpMethod.GET.name(), HttpMethod.PUT.name()), combinedConfig.getAllowedMethods()); @@ -186,21 +186,21 @@ public class CorsConfigurationTests { @Test public void combine() { CorsConfiguration config = new CorsConfiguration(); - config.addAllowedOrigin("http://domain1.com"); + config.addAllowedOrigin("https://domain1.com"); config.addAllowedHeader("header1"); config.addExposedHeader("header3"); config.addAllowedMethod(HttpMethod.GET.name()); config.setMaxAge(123L); config.setAllowCredentials(true); CorsConfiguration other = new CorsConfiguration(); - other.addAllowedOrigin("http://domain2.com"); + other.addAllowedOrigin("https://domain2.com"); other.addAllowedHeader("header2"); other.addExposedHeader("header4"); other.addAllowedMethod(HttpMethod.PUT.name()); other.setMaxAge(456L); other.setAllowCredentials(false); config = config.combine(other); - assertEquals(Arrays.asList("http://domain1.com", "http://domain2.com"), config.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain1.com", "https://domain2.com"), config.getAllowedOrigins()); assertEquals(Arrays.asList("header1", "header2"), config.getAllowedHeaders()); assertEquals(Arrays.asList("header3", "header4"), config.getExposedHeaders()); assertEquals(Arrays.asList(HttpMethod.GET.name(), HttpMethod.PUT.name()), config.getAllowedMethods()); @@ -212,26 +212,26 @@ public class CorsConfigurationTests { public void checkOriginAllowed() { CorsConfiguration config = new CorsConfiguration(); config.setAllowedOrigins(Arrays.asList("*")); - assertEquals("*", config.checkOrigin("http://domain.com")); + assertEquals("*", config.checkOrigin("https://domain.com")); config.setAllowCredentials(true); - assertEquals("http://domain.com", config.checkOrigin("http://domain.com")); - config.setAllowedOrigins(Arrays.asList("http://domain.com")); - assertEquals("http://domain.com", config.checkOrigin("http://domain.com")); + assertEquals("https://domain.com", config.checkOrigin("https://domain.com")); + config.setAllowedOrigins(Arrays.asList("https://domain.com")); + assertEquals("https://domain.com", config.checkOrigin("https://domain.com")); config.setAllowCredentials(false); - assertEquals("http://domain.com", config.checkOrigin("http://domain.com")); + assertEquals("https://domain.com", config.checkOrigin("https://domain.com")); } @Test public void checkOriginNotAllowed() { CorsConfiguration config = new CorsConfiguration(); assertNull(config.checkOrigin(null)); - assertNull(config.checkOrigin("http://domain.com")); + assertNull(config.checkOrigin("https://domain.com")); config.addAllowedOrigin("*"); assertNull(config.checkOrigin(null)); - config.setAllowedOrigins(Arrays.asList("http://domain1.com")); - assertNull(config.checkOrigin("http://domain2.com")); + config.setAllowedOrigins(Arrays.asList("https://domain1.com")); + assertNull(config.checkOrigin("https://domain2.com")); config.setAllowedOrigins(new ArrayList<>()); - assertNull(config.checkOrigin("http://domain.com")); + assertNull(config.checkOrigin("https://domain.com")); } @Test @@ -282,10 +282,10 @@ public class CorsConfigurationTests { @Test // SPR-15772 public void changePermitDefaultValues() { CorsConfiguration config = new CorsConfiguration().applyPermitDefaultValues(); - config.addAllowedOrigin("http://domain.com"); + config.addAllowedOrigin("https://domain.com"); config.addAllowedHeader("header1"); config.addAllowedMethod("PATCH"); - assertEquals(Arrays.asList("*", "http://domain.com"), config.getAllowedOrigins()); + assertEquals(Arrays.asList("*", "https://domain.com"), config.getAllowedOrigins()); assertEquals(Arrays.asList("*", "header1"), config.getAllowedHeaders()); assertEquals(Arrays.asList("GET", "HEAD", "POST", "PATCH"), config.getAllowedMethods()); } diff --git a/spring-web/src/test/java/org/springframework/web/cors/CorsUtilsTests.java b/spring-web/src/test/java/org/springframework/web/cors/CorsUtilsTests.java index 9ca1c2368c2..0a923d67ff5 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/CorsUtilsTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/CorsUtilsTests.java @@ -34,7 +34,7 @@ public class CorsUtilsTests { @Test public void isCorsRequest() { MockHttpServletRequest request = new MockHttpServletRequest(); - request.addHeader(HttpHeaders.ORIGIN, "http://domain.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain.com"); assertTrue(CorsUtils.isCorsRequest(request)); } @@ -48,7 +48,7 @@ public class CorsUtilsTests { public void isPreFlightRequest() { MockHttpServletRequest request = new MockHttpServletRequest(); request.setMethod(HttpMethod.OPTIONS.name()); - request.addHeader(HttpHeaders.ORIGIN, "http://domain.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain.com"); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); assertTrue(CorsUtils.isPreFlightRequest(request)); } @@ -60,7 +60,7 @@ public class CorsUtilsTests { request = new MockHttpServletRequest(); request.setMethod(HttpMethod.OPTIONS.name()); - request.addHeader(HttpHeaders.ORIGIN, "http://domain.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain.com"); assertFalse(CorsUtils.isPreFlightRequest(request)); request = new MockHttpServletRequest(); diff --git a/spring-web/src/test/java/org/springframework/web/cors/DefaultCorsProcessorTests.java b/spring-web/src/test/java/org/springframework/web/cors/DefaultCorsProcessorTests.java index daf974cdab3..0f49e8b5d06 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/DefaultCorsProcessorTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/DefaultCorsProcessorTests.java @@ -62,7 +62,7 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestWithOriginHeader() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertFalse(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -74,7 +74,7 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestWithOriginHeaderAndNullConfig() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.processor.processRequest(null, this.request, this.response); assertFalse(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -84,7 +84,7 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestWithOriginHeaderAndAllowedOrigin() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.conf.addAllowedOrigin("*"); this.processor.processRequest(this.conf, this.request, this.response); @@ -100,15 +100,15 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestCredentials() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); - this.conf.addAllowedOrigin("http://domain1.com"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); + this.conf.addAllowedOrigin("https://domain1.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.setAllowCredentials(true); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(this.response.getHeaders(HttpHeaders.VARY), contains(HttpHeaders.ORIGIN, @@ -119,13 +119,13 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestCredentialsWithOriginWildcard() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.conf.addAllowedOrigin("*"); this.conf.setAllowCredentials(true); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(this.response.getHeaders(HttpHeaders.VARY), contains(HttpHeaders.ORIGIN, @@ -136,8 +136,8 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestCaseInsensitiveOriginMatch() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); - this.conf.addAllowedOrigin("http://DOMAIN2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); + this.conf.addAllowedOrigin("https://DOMAIN2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -149,14 +149,14 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestExposedHeaders() throws Exception { this.request.setMethod(HttpMethod.GET.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.conf.addExposedHeader("header1"); this.conf.addExposedHeader("header2"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS)); assertTrue(this.response.getHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS).contains("header1")); assertTrue(this.response.getHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS).contains("header2")); @@ -168,7 +168,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestAllOriginsAllowed() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.conf.addAllowedOrigin("*"); @@ -181,7 +181,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestWrongAllowedMethod() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "DELETE"); this.conf.addAllowedOrigin("*"); @@ -194,7 +194,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestMatchedAllowedMethod() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.conf.addAllowedOrigin("*"); @@ -208,7 +208,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestTestWithOriginButWithoutOtherHeaders() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertFalse(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -220,7 +220,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestWithoutRequestMethod() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1"); this.processor.processRequest(this.conf, this.request, this.response); @@ -233,7 +233,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestWithRequestAndMethodHeaderButNoConfig() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1"); @@ -247,7 +247,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestValidRequestAndConfig() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1"); this.conf.addAllowedOrigin("*"); @@ -270,18 +270,18 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestCredentials() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1"); - this.conf.addAllowedOrigin("http://domain1.com"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain1.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.addAllowedHeader("Header1"); this.conf.setAllowCredentials(true); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(this.response.getHeaders(HttpHeaders.VARY), contains(HttpHeaders.ORIGIN, @@ -292,10 +292,10 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestCredentialsWithOriginWildcard() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1"); - this.conf.addAllowedOrigin("http://domain1.com"); + this.conf.addAllowedOrigin("https://domain1.com"); this.conf.addAllowedOrigin("*"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.addAllowedHeader("Header1"); @@ -303,7 +303,7 @@ public class DefaultCorsProcessorTests { this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", this.response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertThat(this.response.getHeaders(HttpHeaders.VARY), contains(HttpHeaders.ORIGIN, HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS)); assertEquals(HttpServletResponse.SC_OK, this.response.getStatus()); @@ -312,13 +312,13 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestAllowedHeaders() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1, Header2"); this.conf.addAllowedHeader("Header1"); this.conf.addAllowedHeader("Header2"); this.conf.addAllowedHeader("Header3"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -334,11 +334,11 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestAllowsAllHeaders() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "Header1, Header2"); this.conf.addAllowedHeader("*"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -354,11 +354,11 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestWithEmptyHeaders() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, ""); this.conf.addAllowedHeader("*"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.processRequest(this.conf, this.request, this.response); assertTrue(this.response.containsHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); @@ -371,7 +371,7 @@ public class DefaultCorsProcessorTests { @Test public void preflightRequestWithNullConfig() throws Exception { this.request.setMethod(HttpMethod.OPTIONS.name()); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); this.conf.addAllowedOrigin("*"); diff --git a/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsUtilsTests.java b/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsUtilsTests.java index 78ba0291c49..6f711fee2f4 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 @@ -39,7 +39,7 @@ public class CorsUtilsTests { @Test public void isCorsRequest() { - ServerHttpRequest request = get("/").header(HttpHeaders.ORIGIN, "http://domain.com").build(); + ServerHttpRequest request = get("/").header(HttpHeaders.ORIGIN, "https://domain.com").build(); assertTrue(CorsUtils.isCorsRequest(request)); } @@ -52,7 +52,7 @@ public class CorsUtilsTests { @Test public void isPreFlightRequest() { ServerHttpRequest 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)); @@ -63,7 +63,7 @@ public class CorsUtilsTests { ServerHttpRequest 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(); @@ -95,7 +95,7 @@ public class CorsUtilsTests { @Test // SPR-16362 public void isSameOriginWithDifferentSchemes() { MockServerHttpRequest request = MockServerHttpRequest - .get("http://mydomain1.com") + .get("https://mydomain1.com") .header(HttpHeaders.ORIGIN, "https://mydomain1.com") .build(); assertFalse(CorsUtils.isSameOrigin(request)); diff --git a/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsWebFilterTests.java b/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsWebFilterTests.java index 2538912a0fe..a351fc3ea0b 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsWebFilterTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/reactive/CorsWebFilterTests.java @@ -54,7 +54,7 @@ public class CorsWebFilterTests { @Before public void setup() throws Exception { - config.setAllowedOrigins(Arrays.asList("http://domain1.com", "http://domain2.com")); + config.setAllowedOrigins(Arrays.asList("https://domain1.com", "https://domain2.com")); config.setAllowedMethods(Arrays.asList("GET", "POST")); config.setAllowedHeaders(Arrays.asList("header1", "header2")); config.setExposedHeaders(Arrays.asList("header3", "header4")); @@ -68,7 +68,7 @@ public class CorsWebFilterTests { WebFilterChain filterChain = (filterExchange) -> { try { HttpHeaders headers = filterExchange.getResponse().getHeaders(); - assertEquals("http://domain2.com", headers.getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", headers.getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertEquals("header3, header4", headers.getFirst(ACCESS_CONTROL_EXPOSE_HEADERS)); } catch (AssertionError ex) { return Mono.error(ex); @@ -78,9 +78,9 @@ public class CorsWebFilterTests { }; MockServerWebExchange exchange = MockServerWebExchange.from( MockServerHttpRequest - .get("http://domain1.com/test.html") + .get("https://domain1.com/test.html") .header(HOST, "domain1.com") - .header(ORIGIN, "http://domain2.com") + .header(ORIGIN, "https://domain2.com") .header("header2", "foo")); this.filter.filter(exchange, filterChain); } @@ -89,9 +89,9 @@ public class CorsWebFilterTests { public void invalidActualRequest() throws ServletException, IOException { MockServerWebExchange exchange = MockServerWebExchange.from( MockServerHttpRequest - .delete("http://domain1.com/test.html") + .delete("https://domain1.com/test.html") .header(HOST, "domain1.com") - .header(ORIGIN, "http://domain2.com") + .header(ORIGIN, "https://domain2.com") .header("header2", "foo")); WebFilterChain filterChain = (filterExchange) -> Mono.error( @@ -106,9 +106,9 @@ public class CorsWebFilterTests { MockServerWebExchange exchange = MockServerWebExchange.from( MockServerHttpRequest - .options("http://domain1.com/test.html") + .options("https://domain1.com/test.html") .header(HOST, "domain1.com") - .header(ORIGIN, "http://domain2.com") + .header(ORIGIN, "https://domain2.com") .header(ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.GET.name()) .header(ACCESS_CONTROL_REQUEST_HEADERS, "header1, header2") ); @@ -118,7 +118,7 @@ public class CorsWebFilterTests { filter.filter(exchange, filterChain); HttpHeaders headers = exchange.getResponse().getHeaders(); - assertEquals("http://domain2.com", headers.getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", headers.getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertEquals("header1, header2", headers.getFirst(ACCESS_CONTROL_ALLOW_HEADERS)); assertEquals("header3, header4", headers.getFirst(ACCESS_CONTROL_EXPOSE_HEADERS)); assertEquals(123L, Long.parseLong(headers.getFirst(ACCESS_CONTROL_MAX_AGE))); @@ -129,9 +129,9 @@ public class CorsWebFilterTests { MockServerWebExchange exchange = MockServerWebExchange.from( MockServerHttpRequest - .options("http://domain1.com/test.html") + .options("https://domain1.com/test.html") .header(HOST, "domain1.com") - .header(ORIGIN, "http://domain2.com") + .header(ORIGIN, "https://domain2.com") .header(ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.DELETE.name()) .header(ACCESS_CONTROL_REQUEST_HEADERS, "header1, header2")); diff --git a/spring-web/src/test/java/org/springframework/web/cors/reactive/DefaultCorsProcessorTests.java b/spring-web/src/test/java/org/springframework/web/cors/reactive/DefaultCorsProcessorTests.java index adf5127aa6e..675f23e12c3 100644 --- a/spring-web/src/test/java/org/springframework/web/cors/reactive/DefaultCorsProcessorTests.java +++ b/spring-web/src/test/java/org/springframework/web/cors/reactive/DefaultCorsProcessorTests.java @@ -101,15 +101,15 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestCredentials() throws Exception { ServerWebExchange exchange = actualRequest(); - this.conf.addAllowedOrigin("http://domain1.com"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain1.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.setAllowCredentials(true); this.processor.process(this.conf, exchange); ServerHttpResponse response = exchange.getResponse(); assertTrue(response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(response.getHeaders().containsKey(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", response.getHeaders().getFirst(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(response.getHeaders().get(VARY), contains(ORIGIN, @@ -126,7 +126,7 @@ public class DefaultCorsProcessorTests { ServerHttpResponse response = exchange.getResponse(); assertTrue(response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(response.getHeaders().containsKey(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", response.getHeaders().getFirst(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(response.getHeaders().get(VARY), contains(ORIGIN, @@ -137,7 +137,7 @@ public class DefaultCorsProcessorTests { @Test public void actualRequestCaseInsensitiveOriginMatch() throws Exception { ServerWebExchange exchange = actualRequest(); - this.conf.addAllowedOrigin("http://DOMAIN2.com"); + this.conf.addAllowedOrigin("https://DOMAIN2.com"); this.processor.process(this.conf, exchange); ServerHttpResponse response = exchange.getResponse(); @@ -152,12 +152,12 @@ public class DefaultCorsProcessorTests { ServerWebExchange exchange = actualRequest(); this.conf.addExposedHeader("header1"); this.conf.addExposedHeader("header2"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.process(this.conf, exchange); ServerHttpResponse response = exchange.getResponse(); assertTrue(response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(response.getHeaders().containsKey(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS)); assertTrue(response.getHeaders().getFirst(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS).contains("header1")); assertTrue(response.getHeaders().getFirst(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS).contains("header2")); @@ -278,8 +278,8 @@ public class DefaultCorsProcessorTests { .header(ACCESS_CONTROL_REQUEST_METHOD, "GET") .header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1")); - this.conf.addAllowedOrigin("http://domain1.com"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain1.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.addAllowedHeader("Header1"); this.conf.setAllowCredentials(true); @@ -288,7 +288,7 @@ public class DefaultCorsProcessorTests { ServerHttpResponse response = exchange.getResponse(); assertTrue(response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertTrue(response.getHeaders().containsKey(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertEquals("true", response.getHeaders().getFirst(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); assertThat(response.getHeaders().get(VARY), contains(ORIGIN, @@ -302,7 +302,7 @@ public class DefaultCorsProcessorTests { .header(ACCESS_CONTROL_REQUEST_METHOD, "GET") .header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1")); - this.conf.addAllowedOrigin("http://domain1.com"); + this.conf.addAllowedOrigin("https://domain1.com"); this.conf.addAllowedOrigin("*"); this.conf.addAllowedOrigin("http://domain3.com"); this.conf.addAllowedHeader("Header1"); @@ -312,7 +312,7 @@ public class DefaultCorsProcessorTests { ServerHttpResponse response = exchange.getResponse(); assertTrue(response.getHeaders().containsKey(ACCESS_CONTROL_ALLOW_ORIGIN)); - assertEquals("http://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeaders().getFirst(ACCESS_CONTROL_ALLOW_ORIGIN)); assertThat(response.getHeaders().get(VARY), contains(ORIGIN, ACCESS_CONTROL_REQUEST_METHOD, ACCESS_CONTROL_REQUEST_HEADERS)); assertNull(response.getStatusCode()); @@ -327,7 +327,7 @@ public class DefaultCorsProcessorTests { this.conf.addAllowedHeader("Header1"); this.conf.addAllowedHeader("Header2"); this.conf.addAllowedHeader("Header3"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.process(this.conf, exchange); @@ -349,7 +349,7 @@ public class DefaultCorsProcessorTests { .header(ACCESS_CONTROL_REQUEST_HEADERS, "Header1, Header2")); this.conf.addAllowedHeader("*"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.process(this.conf, exchange); @@ -371,7 +371,7 @@ public class DefaultCorsProcessorTests { .header(ACCESS_CONTROL_REQUEST_HEADERS, "")); this.conf.addAllowedHeader("*"); - this.conf.addAllowedOrigin("http://domain2.com"); + this.conf.addAllowedOrigin("https://domain2.com"); this.processor.process(this.conf, exchange); @@ -407,7 +407,7 @@ public class DefaultCorsProcessorTests { private MockServerHttpRequest.BaseBuilder corsRequest(HttpMethod method) { return MockServerHttpRequest .method(method, "http://localhost/test.html") - .header(HttpHeaders.ORIGIN, "http://domain2.com"); + .header(HttpHeaders.ORIGIN, "https://domain2.com"); } } diff --git a/spring-web/src/test/java/org/springframework/web/filter/CorsFilterTests.java b/spring-web/src/test/java/org/springframework/web/filter/CorsFilterTests.java index 92bca321382..77458b5ada5 100644 --- a/spring-web/src/test/java/org/springframework/web/filter/CorsFilterTests.java +++ b/spring-web/src/test/java/org/springframework/web/filter/CorsFilterTests.java @@ -43,7 +43,7 @@ public class CorsFilterTests { @Before public void setup() throws Exception { - config.setAllowedOrigins(Arrays.asList("http://domain1.com", "http://domain2.com")); + config.setAllowedOrigins(Arrays.asList("https://domain1.com", "https://domain2.com")); config.setAllowedMethods(Arrays.asList("GET", "POST")); config.setAllowedHeaders(Arrays.asList("header1", "header2")); config.setExposedHeaders(Arrays.asList("header3", "header4")); @@ -56,12 +56,12 @@ public class CorsFilterTests { public void validActualRequest() throws ServletException, IOException { MockHttpServletRequest request = new MockHttpServletRequest(HttpMethod.GET.name(), "/test.html"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); request.addHeader("header2", "foo"); MockHttpServletResponse response = new MockHttpServletResponse(); FilterChain filterChain = (filterRequest, filterResponse) -> { - assertEquals("http://domain2.com", response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertEquals("header3, header4", response.getHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS)); }; filter.doFilter(request, response, filterChain); @@ -71,7 +71,7 @@ public class CorsFilterTests { public void invalidActualRequest() throws ServletException, IOException { MockHttpServletRequest request = new MockHttpServletRequest(HttpMethod.DELETE.name(), "/test.html"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); request.addHeader("header2", "foo"); MockHttpServletResponse response = new MockHttpServletResponse(); @@ -86,7 +86,7 @@ public class CorsFilterTests { public void validPreFlightRequest() throws ServletException, IOException { MockHttpServletRequest request = new MockHttpServletRequest(HttpMethod.OPTIONS.name(), "/test.html"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.GET.name()); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "header1, header2"); MockHttpServletResponse response = new MockHttpServletResponse(); @@ -95,7 +95,7 @@ public class CorsFilterTests { fail("Preflight requests must not be forwarded to the filter chain"); filter.doFilter(request, response, filterChain); - assertEquals("http://domain2.com", response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); + assertEquals("https://domain2.com", response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertEquals("header1, header2", response.getHeader(HttpHeaders.ACCESS_CONTROL_ALLOW_HEADERS)); assertEquals("header3, header4", response.getHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS)); assertEquals(123L, Long.parseLong(response.getHeader(HttpHeaders.ACCESS_CONTROL_MAX_AGE))); @@ -105,7 +105,7 @@ public class CorsFilterTests { public void invalidPreFlightRequest() throws ServletException, IOException { MockHttpServletRequest request = new MockHttpServletRequest(HttpMethod.OPTIONS.name(), "/test.html"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, HttpMethod.DELETE.name()); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "header1, header2"); MockHttpServletResponse response = new MockHttpServletResponse(); diff --git a/spring-web/src/test/java/org/springframework/web/filter/ForwardedHeaderFilterTests.java b/spring-web/src/test/java/org/springframework/web/filter/ForwardedHeaderFilterTests.java index f90cfd739b6..edbdb2d1782 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 @@ -441,7 +441,7 @@ public class ForwardedHeaderFilterTests { this.request.addHeader(X_FORWARDED_HOST, "example.com"); this.request.addHeader(X_FORWARDED_PORT, "443"); - String location = "http://other.info/foo/bar"; + String location = "https://weibo.com/otherinfo/foo/bar"; String redirectedUrl = sendRedirect(location); assertEquals(location, redirectedUrl); } diff --git a/spring-web/src/test/java/org/springframework/web/filter/ShallowEtagHeaderFilterTests.java b/spring-web/src/test/java/org/springframework/web/filter/ShallowEtagHeaderFilterTests.java index 6baca916985..55dbadf0a27 100644 --- a/spring-web/src/test/java/org/springframework/web/filter/ShallowEtagHeaderFilterTests.java +++ b/spring-web/src/test/java/org/springframework/web/filter/ShallowEtagHeaderFilterTests.java @@ -230,7 +230,7 @@ public class ShallowEtagHeaderFilterTests { assertEquals("Invalid request passed", request, filterRequest); response.setContentLength(100); FileCopyUtils.copy(responseBody, filterResponse.getOutputStream()); - ((HttpServletResponse) filterResponse).sendRedirect("http://www.google.com"); + ((HttpServletResponse) filterResponse).sendRedirect("https://www.google.com"); }; filter.doFilter(request, response, filterChain); @@ -238,7 +238,7 @@ public class ShallowEtagHeaderFilterTests { assertNull("Invalid ETag header", response.getHeader("ETag")); assertEquals("Invalid Content-Length header", 100, response.getContentLength()); assertArrayEquals("Invalid content", responseBody, response.getContentAsByteArray()); - assertEquals("Invalid redirect URL", "http://www.google.com", response.getRedirectedUrl()); + assertEquals("Invalid redirect URL", "https://www.google.com", response.getRedirectedUrl()); } // SPR-13717 diff --git a/spring-web/src/test/java/org/springframework/web/multipart/support/RequestPartServletServerHttpRequestTests.java b/spring-web/src/test/java/org/springframework/web/multipart/support/RequestPartServletServerHttpRequestTests.java index 3ececf15fea..6759871191f 100644 --- a/spring-web/src/test/java/org/springframework/web/multipart/support/RequestPartServletServerHttpRequestTests.java +++ b/spring-web/src/test/java/org/springframework/web/multipart/support/RequestPartServletServerHttpRequestTests.java @@ -56,7 +56,7 @@ public class RequestPartServletServerHttpRequestTests { this.mockRequest.addFile(new MockMultipartFile("part", "", "application/json", "content".getBytes("UTF-8"))); ServerHttpRequest request = new RequestPartServletServerHttpRequest(this.mockRequest, "part"); - URI uri = new URI("http://example.com/path?query"); + URI uri = new URI("https://example.com/path?query"); this.mockRequest.setServerName(uri.getHost()); this.mockRequest.setServerPort(uri.getPort()); this.mockRequest.setRequestURI(uri.getPath()); diff --git a/spring-web/src/test/java/org/springframework/web/server/adapter/DefaultServerWebExchangeTests.java b/spring-web/src/test/java/org/springframework/web/server/adapter/DefaultServerWebExchangeTests.java index ea1bf5768a7..e3f7151a86c 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/server/adapter/ForwardedHeaderTransformerTests.java b/spring-web/src/test/java/org/springframework/web/server/adapter/ForwardedHeaderTransformerTests.java index 4ae6caa0153..d7026f53954 100644 --- a/spring-web/src/test/java/org/springframework/web/server/adapter/ForwardedHeaderTransformerTests.java +++ b/spring-web/src/test/java/org/springframework/web/server/adapter/ForwardedHeaderTransformerTests.java @@ -33,7 +33,7 @@ import static org.junit.Assert.*; */ public class ForwardedHeaderTransformerTests { - private static final String BASE_URL = "http://example.com/path"; + private static final String BASE_URL = "https://example.com/path"; private final ForwardedHeaderTransformer requestMutator = new ForwardedHeaderTransformer(); @@ -85,7 +85,7 @@ public class ForwardedHeaderTransformerTests { headers.add("X-Forwarded-Prefix", "/prefix"); ServerHttpRequest request = this.requestMutator.apply(getRequest(headers)); - assertEquals(new URI("http://example.com/prefix/path"), request.getURI()); + assertEquals(new URI("https://example.com/prefix/path"), request.getURI()); assertEquals("/prefix/path", request.getPath().value()); assertForwardedHeadersRemoved(request); } @@ -96,7 +96,7 @@ public class ForwardedHeaderTransformerTests { headers.add("X-Forwarded-Prefix", "/prefix////"); ServerHttpRequest request = this.requestMutator.apply(getRequest(headers)); - assertEquals(new URI("http://example.com/prefix/path"), request.getURI()); + assertEquals(new URI("https://example.com/prefix/path"), request.getURI()); assertEquals("/prefix/path", request.getPath().value()); assertForwardedHeadersRemoved(request); } @@ -107,7 +107,7 @@ public class ForwardedHeaderTransformerTests { headers.add("Forwarded", "host=84.198.58.199;proto=https"); ServerHttpRequest request = 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")) .headers(headers) .build(); 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 7318d7cf6d0..8f77188ee8e 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 @@ -48,24 +48,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 @@ -73,7 +73,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 @@ -81,7 +81,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 @@ -89,7 +89,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 @@ -140,7 +140,7 @@ public class DefaultUriBuilderFactoryTests { factory.setDefaultUriVariables(singletonMap("host", "www.example.com")); UriBuilder uriBuilder = factory.uriString("http://{host}/user/{userId}/dashboard"); - assertEquals("http://www.example.com/user/john%3Bdoe/dashboard", + assertEquals("https://www.example.com/user/john%3Bdoe/dashboard", uriBuilder.build(singletonMap("userId", "john;doe")).toString()); } diff --git a/spring-web/src/test/java/org/springframework/web/util/DefaultUriTemplateHandlerTests.java b/spring-web/src/test/java/org/springframework/web/util/DefaultUriTemplateHandlerTests.java index 49aefaa4eb8..e38f3fe66d2 100644 --- a/spring-web/src/test/java/org/springframework/web/util/DefaultUriTemplateHandlerTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/DefaultUriTemplateHandlerTests.java @@ -73,10 +73,10 @@ public class DefaultUriTemplateHandlerTests { Map vars = new HashMap<>(2); vars.put("hotel", "1"); vars.put("publicpath", "pics/logo.png"); - String template = "http://example.com/hotels/{hotel}/pic/{publicpath}"; + String template = "https://example.com/hotels/{hotel}/pic/{publicpath}"; URI actual = this.handler.expand(template, vars); - assertEquals("http://example.com/hotels/1/pic/pics/logo.png", actual.toString()); + assertEquals("https://example.com/hotels/1/pic/pics/logo.png", actual.toString()); } @Test @@ -86,10 +86,10 @@ public class DefaultUriTemplateHandlerTests { vars.put("hotel", "1"); vars.put("publicpath", "pics/logo.png"); vars.put("scale", "150x150"); - String template = "http://example.com/hotels/{hotel}/pic/{publicpath}/size/{scale}"; + String template = "https://example.com/hotels/{hotel}/pic/{publicpath}/size/{scale}"; URI actual = this.handler.expand(template, vars); - assertEquals("http://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150", actual.toString()); + assertEquals("https://example.com/hotels/1/pic/pics%2Flogo.png/size/150x150", actual.toString()); } @Test @@ -97,19 +97,19 @@ public class DefaultUriTemplateHandlerTests { this.handler.setStrictEncoding(false); Map vars = new HashMap<>(2); vars.put("userId", "john;doe"); - String template = "http://www.example.com/user/{userId}/dashboard"; + String template = "https://www.example.com/user/{userId}/dashboard"; URI actual = this.handler.expand(template, vars); - assertEquals("http://www.example.com/user/john;doe/dashboard", actual.toString()); + assertEquals("https://www.example.com/user/john;doe/dashboard", actual.toString()); } @Test public void strictEncodingOffWithArray() throws Exception { this.handler.setStrictEncoding(false); - String template = "http://www.example.com/user/{userId}/dashboard"; + String template = "https://www.example.com/user/{userId}/dashboard"; URI actual = this.handler.expand(template, "john;doe"); - assertEquals("http://www.example.com/user/john;doe/dashboard", actual.toString()); + assertEquals("https://www.example.com/user/john;doe/dashboard", actual.toString()); } @Test @@ -117,19 +117,19 @@ public class DefaultUriTemplateHandlerTests { this.handler.setStrictEncoding(true); Map vars = new HashMap<>(2); vars.put("userId", "john;doe"); - String template = "http://www.example.com/user/{userId}/dashboard"; + String template = "https://www.example.com/user/{userId}/dashboard"; URI actual = this.handler.expand(template, vars); - assertEquals("http://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); + assertEquals("https://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); } @Test public void strictEncodingOnWithArray() throws Exception { this.handler.setStrictEncoding(true); - String template = "http://www.example.com/user/{userId}/dashboard"; + String template = "https://www.example.com/user/{userId}/dashboard"; URI actual = this.handler.expand(template, "john;doe"); - assertEquals("http://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); + assertEquals("https://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); } @Test // SPR-14147 @@ -145,7 +145,7 @@ public class DefaultUriTemplateHandlerTests { String template = "http://{host}/user/{userId}/dashboard"; URI actual = this.handler.expand(template, vars); - assertEquals("http://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); + assertEquals("https://www.example.com/user/john%3Bdoe/dashboard", actual.toString()); } } diff --git a/spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java b/spring-web/src/test/java/org/springframework/web/util/UriComponentsBuilderTests.java index 2c6e5d7c6dd..e61b42699b9 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")); @@ -491,7 +491,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 @@ -589,32 +589,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 @@ -682,22 +682,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)); @@ -705,7 +705,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(), @@ -728,15 +728,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 eb76edf67b6..a5b589d18de 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 @@ -80,23 +80,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 @@ -110,10 +110,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 @@ -132,18 +132,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) @@ -163,14 +163,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); @@ -191,7 +191,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/UriUtilsTests.java b/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java index dafa5327a6b..6d6803c0443 100644 --- a/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java @@ -95,7 +95,7 @@ public class UriUtilsTests { public void encode() { assertEquals("Invalid encoded result", "foo", UriUtils.encode("foo", CHARSET)); assertEquals("Invalid encoded result", "http%3A%2F%2Fexample.com%2Ffoo%20bar", - UriUtils.encode("http://example.com/foo bar", CHARSET)); + UriUtils.encode("https://example.com/foo bar", CHARSET)); } @Test 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 9a7a2a60346..26c525c0553 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 fc011177148..fd98c781038 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 @@ -92,41 +92,41 @@ 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("http", "mydomain1.com", -1, "http://mydomain1.com")); - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com:80")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://www.mydomain1.com/")); assertTrue(checkSameOrigin("https", "mydomain1.com", 443, "https://mydomain1.com")); assertTrue(checkSameOrigin("https", "mydomain1.com", 443, "https://mydomain1.com:443")); - assertTrue(checkSameOrigin("http", "mydomain1.com", 123, "http://mydomain1.com:123")); + assertTrue(checkSameOrigin("http", "mydomain1.com", 123, "https://mydomain1.com:123")); assertTrue(checkSameOrigin("ws", "mydomain1.com", -1, "ws://mydomain1.com")); assertTrue(checkSameOrigin("wss", "mydomain1.com", 443, "wss://mydomain1.com")); assertFalse(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain2.com")); assertFalse(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com")); assertFalse(checkSameOrigin("http", "mydomain1.com", -1, "invalid-origin")); - assertFalse(checkSameOrigin("https", "mydomain1.com", -1, "http://mydomain1.com")); + assertFalse(checkSameOrigin("https", "mydomain1.com", -1, "https://mydomain1.com")); // Handling of invalid origins as described in SPR-13478 - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com/")); - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com:80/")); - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com/path")); - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com:80/path")); - assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com/")); - assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com:80/")); - assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com/path")); - assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com:80/path")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com/")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://www.mydomain1.com/")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com/path")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://www.mydomain1.com/path")); + assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://mydomain1.com/")); + assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://www.mydomain1.com/")); + assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://mydomain1.com/path")); + assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://www.mydomain1.com/path")); // Handling of IPv6 hosts as described in SPR-13525 assertTrue(checkSameOrigin("http", "[::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 2180b22af95..13bf9248483 100644 --- a/spring-web/src/test/java/org/springframework/web/util/pattern/PathPatternTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/pattern/PathPatternTests.java @@ -484,7 +484,7 @@ public class PathPatternTests { // test exact matching checkMatches("test", "test"); checkMatches("/test", "/test"); - checkMatches("http://example.org", "http://example.org"); + checkMatches("https://example.org", "https://example.org"); checkNoMatch("/test.jpg", "test.jpg"); checkNoMatch("test", "/test"); checkNoMatch("/test", "test"); diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/config/CorsRegistration.java b/spring-webflux/src/main/java/org/springframework/web/reactive/config/CorsRegistration.java index 5d71dab2fab..8dad2ae07fc 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/config/CorsRegistration.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/config/CorsRegistration.java @@ -45,12 +45,12 @@ public class CorsRegistration { /** * The list of allowed origins that be specific origins, e.g. - * {@code "http://domain1.com"}, or {@code "*"} for all origins. + * {@code "https://domain1.com"}, or {@code "*"} for all origins. *

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

    By default all origins are allowed. *

    Note: CORS checks use values from "Forwarded" - * (RFC 7239), + * (RFC 7239), * "X-Forwarded-Host", "X-Forwarded-Port", and "X-Forwarded-Proto" headers, * if present, in order to reflect the client-originated address. * Consider using the {@code ForwardedHeaderFilter} in order to choose from a diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ExchangeFunction.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ExchangeFunction.java index 3fd2cc66666..9078462f867 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ExchangeFunction.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ExchangeFunction.java @@ -25,7 +25,7 @@ import reactor.core.publisher.Mono; *

    For example: *

      * ExchangeFunction exchangeFunction = ExchangeFunctions.create(new ReactorClientHttpConnector());
    - * ClientRequest<Void> request = ClientRequest.method(HttpMethod.GET, "http://example.com/resource").build();
    + * ClientRequest<Void> request = ClientRequest.method(HttpMethod.GET, "https://example.com/resource").build();
      *
      * Mono<String> result = exchangeFunction
      *     .exchange(request)
    diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/WebClient.java b/spring-webflux/src/main/java/org/springframework/web/reactive/function/client/WebClient.java
    index d3eb5beecfa..23cba546294 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
    @@ -160,29 +160,29 @@ 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)
     		 *         .retrieve()
     		 *         .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())
     		 *         .retrieve()
     		 *         .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")
    +		 * Mono<Account> result = client.get().uri("https://xyz.com/path")
     		 *         .retrieve()
     		 *         .bodyToMono(Account.class);
     		 *
    -		 * // Result: http://xyz.com/path
    +		 * // Result: https://xyz.com/path
     		 * 
    * *

    Or partially overridden with a {@code UriBuilder}: @@ -192,7 +192,7 @@ public interface WebClient { * .retrieve() * .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/resource/WebJarsResourceResolver.java b/spring-webflux/src/main/java/org/springframework/web/reactive/resource/WebJarsResourceResolver.java index 39bbd77bbb6..ca5bd89b78e 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 @@ -42,7 +42,7 @@ import org.springframework.web.server.ServerWebExchange; * @author Rossen Stoyanchev * @author Brian Clozel * @since 5.0 - * @see webjars.org + * @see webjars.org */ public class WebJarsResourceResolver extends AbstractResourceResolver { diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/freemarker/package-info.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/freemarker/package-info.java index 311ce009248..b46c377026d 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/freemarker/package-info.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/freemarker/package-info.java @@ -1,6 +1,6 @@ /** * Support classes for the integration of - * FreeMarker + * FreeMarker * as Spring web view technology. * Contains a View implementation for FreeMarker templates. */ diff --git a/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/script/ScriptTemplateConfigurer.java b/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/script/ScriptTemplateConfigurer.java index d53453d9bf8..85910300346 100644 --- a/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/script/ScriptTemplateConfigurer.java +++ b/spring-webflux/src/main/java/org/springframework/web/reactive/result/view/script/ScriptTemplateConfigurer.java @@ -133,7 +133,7 @@ public class ScriptTemplateConfigurer implements ScriptTemplateConfig { * {@link #setEngineName(String)}. Using {@link #setEngine(ScriptEngine)} is not * possible because multiple instances of the script engine need to be created for * each request. - * @see THREADING ScriptEngine parameter + * @see THREADING ScriptEngine parameter */ public void setSharedEngine(@Nullable Boolean sharedEngine) { this.sharedEngine = sharedEngine; @@ -154,7 +154,7 @@ public class ScriptTemplateConfigurer implements ScriptTemplateConfig { * {@code configurer.setScripts("/META-INF/resources/webjars/library/version/library.js", * "com/myproject/script/render.js");}. * @see #setResourceLoaderPath - * @see WebJars + * @see WebJars */ public void setScripts(@Nullable String... scriptNames) { this.scripts = scriptNames; diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/config/CorsRegistryTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/config/CorsRegistryTests.java index ccd9f49b7dc..e35246a5579 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/config/CorsRegistryTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/config/CorsRegistryTests.java @@ -49,13 +49,13 @@ public class CorsRegistryTests { @Test public void customizedMapping() { - this.registry.addMapping("/foo").allowedOrigins("http://domain2.com", "http://domain2.com") + this.registry.addMapping("/foo").allowedOrigins("https://domain2.com", "https://domain2.com") .allowedMethods("DELETE").allowCredentials(false).allowedHeaders("header1", "header2") .exposedHeaders("header3", "header4").maxAge(3600); Map configs = this.registry.getCorsConfigurations(); assertEquals(1, configs.size()); CorsConfiguration config = configs.get("/foo"); - assertEquals(Arrays.asList("http://domain2.com", "http://domain2.com"), config.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain2.com", "https://domain2.com"), config.getAllowedOrigins()); assertEquals(Arrays.asList("DELETE"), config.getAllowedMethods()); assertEquals(Arrays.asList("header1", "header2"), config.getAllowedHeaders()); assertEquals(Arrays.asList("header3", "header4"), config.getExposedHeaders()); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/function/BodyInsertersTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/BodyInsertersTests.java index 8564b505702..d20ef2c4b36 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 @@ -266,7 +266,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(); @@ -291,7 +291,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(); @@ -318,7 +318,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(); @@ -330,7 +330,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 8a34aa1bb11..00effa05342 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 @@ -48,14 +48,14 @@ public class DefaultClientRequestBuilderTests { @Test public void from() throws URISyntaxException { - 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")); @@ -65,7 +65,7 @@ public class DefaultClientRequestBuilderTests { @Test public void method() throws URISyntaxException { - 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()); @@ -75,8 +75,8 @@ public class DefaultClientRequestBuilderTests { @Test public void url() throws URISyntaxException { - 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()); @@ -86,14 +86,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(); @@ -119,7 +119,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<>(); @@ -141,7 +141,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<>(); @@ -164,7 +164,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 6c8645ea577..4460baf368a 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 @@ -165,7 +165,7 @@ public class DefaultWebClientTests { Mono mono = Mono.empty(); WebClient client = this.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 0311c14e8a1..4b6392ed23d 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 @@ -43,7 +43,7 @@ import static org.mockito.Mockito.*; */ public class ExchangeFilterFunctionsTests { - private static final URI DEFAULT_URL = URI.create("http://example.com"); + private static final URI DEFAULT_URL = URI.create("https://example.com"); @Test 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 16998966b1a..736949c2cd9 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 b9d5cd0f624..f989e69b8b2 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/DefaultServerRequestBuilderTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerRequestBuilderTests.java index 621e4f30e3c..c0886217be4 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerRequestBuilderTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/DefaultServerRequestBuilderTests.java @@ -42,7 +42,7 @@ public class DefaultServerRequestBuilderTests { @Test public void from() { - MockServerHttpRequest request = MockServerHttpRequest.post("http://example.com") + MockServerHttpRequest request = MockServerHttpRequest.post("https://example.com") .header("foo", "bar") .build(); MockServerWebExchange exchange = MockServerWebExchange.from(request); 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 eeca50e8dc4..b7e3515e0b8 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 @@ -73,7 +73,7 @@ public class DefaultServerRequestTests { public void method() { 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()); @@ -109,7 +109,7 @@ public class DefaultServerRequestTests { @Test public void attribute() { 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); @@ -120,7 +120,7 @@ public class DefaultServerRequestTests { @Test public void queryParams() { 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")); @@ -129,7 +129,7 @@ public class DefaultServerRequestTests { @Test public void emptyQueryParam() { 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")); @@ -138,7 +138,7 @@ public class DefaultServerRequestTests { @Test public void absentQueryParam() { 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")); @@ -146,7 +146,7 @@ public class DefaultServerRequestTests { @Test public void pathVariable() { - 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); @@ -158,7 +158,7 @@ public class DefaultServerRequestTests { @Test(expected = IllegalArgumentException.class) public void pathVariableNotFound() { - 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); @@ -169,7 +169,7 @@ public class DefaultServerRequestTests { @Test public void pathVariables() { - 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); @@ -197,7 +197,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); @@ -213,7 +213,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); @@ -235,7 +235,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); @@ -254,7 +254,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); @@ -273,7 +273,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); @@ -293,7 +293,7 @@ public class DefaultServerRequestTests { HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.setContentType(MediaType.APPLICATION_JSON); MockServerHttpRequest mockRequest = MockServerHttpRequest - .method(HttpMethod.POST, "http://example.com/invalid") + .method(HttpMethod.POST, "https://example.com/invalid") .headers(httpHeaders) .body(body); DefaultServerRequest request = new DefaultServerRequest(MockServerWebExchange.from(mockRequest), messageReaders); @@ -315,7 +315,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); @@ -334,7 +334,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); @@ -354,7 +354,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()); @@ -375,7 +375,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()); @@ -409,7 +409,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 5d6bf746f45..2d605d23288 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 @@ -102,7 +102,7 @@ public class DefaultServerResponseBuilderTests { @Test public void created() { - 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()) && @@ -133,7 +133,7 @@ public class DefaultServerResponseBuilderTests { @Test public void seeOther() { - 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()) && @@ -144,7 +144,7 @@ public class DefaultServerResponseBuilderTests { @Test public void temporaryRedirect() { - 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()) && @@ -155,7 +155,7 @@ public class DefaultServerResponseBuilderTests { @Test public void permanentRedirect() { - 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()) && @@ -328,7 +328,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(); @@ -345,7 +345,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(); @@ -369,7 +369,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); @@ -393,7 +393,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/RequestPredicateAttributesTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/RequestPredicateAttributesTests.java index 032f1387945..fabba401b33 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/RequestPredicateAttributesTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/function/server/RequestPredicateAttributesTests.java @@ -37,7 +37,7 @@ public class RequestPredicateAttributesTests { @Before public void createRequest() { - MockServerHttpRequest request = MockServerHttpRequest.get("http://example.com/path").build(); + MockServerHttpRequest request = MockServerHttpRequest.get("https://example.com/path").build(); MockServerWebExchange webExchange = MockServerWebExchange.from(request); webExchange.getAttributes().put("exchange", "bar"); 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 8302ad01567..937234b02bf 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 209a4afbc7b..80fc7c40625 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(); @@ -134,13 +134,13 @@ public class CorsUrlHandlerMappingTests { public void actualRequestWithCorsConfigurationSource() throws Exception { this.handlerMapping.setCorsConfigurationSource(new CustomCorsConfigurationSource()); - 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(); assertNotNull(actual); assertSame(this.welcomeController, actual); - assertEquals("http://domain2.com", exchange.getResponse().getHeaders() + assertEquals("https://domain2.com", exchange.getResponse().getHeaders() .getFirst(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertEquals("true", exchange.getResponse().getHeaders() .getFirst(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); @@ -150,13 +150,13 @@ public class CorsUrlHandlerMappingTests { public void preFlightRequestWithCorsConfigurationSource() throws Exception { this.handlerMapping.setCorsConfigurationSource(new CustomCorsConfigurationSource()); - 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(); assertNotNull(actual); assertNotSame(this.welcomeController, actual); - assertEquals("http://domain2.com", exchange.getResponse().getHeaders() + assertEquals("https://domain2.com", exchange.getResponse().getHeaders() .getFirst(HttpHeaders.ACCESS_CONTROL_ALLOW_ORIGIN)); assertEquals("true", exchange.getResponse().getHeaders() .getFirst(HttpHeaders.ACCESS_CONTROL_ALLOW_CREDENTIALS)); 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 7010b3090e5..8425e2f724d 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 @@ -109,7 +109,7 @@ public class AppCacheManifestTransformerTests { containsString("/static/js/bar-bd508c62235b832d960298ca6c0b7645.js")); assertThat("should not rewrite external resources", content, containsString("//example.org/style.css")); - assertThat("should not rewrite external resources", content, containsString("http://example.org/image.png")); + assertThat("should not rewrite external resources", content, containsString("https://example.org/image.png")); // Not the same hash as Spring MVC // Hash is computed from links, and not from the linked content 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 452d412aff2..697079b8571 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 @@ -115,7 +115,7 @@ public class CssLinkResourceTransformerTests { ResourceTransformerChain chain = new DefaultResourceTransformerChain(mockChain, transformers); Resource resource = getResource("external.css"); - 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\")}"; @@ -130,7 +130,7 @@ public class CssLinkResourceTransformerTests { .verify(); List locations = Collections.singletonList(resource); - Mockito.verify(mockChain, Mockito.never()).resolveUrlPath("http://example.org/fonts/css", locations); + Mockito.verify(mockChain, Mockito.never()).resolveUrlPath("https://example.org/fonts/css", locations); Mockito.verify(mockChain, Mockito.never()).resolveUrlPath("file:///home/spring/image.png", locations); Mockito.verify(mockChain, Mockito.never()).resolveUrlPath("//example.org/style.css", locations); } 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 99dac746f26..ae23b302f0b 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 @@ -85,7 +85,7 @@ public class ResourceUrlProviderTests { @Test // SPR-13374 public void getStaticResourceUrlRequestWithQueryOrHash() { - 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, this.exchange).block(TIMEOUT); assertEquals(url, resolvedUrl); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMappingInfoTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMappingInfoTests.java index 7f5c06348e3..338bcb2dfec 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMappingInfoTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMappingInfoTests.java @@ -283,7 +283,7 @@ public class RequestMappingInfoTests { @Ignore public void preFlightRequest() throws Exception { MockServerWebExchange exchange = MockServerWebExchange.from(MockServerHttpRequest.options("/foo") - .header("Origin", "http://domain.com") + .header("Origin", "https://domain.com") .header(HttpHeaders.ACCESS_CONTROL_REQUEST_HEADERS, "POST") ); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMethodsRequestConditionTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMethodsRequestConditionTests.java index fb0dd1e76c6..3a43a5749b7 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMethodsRequestConditionTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/condition/RequestMethodsRequestConditionTests.java @@ -79,7 +79,7 @@ public class RequestMethodsRequestConditionTests { @Ignore public void getMatchingConditionWithCorsPreFlight() throws Exception { ServerWebExchange exchange = getExchange("OPTIONS"); - exchange.getRequest().getHeaders().add("Origin", "http://example.com"); + exchange.getRequest().getHeaders().add("Origin", "https://example.com"); exchange.getRequest().getHeaders().add(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "PUT"); assertNotNull(new RequestMethodsRequestCondition().getMatchingCondition(exchange)); diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/CrossOriginAnnotationIntegrationTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/CrossOriginAnnotationIntegrationTests.java index f29bb47e473..e1e03235e8d 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/CrossOriginAnnotationIntegrationTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/CrossOriginAnnotationIntegrationTests.java @@ -59,7 +59,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin public void setup() throws Exception { super.setup(); this.headers = new HttpHeaders(); - this.headers.setOrigin("http://site1.com"); + this.headers.setOrigin("https://site1.com"); } @@ -68,7 +68,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(); context.register(WebConfig.class); Properties props = new Properties(); - props.setProperty("myOrigin", "http://site1.com"); + props.setProperty("myOrigin", "https://site1.com"); context.getEnvironment().getPropertySources().addFirst(new PropertiesPropertySource("ps", props)); context.register(PropertySourcesPlaceholderConfigurer.class); context.refresh(); @@ -130,7 +130,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin public void actualRequestWithCustomizedAnnotation() throws Exception { ResponseEntity entity = performGet("/customized", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertFalse(entity.getHeaders().getAccessControlAllowCredentials()); assertEquals(-1, entity.getHeaders().getAccessControlMaxAge()); assertEquals("customized", entity.getBody()); @@ -143,7 +143,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin ResponseEntity entity = performOptions("/customized", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertArrayEquals(new HttpMethod[] {HttpMethod.GET}, entity.getHeaders().getAccessControlAllowMethods().toArray()); assertArrayEquals(new String[] {"header1", "header2"}, @@ -158,7 +158,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin public void customOriginDefinedViaValueAttribute() throws Exception { ResponseEntity entity = performGet("/origin-value-attribute", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertEquals("value-attribute", entity.getBody()); } @@ -166,7 +166,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin public void customOriginDefinedViaPlaceholder() throws Exception { ResponseEntity entity = performGet("/origin-placeholder", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertEquals("placeholder", entity.getBody()); } @@ -186,7 +186,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin entity = performGet("/baz", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertTrue(entity.getHeaders().getAccessControlAllowCredentials()); assertEquals("baz", entity.getBody()); } @@ -198,7 +198,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin ResponseEntity entity = performOptions("/ambiguous-header", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertArrayEquals(new HttpMethod[] {HttpMethod.GET}, entity.getHeaders().getAccessControlAllowMethods().toArray()); assertArrayEquals(new String[] {"header1"}, @@ -212,7 +212,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin ResponseEntity entity = performOptions("/ambiguous-produces", this.headers, String.class); assertEquals(HttpStatus.OK, entity.getStatusCode()); - assertEquals("http://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); + assertEquals("https://site1.com", entity.getHeaders().getAccessControlAllowOrigin()); assertArrayEquals(new HttpMethod[] {HttpMethod.GET}, entity.getHeaders().getAccessControlAllowMethods().toArray()); assertTrue(entity.getHeaders().getAccessControlAllowCredentials()); @@ -274,7 +274,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin } @CrossOrigin( - origins = { "http://site1.com", "http://site2.com" }, + origins = { "https://site1.com", "https://site2.com" }, allowedHeaders = { "header1", "header2" }, exposedHeaders = { "header3", "header4" }, methods = RequestMethod.GET, @@ -285,7 +285,7 @@ public class CrossOriginAnnotationIntegrationTests extends AbstractRequestMappin return "customized"; } - @CrossOrigin("http://site1.com") + @CrossOrigin("https://site1.com") @GetMapping("/origin-value-attribute") public String customOriginDefinedViaValueAttribute() { return "value-attribute"; diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ServerWebExchangeArgumentResolverTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/method/annotation/ServerWebExchangeArgumentResolverTests.java index b4f1d188e5c..7129d379226 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 @@ -53,7 +53,7 @@ public class ServerWebExchangeArgumentResolverTests { new ServerWebExchangeArgumentResolver(ReactiveAdapterRegistry.getSharedInstance()); private final MockServerWebExchange exchange = MockServerWebExchange.from( - MockServerHttpRequest.get("http://example.org:9999/path?q=foo")); + MockServerHttpRequest.get("https://example.org:9999/path?q=foo")); private ResolvableMethod testMethod = ResolvableMethod.on(getClass()).named("handle").build(); @@ -105,7 +105,7 @@ public class ServerWebExchangeArgumentResolverTests { assertNotNull(value); assertEquals(UriComponentsBuilder.class, value.getClass()); - assertEquals("http://example.org:9999/next", ((UriComponentsBuilder) value).path("/next").toUriString()); + assertEquals("https://example.org:9999/next", ((UriComponentsBuilder) value).path("/next").toUriString()); } diff --git a/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/RedirectViewTests.java b/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/RedirectViewTests.java index 4e5a3d2a36b..057fd03a455 100644 --- a/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/RedirectViewTests.java +++ b/spring-webflux/src/test/java/org/springframework/web/reactive/result/view/RedirectViewTests.java @@ -59,7 +59,7 @@ public class RedirectViewTests { @Test public void defaultStatusCode() { - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; RedirectView view = new RedirectView(url); view.render(new HashMap<>(), MediaType.TEXT_HTML, this.exchange).block(); assertEquals(HttpStatus.SEE_OTHER, this.exchange.getResponse().getStatusCode()); @@ -68,7 +68,7 @@ public class RedirectViewTests { @Test public void customStatusCode() { - String url = "http://url.somewhere.com"; + String url = "https://url.somewhere.com"; RedirectView view = new RedirectView(url, HttpStatus.FOUND); view.render(new HashMap<>(), MediaType.TEXT_HTML, this.exchange).block(); assertEquals(HttpStatus.FOUND, this.exchange.getResponse().getStatusCode()); @@ -95,44 +95,44 @@ public class RedirectViewTests { public void remoteHost() { RedirectView view = new RedirectView(""); - assertFalse(view.isRemoteHost("http://url.somewhere.com")); + assertFalse(view.isRemoteHost("https://url.somewhere.com")); assertFalse(view.isRemoteHost("/path")); assertFalse(view.isRemoteHost("http://url.somewhereelse.com")); view.setHosts("url.somewhere.com"); - assertFalse(view.isRemoteHost("http://url.somewhere.com")); + assertFalse(view.isRemoteHost("https://url.somewhere.com")); assertFalse(view.isRemoteHost("/path")); assertTrue(view.isRemoteHost("http://url.somewhereelse.com")); } @Test public void expandUriTemplateVariablesFromModel() { - String url = "http://url.somewhere.com?foo={foo}"; + String url = "https://url.somewhere.com?foo={foo}"; Map model = Collections.singletonMap("foo", "bar"); RedirectView view = new RedirectView(url); view.render(model, MediaType.TEXT_HTML, this.exchange).block(); - assertEquals(URI.create("http://url.somewhere.com?foo=bar"), this.exchange.getResponse().getHeaders().getLocation()); + assertEquals(URI.create("https://url.somewhere.com?foo=bar"), this.exchange.getResponse().getHeaders().getLocation()); } @Test public void expandUriTemplateVariablesFromExchangeAttribute() { - String url = "http://url.somewhere.com?foo={foo}"; + String url = "https://url.somewhere.com?foo={foo}"; Map attributes = Collections.singletonMap("foo", "bar"); this.exchange.getAttributes().put(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE, attributes); RedirectView view = new RedirectView(url); view.render(new HashMap<>(), MediaType.TEXT_HTML, exchange).block(); - assertEquals(URI.create("http://url.somewhere.com?foo=bar"), this.exchange.getResponse().getHeaders().getLocation()); + assertEquals(URI.create("https://url.somewhere.com?foo=bar"), this.exchange.getResponse().getHeaders().getLocation()); } @Test public void propagateQueryParams() throws Exception { - RedirectView view = new RedirectView("http://url.somewhere.com?foo=bar#bazz"); + RedirectView view = new RedirectView("https://url.somewhere.com?foo=bar#bazz"); view.setPropagateQuery(true); - this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("http://url.somewhere.com?a=b&c=d")); + this.exchange = MockServerWebExchange.from(MockServerHttpRequest.get("https://url.somewhere.com?a=b&c=d")); view.render(new HashMap<>(), MediaType.TEXT_HTML, this.exchange).block(); assertEquals(HttpStatus.SEE_OTHER, this.exchange.getResponse().getStatusCode()); - assertEquals(URI.create("http://url.somewhere.com?foo=bar&a=b&c=d#bazz"), + assertEquals(URI.create("https://url.somewhere.com?foo=bar&a=b&c=d#bazz"), this.exchange.getResponse().getHeaders().getLocation()); } diff --git a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/external.css b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/external.css index d21e42aaf2a..01b801aee03 100644 --- a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/external.css +++ b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/external.css @@ -1,3 +1,3 @@ -@import url("http://example.org/fonts/css"); +@import url("https://example.org/fonts/css"); body { background: url("file:///home/spring/image.png") } figure { background: url("//example.org/style.css")} \ No newline at end of file diff --git a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/foo.html b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/foo.html index 83ff005e6bf..b2f02184a64 100644 --- a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/foo.html +++ b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/foo.html @@ -1,4 +1,4 @@ - + diff --git a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/test.appcache b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/test.appcache index 76e2f32a98d..986d1055a64 100644 --- a/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/test.appcache +++ b/spring-webflux/src/test/resources/org/springframework/web/reactive/resource/test/test.appcache @@ -11,7 +11,7 @@ NETWORK: CACHE: js/bar.js -http://example.org/image.png +https://example.org/image.png FALLBACK: /main /static.html \ No newline at end of file diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/View.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/View.java index 0ba67e90143..5fb13e8a257 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/View.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/View.java @@ -27,7 +27,7 @@ import org.springframework.lang.Nullable; * content, and exposing the model. A single view exposes multiple model attributes. * *

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

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

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

    By default, all origins are allowed. *

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

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

    This package and related packages are discussed in Chapters 12 and 13 of - * Expert One-On-One J2EE Design and Development + * Expert One-On-One J2EE Design and Development * by Rod Johnson (Wrox, 2002). */ @NonNullApi diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/resource/ResourceHttpRequestHandler.java index 5be09c5f512..587cffeb74d 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 @@ -151,7 +151,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 da306d3e171..52c82e9053e 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 a6c525c42d1..ba4911d4a1c 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 @@ -191,12 +191,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 9345c76daf4..0ef197afa09 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 @@ -577,7 +577,7 @@ public abstract class WebContentGenerator extends WebApplicationObjectSupport { /** * Prevent the response from being cached. * Only called in HTTP 1.0 compatibility mode. - *

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

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

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

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

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

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

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

    For working with the workbook in subclasses, see - * Apache's POI site. + * Apache's POI site. * * @author Juergen Hoeller * @since 4.2 diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java index 442426d4e86..75526d004e3 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/feed/AbstractAtomFeedView.java @@ -42,7 +42,7 @@ import com.rometools.rome.feed.atom.Feed; * @since 3.0 * @see #buildFeedMetadata * @see #buildFeedEntries - * @see Atom Syndication Format + * @see Atom Syndication Format */ public abstract class AbstractAtomFeedView extends AbstractFeedView { diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/package-info.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/package-info.java index b1638eb7962..37b0a52c52a 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/package-info.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/freemarker/package-info.java @@ -1,6 +1,6 @@ /** * Support classes for the integration of - * FreeMarker + * FreeMarker * as Spring web view technology. * Contains a View implementation for FreeMarker templates. */ diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/json/MappingJackson2JsonView.java index 387b998d29c..9768b4bb71d 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 @@ -35,7 +35,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 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 bf7707ecd7e..71563ed505e 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 @@ -137,7 +137,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; @@ -158,7 +158,7 @@ public class ScriptTemplateConfigurer implements ScriptTemplateConfig { * {@code configurer.setScripts("/META-INF/resources/webjars/library/version/library.js", * "com/myproject/script/render.js");}. * @see #setResourceLoaderPath - * @see WebJars + * @see WebJars */ public void setScripts(@Nullable String... scriptNames) { this.scripts = scriptNames; diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java index 732bbb992ed..afa7b4231d1 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/TilesConfigurer.java @@ -70,7 +70,7 @@ import org.springframework.web.context.ServletContextAware; /** * Helper class to configure Tiles 3.x for the Spring Framework. See - * http://tiles.apache.org + * https://tiles.apache.org * for more information about Tiles, which basically is a templating mechanism * for web applications using JSPs and other template engines. * diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/package-info.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/package-info.java index c948a0562d3..ca03c5e3c47 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/package-info.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/tiles3/package-info.java @@ -1,6 +1,6 @@ /** * Support classes for the integration of - * Tiles 3 + * Tiles 3 * (the standalone version of Tiles) as Spring web view technology. * Contains a View implementation for Tiles definitions. */ diff --git a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java index 8b2c6f58c89..fc376b7c8ad 100644 --- a/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java +++ b/spring-webmvc/src/main/java/org/springframework/web/servlet/view/xml/MappingJackson2XmlView.java @@ -30,7 +30,7 @@ import org.springframework.web.servlet.view.json.AbstractJackson2View; /** * Spring MVC {@link View} that renders XML content by serializing the model for the current request - * using Jackson 2's {@link XmlMapper}. + * using Jackson 2's {@link XmlMapper}. * *

    The Object to be serialized is supplied as a parameter in the model. The first serializable * entry is used. Users can either specify a specific entry in the model via the diff --git a/spring-webmvc/src/main/resources/META-INF/spring-form.tld b/spring-webmvc/src/main/resources/META-INF/spring-form.tld index a85779c5712..a44b25de42c 100644 --- a/spring-webmvc/src/main/resources/META-INF/spring-form.tld +++ b/spring-webmvc/src/main/resources/META-INF/spring-form.tld @@ -1,7 +1,7 @@ Spring Framework JSP Form Tag Library diff --git a/spring-webmvc/src/main/resources/META-INF/spring.tld b/spring-webmvc/src/main/resources/META-INF/spring.tld index a9b3744c22c..33eeaf1dec5 100644 --- a/spring-webmvc/src/main/resources/META-INF/spring.tld +++ b/spring-webmvc/src/main/resources/META-INF/spring.tld @@ -1,7 +1,7 @@ Spring Framework JSP Tag Library diff --git a/spring-webmvc/src/main/resources/org/springframework/web/servlet/config/spring-mvc.xsd b/spring-webmvc/src/main/resources/org/springframework/web/servlet/config/spring-mvc.xsd index 1ec6c84049b..a1a62d6bd23 100644 --- a/spring-webmvc/src/main/resources/org/springframework/web/servlet/config/spring-mvc.xsd +++ b/spring-webmvc/src/main/resources/org/springframework/web/servlet/config/spring-mvc.xsd @@ -8,8 +8,8 @@ elementFormDefault="qualified" attributeFormDefault="unqualified"> - - + + @@ -641,7 +641,7 @@ with resources in the web app root taking precedence. For URL-based resources (e.g. files, HTTP URLs, etc) this property supports a special prefix to indicate the charset associated with the URL so that relative paths appended to it can be encoded - correctly, e.g. "[charset=Windows-31J]http://example.org/path". + correctly, e.g. "[charset=Windows-31J]https://example.org/path". ]]> @@ -1329,7 +1329,7 @@ SPR-4008: Supply an opportunity to customize * context before calling refresh in ContextLoaders. */ diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/CorsRegistryTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/CorsRegistryTests.java index 1d0942dea8b..c8b061acee6 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/CorsRegistryTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/CorsRegistryTests.java @@ -54,13 +54,13 @@ public class CorsRegistryTests { @Test public void customizedMapping() { - this.registry.addMapping("/foo").allowedOrigins("http://domain2.com", "http://domain2.com") + this.registry.addMapping("/foo").allowedOrigins("https://domain2.com", "https://domain2.com") .allowedMethods("DELETE").allowCredentials(false).allowedHeaders("header1", "header2") .exposedHeaders("header3", "header4").maxAge(3600); Map configs = this.registry.getCorsConfigurations(); assertEquals(1, configs.size()); CorsConfiguration config = configs.get("/foo"); - assertEquals(Arrays.asList("http://domain2.com", "http://domain2.com"), config.getAllowedOrigins()); + assertEquals(Arrays.asList("https://domain2.com", "https://domain2.com"), config.getAllowedOrigins()); assertEquals(Arrays.asList("DELETE"), config.getAllowedMethods()); assertEquals(Arrays.asList("header1", "header2"), config.getAllowedHeaders()); assertEquals(Arrays.asList("header3", "header4"), config.getExposedHeaders()); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/handler/CorsAbstractHandlerMappingTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/handler/CorsAbstractHandlerMappingTests.java index a5a20bced4c..160db8f4c5f 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); @@ -154,7 +154,7 @@ public class CorsAbstractHandlerMappingTests { this.handlerMapping.setCorsConfigurationSource(new CustomCorsConfigurationSource()); 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); @@ -170,7 +170,7 @@ public class CorsAbstractHandlerMappingTests { this.handlerMapping.setCorsConfigurationSource(new CustomCorsConfigurationSource()); this.request.setMethod(RequestMethod.OPTIONS.name()); this.request.setRequestURI("/foo"); - this.request.addHeader(HttpHeaders.ORIGIN, "http://domain2.com"); + this.request.addHeader(HttpHeaders.ORIGIN, "https://domain2.com"); this.request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "GET"); HandlerExecutionChain chain = handlerMapping.getHandler(this.request); assertNotNull(chain); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/UrlFilenameViewControllerTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/UrlFilenameViewControllerTests.java index 28885e0f711..f5f339734d1 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/UrlFilenameViewControllerTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/UrlFilenameViewControllerTests.java @@ -166,7 +166,7 @@ public class UrlFilenameViewControllerTests { /** * This is the expected behavior, and it now has a test to prove it. - * http://opensource.atlassian.com/projects/spring/browse/SPR-2789 + * https://opensource.atlassian.com/projects/spring/browse/SPR-2789 */ @Test public void nestedPathisUsedAsViewName_InBreakingChangeFromSpring12Line() throws Exception { diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/WebContentInterceptorTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/WebContentInterceptorTests.java index 4914500d5cd..35c25f47d67 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/WebContentInterceptorTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/WebContentInterceptorTests.java @@ -138,7 +138,7 @@ public class WebContentInterceptorTests { mappings.setProperty("*/*.cache.html", "10"); // was **/*.cache.html interceptor.setCacheMappings(mappings); - // request.setRequestURI("http://example.org/foo/page.html"); + // request.setRequestURI("https://example.org/foo/page.html"); request.setRequestURI("foo/page.html"); interceptor.preHandle(request, response, null); @@ -149,7 +149,7 @@ public class WebContentInterceptorTests { Iterable pragmaHeaders = response.getHeaders("Pragma"); assertThat(pragmaHeaders, Matchers.contains("no-cache")); - // request.setRequestURI("http://example.org/page.cache.html"); + // request.setRequestURI("https://example.org/page.cache.html"); request = new MockHttpServletRequest("GET", "foo/page.cache.html"); response = new MockHttpServletResponse(); interceptor.preHandle(request, response, null); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java index a4f077b89a0..058df05dbca 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/condition/RequestMethodsRequestConditionTests.java @@ -71,7 +71,7 @@ public class RequestMethodsRequestConditionTests { @Test public void getMatchingConditionWithCorsPreFlight() throws Exception { MockHttpServletRequest request = new MockHttpServletRequest("OPTIONS", ""); - request.addHeader("Origin", "http://example.com"); + request.addHeader("Origin", "https://example.com"); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "PUT"); assertNotNull(new RequestMethodsRequestCondition().getMatchingCondition(request)); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoTests.java index b53f8ba2359..d2fcb90af24 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/RequestMappingInfoTests.java @@ -267,7 +267,7 @@ public class RequestMappingInfoTests { @Test public void preFlightRequest() { MockHttpServletRequest request = new MockHttpServletRequest("OPTIONS", "/foo"); - request.addHeader(HttpHeaders.ORIGIN, "http://domain.com"); + request.addHeader(HttpHeaders.ORIGIN, "https://domain.com"); request.addHeader(HttpHeaders.ACCESS_CONTROL_REQUEST_METHOD, "POST"); RequestMappingInfo info = paths("/foo").methods(RequestMethod.POST).build(); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/CrossOriginTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/mvc/method/annotation/CrossOriginTests.java index 2b76c39bf7b..f7702405acc 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 @@ -80,7 +80,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(); @@ -89,7 +89,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/"); } @@ -141,7 +141,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()); @@ -155,7 +155,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()); } @@ -166,7 +166,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()); } @@ -216,7 +216,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()); } @@ -229,7 +229,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()); } @@ -288,7 +288,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)); } @@ -358,7 +358,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, @@ -368,7 +368,7 @@ public class CrossOriginTests { public void customized() { } - @CrossOrigin("http://example.com") + @CrossOrigin("https://example.com") @RequestMapping("/customOrigin") public void customOriginDefinedViaValueAttribute() { } @@ -423,7 +423,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) @@ -436,7 +436,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 3ea12f290a7..2e896fe9c8d 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 @@ -122,21 +122,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 @@ -234,23 +234,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 @@ -327,21 +327,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 @@ -395,10 +395,10 @@ public class MvcUriComponentsBuilderTests { 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 @@ -424,7 +424,7 @@ public class MvcUriComponentsBuilderTests { this.request.setServerPort(9999); this.request.setContextPath("/base"); - assertEquals("http://example.org:9999/base/api/people/123/addresses", + assertEquals("https://example.org:9999/base/api/people/123/addresses", fromController(PersonsAddressesController.class).buildAndExpand("123").toString()); } @@ -437,7 +437,7 @@ public class MvcUriComponentsBuilderTests { this.request.setServerPort(9999); this.request.setContextPath("/base"); - assertEquals("http://example.org:9999/base/api/people/123/addresses/DE", + assertEquals("https://example.org:9999/base/api/people/123/addresses/DE", fromMethodCall(on(PersonsAddressesController.class).getAddressesForCountry("DE")) .buildAndExpand("123").toString()); } 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 6079662ca07..f8ef6606461 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 @@ -111,7 +111,7 @@ public class AppCacheManifestTransformerTests { containsString("/static/js/bar-bd508c62235b832d960298ca6c0b7645.js")); assertThat("should not rewrite external resources", content, containsString("//example.org/style.css")); - assertThat("should not rewrite external resources", content, containsString("http://example.org/image.png")); + assertThat("should not rewrite external resources", content, containsString("https://example.org/image.png")); assertThat("should generate fingerprint", content, 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 8abcfbdc4c6..f3ff3cf1b47 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 @@ -112,7 +112,7 @@ public class CssLinkResourceTransformerTests { ResourceTransformerChain chain = new DefaultResourceTransformerChain(mockChain, transformers); Resource resource = getResource("external.css"); - 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\")}"; @@ -122,7 +122,7 @@ public class CssLinkResourceTransformerTests { assertEquals(expected, result); List locations = Collections.singletonList(resource); - Mockito.verify(mockChain, Mockito.never()).resolveUrlPath("http://example.org/fonts/css", locations); + Mockito.verify(mockChain, Mockito.never()).resolveUrlPath("https://example.org/fonts/css", locations); Mockito.verify(mockChain, Mockito.never()).resolveUrlPath("file:///home/spring/image.png", locations); Mockito.verify(mockChain, Mockito.never()).resolveUrlPath("//example.org/style.css", locations); } 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 eb0f85e4bfd..6fa6f7294ae 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 @@ -129,8 +129,8 @@ public class ResourceUrlEncodingFilterTests { MockHttpServletRequest request = new MockHttpServletRequest("GET", "/foo"); request.setContextPath("/"); - testEncodeUrl(request, "/resources/bar.css?foo=bar&url=http://example.org", - "/resources/bar-11e16cf79faee7ac698c805cf28248d2.css?foo=bar&url=http://example.org"); + testEncodeUrl(request, "/resources/bar.css?foo=bar&url=https://example.org", + "/resources/bar-11e16cf79faee7ac698c805cf28248d2.css?foo=bar&url=https://example.org"); } @Test // SPR-13847 @@ -151,8 +151,8 @@ public class ResourceUrlEncodingFilterTests { "/resources/bar-11e16cf79faee7ac698c805cf28248d2.css#something"); testEncodeUrl(request, - "/resources/bar.css?foo=bar&url=http://example.org#something", - "/resources/bar-11e16cf79faee7ac698c805cf28248d2.css?foo=bar&url=http://example.org#something"); + "/resources/bar.css?foo=bar&url=https://example.org#something", + "/resources/bar-11e16cf79faee7ac698c805cf28248d2.css?foo=bar&url=https://example.org#something"); } private void testEncodeUrl(MockHttpServletRequest request, String url, String expected) 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 5c6301ca8f3..9ae9a984c90 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 @@ -80,9 +80,9 @@ public class ResourceUrlProviderTests { request.setContextPath("/"); request.setRequestURI("/"); - String url = "/resources/foo.css?foo=bar&url=http://example.org"; + String url = "/resources/foo.css?foo=bar&url=https://example.org"; String resolvedUrl = this.urlProvider.getForRequestUrl(request, url); - assertEquals("/resources/foo.css?foo=bar&url=http://example.org", resolvedUrl); + assertEquals("/resources/foo.css?foo=bar&url=https://example.org", resolvedUrl); url = "/resources/foo.css#hash"; resolvedUrl = this.urlProvider.getForRequestUrl(request, url); diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/UrlTagTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/UrlTagTests.java index 10ef9854b75..f0f051fd762 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/UrlTagTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/UrlTagTests.java @@ -450,11 +450,11 @@ public class UrlTagTests extends AbstractTagTests { @Test public void createUrlRemoteServer() throws JspException { - tag.setValue("http://www.springframework.org/"); + tag.setValue("https://www.springframework.org/"); tag.doStartTag(); String uri = tag.createUrl(); - assertEquals("http://www.springframework.org/", uri); + assertEquals("https://www.springframework.org/", uri); } @Test diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/InputTagTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/InputTagTests.java index 48647dc6c4b..135e1a4d7c1 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/InputTagTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/InputTagTests.java @@ -323,7 +323,7 @@ public class InputTagTests extends AbstractFormTagTests { } /** - * See SPR-3127 (http://opensource.atlassian.com/projects/spring/browse/SPR-3127) + * See SPR-3127 (https://opensource.atlassian.com/projects/spring/browse/SPR-3127) */ @Test public void readOnlyAttributeRenderingWhenReadonlyIsTrue() throws Exception { diff --git a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java index 1d64f8cfc4d..7bd7b6fcb78 100644 --- a/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java +++ b/spring-webmvc/src/test/java/org/springframework/web/servlet/tags/form/SelectTagTests.java @@ -677,7 +677,7 @@ public class SelectTagTests extends AbstractFormTagTests { /** * Tests new support added as a result of SPR-2660. *

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

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

    + * RFC 7230 section 3.2

    * *

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

    diff --git a/spring-websocket/src/main/java/org/springframework/web/socket/server/support/OriginHandshakeInterceptor.java b/spring-websocket/src/main/java/org/springframework/web/socket/server/support/OriginHandshakeInterceptor.java index 625ec851afb..f10ec90f8d1 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 1aa6e9d20e9..967a73afd8d 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 477fb0fe26b..f9eac2bd416 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 608ddc92447..e6baf97d77f 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 6b5b04349a3..bb003bdebed 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 @@ -306,7 +306,7 @@ public abstract class AbstractSockJsService implements SockJsService, CorsConfig * are disabled. As a consequence, IE 6 to 9 are not supported when origins * are restricted. *

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

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

    diff --git a/src/docs/asciidoc/core/core-aop.adoc b/src/docs/asciidoc/core/core-aop.adoc index 0498ff3b046..21a3ae8cf6c 100644 --- a/src/docs/asciidoc/core/core-aop.adoc +++ b/src/docs/asciidoc/core/core-aop.adoc @@ -2168,8 +2168,8 @@ preceding 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"> @@ -3286,7 +3286,7 @@ standard AspectJ. The following example shows the `aop.xml` file: [source,xml,indent=0] [subs="verbatim,quotes"] ---- - + @@ -3321,9 +3321,9 @@ the following example: 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"> @@ -3611,9 +3611,9 @@ element. Again, the following example specifies a `ReflectiveLoadTimeWeaver`: 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"> diff --git a/src/docs/asciidoc/core/core-appendix.adoc b/src/docs/asciidoc/core/core-appendix.adoc index 41b76d0e23c..6c190e212ab 100644 --- a/src/docs/asciidoc/core/core-appendix.adoc +++ b/src/docs/asciidoc/core/core-appendix.adoc @@ -30,8 +30,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"__> @@ -569,8 +569,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"__> @@ -596,8 +596,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"__> @@ -692,7 +692,7 @@ as it stands). + http://www.springframework.org/schema/beans https://www.springframework.org/schema/beans/spring-beans.xsd"> <1> @@ -1028,7 +1028,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"> @@ -1069,7 +1069,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"> @@ -1311,7 +1311,7 @@ want to add an additional attribute to the existing bean definition element. By way of another example, suppose that you define a bean definition for a service object that (unknown to it) accesses a clustered -http://jcp.org/en/jsr/detail?id=107[JCache], and you want to ensure that the +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. The following listing shows such a definition: diff --git a/src/docs/asciidoc/core/core-beans.adoc b/src/docs/asciidoc/core/core-beans.adoc index 45409d11612..5e77405f706 100644 --- a/src/docs/asciidoc/core/core-beans.adoc +++ b/src/docs/asciidoc/core/core-beans.adoc @@ -143,7 +143,7 @@ The following example shows the basic structure of XML-based configuration metad + https://www.springframework.org/schema/beans/spring-beans.xsd"> <1> <2> @@ -204,7 +204,7 @@ The following example shows the service layer objects `(services.xml)` configura + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -230,7 +230,7 @@ The following example shows the data access objects `daos.xml` file: + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -1024,7 +1024,7 @@ example shows: 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 cannot or do not want to compile your code with the debug flag, you can use the -http://download.oracle.com/javase/8/docs/api/java/beans/ConstructorProperties.html[@ConstructorProperties] +https://download.oracle.com/javase/8/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: @@ -1398,7 +1398,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"> @@ -1883,7 +1883,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"> @@ -1935,7 +1935,7 @@ The following example uses the `c:` namespace to do the same thing as the from 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"> @@ -2941,9 +2941,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"> @@ -3203,9 +3203,9 @@ of the scope. You can also do the `Scope` registration declaratively, by using t 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"> @@ -4103,9 +4103,9 @@ The following `beans` element uses the `InstantiationTracingBeanPostProcessor`: 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"> @@ -4500,9 +4500,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"> @@ -4931,9 +4931,9 @@ The corresponding bean definitions follow: 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"> @@ -5014,9 +5014,9 @@ The following example shows corresponding bean definitions. 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"> @@ -5161,9 +5161,9 @@ demonstrates both approaches: 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"> @@ -5318,9 +5318,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"> @@ -5795,9 +5795,9 @@ The following alternative uses 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"> @@ -5816,7 +5816,7 @@ entries in the classpath. When you build JARs with Ant, make sure that you do no activate the files-only switch of the JAR task. Also, classpath directories may not be exposed based on security policies in some environments -- for example, 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, make sure that your component classes are exported in your `module-info` @@ -6365,7 +6365,7 @@ annotations. To use them, you need to have the relevant jars in your classpath. ===== If you use 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: ==== @@ -6597,7 +6597,7 @@ features are not available, as the following table shows: 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 @@ -9097,9 +9097,9 @@ notify appropriate parties. NOTE: 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 4c9fcc1dbe1..b7bcbc506f4 100644 --- a/src/docs/asciidoc/core/core-resources.adoc +++ b/src/docs/asciidoc/core/core-resources.adoc @@ -289,7 +289,7 @@ prefixes: [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"); ---- ==== @@ -309,7 +309,7 @@ The following table summarizes the strategy for converting `String` objects to ` | Loaded as a `URL` from the filesystem. See also <>. | http: -| `http://myserver/logo.png` +| `https://myserver/logo.png` | Loaded as a `URL`. | (none) @@ -644,7 +644,7 @@ entries in the classpath. When you build JARs with Ant, do not activate the file switch of the JAR task. Also, classpath directories may not get exposed based on security policies in some environments -- for example, stand-alone applications on JDK 1.7.0_45 and higher (which requires 'Trusted-Library' to be set up 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 7795ea2fac0..3e7d0d87e83 100644 --- a/src/docs/asciidoc/core/core-validation.adoc +++ b/src/docs/asciidoc/core/core-validation.adoc @@ -207,7 +207,7 @@ A JavaBean is a class with a default no-argument constructor and that follows a naming convention where (for example) a property named `bingoMadness` would have a setter method `setBingoMadness(..)` and a getter method `getBingoMadness()`. For more information about JavaBeans and the specification, see -http://docs.oracle.com/javase/8/docs/api/java/beans/package-summary.html[javabeans]. +https://docs.oracle.com/javase/8/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 javadoc, the @@ -467,7 +467,7 @@ com Note that you can also use the standard `BeanInfo` JavaBeans mechanism here as well (described to some extent -http://docs.oracle.com/javase/tutorial/javabeans/advanced/customization.html[ +https://docs.oracle.com/javase/tutorial/javabeans/advanced/customization.html[ here]). The following example use the `BeanInfo` mechanism to explicitly register one or more `PropertyEditor` instances with the properties of an associated class: @@ -1444,7 +1444,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> @@ -1537,7 +1537,7 @@ following example shows: When a JSR-303 Validator validates an instance of this class, these constraints are enforced. -For general information on JSR-303 and JSR-349, see the http://beanvalidation.org/[Bean +For general information on JSR-303 and 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 set up 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 bf8e61d851f..76065bf2b1c 100644 --- a/src/docs/asciidoc/data-access-appendix.adoc +++ b/src/docs/asciidoc/data-access-appendix.adoc @@ -42,9 +42,9 @@ are available to you: xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" <1> xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd <2> - 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/tx https://www.springframework.org/schema/tx/spring-tx.xsd <2> + http://www.springframework.org/schema/aop https://www.springframework.org/schema/aop/spring-aop.xsd"> @@ -83,8 +83,8 @@ the correct schema so that the elements in the `jdbc` namespace are available to xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jdbc="http://www.springframework.org/schema/jdbc" <1> xsi:schemaLocation=" - http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd"> <2> + 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"> <2> diff --git a/src/docs/asciidoc/data-access.adoc b/src/docs/asciidoc/data-access.adoc index 25ce53fa595..309f8b20a6c 100644 --- a/src/docs/asciidoc/data-access.adoc +++ b/src/docs/asciidoc/data-access.adoc @@ -133,7 +133,7 @@ Typically, you need an application server's JTA capability only if your applicat 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. Stand-alone 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). @@ -294,9 +294,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"> @@ -621,11 +621,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"> @@ -897,11 +897,11 @@ the default transactional configuration, you could 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"> @@ -947,11 +947,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"> @@ -1118,11 +1118,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"> @@ -1587,11 +1587,11 @@ transactional aspects applied to it in the desired order: 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"> @@ -1644,11 +1644,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"> @@ -1743,7 +1743,7 @@ 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. @@ -2075,12 +2075,12 @@ treats them as errors. For more information about the Spring Framework's transaction support, see: -* 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. @@ -2626,9 +2626,9 @@ The following example shows the corresponding XML configuration: 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"> @@ -2686,9 +2686,9 @@ The following example shows the corresponding XML configuration: 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"> @@ -2795,7 +2795,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. @@ -4763,7 +4763,7 @@ it with values from the Java `ARRAY`, as the following example shows: 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. @@ -5204,7 +5204,7 @@ The benefits of using the Spring Framework to create your ORM DAOs include: TIP: 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. @@ -5314,7 +5314,7 @@ exception hierarchies. [[orm-hibernate]] === Hibernate -We start with a coverage of http://www.hibernate.org/[Hibernate 5] in a Spring +We 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 OR mappers. This section covers many issues in detail and shows different variations of DAO implementations and transaction demarcation. Most of these patterns can be @@ -5545,11 +5545,11 @@ processing at runtime. The following example shows how to do so: 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"> @@ -5795,7 +5795,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 manner similar to the integration with Hibernate while being aware of the underlying implementation in order to provide additional features. @@ -5967,7 +5967,7 @@ The `LoadTimeWeaver` interface is a Spring-provided class that lets JPA `ClassTransformer` instances be plugged in a specific manner, depending on 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] is typically 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. @@ -6670,8 +6670,8 @@ preamble of the XML configuration file. The following example shows how to do so xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:oxm="http://www.springframework.org/schema/oxm" <1> xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd - http://www.springframework.org/schema/oxm http://www.springframework.org/schema/oxm/spring-oxm.xsd"> <2> + https://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/oxm https://www.springframework.org/schema/oxm/spring-oxm.xsd"> <2> ---- <1> Reference the `oxm` schema. <2> Specify the `oxm` schema location. @@ -6794,7 +6794,7 @@ not require any further configuration, though you can use a mapping file to have control over the behavior of Castor. For more information on Castor, see 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. @@ -6821,7 +6821,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. You can get more control by using a Castor mapping -file. For more information, see http://castor-data-binding.github.io/castor/reference-guides/1.3.3/html-single/index.html#xml.mapping[Castor +file. For more information, see https://castor-data-binding.github.io/castor/reference-guides/1.3.3/html-single/index.html#xml.mapping[Castor XML Mapping]. You can set the mapping by using the `mappingLocation` resource property, indicated in the following example @@ -6969,7 +6969,7 @@ The following table describes the available attributes: 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, see the http://x-stream.github.io/[XStream +For more information on XStream, see the https://x-stream.github.io/[XStream web site]. The Spring integration classes reside in the `org.springframework.oxm.xstream` package. diff --git a/src/docs/asciidoc/images/overview-ejb.graffle b/src/docs/asciidoc/images/overview-ejb.graffle index 3813752a400..8675627fe34 100644 --- a/src/docs/asciidoc/images/overview-ejb.graffle +++ b/src/docs/asciidoc/images/overview-ejb.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/images/overview-full.graffle b/src/docs/asciidoc/images/overview-full.graffle index 8226bf08ef6..d512dc69172 100644 --- a/src/docs/asciidoc/images/overview-full.graffle +++ b/src/docs/asciidoc/images/overview-full.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/images/overview-remoting.graffle b/src/docs/asciidoc/images/overview-remoting.graffle index 11e10c2475c..86878d94472 100644 --- a/src/docs/asciidoc/images/overview-remoting.graffle +++ b/src/docs/asciidoc/images/overview-remoting.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/images/overview-thirdparty-web.graffle b/src/docs/asciidoc/images/overview-thirdparty-web.graffle index 6a1d4278a87..d78f722e0cb 100644 --- a/src/docs/asciidoc/images/overview-thirdparty-web.graffle +++ b/src/docs/asciidoc/images/overview-thirdparty-web.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/images/oxm-exceptions.graffle b/src/docs/asciidoc/images/oxm-exceptions.graffle index 7e1c19f1dff..4b72bf45285 100644 --- a/src/docs/asciidoc/images/oxm-exceptions.graffle +++ b/src/docs/asciidoc/images/oxm-exceptions.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/images/spring-overview.graffle b/src/docs/asciidoc/images/spring-overview.graffle index 3dcbe41270b..1e0774681a7 100644 --- a/src/docs/asciidoc/images/spring-overview.graffle +++ b/src/docs/asciidoc/images/spring-overview.graffle @@ -1,5 +1,5 @@ - + ActiveLayerIndex diff --git a/src/docs/asciidoc/integration-appendix.adoc b/src/docs/asciidoc/integration-appendix.adoc index 067df57d7af..8fb1c12a2f2 100644 --- a/src/docs/asciidoc/integration-appendix.adoc +++ b/src/docs/asciidoc/integration-appendix.adoc @@ -28,8 +28,8 @@ correct schema so that the elements 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"__> @@ -329,8 +329,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"__> @@ -367,8 +367,8 @@ the correct schema so that the elements in the `cache` namespace are available t + 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 b3946ece979..e61727a7903 100644 --- a/src/docs/asciidoc/integration.adoc +++ b/src/docs/asciidoc/integration.adoc @@ -205,7 +205,7 @@ transparently creates an invoker and remotely enables the account service throug === Using Hessian to Remotely Call Services through HTTP Hessian offers a binary HTTP-based remoting protocol. It is developed by Caucho, -and you can find more information about Hessian itself at http://www.caucho.com[]. +and you can find more information about Hessian itself at https://www.caucho.com/[]. [[remoting-caucho-protocols-hessian]] @@ -362,7 +362,7 @@ this application context. NOTE: The preceding example does not 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/. @@ -379,7 +379,7 @@ you choose a remoting technology). Under the hood, Spring uses either the standard facilities provided by the JDK or Apache `HttpComponents` to perform HTTP calls. If you need more advanced and easier-to-use functionality, use the latter. See -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] @@ -394,7 +394,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. See https://blogs.oracle.com/java-platform-group/entry/incoming_filter_serialization_data_a -and http://openjdk.java.net/jeps/290. +and https://openjdk.java.net/jeps/290. ==== @@ -776,7 +776,7 @@ on both the client and the server: + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -805,7 +805,7 @@ On the server, you need to expose the service object that uses the + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -859,7 +859,7 @@ The following example defines beans that you can inject into other client-side o + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -1076,7 +1076,7 @@ The following example uses a `String` variable argument: [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"); ---- ==== @@ -1089,7 +1089,7 @@ The following example uses 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); ---- ==== @@ -1099,9 +1099,9 @@ Keep in mind URI templates are automatically encoded, as the following example s [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" ---- ==== @@ -1120,7 +1120,7 @@ You can use the `exchange()` methods to specify request headers, as the followin [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) @@ -1147,7 +1147,7 @@ On a POST, an input object is serialized to the request body, as the following e ==== ---- -URI location = template.postForLocation("http://example.com/people", person); +URI location = template.postForLocation("https://example.com/people", person); ---- ==== @@ -1161,7 +1161,7 @@ On a GET, the body of the response is deserialized to an output `Object`, as the ==== ---- -Person person = restTemplate.getForObject("http://example.com/people/{id}", Person.class, 42); +Person person = restTemplate.getForObject("https://example.com/people/{id}", Person.class, 42); ---- ==== @@ -1256,7 +1256,7 @@ and writes the media type supported by the Java I/O API. [[rest-template-jsonview]] ===== Jackson JSON Views -You can specify a http://wiki.fasterxml.com/JacksonJsonViews[Jackson JSON View] +You can specify a https://wiki.fasterxml.com/JacksonJsonViews[Jackson JSON View] to serialize only a subset of the object properties, as the following example shows: ==== @@ -1267,7 +1267,7 @@ to serialize only a subset of the object properties, as the following example sh 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); ---- @@ -1307,7 +1307,7 @@ Once the `MultiValueMap` is ready, you can pass it to the `RestTemplate`, as the [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); ---- ==== @@ -2817,8 +2817,8 @@ namespace elements, you need to reference the JMS schema, as the following examp xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:jms="http://www.springframework.org/schema/jms" <1> 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"> @@ -4597,11 +4597,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]. (MX4J is an open-source implementation of various JMX specs.) @@ -6165,7 +6165,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 to support 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/[]). You can set up both of those schedulers by 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 lets you invoke a method of @@ -6917,7 +6917,7 @@ The following example shows these other options: Quartz uses `Trigger`, `Job`, and `JobDetail` objects to realize scheduling of all kinds of jobs. For the basic concepts behind Quartz, see -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 using Quartz within Spring-based applications. @@ -7147,7 +7147,7 @@ caching occurs. It also improves performance but does so by letting the same dat read multiple times in a fast fashion. You can find a further explanation of the differences between a buffer and a cache -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 cache abstraction applies caching to Java methods, thus reducing the number @@ -7176,7 +7176,7 @@ materialized by the `org.springframework.cache.Cache` and `org.springframework.cache.CacheManager` interfaces. Spring provides <> of that abstraction: -JDK `java.util.concurrent.ConcurrentMap` based caches, http://ehcache.org/[Ehcache 2.x], +JDK `java.util.concurrent.ConcurrentMap` based caches, https://www.ehcache.org/[Ehcache 2.x], Gemfire cache, https://github.com/ben-manes/caffeine/wiki[Caffeine], and JSR-107 compliant caches (such as Ehcache 3.x). See <> for more information on plugging in other cache stores and providers. @@ -7706,8 +7706,8 @@ Alternatively, for XML configuration you can use the `cache:annotation-driven` e 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"> @@ -8263,7 +8263,7 @@ Clearly, there are plenty of caching products out there that you can use as a ba store. To plug them in, you need to provide a `CacheManager` and a `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[adapters] that map the caching abstraction +https://en.wikipedia.org/wiki/Adapter_pattern[adapters] that map the caching abstraction framework on top of the storage API, as the `ehcache` classes do. Most `CacheManager` classes can use the classes in the `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 db3092a7cbd..3d3acfc55d5 100644 --- a/src/docs/asciidoc/languages/dynamic-languages.adoc +++ b/src/docs/asciidoc/languages/dynamic-languages.adoc @@ -114,8 +114,8 @@ Groovy-defined `Messenger` implementation into an instance of the + 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"> @@ -862,8 +862,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"> @@ -904,8 +904,8 @@ the correct schema so that the tags in the `lang` 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/lang https://www.springframework.org/schema/lang/spring-lang.xsd"__> @@ -924,4 +924,4 @@ in this chapter: * The http://www.groovy-lang.org/[Groovy] homepage * The http://www.beanshell.org/[BeanShell] homepage -* The http://jruby.org/[JRuby] homepage +* The https://www.jruby.org[JRuby] homepage diff --git a/src/docs/asciidoc/languages/kotlin.adoc b/src/docs/asciidoc/languages/kotlin.adoc index 9f90109e2f9..9c1e8d67369 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 were a native Kotlin frame The easiest way to learn about Spring and 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] +Feel free to join the #spring channel of https://slack.kotlinlang.org/[Kotlin Slack] or ask a question with `spring` and `kotlin` as tags on https://stackoverflow.com/questions/tagged/spring+kotlin[Stackoverflow] if you need support. @@ -90,7 +90,7 @@ which cleanly deals with `null` values at compile time rather than bumping into `NullPointerException` at runtime. This makes applications safer through nullability declarations and expressing "`value or no value`" semantics without paying the cost of wrappers, such as `Optional`. (Kotlin allows using functional constructs with nullable values. See 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 let you express null-safety in its type-system, the Spring Framework provides <> @@ -316,7 +316,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 by using script engines. It 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 @@ -393,7 +393,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 can write your Kotlin beans without any additional `open` keyword, as in Java. @@ -767,8 +767,8 @@ MVC and its annotation-based programming model is the recommended choice. We recommend the following resources for people learning how to build applications with Kotlin and the Spring Framework: -* 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 3c6b42237ea..fc5af099955 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 e6418604a0e..9ba4befebaf 100644 --- a/src/docs/asciidoc/testing-webtestclient.adoc +++ b/src/docs/asciidoc/testing-webtestclient.adoc @@ -250,7 +250,7 @@ Alternatively, if you want to assert there is no response content, you can use c 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, as follows: +https://jsonassert.skyscreamer.org[JSONAssert] to verify JSON content, as follows: ==== [source,java,intent=0] diff --git a/src/docs/asciidoc/testing.adoc b/src/docs/asciidoc/testing.adoc index e29f23f1e0c..be9e0f32d95 100644 --- a/src/docs/asciidoc/testing.adoc +++ b/src/docs/asciidoc/testing.adoc @@ -90,7 +90,7 @@ and 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]) +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: Since Spring Framework 5.0, the mock objects in `org.springframework.mock.web` are @@ -3092,7 +3092,7 @@ suite. This can be achieved by executing all tests as a group within an IDE. Sim 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 cannot cache application contexts between test classes, and the build process runs significantly more slowly as a result. @@ -3403,7 +3403,7 @@ shows this configuration: + https://www.springframework.org/schema/beans/spring-beans.xsd"> @@ -4404,7 +4404,7 @@ 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 +* 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, and so on. See the documentation for `@EnabledIf` and `@DisabledIf` in <> for further details and examples. @@ -4484,7 +4484,7 @@ See the documentation for `@SpringJUnitConfig` and `@SpringJUnitWebConfig` in ===== Dependency Injection with `SpringExtension` `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 lets Spring provide dependency injection for test constructors, test methods, and test lifecycle callback methods. @@ -5212,7 +5212,7 @@ when using HTML-based views. This integration lets you: * Easily test HTML pages by using tools such as http://htmlunit.sourceforge.net/[HtmlUnit], - http://seleniumhq.org/projects/webdriver/[WebDriver], and + https://www.seleniumhq.org[WebDriver], and http://www.gebish.org/manual/current/#spock-junit-testng[Geb] without the need to deploy to a Servlet container. * Test JavaScript within pages. @@ -5449,7 +5449,7 @@ to create a message, as the following example shows: ==== 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] @@ -5556,7 +5556,7 @@ TIP: For additional information on creating a `MockMvc` instance, see In the previous sections, we have seen how to use MockMvc in conjunction with the raw HtmlUnit APIs. In this section, we use 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? @@ -5565,7 +5565,7 @@ We can already use HtmlUnit and MockMvc, so why would we want to use WebDriver? Selenium WebDriver provides a very elegant API that lets us easily organize our code. To better show how it works, we explore an example in this section. -NOTE: Despite being a part of http://docs.seleniumhq.org/[Selenium], WebDriver does not +NOTE: Despite being a part of https://docs.seleniumhq.org/[Selenium], WebDriver does not require a Selenium Server to run your tests. Suppose we need to ensure that a message is created properly. The tests involve finding @@ -5770,7 +5770,7 @@ annotation to look up our submit button with a `css` selector (*input[type=submi ==== Finally, we can verify that a new message was created successfully. The following -assertions use the http://joel-costigliola.github.io/assertj/[AssertJ] assertion library: +assertions use the https://joel-costigliola.github.io/assertj/[AssertJ] assertion library: ==== [source,java,indent=0] @@ -6147,21 +6147,21 @@ include::testing-webtestclient.adoc[leveloffset=+2] == Further Resources See 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, and other features. -* 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, and other features. -* 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) that is targeted at database-driven projects and, among other things, puts your diff --git a/src/docs/asciidoc/tocbot-3.0.2/tocbot.js b/src/docs/asciidoc/tocbot-3.0.2/tocbot.js index 31e9e36f21f..21b8d636ac3 100644 --- a/src/docs/asciidoc/tocbot-3.0.2/tocbot.js +++ b/src/docs/asciidoc/tocbot-3.0.2/tocbot.js @@ -86,7 +86,7 @@ eval("var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\tr \**********************************/ /***/ (function(module, exports, __webpack_require__) { -eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * Zenscroll 4.0.0\n * https://github.com/zengabor/zenscroll/\n *\n * Copyright 2015–2017 Gabor Lenard\n *\n * This is free and unencumbered software released into the public domain.\n * \n * Anyone is free to copy, modify, publish, use, compile, sell, or\n * distribute this software, either in source code form or as a compiled\n * binary, for any purpose, commercial or non-commercial, and by any\n * means.\n * \n * In jurisdictions that recognize copyright laws, the author or authors\n * of this software dedicate any and all copyright interest in the\n * software to the public domain. We make this dedication for the benefit\n * of the public at large and to the detriment of our heirs and\n * successors. We intend this dedication to be an overt act of\n * relinquishment in perpetuity of all present and future rights to this\n * software under copyright law.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n * \n * For more information, please refer to \n * \n */\n\n/*jshint devel:true, asi:true */\n\n/*global define, module */\n\n\n(function (root, factory) {\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory()),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory()\n\t} else {\n\t\t(function install() {\n\t\t\t// To make sure Zenscroll can be referenced from the header, before `body` is available\n\t\t\tif (document && document.body) {\n\t\t\t\troot.zenscroll = factory()\n\t\t\t} else {\n\t\t\t\t// retry 9ms later\n\t\t\t\tsetTimeout(install, 9)\n\t\t\t}\n\t\t})()\n\t}\n}(this, function () {\n\t\"use strict\"\n\n\n\t// Detect if the browser already supports native smooth scrolling (e.g., Firefox 36+ and Chrome 49+) and it is enabled:\n\tvar isNativeSmoothScrollEnabledOn = function (elem) {\n\t\treturn (\"getComputedStyle\" in window) &&\n\t\t\twindow.getComputedStyle(elem)[\"scroll-behavior\"] === \"smooth\"\n\t}\n\n\n\t// Exit if it’s not a browser environment:\n\tif (typeof window === \"undefined\" || !(\"document\" in window)) {\n\t\treturn {}\n\t}\n\n\n\tvar makeScroller = function (container, defaultDuration, edgeOffset) {\n\n\t\t// Use defaults if not provided\n\t\tdefaultDuration = defaultDuration || 999 //ms\n\t\tif (!edgeOffset && edgeOffset !== 0) {\n\t\t\t// When scrolling, this amount of distance is kept from the edges of the container:\n\t\t\tedgeOffset = 9 //px\n\t\t}\n\n\t\t// Handling the life-cycle of the scroller\n\t\tvar scrollTimeoutId\n\t\tvar setScrollTimeoutId = function (newValue) {\n\t\t\tscrollTimeoutId = newValue\n\t\t}\n\n\t\t/**\n\t\t * Stop the current smooth scroll operation immediately\n\t\t */\n\t\tvar stopScroll = function () {\n\t\t\tclearTimeout(scrollTimeoutId)\n\t\t\tsetScrollTimeoutId(0)\n\t\t}\n\n\t\tvar getTopWithEdgeOffset = function (elem) {\n\t\t\treturn Math.max(0, container.getTopOf(elem) - edgeOffset)\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to a specific vertical position in the document.\n\t\t *\n\t\t * @param {targetY} The vertical position within the document.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * If not provided the default duration is used.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToY = function (targetY, duration, onDone) {\n\t\t\tstopScroll()\n\t\t\tif (duration === 0 || (duration && duration < 0) || isNativeSmoothScrollEnabledOn(container.body)) {\n\t\t\t\tcontainer.toY(targetY)\n\t\t\t\tif (onDone) {\n\t\t\t\t\tonDone()\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar startY = container.getY()\n\t\t\t\tvar distance = Math.max(0, targetY) - startY\n\t\t\t\tvar startTime = new Date().getTime()\n\t\t\t\tduration = duration || Math.min(Math.abs(distance), defaultDuration);\n\t\t\t\t(function loopScroll() {\n\t\t\t\t\tsetScrollTimeoutId(setTimeout(function () {\n\t\t\t\t\t\t// Calculate percentage:\n\t\t\t\t\t\tvar p = Math.min(1, (new Date().getTime() - startTime) / duration)\n\t\t\t\t\t\t// Calculate the absolute vertical position:\n\t\t\t\t\t\tvar y = Math.max(0, Math.floor(startY + distance*(p < 0.5 ? 2*p*p : p*(4 - p*2)-1)))\n\t\t\t\t\t\tcontainer.toY(y)\n\t\t\t\t\t\tif (p < 1 && (container.getHeight() + y) < container.body.scrollHeight) {\n\t\t\t\t\t\t\tloopScroll()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout(stopScroll, 99) // with cooldown time\n\t\t\t\t\t\t\tif (onDone) {\n\t\t\t\t\t\t\t\tonDone()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9))\n\t\t\t\t})()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to the top of a specific element.\n\t\t *\n\t\t * @param {elem} The element to scroll to.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToElem = function (elem, duration, onDone) {\n\t\t\tscrollToY(getTopWithEdgeOffset(elem), duration, onDone)\n\t\t}\n\n\t\t/**\n\t\t * Scrolls an element into view if necessary.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollIntoView = function (elem, duration, onDone) {\n\t\t\tvar elemHeight = elem.getBoundingClientRect().height\n\t\t\tvar elemBottom = container.getTopOf(elem) + elemHeight\n\t\t\tvar containerHeight = container.getHeight()\n\t\t\tvar y = container.getY()\n\t\t\tvar containerBottom = y + containerHeight\n\t\t\tif (getTopWithEdgeOffset(elem) < y || (elemHeight + edgeOffset) > containerHeight) {\n\t\t\t\t// Element is clipped at top or is higher than screen.\n\t\t\t\tscrollToElem(elem, duration, onDone)\n\t\t\t} else if ((elemBottom + edgeOffset) > containerBottom) {\n\t\t\t\t// Element is clipped at the bottom.\n\t\t\t\tscrollToY(elemBottom - containerHeight + edgeOffset, duration, onDone)\n\t\t\t} else if (onDone) {\n\t\t\t\tonDone()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to the center of an element.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {offset} Optionally the offset of the top of the element from the center of the screen.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToCenterOf = function (elem, duration, offset, onDone) {\n\t\t\tscrollToY(Math.max(0, container.getTopOf(elem) - container.getHeight()/2 + (offset || elem.getBoundingClientRect().height/2)), duration, onDone)\n\t\t}\n\n\t\t/**\n\t\t * Changes default settings for this scroller.\n\t\t *\n\t\t * @param {newDefaultDuration} Optionally a new value for default duration, used for each scroll method by default.\n\t\t * Ignored if null or undefined.\n\t\t * @param {newEdgeOffset} Optionally a new value for the edge offset, used by each scroll method by default. Ignored if null or undefined.\n\t\t * @returns An object with the current values.\n\t\t */\n\t\tvar setup = function (newDefaultDuration, newEdgeOffset) {\n\t\t\tif (newDefaultDuration === 0 || newDefaultDuration) {\n\t\t\t\tdefaultDuration = newDefaultDuration\n\t\t\t}\n\t\t\tif (newEdgeOffset === 0 || newEdgeOffset) {\n\t\t\t\tedgeOffset = newEdgeOffset\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tdefaultDuration: defaultDuration,\n\t\t\t\tedgeOffset: edgeOffset\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsetup: setup,\n\t\t\tto: scrollToElem,\n\t\t\ttoY: scrollToY,\n\t\t\tintoView: scrollIntoView,\n\t\t\tcenter: scrollToCenterOf,\n\t\t\tstop: stopScroll,\n\t\t\tmoving: function () { return !!scrollTimeoutId },\n\t\t\tgetY: container.getY,\n\t\t\tgetTopOf: container.getTopOf\n\t\t}\n\n\t}\n\n\n\tvar docElem = document.documentElement\n\tvar getDocY = function () { return window.scrollY || docElem.scrollTop }\n\n\t// Create a scroller for the document:\n\tvar zenscroll = makeScroller({\n\t\tbody: document.scrollingElement || document.body,\n\t\ttoY: function (y) { window.scrollTo(0, y) },\n\t\tgetY: getDocY,\n\t\tgetHeight: function () { return window.innerHeight || docElem.clientHeight },\n\t\tgetTopOf: function (elem) { return elem.getBoundingClientRect().top + getDocY() - docElem.offsetTop }\n\t})\n\n\n\t/**\n\t * Creates a scroller from the provided container element (e.g., a DIV)\n\t *\n\t * @param {scrollContainer} The vertical position within the document.\n\t * @param {defaultDuration} Optionally a value for default duration, used for each scroll method by default.\n\t * Ignored if 0 or null or undefined.\n\t * @param {edgeOffset} Optionally a value for the edge offset, used by each scroll method by default. \n\t * Ignored if null or undefined.\n\t * @returns A scroller object, similar to `zenscroll` but controlling the provided element.\n\t */\n\tzenscroll.createScroller = function (scrollContainer, defaultDuration, edgeOffset) {\n\t\treturn makeScroller({\n\t\t\tbody: scrollContainer,\n\t\t\ttoY: function (y) { scrollContainer.scrollTop = y },\n\t\t\tgetY: function () { return scrollContainer.scrollTop },\n\t\t\tgetHeight: function () { return Math.min(scrollContainer.clientHeight, window.innerHeight || docElem.clientHeight) },\n\t\t\tgetTopOf: function (elem) { return elem.offsetTop }\n\t\t}, defaultDuration, edgeOffset)\n\t}\n\n\n\t// Automatic link-smoothing on achors\n\t// Exclude IE8- or when native is enabled or Zenscroll auto- is disabled\n\tif (\"addEventListener\" in window && !window.noZensmooth && !isNativeSmoothScrollEnabledOn(document.body)) {\n\n\n\t\tvar isScrollRestorationSupported = \"scrollRestoration\" in history\n\n\t\t// On first load & refresh make sure the browser restores the position first\n\t\tif (isScrollRestorationSupported) {\n\t\t\thistory.scrollRestoration = \"auto\"\n\t\t}\n\n\t\twindow.addEventListener(\"load\", function () {\n\n\t\t\tif (isScrollRestorationSupported) {\n\t\t\t\t// Set it to manual\n\t\t\t\tsetTimeout(function () { history.scrollRestoration = \"manual\" }, 9)\n\t\t\t\twindow.addEventListener(\"popstate\", function (event) {\n\t\t\t\t\tif (event.state && \"zenscrollY\" in event.state) {\n\t\t\t\t\t\tzenscroll.toY(event.state.zenscrollY)\n\t\t\t\t\t}\n\t\t\t\t}, false)\n\t\t\t}\n\n\t\t\t// Add edge offset on first load if necessary\n\t\t\t// This may not work on IE (or older computer?) as it requires more timeout, around 100 ms\n\t\t\tif (window.location.hash) {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t// Adjustment is only needed if there is an edge offset:\n\t\t\t\t\tvar edgeOffset = zenscroll.setup().edgeOffset\n\t\t\t\t\tif (edgeOffset) {\n\t\t\t\t\t\tvar targetElem = document.getElementById(window.location.href.split(\"#\")[1])\n\t\t\t\t\t\tif (targetElem) {\n\t\t\t\t\t\t\tvar targetY = Math.max(0, zenscroll.getTopOf(targetElem) - edgeOffset)\n\t\t\t\t\t\t\tvar diff = zenscroll.getY() - targetY\n\t\t\t\t\t\t\t// Only do the adjustment if the browser is very close to the element:\n\t\t\t\t\t\t\tif (0 <= diff && diff < 9 ) {\n\t\t\t\t\t\t\t\twindow.scrollTo(0, targetY)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 9)\n\t\t\t}\n\n\t\t}, false)\n\n\t\t// Handling clicks on anchors\n\t\tvar RE_noZensmooth = new RegExp(\"(^|\\\\s)noZensmooth(\\\\s|$)\")\n\t\twindow.addEventListener(\"click\", function (event) {\n\t\t\tvar anchor = event.target\n\t\t\twhile (anchor && anchor.tagName !== \"A\") {\n\t\t\t\tanchor = anchor.parentNode\n\t\t\t}\n\t\t\t// Let the browser handle the click if it wasn't with the primary button, or with some modifier keys:\n\t\t\tif (!anchor || event.which !== 1 || event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Save the current scrolling position so it can be used for scroll restoration:\n\t\t\tif (isScrollRestorationSupported) {\n\t\t\t\ttry {\n\t\t\t\t\thistory.replaceState({ zenscrollY: zenscroll.getY() }, \"\")\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Avoid the Chrome Security exception on file protocol, e.g., file://index.html\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Find the referenced ID:\n\t\t\tvar href = anchor.getAttribute(\"href\") || \"\"\n\t\t\tif (href.indexOf(\"#\") === 0 && !RE_noZensmooth.test(anchor.className)) {\n\t\t\t\tvar targetY = 0\n\t\t\t\tvar targetElem = document.getElementById(href.substring(1))\n\t\t\t\tif (href !== \"#\") {\n\t\t\t\t\tif (!targetElem) {\n\t\t\t\t\t\t// Let the browser handle the click if the target ID is not found.\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\ttargetY = zenscroll.getTopOf(targetElem)\n\t\t\t\t}\n\t\t\t\tevent.preventDefault()\n\t\t\t\t// By default trigger the browser's `hashchange` event...\n\t\t\t\tvar onDone = function () { window.location = href }\n\t\t\t\t// ...unless there is an edge offset specified\n\t\t\t\tvar edgeOffset = zenscroll.setup().edgeOffset\n\t\t\t\tif (edgeOffset) {\n\t\t\t\t\ttargetY = Math.max(0, targetY - edgeOffset)\n\t\t\t\t\tonDone = function () { history.pushState(null, \"\", href) }\n\t\t\t\t}\n\t\t\t\tzenscroll.toY(targetY, null, onDone)\n\t\t\t}\n\t\t}, false)\n\n\t}\n\n\n\treturn zenscroll\n\n\n}));\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL34vemVuc2Nyb2xsL3plbnNjcm9sbC5qcz8yNzMyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogWmVuc2Nyb2xsIDQuMC4wXG4gKiBodHRwczovL2dpdGh1Yi5jb20vemVuZ2Fib3IvemVuc2Nyb2xsL1xuICpcbiAqIENvcHlyaWdodCAyMDE14oCTMjAxNyBHYWJvciBMZW5hcmRcbiAqXG4gKiBUaGlzIGlzIGZyZWUgYW5kIHVuZW5jdW1iZXJlZCBzb2Z0d2FyZSByZWxlYXNlZCBpbnRvIHRoZSBwdWJsaWMgZG9tYWluLlxuICogXG4gKiBBbnlvbmUgaXMgZnJlZSB0byBjb3B5LCBtb2RpZnksIHB1Ymxpc2gsIHVzZSwgY29tcGlsZSwgc2VsbCwgb3JcbiAqIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSwgZWl0aGVyIGluIHNvdXJjZSBjb2RlIGZvcm0gb3IgYXMgYSBjb21waWxlZFxuICogYmluYXJ5LCBmb3IgYW55IHB1cnBvc2UsIGNvbW1lcmNpYWwgb3Igbm9uLWNvbW1lcmNpYWwsIGFuZCBieSBhbnlcbiAqIG1lYW5zLlxuICogXG4gKiBJbiBqdXJpc2RpY3Rpb25zIHRoYXQgcmVjb2duaXplIGNvcHlyaWdodCBsYXdzLCB0aGUgYXV0aG9yIG9yIGF1dGhvcnNcbiAqIG9mIHRoaXMgc29mdHdhcmUgZGVkaWNhdGUgYW55IGFuZCBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZVxuICogc29mdHdhcmUgdG8gdGhlIHB1YmxpYyBkb21haW4uIFdlIG1ha2UgdGhpcyBkZWRpY2F0aW9uIGZvciB0aGUgYmVuZWZpdFxuICogb2YgdGhlIHB1YmxpYyBhdCBsYXJnZSBhbmQgdG8gdGhlIGRldHJpbWVudCBvZiBvdXIgaGVpcnMgYW5kXG4gKiBzdWNjZXNzb3JzLiBXZSBpbnRlbmQgdGhpcyBkZWRpY2F0aW9uIHRvIGJlIGFuIG92ZXJ0IGFjdCBvZlxuICogcmVsaW5xdWlzaG1lbnQgaW4gcGVycGV0dWl0eSBvZiBhbGwgcHJlc2VudCBhbmQgZnV0dXJlIHJpZ2h0cyB0byB0aGlzXG4gKiBzb2Z0d2FyZSB1bmRlciBjb3B5cmlnaHQgbGF3LlxuICogXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuXG4gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUlxuICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsXG4gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1JcbiAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqIFxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byA8aHR0cDovL3VubGljZW5zZS5vcmc+XG4gKiBcbiAqL1xuXG4vKmpzaGludCBkZXZlbDp0cnVlLCBhc2k6dHJ1ZSAqL1xuXG4vKmdsb2JhbCBkZWZpbmUsIG1vZHVsZSAqL1xuXG5cbihmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkoKSlcblx0fSBlbHNlIGlmICh0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KClcblx0fSBlbHNlIHtcblx0XHQoZnVuY3Rpb24gaW5zdGFsbCgpIHtcblx0XHRcdC8vIFRvIG1ha2Ugc3VyZSBaZW5zY3JvbGwgY2FuIGJlIHJlZmVyZW5jZWQgZnJvbSB0aGUgaGVhZGVyLCBiZWZvcmUgYGJvZHlgIGlzIGF2YWlsYWJsZVxuXHRcdFx0aWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LmJvZHkpIHtcblx0XHRcdFx0cm9vdC56ZW5zY3JvbGwgPSBmYWN0b3J5KClcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIHJldHJ5IDltcyBsYXRlclxuXHRcdFx0XHRzZXRUaW1lb3V0KGluc3RhbGwsIDkpXG5cdFx0XHR9XG5cdFx0fSkoKVxuXHR9XG59KHRoaXMsIGZ1bmN0aW9uICgpIHtcblx0XCJ1c2Ugc3RyaWN0XCJcblxuXG5cdC8vIERldGVjdCBpZiB0aGUgYnJvd3NlciBhbHJlYWR5IHN1cHBvcnRzIG5hdGl2ZSBzbW9vdGggc2Nyb2xsaW5nIChlLmcuLCBGaXJlZm94IDM2KyBhbmQgQ2hyb21lIDQ5KykgYW5kIGl0IGlzIGVuYWJsZWQ6XG5cdHZhciBpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbiA9IGZ1bmN0aW9uIChlbGVtKSB7XG5cdFx0cmV0dXJuIChcImdldENvbXB1dGVkU3R5bGVcIiBpbiB3aW5kb3cpICYmXG5cdFx0XHR3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKVtcInNjcm9sbC1iZWhhdmlvclwiXSA9PT0gXCJzbW9vdGhcIlxuXHR9XG5cblxuXHQvLyBFeGl0IGlmIGl04oCZcyBub3QgYSBicm93c2VyIGVudmlyb25tZW50OlxuXHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhKFwiZG9jdW1lbnRcIiBpbiB3aW5kb3cpKSB7XG5cdFx0cmV0dXJuIHt9XG5cdH1cblxuXG5cdHZhciBtYWtlU2Nyb2xsZXIgPSBmdW5jdGlvbiAoY29udGFpbmVyLCBkZWZhdWx0RHVyYXRpb24sIGVkZ2VPZmZzZXQpIHtcblxuXHRcdC8vIFVzZSBkZWZhdWx0cyBpZiBub3QgcHJvdmlkZWRcblx0XHRkZWZhdWx0RHVyYXRpb24gPSBkZWZhdWx0RHVyYXRpb24gfHwgOTk5IC8vbXNcblx0XHRpZiAoIWVkZ2VPZmZzZXQgJiYgZWRnZU9mZnNldCAhPT0gMCkge1xuXHRcdFx0Ly8gV2hlbiBzY3JvbGxpbmcsIHRoaXMgYW1vdW50IG9mIGRpc3RhbmNlIGlzIGtlcHQgZnJvbSB0aGUgZWRnZXMgb2YgdGhlIGNvbnRhaW5lcjpcblx0XHRcdGVkZ2VPZmZzZXQgPSA5IC8vcHhcblx0XHR9XG5cblx0XHQvLyBIYW5kbGluZyB0aGUgbGlmZS1jeWNsZSBvZiB0aGUgc2Nyb2xsZXJcblx0XHR2YXIgc2Nyb2xsVGltZW91dElkXG5cdFx0dmFyIHNldFNjcm9sbFRpbWVvdXRJZCA9IGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuXHRcdFx0c2Nyb2xsVGltZW91dElkID0gbmV3VmFsdWVcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTdG9wIHRoZSBjdXJyZW50IHNtb290aCBzY3JvbGwgb3BlcmF0aW9uIGltbWVkaWF0ZWx5XG5cdFx0ICovXG5cdFx0dmFyIHN0b3BTY3JvbGwgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dElkKVxuXHRcdFx0c2V0U2Nyb2xsVGltZW91dElkKDApXG5cdFx0fVxuXG5cdFx0dmFyIGdldFRvcFdpdGhFZGdlT2Zmc2V0ID0gZnVuY3Rpb24gKGVsZW0pIHtcblx0XHRcdHJldHVybiBNYXRoLm1heCgwLCBjb250YWluZXIuZ2V0VG9wT2YoZWxlbSkgLSBlZGdlT2Zmc2V0KVxuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIFNjcm9sbHMgdG8gYSBzcGVjaWZpYyB2ZXJ0aWNhbCBwb3NpdGlvbiBpbiB0aGUgZG9jdW1lbnQuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge3RhcmdldFl9IFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiB3aXRoaW4gdGhlIGRvY3VtZW50LlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqICAgICAgICBJZiBub3QgcHJvdmlkZWQgdGhlIGRlZmF1bHQgZHVyYXRpb24gaXMgdXNlZC5cblx0XHQgKiBAcGFyYW0ge29uRG9uZX0gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBvbmNlIHRoZSBzY3JvbGwgZmluaXNoZWQuXG5cdFx0ICovXG5cdFx0dmFyIHNjcm9sbFRvWSA9IGZ1bmN0aW9uICh0YXJnZXRZLCBkdXJhdGlvbiwgb25Eb25lKSB7XG5cdFx0XHRzdG9wU2Nyb2xsKClcblx0XHRcdGlmIChkdXJhdGlvbiA9PT0gMCB8fCAoZHVyYXRpb24gJiYgZHVyYXRpb24gPCAwKSB8fCBpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbihjb250YWluZXIuYm9keSkpIHtcblx0XHRcdFx0Y29udGFpbmVyLnRvWSh0YXJnZXRZKVxuXHRcdFx0XHRpZiAob25Eb25lKSB7XG5cdFx0XHRcdFx0b25Eb25lKClcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFyIHN0YXJ0WSA9IGNvbnRhaW5lci5nZXRZKClcblx0XHRcdFx0dmFyIGRpc3RhbmNlID0gTWF0aC5tYXgoMCwgdGFyZ2V0WSkgLSBzdGFydFlcblx0XHRcdFx0dmFyIHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXG5cdFx0XHRcdGR1cmF0aW9uID0gZHVyYXRpb24gfHwgTWF0aC5taW4oTWF0aC5hYnMoZGlzdGFuY2UpLCBkZWZhdWx0RHVyYXRpb24pO1xuXHRcdFx0XHQoZnVuY3Rpb24gbG9vcFNjcm9sbCgpIHtcblx0XHRcdFx0XHRzZXRTY3JvbGxUaW1lb3V0SWQoc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHQvLyBDYWxjdWxhdGUgcGVyY2VudGFnZTpcblx0XHRcdFx0XHRcdHZhciBwID0gTWF0aC5taW4oMSwgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnRUaW1lKSAvIGR1cmF0aW9uKVxuXHRcdFx0XHRcdFx0Ly8gQ2FsY3VsYXRlIHRoZSBhYnNvbHV0ZSB2ZXJ0aWNhbCBwb3NpdGlvbjpcblx0XHRcdFx0XHRcdHZhciB5ID0gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcihzdGFydFkgKyBkaXN0YW5jZSoocCA8IDAuNSA/IDIqcCpwIDogcCooNCAtIHAqMiktMSkpKVxuXHRcdFx0XHRcdFx0Y29udGFpbmVyLnRvWSh5KVxuXHRcdFx0XHRcdFx0aWYgKHAgPCAxICYmIChjb250YWluZXIuZ2V0SGVpZ2h0KCkgKyB5KSA8IGNvbnRhaW5lci5ib2R5LnNjcm9sbEhlaWdodCkge1xuXHRcdFx0XHRcdFx0XHRsb29wU2Nyb2xsKClcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoc3RvcFNjcm9sbCwgOTkpIC8vIHdpdGggY29vbGRvd24gdGltZVxuXHRcdFx0XHRcdFx0XHRpZiAob25Eb25lKSB7XG5cdFx0XHRcdFx0XHRcdFx0b25Eb25lKClcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0sIDkpKVxuXHRcdFx0XHR9KSgpXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0ICogU2Nyb2xscyB0byB0aGUgdG9wIG9mIGEgc3BlY2lmaWMgZWxlbWVudC5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7ZWxlbX0gVGhlIGVsZW1lbnQgdG8gc2Nyb2xsIHRvLlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqIEBwYXJhbSB7b25Eb25lfSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIG9uY2UgdGhlIHNjcm9sbCBmaW5pc2hlZC5cblx0XHQgKi9cblx0XHR2YXIgc2Nyb2xsVG9FbGVtID0gZnVuY3Rpb24gKGVsZW0sIGR1cmF0aW9uLCBvbkRvbmUpIHtcblx0XHRcdHNjcm9sbFRvWShnZXRUb3BXaXRoRWRnZU9mZnNldChlbGVtKSwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTY3JvbGxzIGFuIGVsZW1lbnQgaW50byB2aWV3IGlmIG5lY2Vzc2FyeS5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7ZWxlbX0gVGhlIGVsZW1lbnQuXG5cdFx0ICogQHBhcmFtIHtkdXJhdGlvbn0gT3B0aW9uYWxseSB0aGUgZHVyYXRpb24gb2YgdGhlIHNjcm9sbCBvcGVyYXRpb24uXG5cdFx0ICogQHBhcmFtIHtvbkRvbmV9IEFuIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgb25jZSB0aGUgc2Nyb2xsIGZpbmlzaGVkLlxuXHRcdCAqL1xuXHRcdHZhciBzY3JvbGxJbnRvVmlldyA9IGZ1bmN0aW9uIChlbGVtLCBkdXJhdGlvbiwgb25Eb25lKSB7XG5cdFx0XHR2YXIgZWxlbUhlaWdodCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0XG5cdFx0XHR2YXIgZWxlbUJvdHRvbSA9IGNvbnRhaW5lci5nZXRUb3BPZihlbGVtKSArIGVsZW1IZWlnaHRcblx0XHRcdHZhciBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXIuZ2V0SGVpZ2h0KClcblx0XHRcdHZhciB5ID0gY29udGFpbmVyLmdldFkoKVxuXHRcdFx0dmFyIGNvbnRhaW5lckJvdHRvbSA9IHkgKyBjb250YWluZXJIZWlnaHRcblx0XHRcdGlmIChnZXRUb3BXaXRoRWRnZU9mZnNldChlbGVtKSA8IHkgfHwgKGVsZW1IZWlnaHQgKyBlZGdlT2Zmc2V0KSA+IGNvbnRhaW5lckhlaWdodCkge1xuXHRcdFx0XHQvLyBFbGVtZW50IGlzIGNsaXBwZWQgYXQgdG9wIG9yIGlzIGhpZ2hlciB0aGFuIHNjcmVlbi5cblx0XHRcdFx0c2Nyb2xsVG9FbGVtKGVsZW0sIGR1cmF0aW9uLCBvbkRvbmUpXG5cdFx0XHR9IGVsc2UgaWYgKChlbGVtQm90dG9tICsgZWRnZU9mZnNldCkgPiBjb250YWluZXJCb3R0b20pIHtcblx0XHRcdFx0Ly8gRWxlbWVudCBpcyBjbGlwcGVkIGF0IHRoZSBib3R0b20uXG5cdFx0XHRcdHNjcm9sbFRvWShlbGVtQm90dG9tIC0gY29udGFpbmVySGVpZ2h0ICsgZWRnZU9mZnNldCwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHRcdH0gZWxzZSBpZiAob25Eb25lKSB7XG5cdFx0XHRcdG9uRG9uZSgpXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0ICogU2Nyb2xscyB0byB0aGUgY2VudGVyIG9mIGFuIGVsZW1lbnQuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge2VsZW19IFRoZSBlbGVtZW50LlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqIEBwYXJhbSB7b2Zmc2V0fSBPcHRpb25hbGx5IHRoZSBvZmZzZXQgb2YgdGhlIHRvcCBvZiB0aGUgZWxlbWVudCBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIHNjcmVlbi5cblx0XHQgKiBAcGFyYW0ge29uRG9uZX0gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBvbmNlIHRoZSBzY3JvbGwgZmluaXNoZWQuXG5cdFx0ICovXG5cdFx0dmFyIHNjcm9sbFRvQ2VudGVyT2YgPSBmdW5jdGlvbiAoZWxlbSwgZHVyYXRpb24sIG9mZnNldCwgb25Eb25lKSB7XG5cdFx0XHRzY3JvbGxUb1koTWF0aC5tYXgoMCwgY29udGFpbmVyLmdldFRvcE9mKGVsZW0pIC0gY29udGFpbmVyLmdldEhlaWdodCgpLzIgKyAob2Zmc2V0IHx8IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LzIpKSwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBDaGFuZ2VzIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHRoaXMgc2Nyb2xsZXIuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge25ld0RlZmF1bHREdXJhdGlvbn0gT3B0aW9uYWxseSBhIG5ldyB2YWx1ZSBmb3IgZGVmYXVsdCBkdXJhdGlvbiwgdXNlZCBmb3IgZWFjaCBzY3JvbGwgbWV0aG9kIGJ5IGRlZmF1bHQuXG5cdFx0ICogICAgICAgIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdFx0ICogQHBhcmFtIHtuZXdFZGdlT2Zmc2V0fSBPcHRpb25hbGx5IGEgbmV3IHZhbHVlIGZvciB0aGUgZWRnZSBvZmZzZXQsIHVzZWQgYnkgZWFjaCBzY3JvbGwgbWV0aG9kIGJ5IGRlZmF1bHQuIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdFx0ICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggdGhlIGN1cnJlbnQgdmFsdWVzLlxuXHRcdCAqL1xuXHRcdHZhciBzZXR1cCA9IGZ1bmN0aW9uIChuZXdEZWZhdWx0RHVyYXRpb24sIG5ld0VkZ2VPZmZzZXQpIHtcblx0XHRcdGlmIChuZXdEZWZhdWx0RHVyYXRpb24gPT09IDAgfHwgbmV3RGVmYXVsdER1cmF0aW9uKSB7XG5cdFx0XHRcdGRlZmF1bHREdXJhdGlvbiA9IG5ld0RlZmF1bHREdXJhdGlvblxuXHRcdFx0fVxuXHRcdFx0aWYgKG5ld0VkZ2VPZmZzZXQgPT09IDAgfHwgbmV3RWRnZU9mZnNldCkge1xuXHRcdFx0XHRlZGdlT2Zmc2V0ID0gbmV3RWRnZU9mZnNldFxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0ZGVmYXVsdER1cmF0aW9uOiBkZWZhdWx0RHVyYXRpb24sXG5cdFx0XHRcdGVkZ2VPZmZzZXQ6IGVkZ2VPZmZzZXRcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0c2V0dXA6IHNldHVwLFxuXHRcdFx0dG86IHNjcm9sbFRvRWxlbSxcblx0XHRcdHRvWTogc2Nyb2xsVG9ZLFxuXHRcdFx0aW50b1ZpZXc6IHNjcm9sbEludG9WaWV3LFxuXHRcdFx0Y2VudGVyOiBzY3JvbGxUb0NlbnRlck9mLFxuXHRcdFx0c3RvcDogc3RvcFNjcm9sbCxcblx0XHRcdG1vdmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gISFzY3JvbGxUaW1lb3V0SWQgfSxcblx0XHRcdGdldFk6IGNvbnRhaW5lci5nZXRZLFxuXHRcdFx0Z2V0VG9wT2Y6IGNvbnRhaW5lci5nZXRUb3BPZlxuXHRcdH1cblxuXHR9XG5cblxuXHR2YXIgZG9jRWxlbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuXHR2YXIgZ2V0RG9jWSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHdpbmRvdy5zY3JvbGxZIHx8IGRvY0VsZW0uc2Nyb2xsVG9wIH1cblxuXHQvLyBDcmVhdGUgYSBzY3JvbGxlciBmb3IgdGhlIGRvY3VtZW50OlxuXHR2YXIgemVuc2Nyb2xsID0gbWFrZVNjcm9sbGVyKHtcblx0XHRib2R5OiBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50IHx8IGRvY3VtZW50LmJvZHksXG5cdFx0dG9ZOiBmdW5jdGlvbiAoeSkgeyB3aW5kb3cuc2Nyb2xsVG8oMCwgeSkgfSxcblx0XHRnZXRZOiBnZXREb2NZLFxuXHRcdGdldEhlaWdodDogZnVuY3Rpb24gKCkgeyByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY0VsZW0uY2xpZW50SGVpZ2h0IH0sXG5cdFx0Z2V0VG9wT2Y6IGZ1bmN0aW9uIChlbGVtKSB7IHJldHVybiBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIGdldERvY1koKSAtIGRvY0VsZW0ub2Zmc2V0VG9wIH1cblx0fSlcblxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgc2Nyb2xsZXIgZnJvbSB0aGUgcHJvdmlkZWQgY29udGFpbmVyIGVsZW1lbnQgKGUuZy4sIGEgRElWKVxuXHQgKlxuXHQgKiBAcGFyYW0ge3Njcm9sbENvbnRhaW5lcn0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIHdpdGhpbiB0aGUgZG9jdW1lbnQuXG5cdCAqIEBwYXJhbSB7ZGVmYXVsdER1cmF0aW9ufSBPcHRpb25hbGx5IGEgdmFsdWUgZm9yIGRlZmF1bHQgZHVyYXRpb24sIHVzZWQgZm9yIGVhY2ggc2Nyb2xsIG1ldGhvZCBieSBkZWZhdWx0LlxuXHQgKiAgICAgICAgSWdub3JlZCBpZiAwIG9yIG51bGwgb3IgdW5kZWZpbmVkLlxuXHQgKiBAcGFyYW0ge2VkZ2VPZmZzZXR9IE9wdGlvbmFsbHkgYSB2YWx1ZSBmb3IgdGhlIGVkZ2Ugb2Zmc2V0LCB1c2VkIGJ5IGVhY2ggc2Nyb2xsIG1ldGhvZCBieSBkZWZhdWx0LiBcblx0ICogICAgICAgIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdCAqIEByZXR1cm5zIEEgc2Nyb2xsZXIgb2JqZWN0LCBzaW1pbGFyIHRvIGB6ZW5zY3JvbGxgIGJ1dCBjb250cm9sbGluZyB0aGUgcHJvdmlkZWQgZWxlbWVudC5cblx0ICovXG5cdHplbnNjcm9sbC5jcmVhdGVTY3JvbGxlciA9IGZ1bmN0aW9uIChzY3JvbGxDb250YWluZXIsIGRlZmF1bHREdXJhdGlvbiwgZWRnZU9mZnNldCkge1xuXHRcdHJldHVybiBtYWtlU2Nyb2xsZXIoe1xuXHRcdFx0Ym9keTogc2Nyb2xsQ29udGFpbmVyLFxuXHRcdFx0dG9ZOiBmdW5jdGlvbiAoeSkgeyBzY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wID0geSB9LFxuXHRcdFx0Z2V0WTogZnVuY3Rpb24gKCkgeyByZXR1cm4gc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcCB9LFxuXHRcdFx0Z2V0SGVpZ2h0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBNYXRoLm1pbihzY3JvbGxDb250YWluZXIuY2xpZW50SGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jRWxlbS5jbGllbnRIZWlnaHQpIH0sXG5cdFx0XHRnZXRUb3BPZjogZnVuY3Rpb24gKGVsZW0pIHsgcmV0dXJuIGVsZW0ub2Zmc2V0VG9wIH1cblx0XHR9LCBkZWZhdWx0RHVyYXRpb24sIGVkZ2VPZmZzZXQpXG5cdH1cblxuXG5cdC8vIEF1dG9tYXRpYyBsaW5rLXNtb290aGluZyBvbiBhY2hvcnNcblx0Ly8gRXhjbHVkZSBJRTgtIG9yIHdoZW4gbmF0aXZlIGlzIGVuYWJsZWQgb3IgWmVuc2Nyb2xsIGF1dG8tIGlzIGRpc2FibGVkXG5cdGlmIChcImFkZEV2ZW50TGlzdGVuZXJcIiBpbiB3aW5kb3cgJiYgIXdpbmRvdy5ub1plbnNtb290aCAmJiAhaXNOYXRpdmVTbW9vdGhTY3JvbGxFbmFibGVkT24oZG9jdW1lbnQuYm9keSkpIHtcblxuXG5cdFx0dmFyIGlzU2Nyb2xsUmVzdG9yYXRpb25TdXBwb3J0ZWQgPSBcInNjcm9sbFJlc3RvcmF0aW9uXCIgaW4gaGlzdG9yeVxuXG5cdFx0Ly8gT24gZmlyc3QgbG9hZCAmIHJlZnJlc2ggbWFrZSBzdXJlIHRoZSBicm93c2VyIHJlc3RvcmVzIHRoZSBwb3NpdGlvbiBmaXJzdFxuXHRcdGlmIChpc1Njcm9sbFJlc3RvcmF0aW9uU3VwcG9ydGVkKSB7XG5cdFx0XHRoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gXCJhdXRvXCJcblx0XHR9XG5cblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRpZiAoaXNTY3JvbGxSZXN0b3JhdGlvblN1cHBvcnRlZCkge1xuXHRcdFx0XHQvLyBTZXQgaXQgdG8gbWFudWFsXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gXCJtYW51YWxcIiB9LCA5KVxuXHRcdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvcHN0YXRlXCIsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0XHRcdGlmIChldmVudC5zdGF0ZSAmJiBcInplbnNjcm9sbFlcIiBpbiBldmVudC5zdGF0ZSkge1xuXHRcdFx0XHRcdFx0emVuc2Nyb2xsLnRvWShldmVudC5zdGF0ZS56ZW5zY3JvbGxZKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSwgZmFsc2UpXG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCBlZGdlIG9mZnNldCBvbiBmaXJzdCBsb2FkIGlmIG5lY2Vzc2FyeVxuXHRcdFx0Ly8gVGhpcyBtYXkgbm90IHdvcmsgb24gSUUgKG9yIG9sZGVyIGNvbXB1dGVyPykgYXMgaXQgcmVxdWlyZXMgbW9yZSB0aW1lb3V0LCBhcm91bmQgMTAwIG1zXG5cdFx0XHRpZiAod2luZG93LmxvY2F0aW9uLmhhc2gpIHtcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0Ly8gQWRqdXN0bWVudCBpcyBvbmx5IG5lZWRlZCBpZiB0aGVyZSBpcyBhbiBlZGdlIG9mZnNldDpcblx0XHRcdFx0XHR2YXIgZWRnZU9mZnNldCA9IHplbnNjcm9sbC5zZXR1cCgpLmVkZ2VPZmZzZXRcblx0XHRcdFx0XHRpZiAoZWRnZU9mZnNldCkge1xuXHRcdFx0XHRcdFx0dmFyIHRhcmdldEVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdChcIiNcIilbMV0pXG5cdFx0XHRcdFx0XHRpZiAodGFyZ2V0RWxlbSkge1xuXHRcdFx0XHRcdFx0XHR2YXIgdGFyZ2V0WSA9IE1hdGgubWF4KDAsIHplbnNjcm9sbC5nZXRUb3BPZih0YXJnZXRFbGVtKSAtIGVkZ2VPZmZzZXQpXG5cdFx0XHRcdFx0XHRcdHZhciBkaWZmID0gemVuc2Nyb2xsLmdldFkoKSAtIHRhcmdldFlcblx0XHRcdFx0XHRcdFx0Ly8gT25seSBkbyB0aGUgYWRqdXN0bWVudCBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IGNsb3NlIHRvIHRoZSBlbGVtZW50OlxuXHRcdFx0XHRcdFx0XHRpZiAoMCA8PSBkaWZmICYmIGRpZmYgPCA5ICkge1xuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5zY3JvbGxUbygwLCB0YXJnZXRZKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LCA5KVxuXHRcdFx0fVxuXG5cdFx0fSwgZmFsc2UpXG5cblx0XHQvLyBIYW5kbGluZyBjbGlja3Mgb24gYW5jaG9yc1xuXHRcdHZhciBSRV9ub1plbnNtb290aCA9IG5ldyBSZWdFeHAoXCIoXnxcXFxccylub1plbnNtb290aChcXFxcc3wkKVwiKVxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHR2YXIgYW5jaG9yID0gZXZlbnQudGFyZ2V0XG5cdFx0XHR3aGlsZSAoYW5jaG9yICYmIGFuY2hvci50YWdOYW1lICE9PSBcIkFcIikge1xuXHRcdFx0XHRhbmNob3IgPSBhbmNob3IucGFyZW50Tm9kZVxuXHRcdFx0fVxuXHRcdFx0Ly8gTGV0IHRoZSBicm93c2VyIGhhbmRsZSB0aGUgY2xpY2sgaWYgaXQgd2Fzbid0IHdpdGggdGhlIHByaW1hcnkgYnV0dG9uLCBvciB3aXRoIHNvbWUgbW9kaWZpZXIga2V5czpcblx0XHRcdGlmICghYW5jaG9yIHx8IGV2ZW50LndoaWNoICE9PSAxIHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkpIHtcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHQvLyBTYXZlIHRoZSBjdXJyZW50IHNjcm9sbGluZyBwb3NpdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCBmb3Igc2Nyb2xsIHJlc3RvcmF0aW9uOlxuXHRcdFx0aWYgKGlzU2Nyb2xsUmVzdG9yYXRpb25TdXBwb3J0ZWQpIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRoaXN0b3J5LnJlcGxhY2VTdGF0ZSh7IHplbnNjcm9sbFk6IHplbnNjcm9sbC5nZXRZKCkgfSwgXCJcIilcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdC8vIEF2b2lkIHRoZSBDaHJvbWUgU2VjdXJpdHkgZXhjZXB0aW9uIG9uIGZpbGUgcHJvdG9jb2wsIGUuZy4sIGZpbGU6Ly9pbmRleC5odG1sXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIEZpbmQgdGhlIHJlZmVyZW5jZWQgSUQ6XG5cdFx0XHR2YXIgaHJlZiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpIHx8IFwiXCJcblx0XHRcdGlmIChocmVmLmluZGV4T2YoXCIjXCIpID09PSAwICYmICFSRV9ub1plbnNtb290aC50ZXN0KGFuY2hvci5jbGFzc05hbWUpKSB7XG5cdFx0XHRcdHZhciB0YXJnZXRZID0gMFxuXHRcdFx0XHR2YXIgdGFyZ2V0RWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhyZWYuc3Vic3RyaW5nKDEpKVxuXHRcdFx0XHRpZiAoaHJlZiAhPT0gXCIjXCIpIHtcblx0XHRcdFx0XHRpZiAoIXRhcmdldEVsZW0pIHtcblx0XHRcdFx0XHRcdC8vIExldCB0aGUgYnJvd3NlciBoYW5kbGUgdGhlIGNsaWNrIGlmIHRoZSB0YXJnZXQgSUQgaXMgbm90IGZvdW5kLlxuXHRcdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRhcmdldFkgPSB6ZW5zY3JvbGwuZ2V0VG9wT2YodGFyZ2V0RWxlbSlcblx0XHRcdFx0fVxuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG5cdFx0XHRcdC8vIEJ5IGRlZmF1bHQgdHJpZ2dlciB0aGUgYnJvd3NlcidzIGBoYXNoY2hhbmdlYCBldmVudC4uLlxuXHRcdFx0XHR2YXIgb25Eb25lID0gZnVuY3Rpb24gKCkgeyB3aW5kb3cubG9jYXRpb24gPSBocmVmIH1cblx0XHRcdFx0Ly8gLi4udW5sZXNzIHRoZXJlIGlzIGFuIGVkZ2Ugb2Zmc2V0IHNwZWNpZmllZFxuXHRcdFx0XHR2YXIgZWRnZU9mZnNldCA9IHplbnNjcm9sbC5zZXR1cCgpLmVkZ2VPZmZzZXRcblx0XHRcdFx0aWYgKGVkZ2VPZmZzZXQpIHtcblx0XHRcdFx0XHR0YXJnZXRZID0gTWF0aC5tYXgoMCwgdGFyZ2V0WSAtIGVkZ2VPZmZzZXQpXG5cdFx0XHRcdFx0b25Eb25lID0gZnVuY3Rpb24gKCkgeyBoaXN0b3J5LnB1c2hTdGF0ZShudWxsLCBcIlwiLCBocmVmKSB9XG5cdFx0XHRcdH1cblx0XHRcdFx0emVuc2Nyb2xsLnRvWSh0YXJnZXRZLCBudWxsLCBvbkRvbmUpXG5cdFx0XHR9XG5cdFx0fSwgZmFsc2UpXG5cblx0fVxuXG5cblx0cmV0dXJuIHplbnNjcm9sbFxuXG5cbn0pKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi96ZW5zY3JvbGwvemVuc2Nyb2xsLmpzXG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9"); +eval("var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * Zenscroll 4.0.0\n * https://github.com/zengabor/zenscroll/\n *\n * Copyright 2015–2017 Gabor Lenard\n *\n * This is free and unencumbered software released into the public domain.\n * \n * Anyone is free to copy, modify, publish, use, compile, sell, or\n * distribute this software, either in source code form or as a compiled\n * binary, for any purpose, commercial or non-commercial, and by any\n * means.\n * \n * In jurisdictions that recognize copyright laws, the author or authors\n * of this software dedicate any and all copyright interest in the\n * software to the public domain. We make this dedication for the benefit\n * of the public at large and to the detriment of our heirs and\n * successors. We intend this dedication to be an overt act of\n * relinquishment in perpetuity of all present and future rights to this\n * software under copyright law.\n * \n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n * IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR\n * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,\n * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR\n * OTHER DEALINGS IN THE SOFTWARE.\n * \n * For more information, please refer to \n * \n */\n\n/*jshint devel:true, asi:true */\n\n/*global define, module */\n\n\n(function (root, factory) {\n\tif (true) {\n\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory()),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n\t} else if (typeof module === \"object\" && module.exports) {\n\t\tmodule.exports = factory()\n\t} else {\n\t\t(function install() {\n\t\t\t// To make sure Zenscroll can be referenced from the header, before `body` is available\n\t\t\tif (document && document.body) {\n\t\t\t\troot.zenscroll = factory()\n\t\t\t} else {\n\t\t\t\t// retry 9ms later\n\t\t\t\tsetTimeout(install, 9)\n\t\t\t}\n\t\t})()\n\t}\n}(this, function () {\n\t\"use strict\"\n\n\n\t// Detect if the browser already supports native smooth scrolling (e.g., Firefox 36+ and Chrome 49+) and it is enabled:\n\tvar isNativeSmoothScrollEnabledOn = function (elem) {\n\t\treturn (\"getComputedStyle\" in window) &&\n\t\t\twindow.getComputedStyle(elem)[\"scroll-behavior\"] === \"smooth\"\n\t}\n\n\n\t// Exit if it’s not a browser environment:\n\tif (typeof window === \"undefined\" || !(\"document\" in window)) {\n\t\treturn {}\n\t}\n\n\n\tvar makeScroller = function (container, defaultDuration, edgeOffset) {\n\n\t\t// Use defaults if not provided\n\t\tdefaultDuration = defaultDuration || 999 //ms\n\t\tif (!edgeOffset && edgeOffset !== 0) {\n\t\t\t// When scrolling, this amount of distance is kept from the edges of the container:\n\t\t\tedgeOffset = 9 //px\n\t\t}\n\n\t\t// Handling the life-cycle of the scroller\n\t\tvar scrollTimeoutId\n\t\tvar setScrollTimeoutId = function (newValue) {\n\t\t\tscrollTimeoutId = newValue\n\t\t}\n\n\t\t/**\n\t\t * Stop the current smooth scroll operation immediately\n\t\t */\n\t\tvar stopScroll = function () {\n\t\t\tclearTimeout(scrollTimeoutId)\n\t\t\tsetScrollTimeoutId(0)\n\t\t}\n\n\t\tvar getTopWithEdgeOffset = function (elem) {\n\t\t\treturn Math.max(0, container.getTopOf(elem) - edgeOffset)\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to a specific vertical position in the document.\n\t\t *\n\t\t * @param {targetY} The vertical position within the document.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * If not provided the default duration is used.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToY = function (targetY, duration, onDone) {\n\t\t\tstopScroll()\n\t\t\tif (duration === 0 || (duration && duration < 0) || isNativeSmoothScrollEnabledOn(container.body)) {\n\t\t\t\tcontainer.toY(targetY)\n\t\t\t\tif (onDone) {\n\t\t\t\t\tonDone()\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tvar startY = container.getY()\n\t\t\t\tvar distance = Math.max(0, targetY) - startY\n\t\t\t\tvar startTime = new Date().getTime()\n\t\t\t\tduration = duration || Math.min(Math.abs(distance), defaultDuration);\n\t\t\t\t(function loopScroll() {\n\t\t\t\t\tsetScrollTimeoutId(setTimeout(function () {\n\t\t\t\t\t\t// Calculate percentage:\n\t\t\t\t\t\tvar p = Math.min(1, (new Date().getTime() - startTime) / duration)\n\t\t\t\t\t\t// Calculate the absolute vertical position:\n\t\t\t\t\t\tvar y = Math.max(0, Math.floor(startY + distance*(p < 0.5 ? 2*p*p : p*(4 - p*2)-1)))\n\t\t\t\t\t\tcontainer.toY(y)\n\t\t\t\t\t\tif (p < 1 && (container.getHeight() + y) < container.body.scrollHeight) {\n\t\t\t\t\t\t\tloopScroll()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tsetTimeout(stopScroll, 99) // with cooldown time\n\t\t\t\t\t\t\tif (onDone) {\n\t\t\t\t\t\t\t\tonDone()\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 9))\n\t\t\t\t})()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to the top of a specific element.\n\t\t *\n\t\t * @param {elem} The element to scroll to.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToElem = function (elem, duration, onDone) {\n\t\t\tscrollToY(getTopWithEdgeOffset(elem), duration, onDone)\n\t\t}\n\n\t\t/**\n\t\t * Scrolls an element into view if necessary.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollIntoView = function (elem, duration, onDone) {\n\t\t\tvar elemHeight = elem.getBoundingClientRect().height\n\t\t\tvar elemBottom = container.getTopOf(elem) + elemHeight\n\t\t\tvar containerHeight = container.getHeight()\n\t\t\tvar y = container.getY()\n\t\t\tvar containerBottom = y + containerHeight\n\t\t\tif (getTopWithEdgeOffset(elem) < y || (elemHeight + edgeOffset) > containerHeight) {\n\t\t\t\t// Element is clipped at top or is higher than screen.\n\t\t\t\tscrollToElem(elem, duration, onDone)\n\t\t\t} else if ((elemBottom + edgeOffset) > containerBottom) {\n\t\t\t\t// Element is clipped at the bottom.\n\t\t\t\tscrollToY(elemBottom - containerHeight + edgeOffset, duration, onDone)\n\t\t\t} else if (onDone) {\n\t\t\t\tonDone()\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Scrolls to the center of an element.\n\t\t *\n\t\t * @param {elem} The element.\n\t\t * @param {duration} Optionally the duration of the scroll operation.\n\t\t * @param {offset} Optionally the offset of the top of the element from the center of the screen.\n\t\t * @param {onDone} An optional callback function to be invoked once the scroll finished.\n\t\t */\n\t\tvar scrollToCenterOf = function (elem, duration, offset, onDone) {\n\t\t\tscrollToY(Math.max(0, container.getTopOf(elem) - container.getHeight()/2 + (offset || elem.getBoundingClientRect().height/2)), duration, onDone)\n\t\t}\n\n\t\t/**\n\t\t * Changes default settings for this scroller.\n\t\t *\n\t\t * @param {newDefaultDuration} Optionally a new value for default duration, used for each scroll method by default.\n\t\t * Ignored if null or undefined.\n\t\t * @param {newEdgeOffset} Optionally a new value for the edge offset, used by each scroll method by default. Ignored if null or undefined.\n\t\t * @returns An object with the current values.\n\t\t */\n\t\tvar setup = function (newDefaultDuration, newEdgeOffset) {\n\t\t\tif (newDefaultDuration === 0 || newDefaultDuration) {\n\t\t\t\tdefaultDuration = newDefaultDuration\n\t\t\t}\n\t\t\tif (newEdgeOffset === 0 || newEdgeOffset) {\n\t\t\t\tedgeOffset = newEdgeOffset\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tdefaultDuration: defaultDuration,\n\t\t\t\tedgeOffset: edgeOffset\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\tsetup: setup,\n\t\t\tto: scrollToElem,\n\t\t\ttoY: scrollToY,\n\t\t\tintoView: scrollIntoView,\n\t\t\tcenter: scrollToCenterOf,\n\t\t\tstop: stopScroll,\n\t\t\tmoving: function () { return !!scrollTimeoutId },\n\t\t\tgetY: container.getY,\n\t\t\tgetTopOf: container.getTopOf\n\t\t}\n\n\t}\n\n\n\tvar docElem = document.documentElement\n\tvar getDocY = function () { return window.scrollY || docElem.scrollTop }\n\n\t// Create a scroller for the document:\n\tvar zenscroll = makeScroller({\n\t\tbody: document.scrollingElement || document.body,\n\t\ttoY: function (y) { window.scrollTo(0, y) },\n\t\tgetY: getDocY,\n\t\tgetHeight: function () { return window.innerHeight || docElem.clientHeight },\n\t\tgetTopOf: function (elem) { return elem.getBoundingClientRect().top + getDocY() - docElem.offsetTop }\n\t})\n\n\n\t/**\n\t * Creates a scroller from the provided container element (e.g., a DIV)\n\t *\n\t * @param {scrollContainer} The vertical position within the document.\n\t * @param {defaultDuration} Optionally a value for default duration, used for each scroll method by default.\n\t * Ignored if 0 or null or undefined.\n\t * @param {edgeOffset} Optionally a value for the edge offset, used by each scroll method by default. \n\t * Ignored if null or undefined.\n\t * @returns A scroller object, similar to `zenscroll` but controlling the provided element.\n\t */\n\tzenscroll.createScroller = function (scrollContainer, defaultDuration, edgeOffset) {\n\t\treturn makeScroller({\n\t\t\tbody: scrollContainer,\n\t\t\ttoY: function (y) { scrollContainer.scrollTop = y },\n\t\t\tgetY: function () { return scrollContainer.scrollTop },\n\t\t\tgetHeight: function () { return Math.min(scrollContainer.clientHeight, window.innerHeight || docElem.clientHeight) },\n\t\t\tgetTopOf: function (elem) { return elem.offsetTop }\n\t\t}, defaultDuration, edgeOffset)\n\t}\n\n\n\t// Automatic link-smoothing on achors\n\t// Exclude IE8- or when native is enabled or Zenscroll auto- is disabled\n\tif (\"addEventListener\" in window && !window.noZensmooth && !isNativeSmoothScrollEnabledOn(document.body)) {\n\n\n\t\tvar isScrollRestorationSupported = \"scrollRestoration\" in history\n\n\t\t// On first load & refresh make sure the browser restores the position first\n\t\tif (isScrollRestorationSupported) {\n\t\t\thistory.scrollRestoration = \"auto\"\n\t\t}\n\n\t\twindow.addEventListener(\"load\", function () {\n\n\t\t\tif (isScrollRestorationSupported) {\n\t\t\t\t// Set it to manual\n\t\t\t\tsetTimeout(function () { history.scrollRestoration = \"manual\" }, 9)\n\t\t\t\twindow.addEventListener(\"popstate\", function (event) {\n\t\t\t\t\tif (event.state && \"zenscrollY\" in event.state) {\n\t\t\t\t\t\tzenscroll.toY(event.state.zenscrollY)\n\t\t\t\t\t}\n\t\t\t\t}, false)\n\t\t\t}\n\n\t\t\t// Add edge offset on first load if necessary\n\t\t\t// This may not work on IE (or older computer?) as it requires more timeout, around 100 ms\n\t\t\tif (window.location.hash) {\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t// Adjustment is only needed if there is an edge offset:\n\t\t\t\t\tvar edgeOffset = zenscroll.setup().edgeOffset\n\t\t\t\t\tif (edgeOffset) {\n\t\t\t\t\t\tvar targetElem = document.getElementById(window.location.href.split(\"#\")[1])\n\t\t\t\t\t\tif (targetElem) {\n\t\t\t\t\t\t\tvar targetY = Math.max(0, zenscroll.getTopOf(targetElem) - edgeOffset)\n\t\t\t\t\t\t\tvar diff = zenscroll.getY() - targetY\n\t\t\t\t\t\t\t// Only do the adjustment if the browser is very close to the element:\n\t\t\t\t\t\t\tif (0 <= diff && diff < 9 ) {\n\t\t\t\t\t\t\t\twindow.scrollTo(0, targetY)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}, 9)\n\t\t\t}\n\n\t\t}, false)\n\n\t\t// Handling clicks on anchors\n\t\tvar RE_noZensmooth = new RegExp(\"(^|\\\\s)noZensmooth(\\\\s|$)\")\n\t\twindow.addEventListener(\"click\", function (event) {\n\t\t\tvar anchor = event.target\n\t\t\twhile (anchor && anchor.tagName !== \"A\") {\n\t\t\t\tanchor = anchor.parentNode\n\t\t\t}\n\t\t\t// Let the browser handle the click if it wasn't with the primary button, or with some modifier keys:\n\t\t\tif (!anchor || event.which !== 1 || event.shiftKey || event.metaKey || event.ctrlKey || event.altKey) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\t// Save the current scrolling position so it can be used for scroll restoration:\n\t\t\tif (isScrollRestorationSupported) {\n\t\t\t\ttry {\n\t\t\t\t\thistory.replaceState({ zenscrollY: zenscroll.getY() }, \"\")\n\t\t\t\t} catch (e) {\n\t\t\t\t\t// Avoid the Chrome Security exception on file protocol, e.g., file://index.html\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Find the referenced ID:\n\t\t\tvar href = anchor.getAttribute(\"href\") || \"\"\n\t\t\tif (href.indexOf(\"#\") === 0 && !RE_noZensmooth.test(anchor.className)) {\n\t\t\t\tvar targetY = 0\n\t\t\t\tvar targetElem = document.getElementById(href.substring(1))\n\t\t\t\tif (href !== \"#\") {\n\t\t\t\t\tif (!targetElem) {\n\t\t\t\t\t\t// Let the browser handle the click if the target ID is not found.\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\ttargetY = zenscroll.getTopOf(targetElem)\n\t\t\t\t}\n\t\t\t\tevent.preventDefault()\n\t\t\t\t// By default trigger the browser's `hashchange` event...\n\t\t\t\tvar onDone = function () { window.location = href }\n\t\t\t\t// ...unless there is an edge offset specified\n\t\t\t\tvar edgeOffset = zenscroll.setup().edgeOffset\n\t\t\t\tif (edgeOffset) {\n\t\t\t\t\ttargetY = Math.max(0, targetY - edgeOffset)\n\t\t\t\t\tonDone = function () { history.pushState(null, \"\", href) }\n\t\t\t\t}\n\t\t\t\tzenscroll.toY(targetY, null, onDone)\n\t\t\t}\n\t\t}, false)\n\n\t}\n\n\n\treturn zenscroll\n\n\n}));\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMS5qcyIsInNvdXJjZXMiOlsid2VicGFjazovLy8uL34vemVuc2Nyb2xsL3plbnNjcm9sbC5qcz8yNzMyIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogWmVuc2Nyb2xsIDQuMC4wXG4gKiBodHRwczovL2dpdGh1Yi5jb20vemVuZ2Fib3IvemVuc2Nyb2xsL1xuICpcbiAqIENvcHlyaWdodCAyMDE14oCTMjAxNyBHYWJvciBMZW5hcmRcbiAqXG4gKiBUaGlzIGlzIGZyZWUgYW5kIHVuZW5jdW1iZXJlZCBzb2Z0d2FyZSByZWxlYXNlZCBpbnRvIHRoZSBwdWJsaWMgZG9tYWluLlxuICogXG4gKiBBbnlvbmUgaXMgZnJlZSB0byBjb3B5LCBtb2RpZnksIHB1Ymxpc2gsIHVzZSwgY29tcGlsZSwgc2VsbCwgb3JcbiAqIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2FyZSwgZWl0aGVyIGluIHNvdXJjZSBjb2RlIGZvcm0gb3IgYXMgYSBjb21waWxlZFxuICogYmluYXJ5LCBmb3IgYW55IHB1cnBvc2UsIGNvbW1lcmNpYWwgb3Igbm9uLWNvbW1lcmNpYWwsIGFuZCBieSBhbnlcbiAqIG1lYW5zLlxuICogXG4gKiBJbiBqdXJpc2RpY3Rpb25zIHRoYXQgcmVjb2duaXplIGNvcHlyaWdodCBsYXdzLCB0aGUgYXV0aG9yIG9yIGF1dGhvcnNcbiAqIG9mIHRoaXMgc29mdHdhcmUgZGVkaWNhdGUgYW55IGFuZCBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZVxuICogc29mdHdhcmUgdG8gdGhlIHB1YmxpYyBkb21haW4uIFdlIG1ha2UgdGhpcyBkZWRpY2F0aW9uIGZvciB0aGUgYmVuZWZpdFxuICogb2YgdGhlIHB1YmxpYyBhdCBsYXJnZSBhbmQgdG8gdGhlIGRldHJpbWVudCBvZiBvdXIgaGVpcnMgYW5kXG4gKiBzdWNjZXNzb3JzLiBXZSBpbnRlbmQgdGhpcyBkZWRpY2F0aW9uIHRvIGJlIGFuIG92ZXJ0IGFjdCBvZlxuICogcmVsaW5xdWlzaG1lbnQgaW4gcGVycGV0dWl0eSBvZiBhbGwgcHJlc2VudCBhbmQgZnV0dXJlIHJpZ2h0cyB0byB0aGlzXG4gKiBzb2Z0d2FyZSB1bmRlciBjb3B5cmlnaHQgbGF3LlxuICogXG4gKiBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELFxuICogRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GXG4gKiBNRVJDSEFOVEFCSUxJVFksIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuXG4gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUlxuICogT1RIRVIgTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsXG4gKiBBUklTSU5HIEZST00sIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1JcbiAqIE9USEVSIERFQUxJTkdTIElOIFRIRSBTT0ZUV0FSRS5cbiAqIFxuICogRm9yIG1vcmUgaW5mb3JtYXRpb24sIHBsZWFzZSByZWZlciB0byA8aHR0cDovL3VubGljZW5zZS5vcmc+XG4gKiBcbiAqL1xuXG4vKmpzaGludCBkZXZlbDp0cnVlLCBhc2k6dHJ1ZSAqL1xuXG4vKmdsb2JhbCBkZWZpbmUsIG1vZHVsZSAqL1xuXG5cbihmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRpZiAodHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQpIHtcblx0XHRkZWZpbmUoW10sIGZhY3RvcnkoKSlcblx0fSBlbHNlIGlmICh0eXBlb2YgbW9kdWxlID09PSBcIm9iamVjdFwiICYmIG1vZHVsZS5leHBvcnRzKSB7XG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBmYWN0b3J5KClcblx0fSBlbHNlIHtcblx0XHQoZnVuY3Rpb24gaW5zdGFsbCgpIHtcblx0XHRcdC8vIFRvIG1ha2Ugc3VyZSBaZW5zY3JvbGwgY2FuIGJlIHJlZmVyZW5jZWQgZnJvbSB0aGUgaGVhZGVyLCBiZWZvcmUgYGJvZHlgIGlzIGF2YWlsYWJsZVxuXHRcdFx0aWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LmJvZHkpIHtcblx0XHRcdFx0cm9vdC56ZW5zY3JvbGwgPSBmYWN0b3J5KClcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdC8vIHJldHJ5IDltcyBsYXRlclxuXHRcdFx0XHRzZXRUaW1lb3V0KGluc3RhbGwsIDkpXG5cdFx0XHR9XG5cdFx0fSkoKVxuXHR9XG59KHRoaXMsIGZ1bmN0aW9uICgpIHtcblx0XCJ1c2Ugc3RyaWN0XCJcblxuXG5cdC8vIERldGVjdCBpZiB0aGUgYnJvd3NlciBhbHJlYWR5IHN1cHBvcnRzIG5hdGl2ZSBzbW9vdGggc2Nyb2xsaW5nIChlLmcuLCBGaXJlZm94IDM2KyBhbmQgQ2hyb21lIDQ5KykgYW5kIGl0IGlzIGVuYWJsZWQ6XG5cdHZhciBpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbiA9IGZ1bmN0aW9uIChlbGVtKSB7XG5cdFx0cmV0dXJuIChcImdldENvbXB1dGVkU3R5bGVcIiBpbiB3aW5kb3cpICYmXG5cdFx0XHR3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShlbGVtKVtcInNjcm9sbC1iZWhhdmlvclwiXSA9PT0gXCJzbW9vdGhcIlxuXHR9XG5cblxuXHQvLyBFeGl0IGlmIGl04oCZcyBub3QgYSBicm93c2VyIGVudmlyb25tZW50OlxuXHRpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIiB8fCAhKFwiZG9jdW1lbnRcIiBpbiB3aW5kb3cpKSB7XG5cdFx0cmV0dXJuIHt9XG5cdH1cblxuXG5cdHZhciBtYWtlU2Nyb2xsZXIgPSBmdW5jdGlvbiAoY29udGFpbmVyLCBkZWZhdWx0RHVyYXRpb24sIGVkZ2VPZmZzZXQpIHtcblxuXHRcdC8vIFVzZSBkZWZhdWx0cyBpZiBub3QgcHJvdmlkZWRcblx0XHRkZWZhdWx0RHVyYXRpb24gPSBkZWZhdWx0RHVyYXRpb24gfHwgOTk5IC8vbXNcblx0XHRpZiAoIWVkZ2VPZmZzZXQgJiYgZWRnZU9mZnNldCAhPT0gMCkge1xuXHRcdFx0Ly8gV2hlbiBzY3JvbGxpbmcsIHRoaXMgYW1vdW50IG9mIGRpc3RhbmNlIGlzIGtlcHQgZnJvbSB0aGUgZWRnZXMgb2YgdGhlIGNvbnRhaW5lcjpcblx0XHRcdGVkZ2VPZmZzZXQgPSA5IC8vcHhcblx0XHR9XG5cblx0XHQvLyBIYW5kbGluZyB0aGUgbGlmZS1jeWNsZSBvZiB0aGUgc2Nyb2xsZXJcblx0XHR2YXIgc2Nyb2xsVGltZW91dElkXG5cdFx0dmFyIHNldFNjcm9sbFRpbWVvdXRJZCA9IGZ1bmN0aW9uIChuZXdWYWx1ZSkge1xuXHRcdFx0c2Nyb2xsVGltZW91dElkID0gbmV3VmFsdWVcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTdG9wIHRoZSBjdXJyZW50IHNtb290aCBzY3JvbGwgb3BlcmF0aW9uIGltbWVkaWF0ZWx5XG5cdFx0ICovXG5cdFx0dmFyIHN0b3BTY3JvbGwgPSBmdW5jdGlvbiAoKSB7XG5cdFx0XHRjbGVhclRpbWVvdXQoc2Nyb2xsVGltZW91dElkKVxuXHRcdFx0c2V0U2Nyb2xsVGltZW91dElkKDApXG5cdFx0fVxuXG5cdFx0dmFyIGdldFRvcFdpdGhFZGdlT2Zmc2V0ID0gZnVuY3Rpb24gKGVsZW0pIHtcblx0XHRcdHJldHVybiBNYXRoLm1heCgwLCBjb250YWluZXIuZ2V0VG9wT2YoZWxlbSkgLSBlZGdlT2Zmc2V0KVxuXHRcdH1cblxuXHRcdC8qKlxuXHRcdCAqIFNjcm9sbHMgdG8gYSBzcGVjaWZpYyB2ZXJ0aWNhbCBwb3NpdGlvbiBpbiB0aGUgZG9jdW1lbnQuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge3RhcmdldFl9IFRoZSB2ZXJ0aWNhbCBwb3NpdGlvbiB3aXRoaW4gdGhlIGRvY3VtZW50LlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqICAgICAgICBJZiBub3QgcHJvdmlkZWQgdGhlIGRlZmF1bHQgZHVyYXRpb24gaXMgdXNlZC5cblx0XHQgKiBAcGFyYW0ge29uRG9uZX0gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBvbmNlIHRoZSBzY3JvbGwgZmluaXNoZWQuXG5cdFx0ICovXG5cdFx0dmFyIHNjcm9sbFRvWSA9IGZ1bmN0aW9uICh0YXJnZXRZLCBkdXJhdGlvbiwgb25Eb25lKSB7XG5cdFx0XHRzdG9wU2Nyb2xsKClcblx0XHRcdGlmIChkdXJhdGlvbiA9PT0gMCB8fCAoZHVyYXRpb24gJiYgZHVyYXRpb24gPCAwKSB8fCBpc05hdGl2ZVNtb290aFNjcm9sbEVuYWJsZWRPbihjb250YWluZXIuYm9keSkpIHtcblx0XHRcdFx0Y29udGFpbmVyLnRvWSh0YXJnZXRZKVxuXHRcdFx0XHRpZiAob25Eb25lKSB7XG5cdFx0XHRcdFx0b25Eb25lKClcblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dmFyIHN0YXJ0WSA9IGNvbnRhaW5lci5nZXRZKClcblx0XHRcdFx0dmFyIGRpc3RhbmNlID0gTWF0aC5tYXgoMCwgdGFyZ2V0WSkgLSBzdGFydFlcblx0XHRcdFx0dmFyIHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpXG5cdFx0XHRcdGR1cmF0aW9uID0gZHVyYXRpb24gfHwgTWF0aC5taW4oTWF0aC5hYnMoZGlzdGFuY2UpLCBkZWZhdWx0RHVyYXRpb24pO1xuXHRcdFx0XHQoZnVuY3Rpb24gbG9vcFNjcm9sbCgpIHtcblx0XHRcdFx0XHRzZXRTY3JvbGxUaW1lb3V0SWQoc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0XHQvLyBDYWxjdWxhdGUgcGVyY2VudGFnZTpcblx0XHRcdFx0XHRcdHZhciBwID0gTWF0aC5taW4oMSwgKG5ldyBEYXRlKCkuZ2V0VGltZSgpIC0gc3RhcnRUaW1lKSAvIGR1cmF0aW9uKVxuXHRcdFx0XHRcdFx0Ly8gQ2FsY3VsYXRlIHRoZSBhYnNvbHV0ZSB2ZXJ0aWNhbCBwb3NpdGlvbjpcblx0XHRcdFx0XHRcdHZhciB5ID0gTWF0aC5tYXgoMCwgTWF0aC5mbG9vcihzdGFydFkgKyBkaXN0YW5jZSoocCA8IDAuNSA/IDIqcCpwIDogcCooNCAtIHAqMiktMSkpKVxuXHRcdFx0XHRcdFx0Y29udGFpbmVyLnRvWSh5KVxuXHRcdFx0XHRcdFx0aWYgKHAgPCAxICYmIChjb250YWluZXIuZ2V0SGVpZ2h0KCkgKyB5KSA8IGNvbnRhaW5lci5ib2R5LnNjcm9sbEhlaWdodCkge1xuXHRcdFx0XHRcdFx0XHRsb29wU2Nyb2xsKClcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdHNldFRpbWVvdXQoc3RvcFNjcm9sbCwgOTkpIC8vIHdpdGggY29vbGRvd24gdGltZVxuXHRcdFx0XHRcdFx0XHRpZiAob25Eb25lKSB7XG5cdFx0XHRcdFx0XHRcdFx0b25Eb25lKClcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0sIDkpKVxuXHRcdFx0XHR9KSgpXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0ICogU2Nyb2xscyB0byB0aGUgdG9wIG9mIGEgc3BlY2lmaWMgZWxlbWVudC5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7ZWxlbX0gVGhlIGVsZW1lbnQgdG8gc2Nyb2xsIHRvLlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqIEBwYXJhbSB7b25Eb25lfSBBbiBvcHRpb25hbCBjYWxsYmFjayBmdW5jdGlvbiB0byBiZSBpbnZva2VkIG9uY2UgdGhlIHNjcm9sbCBmaW5pc2hlZC5cblx0XHQgKi9cblx0XHR2YXIgc2Nyb2xsVG9FbGVtID0gZnVuY3Rpb24gKGVsZW0sIGR1cmF0aW9uLCBvbkRvbmUpIHtcblx0XHRcdHNjcm9sbFRvWShnZXRUb3BXaXRoRWRnZU9mZnNldChlbGVtKSwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBTY3JvbGxzIGFuIGVsZW1lbnQgaW50byB2aWV3IGlmIG5lY2Vzc2FyeS5cblx0XHQgKlxuXHRcdCAqIEBwYXJhbSB7ZWxlbX0gVGhlIGVsZW1lbnQuXG5cdFx0ICogQHBhcmFtIHtkdXJhdGlvbn0gT3B0aW9uYWxseSB0aGUgZHVyYXRpb24gb2YgdGhlIHNjcm9sbCBvcGVyYXRpb24uXG5cdFx0ICogQHBhcmFtIHtvbkRvbmV9IEFuIG9wdGlvbmFsIGNhbGxiYWNrIGZ1bmN0aW9uIHRvIGJlIGludm9rZWQgb25jZSB0aGUgc2Nyb2xsIGZpbmlzaGVkLlxuXHRcdCAqL1xuXHRcdHZhciBzY3JvbGxJbnRvVmlldyA9IGZ1bmN0aW9uIChlbGVtLCBkdXJhdGlvbiwgb25Eb25lKSB7XG5cdFx0XHR2YXIgZWxlbUhlaWdodCA9IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0XG5cdFx0XHR2YXIgZWxlbUJvdHRvbSA9IGNvbnRhaW5lci5nZXRUb3BPZihlbGVtKSArIGVsZW1IZWlnaHRcblx0XHRcdHZhciBjb250YWluZXJIZWlnaHQgPSBjb250YWluZXIuZ2V0SGVpZ2h0KClcblx0XHRcdHZhciB5ID0gY29udGFpbmVyLmdldFkoKVxuXHRcdFx0dmFyIGNvbnRhaW5lckJvdHRvbSA9IHkgKyBjb250YWluZXJIZWlnaHRcblx0XHRcdGlmIChnZXRUb3BXaXRoRWRnZU9mZnNldChlbGVtKSA8IHkgfHwgKGVsZW1IZWlnaHQgKyBlZGdlT2Zmc2V0KSA+IGNvbnRhaW5lckhlaWdodCkge1xuXHRcdFx0XHQvLyBFbGVtZW50IGlzIGNsaXBwZWQgYXQgdG9wIG9yIGlzIGhpZ2hlciB0aGFuIHNjcmVlbi5cblx0XHRcdFx0c2Nyb2xsVG9FbGVtKGVsZW0sIGR1cmF0aW9uLCBvbkRvbmUpXG5cdFx0XHR9IGVsc2UgaWYgKChlbGVtQm90dG9tICsgZWRnZU9mZnNldCkgPiBjb250YWluZXJCb3R0b20pIHtcblx0XHRcdFx0Ly8gRWxlbWVudCBpcyBjbGlwcGVkIGF0IHRoZSBib3R0b20uXG5cdFx0XHRcdHNjcm9sbFRvWShlbGVtQm90dG9tIC0gY29udGFpbmVySGVpZ2h0ICsgZWRnZU9mZnNldCwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHRcdH0gZWxzZSBpZiAob25Eb25lKSB7XG5cdFx0XHRcdG9uRG9uZSgpXG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LyoqXG5cdFx0ICogU2Nyb2xscyB0byB0aGUgY2VudGVyIG9mIGFuIGVsZW1lbnQuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge2VsZW19IFRoZSBlbGVtZW50LlxuXHRcdCAqIEBwYXJhbSB7ZHVyYXRpb259IE9wdGlvbmFsbHkgdGhlIGR1cmF0aW9uIG9mIHRoZSBzY3JvbGwgb3BlcmF0aW9uLlxuXHRcdCAqIEBwYXJhbSB7b2Zmc2V0fSBPcHRpb25hbGx5IHRoZSBvZmZzZXQgb2YgdGhlIHRvcCBvZiB0aGUgZWxlbWVudCBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIHNjcmVlbi5cblx0XHQgKiBAcGFyYW0ge29uRG9uZX0gQW4gb3B0aW9uYWwgY2FsbGJhY2sgZnVuY3Rpb24gdG8gYmUgaW52b2tlZCBvbmNlIHRoZSBzY3JvbGwgZmluaXNoZWQuXG5cdFx0ICovXG5cdFx0dmFyIHNjcm9sbFRvQ2VudGVyT2YgPSBmdW5jdGlvbiAoZWxlbSwgZHVyYXRpb24sIG9mZnNldCwgb25Eb25lKSB7XG5cdFx0XHRzY3JvbGxUb1koTWF0aC5tYXgoMCwgY29udGFpbmVyLmdldFRvcE9mKGVsZW0pIC0gY29udGFpbmVyLmdldEhlaWdodCgpLzIgKyAob2Zmc2V0IHx8IGVsZW0uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0LzIpKSwgZHVyYXRpb24sIG9uRG9uZSlcblx0XHR9XG5cblx0XHQvKipcblx0XHQgKiBDaGFuZ2VzIGRlZmF1bHQgc2V0dGluZ3MgZm9yIHRoaXMgc2Nyb2xsZXIuXG5cdFx0ICpcblx0XHQgKiBAcGFyYW0ge25ld0RlZmF1bHREdXJhdGlvbn0gT3B0aW9uYWxseSBhIG5ldyB2YWx1ZSBmb3IgZGVmYXVsdCBkdXJhdGlvbiwgdXNlZCBmb3IgZWFjaCBzY3JvbGwgbWV0aG9kIGJ5IGRlZmF1bHQuXG5cdFx0ICogICAgICAgIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdFx0ICogQHBhcmFtIHtuZXdFZGdlT2Zmc2V0fSBPcHRpb25hbGx5IGEgbmV3IHZhbHVlIGZvciB0aGUgZWRnZSBvZmZzZXQsIHVzZWQgYnkgZWFjaCBzY3JvbGwgbWV0aG9kIGJ5IGRlZmF1bHQuIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdFx0ICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggdGhlIGN1cnJlbnQgdmFsdWVzLlxuXHRcdCAqL1xuXHRcdHZhciBzZXR1cCA9IGZ1bmN0aW9uIChuZXdEZWZhdWx0RHVyYXRpb24sIG5ld0VkZ2VPZmZzZXQpIHtcblx0XHRcdGlmIChuZXdEZWZhdWx0RHVyYXRpb24gPT09IDAgfHwgbmV3RGVmYXVsdER1cmF0aW9uKSB7XG5cdFx0XHRcdGRlZmF1bHREdXJhdGlvbiA9IG5ld0RlZmF1bHREdXJhdGlvblxuXHRcdFx0fVxuXHRcdFx0aWYgKG5ld0VkZ2VPZmZzZXQgPT09IDAgfHwgbmV3RWRnZU9mZnNldCkge1xuXHRcdFx0XHRlZGdlT2Zmc2V0ID0gbmV3RWRnZU9mZnNldFxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0ZGVmYXVsdER1cmF0aW9uOiBkZWZhdWx0RHVyYXRpb24sXG5cdFx0XHRcdGVkZ2VPZmZzZXQ6IGVkZ2VPZmZzZXRcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4ge1xuXHRcdFx0c2V0dXA6IHNldHVwLFxuXHRcdFx0dG86IHNjcm9sbFRvRWxlbSxcblx0XHRcdHRvWTogc2Nyb2xsVG9ZLFxuXHRcdFx0aW50b1ZpZXc6IHNjcm9sbEludG9WaWV3LFxuXHRcdFx0Y2VudGVyOiBzY3JvbGxUb0NlbnRlck9mLFxuXHRcdFx0c3RvcDogc3RvcFNjcm9sbCxcblx0XHRcdG1vdmluZzogZnVuY3Rpb24gKCkgeyByZXR1cm4gISFzY3JvbGxUaW1lb3V0SWQgfSxcblx0XHRcdGdldFk6IGNvbnRhaW5lci5nZXRZLFxuXHRcdFx0Z2V0VG9wT2Y6IGNvbnRhaW5lci5nZXRUb3BPZlxuXHRcdH1cblxuXHR9XG5cblxuXHR2YXIgZG9jRWxlbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudFxuXHR2YXIgZ2V0RG9jWSA9IGZ1bmN0aW9uICgpIHsgcmV0dXJuIHdpbmRvdy5zY3JvbGxZIHx8IGRvY0VsZW0uc2Nyb2xsVG9wIH1cblxuXHQvLyBDcmVhdGUgYSBzY3JvbGxlciBmb3IgdGhlIGRvY3VtZW50OlxuXHR2YXIgemVuc2Nyb2xsID0gbWFrZVNjcm9sbGVyKHtcblx0XHRib2R5OiBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50IHx8IGRvY3VtZW50LmJvZHksXG5cdFx0dG9ZOiBmdW5jdGlvbiAoeSkgeyB3aW5kb3cuc2Nyb2xsVG8oMCwgeSkgfSxcblx0XHRnZXRZOiBnZXREb2NZLFxuXHRcdGdldEhlaWdodDogZnVuY3Rpb24gKCkgeyByZXR1cm4gd2luZG93LmlubmVySGVpZ2h0IHx8IGRvY0VsZW0uY2xpZW50SGVpZ2h0IH0sXG5cdFx0Z2V0VG9wT2Y6IGZ1bmN0aW9uIChlbGVtKSB7IHJldHVybiBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCArIGdldERvY1koKSAtIGRvY0VsZW0ub2Zmc2V0VG9wIH1cblx0fSlcblxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgc2Nyb2xsZXIgZnJvbSB0aGUgcHJvdmlkZWQgY29udGFpbmVyIGVsZW1lbnQgKGUuZy4sIGEgRElWKVxuXHQgKlxuXHQgKiBAcGFyYW0ge3Njcm9sbENvbnRhaW5lcn0gVGhlIHZlcnRpY2FsIHBvc2l0aW9uIHdpdGhpbiB0aGUgZG9jdW1lbnQuXG5cdCAqIEBwYXJhbSB7ZGVmYXVsdER1cmF0aW9ufSBPcHRpb25hbGx5IGEgdmFsdWUgZm9yIGRlZmF1bHQgZHVyYXRpb24sIHVzZWQgZm9yIGVhY2ggc2Nyb2xsIG1ldGhvZCBieSBkZWZhdWx0LlxuXHQgKiAgICAgICAgSWdub3JlZCBpZiAwIG9yIG51bGwgb3IgdW5kZWZpbmVkLlxuXHQgKiBAcGFyYW0ge2VkZ2VPZmZzZXR9IE9wdGlvbmFsbHkgYSB2YWx1ZSBmb3IgdGhlIGVkZ2Ugb2Zmc2V0LCB1c2VkIGJ5IGVhY2ggc2Nyb2xsIG1ldGhvZCBieSBkZWZhdWx0LiBcblx0ICogICAgICAgIElnbm9yZWQgaWYgbnVsbCBvciB1bmRlZmluZWQuXG5cdCAqIEByZXR1cm5zIEEgc2Nyb2xsZXIgb2JqZWN0LCBzaW1pbGFyIHRvIGB6ZW5zY3JvbGxgIGJ1dCBjb250cm9sbGluZyB0aGUgcHJvdmlkZWQgZWxlbWVudC5cblx0ICovXG5cdHplbnNjcm9sbC5jcmVhdGVTY3JvbGxlciA9IGZ1bmN0aW9uIChzY3JvbGxDb250YWluZXIsIGRlZmF1bHREdXJhdGlvbiwgZWRnZU9mZnNldCkge1xuXHRcdHJldHVybiBtYWtlU2Nyb2xsZXIoe1xuXHRcdFx0Ym9keTogc2Nyb2xsQ29udGFpbmVyLFxuXHRcdFx0dG9ZOiBmdW5jdGlvbiAoeSkgeyBzY3JvbGxDb250YWluZXIuc2Nyb2xsVG9wID0geSB9LFxuXHRcdFx0Z2V0WTogZnVuY3Rpb24gKCkgeyByZXR1cm4gc2Nyb2xsQ29udGFpbmVyLnNjcm9sbFRvcCB9LFxuXHRcdFx0Z2V0SGVpZ2h0OiBmdW5jdGlvbiAoKSB7IHJldHVybiBNYXRoLm1pbihzY3JvbGxDb250YWluZXIuY2xpZW50SGVpZ2h0LCB3aW5kb3cuaW5uZXJIZWlnaHQgfHwgZG9jRWxlbS5jbGllbnRIZWlnaHQpIH0sXG5cdFx0XHRnZXRUb3BPZjogZnVuY3Rpb24gKGVsZW0pIHsgcmV0dXJuIGVsZW0ub2Zmc2V0VG9wIH1cblx0XHR9LCBkZWZhdWx0RHVyYXRpb24sIGVkZ2VPZmZzZXQpXG5cdH1cblxuXG5cdC8vIEF1dG9tYXRpYyBsaW5rLXNtb290aGluZyBvbiBhY2hvcnNcblx0Ly8gRXhjbHVkZSBJRTgtIG9yIHdoZW4gbmF0aXZlIGlzIGVuYWJsZWQgb3IgWmVuc2Nyb2xsIGF1dG8tIGlzIGRpc2FibGVkXG5cdGlmIChcImFkZEV2ZW50TGlzdGVuZXJcIiBpbiB3aW5kb3cgJiYgIXdpbmRvdy5ub1plbnNtb290aCAmJiAhaXNOYXRpdmVTbW9vdGhTY3JvbGxFbmFibGVkT24oZG9jdW1lbnQuYm9keSkpIHtcblxuXG5cdFx0dmFyIGlzU2Nyb2xsUmVzdG9yYXRpb25TdXBwb3J0ZWQgPSBcInNjcm9sbFJlc3RvcmF0aW9uXCIgaW4gaGlzdG9yeVxuXG5cdFx0Ly8gT24gZmlyc3QgbG9hZCAmIHJlZnJlc2ggbWFrZSBzdXJlIHRoZSBicm93c2VyIHJlc3RvcmVzIHRoZSBwb3NpdGlvbiBmaXJzdFxuXHRcdGlmIChpc1Njcm9sbFJlc3RvcmF0aW9uU3VwcG9ydGVkKSB7XG5cdFx0XHRoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gXCJhdXRvXCJcblx0XHR9XG5cblx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcImxvYWRcIiwgZnVuY3Rpb24gKCkge1xuXG5cdFx0XHRpZiAoaXNTY3JvbGxSZXN0b3JhdGlvblN1cHBvcnRlZCkge1xuXHRcdFx0XHQvLyBTZXQgaXQgdG8gbWFudWFsXG5cdFx0XHRcdHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyBoaXN0b3J5LnNjcm9sbFJlc3RvcmF0aW9uID0gXCJtYW51YWxcIiB9LCA5KVxuXHRcdFx0XHR3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInBvcHN0YXRlXCIsIGZ1bmN0aW9uIChldmVudCkge1xuXHRcdFx0XHRcdGlmIChldmVudC5zdGF0ZSAmJiBcInplbnNjcm9sbFlcIiBpbiBldmVudC5zdGF0ZSkge1xuXHRcdFx0XHRcdFx0emVuc2Nyb2xsLnRvWShldmVudC5zdGF0ZS56ZW5zY3JvbGxZKVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSwgZmFsc2UpXG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCBlZGdlIG9mZnNldCBvbiBmaXJzdCBsb2FkIGlmIG5lY2Vzc2FyeVxuXHRcdFx0Ly8gVGhpcyBtYXkgbm90IHdvcmsgb24gSUUgKG9yIG9sZGVyIGNvbXB1dGVyPykgYXMgaXQgcmVxdWlyZXMgbW9yZSB0aW1lb3V0LCBhcm91bmQgMTAwIG1zXG5cdFx0XHRpZiAod2luZG93LmxvY2F0aW9uLmhhc2gpIHtcblx0XHRcdFx0c2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cdFx0XHRcdFx0Ly8gQWRqdXN0bWVudCBpcyBvbmx5IG5lZWRlZCBpZiB0aGVyZSBpcyBhbiBlZGdlIG9mZnNldDpcblx0XHRcdFx0XHR2YXIgZWRnZU9mZnNldCA9IHplbnNjcm9sbC5zZXR1cCgpLmVkZ2VPZmZzZXRcblx0XHRcdFx0XHRpZiAoZWRnZU9mZnNldCkge1xuXHRcdFx0XHRcdFx0dmFyIHRhcmdldEVsZW0gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh3aW5kb3cubG9jYXRpb24uaHJlZi5zcGxpdChcIiNcIilbMV0pXG5cdFx0XHRcdFx0XHRpZiAodGFyZ2V0RWxlbSkge1xuXHRcdFx0XHRcdFx0XHR2YXIgdGFyZ2V0WSA9IE1hdGgubWF4KDAsIHplbnNjcm9sbC5nZXRUb3BPZih0YXJnZXRFbGVtKSAtIGVkZ2VPZmZzZXQpXG5cdFx0XHRcdFx0XHRcdHZhciBkaWZmID0gemVuc2Nyb2xsLmdldFkoKSAtIHRhcmdldFlcblx0XHRcdFx0XHRcdFx0Ly8gT25seSBkbyB0aGUgYWRqdXN0bWVudCBpZiB0aGUgYnJvd3NlciBpcyB2ZXJ5IGNsb3NlIHRvIHRoZSBlbGVtZW50OlxuXHRcdFx0XHRcdFx0XHRpZiAoMCA8PSBkaWZmICYmIGRpZmYgPCA5ICkge1xuXHRcdFx0XHRcdFx0XHRcdHdpbmRvdy5zY3JvbGxUbygwLCB0YXJnZXRZKVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9LCA5KVxuXHRcdFx0fVxuXG5cdFx0fSwgZmFsc2UpXG5cblx0XHQvLyBIYW5kbGluZyBjbGlja3Mgb24gYW5jaG9yc1xuXHRcdHZhciBSRV9ub1plbnNtb290aCA9IG5ldyBSZWdFeHAoXCIoXnxcXFxccylub1plbnNtb290aChcXFxcc3wkKVwiKVxuXHRcdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24gKGV2ZW50KSB7XG5cdFx0XHR2YXIgYW5jaG9yID0gZXZlbnQudGFyZ2V0XG5cdFx0XHR3aGlsZSAoYW5jaG9yICYmIGFuY2hvci50YWdOYW1lICE9PSBcIkFcIikge1xuXHRcdFx0XHRhbmNob3IgPSBhbmNob3IucGFyZW50Tm9kZVxuXHRcdFx0fVxuXHRcdFx0Ly8gTGV0IHRoZSBicm93c2VyIGhhbmRsZSB0aGUgY2xpY2sgaWYgaXQgd2Fzbid0IHdpdGggdGhlIHByaW1hcnkgYnV0dG9uLCBvciB3aXRoIHNvbWUgbW9kaWZpZXIga2V5czpcblx0XHRcdGlmICghYW5jaG9yIHx8IGV2ZW50LndoaWNoICE9PSAxIHx8IGV2ZW50LnNoaWZ0S2V5IHx8IGV2ZW50Lm1ldGFLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBldmVudC5hbHRLZXkpIHtcblx0XHRcdFx0cmV0dXJuXG5cdFx0XHR9XG5cdFx0XHQvLyBTYXZlIHRoZSBjdXJyZW50IHNjcm9sbGluZyBwb3NpdGlvbiBzbyBpdCBjYW4gYmUgdXNlZCBmb3Igc2Nyb2xsIHJlc3RvcmF0aW9uOlxuXHRcdFx0aWYgKGlzU2Nyb2xsUmVzdG9yYXRpb25TdXBwb3J0ZWQpIHtcblx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRoaXN0b3J5LnJlcGxhY2VTdGF0ZSh7IHplbnNjcm9sbFk6IHplbnNjcm9sbC5nZXRZKCkgfSwgXCJcIilcblx0XHRcdFx0fSBjYXRjaCAoZSkge1xuXHRcdFx0XHRcdC8vIEF2b2lkIHRoZSBDaHJvbWUgU2VjdXJpdHkgZXhjZXB0aW9uIG9uIGZpbGUgcHJvdG9jb2wsIGUuZy4sIGZpbGU6Ly9pbmRleC5odG1sXG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vIEZpbmQgdGhlIHJlZmVyZW5jZWQgSUQ6XG5cdFx0XHR2YXIgaHJlZiA9IGFuY2hvci5nZXRBdHRyaWJ1dGUoXCJocmVmXCIpIHx8IFwiXCJcblx0XHRcdGlmIChocmVmLmluZGV4T2YoXCIjXCIpID09PSAwICYmICFSRV9ub1plbnNtb290aC50ZXN0KGFuY2hvci5jbGFzc05hbWUpKSB7XG5cdFx0XHRcdHZhciB0YXJnZXRZID0gMFxuXHRcdFx0XHR2YXIgdGFyZ2V0RWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGhyZWYuc3Vic3RyaW5nKDEpKVxuXHRcdFx0XHRpZiAoaHJlZiAhPT0gXCIjXCIpIHtcblx0XHRcdFx0XHRpZiAoIXRhcmdldEVsZW0pIHtcblx0XHRcdFx0XHRcdC8vIExldCB0aGUgYnJvd3NlciBoYW5kbGUgdGhlIGNsaWNrIGlmIHRoZSB0YXJnZXQgSUQgaXMgbm90IGZvdW5kLlxuXHRcdFx0XHRcdFx0cmV0dXJuXG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHRhcmdldFkgPSB6ZW5zY3JvbGwuZ2V0VG9wT2YodGFyZ2V0RWxlbSlcblx0XHRcdFx0fVxuXHRcdFx0XHRldmVudC5wcmV2ZW50RGVmYXVsdCgpXG5cdFx0XHRcdC8vIEJ5IGRlZmF1bHQgdHJpZ2dlciB0aGUgYnJvd3NlcidzIGBoYXNoY2hhbmdlYCBldmVudC4uLlxuXHRcdFx0XHR2YXIgb25Eb25lID0gZnVuY3Rpb24gKCkgeyB3aW5kb3cubG9jYXRpb24gPSBocmVmIH1cblx0XHRcdFx0Ly8gLi4udW5sZXNzIHRoZXJlIGlzIGFuIGVkZ2Ugb2Zmc2V0IHNwZWNpZmllZFxuXHRcdFx0XHR2YXIgZWRnZU9mZnNldCA9IHplbnNjcm9sbC5zZXR1cCgpLmVkZ2VPZmZzZXRcblx0XHRcdFx0aWYgKGVkZ2VPZmZzZXQpIHtcblx0XHRcdFx0XHR0YXJnZXRZID0gTWF0aC5tYXgoMCwgdGFyZ2V0WSAtIGVkZ2VPZmZzZXQpXG5cdFx0XHRcdFx0b25Eb25lID0gZnVuY3Rpb24gKCkgeyBoaXN0b3J5LnB1c2hTdGF0ZShudWxsLCBcIlwiLCBocmVmKSB9XG5cdFx0XHRcdH1cblx0XHRcdFx0emVuc2Nyb2xsLnRvWSh0YXJnZXRZLCBudWxsLCBvbkRvbmUpXG5cdFx0XHR9XG5cdFx0fSwgZmFsc2UpXG5cblx0fVxuXG5cblx0cmV0dXJuIHplbnNjcm9sbFxuXG5cbn0pKTtcblxuXG5cbi8vLy8vLy8vLy8vLy8vLy8vL1xuLy8gV0VCUEFDSyBGT09URVJcbi8vIC4vfi96ZW5zY3JvbGwvemVuc2Nyb2xsLmpzXG4vLyBtb2R1bGUgaWQgPSAxXG4vLyBtb2R1bGUgY2h1bmtzID0gMCJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUFBO0FBQUE7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Iiwic291cmNlUm9vdCI6IiJ9"); /***/ }), /* 2 */ diff --git a/src/docs/asciidoc/web-reactive.adoc b/src/docs/asciidoc/web-reactive.adoc index 308ef40f9be..54f643671bd 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 +on a 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 9af64e634d9..087340ffdd1 100644 --- a/src/docs/asciidoc/web/integration.adoc +++ b/src/docs/asciidoc/web/integration.adoc @@ -174,7 +174,7 @@ The following example shows how to use `FacesContextUtils`: [[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 @@ -191,7 +191,7 @@ built-in Spring integration. [[tapestry]] == Apache Tapestry 5.x -http://tapestry.apache.org/[Tapestry] is a ""Component oriented framework for creating +https://tapestry.apache.org/[Tapestry] is a ""Component oriented framework for creating dynamic, robust, highly scalable web applications in Java."" While Spring has its own <>, there are a number of unique @@ -210,6 +210,6 @@ https://tapestry.apache.org/integrating-with-spring-framework.html[integration m The following links go 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 a46a17d12de..2a26cc5b662 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> @@ -31,7 +31,7 @@ as the following example shows: [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") @@ -47,7 +47,7 @@ as the following example shows: [subs="verbatim,quotes"] ---- URI uri = UriComponentsBuilder - .fromUriString("http://example.com/hotels/{hotel}") + .fromUriString("https://example.com/hotels/{hotel}") .queryParam("q", "{q}") .build("Westin", "123"); ---- @@ -60,7 +60,7 @@ You shorter it further still with a full URI template, as the following example [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"); ---- ==== @@ -89,7 +89,7 @@ The following example shows how to configure a `RestTemplate`: ---- // 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); @@ -106,7 +106,7 @@ The following example configures a `WebClient`: ---- // 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); @@ -122,7 +122,7 @@ that holds configuration and preferences, as the following example shows: [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}") @@ -203,7 +203,7 @@ as the following example shows: [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 03e87844a89..536da70c5d7 100644 --- a/src/docs/asciidoc/web/webflux-cors.adoc +++ b/src/docs/asciidoc/web/webflux-cors.adoc @@ -17,8 +17,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 -- for example, 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 lets you 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 lets you specify what kind of cross-domain requests are authorized, rather than using less secure and less powerful workarounds based on IFRAME or JSONP. @@ -125,7 +125,7 @@ The following example specifies a certain domain and sets `maxAge` to an hour: [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 { @@ -155,7 +155,7 @@ as the following example shows: @RequestMapping("/account") public class AccountController { - @CrossOrigin("http://domain2.com") <2> + @CrossOrigin("https://domain2.com") <2> @GetMapping("/{id}") public Mono retrieve(@PathVariable Long id) { // ... @@ -210,7 +210,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") @@ -254,7 +254,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 9d318ad2787..d499c3dfb65 100644 --- a/src/docs/asciidoc/web/webflux-functional.adoc +++ b/src/docs/asciidoc/web/webflux-functional.adoc @@ -81,7 +81,7 @@ Most applications can run through the WebFlux Java configuration, 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. @@ -131,13 +131,13 @@ The following table shows the templating libraries that we have tested on differ [%header] |=== |Scripting Library |Scripting Engine -|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: The basic rule for integrating any other script engine is that it must implement the @@ -151,17 +151,17 @@ TIP: The basic rule for integrating any other script engine is that it must impl You need to have the script engine on your classpath, the details of which vary by script engine: -* The http://openjdk.java.net/projects/nashorn/[Nashorn] JavaScript engine is provided with +* The 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 detail. 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]. @@ -211,9 +211,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 can 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. The following example shows how to set a custom render function: diff --git a/src/docs/asciidoc/web/webflux-webclient.adoc b/src/docs/asciidoc/web/webflux-webclient.adoc index 78c7045f507..20980df9dd8 100644 --- a/src/docs/asciidoc/web/webflux-webclient.adoc +++ b/src/docs/asciidoc/web/webflux-webclient.adoc @@ -253,7 +253,7 @@ The following example shows how to do so: [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) @@ -560,7 +560,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 b8484f86d8d..8d84a55afe4 100644 --- a/src/docs/asciidoc/web/webflux.adoc +++ b/src/docs/asciidoc/web/webflux.adoc @@ -5,7 +5,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 such servers as +https://www.reactive-streams.org/[Reactive Streams] back pressure, and runs on such servers as Netty, Undertow, and Servlet 3.1+ containers. Both web frameworks mirror the names of their source modules @@ -62,9 +62,9 @@ https://github.com/reactive-streams/reactive-streams-jvm/blob/master/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 let the subscriber to control how quickly or how slowly the publisher produces data. @@ -1095,7 +1095,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 operate in terms of logical view names. A view name such as `redirect:/some/resource` is relative to the current application, while a view name such as -`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]] @@ -1727,9 +1727,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, with each variable separated by a semicolon and @@ -2459,7 +2459,7 @@ Spring offers support for the Jackson JSON library. [.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, you can use Jackson's `@JsonView` annotation to activate a serialization view class, as the following example shows: @@ -2815,7 +2815,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. See the Spring Security reference documentation, including: @@ -3160,8 +3160,8 @@ For Jackson JSON and XML, consider using {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: @@ -3355,7 +3355,7 @@ Note that, when using both `EncodedResourceResolver` (for example, Gzip, Brotli `VersionedResourceResolver`, they must 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 4ceca052564..60db0ccd405 100644 --- a/src/docs/asciidoc/web/webmvc-cors.adoc +++ b/src/docs/asciidoc/web/webmvc-cors.adoc @@ -17,8 +17,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 -- for example 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 lets you 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 lets you specify what kind of cross-domain requests are authorized, rather than using less secure and less powerful workarounds based on IFRAME or JSONP. @@ -124,7 +124,7 @@ as the following example shows: [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 { @@ -154,7 +154,7 @@ as the following example shows: @RequestMapping("/account") public class AccountController { - @CrossOrigin("http://domain2.com") + @CrossOrigin("https://domain2.com") @GetMapping("/{id}") public Account retrieve(@PathVariable Long id) { // ... @@ -214,7 +214,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") @@ -241,14 +241,14 @@ as the following example shows: + allowed-origins="https://domain1.com" /> ---- @@ -282,7 +282,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 eeea6b262f7..4e75c0383e8 100644 --- a/src/docs/asciidoc/web/webmvc-view.adoc +++ b/src/docs/asciidoc/web/webmvc-view.adoc @@ -20,12 +20,12 @@ for independent work on UI templates (for example, by a designer) without the ne a running server. If you want to replace JSPs, Thymeleaf offers one of the most extensive set of features to 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. @@ -578,13 +578,13 @@ templating libraries on different script engines: [%header] |=== |Scripting Library |Scripting Engine -|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: The basic rule for integrating any other script engine is that it must implement the @@ -598,17 +598,17 @@ TIP: The basic rule for integrating any other script engine is that it must impl You need to have the script engine on your classpath, the details of which vary by script engine: -* The http://openjdk.java.net/projects/nashorn/[Nashorn] JavaScript engine is provided with +* The 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]. @@ -712,9 +712,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 can 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] to emulate some +https://en.wikipedia.org/wiki/Polyfill[polyfill] to emulate some browser facilities that are not available in the server-side script engine. The following example shows how to do so: @@ -1702,7 +1702,7 @@ NOTE: This section focuses on Spring's support for Tiles version 3 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. @@ -1712,7 +1712,7 @@ to your project. To be able to use Tiles, you have to configure it by using files that contain definitions (for basic information on definitions and other Tiles concepts, see -http://tiles.apache.org[]). In Spring, this is done by using the `TilesConfigurer`. +https://tiles.apache.org[]). In Spring, this is done by using the `TilesConfigurer`. The following example `ApplicationContext` configuration shows how to do so: ==== diff --git a/src/docs/asciidoc/web/webmvc.adoc b/src/docs/asciidoc/web/webmvc.adoc index 0d6d439eafc..8c562295ca8 100644 --- a/src/docs/asciidoc/web/webmvc.adoc +++ b/src/docs/asciidoc/web/webmvc.adoc @@ -875,7 +875,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: ==== @@ -1007,7 +1007,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 to declare a `MultipartResolver` bean in your @@ -1276,9 +1276,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -2789,7 +2789,7 @@ Spring offers support for the Jackson JSON library. [.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 allow rendering only a subset of all fields in an `Object`. To use it with `@ResponseBody` or `ResponseEntity` controller methods, you can use Jackson's `@JsonView` annotation to activate a serialization view class, as the following example shows: @@ -3749,7 +3749,7 @@ invokes the configured exception resolvers and completes the request. ==== SSE `SseEmitter` (a subclass of `ResponseBodyEmitter`) 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. To produce an SSE stream from a controller, return `SseEmitter`, as the following example shows: @@ -3919,7 +3919,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. See the Spring Security reference documentation, including: @@ -3928,7 +3928,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. @@ -4125,9 +4125,9 @@ configuration, as the following example shows: 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"> @@ -4162,7 +4162,7 @@ following example shows: ==== In XML, you can 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. @@ -4207,9 +4207,9 @@ The following example shows how to achieve the same configuration in XML: 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"> @@ -4283,9 +4283,9 @@ The following example shows how to achieve the same configuration in XML: 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"> @@ -4465,8 +4465,8 @@ Which adds support for accessing parameter names (a feature added in Java 8). This builder customizes Jackson's default properties as follows: -* 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: @@ -4476,8 +4476,8 @@ It also automatically registers the following well-known modules if they are det * https://github.com/FasterXML/jackson-datatype-jdk8[jackson-datatype-jdk8]: Support for other Java 8 types, such as `Optional`. 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: @@ -4757,7 +4757,7 @@ Note that, when using both `EncodedResourceResolver` (for example, for serving g brotli-encoded resources) and `VersionedResourceResolver`, you must register them in this order. That ensures 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/websocket-intro.adoc b/src/docs/asciidoc/web/websocket-intro.adoc index 29fe9117000..6f22701d14c 100644 --- a/src/docs/asciidoc/web/websocket-intro.adoc +++ b/src/docs/asciidoc/web/websocket-intro.adoc @@ -1,7 +1,7 @@ [[websocket-intro]] = Introduction to WebSocket -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 7538b9ac929..769e98e5315 100644 --- a/src/docs/asciidoc/web/websocket.adoc +++ b/src/docs/asciidoc/web/websocket.adoc @@ -88,9 +88,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -155,9 +155,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -236,7 +236,7 @@ through the use of the `` element in `web.xml`, as the foll 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"> @@ -257,7 +257,7 @@ Java initialization API. The following example shows how to do so: 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"> @@ -312,9 +312,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -372,9 +372,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -444,7 +444,7 @@ You can configure WebSocket and SockJS allowed origins, as the following example @Override public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { - registry.addHandler(myHandler(), "/myHandler").setAllowedOrigins("http://mydomain.com"); + registry.addHandler(myHandler(), "/myHandler").setAllowedOrigins("https://mydomain.com"); } @Bean @@ -467,11 +467,11 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> - + @@ -511,7 +511,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. * A SockJS Java client in the `spring-websocket` module (since version 4.1). @@ -563,7 +563,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, you can enable `TRACE` logging for `org.springframework.web.socket`. For even more detail, see 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]. @@ -605,9 +605,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -644,7 +644,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 by using 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 often essential for Java applications. However, since the SockJS client can be used with many server @@ -727,7 +727,7 @@ from concluding that a connection is hung. The Spring SockJS configuration has a called `heartbeatTime` that you can use to customize the frequency. By default, a heartbeat is sent after 25 seconds, assuming no other messages were sent on that connection. This 25-second 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: When using STOMP over WebSocket and SockJS, if the STOMP client and server negotiate heartbeats to be exchanged, the SockJS heartbeats are disabled. @@ -897,7 +897,7 @@ the server 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] (Simple +https://stomp.github.io/stomp-specification-1.2.html#Abstract[STOMP] (Simple Text Oriented Messaging Protocol) 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 @@ -995,7 +995,7 @@ client subscription. The preceding overview is intended to provide the most basic understanding of the STOMP protocol. We recommended reviewing 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. @@ -1069,9 +1069,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -1575,8 +1575,8 @@ As an alternative, you can upgrade your applications to use a full-featured message broker. See the STOMP documentation for your message broker of choice (such as -http://www.rabbitmq.com/stomp.html[RabbitMQ], -http://activemq.apache.org/stomp.html[ActiveMQ], and others), install the broker, +https://www.rabbitmq.com/stomp.html[RabbitMQ], +https://activemq.apache.org/stomp.html[ActiveMQ], and others), install the broker, and run it with STOMP support enabled. Then you can enable the STOMP broker relay (instead of the simple broker) in the Spring configuration. @@ -1616,9 +1616,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -1762,9 +1762,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -1847,7 +1847,7 @@ NOTE: 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. @@ -2039,7 +2039,7 @@ over, all unique user queues are removed. For example, RabbitMQ creates auto-del queues when you use destinations such as `/exchange/amq.direct/position-updates`. 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. In a multi-application server scenario, a user destination may remain unresolved because @@ -2090,9 +2090,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -2491,9 +2491,9 @@ The following example shows the XML configuration equivalent of the preceding ex 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"> @@ -2550,9 +2550,9 @@ The following example shows the XML configuration equivalent of the preceding ex xmlns:websocket="http://www.springframework.org/schema/websocket" xsi:schemaLocation=" http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans.xsd + https://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/websocket - http://www.springframework.org/schema/websocket/spring-websocket.xsd"> + https://www.springframework.org/schema/websocket/spring-websocket.xsd"> diff --git a/src/docs/dist/license.txt b/src/docs/dist/license.txt index da224d22baa..1a517dfdf79 100644 --- a/src/docs/dist/license.txt +++ b/src/docs/dist/license.txt @@ -244,13 +244,13 @@ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -Copyright (c) 1999-2009, OW2 Consortium +Copyright (c) 1999-2009, OW2 Consortium >>> CGLIB 3.0 (cglib:cglib:3.0): Per the LICENSE file in the CGLIB JAR distribution downloaded from -http://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download, +https://sourceforge.net/projects/cglib/files/cglib3/3.0/cglib-3.0.jar/download, CGLIB 3.0 is licensed under the Apache License, version 2.0, the text of which is included above. @@ -263,7 +263,7 @@ source code to be made available (as would be noted above), you may obtain a copy of the source code corresponding to the binaries for such open source components and modifications thereto, if any, (the "Source Files"), by downloading the Source Files from https://spring.io/projects, Pivotal's website -at http://network.pivotal.io/open-source, or by sending a request, with your +at https://network.pivotal.io/open-source, or by sending a request, with your name and address to: Pivotal Software, Inc., 875 Howard Street, 5th floor, San Francisco, CA 94103, Attention: General Counsel. All such requests should clearly specify: OPEN SOURCE FILES REQUEST, Attention General Counsel. Pivotal diff --git a/src/docs/dist/readme.txt b/src/docs/dist/readme.txt index b168a33772d..932acc0a826 100644 --- a/src/docs/dist/readme.txt +++ b/src/docs/dist/readme.txt @@ -6,7 +6,7 @@ https://github.com/spring-projects/spring-framework/releases 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. From 5dc9c4c527883355a267a8e94a4eb0b61f7e3467 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Wed, 27 Mar 2019 15:31:55 +0100 Subject: [PATCH 2/5] URL Cleanup - Fix broken tests See gh-22680 --- .../simp/SimpMessagingTemplateTests.java | 4 +-- .../oxm/AbstractMarshallerTests.java | 6 ++-- .../oxm/castor/CastorMarshallerTests.java | 8 ++--- .../oxm/jaxb/Jaxb2UnmarshallerTests.java | 6 ++-- .../htmlunit/HtmlUnitRequestBuilderTests.java | 4 +-- .../http/RequestEntityTests.java | 2 +- .../server/ServletServerHttpRequestTests.java | 8 +++-- .../reactive/ServerHttpRequestTests.java | 12 ++++---- .../web/client/RestTemplateTests.java | 2 +- .../web/cors/reactive/CorsUtilsTests.java | 4 +-- ...uestPartServletServerHttpRequestTests.java | 3 +- .../util/DefaultUriBuilderFactoryTests.java | 27 +++++++++-------- .../util/DefaultUriTemplateHandlerTests.java | 4 +-- .../web/util/UriComponentsBuilderTests.java | 22 +++++++------- .../web/util/UriUtilsTests.java | 4 +-- .../web/util/WebUtilsTests.java | 30 +++++++++---------- .../AppCacheManifestTransformerTests.java | 4 +-- .../web/reactive/resource/test/test.appcache | 2 +- .../MvcUriComponentsBuilderTests.java | 6 ++-- .../AppCacheManifestTransformerTests.java | 4 +-- .../web/servlet/resource/test/test.appcache | 2 +- 21 files changed, 84 insertions(+), 80 deletions(-) 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 adb21898877..990239464ad 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -83,7 +83,7 @@ public class SimpMessagingTemplateTests { MessageHeaderAccessor.getAccessor(messages.get(0), SimpMessageHeaderAccessor.class); assertNotNull(headerAccessor); - assertEquals("/user/http:%2F%2Fjoe.openid.example.org%2F/queue/foo", headerAccessor.getDestination()); + assertEquals("/user/https:%2F%2Fjoe.openid.example.org%2F/queue/foo", headerAccessor.getDestination()); } @Test 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 ce2c7df76c3..7ea9967b29c 100644 --- a/spring-oxm/src/test/java/org/springframework/oxm/AbstractMarshallerTests.java +++ b/spring-oxm/src/test/java/org/springframework/oxm/AbstractMarshallerTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -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("https://www.w3.org/2000/xmlns/", "xmlns:tns"); + Attr namespace = expected.createAttributeNS("http://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("https://www.w3.org/2000/xmlns/", "xmlns:tns"); + Attr namespace = expected.createAttributeNS("http://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 ede0f2b5a76..6fcc3bbe012 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -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/Jaxb2UnmarshallerTests.java b/spring-oxm/src/test/java/org/springframework/oxm/jaxb/Jaxb2UnmarshallerTests.java index 919d9b4504a..f40cec6c78a 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2015 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -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-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 642888580ec..41e773fdc45 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 @@ -618,7 +618,7 @@ public class HtmlUnitRequestBuilderTests { @Test public void buildRequestRemotePort80WithDefault() throws Exception { - webRequest.setUrl(new URL("https://example.com/")); + webRequest.setUrl(new URL("http://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("https://example.com/test/this/here")); + assertThat(uri, equalTo("http://example.com/test/this/here")); } @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 1d28a27fe6c..3a2aa2b65c8 100644 --- a/spring-web/src/test/java/org/springframework/http/RequestEntityTests.java +++ b/spring-web/src/test/java/org/springframework/http/RequestEntityTests.java @@ -61,7 +61,7 @@ public class RequestEntityTests { 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 url = "https://www.{host}.com/{path}"; String host = "example"; String path = "foo/bar"; URI expected = new URI("https://www.example.com/foo/bar"); 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 35e1897189c..2c1aa4151c7 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -60,6 +60,7 @@ public class ServletServerHttpRequestTests { @Test public void getUriForSimplePath() throws URISyntaxException { URI uri = new URI("https://example.com/path"); + mockRequest.setScheme(uri.getScheme()); mockRequest.setServerName(uri.getHost()); mockRequest.setServerPort(uri.getPort()); mockRequest.setRequestURI(uri.getPath()); @@ -70,6 +71,7 @@ public class ServletServerHttpRequestTests { @Test public void getUriWithQueryString() throws URISyntaxException { URI uri = new URI("https://example.com/path?query"); + mockRequest.setScheme(uri.getScheme()); mockRequest.setServerName(uri.getHost()); mockRequest.setServerPort(uri.getPort()); mockRequest.setRequestURI(uri.getPath()); @@ -82,7 +84,7 @@ public class ServletServerHttpRequestTests { mockRequest.setServerName("example.com"); mockRequest.setRequestURI("/path"); mockRequest.setQueryString("query=foo"); - assertEquals(new URI("https://example.com/path?query=foo"), request.getURI()); + assertEquals(new URI("http://example.com/path?query=foo"), request.getURI()); } @Test // SPR-16414 @@ -90,7 +92,7 @@ public class ServletServerHttpRequestTests { mockRequest.setServerName("example.com"); mockRequest.setRequestURI("/path"); mockRequest.setQueryString("query=foo%%x"); - assertEquals(new URI("https://example.com/path"), request.getURI()); + assertEquals(new URI("http://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 e23a2b34aa6..611b8b8d414 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -96,16 +96,16 @@ public class ServerHttpRequestTests { request = createHttpRequest("/").mutate().method(HttpMethod.DELETE).build(); assertEquals(HttpMethod.DELETE, request.getMethod()); - String baseUri = "https://www.aaa.org/articles/"; + String baseUri = "http://www.aaa.org/articles/"; - 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().uri(URI.create("http://bbb.org:9090/b")).build(); + assertEquals("http://bbb.org:9090/b", request.getURI().toString()); request = createHttpRequest(baseUri).mutate().path("/b/c/d").build(); - assertEquals("https://www.aaa.org/b/c/d", request.getURI().toString()); + assertEquals("http://www.aaa.org/b/c/d", request.getURI().toString()); request = createHttpRequest(baseUri).mutate().path("/app/b/c/d").contextPath("/app").build(); - assertEquals("https://www.aaa.org/app/b/c/d", request.getURI().toString()); + assertEquals("http://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 5b6e6c38e67..27134f9f3f3 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 @@ -562,7 +562,7 @@ public class RestTemplateTests { public void ioExceptionWithEmptyQueryString() throws Exception { // https://example.com/resource? - URI uri = new URI("http", "example.com", "/resource", "", null); + URI uri = new URI("https", "example.com", "/resource", "", null); given(converter.canRead(String.class, null)).willReturn(true); given(converter.getSupportedMediaTypes()).willReturn(Collections.singletonList(parseMediaType("foo/bar"))); 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 6f711fee2f4..b34ccd4d8d8 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -95,7 +95,7 @@ public class CorsUtilsTests { @Test // SPR-16362 public void isSameOriginWithDifferentSchemes() { MockServerHttpRequest request = MockServerHttpRequest - .get("https://mydomain1.com") + .get("http://mydomain1.com") .header(HttpHeaders.ORIGIN, "https://mydomain1.com") .build(); assertFalse(CorsUtils.isSameOrigin(request)); 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 6759871191f..93ecae33c89 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -57,6 +57,7 @@ public class RequestPartServletServerHttpRequestTests { ServerHttpRequest request = new RequestPartServletServerHttpRequest(this.mockRequest, "part"); URI uri = new URI("https://example.com/path?query"); + this.mockRequest.setScheme("https"); 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/util/DefaultUriBuilderFactoryTests.java b/spring-web/src/test/java/org/springframework/web/util/DefaultUriBuilderFactoryTests.java index 8f77188ee8e..4d6ed8e87b8 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,6 +13,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + package org.springframework.web.util; import java.net.URI; @@ -48,14 +49,14 @@ public class DefaultUriBuilderFactoryTests { @Test public void baseUri() { - DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://www.foo.com/v1?id=123"); + DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://example.com/v1?id=123"); URI uri = factory.uriString("/bar").port(8080).build(); - assertEquals("https://foo.com:8080/v1/bar?id=123", uri.toString()); + assertEquals("http://example.com:8080/v1/bar?id=123", uri.toString()); } @Test public void baseUriWithFullOverride() { - DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://www.foo.com/v1?id=123"); + DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://example.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", "https://example.com/1/2", uri.toString()); @@ -63,17 +64,17 @@ public class DefaultUriBuilderFactoryTests { @Test public void baseUriWithPathOverride() { - DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://www.foo.com/v1"); + DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://example.com/v1"); URI uri = factory.builder().replacePath("/baz").build(); - assertEquals("http://www.foo.com/baz", uri.toString()); + assertEquals("http://example.com/baz", uri.toString()); } @Test public void defaultUriVars() { DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://{host}/v1"); - factory.setDefaultUriVariables(singletonMap("host", "foo.com")); + factory.setDefaultUriVariables(singletonMap("host", "example.com")); URI uri = factory.uriString("/{id}").build(singletonMap("id", "123")); - assertEquals("http://www.foo.com/v1/123", uri.toString()); + assertEquals("http://example.com/v1/123", uri.toString()); } @Test @@ -81,15 +82,15 @@ 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("https://docs.spring.io/v1/bar", uri.toString()); + assertEquals("http://docs.spring.io/v1/bar", uri.toString()); } @Test public void defaultUriVarsWithEmptyVarArg() { DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory("http://{host}/v1"); - factory.setDefaultUriVariables(singletonMap("host", "foo.com")); + factory.setDefaultUriVariables(singletonMap("host", "example.com")); URI uri = factory.uriString("/bar").build(); - assertEquals("Expected delegation to build(Map) method", "http://www.foo.com/v1/bar", uri.toString()); + assertEquals("Expected delegation to build(Map) method", "http://example.com/v1/bar", uri.toString()); } @Test @@ -137,10 +138,10 @@ public class DefaultUriBuilderFactoryTests { public void encodingValuesOnlySpr14147() { DefaultUriBuilderFactory factory = new DefaultUriBuilderFactory(); factory.setEncodingMode(EncodingMode.VALUES_ONLY); - factory.setDefaultUriVariables(singletonMap("host", "www.example.com")); + factory.setDefaultUriVariables(singletonMap("host", "example.com")); UriBuilder uriBuilder = factory.uriString("http://{host}/user/{userId}/dashboard"); - assertEquals("https://www.example.com/user/john%3Bdoe/dashboard", + assertEquals("http://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 e38f3fe66d2..a3666d375cf 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2017 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -142,7 +142,7 @@ public class DefaultUriTemplateHandlerTests { Map vars = new HashMap<>(1); vars.put("userId", "john;doe"); - String template = "http://{host}/user/{userId}/dashboard"; + String template = "https://{host}/user/{userId}/dashboard"; URI actual = this.handler.expand(template, vars); 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 e61b42699b9..0decc4d160c 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 @@ -51,10 +51,10 @@ public class UriComponentsBuilderTests { @Test public void plain() throws URISyntaxException { UriComponentsBuilder builder = UriComponentsBuilder.newInstance(); - UriComponents result = builder.scheme("http").host("example.com") + UriComponents result = builder.scheme("https").host("example.com") .path("foo").queryParam("bar").fragment("baz") .build(); - assertEquals("http", result.getScheme()); + assertEquals("https", result.getScheme()); assertEquals("example.com", result.getHost()); assertEquals("foo", result.getPath()); assertEquals("bar", result.getQuery()); @@ -67,18 +67,18 @@ public class UriComponentsBuilderTests { @Test public void multipleFromSameBuilder() throws URISyntaxException { UriComponentsBuilder builder = UriComponentsBuilder.newInstance() - .scheme("http").host("example.com").pathSegment("foo"); + .scheme("https").host("example.com").pathSegment("foo"); UriComponents result1 = builder.build(); builder = builder.pathSegment("foo2").queryParam("bar").fragment("baz"); UriComponents result2 = builder.build(); - assertEquals("http", result1.getScheme()); + assertEquals("https", result1.getScheme()); assertEquals("example.com", result1.getHost()); assertEquals("/foo", result1.getPath()); URI expected = new URI("https://example.com/foo"); assertEquals("Invalid result URI", expected, result1.toUri()); - assertEquals("http", result2.getScheme()); + assertEquals("https", result2.getScheme()); assertEquals("example.com", result2.getHost()); assertEquals("/foo/foo2", result2.getPath()); assertEquals("bar", result2.getQuery()); @@ -110,7 +110,7 @@ public class UriComponentsBuilderTests { public void fromHierarchicalUri() throws URISyntaxException { URI uri = new URI("https://example.com/foo?bar#baz"); UriComponents result = UriComponentsBuilder.fromUri(uri).build(); - assertEquals("http", result.getScheme()); + assertEquals("https", result.getScheme()); assertEquals("example.com", result.getHost()); assertEquals("/foo", result.getPath()); assertEquals("bar", result.getQuery()); @@ -143,7 +143,7 @@ public class UriComponentsBuilderTests { @Test public void fromUriString() { UriComponents result = UriComponentsBuilder.fromUriString("https://www.ietf.org/rfc/rfc3986.txt").build(); - assertEquals("http", result.getScheme()); + assertEquals("https", result.getScheme()); assertNull(result.getUserInfo()); assertEquals("www.ietf.org", result.getHost()); assertEquals(-1, result.getPort()); @@ -155,7 +155,7 @@ public class UriComponentsBuilderTests { 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()); + assertEquals("https", result.getScheme()); assertEquals("arjen:foobar", result.getUserInfo()); assertEquals("java.sun.com", result.getHost()); assertEquals(80, result.getPort()); @@ -278,7 +278,7 @@ public class UriComponentsBuilderTests { @Test // SPR-14761 public void fromHttpRequestWithForwardedIPv4Host() { MockHttpServletRequest request = new MockHttpServletRequest(); - request.setScheme("http"); + request.setScheme("https"); request.setServerName("localhost"); request.setServerPort(-1); request.setRequestURI("/mvc-showcase"); @@ -287,7 +287,7 @@ public class UriComponentsBuilderTests { HttpRequest httpRequest = new ServletServerHttpRequest(request); UriComponents result = UriComponentsBuilder.fromHttpRequest(httpRequest).build(); - assertEquals("http://192.168.0.1/mvc-showcase", result.toString()); + assertEquals("https://192.168.0.1/mvc-showcase", result.toString()); } @Test // SPR-14761 @@ -491,7 +491,7 @@ public class UriComponentsBuilderTests { HttpRequest httpRequest = new ServletServerHttpRequest(request); UriComponents result = UriComponentsBuilder.fromHttpRequest(httpRequest).build(); - assertEquals("https://a.example.org/mvc-showcase", result.toString()); + assertEquals("http://a.example.org/mvc-showcase", result.toString()); } @Test // SPR-12816 diff --git a/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java b/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java index 6d6803c0443..86a66bff8d2 100644 --- a/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java +++ b/spring-web/src/test/java/org/springframework/web/util/UriUtilsTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -94,7 +94,7 @@ public class UriUtilsTests { @Test public void encode() { assertEquals("Invalid encoded result", "foo", UriUtils.encode("foo", CHARSET)); - assertEquals("Invalid encoded result", "http%3A%2F%2Fexample.com%2Ffoo%20bar", + assertEquals("Invalid encoded result", "https%3A%2F%2Fexample.com%2Ffoo%20bar", UriUtils.encode("https://example.com/foo bar", CHARSET)); } 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 fd98c781038..121cd6c77a4 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -92,24 +92,24 @@ public class WebUtilsTests { @Test public void isValidOrigin() { List allowed = Collections.emptyList(); - assertTrue(checkValidOrigin("mydomain1.com", -1, "https://mydomain1.com", allowed)); + assertTrue(checkValidOrigin("mydomain1.com", -1, "http://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("https://mydomain1.com"); - assertTrue(checkValidOrigin("mydomain2.com", -1, "https://mydomain1.com", allowed)); + allowed = Collections.singletonList("http://mydomain1.com"); + assertTrue(checkValidOrigin("mydomain2.com", -1, "http://mydomain1.com", allowed)); assertFalse(checkValidOrigin("mydomain2.com", -1, "http://mydomain3.com", allowed)); } @Test public void isSameOrigin() { - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com")); - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://www.mydomain1.com/")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com:80")); assertTrue(checkSameOrigin("https", "mydomain1.com", 443, "https://mydomain1.com")); assertTrue(checkSameOrigin("https", "mydomain1.com", 443, "https://mydomain1.com:443")); - assertTrue(checkSameOrigin("http", "mydomain1.com", 123, "https://mydomain1.com:123")); + assertTrue(checkSameOrigin("http", "mydomain1.com", 123, "http://mydomain1.com:123")); assertTrue(checkSameOrigin("ws", "mydomain1.com", -1, "ws://mydomain1.com")); assertTrue(checkSameOrigin("wss", "mydomain1.com", 443, "wss://mydomain1.com")); @@ -119,14 +119,14 @@ public class WebUtilsTests { assertFalse(checkSameOrigin("https", "mydomain1.com", -1, "https://mydomain1.com")); // Handling of invalid origins as described in SPR-13478 - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com/")); - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://www.mydomain1.com/")); - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://mydomain1.com/path")); - assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "https://www.mydomain1.com/path")); - assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://mydomain1.com/")); - assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://www.mydomain1.com/")); - assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://mydomain1.com/path")); - assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "https://www.mydomain1.com/path")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com/")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com:80")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com/path")); + assertTrue(checkSameOrigin("http", "mydomain1.com", -1, "http://mydomain1.com:80/path")); + assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com/")); + assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com:80/")); + assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com/path")); + assertFalse(checkSameOrigin("http", "mydomain2.com", -1, "http://mydomain1.com:80/path")); // Handling of IPv6 hosts as described in SPR-13525 assertTrue(checkSameOrigin("http", "[::1]", -1, "http://[::1]")); 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 8425e2f724d..b0135d80eb0 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -109,7 +109,7 @@ public class AppCacheManifestTransformerTests { containsString("/static/js/bar-bd508c62235b832d960298ca6c0b7645.js")); assertThat("should not rewrite external resources", content, containsString("//example.org/style.css")); - assertThat("should not rewrite external resources", content, containsString("https://example.org/image.png")); + assertThat("should not rewrite external resources", content, containsString("http://example.org/image.png")); // Not the same hash as Spring MVC // Hash is computed from links, and not from the linked content 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 986d1055a64..76e2f32a98d 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 -https://example.org/image.png +http://example.org/image.png FALLBACK: /main /static.html \ No newline at end of file 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 2e896fe9c8d..7dd7c2cafda 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 @@ -1,5 +1,5 @@ /* - * Copyright 2012-2018 the original author or authors. + * Copyright 2012-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -424,7 +424,7 @@ public class MvcUriComponentsBuilderTests { this.request.setServerPort(9999); this.request.setContextPath("/base"); - assertEquals("https://example.org:9999/base/api/people/123/addresses", + assertEquals("http://example.org:9999/base/api/people/123/addresses", fromController(PersonsAddressesController.class).buildAndExpand("123").toString()); } @@ -437,7 +437,7 @@ public class MvcUriComponentsBuilderTests { this.request.setServerPort(9999); this.request.setContextPath("/base"); - assertEquals("https://example.org:9999/base/api/people/123/addresses/DE", + assertEquals("http://example.org:9999/base/api/people/123/addresses/DE", fromMethodCall(on(PersonsAddressesController.class).getAddressesForCountry("DE")) .buildAndExpand("123").toString()); } 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 f8ef6606461..98462abc6b3 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -111,7 +111,7 @@ public class AppCacheManifestTransformerTests { containsString("/static/js/bar-bd508c62235b832d960298ca6c0b7645.js")); assertThat("should not rewrite external resources", content, containsString("//example.org/style.css")); - assertThat("should not rewrite external resources", content, containsString("https://example.org/image.png")); + assertThat("should not rewrite external resources", content, containsString("http://example.org/image.png")); assertThat("should generate fingerprint", content, containsString("# Hash: 4bf0338bcbeb0a5b3a4ec9ed8864107d")); 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 986d1055a64..76e2f32a98d 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 -https://example.org/image.png +http://example.org/image.png FALLBACK: /main /static.html \ No newline at end of file From 83293b39df23d91c6ea18f520912c0c4fbb5f1c2 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Wed, 27 Mar 2019 16:10:02 +0100 Subject: [PATCH 3/5] URL Cleanup - fix undesirable code change Namespace handlers are mapped based on the canonical names for XML namespaces which in Spring do not use "https" as the scheme. See gh-22680 --- .../beans/factory/xml/BeanDefinitionParserDelegate.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 eeec512b317..5b0ee945f5b 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("https://www.springframework.org/")) { + else if (namespaceUri.startsWith("http://www.springframework.org/")) { error("Unable to locate Spring NamespaceHandler for XML schema namespace [" + namespaceUri + "]", node); } else { From c90b6ea0bbab13ad63d50c044b3068f5e00406b1 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Wed, 27 Mar 2019 16:49:10 +0100 Subject: [PATCH 4/5] URL Cleanup - upgrade to more modern Xalan namespace See gh-22680 --- .../org/springframework/util/xml/TransformerUtils.java | 4 ++-- .../springframework/util/xml/TransformerUtilsTests.java | 8 +++++--- 2 files changed, 7 insertions(+), 5 deletions(-) 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 498e1c2bff3..e6f6cd3d59f 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -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("{https://xml.apache.org/xslt}indent-amount", String.valueOf(indentAmount)); + transformer.setOutputProperty("{http://xml.apache.org/xalan}indent-amount", String.valueOf(indentAmount)); } catch (IllegalArgumentException ignored) { } 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 4fe5e1f6e70..0634334ca8d 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2008 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,6 +30,8 @@ import org.junit.Test; import static org.junit.Assert.*; /** + * Unit tests for {@link TransformerUtils}. + * * @author Rick Evans * @author Arjen Poutsma */ @@ -42,7 +44,7 @@ public class TransformerUtilsTests { String indent = transformer.getOutputProperty(OutputKeys.INDENT); assertNotNull(indent); assertEquals("yes", indent); - String indentAmount = transformer.getOutputProperty("{https://xml.apache.org/xslt}indent-amount"); + String indentAmount = transformer.getOutputProperty("{http://xml.apache.org/xalan}indent-amount"); assertNotNull(indentAmount); assertEquals(String.valueOf(TransformerUtils.DEFAULT_INDENT_AMOUNT), indentAmount); } @@ -55,7 +57,7 @@ public class TransformerUtilsTests { String indent = transformer.getOutputProperty(OutputKeys.INDENT); assertNotNull(indent); assertEquals("yes", indent); - String indentAmount = transformer.getOutputProperty("{https://xml.apache.org/xslt}indent-amount"); + String indentAmount = transformer.getOutputProperty("{http://xml.apache.org/xalan}indent-amount"); assertNotNull(indentAmount); assertEquals(indentAmountProperty, indentAmount); } From 3cf2c04406cd80e35714a450f74ffbd3b1633ceb Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Wed, 27 Mar 2019 16:49:48 +0100 Subject: [PATCH 5/5] URL Cleanup - polishing See gh-22680 --- .../util/xml/SimpleNamespaceContextTests.java | 8 ++++---- .../test/web/servlet/htmlunit/HostRequestMatcher.java | 4 ++-- .../web/servlet/htmlunit/HostRequestMatcherTests.java | 4 ++-- .../web/filter/ForwardedHeaderFilterTests.java | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) 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 57e04bb62c8..ab1900fba94 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2016 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -50,7 +50,7 @@ public class SimpleNamespaceContextTests { @Test public void getNamespaceURI() { context.bindNamespaceUri(XMLConstants.XMLNS_ATTRIBUTE, additionalNamespaceUri); - assertThat("Always returns \"https://www.w3.org/2000/xmlns/\" for \"xmlns\"", + assertThat("Always returns \"http://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 \"https://www.w3.org/2000/xmlns/\"", + assertThat("Always returns \"xmlns\" for \"http://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 \"https://www.w3.org/2000/xmlns/\"", + assertThat("Returns only \"xmlns\" for \"http://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-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 60451d67640..64e6955508e 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 @@ -1,5 +1,5 @@ /* - * Copyright 2002-2018 the original author or authors. + * Copyright 2002-2019 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -43,7 +43,7 @@ import com.gargoylesoftware.htmlunit.WebRequest; * *
    WebRequestMatcher cdnMatcher = new HostMatcher("code.jquery.com:80");
    * - *

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

    The above {@code cdnMatcher} would match {@code "http://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/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 1e5c5edd722..ecf4f245918 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, "https://example.com/jquery-1.11.0.min.js"); + assertDoesNotMatch(matcher, "http://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, "https://example.com/jquery-1.11.0.min.js"); + assertMatches(matcher, "http://example.com/jquery-1.11.0.min.js"); } @Test 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 edbdb2d1782..7a11d649529 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 @@ -441,7 +441,7 @@ public class ForwardedHeaderFilterTests { this.request.addHeader(X_FORWARDED_HOST, "example.com"); this.request.addHeader(X_FORWARDED_PORT, "443"); - String location = "https://weibo.com/otherinfo/foo/bar"; + String location = "https://other.info/foo/bar"; String redirectedUrl = sendRedirect(location); assertEquals(location, redirectedUrl); }