Phillip Webb
e3a86be122
Make ConcurrentReferenceHashMap more JIT friendly
...
Update `ConcurrentReferenceHashMap` to make some methods more inline
friendly, and to manually inline a few others. These minor optimizations
don't make a great deal of difference for most applications, but seem
worthwhile since we use `ConcurrentReferenceHashMap` for many internal
caches.
Closes gh-22566
2019-03-22 20:40:05 +01:00
Phillip Webb
37255afca4
Complete migration of annotation utility methods
...
Delete `InternalAnnotationUtils` and `InternalAnnotatedElementUtils` and
migrate exclusively to the new `MergedAnnotations` API.
Closes gh-22562
2019-03-22 20:40:05 +01:00
Phillip Webb
a14bfe9a21
Migrate and verify annotation utility methods
...
Migrate all possible `AnnotationUtils` and `AnnotatedElementUtils`
method to the `MergedAnnotation` API, verify results against the old
implementations.
All migrated methods now call both the new API and the old version and
ensure that the same results or exceptions are raised. A full build of
both Spring Framework and Spring Boot has been executed to ensure, as
much as possible, that the migration does not cause unexpected
regressions.
See gh-22562
2019-03-22 20:40:05 +01:00
Phillip Webb
b91ccf038f
Start migration annotation utility methods
...
Create internal variants of the existing `AnnotationUtils` and
`AnnotatedElementUtils` classes and migrate the existing classes to
use them.
The internal variants will be used to check that the same results are
given as we migrate the utils methods to use the new `MergedAnnotations`
API.
See gh-22562
2019-03-22 20:40:05 +01:00
Phillip Webb
4972d85ae0
Create a new API for handling merged annotations
...
Add new `MergedAnnotations` and `MergedAnnotation` interfaces that
attempt to provide a uniform way for dealing with merged annotations.
Specifically, the new API provides alternatives for the static methods
in `AnnotationUtils` and `AnnotatedElementUtils` and supports Spring's
comprehensive annotation attribute `@AliasFor` features. The interfaces
also open the possibility of the same API being exposed from the
`AnnotationMetadata` interface.
Additional utility classes for collecting, filtering and selecting
annotations have also been added.
Typical usage for the new API would be something like:
MergedAnnotations.from(Example.class)
.stream(MyAnnotation.class)
.map(a -> a.getString("value"))
.forEach(System.out::println);
Closes gh-21697
2019-03-22 20:40:05 +01:00
Phillip Webb
fdacda8b01
Add AnnotationIntrospectionFailureTests
...
Add a new test class to help cover annotation introspection failure
handling. These tests were previously missing and are important to
ensure that annotation util code changes don't introduce regressions.
See gh-21697
2019-03-22 20:40:05 +01:00
Phillip Webb
8ef609a1b7
Add public variant getDeclaredMethods method
...
Add a public variant of `getDeclaredMethods` that defensively copies the
cached methods array. This is often more faster and more convenient
for users than calling `doWithLocalMethods`. We still retain most of the
benefits of the cache, namely fewer security manager calls and not as
many `Method` instances being created.
Closes gh-22580
2019-03-22 20:40:05 +01:00
Phillip Webb
9c92b21af8
Polishing
2019-03-22 20:40:05 +01:00
Spring Operator
dc6f63f610
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).
# Fixed URLs
## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.
* [ ] http://www.apache.org/licenses/ with 1 occurrences migrated to:
https://www.apache.org/licenses/ ([https](https://www.apache.org/licenses/ ) result 200).
* [ ] http://www.apache.org/licenses/LICENSE-2.0 with 6625 occurrences migrated to:
https://www.apache.org/licenses/LICENSE-2.0 ([https](https://www.apache.org/licenses/LICENSE-2.0 ) result 200).
2019-03-21 23:49:28 -05:00
Rob Winch
263868f018
Polish URL Cleanup
2019-03-21 23:47:38 -05:00
Spring Operator
d99edd154f
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 ClosedChannelException).
* [ ] 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://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 1 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://www.w3.org/TR/cors/ (200) with 19 occurrences could not be migrated:
([https](https://www.w3.org/TR/cors/ ) result SSLException).
* [ ] http://xmlunit.sourceforge.net/ (200) with 2 occurrences could not be migrated:
([https](https://xmlunit.sourceforge.net/ ) result AnnotatedConnectException).
* [ ] http://www.easymock.org (301) with 1 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://xml.org/sax/features/ (301) with 4 occurrences could not be migrated:
([https](https://xml.org/sax/features/ ) result SSLHandshakeException).
* [ ] http://xml.org/sax/features/external-general-entities (301) with 10 occurrences could not be migrated:
([https](https://xml.org/sax/features/external-general-entities ) result SSLHandshakeException).
* [ ] http://xml.org/sax/features/is-standalone (301) with 1 occurrences could not be migrated:
([https](https://xml.org/sax/features/is-standalone ) result SSLHandshakeException).
* [ ] http://xml.org/sax/features/namespace-prefixes (301) with 13 occurrences could not be migrated:
([https](https://xml.org/sax/features/namespace-prefixes ) result SSLHandshakeException).
* [ ] http://xml.org/sax/features/namespaces (301) with 12 occurrences could not be migrated:
([https](https://xml.org/sax/features/namespaces ) result SSLHandshakeException).
* [ ] http://xml.org/sax/features/namespaces-prefixes (301) with 1 occurrences could not be migrated:
([https](https://xml.org/sax/features/namespaces-prefixes ) result SSLHandshakeException).
* [ ] http://xml.org/sax/properties/lexical-handler (301) with 12 occurrences could not be migrated:
([https](https://xml.org/sax/properties/lexical-handler ) result SSLHandshakeException).
* [ ] http://www.caucho.com/hessian (302) with 6 occurrences could not be migrated:
([https](https://www.caucho.com/hessian ) result SSLHandshakeException).
* [ ] 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://mydomain2.com (302) with 22 occurrences migrated to:
/QTifZ/ ([https](https://mydomain2.com ) result IllegalArgumentException).
* [ ] http://www.jdiff.org (302) with 1 occurrences migrated to:
/VQYNZ/ ([https](https://www.jdiff.org ) result IllegalArgumentException).
* [ ] http://192.168.0.1/mvc-showcase (301) with 1 occurrences migrated to:
/admin/ ([https](https://192.168.0.1/mvc-showcase ) result IllegalArgumentException).
* [ ] 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://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://tools.ietf.org/html/rfc6202 (301) with 1 occurrences migrated to:
https://tools.ietf.org/html/rfc6202 ([https](https://tools.ietf.org/html/rfc6202 ) result ReadTimeoutException).
* [ ] http://tools.ietf.org/html/rfc7239 (301) with 7 occurrences migrated to:
https://tools.ietf.org/html/rfc7239 ([https](https://tools.ietf.org/html/rfc7239 ) result ReadTimeoutException).
* [ ] 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://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://abc.com/v2/accounts?q=12 (ConnectTimeoutException) with 1 occurrences migrated to:
https://abc.com/v2/accounts?q=12 ([https](https://abc.com/v2/accounts?q=12 ) 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://aaa.org:8080/app/b/c/d (ReadTimeoutException) with 1 occurrences migrated to:
https://aaa.org:8080/app/b/c/d ([https](https://aaa.org:8080/app/b/c/d ) result NotSslRecordException).
* [ ] http://aaa.org:8080/b/c/d (ReadTimeoutException) with 1 occurrences migrated to:
https://aaa.org:8080/b/c/d ([https](https://aaa.org:8080/b/c/d ) result NotSslRecordException).
* [ ] http://www.w3.org/2000/xmlns/ (ReadTimeoutException) with 5 occurrences migrated to:
https://www.w3.org/2000/xmlns/ ([https](https://www.w3.org/2000/xmlns/ ) result SSLException).
* [ ] http://www.w3.org/2004/08/xop/include (ReadTimeoutException) with 2 occurrences migrated to:
https://www.w3.org/2004/08/xop/include ([https](https://www.w3.org/2004/08/xop/include ) result SSLException).
* [ ] http://www.w3.org/DesignIssues/MatrixURIs.html (ReadTimeoutException) with 2 occurrences migrated to:
https://www.w3.org/DesignIssues/MatrixURIs.html ([https](https://www.w3.org/DesignIssues/MatrixURIs.html ) result SSLException).
* [ ] http://www.w3.org/TR/2004/WD-soap12-mtom-20040608/ (ReadTimeoutException) 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 SSLException).
* [ ] http://www.w3.org/TR/2005/REC-xop10-20050125/ (ReadTimeoutException) 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 SSLException).
* [ ] http://www.w3.org/TR/eventsource/ (ReadTimeoutException) with 2 occurrences migrated to:
https://www.w3.org/TR/eventsource/ ([https](https://www.w3.org/TR/eventsource/ ) result SSLException).
* [ ] 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 SSLException).
* [ ] http://www.w3.org/TR/xhtml1/ (ReadTimeoutException) with 1 occurrences migrated to:
https://www.w3.org/TR/xhtml1/ ([https](https://www.w3.org/TR/xhtml1/ ) result SSLException).
* [ ] http://www.w3.org/TR/xhtml1/diffs.html (ReadTimeoutException) with 1 occurrences migrated to:
https://www.w3.org/TR/xhtml1/diffs.html ([https](https://www.w3.org/TR/xhtml1/diffs.html ) result SSLException).
* [ ] http://www.w3.org/TR/xhtml1/dtds.html (ReadTimeoutException) with 1 occurrences migrated to:
https://www.w3.org/TR/xhtml1/dtds.html ([https](https://www.w3.org/TR/xhtml1/dtds.html ) result SSLException).
* [ ] http://www.w3.org/XML/1998/namespace (ReadTimeoutException) with 5 occurrences migrated to:
https://www.w3.org/XML/1998/namespace ([https](https://www.w3.org/XML/1998/namespace ) result SSLException).
* [ ] http://Additional-namespace-name-URI (UnknownHostException) with 1 occurrences migrated to:
https://Additional-namespace-name-URI ([https](https://Additional-namespace-name-URI ) result UnknownHostException).
* [ ] http://DOMAIN2.com (UnknownHostException) with 2 occurrences migrated to:
https://DOMAIN2.com ([https](https://DOMAIN2.com ) result UnknownHostException).
* [ ] http://Default-namespace-name-URI (UnknownHostException) with 1 occurrences migrated to:
https://Default-namespace-name-URI ([https](https://Default-namespace-name-URI ) result UnknownHostException).
* [ ] http://HOST:8080/remoting/AccountService (UnknownHostException) with 1 occurrences migrated to:
https://HOST:8080/remoting/AccountService ([https](https://HOST:8080/remoting/AccountService ) result UnknownHostException).
* [ ] http://Namespace-name-URI (UnknownHostException) with 1 occurrences migrated to:
https://Namespace-name-URI ([https](https://Namespace-name-URI ) result UnknownHostException).
* [ ] http://Unbound-namespace-name-URI (UnknownHostException) with 1 occurrences migrated to:
https://Unbound-namespace-name-URI ([https](https://Unbound-namespace-name-URI ) 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://anotherHost/mvc-showcase (UnknownHostException) with 1 occurrences migrated to:
https://anotherHost/mvc-showcase ([https](https://anotherHost/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://barfoo:8888 (UnknownHostException) with 1 occurrences migrated to:
https://barfoo:8888 ([https](https://barfoo:8888 ) 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://example/ (UnknownHostException) with 1 occurrences migrated to:
https://example/ ([https](https://example/ ) result UnknownHostException).
* [ ] http://fake-service (UnknownHostException) with 7 occurrences migrated to:
https://fake-service ([https](https://fake-service ) result UnknownHostException).
* [ ] http://foo (UnknownHostException) with 3 occurrences migrated to:
https://foo ([https](https://foo ) result UnknownHostException).
* [ ] http://foo.bar.com (UnknownHostException) with 4 occurrences migrated to:
https://foo.bar.com ([https](https://foo.bar.com ) result UnknownHostException).
* [ ] http://foobar:8088 (UnknownHostException) with 1 occurrences migrated to:
https://foobar:8088 ([https](https://foobar:8088 ) result UnknownHostException).
* [ ] http://host:port/myApp/myEndpoint/ (UnknownHostException) with 1 occurrences migrated to:
https://host:port/myApp/myEndpoint/ ([https](https://host:port/myApp/myEndpoint/ ) result UnknownHostException).
* [ ] http://jaxws.remoting.springframework.org/ (UnknownHostException) with 4 occurrences migrated to:
https://jaxws.remoting.springframework.org/ ([https](https://jaxws.remoting.springframework.org/ ) 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 (UnknownHostException) with 1 occurrences migrated to:
https://myserver ([https](https://myserver ) result UnknownHostException).
* [ ] http://myserver/logo.png (UnknownHostException) with 1 occurrences migrated to:
https://myserver/logo.png ([https](https://myserver/logo.png ) result UnknownHostException).
* [ ] http://myurl (UnknownHostException) with 12 occurrences migrated to:
https://myurl ([https](https://myurl ) result UnknownHostException).
* [ ] http://remotehost:8080/remoting/AccountService (UnknownHostException) with 2 occurrences migrated to:
https://remotehost:8080/remoting/AccountService ([https](https://remotehost:8080/remoting/AccountService ) 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://somethingDifferent (UnknownHostException) with 1 occurrences migrated to:
https://somethingDifferent ([https](https://somethingDifferent ) 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://www (UnknownHostException) with 1 occurrences migrated to:
https://www ([https](https://www ) 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://apache.org/xml/features/disallow-doctype-decl (404) with 10 occurrences migrated to:
https://apache.org/xml/features/disallow-doctype-decl ([https](https://apache.org/xml/features/disallow-doctype-decl ) 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 7 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://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).
* [ ] http://myhost.com/some/arbitrary/path (500) with 1 occurrences migrated to:
https://myhost.com/some/arbitrary/path ([https](https://myhost.com/some/arbitrary/path ) 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://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/io/Serializable.html with 1 occurrences migrated to:
https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html ([https](https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.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 150 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://pivotal.io/security/cve-2015-5211 with 1 occurrences migrated to:
https://pivotal.io/security/cve-2015-5211 ([https](https://pivotal.io/security/cve-2015-5211 ) 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://tomcat.apache.org/ with 1 occurrences migrated to:
https://tomcat.apache.org/ ([https](https://tomcat.apache.org/ ) 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 4 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/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/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://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/ajdt/ with 1 occurrences migrated to:
https://www.eclipse.org/ajdt/ ([https](https://www.eclipse.org/ajdt/ ) result 200).
* [ ] http://www.eclipse.org/aspectj/doc/next/progguide/index.html with 1 occurrences migrated to:
https://www.eclipse.org/aspectj/doc/next/progguide/index.html ([https](https://www.eclipse.org/aspectj/doc/next/progguide/index.html ) result 200).
* [ ] http://www.eclipse.org/aspectj/doc/next/progguide/semantics-joinPoints.html with 1 occurrences migrated to:
https://www.eclipse.org/aspectj/doc/next/progguide/semantics-joinPoints.html ([https](https://www.eclipse.org/aspectj/doc/next/progguide/semantics-joinPoints.html ) result 200).
* [ ] http://www.eclipse.org/aspectj/doc/released/adk15notebook/index.html with 1 occurrences migrated to:
https://www.eclipse.org/aspectj/doc/released/adk15notebook/index.html ([https](https://www.eclipse.org/aspectj/doc/released/adk15notebook/index.html ) result 200).
* [ ] http://www.eclipse.org/aspectj/doc/released/devguide/antTasks.html with 1 occurrences migrated to:
https://www.eclipse.org/aspectj/doc/released/devguide/antTasks.html ([https](https://www.eclipse.org/aspectj/doc/released/devguide/antTasks.html ) 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/doc/released/devguide/ltw.html with 1 occurrences migrated to:
https://www.eclipse.org/aspectj/doc/released/devguide/ltw.html ([https](https://www.eclipse.org/aspectj/doc/released/devguide/ltw.html ) result 200).
* [ ] http://www.eclipse.org/aspectj/doc/released/progguide/index.html with 1 occurrences migrated to:
https://www.eclipse.org/aspectj/doc/released/progguide/index.html ([https](https://www.eclipse.org/aspectj/doc/released/progguide/index.html ) result 200).
* [ ] http://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html with 1 occurrences migrated to:
https://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.html ([https](https://www.eclipse.org/aspectj/doc/released/progguide/semantics-pointcuts.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.oracle.com/technetwork/middleware/weblogic/overview/index-085209.html with 1 occurrences migrated to:
https://www.oracle.com/technetwork/middleware/weblogic/overview/index-085209.html ([https](https://www.oracle.com/technetwork/middleware/weblogic/overview/index-085209.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.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://www.wildfly.org/ with 1 occurrences migrated to:
https://www.wildfly.org/ ([https](https://www.wildfly.org/ ) 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://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-01.ibm.com/software/webservers/appserv/was/ with 1 occurrences migrated to:
https://www-01.ibm.com/software/webservers/appserv/was/ ([https](https://www-01.ibm.com/software/webservers/appserv/was/ ) 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.eclipse.org/aspectj with 2 occurrences migrated to:
https://www.eclipse.org/aspectj ([https](https://www.eclipse.org/aspectj ) 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.jboss.org/jbossas/ with 1 occurrences migrated to:
https://www.jboss.org/jbossas/ ([https](https://www.jboss.org/jbossas/ ) 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://glassfish.dev.java.net/ with 1 occurrences migrated to:
https://glassfish.dev.java.net/ ([https](https://glassfish.dev.java.net/ ) 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/jaxp/properties/schemaLanguage with 1 occurrences migrated to:
https://java.sun.com/xml/jaxp/properties/schemaLanguage ([https](https://java.sun.com/xml/jaxp/properties/schemaLanguage ) 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://java.sun.com/xml/stream/properties/report-cdata-event with 1 occurrences migrated to:
https://java.sun.com/xml/stream/properties/report-cdata-event ([https](https://java.sun.com/xml/stream/properties/report-cdata-event ) 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.springsource.org/download with 1 occurrences migrated to:
https://www.springsource.org/download ([https](https://www.springsource.org/download ) 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://java.sun.com/jsp/jstl/core 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://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 3 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://samples.springframework.org/flight with 27 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.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 79 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
2019-03-21 15:08:55 -05:00
Rob Winch
c8732d0258
Polish URL Cleanup
...
Closes gh-22617
2019-03-21 15:07:40 -05:00
Spring Operator
6a0ef1aa64
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).
# HTTP URLs that Could Not Be Fixed
These URLs were unable to be fixed. Please review them to see if they can be manually resolved.
* 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).
# Fixed URLs
## Fixed But Review Recommended
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://www.kbcafe.com/rss/atom.xsd.xml (ConnectTimeoutException) with 1 occurrences migrated to:
https://www.kbcafe.com/rss/atom.xsd.xml ([https](https://www.kbcafe.com/rss/atom.xsd.xml ) result ConnectTimeoutException).
* http://domain1.com (UnknownHostException) with 2 occurrences migrated to:
https://domain1.com ([https](https://domain1.com ) result UnknownHostException).
* http://domain2.com (UnknownHostException) with 1 occurrences migrated to:
https://domain2.com ([https](https://domain2.com ) result UnknownHostException).
* http://mydomain1.com,http://mydomain2.com (UnknownHostException) with 1 occurrences migrated to:
https://mydomain1.com,http://mydomain2.com ([https](https://mydomain1.com,https://mydomain2.com ) result UnknownHostException).
* http://mydomain2.com (UnknownHostException) with 2 occurrences migrated to:
https://mydomain2.com ([https](https://mydomain2.com ) result UnknownHostException).
* http://mydomain3.com,http://mydomain4.com (UnknownHostException) with 1 occurrences migrated to:
https://mydomain3.com,http://mydomain4.com ([https](https://mydomain3.com,https://mydomain4.com ) result UnknownHostException).
* http://www.springframework.org/schema/beans/factory/xml/support/CustomNamespaceHandlerTests.xsd (404) with 1 occurrences migrated to:
https://www.springframework.org/schema/beans/factory/xml/support/CustomNamespaceHandlerTests.xsd ([https](https://www.springframework.org/schema/beans/factory/xml/support/CustomNamespaceHandlerTests.xsd ) result 404).
## Fixed Success
These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.
* http://example.com with 1 occurrences migrated to:
https://example.com ([https](https://example.com ) result 200).
* http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd (301) with 2 occurrences migrated to:
https://hibernate.org/dtd/hibernate-mapping-3.0.dtd ([https](https://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd ) result 200).
* http://testng.org/testng-1.0.dtd with 3 occurrences migrated to:
https://testng.org/testng-1.0.dtd ([https](https://testng.org/testng-1.0.dtd ) result 200).
* http://tiles.apache.org/dtds/tiles-config_2_0.dtd with 2 occurrences migrated to:
https://tiles.apache.org/dtds/tiles-config_2_0.dtd ([https](https://tiles.apache.org/dtds/tiles-config_2_0.dtd ) result 200).
* http://tiles.apache.org/dtds/tiles-config_2_1.dtd with 2 occurrences migrated to:
https://tiles.apache.org/dtds/tiles-config_2_1.dtd ([https](https://tiles.apache.org/dtds/tiles-config_2_1.dtd ) result 200).
* http://tiles.apache.org/dtds/tiles-config_3_0.dtd with 4 occurrences migrated to:
https://tiles.apache.org/dtds/tiles-config_3_0.dtd ([https](https://tiles.apache.org/dtds/tiles-config_3_0.dtd ) result 200).
* http://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd with 1 occurrences migrated to:
https://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd ([https](https://www.quartz-scheduler.org/xml/job_scheduling_data_1_8.xsd ) result 200).
* http://www.springframework.org/dtd/spring-beans-2.0.dtd with 168 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-2.0.xsd with 68 occurrences migrated to:
https://www.springframework.org/schema/aop/spring-aop-2.0.xsd ([https](https://www.springframework.org/schema/aop/spring-aop-2.0.xsd ) result 200).
* http://www.springframework.org/schema/aop/spring-aop-2.5.xsd with 11 occurrences migrated to:
https://www.springframework.org/schema/aop/spring-aop-2.5.xsd ([https](https://www.springframework.org/schema/aop/spring-aop-2.5.xsd ) result 200).
* http://www.springframework.org/schema/aop/spring-aop-3.0.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/aop/spring-aop-3.0.xsd ([https](https://www.springframework.org/schema/aop/spring-aop-3.0.xsd ) result 200).
* http://www.springframework.org/schema/aop/spring-aop.xsd with 7 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-2.0.xsd with 112 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans-2.0.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-2.0.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans-2.5.xsd with 46 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans-2.5.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-2.5.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans-3.0.xsd with 10 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans-3.0.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-3.0.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans-3.1.xsd with 33 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans-3.1.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-3.1.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans-3.2.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans-3.2.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-3.2.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans-4.0.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans-4.0.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-4.0.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans-4.1.xsd with 3 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans-4.1.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-4.1.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans-4.2.xsd with 4 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans-4.2.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-4.2.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans-4.3.xsd with 4 occurrences migrated to:
https://www.springframework.org/schema/beans/spring-beans-4.3.xsd ([https](https://www.springframework.org/schema/beans/spring-beans-4.3.xsd ) result 200).
* http://www.springframework.org/schema/beans/spring-beans.xsd with 142 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 10 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-2.5.xsd with 41 occurrences migrated to:
https://www.springframework.org/schema/context/spring-context-2.5.xsd ([https](https://www.springframework.org/schema/context/spring-context-2.5.xsd ) result 200).
* http://www.springframework.org/schema/context/spring-context-3.0.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/context/spring-context-3.0.xsd ([https](https://www.springframework.org/schema/context/spring-context-3.0.xsd ) result 200).
* http://www.springframework.org/schema/context/spring-context-3.1.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/context/spring-context-3.1.xsd ([https](https://www.springframework.org/schema/context/spring-context-3.1.xsd ) result 200).
* http://www.springframework.org/schema/context/spring-context-3.2.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/context/spring-context-3.2.xsd ([https](https://www.springframework.org/schema/context/spring-context-3.2.xsd ) result 200).
* http://www.springframework.org/schema/context/spring-context-4.0.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/context/spring-context-4.0.xsd ([https](https://www.springframework.org/schema/context/spring-context-4.0.xsd ) result 200).
* http://www.springframework.org/schema/context/spring-context-4.2.xsd with 4 occurrences migrated to:
https://www.springframework.org/schema/context/spring-context-4.2.xsd ([https](https://www.springframework.org/schema/context/spring-context-4.2.xsd ) result 200).
* http://www.springframework.org/schema/context/spring-context-4.3.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/context/spring-context-4.3.xsd ([https](https://www.springframework.org/schema/context/spring-context-4.3.xsd ) result 200).
* http://www.springframework.org/schema/context/spring-context.xsd with 10 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-3.0.xsd with 9 occurrences migrated to:
https://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd ([https](https://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd ) result 200).
* http://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd with 5 occurrences migrated to:
https://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd ([https](https://www.springframework.org/schema/jdbc/spring-jdbc-3.1.xsd ) result 200).
* http://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd with 9 occurrences migrated to:
https://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd ([https](https://www.springframework.org/schema/jdbc/spring-jdbc-4.2.xsd ) result 200).
* http://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd ([https](https://www.springframework.org/schema/jdbc/spring-jdbc-4.3.xsd ) result 200).
* http://www.springframework.org/schema/jdbc/spring-jdbc.xsd with 8 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-3.1.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/jee/spring-jee-3.1.xsd ([https](https://www.springframework.org/schema/jee/spring-jee-3.1.xsd ) result 200).
* http://www.springframework.org/schema/jms/spring-jms-4.1.xsd with 9 occurrences migrated to:
https://www.springframework.org/schema/jms/spring-jms-4.1.xsd ([https](https://www.springframework.org/schema/jms/spring-jms-4.1.xsd ) result 200).
* http://www.springframework.org/schema/jms/spring-jms-4.2.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/jms/spring-jms-4.2.xsd ([https](https://www.springframework.org/schema/jms/spring-jms-4.2.xsd ) result 200).
* http://www.springframework.org/schema/lang/spring-lang-2.0.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/lang/spring-lang-2.0.xsd ([https](https://www.springframework.org/schema/lang/spring-lang-2.0.xsd ) result 200).
* http://www.springframework.org/schema/lang/spring-lang-2.5.xsd with 3 occurrences migrated to:
https://www.springframework.org/schema/lang/spring-lang-2.5.xsd ([https](https://www.springframework.org/schema/lang/spring-lang-2.5.xsd ) result 200).
* http://www.springframework.org/schema/lang/spring-lang-3.0.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/lang/spring-lang-3.0.xsd ([https](https://www.springframework.org/schema/lang/spring-lang-3.0.xsd ) result 200).
* http://www.springframework.org/schema/lang/spring-lang-3.1.xsd with 5 occurrences migrated to:
https://www.springframework.org/schema/lang/spring-lang-3.1.xsd ([https](https://www.springframework.org/schema/lang/spring-lang-3.1.xsd ) result 200).
* http://www.springframework.org/schema/lang/spring-lang-4.2.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/lang/spring-lang-4.2.xsd ([https](https://www.springframework.org/schema/lang/spring-lang-4.2.xsd ) result 200).
* http://www.springframework.org/schema/lang/spring-lang.xsd with 1 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-3.1.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd ([https](https://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd ) result 200).
* http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd ([https](https://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd ) result 200).
* http://www.springframework.org/schema/mvc/spring-mvc.xsd with 26 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/task/spring-task-4.1.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/task/spring-task-4.1.xsd ([https](https://www.springframework.org/schema/task/spring-task-4.1.xsd ) result 200).
* http://www.springframework.org/schema/task/spring-task.xsd with 6 occurrences migrated to:
https://www.springframework.org/schema/task/spring-task.xsd ([https](https://www.springframework.org/schema/task/spring-task.xsd ) result 200).
* http://www.springframework.org/schema/tx/spring-tx-2.5.xsd with 3 occurrences migrated to:
https://www.springframework.org/schema/tx/spring-tx-2.5.xsd ([https](https://www.springframework.org/schema/tx/spring-tx-2.5.xsd ) result 200).
* http://www.springframework.org/schema/tx/spring-tx-4.0.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/tx/spring-tx-4.0.xsd ([https](https://www.springframework.org/schema/tx/spring-tx-4.0.xsd ) result 200).
* http://www.springframework.org/schema/tx/spring-tx.xsd with 2 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-2.0.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/util/spring-util-2.0.xsd ([https](https://www.springframework.org/schema/util/spring-util-2.0.xsd ) result 200).
* http://www.springframework.org/schema/util/spring-util-2.5.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/util/spring-util-2.5.xsd ([https](https://www.springframework.org/schema/util/spring-util-2.5.xsd ) result 200).
* http://www.springframework.org/schema/util/spring-util-3.0.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/util/spring-util-3.0.xsd ([https](https://www.springframework.org/schema/util/spring-util-3.0.xsd ) result 200).
* http://www.springframework.org/schema/util/spring-util-3.1.xsd with 2 occurrences migrated to:
https://www.springframework.org/schema/util/spring-util-3.1.xsd ([https](https://www.springframework.org/schema/util/spring-util-3.1.xsd ) result 200).
* http://www.springframework.org/schema/util/spring-util-4.1.xsd with 1 occurrences migrated to:
https://www.springframework.org/schema/util/spring-util-4.1.xsd ([https](https://www.springframework.org/schema/util/spring-util-4.1.xsd ) result 200).
* http://www.springframework.org/schema/util/spring-util-4.2.xsd with 4 occurrences migrated to:
https://www.springframework.org/schema/util/spring-util-4.2.xsd ([https](https://www.springframework.org/schema/util/spring-util-4.2.xsd ) result 200).
* http://www.springframework.org/schema/util/spring-util.xsd with 2 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 11 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://mydomain1.com with 2 occurrences migrated to:
https://mydomain1.com ([https](https://mydomain1.com ) result 301).
* http://www.springframework.org with 1 occurrences migrated to:
https://www.springframework.org ([https](https://www.springframework.org ) result 301).
* http://help.sap.com/saphelp_hanaplatform/helpdata/en/20/a78d3275191014b41bae7c4a46d835/content.htm with 1 occurrences migrated to:
https://help.sap.com/saphelp_hanaplatform/helpdata/en/20/a78d3275191014b41bae7c4a46d835/content.htm ([https](https://help.sap.com/saphelp_hanaplatform/helpdata/en/20/a78d3275191014b41bae7c4a46d835/content.htm ) result 302).
* http://java.sun.com/dtd/properties.dtd with 4 occurrences migrated to:
https://java.sun.com/dtd/properties.dtd ([https](https://java.sun.com/dtd/properties.dtd ) 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/javaee/web-fragment_3_0.xsd with 1 occurrences migrated to:
https://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd ([https](https://java.sun.com/xml/ns/javaee/web-fragment_3_0.xsd ) result 302).
* http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd with 12 occurrences migrated to:
https://java.sun.com/xml/ns/persistence/persistence_1_0.xsd ([https](https://java.sun.com/xml/ns/persistence/persistence_1_0.xsd ) result 302).
* http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd with 1 occurrences migrated to:
https://java.sun.com/xml/ns/persistence/persistence_2_0.xsd ([https](https://java.sun.com/xml/ns/persistence/persistence_2_0.xsd ) result 302).
# Ignored
These URLs were intentionally ignored.
* http://java.sun.com/xml/ns/j2ee with 2 occurrences
* http://java.sun.com/xml/ns/javaee with 2 occurrences
* http://java.sun.com/xml/ns/persistence with 27 occurrences
* http://localhost:8080 with 3 occurrences
* http://samples.springframework.org/flight with 3 occurrences
* http://www.foo.com/schema/component with 2 occurrences
* http://www.greeting.com/goodbye/ with 1 occurrences
* http://www.greeting.com/hello/ with 1 occurrences
* http://www.quartz-scheduler.org/xml/JobSchedulingData with 2 occurrences
* http://www.springframework.org/schema/aop with 176 occurrences
* http://www.springframework.org/schema/beans with 715 occurrences
* http://www.springframework.org/schema/beans/test with 2 occurrences
* http://www.springframework.org/schema/c with 9 occurrences
* http://www.springframework.org/schema/cache with 20 occurrences
* http://www.springframework.org/schema/context with 126 occurrences
* http://www.springframework.org/schema/jdbc with 66 occurrences
* http://www.springframework.org/schema/jee with 2 occurrences
* http://www.springframework.org/schema/jms with 20 occurrences
* http://www.springframework.org/schema/lang with 27 occurrences
* http://www.springframework.org/schema/mvc with 58 occurrences
* http://www.springframework.org/schema/oxm with 2 occurrences
* http://www.springframework.org/schema/p with 16 occurrences
* http://www.springframework.org/schema/task with 14 occurrences
* http://www.springframework.org/schema/tx with 12 occurrences
* http://www.springframework.org/schema/util with 28 occurrences
* http://www.springframework.org/schema/websocket with 22 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 375 occurrences
* http://www.w3.org/2005/Atom with 2 occurrences
2019-03-21 15:07:40 -05:00
Rossen Stoyanchev
4a397f108a
ResourceDecoder supports filename hint
...
Closes gh-22267
2019-03-19 17:50:06 -04:00
Sebastien Deleuze
1382220021
Add support for Deferred to ReactiveAdapterRegistry
...
See gh-19975
2019-03-15 18:22:19 +01:00
stsypanov
29f382b04e
Simplify String concatenation
2019-03-14 17:24:33 +01:00
Juergen Hoeller
fe56aa6fa4
Polishing
2019-03-13 15:32:24 +01:00
Juergen Hoeller
62c923711d
Consistent use of empty array constants in ReflectionUtils
...
Closes gh-22567
2019-03-12 22:44:15 +01:00
Juergen Hoeller
a7adafdb6a
Larger initial size for ASM type descriptor StringBuilder
...
Closes gh-22565
2019-03-12 22:44:00 +01:00
Juergen Hoeller
40c62139ae
Early resolution of unique factory methods in configuration classes
...
Includes consistent bean class resolution in the enhancement step as well as general reflection optimizations for user-declared methods.
Closes gh-22420
2019-03-12 17:17:24 +01:00
Сергей Цыпанов
a35adc6ea6
Add missing break statements to stop looping when result is known
...
Closes gh-22573
2019-03-12 13:15:59 +01:00
Juergen Hoeller
e3a9826e56
Bypass method traversal for annotation introspection if possible
...
The isCandidateClass mechanism is consistently used for a bypass check before method traversal attempts. While by default this is only bypassing standard java types, the same mechanism can be used with index metadata which indicates non-presence of certain annotations.
See gh-22420
2019-03-12 00:12:22 +01:00
Sam Brannen
b09e6c8aaf
Polishing
2019-03-09 16:53:09 +01:00
Tomasz Linkowski
8ddb1e7201
Fix a typo in @NonNullFields
...
Prior to this commit, `@NonNullFields` had a redundant `@see NonNullFields`
declaration instead of `@see NonNullApi` in its JavaDoc.
Closes gh-22553
2019-03-09 16:46:15 +01:00
Sam Brannen
b109f140a7
Improve documentation for annotation filters with component scanning
...
Prior to this commit the documentation for annotation-based include and
exclude filters used with component scanning did not explicitly mention
the fact that annotations are considered a match if they are either
present or meta-present on candidate classes.
This commit improves the documentation in this regard.
See gh-22551
2019-03-09 16:30:30 +01:00
Juergen Hoeller
c04eaf6b84
Merge branch '5.1.x'
2019-03-08 23:06:37 +01:00
Juergen Hoeller
fe0c2d6b6e
StringUtils.toStringArray/CollectionUtils.toIterator handle null input
...
Closes gh-22547
2019-03-08 22:40:18 +01:00
Juergen Hoeller
f5248ff13f
Upgrade to ASM 7.1
...
Closes gh-22503
2019-03-08 09:58:16 +01:00
Juergen Hoeller
ac4c37d8e2
Merge branch '5.1.x'
2019-03-07 18:05:46 +01:00
Juergen Hoeller
6c87ef09c1
Polishing
2019-03-07 17:55:32 +01:00
stsypanov
cb4d6f097c
Use StringJoiner where possible to simplify String joining
2019-03-07 16:51:18 +01:00
Sam Brannen
f087fd5a93
Report offending class in SpringFactoriesLoader in exception message
...
Prior to this commit, the exception message generated by
instantiateFactory() in SpringFactoriesLoader did not report the
offending class in the top-level exception message. The offending class
was in fact included in the message of the nested exception, but the
top-level exception message on its own was a bit misleading.
This commit improves the diagnostics for such failures by including the
offending class and the target factory type in the top-level exception
message.
Closes gh-22453
2019-03-06 16:44:41 +01:00
Konrad Kamiński
9302cb2f85
Support Kotlin suspending functions in MethodParameter
...
Before this commit, the return type for Kotlin suspending functions
(as returned by MethodParameter#getParameterType and
MethodParameter#getGenericReturnType methods) was incorrect.
This change leverages Kotlin reflection instead of Java one
to return the correct type.
Closes gh-21058
2019-03-06 10:14:34 +01:00
Rossen Stoyanchev
9e7f557b4a
Updates for buffer management in RSocket
...
- Integration tests run with zero copy configuration.
- RSocketBufferLeakTests has been added.
- Updates in MessagingRSocket to ensure proper release
See gh-21987
2019-03-04 23:35:43 -05:00
Sam Brannen
70cf597484
Remove obsolete overview.html files
2019-03-04 14:07:48 +01:00
Brian Clozel
3ac1dddb9d
Merge branch '5.1.x'
2019-03-04 13:58:41 +01:00
Andrew Tulloch
090aceb3ad
Fix repeated calls to DataBuffer.write(CharSequence, Charset)
...
Prior to this commit, repeated calls to `DataBuffer.write(CharSequence,
Charset)` would not write the given chars to the expected position in
the original buffer.
This commit fixes that by writing to the `outBuffer.position()`, offset
by the current `DataBuffer.writePosition()`.
Fixes gh-22484
2019-03-04 13:37:06 +01:00
Juergen Hoeller
a7db395d9b
Merge branch '5.1.x'
2019-02-28 19:29:04 +01:00
Juergen Hoeller
5d8a34fee6
Only prefer JDK 9+ Lookup.defineClass API if ClassLoader matches
...
Closes gh-22416
2019-02-28 19:28:03 +01:00
Juergen Hoeller
fc7948c96b
Merge branch '5.1.x'
2019-02-27 17:34:46 +01:00
Juergen Hoeller
e583da0725
Polishing
2019-02-27 17:26:53 +01:00
Sam Brannen
40da78e9df
Polishing
2019-02-27 16:30:05 +01:00
Juergen Hoeller
bc0317af3b
Merge branch '5.1.x'
2019-02-25 17:57:49 +01:00
Juergen Hoeller
9eb7f7e294
Polishing
2019-02-25 17:36:37 +01:00
Sebastien Deleuze
dc8fb8bc5e
Use StringJoiner where possible to simplify String joining
2019-02-25 12:11:57 +01:00
olszewskimichal
60a7909fca
getFirst - check that values is not empty
2019-02-16 11:55:23 +01:00
Juergen Hoeller
6db75956b9
Merge branch '5.1.x'
2019-02-15 17:16:28 +01:00
Juergen Hoeller
e307dd58db
Polishing
2019-02-15 17:06:11 +01:00
stsypanov
5e29ea30a3
Use StringJoiner where possible to simplify String joining
2019-02-15 14:55:35 +01:00
stsypanov
e7dc439f90
Simplify ConcurrentReferenceHashMap
2019-02-15 14:27:43 +01:00
stsypanov
d2bfca7900
Extract duplicated code into a separate method
2019-02-15 14:26:44 +01:00
stsypanov
92053bb84e
Some very simple improvements regarding ArrayList
2019-02-15 14:25:13 +01:00
Juergen Hoeller
5e0cd9fb60
Merge branch '5.1.x'
2019-02-14 13:39:58 +01:00
Juergen Hoeller
ac0e5d8ec6
DefaultConversionService properly converts Object[] to int[]
...
Closes gh-22410
2019-02-14 13:38:29 +01:00
Juergen Hoeller
4e47006a17
Merge branch '5.1.x'
2019-02-12 09:09:19 +01:00
Juergen Hoeller
106a757098
Polishing
2019-02-12 09:07:58 +01:00
Juergen Hoeller
8637540678
Expose empty annotation array as empty AnnotationAttributes array
...
Closes gh-22405
2019-02-12 09:07:51 +01:00
Brian Clozel
fb4a28f904
Polish
...
See gh-22340
2019-02-11 10:45:50 +01:00
Juergen Hoeller
783a7ca46b
Merge branch '5.1.x'
2019-02-08 18:16:27 +01:00
Juergen Hoeller
ba0c48b933
Polishing
2019-02-08 18:02:28 +01:00
Brian Clozel
05d7ab4328
Merge branch '5.1.x'
2019-02-06 20:00:02 +01:00
Brian Clozel
ef8652615c
Log exception at ERROR level in CompositeLog
...
Fixes gh-22364
2019-02-06 19:58:41 +01:00
Juergen Hoeller
34ddb1e3cd
Merge branch '5.1.x'
2019-02-05 16:32:58 +01:00
Juergen Hoeller
9895e44d73
Polishing
2019-02-05 16:03:24 +01:00
Juergen Hoeller
643a68f81b
Detect existing jar URLs from URLClassLoader.getURLs()
...
Closes gh-22346
2019-02-05 16:02:50 +01:00
Sebastien Deleuze
0b9522c84e
Migrate Kotlin Mockito tests to Mockk
...
Closes gh-22345
2019-02-05 15:47:08 +01:00
Juergen Hoeller
4c9ae6494f
Concurrency/nullability fine-tuning in MimeType(Utils)
...
See gh-22340
2019-02-05 15:38:41 +01:00
Brian Clozel
1bf3b36ce8
Polish
...
See gh-22340
2019-02-05 15:06:33 +01:00
Brian Clozel
ba8849dda3
Avoid MimeType garbage creation
...
Prior to this commit, calls to `MimeType` and `MediaType` would create a
significant amount of garbage:
* during startup time, in the static sections of `MimeType` and
`MediaType` when creating well-known types
* at runtime, when parsing media types for content negotiation or
writing known media types as strings in HTTP response headers
This commit does the following:
* Avoid parsing the well-known types and use regular constructors
instead
* Cache types in a simple LRU cache once they've been parsed, since an
application is likely to deal with a limited set of types
* Avoid using `java.util.stream.Stream` in hot code paths
Benchmarks show that a complete revision of the `MimeTypeUtils` parser
is not required, since the LRU cache is enough there.
Closes gh-22340
2019-02-05 14:33:43 +01:00
Brian Clozel
862fa557bd
Avoid java.util.stream.Stream usage in hot paths
...
Prior to this commit, profiling sessions would show that using
`java.util.stream.Stream` in some hot code paths creates significant
garbage.
Where streams aren't really required, this commit turns those snippets
into imperative logic because those are likely to be called once or
multiple times per request.
Closes gh-22341
2019-02-05 12:14:51 +01:00
Juergen Hoeller
d27bae245a
Polishing
2019-02-05 00:45:28 +01:00
Juergen Hoeller
a27a6470f7
Polishing
2019-02-05 00:10:22 +01:00
stsypanov
248d3f8e8b
Use AtomicInteger instead of unsafe increment on volatile fields
2019-02-04 23:22:20 +01:00
Juergen Hoeller
80385ced4c
Remove java.sql dependency from ReflectionUtils/TransactionDefinition
...
Fixes gh-21996
2019-01-28 22:50:11 +01:00
Arjen Poutsma
4732f83d70
Fix Java 9 Build
...
Fix Java 9 build by replacing deprecated method.
2019-01-24 15:44:58 +01:00
Brian Clozel
2b65d0e51f
Fix error when writing empty String to DataBuffer
...
Prior to this commit, `DataBuffer.write` would throw an
`IllegalStateException` when called with an empty `String`, since the
`CharsetEncoder` would be flushed on an incorrent state.
This commit skips entirely the encoding phase for empty `String`.
Fixes #22262
2019-01-17 11:09:48 -05:00
Juergen Hoeller
72dddfbc7b
Polishing
2019-01-09 12:26:58 +01:00
Andrzej Leśkiewicz
952045c216
SPR-17606 @Profile mishandles "not" operand mixed with "&" ( #2066 )
...
Correct handling of not/and expressions in ProfilesParser
Issue: SPR-17606
2019-01-08 22:24:15 +01:00
Juergen Hoeller
f56fa91430
Polishing
2019-01-08 17:11:34 +01:00
Juergen Hoeller
9cb5369cb9
DependencyDescriptor supports TypeDescriptor resolution for fields
...
This allows for proper nested type conversion in @Value Optional fields analogous to method parameters, through a new TypeDescriptor-based method in the TypeConverter SPI. As an additional and less involved measure that is worth backporting, DefaultListableBeanFactory defensively checks for pre-converted Optional wrappers.
Issue: SPR-17607
2019-01-08 17:11:27 +01:00
Rossen Stoyanchev
673a20cb10
Defensive initialization of AsyncXMLInputFactory
...
Aalto's InputFactoryImpl already disables loading of external entities
by default (property "javax.xml.stream.isSupportingExternalEntities").
This commit goes further by applying the same defensive measures as we
do elsewhere for XMLInputFactory, which disables DTD completely.
Arguably there is no good reason to enable that by default in WebFlux.
2019-01-07 13:52:46 -05:00
Rossen Stoyanchev
4b24bcb799
More accurate checks for presence of MediaType.ALL
...
Typically a straight up equals as well as Collections#contains
checks for MediaType.ALL is susceptible to the presence of
media type parameters.
This commits adds equalsTypeAndSubtype as well as an
isPresentIn(Collection<MimeType>) methods to MimeType to faciliate
with checks for MediaType.ALL.
Issue: SPR-17550
2019-01-02 14:32:50 -05:00
Sebastien Deleuze
78a6429c32
Document NumberUtils.parseNumber() trim behavior
...
Issue: SPR-9523
2018-12-28 09:58:25 +01:00
Juergen Hoeller
31a24720a6
Consistent support for EnumSet subclasses in CollectionFactory
...
Issue: SPR-17619
2018-12-25 13:20:31 +01:00
Arjen Poutsma
5a8b8b11e4
Add test for calculateCapacity
...
Issue: SPR-17558
Closes gh-2054
2018-12-20 21:34:15 +01:00
Arjen Poutsma
a00be62b04
Calculating capacity before allocation.
...
This commit optimizes the `CharSequenceEncoder` to allocate `DataBuffer`
instances with a predicted capacity.
Issue: SPR-17558
2018-12-20 21:33:50 +01:00
Brian Clozel
4955d08f28
Use DataBuffer.write in CharSequenceEncoder
...
Since SPR-17558, `DataBuffer` now offers a new method to write Strings
to them. This commit makes `CharSequenceEncoder` use that.
Issue: SPR-17558
2018-12-20 21:33:44 +01:00
Brian Clozel
6361b0cb23
Write CharSequence instances to DataBuffers
...
Prior to this commit, one could write a `CharSequence` to an existing
`DataBuffer` instance by turning it into a byte array or `ByteBuffer`
first. This had the following disadvantages:
1. Memory allocation was not efficient (not leveraging pooled memory
when available)
2. Dealing with `CharsetEncoder` is not always easy
3. `DataBuffer` implementations, like `NettyDataBuffer` can use
optimized implementations in some cases
This commit adds a new `DataBuffer#write(CharSequence, Charset)` method
for those cases and also an `ensureCapacity` method useful for checking
that the current buffer has enough capacity to write to it..
Issue: SPR-17558
2018-12-20 21:33:33 +01:00
stsypanov
112cc70231
Improve performance of ConcurrentReferenceHashMap creation
2018-12-13 16:57:48 +01:00
igor-suhorukov
93189a6733
String.indexOf() expressions can be replaced with a call to the String.contains() method available in Java 5 and newer.
2018-12-13 12:29:31 +01:00
Juergen Hoeller
c48672c4c7
ParameterNameDiscoverer may return individual null entries in an array
...
Issue: SPR-17565
2018-12-12 21:56:17 +01:00
Rossen Stoyanchev
38ae282c3b
Update log category precision for all tests
...
Replace the full category capped at 36 chars with the class name only
and 1 char per package, e.g. org.apache.commons.Foo -> o.a.c.Foo
2018-12-12 11:40:33 -05:00
Juergen Hoeller
0ad35053fb
Upgrade to CGLIB 3.2.10
...
Includes upgrade to JarJar 1.7.2 and Tomcat 9.0.14.
Issue: SPR-17595
2018-12-12 16:03:31 +01:00
Juergen Hoeller
6eb0a60df9
Polishing
2018-12-12 11:16:53 +01:00
Juergen Hoeller
aaaf81ed99
Polishing
2018-12-06 15:53:57 +01:00
Juergen Hoeller
50e5bdb813
Clarified VfsResource constructor
...
Issue: SPR-17563
2018-12-04 22:09:06 +01:00
Juergen Hoeller
6d7827e36b
Polishing
2018-12-03 23:53:00 +01:00
Juergen Hoeller
d5dab12909
NettyDataBufferFactory.join returns single-element buffer as-is
...
Issue: SPR-17560
2018-12-03 23:52:35 +01:00
Sam Brannen
a528407d0c
Suppress warning
2018-11-23 18:05:47 +01:00
Sam Brannen
81fde5ec41
Ensure that MethodParameter.findParameterIndex() is thread-safe
...
Prior to this commit, parallel invocations of
MethodParameter.findParameterIndex() (invoked indirectly via
SynthesizingMethodParameter.forParameter() and
MethodParameter.forParameter()) could intermittently lead to an
IllegalArgumentException being thrown due to a race condition in the
internal implementation of the JDK's
java.lang.reflect.Executable.getParameters() method.
This commit addresses this issue by introducing a fallback for-loop
that iterates over the candidate parameters a second time using
equality checks instead of identity checks.
Issue: SPR-17534
2018-11-23 17:37:20 +01:00
Juergen Hoeller
56234fe877
Polishing
2018-11-22 22:03:36 +01:00
Juergen Hoeller
262c702da4
CachingMetadataReaderFactory releases shared cache Map on clearCache()
...
LocalResourceCache properly initializes cacheLimit on construction.
Issue: SPR-17527
2018-11-22 11:20:47 +01:00
Juergen Hoeller
fef0e21d8b
Remove unused LinkedList import
2018-11-20 22:16:51 +01:00
Juergen Hoeller
8c7579eba8
Polishing
2018-11-20 22:06:44 +01:00
stsypanov
02d3cfa42d
Use ArrayList instead of LinkedList
2018-11-20 21:54:51 +01:00
Vojtech Janota
12f168290d
SPR-17492: FastByteArrayOutputStream.read byte-to-int conversion
2018-11-20 17:08:01 +01:00
Arjen Poutsma
63275ae2b7
Add Test for LeakAwareDataBufferFactory
2018-11-19 16:56:25 +01:00
Stephane Nicoll
7b6f2f8fb3
Polish contribution
...
Closes gh-2019
2018-11-19 08:45:33 +01:00
Hanope
bfb49c7249
Fix typos
...
See gh-2019
2018-11-19 08:41:21 +01:00
Arjen Poutsma
539cfc24c6
Refactor AbstractEncoderTestCase
...
Refactor AbstractEncoderTestCase to resemble AbstractDecoderTestCase
Issue: SPR-17449
2018-11-16 14:33:26 +01:00
Arjen Poutsma
39ce989d1a
Add and use AbstractDecoderTestCase
...
Introduce new base test case for decoder tests, and use it.
Issue: SPR-17449
2018-11-16 14:33:26 +01:00
Rossen Stoyanchev
ba3fef3e8a
Refactor media types parsing improvements
...
Issue: SPR-17459
2018-11-13 23:02:09 -05:00
Dimitrios Liapis
f4b05dc2e7
MediaType parsing supports comma inside quotes
...
Issue: SPR-17459
2018-11-13 16:59:57 -05:00
Arjen Poutsma
4182935b7a
Revert optimization in StringDecoder
...
This commit reverts the first optimizations listed in
fa096dc60f
, as the default delimiters
do vary, namely by the charset given in the message mime type.
The mimetype charset might not be compatible with ASCII (i.e. anything
but UTF-8 or ISO-8859-1, for instance it might be UTF-16), and will not
successfully find the default delimiters as a consequence.
Added test to indicate the bug.
2018-11-13 13:38:13 +01:00
Arjen Poutsma
3bab3515b1
Add and use AbstractEncoderTestCase
...
Introduce new base test case for encoder tests, and use it.
Issue: SPR-17449
2018-11-13 13:35:37 +01:00
Arjen Poutsma
0c0de851f4
Add LeakAwareDataBufferFactory
...
Introduce a data buffer factory that can check for memory leaks in
@After methods.
Issue: SPR-17449
2018-11-13 13:35:37 +01:00
Arjen Poutsma
e31914bada
Polishing
2018-11-13 13:35:37 +01:00
Juergen Hoeller
40148c0560
Consistent use of ResolvableType.toClass() for assignability checks
...
Issue: SPR-17086
2018-11-12 20:29:37 +01:00
Rossen Stoyanchev
c187cb2fa1
Ensure client response is drained with onStatus hook
...
Issue: SPR-17473
2018-11-08 22:41:22 -05:00
Juergen Hoeller
e26ae9853e
Up-to-date version and link in ASM/CGLIB/Objenesis package javadoc
...
Issue: SPR-17267
Issue: SPR-17372
2018-11-08 16:56:48 +01:00
Juergen Hoeller
d9c1811d21
Deprecate NON_BRIDGED_METHODS constant as of 5.0.11 as well
...
Issue: SPR-17464
2018-11-05 22:59:18 +01:00
Juergen Hoeller
2ac4355ec0
ASM ClassReader leniently handles label offset mismatch (again)
...
Issue: SPR-17467
2018-11-05 17:44:23 +01:00
Juergen Hoeller
a3cd7af72d
Polishing
2018-11-05 12:27:35 +01:00
Juergen Hoeller
0a7dcf14f9
Deprecate ReflectionUtils.invokeJdbcMethod (for removal in 5.2)
...
Issue: SPR-17464
2018-11-05 12:26:20 +01:00
Rossen Stoyanchev
133b8b0b5a
Polish
2018-11-02 16:19:53 -04:00
Rossen Stoyanchev
fa096dc60f
Minor refactoring in StringDecoder + polish
...
1. Avoid re-creating the List with delimited byte arrays on every
request if using the default delimiters which don't vary by charset.
2. Replace flatMap with flatMapIterable for splitOnDelimiter.
3. Avoid going through DataBufferUtils#join, and unnecessarily creating
Flux from the List, since the join method needs a list anyway.
2018-10-26 13:24:53 -04:00
Juergen Hoeller
ffa032e78f
Polishing
2018-10-24 20:46:26 +02:00
Arjen Poutsma
488a1d4561
Review DataBufferUtils for cancellation memory leaks
...
Issue: SPR-17408
2018-10-24 16:28:21 +02:00
Arjen Poutsma
51bb96db47
Fix ResourceRegionEncoder and tests
...
Fix ResourceRegionEncoder so that it checks for resource existance
before writing boundaries. Also defer data buffer allocation until
necessary.
Issue: SPR-17419
2018-10-23 16:41:48 +02:00
Arjen Poutsma
eac9e66c46
Fix memory leak when canceling read from AsynchronousFileChannel
...
This commit fixes a memory leak that occurs when reading from a
AsynchronousFileChannel, and cancelling the subscription.
Issue: SPR-17419
2018-10-23 16:41:48 +02:00
Juergen Hoeller
c3c2383b0d
Align serialVersionUID declaration with ASM master
...
Issue: SPR-17267
2018-10-22 18:53:23 +02:00
Arjen Poutsma
946ec7e22e
Fix memory leaks in ProtobufDecoder
...
Issue: SPR-17418
2018-10-22 16:00:32 +02:00
Arjen Poutsma
a64e85fcc6
Javadoc
2018-10-22 16:00:32 +02:00
Arjen Poutsma
f738273486
Fix buffering issue in StringDecoder
...
Issue: SPR-17418
2018-10-22 16:00:32 +02:00
Juergen Hoeller
dd2ce20687
SpringFactoriesLoader tolerates whitespace around class names
...
Issue: SPR-17413
2018-10-22 15:13:58 +02:00
Juergen Hoeller
83a54dba7e
Avoid stacktrace if root resource is not resolvable in file system
...
Issue: SPR-17417
2018-10-22 15:13:49 +02:00
Arjen Poutsma
149d416e8e
Review DataBufferUtils for error/cancellation memory leaks
...
Issue: SPR-17408
2018-10-19 12:16:18 +02:00
Juergen Hoeller
7ff938b3ef
LogFormatUtils.formatValue leniently handles toString() exceptions
...
Issue: SPR-17397
2018-10-18 18:04:32 +02:00
Sebastien Deleuze
2c5a1af236
Leverage Java reflection for Kotlin enums
...
As discussed in KT-25165, from a Kotlin POV enum constructors
have no parameter, this is an "implementation detail"
required for running on the JVM, so it seems relevant to skip
Kotlin reflection in that case and just delegate to Java
reflection.
Issue: SPR-16931
2018-10-16 16:40:02 +02:00
Juergen Hoeller
b7e4a56e5c
Mark PathResourceTests as deprecated (along with PathResource)
...
Issue: SPR-17320
2018-10-12 13:17:28 +02:00
Juergen Hoeller
a2ae5f6972
Force CGLIB to always specify ASM7 for its visitors
...
Issue: SPR-17371
2018-10-12 12:01:50 +02:00
Juergen Hoeller
053820c4ff
Polishing
2018-10-09 23:14:49 +02:00
Juergen Hoeller
83909e6e1e
Consistent exposure of empty attribute arrays in AnnotationMetadata
...
Issue: SPR-17347
2018-10-09 23:14:13 +02:00
Juergen Hoeller
fdf340306d
Defensively use Class.forName instead of ClassLoader.loadClass
...
Issue: SPR-17333
2018-10-09 23:14:05 +02:00
Juergen Hoeller
cf3635b42d
Resource.lastModified() propagates 0 value if target resource exists
...
Includes use of Files.getLastModifiedTime for NIO Paths, preservation of NIO-based resolution on createRelative, deprecation of PathResource, and consistent use of getContentLengthLong over getContentLength.
Issue: SPR-17320
2018-10-09 23:13:11 +02:00
Juergen Hoeller
1e0de072f9
Upgrade to ASM 7.0 beta release
...
Issue: SPR-17267
2018-10-09 23:13:02 +02:00
Rossen Stoyanchev
c01f350abe
Move MonoToListenableFutureAdapter to spring-core
...
This was a package private class in spring-messaging since 5.0, and was
recently made public in 5.1. This commit promotes it to spring-core
where it belongs next to all other ListenableFuture support classes.
Follow-up refactoring for SPR-17336
2018-10-09 16:26:24 -04:00
Sam Hubbard
80e7819d6f
Fix construction of NullSafeComparator in nullsLow
...
Previously, both nullsLow(Comparator<T>) and
nullsHigh(Comparator<T>) returned a
NullSafeComparator which treated nulls as being
high. This commit corrects this typo.
2018-10-05 13:20:28 +02:00
www
9d5aced8c5
Fix formatting
...
Prefix the opening brace with a single space in some classes.
Replace tab character with space in javadoc of AttributeAccessor.
Also fix some other trivial formatting errors.
Closes gh-1979
2018-10-05 09:20:47 +02:00
Juergen Hoeller
ad29f97a05
Polishing
2018-09-29 17:16:25 +02:00
Rossen Stoyanchev
a6f9c4c599
LogFormatUtils is declared abstract
2018-09-19 11:54:05 -04:00
Arjen Poutsma
8a4835368d
Use doOnDiscard to free internally queued data buffers
...
Issue: SPR-17246
2018-09-19 13:24:45 +02:00
Juergen Hoeller
c634b2fae7
ResolvableType-based resolution uses BeanNamesByType cache if possible
...
Issue: SPR-17282
2018-09-18 15:30:43 +02:00
Juergen Hoeller
69e8bcdf40
Checkstyle updates from ASM master
...
Issue: SPR-17267
2018-09-17 19:09:07 +02:00
Juergen Hoeller
8e83f140d4
Polishing
2018-09-15 00:17:17 +02:00
Rossen Stoyanchev
db8e9eafb2
Add LogFormatUtils
...
1. Helper method to eliminate duplication in formatting (de-)serialized
values for logging introduced with prior commit #e62298.
2. Helper method for TRACE vs DEBUG logging with different details.
Issue: SPR-17254
2018-09-14 18:06:46 -04:00
Juergen Hoeller
41d4cb5cbf
Ordered stream access on ObjectProvider with strong order guarantees
...
Issue: SPR-17272
2018-09-14 23:56:25 +02:00
Rossen Stoyanchev
e62298eaad
Truncate logged encoded and decoded values if necessary
...
At DEBUG show up to 100 chars, at TRACE show full formatted value.
Note that the formatValue helper method is duplicated a number of times
in this commit. A utility method will likely be added in spring-core
through an extra commit.
Issue: SPR-17254
2018-09-14 12:20:03 -04:00
Juergen Hoeller
65c8fa400f
Consistent ordered list access and lazy streaming for ObjectProvider
...
Includes fallback match for collection/map dependency if qualified.
Issue: SPR-17272
Issue: SPR-17197
2018-09-13 18:23:19 +02:00
Arjen Poutsma
cde677a1f4
Fixed DefaultDataBuffer.toString()
2018-09-13 16:12:13 +02:00
Juergen Hoeller
45936f0ddd
ClassReader revision from ASM master
...
Issue: SPR-17267
2018-09-12 12:26:29 +02:00
Arjen Poutsma
f35f7db29b
Removed deprecated methods.
2018-09-11 13:36:44 +02:00
Arjen Poutsma
09af706af6
Use concatWith instead of mergeWith
2018-09-11 13:36:44 +02:00
Arjen Poutsma
1a0522b805
DataBufferUtils does not release DataBuffer on error cases
...
This commit makes sure that in DataBufferUtils.write, any received data
buffers are returned as part of the returned flux, even when an error
occurs or is received.
Issue: SPR-16782
2018-09-11 13:36:44 +02:00
Juergen Hoeller
1da4d504c4
Upgrade to ASM master (7.0 beta) and CGLIB 3.2.8
...
Issue: SPR-17267
2018-09-11 13:10:45 +02:00
Juergen Hoeller
c06b9525ac
UriComponentsBuilder copies query params through MultiValueMap.addAll
...
Issue: SPR-17256
2018-09-10 11:31:37 +02:00
Juergen Hoeller
84ec382201
XMLEventReader.getElementText() properly checks for start element
...
Issue: SPR-17233
2018-09-07 12:56:15 +02:00
Sebastien Deleuze
8d45e3e7ef
Fix Kotlin inner class nested configuration handling
...
Before this commit, Kotlin inner class nested configuration
handling thrown an IndexOutOfBoundsException due to bogus filtering
of its constructor parameter reference to an instance of the outer
class.
This commit keep constructor parameter of type INSTANCE in order to
throw a more meaningful NoSuchBeanDefinitionException.
Issue: SPR-17222
2018-09-07 11:39:30 +02:00
Arjen Poutsma
259b2ca5f4
Added tests for errors in the source stream
...
This commit adds decoder/message-reader tests for errors in
the source data buffer publisher. Because the tests extend
AbstractDataBufferAllocatingTestCase, they also check whether
the buffers that precede the error in the stream are properly
released.
Issue: SPR-17025
2018-09-05 11:08:07 +02:00
Arjen Poutsma
196c0adf47
Fixed DataBufferUtils.join leak for error in source
...
This commit fixes an issue where DataBufferUtils.join() would not
release databuffers that preceded an error signal.
Issue: SPR-17025
2018-09-05 11:07:57 +02:00
Sam Brannen
326895246d
Polishing
2018-09-04 13:55:22 +02:00
Stephane Nicoll
2c1dca5b5e
Polish capitalisation of units on DataSize and javadoc of DataUnit
...
Issue: SPR-17240
2018-09-04 13:46:41 +02:00
stsypanov
7dba79c7c1
Use String::isEmpty instead of "".equals(arg) when arg is not null
2018-08-26 22:48:21 +02:00
Sam Brannen
08ba53dd0e
Ensure SocketUtils can be instantiated
...
Issue: SPR-17215
2018-08-26 21:49:21 +02:00
Sam Brannen
f6ee2508ef
Clean up warning in AnnotatedElementUtils
2018-08-23 18:24:18 +02:00
Juergen Hoeller
6ef0938a92
Defensive URL cleaning (preserving the original URL if possible)
...
Issue: SPR-17198
2018-08-22 14:12:39 +02:00
Juergen Hoeller
2ac23badee
SimpleAliasRegistry.hasAlias properly resolves multiple chained aliases
...
Issue: SPR-17191
2018-08-17 09:54:14 +02:00
Juergen Hoeller
109a2b49e5
Consistently skip unnecessary search on superclasses and empty elements
...
Includes caching of declared annotation arrays and combined searching for several annotation types (used in SpringCacheAnnotationParser).
Issue: SPR-16933
2018-08-15 17:30:14 +02:00
Juergen Hoeller
ac544924c8
Polishing
2018-08-13 14:36:37 +02:00
Sam Brannen
8126ffbc8c
Fix broken links in JavaDoc
...
Issue: SPR-17174
2018-08-13 12:22:52 +02:00
Marten Deinum
5322fa0fb7
Use an import instead of FQCN
...
javax.xml.stream.Location is already there as an import there is no need
to use the FQCN in the handleDtd method.
2018-08-13 10:38:23 +02:00
Juergen Hoeller
df51ff0386
Revert to Map entry iteration for less expensive static initialization
...
Issue: SPR-17169
2018-08-12 20:52:55 +02:00
Stephane Nicoll
30b8d47814
Polish
2018-08-12 10:49:29 +02:00
Juergen Hoeller
2b2a5a414b
Polishing
2018-08-10 19:23:44 +02:00
Stephane Nicoll
f931a3fb59
Improve DataSize to support negative values
...
Issue: SPR-17154
2018-08-10 18:21:09 +02:00
Juergen Hoeller
aebb2d52e0
Logging refinements for transaction and cache processing (debug/trace)
...
Issue: SPR-16946
2018-08-10 15:45:46 +02:00
Stephane Nicoll
282a4ad2f6
Fix checkstyle violations
2018-08-10 14:43:16 +02:00
Stephane Nicoll
8a1588ae29
Add support for DataSize
...
This commit provides a data type to represents a size in bytes and other
standard unit.
Issue: SPR-17154
2018-08-10 14:28:46 +02:00
Sam Brannen
8ea913392c
Link to Eclipse bug for annotations on bridge methods
2018-08-09 18:49:24 +02:00
Juergen Hoeller
65f29a39ca
AbstractAspectJAdvisorFactory uses AnnotationUtils.getValue
2018-08-09 02:26:28 +02:00
Juergen Hoeller
4521a79b2d
Find annotations on implemented generic superclass methods as well
...
Includes Java 8 getDeclaredAnnotation shortcut for lookup on Class.
Issue: SPR-17146
2018-08-08 23:52:47 +02:00
Sergey Chupov
a06e63f619
Polishing javadocs: IllegalStateException no longer thrown
...
The dependency to Apache Commons has been removed in 51252ebbca (diff-95dc9d8756aa91afb2ac28454f1b634c)
, but the javadoc still mentions it.
2018-08-08 15:51:05 +02:00
Sam Brannen
7b608ab995
Ensure AnnotationUtilsTests pass in Eclipse again
2018-08-08 13:23:51 +02:00
Kazuhiro Sera
be211ceead
Fix typos detected by github.com/client9/misspell
2018-08-08 12:50:46 +02:00
Juergen Hoeller
b325c74216
Pruning of outdated JDK 6/7 references (plus related polishing)
2018-08-07 20:36:47 +02:00
Juergen Hoeller
2b051b8b32
Deprecate support classes for Sun's JDK HTTP server
...
Issue: SPR-17143
2018-08-07 20:35:53 +02:00
Juergen Hoeller
2d05f2ed47
SerializableTypeWrapper detects Graal through system property as well
...
Issue: SPR-17136
2018-08-07 11:15:43 +02:00
Juergen Hoeller
6b82a6c38c
Polishing
2018-08-07 02:47:00 +02:00
Juergen Hoeller
d72d376f03
Avoid unnecessary annotation introspection on framework methods
...
Issue: SPR-16933
2018-08-07 01:35:32 +02:00
Juergen Hoeller
8a9d042320
Javadoc fix from ASM master (6.2.1)
...
Issue: SPR-16398
2018-08-06 18:33:41 +02:00
Juergen Hoeller
69c6a40c50
Consistent nullability for array/collection input parameters
...
Includes pre-sizing of LinkedHashSet for conversion from array.
Issue: SPR-17123
Issue: SPR-17074
2018-08-06 14:11:59 +02:00
Rossen Stoyanchev
5095ec40b5
takeUntilByteCount actually uses takeUntil
...
Issue: SPR-17188
2018-08-02 21:19:22 +03:00
Rossen Stoyanchev
542ed81d5c
Polish
2018-08-02 21:19:22 +03:00
Juergen Hoeller
0001f87d59
Polishing
2018-08-01 12:52:50 +02:00
Juergen Hoeller
589b7048ec
Avoid synthesizable annotation creation for @Bean/@Scope processing
...
Includes consistent (non-)use of AnnotationUtils/AnnotatedElementUtils.
Issue: SPR-16933
2018-08-01 11:43:28 +02:00
Juergen Hoeller
9b671f8408
Polishing
2018-07-31 23:57:19 +02:00
Juergen Hoeller
6cd9060183
Avoid synthesizable check for common annotation types
...
This revision considers any java/javax and org.springframework.lang annotations as not synthesizable upfront, checking not only in isSynthesizable but also at synthesizeAnnotation(Array) level.
Issue: SPR-16933
2018-07-31 20:54:10 +02:00
Juergen Hoeller
4a147d26fc
Initialize pre-filled HashMaps with large enough capacity
...
Empty Maps are preferably initialized without capacity (not initializing them at all or lazily initializing with default capacity when needed).
Issue: SPR-17105
2018-07-30 22:07:31 +02:00
Juergen Hoeller
c037e75f26
Improve debug logging at BeanDefinitionReader and BeanFactory level
...
Issue: SPR-17090
2018-07-27 17:46:05 +02:00
Juergen Hoeller
e82efbc7e3
Declare ASM7_EXPERIMENTAL for full compatibility with JDK 11 bytecode
...
Issue: SPR-17096
2018-07-26 23:11:54 +02:00
Juergen Hoeller
9ab63b8494
ListBasedXMLEventReader uses defensive modifiable copy of given List
2018-07-25 19:03:13 +02:00
Juergen Hoeller
3881a4aded
Polishing
2018-07-25 14:16:02 +02:00
Juergen Hoeller
fd8e4abe5d
Introduce ResolvableType.toClass() shortcut
...
Issue: SPR-17086
2018-07-25 14:15:19 +02:00
Juergen Hoeller
fac2e35f96
Refactor util.log.LogUtils into core.log.LogDelegateFactory
...
Issue: SPR-17012
2018-07-24 14:44:34 +02:00
Sebastien Deleuze
f8f8d28f08
Support running Kotlin apps without kotlin-reflect
...
This commit includes an optimization of BeansUtils#instantiateClass
that favors Java reflection for default constructors before leveraging
Kotlin one for finding primary constructors and avoids Kotlin related
conditions when running in Java.
Issue: SPR-17069
2018-07-23 09:54:48 +02:00
Juergen Hoeller
bccff73e2b
AspectJExpressionPointcut leniently ignores non-composable interfaces
...
Issue: SPR-17003
2018-07-22 22:28:48 +02:00
Juergen Hoeller
cfbacfd89b
Revise ResolvableType.as for introspection performance
...
This revision limits serializability of derived interfaces, superclasses and type parameters, optimizing for introspection performance instead.
Issue: SPR-17070
2018-07-22 17:49:53 +02:00
stsypanov
5051850fa9
SPR-17074 Replace iteration over Map::ketSet with Map::entrySet
2018-07-21 13:12:43 +02:00
Juergen Hoeller
9a43d2ec20
Revised log levels: less WARN and INFO, fine-tuned DEBUG vs TRACE
...
Issue: SPR-16946
2018-07-20 15:05:16 +02:00
Juergen Hoeller
c4df335a1d
ReflectiveMethodExecutor invokes interface method if possible
...
Issue: SPR-16845
2018-07-19 16:35:59 +02:00
Juergen Hoeller
d0bbbf4cae
OrderUtils caches order values (for AnnotationAwareOrderComparator)
...
Issue: SPR-17064
2018-07-19 11:58:42 +02:00
Rossen Stoyanchev
4d6f2df3cb
Add LogUtils and HttpLogging
...
SPR-17012
2018-07-18 15:32:50 -04:00
Juergen Hoeller
23d4862017
Find annotations on implemented generic interface methods as well
...
Issue: SPR-16060
2018-07-18 19:44:30 +02:00
Sebastien Deleuze
e8034f2f96
Adapt DefaultParameterNameDiscoverer to Graal constraints
...
When compiling or running as a Graal native image, no
ParameterNameDiscoverer is used.
Issue: SPR-17005
2018-07-18 17:17:47 +02:00
Juergen Hoeller
cab35aa788
StringUtils.parseLocaleString detects variant without country
...
Includes tests for parsing all available locales on the JVM, checking toString/toLanguageTag equality between parsed and original locale.
Issue: SPR-7598
Issue: SPR-16651
2018-07-18 11:10:26 +02:00
Juergen Hoeller
88e4006790
CookieLocaleResolver is RFC6265 and language tag compliant by default
...
Like CookieLocaleResolver, LocaleChangeInterceptor parses both locale formats by default now. Since it does not need to render the locale, its languageTagCompliant property is not relevant anymore at all.
The parseLocale method in StringUtils validates the locale value now and turns an empty locale into null, compatible with parseLocaleString behavior and in particular aligned with web locale parsing needs.
Issue: SPR-16700
Issue: SPR-16651
2018-07-17 17:57:59 +02:00
Juergen Hoeller
cacd14c805
Never return null from AnnotationMetadata.getMetaAnnotationTypes
...
Issue: SPR-17046
2018-07-16 18:05:10 +02:00
Juergen Hoeller
f6fdffd663
Lazily retrieve delegate beans in AsyncConfigurer and CachingConfigurer
...
Introduces a configure method pattern for Supplier-style configuration and a common SingletonSupplier decorator for method reference suppliers. Also declares jcache.config and jcache.interceptor for non-null conventions.
Issue: SPR-17021
2018-07-14 19:29:32 +02:00
Rossen Stoyanchev
1b1bc7f5b5
Switch defaults and model for logging sensitive data
...
Issue: SPR-17029
2018-07-11 11:10:03 -04:00
Juergen Hoeller
6887802526
Fallback to ClassLoader.defineClass for Lookup.defineClass LinkageError
...
Issue: SPR-16902
2018-07-10 22:13:57 +02:00
Juergen Hoeller
a1d209726c
Upgrade to ASM master (6.2+) and CGLIB 3.2.7
...
Issue: SPR-16398
2018-07-10 18:51:01 +02:00
Juergen Hoeller
833343f17c
Specifically rethrow IllegalAccessError in isPresent/resolveClassName
...
Issue: SPR-17018
2018-07-09 14:31:45 +02:00
Juergen Hoeller
fd0220b85c
Suppress rawtypes warning for createReferenceArray
2018-07-09 14:28:15 +02:00
stsypanov
6d6aa72e8f
improve performance of projection instantiation
2018-07-09 13:39:23 +02:00
Rossen Stoyanchev
4bd22eeb13
Fallback logger for logging in http and codec packages
...
Issue: SPR-17012
2018-07-07 10:54:03 -04:00
Rossen Stoyanchev
bca9f51092
Polish hint for suppressing logging at Encoder/Decoder
2018-07-06 20:32:08 -04:00
Juergen Hoeller
d8c7270c00
Consistent Iterator/Stream support in PropertySources and PropertyValues
...
Issue: SPR-16894
2018-07-05 23:59:56 +02:00
Rossen Stoyanchev
82310660fd
Correlated encoding/decoding log messages via hints
...
Issue: SPR-16966
2018-07-05 08:28:15 -04:00
Juergen Hoeller
5dc8b5de6d
Polishing
2018-07-04 15:07:17 +02:00
Sebastien Deleuze
9b7a492bc9
Test RxReactiveStreams presence in ReactiveAdapterRegistry
...
Issue: SPR-17000
2018-07-03 18:00:47 +02:00
Sebastien Deleuze
dcbaecea2a
Perform explicit class checks in ReactiveAdapterRegistry
...
In order to allow Spring Framework applications running as GraalVM
native images, ReactiveAdapterRegistry should perform explicit class
checks instead of catching Throwable in order to avoid
UnsupportedFeatureError errors.
Issue: SPR-17000
2018-07-03 13:35:11 +02:00
Juergen Hoeller
779cf8d240
ConcurrentReferenceHashMap caches EntrySet in volatile field
...
Includes an efficient implementation of isEmpty(), not relying on a full entry count but rather backing out once a non-empty hash segment has been found.
Issue: SPR-16994
2018-07-02 22:32:57 +02:00
Juergen Hoeller
06f9fb9aeb
Refine Class serializability check for actual Graal compatibility
...
Issue: SPR-16992
2018-07-02 22:32:29 +02:00
Juergen Hoeller
e5a6711d29
Consistent final declaration for static delegate classes
...
Issue: SPR-16968
2018-07-02 13:55:18 +02:00
Juergen Hoeller
2ade122543
Bypass serializable type wrapping if java.lang.Class not serializable
...
Issue: SPR-16992
2018-07-02 13:55:03 +02:00
Juergen Hoeller
4ff1e3e74b
Consistent abstract declaration for utility classes (plus polishing)
...
Issue: SPR-16968
2018-07-01 02:31:20 +02:00
Rossen Stoyanchev
907a306ee2
Fix locally failing test in FlushingIntegrationTests
2018-06-29 18:15:52 -03:00
Juergen Hoeller
40efcc933c
Polishing
2018-06-28 14:51:33 +02:00
Juergen Hoeller
b68e692854
Conventions lazily retrieves shared ReactiveAdapterRegistry
...
Issue: SPR-16981
2018-06-28 14:47:52 +02:00
Juergen Hoeller
7a02e438e7
StringUtils.cleanPath retains plain pointer to current directory
...
Issue: SPR-16908
2018-06-28 14:15:16 +02:00
Phillip Webb
a89e716cc7
Use tabs rather than spaces in tests
...
Update tests to ensure that tabs are used instead of spaces. Also
consistently apply a new line at the end of each file.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
1c25cec44f
Polish test code
...
Polish a few issue identified when adding checkstyle to the
build. Although checkstyle is not enforcing rules on tests,
these are a few minor changes that are still worth making.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
81451aa800
Organize imports
...
Reorganize imports to ensure consistent ordering. This commit also
expands any `.*` static imports in favor of using fully-qualified
method references.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
b220d94cc2
Never use parenthesis for single lambda arguments
...
Update all lambdas that take a single argument so that parenthesis
are never used.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
5cedd0d5d4
Consistently use tabs rather than spaces
...
Update code that has accidentally used spaces instead of tabs.
Also remove all trailing whitespace.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
ad6d183a06
Remove unneeded conditional logic
...
Update `ConversionUtils` to remove conditional logic that isn't
necessary.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
9de3689f63
Never use 'this.' when accessing loggers
...
Ensure that `this.` is never used when accessing loggers.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
0b53c1096a
Always use 'this.' when accessing fields
...
Ensure that `this.` is used consistently when accessing class
fields.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
eeebd51f57
Use consistent class design
...
Update all classes so that inner classes are always last. Also
ensure that utility classes are always final and have a private
constructor and make exceptions final whenever possible.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
e9d1b39aff
Apply consistent copyright header
...
Add copyright header to `package-info.java` files and fix a few
malformed headers on existing java files.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
c3a17dfd47
Ensure all files end with a newline
...
Update all files to ensure that they always end with a new line.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Phillip Webb
e0480f75ac
Fix javadoc checkstyle issues
...
Fix checkstyle violations for javadoc.
Issue: SPR-16968
2018-06-28 10:28:44 +02:00
Juergen Hoeller
847202c8f8
MimeTypeUtils lazily initializes SecureRandom for multipart boundary
...
Issue: SPR-16974
2018-06-25 18:12:43 +02:00
Rossen Stoyanchev
900bc8a2e3
Logging improvements for WebFlux
...
Issue: SPR-16898
2018-06-22 22:44:24 -04:00
Sam Brannen
cafb5033e2
Polishing
2018-06-19 13:50:13 +03:00
Sam Brannen
bea0e399b8
Polish profile expression support
...
Issue: SPR-12458
2018-06-17 00:15:18 +03:00
Sam Brannen
4184ebe799
Polish profile expression support
...
Issue: SPR-12458
2018-06-16 21:40:22 +03:00
Juergen Hoeller
38f9a7b072
FileSystemResource supports java.nio.file.Path based setup
...
Issue: SPR-16833
2018-06-15 22:12:14 +02:00
Juergen Hoeller
bb6ab5dc91
OS-independent alphabetical sorting of directory content
...
Issue: SPR-16838
2018-06-15 22:09:29 +02:00
Stephane Nicoll
1f3b4f1863
Polish "Add profile expression support"
...
Issue: SPR-12458
2018-06-15 16:01:16 +02:00
Phillip Webb
e2623b7d35
Add profile expression support
...
Allow the `Environment` to accept a generic `Profiles` interface which
can support more complex matching rules. The previous
`acceptsProfiles(String...)` method now uses `Profiles.of` which
supports basic profile expressions such as "(a | b) & !c"
Issue: SPR-12458
2018-06-15 16:01:16 +02:00
Juergen Hoeller
c38cb43527
MethodParameter strictly asserts parameter index -1 for return type
...
Issue: SPR-16889
2018-06-14 00:42:19 +02:00
Rossen Stoyanchev
0078f46779
Use reflection for JdkFlowAdapter
...
To avoid compiler issues on Eclipse.
2018-06-13 09:38:54 -04:00
Juergen Hoeller
0777a80efe
Polishing
...
(cherry picked from commit a2765c0
)
2018-06-11 19:17:57 +02:00
Juergen Hoeller
b790bd1fd6
LinkedCaseInsensitiveMap explicitly implements put/computeIfAbsent
...
Issue: SPR-16926
2018-06-11 14:10:12 +02:00
Yun
28e402bc76
Prevent instantiation of AnnotatedElementUtils
...
Closes gh-1848
2018-06-11 08:32:03 +02:00
Rossen Stoyanchev
010352163b
Eliminate the need for Encoder#getContentLength
...
Issue: SPR-16892
2018-06-04 15:48:47 -04:00
Sebastien Deleuze
a7a29a8226
Revisit PropertyResolver Kotlin extensions
...
Issue: SPR-16883
2018-05-31 12:20:37 +02:00
Juergen Hoeller
616a40adb6
ClassPathResource.isReadable() returns false for content length 0
...
Issue: SPR-16832
2018-05-29 22:31:47 +02:00
Juergen Hoeller
74fcdea2d9
SimpleAliasRegistry logs info message for alias overriding
...
Issue: SPR-16871
2018-05-29 21:51:33 +02:00
Juergen Hoeller
46a89d9534
Restore lenient null return value for ConditionContext.getBeanFactory()
...
Includes nullable return value for getClassLoader() with corresponding notes in applicable javadoc.
Issue: SPR-16866
2018-05-29 21:51:06 +02:00
Juergen Hoeller
69f14a2038
ClassPathResource.isReadable() checks InputStream (for jar directories)
...
Resource.isReadable() is defined to semantically imply exists() now.
Issue: SPR-16832
2018-05-29 21:47:33 +02:00
Sebastien Deleuze
406f6ec74d
Fix PropertyResolverExtensions.kt location
2018-05-28 15:51:22 +02:00
Rossen Stoyanchev
d58888777f
Polish ReactiveAdapterRegisry
2018-05-18 21:32:46 -04:00
Sebastien Deleuze
2c85be333c
Filter synthetic in ReflectionUtils#USER_DECLARED_METHODS
...
Issue: SPR-16823
2018-05-15 14:58:50 +02:00
Oleksandr Hasheniuk
6545cab42c
Improve performance of StringUtils#trimWhitespace
...
Issue: SPR-16766
2018-05-01 11:16:34 +02:00
nkjackzhang
fb0e3e9356
Fix a typo in @Nullable Javadoc
2018-04-18 11:53:09 +02:00
Juergen Hoeller
2f4010e8d3
Correctly delegate to OrderUtils.getPriority for DecoratingProxy
...
Issue: SPR-16739
2018-04-17 23:37:42 +02:00
Juergen Hoeller
d78e27f1e9
Avoid repeated superclass introspection in findAnnotation(Method,...)
...
Issue: SPR-16730
2018-04-17 16:44:28 +02:00
Juergen Hoeller
51be8a7303
Workaround for generic parameter types on inner class constructors
...
Issue: SPR-16734
2018-04-17 14:32:54 +02:00
Juergen Hoeller
b95e05db04
AspectJExpressionPointcut consistently resolves superinterface methods
...
Includes efficient check for same ClassLoader in ClassUtils.isVisible, efficient MethodMatchers check for IntroductionAwareMethodMatcher, and supertype method resolution in MethodMapTransactionAttributeSource.
Issue: SPR-16723
2018-04-14 15:10:05 +02:00
Juergen Hoeller
0efa7a05ad
ClassUtils.isCacheSafe delegates to isVisible for resolving classes
...
Issue: SPR-16714
2018-04-12 20:55:26 +02:00
Juergen Hoeller
46e3a919fe
Cache-safety check for sibling loaders resolving the same classes
...
Issue: SPR-16714
2018-04-12 18:50:32 +02:00
Juergen Hoeller
da80502ea6
AnnotationUtils.getAnnotation non-null check for synthesizeAnnotation
...
Issue: SPR-16708
2018-04-11 12:50:27 +02:00
Juergen Hoeller
61c3db0869
MethodHandles.Lookup.defineClass for CGLIB class definition purposes
...
Spring's CGLIB fork is patched with local copies of affected files here, introducing the notion of a "contextClass" (e.g. the proxy superclass) which gets passed through to ReflectUtils.defineClass for delegating to MethodHandles.Lookup.defineClass eventually, against a privateLookupIn(contextClass) lookup context on JDK 9/10/11.
Issue: SPR-15859
2018-04-11 12:47:55 +02:00
Sam Brannen
8874427cf4
Clean up warnings in spring-core
2018-04-10 13:10:58 +02:00
Juergen Hoeller
5d0700b936
AnnotationUtils.annotatedInterfaceCache available as deprecated field
...
Issue: SPR-16675
2018-04-03 12:21:03 +02:00
Juergen Hoeller
6102715b8d
Consistent treatment of proxy classes and interfaces for introspection
...
Issue: SPR-16675
Issue: SPR-16677
2018-04-03 02:42:41 +02:00
Juergen Hoeller
cc379f1cc7
Polishing
2018-04-01 12:57:19 +02:00
Juergen Hoeller
912c270f2b
Polishing
2018-03-31 17:49:21 +02:00
Juergen Hoeller
129c05bcff
Comprehensively cache annotated methods for interfaces and superclasses
...
Issue: SPR-16675
2018-03-31 15:12:02 +02:00
Juergen Hoeller
4da27c2a73
Avoid unnecessary introspection on methods and meta-annotations
...
Issue: SPR-16667
2018-03-31 00:18:14 +02:00
Kazuki MATSUDA
d232fffa63
Use whenComplete since (null) return value not needed
2018-03-30 11:07:46 -04:00
Juergen Hoeller
22a8a668c9
AnnotationTypeFilter assumes no custom annotations on common Java types
...
Issue: SPR-16667
2018-03-30 15:31:43 +02:00
Juergen Hoeller
7a8d41e5d6
Extended set of common classes and language interfaces in ClassUtils
...
Issue: SPR-16667
2018-03-30 13:41:22 +02:00
Sam Brannen
a6c45f0cd9
Polishing
2018-03-30 11:45:28 +02:00
Juergen Hoeller
d553ddc5b3
Nullability refinements (based on IntelliJ IDEA 2018.1 introspection)
...
Issue: SPR-15756
2018-03-29 23:50:17 +02:00
Sam Brannen
17703e5dde
Polishing
2018-03-29 17:45:55 +02:00
Sam Brannen
7c28152c13
Introduce ClassUtils.isInnerClass() utility method
2018-03-29 17:45:25 +02:00
Juergen Hoeller
b165475eb6
Polishing
2018-03-29 16:05:52 +02:00
Juergen Hoeller
08dad4e3ac
Consistent references to primitive types (in alphabetical order)
2018-03-29 16:05:00 +02:00
Juergen Hoeller
53d01392d7
Workaround for inner class constructor parameter annotation bug in javac
...
Issue: SPR-16652
2018-03-29 15:45:02 +02:00
Juergen Hoeller
3ac46da22f
Correct description for doWithLocalFields
...
Issue: SPR-16658
2018-03-29 15:42:30 +02:00
Sam Brannen
4b9e3a9211
Introduce failing test for SPR-16652
...
This commit introduces tests for looking up annotations on parameters
in constructors for nested and inner classes via Spring's
MethodParameter abstraction.
The test for an inner class is currently disabled since it fails on
JDK 8. See JIRA issue for details.
Issue: SPR-16652
2018-03-28 17:42:55 +02:00
Juergen Hoeller
b2d87abcbb
Polishing
2018-03-28 12:06:38 +02:00
Rossen Stoyanchev
e00384a6fd
MimeTypeUtils trims parameter names / values
...
Issue: SPR-16630
2018-03-27 19:56:09 -04:00
Juergen Hoeller
e3d0ef6015
Use Map.forEach instead of manual Map.Entry iteration wherever possible
...
Issue: SPR-16646
2018-03-27 00:38:32 +02:00
Rossen Stoyanchev
ab2410c754
MimeTypeUtils uses SecureRandom
...
The prevailing current wisdom is to use the default constructor for
secure and let it pick the best algorithm for the OS.
On Java 8 (Oracle), Linux this results in "NativePRNG" which uses
/dev/random (potentially blocking) for the initial seed, and
/dev/urandom (non-blocking) for subsequent calls to nextInt.
Issue: SPR-16635
2018-03-23 21:45:41 -04:00
Juergen Hoeller
f00afe3247
Use (Concurrent)Map.computeIfAbsent for lazy nested collection creation
2018-03-23 17:36:23 +01:00
Rossen Stoyanchev
94c525cdc8
Polish @RequestPart support
2018-03-21 18:26:13 -04:00
Rossen Stoyanchev
2ff35daf9b
Add test case based on SPR-16615
2018-03-19 13:32:10 -04:00
Rossen Stoyanchev
30583a62cf
Fix Class isAssignableFrom checks for Resource conversion
...
Issue: SPR-16606
2018-03-16 16:18:05 -04:00
Juergen Hoeller
356ef45e99
ConcurrentReferenceHashMap properly handles getOrDefault for null values
...
Issue: SPR-16584
2018-03-14 17:17:04 +01:00
Juergen Hoeller
967a2ef2d2
Validate Class attributes as well as Class array attributes
...
Issue: SPR-16564
2018-03-12 20:41:44 +01:00
Juergen Hoeller
50e980c02f
Validate declared annotations before deciding between reflection and ASM
...
Issue: SPR-16564
2018-03-12 13:40:26 +01:00
Juergen Hoeller
1b1a69a144
SimpleAliasRegistry fully synchronizes registerAlias and removeAlias
...
Issue: SPR-16577
2018-03-12 13:27:48 +01:00
Sam Brannen
42b4f6e1ff
Clean up warnings and dead code in spring-core module
2018-03-11 14:13:30 +01:00
igor-suhorukov
0c45c4c6a3
lamdbas containing only one statement should not nest this statement in a block
2018-03-08 21:49:04 +01:00
Juergen Hoeller
139dc1d373
Polishing (collapsed if checks, consistent downcasts, refined javadoc)
2018-03-08 18:11:57 +01:00
igor-suhorukov
0f7485b01d
Polish: reorder the modifiers to comply with the Java Language Specification.
2018-03-08 17:57:47 +01:00
Rossen Stoyanchev
27815847b1
content-length support in EncoderHttpMessageWriter
...
EncoderHttpMessageWriter checks explicitly for Mono publishers and sets
the content length, if it is known for the given data item.
Issue: SPR-16542
2018-03-06 19:04:02 -05:00
Juergen Hoeller
eb9c43dcbc
Reliably expose nested cause exception message for PersistenceException
...
Issue: SPR-16559
2018-03-06 23:06:14 +01:00
Juergen Hoeller
c543368aad
Polishing
2018-03-03 17:33:48 +01:00
Juergen Hoeller
cd4f0935c5
Revised deprecation markers
2018-03-01 23:43:06 +01:00
igor-suhorukov
8080f56db8
Polish: "@Override" should be used on overriding and implementing methods
2018-03-01 00:15:18 +01:00
Juergen Hoeller
6663d0ff07
Support for ResolvableType.getType().getTypeName() on Java 8
...
Issue: SPR-16535
2018-02-26 17:19:12 +01:00
igor-suhorukov
49fd724d8f
Polish: String function use should be optimized for single characters
2018-02-25 20:48:47 +01:00
igor-suhorukov
c782075a13
Polish: Array designators "[]" should be on the type, not the variable
2018-02-25 13:14:20 +01:00
Juergen Hoeller
3531c104b0
Prefer Collections.addAll call with array over Set.addAll(Arrays.asList)
2018-02-25 00:21:39 +01:00
igor-suhorukov
67a91cf6f9
Polish: redundant pairs of parentheses should be removed
2018-02-25 00:01:43 +01:00
Juergen Hoeller
0f740527c1
Deprecated StringUtils.mergeStringArrays
2018-02-22 15:13:57 +01:00
Juergen Hoeller
a5cbf5fe24
Consistent use of Collection.toArray with zero-sized array argument
...
Includes consistent use of ClassUtils.toClassArray (as non-null variant)
Issue: SPR-16523
2018-02-22 11:29:46 +01:00
Juergen Hoeller
f316f6a46a
Remove unnecessary assertions from annotation resolution code paths
...
Issue: SPR-16514
2018-02-19 10:29:09 +01:00
Juergen Hoeller
d7cab23e6d
Consistent use of StringUtils.toStringArray
...
(cherry picked from commit 6d11b40
)
2018-02-16 20:49:17 +01:00
Juergen Hoeller
8d3264f680
Prefer List.sort(Comparator) over Collections.sort(List, Comparator)
2018-02-16 10:23:18 +01:00
Juergen Hoeller
3b810f3544
Consistent Class array vs vararg declarations (and related polishing)
2018-02-14 14:44:00 +01:00
Juergen Hoeller
99662bc702
Polishing
2018-02-13 23:32:10 +01:00
igor-suhorukov
45e520ed86
Polish: remove unused private fields, remove empty operator
2018-02-13 23:00:18 +01:00
Juergen Hoeller
0c78c9c6f7
Refined javadoc and exception messages
2018-02-13 15:25:42 +01:00
Vladimir Sitnikov
659f13be1c
Avoid creating message arguments to Assert.isABC calls
...
See 67f184293b
2018-02-13 12:31:49 +01:00
Juergen Hoeller
b449928691
Avoid unused arguments for internal delegates
2018-02-13 11:40:28 +01:00
Juergen Hoeller
b089ded5b0
Polishing
2018-02-12 15:55:18 +01:00
igor-suhorukov
0ee505b73e
Polish: assertion arguments should be passed in the correct order,
...
use assertNull instead of assertEquals(null, value),
declare delta as double value in assertEquals
2018-02-10 17:17:28 +01:00
igor-suhorukov
6ea0af3540
Polish: Lambdas should be replaced with method references
2018-02-10 12:09:46 +01:00
igor-suhorukov
9a6fbf59c5
Polish: follow name convention - make immutable fields final
2018-02-10 12:09:19 +01:00
Juergen Hoeller
e873b18f43
ResolvableType.forClassWithGenerics retains original TypeVariables
...
Issue: SPR-16456
2018-02-09 15:29:00 +01:00
Stephane Nicoll
991eb4858e
Update copyright header
2018-02-09 10:16:58 +01:00
igor-suhorukov
e381514b07
Collection.isEmpty() should be used to test for emptiness
...
Closes gh-1670
2018-02-09 10:11:44 +01:00
igor-suhorukov
4c888d0f32
Polish
...
Closes gh-1669
2018-02-09 10:10:05 +01:00
Arjen Poutsma
fb61af1882
Allow "release on close" for DataBuffer.asInputStream
...
This commit introduces DataBuffer.asInputStream(boolean), that can
release the underlying buffer when the stream is closed.
Furthermore, this commit adds additional javadoc.
Issue: SPR-16444
2018-02-08 10:11:53 +01:00
Arjen Poutsma
609f173ebc
StringDecoder shouldn't chop off strings randomly
...
Issue: SPR-16337
2018-02-02 15:59:21 +01:00
Juergen Hoeller
cfe7ff1c81
MimeType.compareTo uses case-insensitive Charset (analogous to equals)
...
Issue: SPR-16458
2018-02-02 13:44:07 +01:00
Juergen Hoeller
c5a33d62dd
TypeVariablesVariableResolver compares variables by full equality again
...
Issue: SPR-16456
2018-02-02 12:41:43 +01:00
Juergen Hoeller
30f6e447d5
TypeVariablesVariableResolver compares variables by name
...
Issue: SPR-16456
2018-02-02 11:34:36 +01:00
Juergen Hoeller
ef3f93e84a
Language tag parsing support in StringUtils and StringToLocaleConverter
...
Issue: SPR-16188
2018-01-25 19:10:31 +01:00
Arjen Poutsma
0befc60c8f
Renamed DataBufferUtils/DataBufferFactory.compose to join
...
Issue: SPR-16365
2018-01-22 10:51:07 +01:00
sdeleuze
3f3141cdda
Add additional test for SPR-16210
...
Issue: SPR-16210
2018-01-22 10:29:21 +01:00
Juergen Hoeller
572c668726
Polishing
2018-01-19 21:30:37 +01:00
Arjen Poutsma
5520e730f1
DataBufferUtils.read should not take input stream/channel as parameter
...
Fixed by creating `Callable`-based variants, as explained in the JIRA
issue.
Issue: SPR-16403
2018-01-19 17:38:14 +01:00
Juergen Hoeller
4c7414833b
ResolvableType returns clone for cached state with original local source
...
Issue: SPR-16210
2018-01-19 12:30:03 +01:00
Juergen Hoeller
ea5f8f5a7c
Consistently handle NoClassDefFoundError in BeanUtils and related places
...
Issue: SPR-16369
2018-01-17 20:24:57 +01:00
Juergen Hoeller
4c9ed0d87e
Polishing
2018-01-12 18:24:00 +01:00
Juergen Hoeller
06e6386dc9
CollectionUtils.lastElement for common Set/List extraction
...
Issue: SPR-16374
2018-01-12 18:23:52 +01:00
Juergen Hoeller
347c2daa2c
Test for multiple interfaces at BridgeMethodResolver level
...
Issue: SPR-16288
2018-01-12 16:45:38 +01:00
Arjen Poutsma
67e7c784e8
Use DataBufferUtils.compose and remove writeAggregator
...
Use DataBufferUtils.compose instead of writeAggregator to combine
multiple data buffers into one, as the write aggregator would not work
when the initial data buffer did not have enough capacity to contain
all subsequent buffers.
Removed writeAggregator, as it is no longer needed.
Issue: SPR-16365
2018-01-12 10:36:09 +01:00
Arjen Poutsma
384a399fd2
Add DataBufferUtils.compose
...
Added a utility method that composes data buffers into a single buffer.
Depending on the `DataBuffer` implementation, the returned buffer may be
a single buffer containing all data of the provided buffers, or it may
be a true composite that contains references to the buffers.
Issue: SPR-16365
2018-01-12 10:36:09 +01:00
Juergen Hoeller
121f9e3734
BridgeMethodResolver properly resolves all declared interfaces
...
Issue: SPR-16288
2018-01-11 10:18:27 +01:00
Arjen Poutsma
5adaa1030c
Javadoc
2018-01-10 17:54:51 +01:00
Arjen Poutsma
8a129ef3da
Use write aggregator from DataBufferUtils
...
This commit uses the newly introduced write aggregator from
DataBufferUtils throughout WebFlux.
Issue: SPR-16351
2018-01-10 11:15:47 +01:00
Arjen Poutsma
69ccba30e9
Introduce write aggregator to DataBufferUtils
...
As a consequence of dropping CompositeByteBuf (see prior commit),
DataBuffers fluxes that are aggregated with Flux.reduce(BiFunction) are
now required to be released, as the composite no longer holds a
reference to subsequent data buffers.
For this purpose, DataBufferUtils now has a writeAggregator that can be
used with Flux.reduce, and that released the subsequent buffers
properly.
Issue: SPR-16351
2018-01-10 11:14:02 +01:00
Arjen Poutsma
e6893da971
Remove use of CompositeByteBuf in NettyDataBuffer
...
Prior to this commit, NettyDataBuffer had a optimization in
write(ByteBuf...), where it used a CompositeByteBuf to hold the original
and the parameter buffer.
Unfortunately, this procedure has nasty consequences when splicing
buffers (see https://stackoverflow.com/a/48111196/839733 ).
As of this commit, NettyDataBuffer stopped using CompositeByteBuf, and
simply does ByteBuf.write().
Issue: SPR-16351
2018-01-10 11:05:41 +01:00
Juergen Hoeller
45828cb934
Check BeanInfoFactory for interface introspection as well
...
Issue: SPR-16322
2018-01-08 18:05:02 +01:00
Juergen Hoeller
7ad69bfc20
Avoid extra existence check in SimpleMetadataReaderFactory
...
Issue: SPR-16281
2018-01-07 23:18:52 +01:00
Juergen Hoeller
1a154c3e4c
Consistently throw FileNotFoundException even for NIO access
...
Issue: SPR-16334
2018-01-07 23:18:28 +01:00
Rossen Stoyanchev
f4d8c7cc2b
Improve decodeToMono support
...
This commit ensures uniform support for decodeToMono across the various
byte and String related decoders.
Issue: SPR-16253
2017-12-14 16:59:34 -05:00
Christoph Dreis
260ebeca3a
Improve performance of some string operations
...
Issue: SPR-16293
2017-12-12 17:14:24 +01:00
Sam Brannen
767ea9db83
Fix minor logic error in SocketUtils
2017-12-06 17:00:29 -08:00
Tony Mitchell
9f36d170be
Support identical minPort and maxPort in SocketUtils ( #1612 )
...
This commit fixes a bug where an IllegalStateException was
thrown if the minPort and maxPort values supplied to
SocketUtils.findAvailableTcpPort(int, int) were identical.
2017-12-06 16:38:46 -08:00
Sam Brannen
f9689dfe48
Polishing
2017-12-06 15:54:02 -08:00
Sam Brannen
773cd3241b
Polishing
2017-11-28 14:11:21 +01:00
Juergen Hoeller
0cc644f61f
Polishing
2017-11-21 16:34:08 +01:00
sdeleuze
9f1d8517ba
Polish Kotlin source code style
2017-11-21 15:59:23 +01:00
Juergen Hoeller
5843173567
Polishing
2017-11-21 13:42:57 +01:00
jianglei
4b614dc1de
Fix copy/paste in Javadoc
...
Closes gh-1601
2017-11-21 06:58:14 +01:00
Rossen Stoyanchev
bc8e525e60
Add shared instance of ReactiveAdapterRegistry
...
Issue: SPR-16218
2017-11-20 17:02:22 -05:00
Juergen Hoeller
84699c8b9b
Document common use cases for @Order vs @Priority vs @DependsOn
...
Issue: SPR-16213
2017-11-20 12:53:37 +01:00
Arjen Poutsma
e4d405271a
Document DataBuffer/PooledDataBuffer and codecs
...
Issue: SPR-16156
2017-11-16 11:36:26 +01:00
diesieben07
0e49e32188
Handle parameters of Kotlin extension methods correctly
...
The EXTENSION_RECEIVER parameter of Kotlin's extension
methods appear as normal method parameters to Java and
thus require a name. The synthetic name "$receiver" is
used here, as it is not a valid Kotlin identifier,
but valid in Java.
Issue: SPR-16119
2017-11-13 15:42:32 +01:00
Sam Brannen
2be2aa7b96
Add missing word to JavaDoc
2017-11-13 00:46:20 +01:00
Arjen Poutsma
8223809455
Use existing CompositeByteBuf if possible
...
This commit uses the existing CompositeByteBuf if present, as opposed
to creating a new composite for every call to
NettyDataBuffer.write(ByteBuf...)
Issue: SPR-16180
2017-11-10 15:09:14 +01:00
Juergen Hoeller
9b7af8b5aa
Polishing
2017-11-05 21:07:26 +01:00
Juergen Hoeller
07b479e264
FileUrlResource creates same class from createRelative
...
Issue: SPR-16140
2017-11-05 21:01:29 +01:00
Juergen Hoeller
996d747aed
Upgrade to Mockito 2.11
...
Includes fixes for invalid exception declarations in Mockito-based unit tests. Also includes FreeMarker 2.3.27, Commons Pool 2.4.3, JSON-P 1.1.2.
Issue: SPR-16157
2017-11-04 01:06:59 +01:00
Juergen Hoeller
d00e4f17ec
ClassPathResource uses specific constructors in createRelative
...
Issue: SPR-16146
2017-11-02 16:05:57 +01:00
Juergen Hoeller
b921d564d2
DefaultResourceLoader resolves writable FileUrlResource for "file:" URL
...
Issue: SPR-16140
2017-11-02 16:05:40 +01:00
Juergen Hoeller
a2f5e1254e
Drive letter case alignment in addClassPathManifestEntries
...
Issue: SPR-16117
2017-10-26 15:28:27 +02:00
Juergen Hoeller
7e8c8f0b76
Polishing
2017-10-25 19:23:48 +02:00
Juergen Hoeller
2d0ab4740c
Consistent hasText checks for CharSequence vs String
...
Directly inlined hasLength implementations for proper nullability detection in IntelliJ, assuming a hasText checked value is never null afterwards. Since the JVM is going to do this at runtime anyway, this is effectively equivalent but more indicative for source code introspection algorithms.
Issue: SPR-15540
2017-10-24 13:16:47 +02:00
Juergen Hoeller
182da15908
BridgeMethodResolver properly resolves interface hierarchies
...
Issue: SPR-16103
2017-10-24 01:01:49 +02:00
Juergen Hoeller
55b0c2f243
Polishing
2017-10-24 01:01:42 +02:00
Juergen Hoeller
ecea82d3a5
Polishing
2017-10-23 17:14:09 +02:00
Juergen Hoeller
75ec973bae
Refined tests for StringUtils.starts/endsWithIgnoreCase
...
Issue: SPR-16095
2017-10-22 20:29:46 +02:00
Juergen Hoeller
5d41e0f012
Avoid temporary String creation in StringUtils.starts/endsWithIgnoreCase
...
Issue: SPR-16095
2017-10-22 14:31:17 +02:00
Juergen Hoeller
9a88ebdeba
Consistent hasText checks for CharSequence vs String
...
Issue: SPR-15540
2017-10-22 12:12:32 +02:00
Arjen Poutsma
c7a15260d6
Various DataBuffer improvements
...
This commit introduces various improvements in DataBuffer:
- DataBuffer now exposes its read and write position, as well as its
capacity and writable byte count.
- Added DataBuffer.asByteBuffer(int, int)
- DataBufferUtils.read now reads directly into a DataBuffer, rather than
copying a ByteBuffer into a DataBuffer
- TomcatHttpHandler now reads directly into a DataBuffer
Issues: SPR-16068 SPR-16070
2017-10-19 10:38:52 +02:00
Juergen Hoeller
3d1023be8c
Polishing
2017-10-17 11:56:30 +02:00
Rossen Stoyanchev
b4c95bf278
ReactiveAdapterRegistry uses Reactor's JdkFlowAdapter
...
Issue: SPR-16052
2017-10-16 20:49:22 -04:00
Juergen Hoeller
c29b6f5b55
Consistent handling of null array for arguments
...
Issue: SPR-16075
2017-10-16 15:34:18 +02:00
Sam Brannen
8a94077da0
Clean up warnings in spring-core
2017-10-15 18:28:08 +02:00
Juergen Hoeller
43b5e21947
Consistent alias declarations for value attribute on stereotypes
...
Issue: SPR-16066
2017-10-13 18:18:12 +02:00
Juergen Hoeller
dc3299152c
Polishing
2017-10-09 16:06:03 +02:00
Juergen Hoeller
53091c76bf
Convenient forType methods for ParameterizedTypeReference
...
Issue: SPR-16054
2017-10-09 13:59:01 +02:00
Juergen Hoeller
ec345bf162
Revised handling of missing data class arguments
...
Includes unified detection of Kotlin's optional parameters in MethodParameter.isOptional(), reduces BeanUtils.findPrimaryConstructor to Kotlin semantics (for reuse in AutowiredAnnotationBeanPostProcessor), and finally introduces a common KotlinDetector delegate with an isKotlinType(Class) check.
Issue: SPR-15877
Issue: SPR-16020
2017-09-28 00:31:12 +02:00
Juergen Hoeller
efce7902c4
Polishing
2017-09-27 01:34:11 +02:00
Juergen Hoeller
9d8e3d4185
Explicit check for duplicates in addClassPathManifestEntries
...
Issue: SPR-15989
2017-09-26 11:49:49 +02:00
Sebastien Deleuze
3996f33399
Support non-standard classes in Kotlin reflection discovery methods
...
Issue: SPR-15999
2017-09-24 23:10:40 +02:00
Juergen Hoeller
7ae59d0c2a
Nullability refinements on private and static methods
...
Based on IntelliJ IDEA 2017.3 introspection results.
Issue: SPR-15756
2017-09-22 18:22:14 +02:00
Sebastien Deleuze
6c4a103f70
Remove support for generics nullability for now
...
See https://github.com/Kotlin/KEEP/issues/79
2017-09-21 18:44:27 +02:00
Juergen Hoeller
15c82afc1c
Consistent conversion of Optional array/list arrangements
...
Issue: SPR-15918
Issue: SPR-15919
Issue: SPR-15676
2017-09-20 18:28:49 +02:00
Juergen Hoeller
185c2bf5b6
Upgrade to ASM 6.0
...
Issue: SPR-14514
2017-09-19 13:49:32 +02:00
Juergen Hoeller
346d2edce1
Revised org.springframework.lang javadoc
...
Issue: SPR-15756
2017-09-18 23:59:11 +02:00
Sebastien Deleuze
1bc93e3d0f
Revisit nullability annotations
...
This commit introduces the following changes.
1) It adds a new Spring @NonNull annotation which allows to apply
@NonNullApi semantic on a specific element, like @Nullable does.
Combined with @Nullable, it allows partial null-safety support when
package granularity is too broad.
2) @Nullable and @NonNull can apply to ElementType.TYPE_USE in order
to be used on generic type arguments (SPR-15942).
3) Annotations does not apply to ElementType.TYPE_PARAMETER anymore
since it is not supported yet (applicability for such use case is
controversial and need to be discussed).
4) @NonNullApi does not apply to ElementType.FIELD anymore since in a
lot of use cases (private, protected) it is not part for the public API
+ its usage should remain opt-in. A dedicated @NonNullFields annotation
has been added in order to set fields default to non-nullable.
5) Updated Javadoc and reference documentation.
Issue: SPR-15756
2017-09-15 13:26:41 +02:00
Sebastien Deleuze
5ae35f606c
Leverage kotlin-reflect to determine parameter names
...
This is especially useful to determine interface parameter names
without requiring Java 8 -parameters compiler flag.
Issue: SPR-15541
2017-09-06 15:56:45 +02:00
Juergen Hoeller
204ddebd68
SimpleAsyncTaskExecutor properly respects NO_CONCURRENCY
...
Issue: SPR-15895
2017-09-01 13:44:49 +02:00
Sebastien Deleuze
ab6430569d
Efficient Kotlin metadata detection
...
Follow-up of 3991ab4a23
.
Issue: SPR-15673
2017-08-22 16:22:25 +02:00
Juergen Hoeller
3991ab4a23
Efficient Kotlin metadata detection
...
Issue: SPR-15673
2017-08-21 01:33:20 +02:00
Sebastien Deleuze
73cf07e9a4
Fix overridden methods nullability
...
Issue: SPR-15869
2017-08-17 15:02:59 +02:00
Juergen Hoeller
fabc9c28d7
Align new FileSystemUtils NIO implementation with original behavior
...
Issue: SPR-15845
Issue: SPR-15846
2017-08-03 14:21:00 +02:00
Juergen Hoeller
26de6268aa
Polishing
2017-07-27 16:06:56 +02:00
Juergen Hoeller
fac83b2e7c
Consistent logging in Environment and PropertySource implementations
...
Issue: SPR-15825
2017-07-27 16:02:18 +02:00
Juergen Hoeller
c5fc400534
(AnnotationAware)OrderComparator supports null values again
...
Issue: SPR-15823
2017-07-27 11:39:05 +02:00
Arjen Poutsma
d5da823482
Fix race condition for AsynchronousFileChannel
...
This commit fixes an issue in the DataBufferUtils.write variant that
takes a AsynchronousFileChannel.
Issue: SPR-15798
2017-07-26 14:10:48 +02:00
Rossen Stoyanchev
d7a7b08b08
Find the last plus for suffix MediaType
...
Issue: SPR-15795
2017-07-25 10:45:59 +02:00
Sebastien Deleuze
2437500cfe
Ignore DataBufferUtilsTests#writeAsynchronousFileChannel
...
Issue: SPR-15798
2017-07-20 13:51:13 +02:00
Juergen Hoeller
e4651d6b50
XmlEventDecoder uses common defensive XMLInputFactory (now in StaxUtils)
...
Issue: SPR-15797
2017-07-20 13:17:27 +02:00
Sebastien Deleuze
fa4d139684
Support instantiating Kotlin classes with optional parameters
...
This commit updates BeanUtils class in order to add Kotlin optional
parameters with default values support to the immutable data classes
support introduced by SPR-15199.
Issue: SPR-15673
2017-07-20 10:44:06 +02:00
Juergen Hoeller
46eba3dbfa
Nullability fine-tuning around declaration inconsistencies
...
Issue: SPR-15720
Issue: SPR-15792
2017-07-19 22:22:20 +02:00
Juergen Hoeller
9fc4fb10b0
Nullability fine-tuning around bean properties
...
Issue: SPR-15720
Issue: SPR-15792
2017-07-19 11:43:58 +02:00
Sebastien Deleuze
fb4ddb0746
Make getters and setters null-safety consistent
...
This commit ensure that null-safety is consistent between
getters and setters in order to be able to provide beans
with properties with a common type when type safety is
taken in account like with Kotlin.
It also add a few missing property level @Nullable
annotations.
Issue: SPR-15792
2017-07-19 09:07:56 +02:00
Sebastien Deleuze
e2fd04dff3
Add a [] Kotlin extension for PropertyResolver#getRequiredProperty
2017-07-19 08:12:32 +02:00
Juergen Hoeller
12114a9d4c
Consistent use of NIO.2 for file read/write interactions
...
Issue: SPR-15748
2017-07-18 00:54:41 +02:00
Rossen Stoyanchev
d56fedc226
Methods for reading a Resource in DataBufferUtils
...
Currently ResourceEncoder and ResourceRegionEncoder use DataBufferUtils
to read resource with an AsynchronousFileChannel if it is a file or
otherwise fallback on getting the channel from the resource.
The same is now required in other places where a Resource needs to be
read and is also generally useful.
Issue: SPR-15773
2017-07-17 12:25:25 +02:00
Rossen Stoyanchev
d3749bc1ec
Add timeout to DataBufferUtilsTests to avoid hanging
2017-07-14 23:07:48 +02:00
Arjen Poutsma
c802827f0f
Change write methods to return Flux<DataBuffer>
...
This commit changes the write methods to return `Flux<DataBuffer>`
instead of `Mono<Void>`, giving access to the original buffers,
so that they can decided whether the buffers need to be closed or not.
Issue: SPR-15726
2017-07-14 18:55:25 +02:00
Arjen Poutsma
83051b06b8
Add write methods to DataBufferUtils
...
This commit adds an overloaded write method to `DataBufferUtils`. There
are three parameter variants: `OutputStream`, `WritableByteChannel`, and
`AsynchronousFileChannel`.
Issue: SPR-15726
2017-07-14 17:13:59 +02:00
Rossen Stoyanchev
dfcc9af938
Lazy registration in ReactiveAdapterRegistry
...
Issue: SPR-15747
2017-07-11 13:04:43 +02:00
Juergen Hoeller
3714e7b044
Deprecate FileSystemUtils
...
Issue: SPR-15748
2017-07-10 14:25:13 +02:00
Juergen Hoeller
9b5132ce53
LinkedCaseInsensitiveMap exposes its locale for key conversion
...
Issue: SPR-15752
2017-07-10 14:24:28 +02:00
Juergen Hoeller
398322139a
StringUtils.uncapitalize is not actually nullable
...
Issue: SPR-15540
2017-07-05 17:56:37 +02:00
Arjen Poutsma
621df7c978
Add ByteBuf leak detection @Rule
...
This commit introduces a JUnit rule that detects ByteBuf leaks in
subclasses of AbstractDataBufferAllocatingTestCase.
2017-06-30 10:52:00 +02:00
Juergen Hoeller
cc74a2891a
@Nullable all the way: null-safety at field level
...
This commits extends nullability declarations to the field level, formalizing the interaction between methods and their underlying fields and therefore avoiding any nullability mismatch.
Issue: SPR-15720
2017-06-30 01:54:16 +02:00
Juergen Hoeller
87430f3cd3
ListenableFuture provides CompletableFuture adaptation via completable()
...
Issue: SPR-15696
2017-06-27 00:43:37 +02:00
Juergen Hoeller
41eaf03bc8
Compatibility with covariant return type on JDK 9's ByteBuffer
...
Issue: SPR-15686
2017-06-26 23:22:28 +02:00
Juergen Hoeller
098ff6f0f8
Compatibility with JDK 9 release candidate build (175)
...
Includes upgrade to Objenesis 2.6, Gradle 3.5.1, RxJava 2.1.1, JSON Binding API 1.0 final.
Issue: SPR-15686
Issue: SPR-15600
2017-06-26 18:58:59 +02:00
Stephane Nicoll
58242f2249
Polish
2017-06-13 10:13:14 +02:00
Stephane Nicoll
fc64b8040f
Polish "Replace relevant code with lambda"
...
Closes gh-1454
2017-06-13 09:42:20 +02:00
diguage
4b1478d830
Replace relevant code with lambda
...
See gh-1454
2017-06-13 08:55:38 +02:00
Juergen Hoeller
3ae84d6dd8
Consistent support for Charset/StandardCharsets in UriUtils etc
...
Issue: SPR-15613
2017-06-12 15:51:45 +02:00
diguage
2efa06237a
Use Map#forEach instead of Map#entrySet#forEach
...
See gh-1449
2017-06-12 14:37:33 +02:00
Arjen Poutsma
9bf82dc18f
Add addAll(MultiValueMap)
...
This commit introduces a new method for MultiValueMap: addAll, which
adds all values of a given map (cf putAll, which replaces existing
values).
2017-06-12 14:12:12 +02:00
Arjen Poutsma
7085a30382
Improve capacity calculcation in DefaultDataBuffer
...
This commit improves the capacity calculation for the DefaultDataBuffer,
so that the capacity typically doubles instead of improving by the
minimal required amount.
Issue: SPR-15647
2017-06-12 11:04:19 +02:00
Stephane Nicoll
27aabb15f9
Polish "Refact iterator of Map with Java 8 forEach"
...
Closes gh-1451
2017-06-12 08:53:56 +02:00
diguage
dab7a7f0ee
Refact iterator of Map with Java 8 forEach
...
See gh-1451
2017-06-12 08:11:32 +02:00
Juergen Hoeller
fd53d2a51a
Consistent use of @Nullable in spring-test
...
This commit also removes nullability from two common spots: ResolvableType.getType() and TargetSource.getTarget(), both of which are never effectively null with any regular implementation. For such scenarios, a non-null empty type/target is the cleaner contract.
Issue: SPR-15540
2017-06-08 22:52:59 +02:00
Juergen Hoeller
e6f1950952
Missing @Nullable annotations for findAnnotation/getValue/getDefaultValue
...
Note that synthesizeAnnotation has an assertion now, keeping its non-null policy.
Issue: SPR-15642
2017-06-08 10:35:54 +02:00
Phillip Webb
72cd24446d
Make resolvePropertyName available to subclasses
...
Change `SystemEnvironmentPropertySource.resolvePropertyName` to a
protected final method so that subclasses may call it.
Issue: SPR-15617
2017-06-07 17:03:31 -07:00
Phillip Webb
c675424189
Restore AnnotationUtils null argument support
...
Update AnnotationUtils to restore support for `null` arguments in
certain methods. Some existing upstream projects were relying on this
behavior.
Issue: SPR-15642
2017-06-07 16:59:24 -07:00
Juergen Hoeller
f813712f5b
Consistent use of @Nullable across the codebase (even for internals)
...
Beyond just formally declaring the current behavior, this revision actually enforces non-null behavior in selected signatures now, not tolerating null values anymore when not explicitly documented. It also changes some utility methods with historic null-in/null-out tolerance towards enforced non-null return values, making them a proper citizen in non-null assignments.
Some issues are left as to-do: in particular a thorough revision of spring-test, and a few tests with unclear failures (ignored as "TODO: NULLABLE") to be sorted out in a follow-up commit.
Issue: SPR-15540
2017-06-07 14:19:15 +02:00
Stephane Nicoll
6e3a9cbbb4
Polish "Refactor duplicated code"
...
Closes gh-1445
2017-06-04 13:06:09 +02:00
diguage
5288641c50
Refactor duplicated code
...
See gh-1445
2017-06-04 13:01:03 +02:00
diguage
eae63786c2
Fixed reference
2017-06-03 15:19:36 +08:00
Sebastien Deleuze
90df7dd279
Add missing @Nullable annotation
...
Issue: SPR-15540
2017-06-02 14:16:19 +02:00
Sebastien Deleuze
b494c53b40
Avoid defining nullability for non-relevant API
...
Defining nullability of some API like EnvironmentCapable
or ConditionContext causes issues in Spring Boot because
in the context where they are used, it is known for sure
they will return non-null values even if their API can in
other context return null values.
It is better in this case for both Java and Kotlin to
not define at all the nullabity of such API.
In practice, this is achieved by removing the package level
@NonNullApi annotation and adding it only on the
relevant classes.
Issue: SPR-15540
2017-05-31 22:51:33 +02:00
Sebastien Deleuze
1f28825f9d
Add more @Nullable parameters based on null usage
...
Issue: SPR-15540
2017-05-31 21:42:23 +02:00
Sebastien Deleuze
c3e6afb879
Improve null-safety to fix some Spring Boot warnings
...
Issue: SPR-15540
2017-05-31 17:14:49 +02:00
Sebastien Deleuze
b47d713e14
Add missing @Nullable annotations on parameters
...
Issue: SPR-15540
2017-05-31 16:56:08 +02:00
Sebastien Deleuze
ad2c0f8410
Improve @Nullable annotation
...
This commit makes Spring @Nullable annotation leveraging
JSR 305 @TypeQualifierNickname + @Nonnull(when= When.MAYBE)
instead of directly using @javax.annotation.Nullable which
seems not designed to be used as a meta-annotation.
It also removes @TypeQualifierDefault since the purpose of
this annotation when applied at method level is to only
change return value nullability, not parameters one.
Issue: SPR-15540
2017-05-31 16:56:08 +02:00
Sebastien Deleuze
87598f48e4
Introduce null-safety of Spring Framework API
...
This commit introduces 2 new @Nullable and @NonNullApi
annotations that leverage JSR 305 (dormant but available via
Findbugs jsr305 dependency and already used by libraries
like OkHttp) meta-annotations to specify explicitly
null-safety of Spring Framework parameters and return values.
In order to avoid adding too much annotations, the
default is set at package level with @NonNullApi and
@Nullable annotations are added when needed at parameter or
return value level. These annotations are intended to be used
on Spring Framework itself but also by other Spring projects.
@Nullable annotations have been introduced based on Javadoc
and search of patterns like "return null;". It is expected that
nullability of Spring Framework API will be polished with
complementary commits.
In practice, this will make the whole Spring Framework API
null-safe for Kotlin projects (when KT-10942 will be fixed)
since Kotlin will be able to leverage these annotations to
know if a parameter or a return value is nullable or not. But
this is also useful for Java developers as well since IntelliJ
IDEA, for example, also understands these annotations to
generate warnings when unsafe nullable usages are detected.
Issue: SPR-15540
2017-05-27 08:57:01 +02:00
Juergen Hoeller
db69a082d9
Avoid java.util.Optional signatures for simple field access
...
Issue: SPR-15576
2017-05-23 22:05:15 +02:00
Juergen Hoeller
7b3f5fd855
ResourceUtils.extractArchiveURL properly deals with top-level war URLs
...
Issue: SPR-15556
2017-05-17 14:22:43 +02:00
Rossen Stoyanchev
0d28a1c32b
Polish
2017-05-05 15:02:09 -04:00
Rossen Stoyanchev
83e0e1604a
Refine encoding/decoding exception handling
...
Starting with removing a package cycle on the use of
ResponseStatusException in the codec package, this commit generally
refines codec exception handling.
The new [Encoding|Decoding]Exception mirror the existing
HttpMessageNot[Readable|Writable]Exception and are used similarly
especially to differentiate betwen 400 and 500 errors when parsing
server request body content.
The commit also aligns some of the exception handling of JSON and XML
on the WebFlux side with that on the Spring MVC side.
Issue: SPR-15516
2017-05-05 14:29:43 -04:00
Juergen Hoeller
652266bcc2
Polishing
2017-05-04 22:27:36 +02:00
Juergen Hoeller
d43dfc7bae
Properly extract jar file from Tomcat war URL
...
Issue: SPR-15485
2017-05-03 21:58:59 +02:00
Juergen Hoeller
4d86515fa5
Overridable Commons Logging bridge in separate spring-jcl jar
...
Issue: SPR-14512
2017-05-03 20:29:05 +02:00
Juergen Hoeller
27057889f8
Polishing
2017-05-03 13:45:29 +02:00
Phillip Webb
07ef7a97c7
Cache SpringFactoriesLoader loads
...
Update `SpringFactoriesLoader` to cache property file loads. This helps
reduce the number of garbage objects created as each load uses an 8K
char buffer.
Issue: SPR-15509
2017-05-03 12:51:52 +02:00
Arjen Poutsma
ed4bd43cac
Add writableChannel to WritableResource
...
This commit introduces a `writableChannel()` method to
`WritableResource`, defaulting to `Channels.newChannel`, but with
overrides for file-based resources.
2017-05-03 11:44:01 +02:00
Juergen Hoeller
9d8e9cf243
Common root cause introspection algorithm in NestedExceptionUtils
...
Issue: SPR-15510
2017-05-03 11:31:28 +02:00
Juergen Hoeller
817e80c56b
Property actually throws exception for no write method found
...
Issue: SPR-15507
2017-05-02 21:16:31 +02:00
Juergen Hoeller
7ca0094fa1
ResolvableType.clearCache() clears SerializableTypeWrapper cache as well
...
Issue: SPR-15503
2017-05-02 21:13:55 +02:00
Stephane Nicoll
1b9e12f52f
Polish "Use Java 8 forEach method on Map"
...
Closes gh-1404
2017-04-28 11:07:08 +02:00
Jon Borenstein
13dc0cd828
Use Java 8 forEach method on Map
2017-04-28 11:07:08 +02:00
Juergen Hoeller
1ea54eb2c6
GenericFilterBean lazily initializes its default environment
...
Alignment with HttpServletBean; consistent use of EnvironmentCapable.
Issue: SPR-15469
2017-04-27 21:38:30 +02:00
Juergen Hoeller
baa7b1c6c8
Simplified match condition checks
...
Issue: SPR-15477
2017-04-27 21:31:50 +02:00
Juergen Hoeller
17f274fd6a
Debug log messages for value retrieval exceptions
...
Issue: SPR-15481
2017-04-27 21:31:39 +02:00
Juergen Hoeller
cd95f34666
Merge pull request #1399 from dreis2211/SPR-15477
...
Optimize AntPathMatcher when checking for potential matches
2017-04-27 20:26:37 +02:00
Christoph Dreis
13b39521d8
Optimize AntPathMatcher when checking for potential matches
...
Issue: SPR-15477
2017-04-27 19:04:36 +02:00
Sam Brannen
c855182e03
Polishing
2017-04-26 18:59:43 +02:00
Juergen Hoeller
c668d9a473
Polishing
2017-04-26 18:20:19 +02:00
Juergen Hoeller
3daf626842
Defensive fallback for file system resolution in lastModified()
...
Issue: SPR-15485
2017-04-26 18:17:00 +02:00
Oleg Zhurakousky
299b9d60fd
SPR-15481 Fixed AnnotationUtils.getValue() operation
...
- Fixed AnnotationUtils.getValue() operation to ensure it re-throws AnnotationConfigurationException instead of swallowing it (as it is done in few other operations in AnnotationUtils)
- Added test
- Removed unnecessary '@SuppressWarnings("unchecked")'
2017-04-26 15:05:32 +02:00
Rossen Stoyanchev
cc102c2fcd
Properly handle Flux<?> and Flux<Object> in WebFlux
...
Issue: SPR-15464
2017-04-20 09:19:38 -04:00
Rossen Stoyanchev
7d8dda9a5a
Polish reactive type support in Conventions
2017-04-18 23:25:44 -04:00
Rossen Stoyanchev
5c502b87ca
Support for reactive types in Conventions
...
Issue: SPR-14915
2017-04-18 23:00:43 -04:00
Rossen Stoyanchev
71966b0777
Polish Conventions
2017-04-18 23:00:43 -04:00
Juergen Hoeller
91df0653fe
Polishing
2017-04-17 15:05:34 +02:00
Juergen Hoeller
d50dab6ea9
Suppress deprecation warning on JDK 9 (for LogRecord.setMillis)
...
Includes revised Log methods in log level order, with consistent delegation of fatal->error for log level checks in SLF4J and JUL, a JavaUtilDelegate for defensive access to java.logging on JDK 9, support for LogRecord message objects, as well as revised log setup recommendations.
Issue: SPR-15453
Issue: SPR-14512
2017-04-14 22:43:44 +02:00
Rossen Stoyanchev
1e8c7e55de
WebTestClient assert response body with Consumer<B>
...
Issue: SPR-15421
2017-04-14 16:39:30 -04:00
Juergen Hoeller
0b118322b0
Polishing
2017-04-13 16:17:05 +02:00
Juergen Hoeller
4838f06d5d
ASM annotation visitor logs IllegalAccessException at debug level only
...
Issue: SPR-15442
2017-04-12 18:05:30 +02:00
Juergen Hoeller
093e573ace
ASM annotation visitor defensively accesses enum constants
...
Issue: SPR-15442
2017-04-12 15:36:18 +02:00
Sebastien Deleuze
4d9144132e
Upgrade to Reactor Core 3.1
...
Issue: SPR-15318
2017-04-11 18:13:04 +02:00
Juergen Hoeller
b061556f68
LogFactory enforces lazy resolution of non-String messages for SLF4J as well
...
Issue: SPR-14512
2017-04-11 15:39:17 +02:00
Sebastien Deleuze
23e35c0e1a
Handle Jackson InvalidDefinitionException with 5xx status in WebFlux
...
Issue: SPR-14925
2017-04-11 12:39:09 +02:00
Juergen Hoeller
c4e0d6c2a2
UnknownHostException as resource-not-found for properties files
...
Plus first-class declaration of FileNotFoundException in Resource javadoc.
Issue: SPR-15433
2017-04-11 11:45:30 +02:00
Juergen Hoeller
ce4eff321c
Optimize StringUtils.replace for larger replacement pattern
...
Issue: SPR-15430
2017-04-11 11:40:50 +02:00
Juergen Hoeller
3a1d431c7d
Optimize StringUtils.replace/deleteAny for common no-op case
...
Issue: SPR-15430
2017-04-11 10:11:54 +02:00
Juergen Hoeller
7fbc20e225
Undeprecate TypeVariableMap methods on GenericTypeResolver
...
Issue: SPR-15429
2017-04-11 10:09:09 +02:00
Juergen Hoeller
e5fdd4cd1d
Extracted AbstractJsonHttpMessageConverter from GsonHttpMessageConverter
...
Generic type resolution algorithm in GenericTypeResolver shared between Jackson and Gson.
Issue: SPR-15381
2017-04-10 15:36:29 +02:00
Juergen Hoeller
ea5cb26d75
LogFactory obtains ClassLoader-specific LoggerContext for Log4J
...
Issue: SPR-14512
2017-04-07 16:34:12 +02:00
Juergen Hoeller
8cb24e0d93
SettableTask.checkCompletingThread() only resets marker after match
...
Issue: SPR-15409
2017-04-07 13:39:58 +02:00
Juergen Hoeller
2566d6f5c8
LogFactory differentiates between SLF4J API and SPI presence
...
Issue: SPR-14512
2017-04-06 17:10:37 +02:00
Juergen Hoeller
702e01ad52
UrlResource applies StringUtils.getFilename against cleaned URL path
...
Issue: SPR-15411
2017-04-06 14:27:00 +02:00
Juergen Hoeller
67ea4b3a05
package-info for repackaged libraries (and other polishing)
2017-04-06 14:10:46 +02:00
Juergen Hoeller
75dd8d9c06
UrlResource applies StringUtils.getFilename against URL path
...
Issue: SPR-15411
2017-04-06 14:07:22 +02:00
Juergen Hoeller
3037277d0e
Minimize reflective interaction with annotation instances during retrieval
...
Issue: SPR-15387
2017-04-06 14:07:17 +02:00
Juergen Hoeller
45e7b350bd
LogFactory provides getFactory() with getInstance methods as well
...
Issue: SPR-14512
2017-04-05 22:24:09 +02:00
Juergen Hoeller
47277f43da
spring-core provides custom variant of Commons Logging
...
Includes dependency updates (JavaMail 1.6 RC1, RxJava 2.0.8, Tomcat 8.5.13, Undertow 1.4.12, XNIO 3.4.5)
Issue: SPR-14512
2017-04-05 21:22:44 +02:00
Rossen Stoyanchev
ae2306326e
Add RxJava1 Reactive Streams adapters check
2017-04-04 12:25:58 -04:00
Juergen Hoeller
e9627a10c7
Deprecate ObjectUtils.hashCode for primitives in favor of JDK 8's hashCode methods
...
Issue: SPR-15395
2017-04-04 17:16:50 +02:00
Rossen Stoyanchev
37f9c86758
Fix failing tests due to last commit
2017-04-03 09:38:08 -04:00
Rossen Stoyanchev
62c1e44db2
Spring MVC supports reactive return values
...
This commit adds support for reactive library types to be returned
directly from controller methods adapting them either to a
ResponseBodyEmitter (streaming) or DeferredResult (non-streaming).
The reactive libraries supported are the ones that can adapted to a
Reactive Streams Publisher through the ReactiveAdapterRegistry.
Issue: SPR-15365
2017-04-03 09:01:49 -04:00
Sebastien Deleuze
cbd98d5247
Switch back to Reactor BOM Aluminium-BUILD-SNAPSHOT
2017-03-29 16:41:54 +02:00
stonio
90388e4701
Replace size() check with isEmpty()
...
Closes gh-1333
2017-03-27 15:34:23 +02:00
stonio
412947a53f
Polish CollectionFactoryTests
...
Closes gh-1334
2017-03-27 12:51:11 +02:00
Rossen Stoyanchev
0662dbf044
String decoding for text only vs any MIME type
...
Follow-up to:
3d68c496f1
StringDecoder can be created in text-only vs "*/*" mode which in turn
allows a more intuitive order of client side decoders, e.g. SSE does
not have to be ahead of StringDecoder.
The commit also explicitly disables String from the supported types in
Jackson2Decoder leaving it to the StringDecoder in "*/*" mode which
comes after. This does not change the current arrangement since the
the StringDecoder ahead having "*/*" picks up JSON content just the
same.
From a broader perspective this change allows any decoder to deal with
String if it wants to after examining the content type be it the SSE
or another, custom decoder. For Jackson there is very little value in
decoding to String which works only if the output contains a single
JSON string but will fail to parse anything else (JSON object/array)
while StringDecoder in "*/*" mode will not fail.
Issue: SPR-15374
2017-03-23 16:53:06 -04:00
Rossen Stoyanchev
3d68c496f1
String encoding for any MIME type
...
CharSequenceEncoder now supports all MIME types, however since encoding
Flux<String> can overlap with other encoders (e.g. SSE) there are now
two ways to create a CharSequenceEncoder -- with support for text/plain
only or with support for any MIME type.
In WebFlux configuration we insert one CharSequenceEncoder for
text/plain (as we have so far) and a second instance with support for
any MIME type at the very end.
Issue: SPR-15374
2017-03-22 18:01:32 -04:00
Juergen Hoeller
e892e02f41
Polishing
2017-03-21 17:44:47 +01:00
Rossen Stoyanchev
c8671041f1
EncoderHttpMessageWriter supports streaming MediaTypes
...
Support for flushing in EncoderHttpMessageWriter is now driven from a
configurable list of "streaming" media types with the list including
"application/stream+json" by default.
As a result Jackson2ServerHttpMessageWriter is no longer needed.
2017-03-21 10:15:56 -04:00
Rossen Stoyanchev
6f075c9060
Update after changed method in Reactor Core
2017-03-20 21:57:17 -04:00
Juergen Hoeller
ab7db413c6
DefaultResponseErrorHandler delegate methods declared as protected
...
Also revises copyToByteArray/String in FileCopyUtils/StreamUtils for lenient null handling.
Issue: SPR-15329
2017-03-16 18:57:13 +01:00
Juergen Hoeller
012c56a1f0
Avoid pattern misdetection in Tomcat "war:" URL separator
...
Issue: SPR-15332
2017-03-16 18:55:49 +01:00
Juergen Hoeller
899f235998
Detect Tomcat's "war" protocol as jar URL
...
Issue: SPR-15332
2017-03-14 15:19:02 +01:00
Brian Clozel
b799013567
Update to Reactor Aluminium SNAPSHOT
...
Currently the BOM versions are:
* reactor-core 3.0.6.BUILD-SNAPSHOT
* reactor-netty 0.6.2.BUILD-SNAPSHOT
This commit fixes as well a few deprecations in reactor-core.
2017-03-10 15:20:40 +01:00
Arjen Poutsma
63118c1ea7
Add DataBufferUtils.read w/ AsynchFileChannel
...
This commit adds an overloaded DataBufferUtils.read method that operates
on a AsynchronousFileChannel (as opposed to a ReadableByteChannel, which
already existed). This commit also uses said method in the Resource
encoders, if the Resource is a file.
2017-03-09 14:08:40 +01:00
Juergen Hoeller
94a7624c1f
Polishing
2017-03-07 15:42:04 +01:00
Juergen Hoeller
8992f5924f
AnnotationUtils makes use of Java 8 getDeclaredAnnotation method
...
Issue: SPR-15287
2017-02-28 13:07:03 +01:00
Juergen Hoeller
cbd19153c4
Polishing
2017-02-22 16:53:54 +01:00
Juergen Hoeller
f4de1ea147
Polishing
2017-02-22 15:32:19 +01:00
Juergen Hoeller
6108ab1c31
Test for expected behavior of getAllMergedAnnotations vs findAllMergedAnnotations
...
Issue: SPR-15271
2017-02-22 15:28:34 +01:00
stonio
7d062df992
Use String#isEmpty()
...
Closes gh-1335
2017-02-22 11:55:17 +01:00
Stephane Nicoll
598d9a4b05
Add test to reproduce SPR-15271
2017-02-20 11:34:08 +01:00
Juergen Hoeller
45df1d9fea
Javadoc fixes
2017-02-18 01:43:30 +01:00
Juergen Hoeller
9543384d9e
Avoid deprecated comparators in tests
...
Issue: SPR-14779
2017-02-16 15:36:27 +01:00
Juergen Hoeller
f90cd7705f
Consistent ordering of Assert variants
...
Issue: SPR-15196
2017-02-16 15:32:07 +01:00
Juergen Hoeller
22322fde26
Revised isInstanceOf/isAssignable message concatenation
...
Issue: SPR-15196
2017-02-16 13:13:20 +01:00
Juergen Hoeller
50d93d3794
Consistently support CompletionStage next to CompletableFuture
...
Issue: SPR-15258
2017-02-15 23:16:11 +01:00
Juergen Hoeller
5f531a7a7d
Comparators entry point with generically typed factory methods
...
Issue: SPR-14779
2017-02-15 18:05:32 +01:00
Juergen Hoeller
44ec6e0037
Polishing
2017-02-13 15:07:07 +01:00
Sebastien Deleuze
ef550c43d6
Flush JSON stream after each element
...
Issue: SPR-15104
2017-02-13 14:20:19 +01:00
Juergen Hoeller
448ea4cdfe
Consistent logging in ignoreResourceNotFound scenarios
...
Issue: SPR-15218
2017-02-10 10:41:10 +01:00
Christoph Dreis
5cfa7e71bb
Use Class.getTypeName() where appropriate
...
Issue: SPR-15237
2017-02-08 20:36:41 +01:00
Juergen Hoeller
acf511ac0e
Polishing
2017-02-02 20:11:06 +01:00
Juergen Hoeller
c9b99daa74
SettableListenableFuture centralizes state in ListenableFutureTask subclass
...
Issue: SPR-15216
2017-02-02 19:54:08 +01:00
Juergen Hoeller
9666fcc41d
SettableListenableFuture consistently tracks cancellation state
...
Issue: SPR-15202
2017-01-31 15:57:52 +01:00
Juergen Hoeller
f84907a1fc
Polishing
2017-01-31 12:00:13 +01:00
Juergen Hoeller
23aac2de8c
Retain single-arg assert methods in deprecated form
...
Issue: SPR-15196
2017-01-31 09:27:55 +01:00
Juergen Hoeller
1b2dc3638f
Revisit Assert to avoid single-arg assert methods (with refined messages)
...
Issue: SPR-15196
2017-01-30 22:15:55 +01:00
Arjen Poutsma
69c16f3821
Add headers in InterceptingClientHttpRequest
...
This commit *adds* the "intercepted" headers to the ClientHttpRequest,
as opposed to replacing them, which is what happened before this commit.
Issue: SPR-15166
2017-01-30 14:18:50 +01:00
Juergen Hoeller
5e946c2700
Consistent type variable resolution for arrays/collections (in particular at field level)
...
Dropping GenericCollectionTypeResolver in favor of direct ResolvableType usage.
Issue: SPR-15160
2017-01-24 18:00:17 +01:00
Juergen Hoeller
ed40b1c8ee
Remove outdated abstractions/delegates from core/util
...
Issue: SPR-15159
2017-01-23 13:41:55 +01:00
Juergen Hoeller
54e2d63d6f
Polishing
2017-01-19 21:21:01 +01:00
Sam Brannen
264edb3fb5
Improve initialization of Assume class
...
Prior to this commit, the org.springframework.tests.Assume class could
fail to load resulting in a NoClassDefFoundError if parsing of the
'testGroups' system property failed. This is because the parsing took
place while initializing a static field.
This commit addresses this issue by moving the 'testGroups' system
property lookup to a dedicated method that is lazily invoked upon
demand instead of eagerly when loading the Assume class itself.
In addition, when an error occurs, TestGroup.parse() now logs the
complete original value of the supplied test groups string instead of
potentially omitting the "all-" prefix. This results in more
informative error messages similar to the following.
java.lang.IllegalStateException: Failed to parse 'testGroups' system
property: Unable to find test group 'bogus' when parsing testGroups
value: 'all-bogus'. Available groups include:
[LONG_RUNNING,PERFORMANCE,JMXMP,CI]
Issue: SPR-15163
2017-01-19 05:58:02 +01:00
Juergen Hoeller
d21b6e596f
Revised Charset handling and common StringUtils.uriDecode delegate
...
Issue: SPR-14492
2017-01-18 00:09:06 +01:00
Arjen Poutsma
88c5f5981f
Added DataBuffer Encoder/Decoder
...
This commit adds a DataBuffer Encoder and Decoder, and uses it in
the annotation-based processing model.
Note that these codecs are not used in the functional processing model,
since the BodyInserter/BodyExtractor already have methods for
writing/reading DataBuffers.
Issue: SPR-15148
2017-01-17 16:46:43 +01:00
Juergen Hoeller
e59f4004eb
Use MockitoJUnitRunner from Mockito 2's preferred location
...
Issue: SPR-14880
2017-01-16 23:08:06 +01:00
Juergen Hoeller
1cb381e9a7
Consistent deprecation markers on JDK 9
2017-01-13 10:53:20 +01:00
Juergen Hoeller
7c05b427a7
MimeTypeUtils constants cleanup: removed web media types
...
Issue: SPR-15137
2017-01-12 23:30:57 +01:00
Juergen Hoeller
743ce2cda6
Polishing
2017-01-12 23:30:38 +01:00
Juergen Hoeller
e19dff179e
Polishing
2017-01-12 21:18:01 +01:00
Juergen Hoeller
50e5a65b2d
LinkedCaseInsensitiveMap provides case-insensitive keySet again
...
Issue: SPR-15026
2017-01-12 21:14:07 +01:00
Juergen Hoeller
0403fe340d
Merge pull request #1287 from markhobson/SPR-15109
...
Introduce mime/media types for application/rss+xml
2017-01-12 20:24:27 +01:00
Juergen Hoeller
31f7860a40
Merge pull request #1285 from dreis2211/SPR-15094
...
Improve performance of StringUtils.capitalize()
2017-01-12 20:22:26 +01:00
Mark Hobson
2ce2f7d9a5
Introduce mime/media types for application/rss+xml
...
Issue: SPR-15109
2017-01-07 17:13:32 +00:00
Sam Brannen
9ed66bf2eb
Clean up warnings across code base
2017-01-07 01:54:38 +01:00
Christoph Dreis
83929b2b98
Improve performance of StringUtils.capitalize()
...
Issue: SPR-15094
2017-01-04 19:23:08 +01:00
Juergen Hoeller
ccabff6ba3
Upgrade to ASM 5.2
...
Issue: SPR-15071
2016-12-30 11:20:54 +01:00
Juergen Hoeller
e38c020535
TypeDescriptor efficiently matches equal annotations as well
...
Issue: SPR-15060
2016-12-28 22:51:29 +01:00
Juergen Hoeller
7818c650ba
Cache ASM metadata at the context level (if supported)
...
Includes streamlined ClassPathBeanDefinitionScanner setup.
Issue: SPR-14654
2016-12-27 13:38:24 +01:00
Juergen Hoeller
f805427629
Detect generic type match behind interface-based proxy as well
...
Issue: SPR-14097
2016-12-26 11:23:07 +01:00
Juergen Hoeller
8147c112f5
LinkedCaseInsensitiveMap delegates to LinkedHashMap instead of extending it
...
Issue: SPR-15026
2016-12-23 18:57:50 +01:00
Juergen Hoeller
82c1c859d9
Polishing
...
(cherry picked from commit 9cb4de8
)
2016-12-20 21:17:48 +01:00
Juergen Hoeller
154ef8bf10
Polishing
2016-12-20 19:57:52 +01:00
Juergen Hoeller
12aa14ddbc
Support @Nullable annotations as indicators for optional injection points
...
Issue: SPR-15028
2016-12-18 21:04:08 +01:00
Juergen Hoeller
8a7467020f
Polishing
2016-12-15 15:44:16 +01:00
Juergen Hoeller
39d2769bd0
Autodetect Kotlin nullability for optional injection points (analogous to java.util.Optional)
...
Built-in support in MethodParameter and DependencyDescriptor supersedes our separate KotlinUtils helper.
Issue: SPR-14951
2016-12-13 17:38:58 +01:00
Juergen Hoeller
e49813f2c4
Polishing
2016-12-12 22:49:40 +01:00
Juergen Hoeller
aef1460a64
TypeDescriptor properly narrows ResolvableType for non-typed collection elements
...
Issue: SPR-14971
2016-12-12 22:28:48 +01:00
Juergen Hoeller
7714eeccf3
MimeType parsing properly handles quoted semicolons
...
Issue: SPR-14986
2016-12-09 15:04:26 +01:00
Juergen Hoeller
8ab977e7d1
Revised forClass argument names
...
Issue: SPR-14976
2016-12-08 18:28:03 +01:00
Juergen Hoeller
5458a427a1
Polishing
2016-11-30 22:31:47 +01:00
Juergen Hoeller
01868096a3
Consistent catching of Throwable for introspection failures
...
Issue: SPR-12889
2016-11-30 22:24:14 +01:00
Juergen Hoeller
f6b8b84df9
Efficient type plus annotation comparisons during converter retrieval
...
Issue: SPR-14926
Issue: SPR-12926
2016-11-30 22:22:44 +01:00
Rossen Stoyanchev
729551f375
Use full package names in ReactiveAdapterRegistry
...
The recent refactoring lead to
java.lang.NoClassDefFoundError: io/reactivex/Completable
where only RxJava 1 is in the classpath. Most likely due to the
lack of prefix in Completable::complete with rx package to avoid
the RxJava 2 reference.
2016-11-29 13:29:49 -05:00
Rossen Stoyanchev
5651c2180e
Further refactoring of ReactiveAdapter/Registry
...
Simplify getAdapterFrom/To into a single getAdapter method that looks
for an exact match by type first and then isAssignableFrom.
Also expose shortcut methods in ReactiveAdapter to minimize the need
for access to the ReactiveTypeDescriptor.
Issue: SPR-14902
2016-11-28 12:43:22 -05:00
Rossen Stoyanchev
ac86acde53
ReactiveAdapterRegistry detects Reactor
...
The ReactiveAdapterRegistry now detects the presence of Reactor. In
practice Reactor is required for the Spring Framework reactive support
and it is expected to be present.
The registry however is now capable of being neutral if Reactor is not
present on the classpath for example where other Spring projects may
not have the same assumptions about Reactor's presence.
Issue: SPR-14902
2016-11-27 21:41:07 -05:00
Rossen Stoyanchev
52096ab8b9
Refactor ReactiveAdapter hierarchy
...
Collapse ReactiveAdapter hierarchy into a single class that simply
delegates to functions for converting to/from a Publisher.
A private ReactorAdapter extension automaticlaly wraps adapted, "raw"
Publisher's as Flux or Mono depending on the semantics of the target
reactive type.
Issue: SPR-14902
2016-11-27 21:41:07 -05:00
Rossen Stoyanchev
e563326357
Polish ReactiveAdapterRegistry
...
Issue: SPR-14902
2016-11-27 21:41:07 -05:00
Rossen Stoyanchev
2e7d16df04
Improved reactive type descriptor support
...
ReactiveTypeDescriptor is now a top-level type with named constructors.
It also contains and provides a getter for the actual type.
Issue: SPR-14902
2016-11-27 21:41:07 -05:00
Sebastien Deleuze
a143b57d4b
Polish Kotlin nullable support
...
This commit polishes Kotlin nullable support by reusing
MethodParameter#isOptional() instead of adding a new
MethodParameter#isNullable() method, adds
Kotlin tests and introduces Spring Web Reactive
support.
Issue: SPR-14165
2016-11-24 18:28:50 +01:00
Raman Gupta
fada91e538
Treat Kotlin nullable as non-required
...
Where `isOptional` is used, also check for `isNullable` i.e.
values are not considered required if they are Kotlin nullables:
- spring-messaging: named value method arguments
- spring-web: named value method arguments
- spring-webmvc: request parts
This means that Kotlin client code no longer has to explicity specify
"required=false" for Kotlin nullables -- this information is inferred
automatically by the framework.
Issue: SPR-14165
2016-11-24 17:18:55 +01:00
Juergen Hoeller
b22a59a0c4
Polishing
2016-11-24 15:32:06 +01:00
Juergen Hoeller
80931b211c
Shared DefaultConversionService instance for simple fallback purposes
...
Issue: SPR-14948
2016-11-24 15:29:17 +01:00
Juergen Hoeller
b3e94dc747
PathMatchingResourcePatternResolver tries all root URLs (any file extension) as jar file
...
Issue: SPR-14936
2016-11-23 14:01:37 +01:00
Juergen Hoeller
89802cfc11
TypeDescriptor avoids merged annotations for equality comparisons
...
Issue: SPR-14926
Issue: SPR-14929
2016-11-23 12:25:01 +01:00
Juergen Hoeller
8662b7773c
PathMatchingResourcePatternResolver converts manifest entries to absolute paths
...
Issue: SPR-14934
2016-11-22 16:05:30 +01:00
Juergen Hoeller
9bf4d7cf4e
Polishing
2016-11-22 14:57:00 +01:00
Juergen Hoeller
85b0ce1ef7
Avoid defensive checks against java.time API
...
Issue: SPR-13188
2016-11-22 14:55:03 +01:00
Juergen Hoeller
3a29daac45
ASM-generated class names get interned for better memory allocation
...
Issue: SPR-14886
2016-11-08 17:38:57 +01:00
Juergen Hoeller
c44c607570
Consistent references to plain class names in exception messages
...
Issue: SPR-14883
2016-11-07 22:10:26 +01:00
Juergen Hoeller
b3cd1ad7f1
Refined throwing of BeanCreationExceptions (and reflection exceptions)
...
Issue: SPR-14883
2016-11-07 19:03:18 +01:00
Juergen Hoeller
cf479bf893
Consistent throwing of BeanCreationExceptions (and reflection exceptions)
...
Issue: SPR-14883
(cherry picked from commit b42d731
)
2016-11-07 18:00:21 +01:00
Juergen Hoeller
ac774cdcef
Avoid deprecated Mockito methods
...
Issue: SPR-14880
2016-11-04 12:24:46 +01:00
Juergen Hoeller
84d3808b3b
Upgrade to Mockito 2.2
...
Issue: SPR-14880
2016-11-03 22:53:35 +01:00
Sebastien Deleuze
8705df502d
Rename Verifier to StepVerifier
...
Issue: SPR-14800
2016-11-02 19:01:40 +01:00
Juergen Hoeller
be853d466b
AnnotatedElementAdapter explicitly declares isAnnotationPresent method
...
Issue: SPR-14872
(cherry picked from commit 17863df
)
2016-11-02 14:54:43 +01:00
Sebastien Deleuze
b4b7c278df
Update tests according to latest reactor-test changes
...
- ScriptedSubscriber has been renamed to Verifier
- The Publisher is passed to create() instead of verify()
- No more need to specify the generic type explicitly
- Version is now sync with reactor-core
Issue: SPR-14800
2016-11-01 22:28:50 +01:00
Juergen Hoeller
61d7d1621b
ASM-generated class names get interned for better memory allocation
...
Issue: SPR-14862
(cherry picked from commit d859826
)
2016-10-31 12:28:29 +01:00
Juergen Hoeller
9659bc5fe7
ObjectToObjectConverter properly handles constructors on non-public classes
...
Issue: SPR-14304
2016-10-30 22:29:53 +01:00
Juergen Hoeller
ac80ac6f8b
Consistent instanceof/casting of Class references
2016-10-30 21:40:27 +01:00
Juergen Hoeller
2f9ed5917b
Polishing
2016-10-28 23:49:21 +02:00
Juergen Hoeller
bf9083d60f
TypeDescriptor supports merged annotation lookups (for composable formatting annotations)
...
Issue: SPR-14844
2016-10-28 23:33:26 +02:00
Juergen Hoeller
20419d72ef
Tightened StringValueResolver contract
...
Issue: SPR-14842
2016-10-28 15:28:42 +02:00
Sebastien Deleuze
2075932780
Add support for RxJava 2 Maybe type
...
Issue: SPR-14843
2016-10-25 16:49:22 +02:00
Brian Clozel
99a3210859
Refactor tests with ScriptedSubscriber
...
Reactor recently added the `ScriptedSubscriber` in its new
`reactor-addons` module. This `Subscriber` revissits the previous
`TestSubscriber` with many improvements, including:
* scripting each expectation
* builder API that guides you until the final verification step
* virtual time support
This commit refactor all existing tests to use this new
infrastructure and removed the `TestSubscriber` implementation.
Issue: SPR-14800
2016-10-25 10:44:44 +02:00
Arjen Poutsma
08931950f4
Add byte[] encoder and decoder
...
This commit adds a ByteArrayDecoder and ByteArrayEncoder.
2016-10-21 12:34:06 +02:00
Juergen Hoeller
3726c6f18d
Polishing
2016-10-21 12:26:27 +02:00
Juergen Hoeller
be187babf9
ResolvableType equals/hashCode does not consider TypeProvider source
...
Issue: SPR-14826
2016-10-21 12:26:06 +02:00
Juergen Hoeller
f7d740fa69
ConversionService detects generic type declaration on target class behind proxy as well
...
Issue: SPR-14822
2016-10-21 12:24:12 +02:00
Juergen Hoeller
52b029d71d
DefaultTransactionAttribute stores descriptor (method identification)
...
Issue: SPR-14760
2016-10-21 12:23:13 +02:00
Sebastien Deleuze
921bf5fb70
Use the official RxJava to Reactive Streams adapter
...
This commit removes the usage of Reactor adapters (about to
be moved from Reactor Core to a new Reactor Adapter module).
Instead, RxReactiveStreams is now used for adapting RxJava
1 and Flowable methods are used for RxJava 2.
Issue: SPR-14824
2016-10-20 15:08:05 +02:00
Violeta Georgieva
882b075fdf
DefaultDataBuffer improvements
...
DefaultDataBuffer.grow(int):
- Copy only the remaining data
- Update readPosition/writePosition
2016-10-18 14:39:08 +03:00
Juergen Hoeller
ffc781b163
Explicit calls on Buffer base type (for compatibility with covariant return type on JDK 9's ByteBuffer)
...
Issue: SPR-14645
2016-10-05 00:10:06 +02:00
Sebastien Deleuze
dbc86ec043
Refine Jackson canEncode() / canDecode() implementation
...
This commit refine Jackson canEncode() / canDecode()
implementation by using ObjectMapper canSerialize() /
canDeserialize() methods.
Issue: SPR-14748
2016-09-27 23:59:44 +02:00
Juergen Hoeller
fb7ae010c8
Avoid unnecessary generics on emptyMap/Set/List
2016-09-26 18:04:49 +02:00
Juergen Hoeller
36f7c7a13e
Clarified that getResource never returns null
2016-09-26 15:27:01 +02:00
Juergen Hoeller
74c618892e
YamlPropertiesFactoryBean consistently exposes String values
...
Issue: SPR-14737
2016-09-25 21:05:40 +02:00
Juergen Hoeller
d94ce0a1b2
Avoid package dependency cycles
2016-09-20 22:41:11 +02:00
Brian Clozel
e3da8b5e9c
Polish ResourceHttpRequestHandler, ResourceEncoder
2016-09-20 16:49:14 +02:00
Brian Clozel
55d6f88dcd
Add ResourceRegionEncoder
...
This commit adds the necessary infrastructure for the support of HTTP
Range requests. The new `ResourceRegionEncoder` can write
`ResourceRegion` objects as streams of bytes.
The `ResourceRegionEncoder` relies on an encoding hint
`BOUNDARY_STRING_HINT`. If present, the encoder infers that multiple
`ResourceRegion`s should be encoded and that the provided boundary
String should be used to separate ranges by mime boundaries.
If that hint is absent, only a single resource region is encoded.
Issue: SPR-14664
2016-09-20 16:14:22 +02:00
Sebastien Deleuze
38f3d12e45
Do not provide hints for can*() methods anymore
...
Issue: SPR-14557
2016-09-20 11:55:51 +02:00
Juergen Hoeller
b60af42e23
Polishing
...
(cherry picked from commit ace25d4
)
2016-09-16 18:59:14 +02:00
Rossen Stoyanchev
aaa1281809
Remove Exception declaration in abstract Encoder
2016-09-16 12:20:15 -04:00
Juergen Hoeller
f24ce76edb
StringUtils.parseLocaleString accepts Java 7 variants
...
Issue: SPR-14718
2016-09-15 14:31:05 +02:00
Juergen Hoeller
6de4b12992
Adapted recent tests to pass on Windows
2016-09-15 14:12:49 +02:00
Rossen Stoyanchev
e024aa0049
Follow up fix for PR #1168
2016-09-14 17:35:14 -04:00
Arjen Poutsma
c6a61e0d85
Add Resource.readableChannel()
...
Added readableChannel() to Resource, which returns a
java.nio.ReadableByteChannel. The default implementation uses
Channels.newChannel() to create a channel based on what is returned from
getInputStream(). Subclasses have more effecient, file-based
implementations.
Issue: SPR-14698
2016-09-14 15:46:15 -04:00
Juergen Hoeller
782c99dfaf
PropertySourcesPropertyResolver does not log retrieved value by default
...
Issue: SPR-14709
(cherry picked from commit fbe7ddb
)
2016-09-13 23:48:15 +02:00
Sebastien Deleuze
fc52ddcd97
Polish
2016-09-13 15:03:13 +02:00
Arjen Poutsma
d8f4d37624
Fixed bug in reading Flux from Channel
...
Fixed bug where the returned Flux from DataBufferUtils.read() would be
completed prematurely if the channel was not ready to read, but did
not reach the end of the file either.
2016-09-12 19:23:15 +02:00
Sebastien Deleuze
b91867cf45
Update Codec API to use Map<String, Object> for hints
...
Issue: SPR-14557
2016-09-12 11:08:01 +02:00
Sebastien Deleuze
d51005fbbe
Improve Encoder Javadoc
2016-09-08 13:33:36 +02:00
Brian Clozel
a8ba065a6e
Mention AntPathMatcher regexp support
...
This commit documents the regexp support in `AntPathMatcher` when
matching for URL patterns. This support is also mentioned in places
where developers can register patterns for ViewControllers or resource
handlers.
Issue: SPR-14652
2016-09-02 11:35:58 +02:00
Stephane Nicoll
dcade06fa0
Support for candidate components index
...
This commit adds a "spring-context-indexer" module that can be added to
any project in order to generate an index of candidate components defined
in the project.
`CandidateComponentsIndexer` is a standard annotation processor that
looks for source files with target annotations (typically `@Component`)
and references them in a `META-INF/spring.components` generated file.
Each entry in the index is the fully qualified name of a candidate
component and the comma-separated list of stereotypes that apply to that
candidate. A typical example of a stereotype is `@Component`. If a
project has a `com.example.FooService` annotated with `@Component` the
following `META-INF/spring.components` file is generated at compile time:
```
com.example.FooService=org.springframework.stereotype.Component
```
A new `@Indexed` annotation can be added on any annotation to instructs
the scanner to include a source file that contains that annotation. For
instance, `@Component` is meta-annotated with `@Indexed` now and adding
`@Indexed` to more annotation types will transparently improve the index
with additional information. This also works for interaces or parent
classes: adding `@Indexed` on a `Repository` base interface means that
the indexed can be queried for its implementation by using the fully
qualified name of the `Repository` interface.
The indexer also adds any class or interface that has a type-level
annotation from the `javax` package. This includes obviously JPA
(`@Entity` and related) but also CDI (`@Named`, `@ManagedBean`) and
servlet annotations (i.e. `@WebFilter`). These are meant to handle
cases where a component needs to identify candidates and use classpath
scanning currently.
If a `package-info.java` file exists, the package is registered using
a "package-info" stereotype.
Such files can later be reused by the `ApplicationContext` to avoid
using component scan. A global `CandidateComponentsIndex` can be easily
loaded from the current classpath using `CandidateComponentsIndexLoader`.
The core framework uses such infrastructure in two areas: to retrieve
the candidate `@Component`s and to build a default `PersistenceUnitInfo`.
Rather than scanning the classpath and using ASM to identify candidates,
the index is used if present.
As long as the include filters refer to an annotation that is directly
annotated with `@Indexed` or an assignable type that is directly
annotated with `@Indexed`, the index can be used since a dedicated entry
wil be present for that type. If any other unsupported include filter is
specified, we fallback on classpath scanning.
In case the index is incomplete or cannot be used, The
`spring.index.ignore` system property can be set to `true` or,
alternatively, in a "spring.properties" at the root of the classpath.
Issue: SPR-11890
2016-09-01 15:30:47 +02:00
Sebastien Deleuze
48d67a245b
Add support for RxJava 2
...
This commit adds support for RxJava 2 Completable,
Single, Observable and Flowable types (io.reactivex package).
Issue: SPR-14628
2016-09-01 14:48:16 +02:00
Juergen Hoeller
1a30252fc9
ResolvableType.java.forRawClass(Class) supports isAssignableFrom(ResolvableType) as well
...
Issue: SPR-14648
2016-08-31 14:45:22 +02:00
Juergen Hoeller
faf6e5d8fa
Annotation tests should not rely on JDK-specific toString() representation
...
Issue: SPR-14645
2016-08-31 14:42:08 +02:00
Juergen Hoeller
4ef428de28
Polishing
2016-08-30 23:57:11 +02:00
Juergen Hoeller
03609c1518
Consistent comma splitting without regex overhead
...
Issue: SPR-14635
2016-08-30 23:56:58 +02:00
Sam Brannen
d6d05e8ca0
Remove trailing whitespace in Java source code
2016-08-29 15:25:10 +02:00
Juergen Hoeller
2e4a7480fc
Consistent use of JDK 7 StandardCharsets over Charset.forName
...
Issue: SPR-14492
2016-08-26 14:16:19 +02:00
Juergen Hoeller
14046575b0
Polishing
2016-08-26 13:27:33 +02:00
Juergen Hoeller
a8f7f75f64
Moved encodeHttpHeaderFieldParam method to HttpHeaders itself (including tests)
...
This commit also sets the test source encoding to UTF-8.
Issue: SPR-14547
2016-08-26 11:14:02 +02:00
Brian Clozel
f2faf84f31
Add RFC5987 support for HTTP header field params
...
This commit adds support for HTTP header field parameters encoding, as
described in RFC5987.
Note that the default implementation still relies on US-ASCII encoding,
as the latest rfc7230 Section 3.2.4 says that:
> Newly defined header fields SHOULD limit their field values to
US-ASCII octets
Issue: SPR-14547
2016-08-25 14:26:58 +02:00
Juergen Hoeller
c4fcdb6864
DefaultListableBeanFactory does not trigger early candidate creation ahead of primary bean selection
...
Issue: SPR-14611
2016-08-24 22:56:47 +02:00
Juergen Hoeller
ab0d523cc0
Polishing
...
(cherry picked from commit 1932a9d
)
2016-08-17 21:54:40 +02:00
Sebastien Deleuze
106bda7294
Fix NettyDataBuffer#lastIndexOf()
2016-08-09 18:07:10 +02:00
Rossen Stoyanchev
cc288a0c4a
Switch back to Reactor 3.0 snapshots
2016-08-08 16:42:30 -04:00
Sebastien Deleuze
5531e80724
Anticipate reactor.test.TestSubscriber removal
...
reactor.test.TestSubscriber will not be part of Reactor Core
3.0.0 since it needs to be refactored to fit all the needs
expressed by the users. It is likely to be back later in one
of the Reactor Core 3.0.x releases.
This commit anticipate this removal by temporarily copying
TestSubscriber in spring-core test classes. As soon as
the new TestSubscriber will be available in Reactor Core,
Spring Framework reactive tests will use it again.
2016-08-08 11:24:21 +02:00
Juergen Hoeller
b9ab895743
Inferred generics for newSetFromMap arrangements
...
Issue: SPR-13188
2016-07-26 21:26:31 +02:00
Juergen Hoeller
e03dea1d64
Polishing
2016-07-26 17:15:19 +02:00
Juergen Hoeller
c13f8419f9
Minor revision of reactive support layout (ahead of 5.0 M1)
...
DataSourceUtils moved to main core.io.buffer package.
Consistently named Jackson2JsonDecoder/Encoder and Jaxb2XmlDecoder/Encoder.
Plenty of related polishing.
2016-07-26 15:39:32 +02:00
Juergen Hoeller
ae28815886
Polishing
2016-07-25 23:27:06 +02:00
Juergen Hoeller
87a89c216c
Javadoc revision
2016-07-25 14:21:19 +02:00
Juergen Hoeller
01110f678d
Upgrade JiBX (and BCEL) towards support of 1.8 bytecode level
...
This commit also drops the now-unused CUSTOM_COMPILATION test group and the outdated JavaVersion class.
Issue: SPR-10423
2016-07-25 14:10:46 +02:00
Juergen Hoeller
dd65f7acfc
LinkedCaseInsensitiveMap properly overrides HashMap.clone()
...
Issue: SPR-14509
2016-07-25 12:08:55 +02:00
Juergen Hoeller
382a931e7d
Polishing
2016-07-22 22:28:20 +02:00
Arjen Poutsma
b0d7625e3e
Reactor StringEncoder into CharSequenceEncoder
...
This commit refactors the StringEncoder to a CharSequenceEncoder, in
order to support StringBuilders, Groovy GStrings, etc.
Issue: https://github.com/spring-projects/spring-reactive/issues/120
2016-07-22 12:47:46 -04:00
Rossen Stoyanchev
101220bad1
Add ReactiveAdapterRegistry
...
Issue: SPR-14159
2016-07-22 12:21:28 -04:00
Brian Clozel
78b6ba0569
Filter irrelevant nodes in StaxHandler tests
2016-07-21 23:01:55 +02:00
Marius Grama
3635c9dbfe
Update xmlunit library to version 2.1.0
...
xmlunit 2.1.0 is the latest release for xmlunit.
Most of the xmlunit functionality used within spring-framework
was done through the xmlunit 1.x helper class
`org.custommonkey.xmlunit.XMLAssert`.
As of xmlunit 2.0.0 most of the XML comparison methods are done
through hamcrest matchers exposed by the xmlunit-matchers
library. In some cases during the migration, the matchers
had to be customized with custom `NodeMatcher` or
`DifferenceEvaluator` instances in order to keep the assertions
correct (they were performed with xmlunit 1.x previously).
Issue: SPR-14043
2016-07-21 15:04:21 +02:00
Juergen Hoeller
e756a5b54b
ResourcePatternUtils.getResourcePatternResolver actually accepts null argument
...
Issue: SPR-14500
2016-07-21 14:06:30 +02:00
Arjen Poutsma
7b2196b408
Add writeAndFlushWith to ReactiveHttpOutputMessage
...
This commit changes the reactive flushing mechanism to use a newly
introduced writeAndFlushWith(Publisher<Publisher<DataBuffer>>) on
ReactiveHttpOutputMessage instead of using the FlushingDataBuffer.
Issue: https://github.com/spring-projects/spring-reactive/issues/125
2016-07-21 11:08:54 +02:00
Juergen Hoeller
9cc625ee2c
Polishing
...
(cherry picked from commit 5a92aa4
)
2016-07-20 23:25:17 +02:00
Juergen Hoeller
28e7c11234
Polishing
2016-07-20 22:41:56 +02:00
Juergen Hoeller
99be15f58b
Revise encoding steps towards use of JDK Charset and StandardCharsets
...
Issue: SPR-14492
2016-07-19 23:43:06 +02:00
Juergen Hoeller
a4743c07d4
Polishing
2016-07-19 20:09:00 +02:00
Juergen Hoeller
88fcd0a2ed
Framework build compatible with JDK 9 (tests running against java.base module)
...
Issue: SPR-13344
2016-07-19 19:37:34 +02:00
Juergen Hoeller
d07381e862
Avoid deprecated number constructors on JDK 9
...
Issue: SPR-13344
2016-07-19 19:25:55 +02:00
Juergen Hoeller
8580483d72
SerializableTypeWrapper reobtains type accessors from declaring interface
...
Issue: SPR-14487
2016-07-19 19:22:32 +02:00
Juergen Hoeller
aaac199e8b
Consistently use constructor-based instantiation instead of Class.newInstance / BeanUtils.instantiate
...
Issue: SPR-14486
2016-07-19 19:21:06 +02:00
Juergen Hoeller
8bb34bc962
Resource.isFile() and JAF MediaTypeFactory
...
Issue: SPR-14484
2016-07-19 18:53:31 +02:00
Juergen Hoeller
5ea8c2670e
Reinstated tests for implicit aliases
...
Issue: SPR-14437
2016-07-19 17:26:47 +02:00
Arjen Poutsma
35ce1945e0
Improved DataBufferUtilsTest
2016-07-19 11:11:11 +02:00
Rossen Stoyanchev
3e096ce810
Improve javadoc on reactive classes
...
Ensure type-level Javadoc in every class, comply with guidelines for
80 char on Javadoc, and minor polish.
2016-07-18 14:59:15 -04:00
Arjen Poutsma
041437f3ee
Fixed DataBufferUtilsTest on Windows
...
DataBufferUtilsTests checked for newline characters before, resulting in
failures on Windows.
2016-07-18 17:08:46 +02:00
Fredrik Sundberg
d3b051a933
Fix javadoc reference
...
Method is called nextBackOff() and not nextBackOffMillis().
Closes gh-1115
2016-07-18 08:14:12 +02:00
Rossen Stoyanchev
028be2a298
Switch to Reactor 3 snapshots and Netty 4.1.3
2016-07-15 17:16:26 -04:00
Juergen Hoeller
dc1664939c
Javadoc fixes and pruning of outdated references
2016-07-15 22:12:11 +02:00
Sam Brannen
177f4ec3a7
Polish annotation utils
2016-07-15 19:54:53 +02:00
Sam Brannen
53c9584025
Remove obsolete references to @AliasFor in Javadoc for AnnotationAttributes
2016-07-15 19:53:54 +02:00
Sam Brannen
53dd88437e
Delete dead code in AnnotationAttributes
2016-07-15 19:51:33 +02:00
Juergen Hoeller
3d3407c789
Consistent alias processing behind AnnotatedTypeMetadata abstraction (also for ASM)
...
Issue: SPR-14427
2016-07-15 13:59:25 +02:00
Rossen Stoyanchev
d2e105f28d
Add @Since 5.0 and package-info for reactive classes
2016-07-14 17:40:17 -04:00
Juergen Hoeller
e2c7653da4
Correct parameter index boundary in exception message
...
Issue: SPR-14466
2016-07-14 22:29:14 +02:00
Rossen Stoyanchev
2e8326220b
Move spring-web-reactive classes to spring-core
2016-07-14 12:30:30 -04:00
Juergen Hoeller
dd65689e0a
MethodParameter.equals accepts subclasses pointing to same target declaration again
...
Issue: SPR-14438
2016-07-14 09:51:37 +02:00
Sam Brannen
264f5860a8
Use Supplier<String> support in Assert in spring-core
...
This commit makes use of the new Supplier<String> variants of utility
methods in org.springframework.util.Assert within the spring-core
module.
Issue: SPR-14450
2016-07-12 16:41:03 +02:00
Sam Brannen
17dd5dd22d
Introduce Supplier<String> support in Assert util
...
Prior to this commit, utility methods in
org.springframework.util.Assert accepted String arguments for custom
error messages. Such Strings are evaluated (e.g., concatenated)
eagerly, and for performance reasons, it was therefore not always
possible to make use of these utility methods. Consequently, there are
several places in the code base that "inline" identical functionality
in order to lazily evaluate error message concatenation and avoid an
unnecessary performance penalty. This leads to verbose code like the
following.
if (!contextPath.startsWith("/")) {
throw new IllegalArgumentException("contextPath '" + contextPath +
"' must start with '/'.");
}
if (contextPath.endsWith("/")) {
throw new IllegalArgumentException("contextPath '" + contextPath +
"' must not end with '/'.");
}
This commit addresses this shortcoming by introducing Supplier<String>
variants of all utility methods in org.springframework.util.Assert that
allow custom error messages to be evaluated lazily via a lambda
expression that is only evaluated if the assertion fails. This results
in a simplification of the previous examples as follows.
Assert.isTrue(contextPath.startsWith("/"), () -> "contextPath '" +
contextPath + "' must start with '/'.");
Assert.isTrue(!contextPath.endsWith("/"), () -> "contextPath '" +
contextPath + "' must not end with '/'.");
Issue: SPR-14450
2016-07-12 16:41:03 +02:00
Sam Brannen
3d4338f555
Clean up warnings in spring-core
2016-07-12 16:41:03 +02:00
Brian Clozel
147a35f4f1
Polish AntPathMatcher.setTrimTokens javadoc
...
Issue: SPR-14247
2016-07-12 14:47:18 +02:00
Stephane Nicoll
c425e774a3
Polish
2016-07-12 09:10:34 +02:00
Sam Brannen
40b2d26bd4
Avoid reflection for @Repeatable look-ups
...
Issue: SPR-13188
2016-07-08 13:21:31 +02:00
Juergen Hoeller
61db8e9f1e
DigestUtils processes InputStream with buffered read instead of full copy
...
Issue: SPR-14427
2016-07-08 12:20:49 +02:00
Juergen Hoeller
6aa5931e28
Polishing
2016-07-07 01:05:25 +02:00
Juergen Hoeller
a1f5fb53db
Java 8 getParameterCount() instead of getParameterTypes().length
...
Issue: SPR-13188
2016-07-07 01:04:24 +02:00
Juergen Hoeller
39e3f2ebf6
MethodParameter supports Java 8 Executable/Parameter and validates parameter indexes
...
Also, equals insists on the same class now, differentiating from SynthesizingMethodParameter.
Issue: SPR-14055
Issue: SPR-13456
Issue: SPR-14438
2016-07-07 00:37:52 +02:00
Juergen Hoeller
102dc8a4dd
Polishing
2016-07-06 15:29:15 +02:00
Stephane Nicoll
e4b0486c5a
Add @FunctionalInterface on candidate interfaces
...
Issue: SPR-14432
2016-07-06 14:32:13 +02:00
Juergen Hoeller
7dda9fbd8c
Drop JasperReports support
...
Issue: SPR-13294
2016-07-05 23:06:15 +02:00
Sam Brannen
1391248ea6
Introduce log4j 2 for Spring's test suite
...
This commit adds a test runtime dependency on log4j 2 for every project
and migrates all log4j.properties files to log4j2-test.xml files.
Issue: SPR-14431
2016-07-05 19:19:09 +02:00
Stephane Nicoll
00d2606b00
Explicit type can be replaced by <>
...
Issue: SPR-13188
2016-07-05 17:00:34 +02:00
Juergen Hoeller
b5db5d3aac
Broadly remove deprecated core classes and methods
...
Issue: SPR-14430
2016-07-05 15:52:49 +02:00
Juergen Hoeller
0fc0ce78ae
Drop deprecated dependencies on Log4j, JRuby, JExcel, Burlap, Commons Pool/DBCP
...
This commit also removes outdated support classes for Oracle, GlassFish, JBoss.
Issue: SPR-14429
2016-07-05 15:46:53 +02:00
Juergen Hoeller
51252ebbca
Avoid defensive checks against Java 8 API (java.util.Optional etc)
...
This commit also fixes broken javadoc links and code references.
Issue: SPR-13188
2016-07-05 02:09:00 +02:00
Juergen Hoeller
2b3445df81
Drop Portlet MVC support
...
This commit also removes the corresponding deprecated Servlet MVC variant and updates DispatcherServlet.properties to point to RequestMappingHandlerMapping/Adapter by default.
Issue: SPR-14129
2016-07-04 23:33:47 +02:00
Juergen Hoeller
a6e4b64c23
PropertySourcesPropertyResolver provides logKeyFound template method
...
Issue: SPR-14370
2016-07-02 15:43:40 +02:00
Sam Brannen
8389e3fc35
Suppress warnings in Gradle build
2016-07-01 13:08:39 +02:00
Juergen Hoeller
66ec1c1618
Add missing package-info files for common packages
...
Issue: SPR-14420
2016-06-30 21:39:06 +02:00
Juergen Hoeller
232cfe5e98
Polishing
2016-06-30 14:03:28 +02:00
Juergen Hoeller
c4c941c43f
Convert comma-separated string into list of classes analogous to existing support for class array
...
Issue: SPR-14415
2016-06-30 14:02:51 +02:00
Juergen Hoeller
f2328e8e3c
Polishing
2016-06-29 10:57:16 +02:00
Juergen Hoeller
1d42009c0a
Deprecated getPropertyAsClass and refined PropertySourcesPropertyResolver's logging
...
Issue: SPR-14370
2016-06-29 10:51:06 +02:00
Juergen Hoeller
a2aa82eb31
Polishing
2016-06-22 11:55:33 +02:00
Juergen Hoeller
ca12e13ef8
ObjectUtils.nullSafeEquals allows for JVM method inlining (through reducing its bytecode size)
...
Issue: SPR-14349
2016-06-09 22:40:08 +02:00
Juergen Hoeller
d51c22a789
Consistent processing of empty values and catching of RuntimeExceptions for Formatters
...
Issue: SPR-14345
2016-06-09 10:49:15 +02:00
Juergen Hoeller
8c4bc3656b
Polishing
2016-06-07 15:42:16 +02:00
Juergen Hoeller
24f5f368b0
Consistent meta-annotation attributes lookup through ASM
...
Issue: SPR-14257
2016-05-30 22:39:27 +02:00
Juergen Hoeller
a979885d17
SettableListenableFuture properly rethrows Error
...
Issue: SPR-14298
2016-05-26 19:39:22 +02:00
Juergen Hoeller
5682950289
Polishing
2016-05-06 12:03:10 +02:00
Juergen Hoeller
42d32ba396
ResourceRegion fits better in core.io.support (next to EncodedResource)
...
Issue: SPR-14221
2016-05-06 12:02:51 +02:00
Juergen Hoeller
5400bb9110
ListenableFutureAdapter keeps propagating onSuccess/onFailure exceptions
...
Issue: SPR-13785
2016-05-05 20:39:53 +02:00
Brian Clozel
3c92ddc94b
Fix path matching for paths containing spaces
...
Prior to this commit, the latest optimizations introduced in SPR-13913
would prevent matching when patterns contained spaces. Indeed, the
optimized path would not fully tokenize the paths nor trim the tokens,
as the "longer" code path does.
This commit disables this optimized path when the `trimTokens` option is
set to `true`.
Also, the `trimTokens` setting is now set to `false` by default.
Issue: SPR-14247
2016-05-04 22:28:06 +02:00
Brian Clozel
5ac31fb39d
Refactor HTTP Range support with ResourceRegion
...
Prior to this commit, the `ResourceHttpMessageConverter` would support
all HTTP Range requests and `MethodProcessors` would "wrap" controller
handler return values with a `HttpRangeResource` to support that use
case in Controllers.
This commit refactors that support in several ways:
* a new ResourceRegion class has been introduced
* a new, separate, ResourceRegionHttpMessageConverter handles the HTTP
range use cases when serving static resources with the
ResourceHttpRequestHandler
* the support of HTTP range requests on Controller handlers has been
removed until a better solution is found
Issue: SPR-14221, SPR-13834
2016-05-02 19:00:52 +02:00
Alex Panchenko
8d36332268
"final" for public static fields in ReflectionUtils
...
Closes gh-1046
2016-04-28 08:34:10 +02:00
Sam Brannen
1838d7e97f
Update Javadoc for ReflectionUtils re: exception handling
2016-04-27 12:44:09 +03:00
Juergen Hoeller
65a8f5ed64
PathMatchingResourcePatternResolver reuses resolved root dir URL
...
Issue: SPR-14202
2016-04-26 17:09:57 +02:00
Juergen Hoeller
bf7b475267
SocketUtils considers port range including maxPort
...
Issue: SPR-14211
2016-04-26 17:09:57 +02:00
Juergen Hoeller
9bf5a5cbcb
FastByteArrayInputStream returns correct count from read(byte[])
...
Issue: SPR-14209
2016-04-26 17:09:57 +02:00
Johnny Lim
44e652f99e
Remove duplicate words
...
Closes gh-1039
2016-04-19 08:24:21 +02:00
Rossen Stoyanchev
50c11028d5
Improve illegal MimeType checks
...
Issue: SPR-14124
2016-04-18 10:01:18 -04:00
Brian Clozel
368f29d5bc
Fix AntPathMatcher multiple segments matching
...
Prior to this commit, the new match algorithm wouldn't work for multiple
consecutive path separators.
This commit separately matches path segments and path separators and
allows for multiple, consecutive path separators.
Issue: SPR-14141
2016-04-15 23:10:29 +02:00
Juergen Hoeller
f1cb793ccb
Rename MimeType's getCharSet() to getCharset()
...
Issue: SPR-14172
2016-04-14 16:38:59 +02:00
Juergen Hoeller
74608e6b49
Polishing
2016-04-12 16:03:57 +02:00
Juergen Hoeller
bdb94738ec
Refined default excluded packages
...
Issue: SPR-13886
2016-04-12 05:14:14 +02:00
Juergen Hoeller
537193a4e0
Consistent license header
2016-04-11 20:49:38 +02:00
Juergen Hoeller
b82df144e4
LoadTimeWeaver.getThrowawayClassLoader() decorated for exclude support (if necessary)
...
Issue: SPR-13886
2016-04-11 19:19:37 +02:00
Sam Brannen
e18d5b591a
Limit size of context cache in the TestContext framework
...
Prior to this commit, the size of the ApplicationContext cache in the
Spring TestContext Framework could grow without bound, leading to
issues with memory and performance in large test suites.
This commit addresses this issue by introducing support for setting the
maximum cache size via a JVM system property or Spring property called
"spring.test.context.cache.maxSize". If no such property is set, a
default value of 32 will be used.
Furthermore, the DefaultContextCache has been refactored to use a
synchronized LRU cache internally instead of a ConcurrentHashMap. The
LRU cache is a simple bounded cache with a "least recently used" (LRU)
eviction policy.
Issue: SPR-8055
2016-04-04 20:56:04 +02:00
Juergen Hoeller
26378cd604
Polishing
2016-04-04 20:51:30 +02:00
Sam Brannen
6826bdd111
Document disabled test for hybrid annotation attribute overrides
...
This commit documents the @Ignore'd test to explain that Spring does not
support a hybrid approach for annotation attribute overrides with
transitive implicit aliases.
Issue: SPR-13554
2016-03-31 14:38:15 +02:00
Juergen Hoeller
14bf6509ec
Consistent cache key implementation across transaction and cache attribute sources
...
Includes consistent applicability of class-level metadata to user-level methods only.
Issue: SPR-14017
Issue: SPR-14095
2016-03-30 14:13:04 +02:00
Juergen Hoeller
5619b005f0
Polishing
2016-03-30 10:22:30 +02:00
Sam Brannen
d40d2ffe5e
Polishing
2016-03-29 18:04:26 +02:00
Brian Clozel
b947bfe8e9
Support of HTTP persistent connections for JDK client
...
Prior to this commit, HTTP clients relying on the JDK HTTP client would
not properly reuse existing TCP connections (i.e. HTTP 1.1 persisten
connection). The SimpleClientHttpResponse would close the actual connection once the
response is handled.
As explained in the JDK documentation
(http://docs.oracle.com/javase/8/docs/technotes/guides/net/http-keepalive.html )
HTTP clients should do the following to allow resource reuse:
* consume the whole HTTP response content
* close the response inputstream once done
This commit makes sure that the response content is
totally drained and then the stream closed (and not the connection).
Issue: SPR-14040
2016-03-29 17:31:42 +02:00
Juergen Hoeller
3910350b0a
ASM ClassReader leniently handles label offset mismatch
...
Issue: SPR-14089
2016-03-29 15:38:23 +02:00
Juergen Hoeller
54aeb7a5d6
Cache key classes implement Comparable and consistently provide a toString representation
...
Issue: SPR-14017
2016-03-26 14:32:10 +01:00
Sam Brannen
fee056a1b1
Simplify search algorithms in AnnotatedElementUtils
...
This commit introduces a boolean alwaysProcesses() method in the
Processor API which allows for simplification across all search
algorithms within AnnotatedElementUtils.
Specifically, it is no longer necessary for process() methods to verify
that the supplied annotation is actually the sought target annotation.
In addition, duplicated code has been extracted into common methods
(e.g., hasMetaAnnotationTypes()) and common Processor implementations
(e.g., AlwaysTrueBooleanAnnotationProcessor).
2016-03-25 15:59:54 +01:00
Sam Brannen
6b7731cc89
Cross reference getMergedRepeatableAnnotations() in AnnotationUtils
2016-03-25 00:47:44 +01:00
Sam Brannen
46e0484bf8
Support searches for merged repeatable annotations with "get" semantics
...
This commit picks up where 2535469099
left off with added support for
"get" search semantics for merged repeatable annotations.
Specifically, this commit introduces a new
getMergedRepeatableAnnotations() method in AnnotatedElementUtils.
Issue: SPR-13973
2016-03-24 19:27:32 +01:00
Sam Brannen
8d0083ca96
Polishing
2016-03-24 19:27:32 +01:00
Juergen Hoeller
517ebd1d3e
Consistent formatting
2016-03-24 19:22:50 +01:00
Juergen Hoeller
55f1c98c39
Consistent alphabetical sorting of directory content
...
Issue: SPR-14085
2016-03-24 15:00:17 +01:00
Sam Brannen
1ec35e9c62
Support searches for multiple merged annotations with "get" semantics
...
This commit picks up where a5139f3c66
left off with added support for
"get" search semantics for multiple merged annotations.
Specifically, this commit introduces a new getAllMergedAnnotations()
method in AnnotatedElementUtils.
Issue: SPR-13486
2016-03-24 14:46:56 +01:00
Sam Brannen
2453edbb10
Reorganize methods in AnnotatedElementUtils
2016-03-24 13:18:54 +01:00
Sam Brannen
2535469099
Support repeatable annotations as composed annotations
...
Prior to this commit, AnnotationUtils supported searching for
repeatable annotations even if the repeatable annotation was declared
on a custom stereotype annotation. However, there was no support for
merging of attributes in composed repeatable annotations. In other
words, it was not possible for a custom annotation to override
attributes in a repeatable annotation.
This commit addresses this by introducing
findMergedRepeatableAnnotations() methods in AnnotatedElementUtils.
These new methods provide full support for explicit annotation
attribute overrides configured via @AliasFor (as well as
convention-based overrides) with "find semantics".
Issue: SPR-13973
2016-03-23 21:58:34 +01:00
Juergen Hoeller
63115ed6eb
Do not use annotation detection shortcuts on Class
...
Issue: SPR-13440
2016-03-23 19:27:30 +01:00
Juergen Hoeller
c5b318a4cc
Revised 4.3 signatures for MethodParameter/DependencyDescriptor
...
Issue: SPR-13440
2016-03-23 18:52:27 +01:00
Juergen Hoeller
9af12d290e
Polishing
2016-03-23 18:39:29 +01:00
Juergen Hoeller
5025c615b1
Consistent use of AnnotatedElementUtils.findMergedAnnotation/hasAnnotation
...
Issue: SPR-13440
2016-03-23 18:39:20 +01:00
Sam Brannen
a5139f3c66
Support searches for multiple merged composed annotations
...
Prior to this commit it was possible to search for the 1st merged
annotation above an annotated element. It was also possible to search
for annotation attributes aggregated from all annotations above an
annotated element; however, it was impossible to search for all
composed annotations above an annotated element and have the results as
synthesized merged annotations instead of a multi-map of attributes.
This commit introduces a new findAllMergedAnnotations() method in
AnnotatedElementUtils that finds all annotations of the specified type
within the annotation hierarchy above the supplied element. For each
such annotation found, it merges that annotation's attributes with
matching attributes from annotations in lower levels of the annotation
hierarchy and synthesizes the results back into an annotation of the
specified type. All such merged annotations are collected and returned
as a set.
Issue: SPR-13486
2016-03-20 19:18:11 +01:00
Sam Brannen
f1378aa376
Test status quo for finding multiple composed annotations
...
This commit introduces tests that verify the status quo for finding
multiple merged composed annotations on a single annotated element.
Issue: SPR-13486
2016-03-19 20:22:04 +01:00
Sam Brannen
744350a262
Polishing
2016-03-19 18:28:05 +01:00
Sam Brannen
d22480b0eb
Ensure all aliased attributes in target annotation are overridden
...
Prior to this commit, it was possible that implicit aliases and
transitive implicit aliases (configured via @AliasFor) might not be
honored in certain circumstances, in particular if implicit aliases
were declared to override different attributes within an alias pair in
the target meta-annotation.
This commit addresses this issue by ensuring that all aliased
attributes in the target meta-annotation are overridden during the
merge process in AnnotatedElementUtils.
In addition, concrete default values for attributes in a
meta-annotation declaration can now be effectively shadowed by
transitive implicit aliases in composed annotations.
Issue: SPR-14069
2016-03-19 16:42:56 +01:00
Juergen Hoeller
6e3fac85f3
AnnotationAwareOrderComparator uses DecoratingProxy interface for target class introspection
...
Issue: SPR-13884
2016-03-18 22:12:10 +01:00
Sam Brannen
11221f5ccb
Fix Javadoc errors in AnnotatedElementUtils
2016-03-18 19:31:05 +01:00
Juergen Hoeller
1ca4340271
NumberUtils consistently raises overflow exception for BigInteger/BigDecimal input
...
Issue: SPR-14041
2016-03-18 18:51:41 +01:00
Juergen Hoeller
ec7c3aa349
Correct RFC 4648 references in method-level javadoc
...
Issue: SPR-14067
2016-03-18 15:30:33 +01:00
Sam Brannen
2153d88706
Add TODO in AnnotatedElementUtilsTests
...
Issue: SPR-14069
2016-03-18 15:29:25 +01:00
Sam Brannen
856da8e395
Introduce tests for transitive aliases with implied attribute names
2016-03-17 20:53:52 +01:00
Juergen Hoeller
35eb52e558
Abstract(Stax)XMLReader recognizes standard features as not supported
...
Issue: SPR-14056
2016-03-16 18:04:02 +01:00
Stephane Nicoll
f422e490b0
Polish contribution
...
Issue: SPR-14039 - Closes gh-998
2016-03-16 17:00:00 +01:00
Yanming Zhou
1a302e1fac
Add converters between Enum and Integer
2016-03-16 17:00:00 +01:00
Sam Brannen
dfd4aae4f6
Add missing constructors to SynthesizingMethodParameter
...
This commit primarily allows for a `SynthesizingMethodParameter` to be
created for a `Constructor` parameter but also introduces an additional
overloaded constructor from `MethodParameter`.
Issue: SPR-14054
2016-03-15 16:28:36 +01:00
Juergen Hoeller
71294df238
Upgrade to ASM 5.1
...
Issue: SPR-14037
2016-03-11 15:09:03 +01:00
Sam Brannen
eb654dc177
Allow single element to override array in synthesized annotation
...
This commit picks up where 8ff9e818a5
left off.
Specifically, this commit introduces support that allows a single
element attribute to override an array attribute with a matching
component type when synthesizing annotations (e.g., in annotations
synthesized from attributes that have been merged from the annotation
hierarchy above a composed annotation).
Issue: SPR-13972
2016-03-07 15:22:27 +01:00
Sebastien Deleuze
c385427397
Allow to specify AbstractHttpMessageConverter default charset
...
Before this commit, specifying the charset to use with produces or
consumes @RequestMapping attributes resulted in default charset
loss. That was really annoying for JSON for example, where using
UTF-8 charset is mandatory in a lot of use cases.
This commit adds a defaultCharset property to
AbstractHttpMessageConverter in order to avoid losing the
default charset when specifying the charset with these
@RequestMapping attributes.
It changes slightly the default behavior (that's why we have waited
4.3), but it is much more error prone, and will match with most
user's expectations since the charset loss was accidental in most
use cases (users usually just want to limit the media type supported
by a specific handler method).
Issue: SPR-13631
2016-02-29 23:34:32 +01:00
Stephane Nicoll
5923ee8af3
Add sun.misc annotation marker
...
This commit adds an annotation that should be used to mark any usage of
the `sun.misc` API.
2016-02-29 17:43:04 +01:00
Juergen Hoeller
7a32ce317c
LinkedCaseInsensitiveMap provides reliable getOrDefault implementation
...
Issue: SPR-13981
2016-02-25 21:42:11 +01:00
Juergen Hoeller
b6dd8a9233
Consistent UnsatisfiedDependencyException exposure with injection point metadata
...
Issue: SPR-13968
2016-02-25 21:36:49 +01:00
Juergen Hoeller
4c964473b1
Defensively close jar files from non-cached JarURLConnections
...
Issue: SPR-6295
2016-02-25 10:25:13 +01:00
Juergen Hoeller
ca19920d74
Refined ApplicationContextInitializer assignability exception
2016-02-24 17:50:14 +01:00
Juergen Hoeller
028a690100
Polishing
2016-02-23 14:31:09 +01:00
Juergen Hoeller
1899fb37c1
Polishing
2016-02-22 23:26:41 +01:00
Juergen Hoeller
a3789120c9
Support for @PropertySource annotations with custom implementation types
...
Issue: SPR-8963
2016-02-22 23:25:50 +01:00
Juergen Hoeller
8ff9e818a5
Allow for a single element overriding an array attribute in a meta-annotation
...
Includes refinements for consistent quoting of names in exception messages.
Issue: SPR-13972
2016-02-22 23:24:30 +01:00
Phillip Webb
d8a05592e2
Allow package private classes in spring.factories
...
Update SpringFactoriesLoader so that package private classes can be
used.
Issue: SPR-13969
2016-02-22 10:01:35 -08:00
mnhock
e98977cbc8
Fix Format-string method arguments
...
Closes gh-934
2016-02-20 09:01:54 +01:00
Phillip Webb
c4117885bd
Refine AntPathMatcher optimizations
...
Refine the optimizations made in 6f55ab69 in order to restore binary
compatibility and resolve a regression.
Tests of the form pathMatcher.match("/foo/bar/**", "/foo/bar") should
return true as this was the behavior in Spring 4.2.
Issue: SPR-13913
2016-02-18 18:49:58 -08:00
Juergen Hoeller
25be5e060c
TaskDecorator callback supported by common TaskExecutor implementations
...
Issue: SPR-13930
2016-02-17 16:58:02 +01:00
Juergen Hoeller
f6ebc4ce97
Polishing
2016-02-11 22:24:50 +01:00
Juergen Hoeller
37de0b241d
ProtocolResolver SPI allows for custom resource resolution
...
Issue: SPR-12857
Issue: SPR-13905
2016-02-11 22:21:26 +01:00
soldierkam
e77ff3c991
Improve AntPathMatcher matching performance
...
This commit speeds up the AntPathMatcher implementation by
pre-processing patterns and checking that candidates are likely
matches if they start with the static prefix of the pattern.
Those changes can result in a small performance penalty for positive
matches, but with a significant boost for checking candidates that don't
match. Overall, this tradeoff is acceptable since this feature is often
used to select a few matching patterns in a much bigger list.
This will lead to small but consistent performance improvements in
Spring MVC when matching a given request with the available routes.
Issue: SPR-13913
2016-02-10 11:39:38 +01:00
Juergen Hoeller
449f704650
PathMatchingResourcePatternResolver consistently logs retrieval results
...
Issue: SPR-13923
2016-02-08 13:18:43 +01:00
Juergen Hoeller
e90310612f
Polishing
2016-02-04 20:00:00 +01:00
Juergen Hoeller
b4f33adf48
Consistent java.util.Optional resolution, lenient handling of optional multipart files, correct Servlet 3.0 Part list/array selection
...
Issue: SPR-13418
Issue: SPR-13849
Issue: SPR-13850
Issue: SPR-13893
2016-01-26 18:06:15 +01:00
Juergen Hoeller
64ce8a81c3
Polishing
2016-01-25 20:33:48 +01:00
Juergen Hoeller
8a69159004
ConverterRegistry's addConverter declares generic type variables
...
Issue: SPR-12948
2016-01-25 20:33:26 +01:00
Juergen Hoeller
74c07d3085
Removed JavaVersion checks from spring-core tests (for JDK 9 compatibility)
...
Issue: SPR-13344
2016-01-15 17:45:37 +01:00
Stephane Nicoll
2fc2c29e9a
Update copyright header
2016-01-15 10:51:11 +01:00
Rossen Stoyanchev
3dae3fd8a9
Refine ListenableFutureCallback policy for exceptions
...
This change updates all cases where callbacks are invoked to catch and
suppress errors (since there is not match to do with and error from
a callback be it success or failure).
Also updated is the contract itself to clarify this and emphasize the
callbacks are really notifications for the outcome of the
ListenableFuture not the callbacks themselves.
Issue: SPR-13785
2016-01-14 17:49:01 -05:00
Juergen Hoeller
5d4547d343
FastByteArrayInputStream consistently returns -1 when no data available
...
Issue: SPR-13858
2016-01-13 12:44:34 +01:00
Juergen Hoeller
8968f09c59
Polishing
2015-12-29 22:04:38 +01:00
Juergen Hoeller
27c2e8c80d
Polishing
2015-12-29 21:40:20 +01:00
Juergen Hoeller
aecb8b6c6b
Avoid sensitive Proxy.getInvocationHandler call in synthesizeAnnotation
...
Issue: SPR-13829
2015-12-29 21:39:43 +01:00
Juergen Hoeller
4f955932a7
@Value can be used as aliased meta-annotation
...
Issue: SPR-13603
2015-12-29 18:02:16 +01:00
Juergen Hoeller
3242ad8fc4
@AliasFor attribute name defaults to declaring attribute
...
Issue: SPR-13828
2015-12-29 17:58:57 +01:00
Juergen Hoeller
d1551bdcec
Polishing
2015-12-23 21:19:18 +01:00
Juergen Hoeller
470ea977e1
Consistent validation of annotated methods behind AOP proxies
...
Issue: SPR-13816
2015-12-23 20:47:28 +01:00
Juergen Hoeller
95d62658ff
SystemEnvironmentPropertySource replaces hyphens in property names as well
...
Issue: SPR-13594
2015-12-22 16:18:13 +01:00
Juergen Hoeller
cf20308134
SerializationDelegate as convenient Serializer/Deserializer combo
...
Issue: SPR-13758
2015-12-22 13:04:10 +01:00
Juergen Hoeller
f8860e2938
SimpleNamespaceContext implements all subtleties of the NamespaceContext contract
...
Issue: SPR-13713
2015-12-21 20:37:44 +01:00
Juergen Hoeller
64bd8b7f34
Polishing
2015-12-18 22:19:03 +01:00
Juergen Hoeller
387c8a8181
Differentiate between TypeDescriptors with same annotations but different attributes
...
Issue: SPR-13714
2015-12-18 22:10:50 +01:00
Juergen Hoeller
08748ecaa4
PathMatchingResourcePatternResolver evaluates classpath manifest entries as well
...
Issue: SPR-13685
2015-12-18 12:17:57 +01:00
Sam Brannen
5b3edcd9f9
Spring Cleaning in December
...
- Delete unused imports
- Delete unused code
- Clean up warnings
2015-12-17 20:27:33 +01:00
Juergen Hoeller
a36c0a50e6
Defensive error reporting when StandardAnnotationMetadata introspects declared methods
...
Issue: SPR-13791
2015-12-14 15:13:29 +01:00
Juergen Hoeller
0968e47b04
Polishing
2015-12-11 21:56:26 +01:00
Gary Russell
14fc6c2a99
SPR-13784: Base64Utils: URL/File Safe Alphabet
...
JIRA: https://jira.spring.io/browse/SPR-13784
JDK8 and Apache Commons Codec support the RFC 4648
"URL and Filename Safe" Base64 alphabet.
Add methods to `Base64Utils` to support this feature.
2015-12-11 14:55:15 -05:00
Juergen Hoeller
fdc14a16ee
AbstractApplicationContext clears ReflectionUtils cache as well
...
Issue: SPR-13783
2015-12-09 19:25:27 +01:00
Juergen Hoeller
d0814703c4
AnnotationUtils.synthesizeAnnotation explicitly checks whether SynthesizedAnnotation is exposable
...
Issue: SPR-13696
2015-12-07 17:36:14 +01:00
Juergen Hoeller
ee35b5ed07
Polishing
2015-12-07 12:52:06 +01:00
Juergen Hoeller
08b6daf1eb
Polishing
2015-12-03 18:41:03 +01:00
Juergen Hoeller
c909789ea9
Avoid mismatch between cached top-level versus nested parameter type
...
Issue: SPR-13755
2015-12-03 12:53:18 +01:00
Juergen Hoeller
44651fdf7c
ObjectToObjectConverter caches detected methods/constructors
...
This commit reworks the arrangement to a centralized cache, avoiding any extra reflection attempts if a cache entry is known already. In the course of this, it also enforces toXXX methods to be declared as non-static now (which is the only sensible arrangement anyway).
Issue: SPR-13703
2015-12-01 16:07:21 +01:00
Juergen Hoeller
38c21ee6bf
Class identity comparisons wherever possible
...
Issue: SPR-12926
2015-12-01 14:11:44 +01:00
Juergen Hoeller
4755467cca
Polishing
2015-11-30 12:36:30 +01:00
Juergen Hoeller
3234d9ede3
ObjectToObjectConverter caches detected methods/constructors
...
Includes polishing of related conversion exception messages.
Issue: SPR-13703
2015-11-29 22:17:16 +01:00
Juergen Hoeller
a0747c2148
Consistent bean type checking for endpoint handlers
...
Issue: SPR-13725
2015-11-25 21:26:03 +01:00
Juergen Hoeller
20a286b4d6
ASM ClassWriter uses application ClassLoader for its getCommonSuperClass check
...
Issue: SPR-13695
2015-11-24 17:38:02 +01:00
Juergen Hoeller
0524f3a474
Class identity comparisons wherever possible
...
Issue: SPR-12926
2015-11-24 17:37:30 +01:00
Juergen Hoeller
1cb6069734
Polishing
2015-11-14 23:52:39 +01:00
Juergen Hoeller
4b2ce60d65
Polishing
2015-11-13 08:31:13 +01:00
Juergen Hoeller
2bf8c0bc42
Polishing
2015-11-10 23:47:46 +01:00
Phillip Webb
e6b1f0a139
Use constants when caching empty arrays
...
Reduce cache memory consumption by using a single constant for empty
arrays.
2015-11-09 09:38:48 -08:00
Juergen Hoeller
760bc719f2
Polishing
2015-11-09 15:03:14 +01:00
Juergen Hoeller
bc7bcab578
Consistent method selection for listeners and endpoint mappings
...
Issue: SPR-13654
2015-11-09 14:57:45 +01:00
Sam Brannen
5b06150096
Deprecate correct method in AnnotatedElementUtils
2015-11-09 12:05:28 +00:00
Juergen Hoeller
59b6600763
Class identity comparisons wherever possible
...
Issue: SPR-12926
2015-11-08 20:45:17 +01:00
Juergen Hoeller
ea2843ecc0
MethodInvokeTypeProvider lazily invokes target method (avoiding deserialization exploits)
...
Issue: SPR-13656
2015-11-08 20:27:06 +01:00
Juergen Hoeller
c88877f1c4
Polishing
2015-11-05 16:35:20 +01:00
Juergen Hoeller
9683da52b2
Avoid annotation synthesizing for getAnnotationAttributes retrieval
...
Issue: SPR-13621
2015-11-05 16:35:07 +01:00
Juergen Hoeller
2ba5cb2734
Polishing
2015-11-05 12:30:29 +01:00
Juergen Hoeller
e27df06f91
AnnotatedElementUtils consistently operates on actual annotation type if available (for performance reasons)
...
The goal is to avoid String name comparisons in favor of annotation type identity checks wherever possible. Also, we avoid double getDeclaredAnnotations/getAnnotations checks on anything other than Classes now, since we'd just get the same result in a fresh array.
Issue: SPR-13621
2015-11-05 12:29:29 +01:00
Juergen Hoeller
e35855f9b5
Avoid expensive annotation retrieval algorithm if no annotations present in the first place
...
Issue: SPR-13621
2015-11-05 12:26:54 +01:00
Phillip Webb
1733d0111d
Add shortcuts for elements with no annotations
...
Improve the performance of the `getMergedAnnotationAttributes` and
`isAnnotated` methods in `AnnotatedElementUtils` by returning
immediately when the element had no annotations.
Issue: SPR-13621
2015-11-04 22:42:34 -08:00
Juergen Hoeller
ce64761069
Optimized equals/hashCode handling in ResolvableType
...
Issue: SPR-13621
2015-11-03 16:56:43 +01:00
Juergen Hoeller
23c8f712c4
Polishing
2015-11-02 21:30:03 +01:00
Juergen Hoeller
c3dbaed4ce
AnnotationUtils caches findAnnotation results in pre-synthesized form
...
Issue: SPR-13621
2015-11-02 21:25:08 +01:00
Juergen Hoeller
4dc31667d4
AnnotationUtils defines synthesized proxy class in original annotation's ClassLoader
...
Issue: SPR-13634
2015-11-02 21:24:32 +01:00
Juergen Hoeller
cca037a74d
Polishing
2015-11-02 14:42:46 +01:00
Stephane Nicoll
0579e61a65
Add API to register collection converters
...
Previously, the only way to add the collection converters to a registry
was to add *all* default converters. A new "addCollectionConverters"
public method is now available to only register them.
Issue: SPR-13618
2015-10-28 15:55:29 +01:00
Juergen Hoeller
91b3caf238
Fixed visibility of 4.2's additional default converters
...
Issue: SPR-12175
Issue: SPR-13020
2015-10-28 15:38:46 +01:00
Juergen Hoeller
400749667a
Polishing
2015-10-26 23:10:33 +01:00
Sam Brannen
c2bc2b27ea
Suppress varargs warnings when compiling tests w/ Gradle
2015-10-14 02:00:08 +03:00
Juergen Hoeller
1c3a668370
AbstractFileResolvingResource uses extractArchiveURL for last-modified check
...
Issue: SPR-13393
(cherry picked from commit 302a069
)
2015-10-13 20:47:29 +02:00
Juergen Hoeller
155bbf5057
ResourceUtils supports Tomcat's "war 🫙 " URL format
...
Issue: SPR-13393
2015-10-13 14:36:00 +02:00
Juergen Hoeller
66177dfd8c
StreamUtils.emptyInput() for consistent empty InputStream exposure
...
Issue: SPR-13563
2015-10-12 22:25:40 +02:00
Juergen Hoeller
21e0e27fcb
Removed superfluous ObjectStreamException declaration
2015-10-09 22:55:28 +02:00
Sam Brannen
1a227da19e
Polish AnnotatedElementUtilsTests
2015-10-09 22:51:27 +02:00
Sam Brannen
5e1d6e47a9
Introduced failing, @Ignored test for SPR-13554
...
Issue: SPR-13554
2015-10-09 22:23:49 +02:00
Juergen Hoeller
6993a7d3d0
Polishing
2015-10-06 13:30:13 +02:00
Juergen Hoeller
9cf28950e5
PathResourceTests defensively compares last-modified timestamps at seconds precision
...
Issue: SPR-13542
2015-10-06 13:25:27 +02:00
Juergen Hoeller
427767f21e
Fixed event listener caching through equals/hashCode on SyntheticParameterizedType
...
Issue: SPR-13540
2015-10-06 00:05:51 +02:00
Sam Brannen
d5ee787e1e
Migrate JUnit 3 tests to JUnit 4
...
This commit migrates all remaining tests from JUnit 3 to JUnit 4, with
the exception of Spring's legacy JUnit 3.8 based testing framework that
is still in use in the spring-orm module.
Issue: SPR-13514
2015-09-27 21:17:51 +02:00
Juergen Hoeller
a6a6aed17f
StopWatch provides getId/currentTaskName accessors (plus further fine-tuning)
...
Issue: SPR-13509
2015-09-25 15:23:39 +02:00
Juergen Hoeller
e393c7b1ee
AbstractEnvironment defensively synchronizes access to activeProfiles and defaultProfiles
...
Issue: SPR-13213
2015-09-08 11:03:15 +02:00
Sam Brannen
c663fd551a
Polishing
2015-09-03 17:31:55 +02:00
Sam Brannen
2caaa81afa
Polishing
2015-09-02 15:37:16 +02:00
Sam Brannen
21cfa0e4ba
Suppress warning in DefaultDeserializer
2015-09-02 15:25:10 +02:00
Sam Brannen
b9e461a54f
Polishing
2015-09-02 15:07:49 +02:00
Juergen Hoeller
0867a5e67f
Polishing
2015-09-01 10:22:39 +02:00
Sam Brannen
9b1178cf71
Document support for transitive implicit aliases in @AliasFor
...
Issue: SPR-13405
2015-09-01 00:30:33 +02:00
Juergen Hoeller
566ea30167
Polishing
2015-08-31 17:32:33 +02:00
Juergen Hoeller
2bb7164c64
AsyncRestTemplate and FutureAdapter consistently throw ExecutionException
...
Issue: SPR-13413
2015-08-31 17:31:52 +02:00
Juergen Hoeller
d99717c1cb
DefaultDeserializer and DeserializingConverter allow for specifying a ClassLoader
...
Issue: SPR-13409
2015-08-31 17:31:41 +02:00
Sam Brannen
acc8c895bf
Make AnnotationUtils Java 6 source compatible
2015-08-31 15:54:46 +02:00
Sam Brannen
2a6716d380
Support transitive implicit attribute aliases with @AliasFor
...
This commit picks up where 3eacb837c2
(SPR-13345) left off by adding support for transitive implicit aliases
configured via @AliasFor.
Issue: SPR-13405
2015-08-31 15:46:12 +02:00
Sam Brannen
a066143a5b
Polishing
...
This commit removes unnecessary not-null checks for annotation
attribute alias names.
2015-08-29 16:05:26 +02:00
Sam Brannen
d40a35ba5c
Support implicit attribute aliases with @AliasFor
...
Spring Framework 4.2 introduced support for aliases between annotation
attributes that fall into the following two categories.
1) Alias pairs: two attributes in the same annotation that use
@AliasFor to declare that they are explicit aliases for each other.
2) Meta-annotation attribute overrides: an attribute in one annotation
uses @AliasFor to declare that it is an explicit override of an
attribute in a meta-annotation.
However, the existing functionality fails to support the case where two
attributes in the same annotation both use @AliasFor to declare that
they are both explicit overrides of the same attribute in the same
meta-annotation. In such scenarios, one would intuitively assume that
two such attributes would be treated as "implicit" aliases for each
other, analogous to the existing support for explicit alias pairs.
Furthermore, an annotation may potentially declare multiple aliases
that are effectively a set of implicit aliases for each other.
This commit introduces support for implicit aliases configured via
@AliasFor through an extensive overhaul of the support for alias
lookups, validation, etc. Specifically, this commit includes the
following.
- Introduced isAnnotationMetaPresent() in AnnotationUtils.
- Introduced private AliasDescriptor class in AnnotationUtils in order
to encapsulate the parsing, validation, and comparison of both
explicit and implicit aliases configured via @AliasFor.
- Switched from single values for alias names to lists of alias names.
- Renamed getAliasedAttributeName() to getAliasedAttributeNames() in
AnnotationUtils.
- Converted alias map to contain lists of aliases in AnnotationUtils.
- Refactored the following to support multiple implicit aliases:
getRequiredAttributeWithAlias() in AnnotationAttributes,
AbstractAliasAwareAnnotationAttributeExtractor,
MapAnnotationAttributeExtractor, MergedAnnotationAttributesProcessor
in AnnotatedElementUtils, and postProcessAnnotationAttributes() in
AnnotationUtils.
- Introduced numerous tests for implicit alias support, including
AbstractAliasAwareAnnotationAttributeExtractorTestCase,
DefaultAnnotationAttributeExtractorTests, and
MapAnnotationAttributeExtractorTests.
- Updated Javadoc in @AliasFor regarding implicit aliases and in
AnnotationUtils regarding "meta-present".
Issue: SPR-13345
2015-08-28 18:56:17 +02:00
Juergen Hoeller
0c2b787cb5
ASM fix #317578
...
http://forge.ow2.org/tracker/?func=detail&aid=317578&group_id=23&atid=100023
2015-08-27 22:03:36 +02:00
Sam Brannen
8af0151f1b
Suppress recent deprecation warnings in tests
2015-08-27 17:57:50 +02:00
Juergen Hoeller
e518d7dcc6
Mark log4j support classes as deprecated in favor of Apache Log4j 2 (following Apache's EOL declaration for log4j 1.x)
...
Issue: SPR-13400
2015-08-27 12:36:57 +02:00
Juergen Hoeller
e05fb494f5
Polishing
2015-08-26 11:04:14 +02:00
Juergen Hoeller
3430f7623c
Consistent detection of meta-annotation attributes via ASM
...
Issue: SPR-13394
2015-08-25 21:52:11 +02:00
Juergen Hoeller
b198cad58e
SimpleAliasRegistry detects circles between non-canonical aliases as well (through hasAlias)
...
Additionally, as an optimization, we skip the re-registration step for existing aliases now.
Issue: SPR-13390
2015-08-25 17:06:23 +02:00
Sam Brannen
6085be3a71
Assert status quo for finding annotations on bridged methods
2015-08-22 16:49:12 +02:00
Sam Brannen
a3e7848a30
Clean up warnings and tests in spring-core
2015-08-20 15:49:33 +02:00
Stephane Nicoll
71585c909a
Polish
2015-08-17 14:44:59 +02:00
Sam Brannen
68c39570fe
Revert "Increase randomness in SocketUtils"
...
This reverts commit d5944c4e39
.
2015-08-16 14:39:48 +02:00
Sam Brannen
d5944c4e39
Increase randomness in SocketUtils
2015-08-15 23:48:20 +02:00
Sam Brannen
f47bbb0d9e
Polish tests
2015-08-12 19:35:45 +02:00
Gary Russell
f15140415a
Properly detect available port on localhost in SocketUtils
...
SocketUtils is used to find available ports on localhost; however,
prior to this commit, SocketUtils incorrectly reported a port as
available on localhost if another process was already bound to
localhost on the given port but not to other network interfaces. In
other words, SocketUtils determined that a given port was available for
some interface though not necessarily for the loopback interface.
This commit addresses this issue by refactoring SocketUtils so that it
tests the loopback interface to ensure that the port is actually
available for localhost.
Issue: SPR-13321
2015-08-12 18:45:52 +02:00
Juergen Hoeller
e0f012f32d
Removal of redundant JdkVersion checks in the test suite
...
Issue: SPR-13312
2015-08-12 18:42:36 +02:00
Sam Brannen
acb44f9d46
Suppress warnings regarding deprecated JdkVersion
...
Issue: SPR-13312
2015-08-12 17:36:28 +02:00
Juergen Hoeller
bec3b0fa1a
Deprecate JdkVersion (for optimistic compatibility with newer JDK generations)
...
Issue: SPR-13312
2015-08-12 16:14:43 +02:00
Sam Brannen
e20b47c3bc
Ensure local aliases don't override meta-annotation
...
This commit introduces an additional test case to ensure that explicit
local attribute aliases (configured via @AliasFor) do not accidentally
override attributes of the same names in meta-annotations (i.e., by
convention).
Issue: SPR-13325
2015-08-12 14:38:01 +02:00
Sam Brannen
4317e76e79
Polish AnnotationUtilsTests
2015-08-12 14:36:54 +02:00
Sam Brannen
5deeaf348a
Polish SynthesizedAnnotation support classes
2015-08-10 15:40:25 +02:00
Sam Brannen
f17173f6d5
Synthesize nested maps into annotations
...
Prior to this commit, attempting to synthesize an annotation from a map
of annotation attributes that contained nested maps instead of nested
annotations would result in an exception.
This commit addresses this issue by properly synthesizing nested maps
and nested arrays of maps into nested annotations and nested arrays of
annotations, respectively.
Issue: SPR-13338
2015-08-10 14:55:54 +02:00
Sam Brannen
8289036165
Throw exception if required meta-annotation is not present
...
It is a configuration error if an alias is declared via @AliasFor for
an attribute in a meta-annotation and the meta-annotation is not
meta-present. However, prior to this commit, the support for validating
the configuration of @AliasFor in AnnotationUtils currently silently
ignored such errors.
This commit fixes this by throwing an AnnotationConfigurationException
whenever a required meta-annotation is not present or meta-present on
an annotation that declares an explicit alias for an attribute in the
meta-annotation.
Issue: SPR-13335
2015-08-09 19:14:29 +02:00
Sam Brannen
78ff4ff542
Polish AnnotationUtilsTests
2015-08-09 16:48:38 +02:00
Sam Brannen
48b965ad33
Improve performance of NumberUtils
...
This commit aims to improve the space and time performance of
NumberUtils by invoking valueOf() factory methods instead of the
corresponding constructors when converting a number to a target class.
2015-08-06 19:42:03 +02:00
Sam Brannen
e0392d9da5
Polish NumberUtilsTests
2015-08-06 19:31:44 +02:00
Sam Brannen
15033c1cc9
Polish Javadoc for NumberUtils
2015-08-06 19:21:02 +02:00
Sam Brannen
c8d604bf05
Ensure @AliasFor overrides attribute in correct meta-annotation
...
Prior to this commit, an explicit override for an attribute in a
meta-annotation configured via @AliasFor could potentially result in an
incorrect override of an attribute of the same name but in the wrong
meta-annotation.
This commit fixes the algorithm in getAliasedAttributeName(Method,
Class) in AnnotationUtils by ensuring that an explicit attribute
override is only applied to the configured target meta-annotation
(i.e., configured via the 'annotation' attribute in @AliasFor).
Issue: SPR-13325
2015-08-06 19:04:08 +02:00
Stephane Nicoll
1a659e3c1d
Polish
2015-08-05 08:36:01 +02:00
Sam Brannen
1ff3af6da3
Improve Javadoc for Ordered/@Order regarding sort semantics
2015-07-30 15:24:04 +02:00
Sam Brannen
a07ba695b0
Make @Order @Documented
2015-07-30 15:21:32 +02:00
Sam Brannen
1c8ac2b2aa
Update @AliasFor Javadoc regarding new 'value' alias
...
Issue: SPR-13289
2015-07-29 16:08:42 +02:00
Sam Brannen
725292081e
Introduce 'value' alias for 'attribute' in @AliasFor
...
SPR-11512 introduced support for annotation attribute aliases via
@AliasFor, requiring the explicit declaration of the 'attribute'
attribute. However, for aliases within an annotation, this explicit
declaration is unnecessary.
This commit improves the readability of alias pairs declared within an
annotation by introducing a 'value' attribute in @AliasFor that is an
alias for the existing 'attribute' attribute. This allows annotations
such as @ContextConfiguration from the spring-test module to declare
aliases as follows.
public @interface ContextConfiguration {
@AliasFor("locations")
String[] value() default {};
@AliasFor("value")
String[] locations() default {};
// ...
}
Issue: SPR-13289
2015-07-29 15:27:06 +02:00
Juergen Hoeller
291550a484
AntPathMatcher allows for case-insensitive matching
...
Issue: SPR-13286
2015-07-29 12:38:41 +02:00
Juergen Hoeller
965fca808a
Polishing
2015-07-29 01:08:16 +02:00
Sam Brannen
288d253b8b
Introduce support for conditional lambda execution in Spring's Assume
2015-07-27 19:48:01 +02:00
Sam Brannen
b6c0e7cba3
Remove trailing whitespace in Java source code
2015-07-27 12:40:54 +02:00
Juergen Hoeller
0cce41eb94
Fixed exception message expectation plus formatting
...
Issue: SPR-13067
2015-07-17 16:19:11 +02:00
Juergen Hoeller
aedef43a9a
Exception fine-tuning and general polishing
...
Issue: SPR-13067
2015-07-17 15:24:04 +02:00
Sam Brannen
0940f43a47
Stop documenting annotations using @AliasFor in Javadoc
...
The removed listing will later be incorporated into the reference manual
in a dedicated section.
Issue: SPR-11515
2015-07-08 15:13:09 +02:00
Juergen Hoeller
145d88d152
Polishing
2015-07-07 00:26:31 +02:00
Juergen Hoeller
df8e9638ee
LinkedMultiValueMap explicitly supports deep copies
...
Issue: SPR-13201
2015-07-07 00:24:39 +02:00
Sam Brannen
67ac675e9a
Polish AnnotationAttributes[Tests]
2015-07-06 14:41:52 +02:00
Juergen Hoeller
b7acddbb19
AnnotationAttributes stores and re-throws resolution exceptions
...
Issue: SPR-13177
2015-07-06 13:35:16 +02:00
Juergen Hoeller
265cd2ad1e
Javadoc fine-tuning for 4.2
2015-06-30 18:02:42 +02:00
Sam Brannen
49aabd5ac2
Polish Javadoc for (Synthesizing)MethodParameter
2015-06-30 00:30:42 +02:00
Juergen Hoeller
dc1f921f5c
Split between basic MethodParameter and SynthesizingMethodParameter
...
This split avoids a package tangle (between core and core.annotation) and also allows for selective use of raw annotation exposure versus synthesized annotations, with the latter primarily applicable to web and message handler processing at this point.
Issue: SPR-13153
2015-06-30 00:02:02 +02:00
Juergen Hoeller
a5349eb2f8
Base64Utils falls back to JAXB DatatypeConverter for String-based encoding
...
Issue: SPR-12938
2015-06-26 22:06:13 +02:00
Rossen Stoyanchev
b542b52775
Update Javadoc on AntPathMatcher
2015-06-25 09:41:59 -04:00
Sam Brannen
51e30dd221
Polish MimeType
2015-06-24 23:59:22 +02:00
Sam Brannen
89e504c2f1
Uses Charset instead of String in MimeType.equals()
...
Prior to this commit, Spring's MimeType checked for equality between
two MIME types based on the equality of their properties maps; however,
the properties maps contain string representations of the "charset"
values. Thus, "UTF-8" is never equal to "utf-8" which breaks the
contract for character set names which must be compared in a
case-insensitive manner.
This commit addresses this issue by ensuring that "charset" properties
in MimeType instances are compared as Java Charset instances, thereby
ignoring case when checking for equality between charset names.
Issue: SPR-13157
2015-06-23 22:30:25 +02:00
Sam Brannen
f2f58f1677
Polish Javadoc in MimeType
2015-06-23 21:26:50 +02:00
Sam Brannen
3da59178e5
Document attribute alias support in AnnotationUtils
2015-06-23 18:38:00 +02:00
Sam Brannen
2451594cdd
Synthesize annotation arrays within AnnotationUtils
...
Issue: SPR-11393
2015-06-23 18:30:47 +02:00
Juergen Hoeller
3b6548f3c2
Tests for Base64Utils results between JDK 8 and Commons Codec
...
Issue: SPR-13146
2015-06-22 00:32:33 +02:00
Sam Brannen
d0c0d9fc5a
Synthesize annotation from defaults
...
This commit introduces a convenience method in AnnotationUtils for
synthesizing an annotation from its default attribute values.
TransactionalTestExecutionListener has been refactored to invoke this
new convenience method.
Issue: SPR-13087
2015-06-20 18:27:36 +02:00
Sam Brannen
a0040245ca
Resolve @Repeatable container in AnnotationUtils
...
This commit introduces support for automatically resolving a container
annotation configured via @Repeatable in AnnotationUtils'
getRepeatableAnnotations() and getDeclaredRepeatableAnnotations()
methods.
Issue: SPR-13068
2015-06-20 18:05:04 +02:00
Sam Brannen
80622803b2
Fix error in HTML syntax in Javadoc
2015-06-20 17:01:03 +02:00
Sam Brannen
594c330205
Honor contract of @Repeatable in AnnotationUtils
...
This commit introduces a minor bug fix for getRepeatableAnnotations()
so that it fully complies with the contract of Java's
getAnnotationsByType() method with regard to repeatable annotations
declared on multiple superclasses.
Issue: SPR-13068
2015-06-20 16:53:46 +02:00
Sam Brannen
27d1ce84a3
Polishing
2015-06-20 01:45:46 +02:00
Sam Brannen
fb83e83e78
Honor contract of @Repeatable in AnnotationUtils
...
Prior to this commit, the implementation of getRepeatableAnnotation()
in Spring's AnnotationUtils complied neither with the contract of
getAnnotationsByType() nor with the contract of
getDeclaredAnnotationsByType() as defined in AnnotatedElement in Java 8.
Specifically, unexpected results can be encountered when using Spring's
support for @Repeatable annotations: either annotations show up in the
returned set in the wrong order, or annotations are returned in the set
that should not even be found based on the semantics of @Repeatable.
This commit remedies this problem by deprecating the existing
getRepeatableAnnotation() methods and replacing them with new
getRepeatableAnnotations() and getDeclaredRepeatableAnnotations()
methods that comply with the contracts of Java's getAnnotationsByType()
and getDeclaredAnnotationsByType(), respectively.
Issue: SPR-13068
2015-06-20 01:21:39 +02:00
Sam Brannen
078d252d1e
Delete trailing whitespace in Java source code
2015-06-19 17:09:52 +02:00
Sam Brannen
b36c9f9f23
Polish introspection failure handling in AnnotationUtils
2015-06-19 15:29:57 +01:00
Sam Brannen
23547a72f3
Clean up warnings and polish tests
2015-06-19 14:57:28 +01:00
Sam Brannen
20a1474554
Polishing
2015-06-19 14:40:01 +01:00
Sam Brannen
ece12f9d37
Synthesize annotation from map w/ minimal attributes
...
The initial support for synthesizing an annotation from a Map (or
AnnotationAttributes) introduced in SPR-13067 required that the map
contain key-value pairs for every attribute defined by the supplied
annotationType. However, there are use cases that would benefit from
being able to supply a reduced set of attributes and still have the
annotation synthesized properly.
This commit refines the validation mechanism in
MapAnnotationAttributeExtractor so that a reduced set of attributes may
be supplied. Specifically, if an attribute is missing in the supplied
map the attribute will be set either to value of its alias (if an alias
value configured via @AliasFor exists) or to the value of the
attribute's default value (if defined), and otherwise an exception will
be thrown.
Furthermore, TransactionalTestExecutionListener has been refactored to
take advantage of this new feature by synthesizing an instance of
@TransactionConfiguration solely from the default values of its
declared attributes.
Issue: SPR-13087
2015-06-19 14:27:23 +01:00
Sam Brannen
b65c277fc6
Update list of annotations using @AliasFor
2015-06-17 21:30:02 +01:00
Martin Lippert
63f01c851f
Fix exception in AntPathMatcher for leading *
...
Issue: SPR-13139
2015-06-17 16:15:59 -04:00
Sam Brannen
8743b6bb30
Simplify AnnotatedElementUtils.searchWithFindSemantics()
2015-06-16 22:04:16 +01:00
Sam Brannen
913d0bcf24
Add missing @since tags to AnnotatedElementUtils
2015-06-16 21:45:17 +01:00
Juergen Hoeller
92f1754b1e
Fixed fallback mode in ObjenesisCglibAopProxy, plus consistent support for bypassing Objenesis (e.g. on Google App Engine)
...
This 4.2 commit revises SpringObjenesis towards a smart delegate, including support for a "spring.objenesis.ignore" system property.
Issue: SPR-13131
2015-06-16 22:01:37 +02:00
Juergen Hoeller
06a5ed9cae
AbstractApplicationContext resets common introspection caches after refresh
...
Issue: SPR-13093
2015-06-15 20:34:46 +02:00
Juergen Hoeller
7987f80866
GenericConversionService uses ConcurrentReferenceHashMap instead of ConcurrentHashMap
...
Issue: SPR-13099
2015-06-15 15:55:53 +02:00
Sam Brannen
32c17bf540
Revise method and parameter names in annotation support
...
In AnnotatedElementUtils, all methods pertaining to merging annotation
attributes have been renamed to "getMerged*()" and "findMerged*()"
accordingly. Existing methods such as getAnnotationAttributes(..) have
been deprecated in favor of the more descriptive "merged" variants.
This aligns the naming conventions in AnnotatedElementUtils with those
already present in AnnotationReadingVisitorUtils.
The use of "annotationType" as a variable name for the fully qualified
class name of an annotation type has been replaced with
"annotationName" in order to improve the readability and intent of the
code base.
In MetaAnnotationUtils.AnnotationDescriptor, getMergedAnnotation() has
been renamed to synthesizeAnnotation(), and the method is now
overridden in UntypedAnnotationDescriptor to always throw an
UnsupportedOperationException in order to avoid potential run-time
ClassCastExceptions.
Issue: SPR-11511
2015-06-14 00:34:40 +02:00
Sam Brannen
31c547456a
Introduce getAliasedString() in AnnotationAttributes
...
Issue: SPR-11393
2015-06-12 21:09:33 +02:00
Sam Brannen
05de9a8c4a
Introduce general purpose isEmpty() method in ObjectUtils
...
Prior to this commit, there existed several isEmpty() methods scattered
across various utilities such as ObjectUtils, CollectionUtils, and
StringUtils; however, each of these methods requires a cast to the type
supported for that particular variant.
This commit introduces a general-purpose isEmpty(Object) method in
ObjectUtils that transparently supports multiple object types in a
central location without the need for casts or juggling multiple
utility classes.
Issue: SPR-13119
2015-06-12 19:19:22 +02:00
Sam Brannen
e7f4544248
Polish ObjectUtilsTests
2015-06-12 19:19:22 +02:00
Stephane Nicoll
b87816ed20
Add ResolvableTypeProvider
...
Provide a mean to detect the actual ResolvableType based on a instance as
a counter measure to type erasure.
Upgrade the event infrastructure to detect if the event (or the payload)
implements such interface. When this is the case, the return value of
`getResolvableType` is used to validate its generic type against the
method signature of the listener.
Issue: SPR-13069
2015-06-09 10:57:31 +02:00
Sam Brannen
384ee69300
Introduce getAliasedClassArray() in AnnotationAttributes
...
Issue: SPR-11393
2015-06-04 15:23:53 -04:00
Sam Brannen
e5dc6e964c
Introduce getAliasedStringArray() in AnnotationAttributes
...
Issue: SPR-11393
2015-06-03 21:26:43 -04:00
izeye
b8d7d46da7
Fix typo
2015-06-01 09:21:38 +02:00
Sam Brannen
518c85b107
Support synthesized annotations in MethodParameter
2015-05-29 22:48:55 +02:00
Sam Brannen
1afc938da1
Introduce synthesizeAnnotationArray() in AnnotationUtils
2015-05-29 22:45:34 +02:00
Sam Brannen
9f717871e6
Introduce getAnnotation() in AnnotatedElementUtils
...
This commit introduces a "synthesized annotation" alternative to
getAnnotationAttributes() in AnnotatedElementUtils, analogous to the
recently introduced findAnnotation() methods.
Issue: SPR-13082
2015-05-29 22:04:10 +02:00
Sam Brannen
9afcd17c71
Introduce getAnnotationAttributes(..,Class) in AnnoElUtils
2015-05-29 21:36:00 +02:00
Sam Brannen
46be176875
Allow AnnoConfigEx to propagate from getRepeatableAnnotation()
...
Issue: SPR-13084
2015-05-29 21:17:33 +02:00
Sam Brannen
7018747cec
Remove trailing whitespace in Java source code
2015-05-29 02:03:44 +02:00
Sam Brannen
e30c9b2ef3
Synthesize annotation from a map of attributes
...
Spring Framework 4.2 RC1 introduced support for synthesizing an
annotation from an existing annotation in order to provide additional
functionality above and beyond that provided by Java. Specifically,
such synthesized annotations provide support for @AliasFor semantics.
As luck would have it, the same principle can be used to synthesize an
annotation from any map of attributes, and in particular, from an
instance of AnnotationAttributes.
The following highlight the major changes in this commit toward
achieving this goal.
- Introduced AnnotationAttributeExtractor abstraction and refactored
SynthesizedAnnotationInvocationHandler to delegate to an
AnnotationAttributeExtractor.
- Extracted code from SynthesizedAnnotationInvocationHandler into new
AbstractAliasAwareAnnotationAttributeExtractor and
DefaultAnnotationAttributeExtractor implementation classes.
- Introduced MapAnnotationAttributeExtractor for synthesizing an
annotation that is backed by a map or AnnotationAttributes instance.
- Introduced a variant of synthesizeAnnotation() in AnnotationUtils
that accepts a map.
- Introduced findAnnotation(*) methods in AnnotatedElementUtils that
synthesize merged AnnotationAttributes back into an annotation of the
target type.
The following classes have been refactored to use the new support for
synthesizing AnnotationAttributes back into an annotation.
- ApplicationListenerMethodAdapter
- TestAnnotationUtils
- AbstractTestContextBootstrapper
- ActiveProfilesUtils
- ContextLoaderUtils
- DefaultActiveProfilesResolver
- DirtiesContextTestExecutionListener
- TestPropertySourceAttributes
- TestPropertySourceUtils
- TransactionalTestExecutionListener
- MetaAnnotationUtils
- MvcUriComponentsBuilder
- RequestMappingHandlerMapping
In addition, this commit also includes changes to ensure that arrays
returned by synthesized annotations are properly cloned first.
Issue: SPR-13067
2015-05-29 01:38:51 +02:00
Sam Brannen
f41de12cf6
Ensure synthesized nested annotation arrays retain correct type
...
Prior to this commit, when a nested array of annotations was
synthesized while adapting values within an AnnotationAttributes map,
the array was improperly replaced with an array of type Annotation[]
instead of an array of the concrete annotation type, which can lead to
unexpected run-time exceptions.
This commit fixes this bug by replacing annotations in the existing
array with synthesized versions of those annotations, thereby retaining
the original array's component type.
Issue: SPR-13077
2015-05-27 17:55:10 +02:00
Sam Brannen
a2f152ce8b
Support nested annotations in AnnotationAttributes
...
This commit introduces support in AnnotationAttributes for retrieving
nested annotations that is on par with the existing type-safe support
for retrieving nested AnnotationAttributes.
Issue: SPR-13074
2015-05-27 17:03:01 +02:00
Sam Brannen
0ac0e2ce20
Document public API in AnnotationAttributes
...
AnnotationAttributes has existed for several years, but none of the
"get" methods that make up its public API are documented. In many
cases, the behavior can be inferred from the name of the method, but
for some methods there are "hidden gems" and unexpected behavior
lurking behind the scenes.
This commit addresses this issue by documenting all public methods. In
addition, the hidden support for converting single elements into
single-element arrays has also been documented and tested.
Issue: SPR-13072
2015-05-27 16:15:25 +02:00
Sam Brannen
197f6594f4
Simplify annotation attribute override algorithm
...
Issue: SPR-11513
2015-05-24 17:59:30 +02:00
Sam Brannen
c80932490f
Complete documentation of synthesized annotations
...
Issue: SPR-11512
2015-05-24 16:42:09 +02:00
Sam Brannen
b6f2d95c3e
Cache computed values in SynthesizedAnnotationInvocationHandler
...
Issue: SPR-11512
2015-05-24 15:58:20 +02:00
Sam Brannen
8ecae8697a
Cache attribute methods in AnnotationUtils
...
Issue: SPR-11512
2015-05-24 15:58:20 +02:00
Sam Brannen
d5974a18ab
Polish AnnotationUtils
2015-05-24 15:58:19 +02:00
Sam Brannen
a1fc2097a1
Document SynthesizedAnnotationInvocationHandler constructor
...
Issue: SPR-11512
2015-05-24 15:58:07 +02:00
Sam Brannen
c13f689537
Document isSynthesizable() in AnnotationUtils
...
Issue: SPR-11512
2015-05-24 00:13:53 +02:00
Sam Brannen
7f22f09890
PolishingPolish SynthesizedAnnotationInvocationHandler
2015-05-23 23:58:35 +02:00
Sam Brannen
def7663ec4
Implement hashCode() for synthesized annotations
...
Issue: SPR-13066
2015-05-23 23:46:48 +02:00
Sam Brannen
ae5c8285a6
Polish SynthesizedAnnotationInvocationHandler
2015-05-23 22:40:05 +02:00
Sam Brannen
7e2e9a80d0
Document getAttributeMethods() in AnnotationUtils
...
Issue: SPR-11512
2015-05-23 22:29:12 +02:00
Sam Brannen
7bf609f111
Implement equals() for synthesized annotations
...
Issue: SPR-13065
2015-05-23 22:29:12 +02:00
Sam Brannen
62d1b4b6e8
Document getAttributeAliasMap() in AnnotationUtils
...
This commit also introduces a cache for attribute alias metadata.
Issue: SPR-11512
2015-05-23 20:30:03 +02:00
Sam Brannen
f5e096e2a0
Document @AliasFor
...
Issue: SPR-11512
2015-05-23 19:52:03 +02:00
Sam Brannen
b9e13ea308
Align AnnotationAttributes.toString() with contract in Map
2015-05-23 18:25:50 +02:00
Sam Brannen
f380689230
Don't use Java 8's Method.getParameterCount()
2015-05-23 18:18:03 +02:00
Sam Brannen
1e50d8d5c2
Implement toString() for synthesized annotations
...
Issue: SPR-13064
2015-05-23 18:09:39 +02:00
Sam Brannen
ab92f4ed3a
Document SynthesizedAnnotation support
...
Issue: SPR-11512
2015-05-23 01:01:39 +02:00
Sam Brannen
bd787769be
Introduce "synthesizable" cache in AnnotationUtils
...
Issue: SPR-11512
2015-05-22 21:40:36 +02:00
Sam Brannen
2e4dabb349
Polishing
2015-05-22 21:37:50 +02:00
Sam Brannen
73170224c9
Polish annotation utility tests
2015-05-22 17:46:34 +02:00
Sam Brannen
e7ea92561d
Verify that SynthesizedAnnotation must be public
...
This commit introduces a test that will fail if SynthesizedAnnotation is
not public as is required by the contract for getProxyClass() in
java.lang.reflect.Proxy.
Issue: SPR-13057
2015-05-22 16:42:26 +02:00
Sam Brannen
ca09b1ff20
Introduce putIfAbsent() in AnnotationAttributes
...
Issue: SPR-13060
2015-05-22 15:52:49 +02:00
Sebastien Deleuze
5255e7ae21
Support CompletableFuture in @MessageMapping handler methods
...
Issue: SPR-12207
2015-05-22 11:30:56 +02:00
Juergen Hoeller
792b7b9d11
ByteBufferConverter explicitly declares applicability to byte[]
...
Includes an optimization for simple ByteBuffer duplication.
Issue: SPR-13056
2015-05-22 11:19:17 +02:00
Stephane Nicoll
27c435c4ea
Polish
2015-05-22 10:28:40 +02:00
Stephane Nicoll
39b2fbbccf
Make SynthetizedAnnotation public
...
Enable public visibility on SynthetizedAnnotation to allow annotation
outside its package to be proxied properly. This commit is pending a
unit test that actually reproduces the problem.
Issue: SPR-13057
2015-05-22 10:21:23 +02:00
Sam Brannen
ca66e076d1
Support annotation attribute aliases and overrides via @AliasFor
...
This commit introduces first-class support for aliases for annotation
attributes. Specifically, this commit introduces a new @AliasFor
annotation that can be used to declare a pair of aliased attributes
within a single annotation or an alias from an attribute in a custom
composed annotation to an attribute in a meta-annotation.
To support @AliasFor within annotation instances, AnnotationUtils has
been overhauled to "synthesize" any annotations returned by "get" and
"find" searches. A SynthesizedAnnotation is an annotation that is
wrapped in a JDK dynamic proxy which provides run-time support for
@AliasFor semantics. SynthesizedAnnotationInvocationHandler is the
actual handler behind the proxy.
In addition, the contract for @AliasFor is fully validated, and an
AnnotationConfigurationException is thrown in case invalid
configuration is detected.
For example, @ContextConfiguration from the spring-test module is now
declared as follows:
public @interface ContextConfiguration {
@AliasFor(attribute = "locations")
String[] value() default {};
@AliasFor(attribute = "value")
String[] locations() default {};
// ...
}
The following annotations and their related support classes have been
modified to use @AliasFor.
- @ManagedResource
- @ContextConfiguration
- @ActiveProfiles
- @TestExecutionListeners
- @TestPropertySource
- @Sql
- @ControllerAdvice
- @RequestMapping
Similarly, support for AnnotationAttributes has been reworked to
support @AliasFor as well. This allows for fine-grained control over
exactly which attributes are overridden within an annotation hierarchy.
In fact, it is now possible to declare an alias for the 'value'
attribute of a meta-annotation.
For example, given the revised declaration of @ContextConfiguration
above, one can now develop a composed annotation with a custom
attribute override as follows.
@ContextConfiguration
public @interface MyTestConfig {
@AliasFor(
annotation = ContextConfiguration.class,
attribute = "locations"
)
String[] xmlFiles();
// ...
}
Consequently, the following are functionally equivalent.
- @MyTestConfig(xmlFiles = "test.xml")
- @ContextConfiguration("test.xml")
- @ContextConfiguration(locations = "test.xml").
Issue: SPR-11512, SPR-11513
2015-05-22 00:01:07 +02:00
Juergen Hoeller
b4095c3e1d
Class identity comparisons wherever possible
...
Issue: SPR-12926
2015-05-20 14:34:16 +02:00
Stephane Nicoll
cf391f5ce1
polish
...
Remove unused imports
2015-05-19 08:49:01 +02:00
Juergen Hoeller
008c9a3b45
Test for ByteBuffer-to-ByteBuffer conversion (fresh copy)
...
ByteBufferConverter also defensively returns the rewind result now.
Issue: SPR-13031
2015-05-18 16:17:11 +02:00
Juergen Hoeller
1e7d954fcb
MethodMetadata exposes method return type
...
Issue: SPR-13024
2015-05-18 16:16:58 +02:00
Stephane Nicoll
0612bc7bc5
Harmonize default converters
...
Provide Converter implementations for Charset, Currency and TimeZone as
related PropertyEditors are available for those.
Issue: SPR-13020
2015-05-15 15:23:57 +02:00
Sam Brannen
477d4c5126
Document "present" terminology in AnnotationUtils
...
Prior to this commit, the documentation in AnnotationUtils was
inconsistent, and at times even misleading, with regard to finding
annotations that are "present" or "directly present" on annotated
elements.
This commit defines the terminology used within AnnotationUtils and
introduces the explicit notion of "meta-present" to denote that
annotations are present within annotation hierarchies above annotated
elements.
Issue: SPR-13030
2015-05-14 21:25:54 +02:00
Sam Brannen
ebed52cc22
Favor local, composed annotations in AnnotatedElementUtils
...
This commit updates the "get semantics" search algorithm used in
`AnnotatedElementUtils` so that locally declared 'composed annotations'
are favored over inherited annotations.
Specifically, the internal `searchWithGetSemantics()` method now
searches locally declared annotations before searching inherited
annotations.
All TODOs in `AnnotatedElementUtilsTests` have been completed, and all
ignored tests have been reinstated.
Issue: SPR-11598
2015-05-13 16:06:36 +02:00
Juergen Hoeller
0711d6d0df
Polishing
2015-05-13 15:04:26 +02:00
Juergen Hoeller
e83d495cbb
SimpleAliasRegistry prevents NPE for alias resolved to null
...
Issue: SPR-13016
2015-05-12 22:04:44 +02:00
Sam Brannen
52153bd454
Document search scope in Ann*[Element]Utils
...
This commit improves the documentation for AnnotationUtils and
AnnotatedElementUtils by explaining that the scope of most annotation
searches is limited to finding the first such annotation, resulting in
additional such annotations being silently ignored.
Issue: SPR-13015
2015-05-12 21:06:27 +02:00
Juergen Hoeller
00147379f9
Polishing
...
(cherry picked from commit 9e925aa
)
2015-05-11 22:22:23 +02:00
Juergen Hoeller
64a01d64c5
Polishing
2015-05-11 14:42:45 +02:00
Sam Brannen
fcf75c90b1
Fix broken AnnotationAttributesTests
...
Issue: SPR-13007
2015-05-10 13:10:04 +02:00
Philippe Marschall
994d86992c
Avoid eager formatting in pre-condition checks
...
In general, the Spring Framework aims to construct error message
strings only if an actual error has occurred. This seems to be the
common pattern in the codebase and saves both CPU and memory. However,
there are some places where eager error message formatting occurs
unnecessarily.
This commit addresses this issue in the following classes:
AdviceModeImportSelector, AnnotationAttributes, and
ReadOnlySystemAttributesMap.
The change in ReadOnlySystemAttributesMap also avoids a potential
NullPointerException.
Issue: SPR-13007
2015-05-10 12:36:01 +02:00
Juergen Hoeller
1e046435ab
AntPathMatcher actually throws IllegalArgumentException if patterns cannot be combined
...
Issue: SPR-12998
2015-05-09 15:29:33 +02:00
Sam Brannen
04d6afe54d
Support arbitrary levels of meta-annotations in TypeDescriptor
...
Prior to this commit, the `getAnnotation()` method in `TypeDescriptor`
only supported a single level of meta-annotations. In other words, the
annotation hierarchy would not be exhaustively searched.
This commit provides support for arbitrary levels of meta-annotations
in `TypeDescriptor` by delegating to `AnnotationUtils.findAnnotation()`
within `TypeDescriptor.getAnnotation()`.
Issue: SPR-12793
2015-05-08 16:05:18 +02:00
Sam Brannen
5f03c97295
Polish Javadoc for MethodParameter
2015-05-08 16:03:55 +02:00
Sam Brannen
638926be4f
Use JUnit ExpectedException rule in AntPathMatcherTests
2015-05-08 14:37:15 +02:00
Sam Brannen
c7cdbe126d
Introduce failing test case in AntPathMatcherTests
...
Issue: SPR-12998
2015-05-08 14:31:21 +02:00
Arjen Poutsma
76beb36e4b
Remove duplicate separators when combining paths
...
Prior to this commit, AntPathMatcher would not correctly combine a path
that ends with a separator with a path that starts with a separator.
For example, `/foo/` + `/bar` combined into `/foo//bar`.
Specifically, this commit:
- Removes the duplicated separator in combined paths
- Improves RequestMappingInfo's toString() representation
- Fixes Javadoc formatting in AntPathMatcher
- Polishes AntPathMatcherTests
- Polishes Javadoc in AbstractRequestCondition
Issue: SPR-12975
2015-05-08 13:49:34 +02:00
Juergen Hoeller
dbd82d128d
Polishing
2015-05-07 20:18:17 +02:00
Juergen Hoeller
783cb2c438
StringUtils.commaDelimitedListToSet/removeDuplicateStrings preserves original order
...
Issue: SPR-12003
2015-05-07 16:02:48 +02:00
Juergen Hoeller
b90085500d
Revert introduction of isNotEmpty aliases
...
Issue: SPR-12009
2015-05-07 15:54:55 +02:00
Juergen Hoeller
db80378dbe
Avoid infinite loop in PatternMatchUtils
...
Issue: SPR-12971
2015-05-07 15:41:40 +02:00
Juergen Hoeller
2c043ec9d7
Fix for ASM issue 317555
...
Issue: SPR-12957
2015-05-07 15:41:24 +02:00
Sam Brannen
401bcd4a8a
Polish Javadoc for AnnotatedElementUtils
2015-05-07 14:01:02 +02:00
Sam Brannen
7a690df925
Remove trailing whitespace from Java source code
2015-05-06 20:08:42 +02:00
Sam Brannen
6db8f24aaf
Polish AnnotatedElementUtils[Tests]
...
Issue: SPR-11514
2015-05-06 18:48:26 +02:00
Sam Brannen
270308dfd9
Document "get vs. find" semantics in AnnotatedElementUtils
...
Issue: SPR-11514
2015-05-06 18:29:26 +02:00
Sam Brannen
5c0f98aea4
Document & test AnnotatedElementUtils.getAllAnnotationAttributes
...
Issue: SPR-11514
2015-05-06 15:55:37 +02:00
Sam Brannen
9eb3518583
Introduce tests for AnnotatedElementUtils.isAnnotated()
...
Issue: SPR-11514
2015-05-06 14:07:07 +02:00
Sam Brannen
e2158d75de
Improve documentation of AnnotatedElementUtils.Processor
...
Issue: SPR-11514
2015-05-06 14:07:07 +02:00
Sam Brannen
5d67219a4e
Eliminate inspection of annotations on core Java annotations
...
This commit picks up where SPR-11483 left off, with the goal of
eliminating all unnecessary inspection of core JDK annotations in
Spring's annotation search algorithms in AnnotatedElementUtils and
AnnotationMetadataReadingVisitor.
Issue: SPR-12989
2015-05-06 00:17:12 +02:00
Sam Brannen
ba84458c65
Overhaul AnnotatedElementUtils
...
- Methods which search for a specific annotation now properly ensure
that the sought annotation was actually found.
- Both the "get" and the "find" search algorithms no longer needlessly
traverse meta-annotation hierarchies twice.
- Both the "get" and the "find" search algorithms now properly
increment the metaDepth when recursively searching within the
meta-annotation hierarchy.
- Redesigned getMetaAnnotationTypes() so that it doesn't needlessly
search irrelevant annotations.
- Documented and tested hasMetaAnnotationTypes().
- Documented isAnnotated().
Issue: SPR-11514
2015-05-05 23:35:00 +02:00
Sam Brannen
efce40c391
Polish internal Javadoc for AnnotatedElementUtils
...
Issue: SPR-11514
2015-05-04 14:15:16 +02:00
Sam Brannen
bb1886c5a8
Enable AbstractStaxHandlerTestCase to run w/o Internet connection
2015-05-02 23:23:51 +02:00
Sam Brannen
e56363737b
Make findAnnotationAttributes power search private
2015-05-02 10:38:31 +02:00
Sam Brannen
7ef9ac7a4d
Document & test status quo for getMetaAnnotationTypes()
...
This commit documents the status quo for the getMetaAnnotationTypes()
method in AnnotatedElementUtils and adds appropriate regression tests to
AnnotatedElementUtilsTests.
In addition, this commit also introduces a SimpleAnnotationProcessor
base class in AnnotatedElementUtils.
Issue: SPR-11514
2015-04-26 21:13:19 +02:00
Sam Brannen
99cc7d56ff
Document return values in AnnotatedElementUtils
...
This commit documents return values throughout AnnotatedElementUtils and
improves the documentation for the internal Processor API.
Issue: SPR-11514
2015-04-26 03:00:39 +02:00
Sam Brannen
91e46cf2ad
Update TODOs in AnnotatedElementUtils[Tests]
...
Issue: SPR-12738
2015-04-24 23:05:29 +02:00
Sam Brannen
25187eeb0d
Document AnnotatedElementUtils & assert preconditions
...
This commit consistently documents the 'element' and 'annotationType'
method arguments throughout AnnotatedElementUtils.
In addition, this commit introduces assertions against preconditions
for all 'element' and 'annotationType' method arguments.
Issue: SPR-11514
2015-04-24 22:36:36 +02:00
Juergen Hoeller
49f3046f66
PathMatchingResourcePatternResolver skips invalid jar classpath entries
...
Issue: SPR-12928
2015-04-24 17:40:13 +02:00
Stephane Maldini
74c0250525
Upgrade to Reactor 2
...
Issue: SPR-12599
2015-04-24 07:18:42 -04:00
Sam Brannen
ad6bea1cda
Support abstract, bridge, & interface methods in AnnotatedElementUtils
...
This commit introduces support for finding annotations on abstract,
bridge, and interface methods in AnnotatedElementUtils.
- Introduced dedicated findAnnotationAttributes() methods in
AnnotatedElementUtils that provide first-class support for
processing methods, class hierarchies, interfaces, bridge methods,
etc.
- Introduced find/get search algorithm dichotomy in
AnnotatedElementUtils which is visible in the public API as well as
in the internal implementation. This was necessary in order to
maintain backwards compatibility with the existing API (even though
it was undocumented).
- Reverted all recent changes made to the "get semantics" search
algorithm in AnnotatedElementUtils in order to ensure backwards
compatibility, and reverted recent changes to
JtaTransactionAnnotationParser and SpringTransactionAnnotationParser
accordingly.
- Documented internal AnnotatedElementUtils.Processor<T> interface.
- Enabled failing tests and introduced
findAnnotationAttributesFromBridgeMethod() test in
AnnotatedElementUtilsTests.
- Refactored ApplicationListenerMethodAdapter.getCondition() and
enabled failing test in TransactionalEventListenerTests.
- AnnotationUtils.isInterfaceWithAnnotatedMethods() is now package
private.
Issue: SPR-12738, SPR-11514, SPR-11598
2015-04-24 00:55:48 +02:00
Sam Brannen
ececf32c05
Revert unintentional change in AnnotationUtils
2015-04-23 17:28:47 +02:00
Sam Brannen
b723dcebba
Polish inline documentation in AnnotatedElementUtils
2015-04-23 17:28:47 +02:00
Sam Brannen
7f0f04dfe3
Support annotations on interfaces in AnnotatedElementUtils
...
This commit introduces support in AnnotatedElementUtils for finding
annotations declared on interfaces at the type level.
NB: this commit does not include support for finding annotations
declared on interface methods.
In order to maintain backward compatibility with @Transactional
annotation attribute processing, a new getAnnotationAttributes() method
has been added to AnnotatedElementUtils that provides a flag to control
whether interfaces should be searched.
SpringTransactionAnnotationParser and JtaTransactionAnnotationParser
have been updated accordingly to ensure that interfaces are not
unintentionally searched in the @Transactional resolution process.
This commit also introduces additional tests and updates TODOs for
SPR-12738.
Issue: SPR-12944, SPR-12738
2015-04-23 01:33:37 +02:00
Sam Brannen
9b7fd8be4d
Polish Javadoc for AnnotationUtils
2015-04-23 01:21:27 +02:00
Sam Brannen
9c6d4b7848
Assert status quo for interface support in AnnotationUtils
2015-04-23 01:19:49 +02:00
Sam Brannen
b9b0b78fa1
Support n meta-annotation levels on methods in AnnotationUtils
...
Prior to this commit, the search algorithm used by the
findAnnotation(Method, Class) method in AnnotationUtils only found
direct annotations or direct meta-annotations (i.e., one level of
meta-annotations).
This commit reworks the search algorithm so that it supports arbitrary
levels of meta-annotations on methods. To make this possible, a new
findAnnotation(AnnotatedElement, Class) method has been introduced in
AnnotationUtils.
This fix also allows for the @Ignore'd tests in
TransactionalEventListenerTests to be re-enabled.
Issue: SPR-12941
2015-04-22 02:26:24 +02:00
Sam Brannen
666d1cecc8
Fix broken test in AnnotationUtilsTests
2015-04-21 21:06:47 +02:00
Sam Brannen
19a75f2c66
Document meta-annotation support in AnnotationUtils
...
Issue: SPR-12940
2015-04-21 19:54:48 +02:00
Sam Brannen
ed88b7fe08
Reorganize tests in AnnotationUtilsTests for greater clarity
2015-04-21 19:54:48 +02:00
Sam Brannen
dba48a1ff5
Isolate thrown exception in AssertTests
2015-04-14 20:42:23 +02:00
Sam Brannen
fefbd8f85b
Polish Javadoc for StringUtils and Assert
2015-04-14 20:05:56 +02:00
Sam Brannen
47f8d435e6
Introduce isNotEmpty() aliases in StringUtils
...
This commit introduces isNotEmpty() aliases for the existing hasLength()
methods in StringUtils.
Issue: SPR-12909
2015-04-14 20:02:18 +02:00
Arjen Poutsma
b119a9c82c
FutureAdapter should wrap RuntimeExceptions
...
RuntimeExceptions thrown from FutureAdapter.adapt() should be wrapped in
an ExecutionException, not thrown as is.
Issue: SPR-12887
2015-04-10 12:52:15 +02:00
Sam Brannen
abaf81f1b5
Clean up warnings in DefaultConversionServiceTests
2015-04-07 22:40:06 -04:00
Juergen Hoeller
e78b0860df
AnnotatedElementUtils leniently ignores TypeNotPresentExceptions (just like AnnotationUtils)
...
Also refines logIntrospectionFailure to just log at debug level for meta-annotation introspection failures.
Issue: SPR-12889
2015-04-04 00:20:16 +02:00
Juergen Hoeller
514eb4281c
Polishing
2015-04-01 17:23:45 +02:00
Juergen Hoeller
2c637dcb2e
ReaderEditor supports Reader injection analogous to InputStreamEditor (from Spring resource location)
...
Also, EncodedResource implements InputStreamSource now since it declares getInputStream() anyway.
Issue: SPR-12876
2015-04-01 17:02:55 +02:00
Juergen Hoeller
1d33fd039a
AnnotationUtils.getAnnotationAttributes makes Method accessible (analogous to AnnotationUtils.getValue)
...
Issue: SPR-12858
2015-03-31 10:28:42 +02:00
Sam Brannen
502fa1796e
Polish Javadoc for ClassUtils
2015-03-30 17:34:36 +02:00
Sam Brannen
a4af5b8a3e
Verify which factory methods are invoked in DefaultConversionServiceTests
2015-03-30 17:34:14 +02:00
Sam Brannen
bddc4373fb
Refactor ObjectToObjectConverter & improve exception msg
...
- The exception message now mentions lacking to-Object method as well.
- Documented explicit lacking support for toString() for conversions.
- Introduced dedicated has*() methods for greater clarity and to reduce
code duplication.
- Static factory methods (i.e., of, from, valueOf) are now supported for
conversion to a String.
2015-03-30 17:32:59 +02:00
Sam Brannen
db96113bcf
Polish Javadoc for converters
2015-03-30 16:24:24 +02:00
Sam Brannen
72d7963b30
Polish ConversionService tests
...
- Now correctly using @Test(expected=...) where appropriate.
- Renamed DefaultConversionTests to DefaultConversionServiceTests.
- Moved all tests related to DefaultConversionService from
GenericConversionServiceTests to DefaultConversionServiceTests.
- No longer printing to System.out.
- Removed all duplicate instantiation of conversion services.
- Now using Java 8 streams to simplify implementations of custom test
converters. Also using streams in tests where appropriate.
2015-03-30 15:58:29 +02:00
Juergen Hoeller
d23893fd25
Consistent javadoc param declarations for type variables
2015-03-25 00:44:01 +01:00
Juergen Hoeller
22670b7fad
Fixed addConverterFactory assertion
2015-03-25 00:42:51 +01:00
Juergen Hoeller
09027f7972
ResolvableType.forRawClass as a straight wrapper for Class.isAssignableFrom
...
Issue: SPR-12846
2015-03-24 19:20:15 +01:00
Juergen Hoeller
56273a8ff3
Polishing
2015-03-21 01:19:01 +01:00
Arjen Poutsma
da48739628
Support byte ranges in ResourceHttpRequestHandler
...
This commit introduces support for HTTP byte ranges in the
ResourceHttpRequestHandler. This support consists of a number of
changes:
- Parsing of HTTP Range headers in HttpHeaders, using a new HttpRange
class and inner ByteRange/SuffixByteRange subclasses.
- MIME boundary generation moved from FormHttpMessageConverter to
MimeTypeUtils.
- writePartialContent() method introduced in ResourceHttpRequestHandler,
handling the byte range logic
- Additional partial content tests added to
ResourceHttpRequestHandlerTests.
Issue: SPR-10805
2015-03-20 15:35:43 -04:00
Juergen Hoeller
192462902e
Consistent support for Java 8 default methods (in interfaces implemented by user classes)
...
Covers ReflectionUtils.doWithMethods as well as affected annotation post-processors.
Includes an extension of MethodMetadata for the detection of @Bean default methods.
Issue: SPR-12822
Issue: SPR-10919
2015-03-19 16:50:15 +01:00
Juergen Hoeller
778a01943b
ResolvableType-based type matching at the BeanFactory API level
...
Issue: SPR-12147
2015-03-18 23:05:13 +01:00
Juergen Hoeller
bc6a98c144
Polishing (in particular updating javadoc references to Apache Commons)
2015-03-13 18:19:10 +01:00
Sam Brannen
08c67cf045
Polish AnnotationAwareOrderComparator
2015-03-07 22:35:49 +01:00
Sam Brannen
afee546973
Delete unused method in TypeDescriptor
2015-03-07 22:27:11 +01:00
Sam Brannen
d90cee78ef
Remove trailing whitespace in source code
2015-03-07 21:16:18 +01:00
Juergen Hoeller
ff4ac5b837
Collections.unmodifiableMultiValueMap explicitly casts to List<V> (for compatibility with JDK 9 build 53)
...
Issue: SPR-12549
2015-03-06 11:52:51 +01:00
Juergen Hoeller
b541fc9366
Polishing
2015-03-05 18:56:57 +01:00
Juergen Hoeller
1e26d17a3d
Preparations for JDK 9
...
Issue: SPR-12549
2015-03-05 18:56:07 +01:00
Juergen Hoeller
7e8ffc7bf5
CompositePropertySource rejects getPropertyNames call when containing a non-enumerable source
...
Issue: SPR-12788
2015-03-05 18:53:25 +01:00
Juergen Hoeller
f786fc3226
ObjectToOptionalConverter preserves existing Optional instances
...
Issue: SPR-12785
2015-03-05 18:53:03 +01:00
Juergen Hoeller
dcb1145354
Converter interface explicitly documents null values
...
Issue: SPR-12780
2015-03-05 18:52:38 +01:00
Sam Brannen
93c70b7440
Include charset in EncodedResource.equals()
...
Prior to this commit, the implementation of equals() in EncodedResource
was based solely on the resource and encoding. Thus, if a Charset were
specified instead of an encoding, invocations of equals() would not
work as expected.
This commit addresses this issue by including the charset in the
implementation of equals() and introducing corresponding tests in a new
EncodedResourceTests class. Furthermore, this commit makes
EncodedResource immutable and updates all Javadoc to reflect support
for the encoding and charset properties.
Issue: SPR-12767
2015-02-28 17:37:02 +01:00
Stephane Nicoll
babbf6e871
Harmonize resources location
...
Issue: SPR-12766
2015-02-28 10:32:40 +01:00
Juergen Hoeller
540d8792fe
Fixed javadoc warnings and revised FastByteArrayOutputStream code style
2015-02-27 23:49:55 +01:00
Sam Brannen
fe8289b5e3
Implement description consistently across Resources
...
This commit ensures Resources have consistent, non-empty, meaningful
implementations for getDescription(), thus ensuring that calls to
toString() (e.g., in log statements) no longer return an empty String.
This commit also polishes the Javadoc for various Resource
implementations.
2015-02-27 21:41:37 +01:00
Sam Brannen
088238443b
Polish Javadoc for ResourcePropertySource
2015-02-27 21:41:37 +01:00
Sam Brannen
228d9db4d4
Polish StreamConverter(Tests)
2015-02-27 19:27:37 +01:00
Juergen Hoeller
287045ef74
Allow for shared Objenesis caching in ObjenesisCglibAopProxy
...
Issue: SPR-12755
2015-02-26 18:34:52 +01:00
Juergen Hoeller
cc33d3fac8
Polishing
2015-02-25 19:05:06 +01:00
Stephane Nicoll
4ca32d1ce5
polishing
2015-02-24 10:23:16 +01:00
Stephane Nicoll
018adb04f2
Add converter support for Stream
...
Add StreamConverter to provide full support for converting
java.util.stream.Stream instances to and from collections or arrays.
Also attempt to convert the element type if necessary.
StreamConverter is registered by default in the DefaultConversionService
as long as Java8 is available.
Issue: SPR-12175
2015-02-24 10:17:27 +01:00
Juergen Hoeller
91a0107e4a
ResolvableType.getType() returns ParameterizedType when built with forClassWithGenerics
...
Issue: SPR-12701
2015-02-20 21:53:44 +01:00
Rossen Stoyanchev
b94c6fdf7a
Add tests for SPR-12738
2015-02-20 13:19:15 -05:00
Stephane Nicoll
1aec6a6cc2
Detect Order on target class as well
...
Previously, the `@Order` annotation was managed in an inconsistent way
when placed at the implementation level. For simple beans, it was
discovered properly but wasn't for beans requiring a proxy.
OrderComparator.SourceProvider now explicitly allows to return several
order sources; the default implementation returns not only the factory
method (if any) but also the target class if it happens to be different
from the class of the bean.
Issue: SPR-12636
2015-02-19 09:47:20 +01:00
Juergen Hoeller
0c15a54007
Polishing
2015-02-18 16:45:16 +01:00
Juergen Hoeller
6ebac00f32
@RequestPart supports java.util.Optional
...
Issue: SPR-12644
2015-02-18 16:17:07 +01:00
Sam Brannen
add718d75c
Polish EnumerablePropertySource
2015-02-16 20:26:49 +01:00
Juergen Hoeller
f58abd3d9a
Polishing (forward-ported from 4.1.x)
2015-02-10 23:04:12 +01:00
Juergen Hoeller
058714b03a
Polishing
2015-02-10 19:30:59 +01:00
Sam Brannen
6e10f7c8cf
Update TODOs for SPR-11598
2015-01-24 18:01:43 +01:00
Sam Brannen
e97712b95b
Update copyright headers in IdGenerators
2015-01-23 21:12:45 +01:00
Rossen Stoyanchev
52b8f34468
Add JdkIdGenerator and use it in SockJS client
...
Issue: SPR-12658
2015-01-22 21:27:36 -05:00
Juergen Hoeller
0ddf8dde12
AnnotationUtils explicitly handles null parameters
...
Issue: SPR-12604
2015-01-20 16:01:44 +01:00
Craig Andrews
213a3fd779
Performance improvements in ShallowEtagHeaderFilter
...
Prior to this change, the ShallowEtagHeaderFilter would use a
ResizableByteArrayOutputStream to internally write data and calculate
the ETag. While that implementation is faster than the regular
ByteArrayOutputStream (since it has a better strategy for growing the
internal buffer), a lot of buffer copying/writing still happens.
This change adds a new FastByteArrayOutputStream implementation that
internally uses a LinkedList<Byte[]> to store the content. So when
writing bytes to that OutputStream implementation, new byte[] are
added to the list when the previous ones are full. This saves most
of the instantiating/copying operations.
Note that new methods were added in DigestUtils to allow usage of
Streams instead of byte[], which is more efficient in our case.
Fixes #653
Issue: SPR-12081
2015-01-08 16:08:09 +01:00
Sam Brannen
40cd1be14c
Update Javadoc for AnnotationUtils.findAnnotation()
...
This commit updates the Javadoc for findAnnotation() to reflect recent
changes to the algorithm it implements.
2015-01-07 21:08:00 +01:00
John
46b094bfc4
Fix typo
2015-01-07 00:28:51 -05:00
Sam Brannen
4a49a6535d
Document type safety limitations of the CollectionFactory API
...
Issue: SPR-12596
2015-01-04 22:48:15 +01:00
Juergen Hoeller
ec84fa6da3
ObjectToOptionalConverter uses Optional.ofNullable after ConversionService invocation
...
Issue: SPR-12589
2015-01-02 14:57:42 +01:00
Juergen Hoeller
9ac02b319d
Remove pre-3.2 deprecated classes and methods
...
Issue: SPR-12578
2014-12-30 20:05:15 +01:00
Juergen Hoeller
86b8112c90
Polishing
2014-12-29 15:13:40 +01:00
Juergen Hoeller
dfdfc03ff3
Polishing
2014-12-22 20:02:25 +01:00
Sam Brannen
c62fbea2ba
Demonstrate that the CollectionFactory API is not type-safe
...
This commit introduces test methods in CollectionFactoryTests that
demonstrate how the APIs for createCollection() and createMap() are not
type-safe, specifically regarding the use of generics, raw types, and
casting.
2014-12-11 15:55:41 +01:00
Sam Brannen
aec284a4ca
Create empty EnumSets & EnumMaps in CollectionFactory
...
SPR-12483 introduced automatic type conversion support for EnumSet and
EnumMap. However, the corresponding changes in CollectionFactory
contradict the existing contract for the "create approximate" methods
by creating a copy of the supplied set or map, thereby potentially
including elements in the returned collection when the returned
collection should in fact be empty.
This commit addresses this issue by ensuring that the collections
returned by createApproximateCollection() and createApproximateMap()
are always empty.
Furthermore, this commit improves the Javadoc throughout the
CollectionFactory class.
Issue: SPR-12533
2014-12-10 22:59:00 +01:00
Sam Brannen
fb426fe611
Demonstrate that the CollectionFactory API is not type-safe
...
This commit introduces test methods in CollectionFactoryTests that
demonstrate how the APIs for createApproximateCollection() and
createApproximateMap() are not type-safe, specifically regarding the use
of generics, raw types, and casting.
2014-12-10 17:36:01 +01:00
Sam Brannen
978b8c81e5
Cover maps & more collections in CollectionFactoryTests
2014-12-10 16:44:52 +01:00
Sam Brannen
86f99ec8f7
Improve error handling in CollectionFactory
...
This commit improves error handling in CollectionFactory by asserting
preconditions.
In addition, this commit introduces ConnectionFactoryTests.
2014-12-10 14:47:15 +01:00
Sam Brannen
5aaed147d5
Use public AssumptionViolatedException in Assume
...
JUnit 4.12 created a 'public' version of the previously 'internal'
AssumptionViolatedException.
This commit upgrades Spring's Assume class to use this new public
version.
2014-12-10 00:29:52 +01:00
Sam Brannen
d8ef666764
Suppress "rawtypes" warnings in CollectionFactory
...
This commit also adds links to the newly created Eclipse bug that was
raised for this issue.
2014-12-09 21:29:05 +01:00
Sam Brannen
fe78900524
Work-around for Eclipse bug regarding EnumSets
...
This commit introduces superfluous casts in CollectionFactory to
address a bug in Eclipse 4.4.1 that prevents the code from compiling
within Eclipse. Specifically, without these casts Eclipse displays the
following error for use of the EnumSet.copyOf() and EnumSet.noneOf()
methods:
Type mismatch: cannot convert from EnumSet<Enum<Enum<E>>> to
Collection<E>
2014-12-09 20:54:36 +01:00
Juergen Hoeller
bb1d1e916e
Polishing
2014-12-07 20:52:18 +01:00
Juergen Hoeller
5018889d78
AnnotationAttributesReadingVisitor defensively handles meta-annotation retrieval failure
...
Issue: SPR-12493
2014-12-02 15:12:23 +01:00
Juergen Hoeller
c94d584f37
OrderUtils defensively checks for presence of javax.annotation.Priority
...
Issue: SPR-12489
2014-12-01 18:08:11 +01:00
Juergen Hoeller
efb114d49a
Polishing
2014-11-29 20:49:21 +01:00
Juergen Hoeller
bfbd25a0e9
BeanWrapper auto-growing support for EnumSet / EnumMap
...
Issue: SPR-12483
2014-11-29 20:49:06 +01:00
Juergen Hoeller
7635e7b7f2
Polishing
...
Issue: SPR-12483
2014-11-28 20:32:35 +01:00
Juergen Hoeller
fef4cd0ed6
Default conversion support for EnumSet / EnumMap
...
Issue: SPR-12483
2014-11-28 20:30:46 +01:00
Juergen Hoeller
f44217a0c2
Clarified getAllAnnotationAttributes behavior
...
Issue: SPR-12473
(cherry picked from commit 5ac8680
)
2014-11-26 16:14:41 +01:00
Juergen Hoeller
ab5856b6a8
Tracking ASM 5.0.4 development: Fix for ASM issue 317545
...
Issue: SPR-12470
2014-11-26 11:42:30 +01:00
Juergen Hoeller
223d849a14
Polishing
2014-11-23 00:12:02 +01:00
Juergen Hoeller
7fcadaa393
MethodParameter generally uses volatile variables where applicable now (as well as a local copy of the parameterNameDiscoverer field)
...
Issue: SPR-12453
2014-11-22 16:45:26 +01:00
Juergen Hoeller
1ef06cc743
MutablePropertySources uses an internal CopyOnWriteArrayList for defensiveness against concurrent modifications
...
Issue: SPR-12428
2014-11-22 16:12:28 +01:00
Chris Beams
dff48ad8dd
Allow non-String args in JOptCommandLinePropertySource
...
Prior to this commit, JOptCommandLinePropertySource prevented the
possibility of non-String option arguments. This effectively prevents
the use of JOpt's #ofType support (which allows specifying custom
argument types).
Now, non-String arguments are detected and converted to strings as
necessary. JOpt's #ofType now works as expected. A test has been added
to cover this case.
2014-11-20 12:03:29 +01:00
Juergen Hoeller
285dca027b
Polishing
...
(cherry picked from commit acefd83
)
2014-11-02 11:48:09 +01:00
Juergen Hoeller
1146d5ba1d
Polishing
2014-10-29 22:44:59 +01:00
Juergen Hoeller
725ad0df50
SimpleMetadataReaderFactory is capable of resolving inner class names with dot syntax now (analogous to ClassUtils.forName)
...
Issue: SPR-12390
2014-10-29 22:03:01 +01:00
Juergen Hoeller
b70c5d1ff1
Normalized AnnotationAttributesReadingVisitor class layout and improved diagnostics through delegating to AnnotationUtils
...
Issue: SPR-12387
2014-10-28 19:08:45 +01:00
Juergen Hoeller
06632822e9
Log4jConfigurer initLogging(location) throws FileNotFoundException for file URL as well
...
Issue: SPR-9725
2014-10-28 16:18:55 +01:00
Juergen Hoeller
cb095132b1
Defensive String equals comparison in ClassReader
...
Issue: SPR-12382
2014-10-28 13:23:55 +01:00
Juergen Hoeller
b16048b061
ClassReader relies on autoboxing for reuse of cached primitive values
...
Issue: SPR-12365
2014-10-23 14:24:59 +02:00
Juergen Hoeller
2956049c30
Polishing
2014-10-22 17:04:50 +02:00
Juergen Hoeller
2b6f841b03
OrderUtils.getPriority uses AnnotationUtils.findAnnotation for consistent lookup rules and diagnostics
...
Issue: SPR-12357
2014-10-21 12:27:14 +02:00
Juergen Hoeller
47dde91763
Consistent use of logIntrospectionFailure
...
Issue: SPR-12325
2014-10-21 12:16:51 +02:00
Juergen Hoeller
8325b10080
Consistent formatting of license headers, package javadocs, and import declarations
2014-10-21 01:44:07 +02:00
Juergen Hoeller
716916b281
AnnotationUtils favors local composed annotations over interface annotations and consistently logs introspection failures via lazily initialized logger
...
Issue: SPR-12355
Issue: SPR-12325
Issue: SPR-12329
2014-10-20 21:47:47 +02:00
Juergen Hoeller
c7e7d11156
Polishing
2014-10-14 14:27:03 +02:00
Juergen Hoeller
70fec47944
Provider declaration for @Value method argument works again
...
Issue: SPR-12297
2014-10-06 18:08:19 +02:00
Juergen Hoeller
9d969587ab
CompositePropertySource extends EnumerablePropertySource now
...
Issue: SPR-12292
2014-10-02 20:19:32 +02:00
Juergen Hoeller
05c995cfb3
DecoratingClassLoader and its subclasses register themselves as parallel capable on Java 7+
...
Issue: SPR-12285
2014-10-02 14:33:13 +02:00
Juergen Hoeller
7d307b3853
Polishing
2014-09-30 20:17:58 +02:00
Stephane Nicoll
6f1acdd561
Optimize ResolvableType cache
...
Prior to this commit, the ResolvableType static cache was holding a lot
of duplicates for simple types. We are using too much metadata to compute
the key when the class has no generic information. so setFoo(String foo)
and setBar(String bar) would result in two entries in the cache because
the TypeProvider is different. On a very simple application 65% of the
entries in the cache were duplicate.
When the type is a Class with no generic information, the ResolvableType
instance is a simple wrapper around it so we might just as well not cache
it at all as the cost of finding it back from the cache is higher than
creating that simple wrapper.
This commit adds an explicit check; if the type is a simple Class we just
return a "resolved" ResolvableType instance for it. On a few test cases,
this reduces the size of the cache by 85%
Issue: SPR-12275
2014-09-30 18:01:40 +02:00
Brian Clozel
d293889bb3
Fix invalid PATH_WITHIN_HANDLER_MAPPING_ATTRIBUTE
...
Prior to this commit, `AntPathMatcher.extractPathWithinPattern` would
not process correctly `**` patterns and would only match *one* path
segment in the given path.
This commit changes `extractPathWithinPattern` to allow multiple path
segments to be matched against a single `**` pattern segment.
Issue: SPR-10515
2014-09-30 15:32:46 +02:00
Sam Brannen
a6c2d4595b
Polish Javadoc for BackOff implementations
2014-09-28 15:26:30 +02:00
Juergen Hoeller
e8486e2afe
Tracking ASM 5.0.4 development: Fix for ASM issue 317539
...
Issue: SPR-12255
2014-09-26 16:07:01 +02:00
Juergen Hoeller
1f3e195dac
Polishing
2014-09-25 17:00:45 +02:00
Juergen Hoeller
587a81617c
SystemEnvironmentPropertySource uses actual SecurityManager check and direct keySet access
...
Issue: SPR-12224
2014-09-24 17:56:38 +02:00
Juergen Hoeller
1936dee991
Replaced postProcessFindAllClassPathResourcesResult with doFindAllClassPathResources
...
Issue: SPR-12231
2014-09-22 17:31:03 +02:00
Sam Brannen
f27c7df004
Avoid Gradle compiler warnings
2014-09-21 21:23:54 +02:00
Phillip Webb
1947de3334
Provide subclass hooks in path matching resolver
...
Update PathMatchingResourcePatternResolver to include additional
protected methods that can be used by subclasses to optimize which
JARs are searched.
Issue: SPR-12231
2014-09-21 10:56:24 -07:00
Phillip Webb
c41ea96177
Optimize ReflectionUtils.isCglibRenamedMethod
...
Optimize ReflectionUtils.isCglibRenamedMethod by removing the regular
expression.
Issue: SPR-12227
2014-09-20 00:23:58 -07:00
Phillip Webb
752574de1d
Optimize SystemEnvPropertySource when possible
...
Update SystemEnvironmentPropertySource to attempt optimized Map lookups
first, and only fall-back to the defensive SecurityManager safe-mode
if these fail.
Issue: SPR-12224
2014-09-20 00:17:10 -07:00