Compare commits

...

382 Commits

Author SHA1 Message Date
Juergen Hoeller 2a268f2250 Consistent local vs external resolution of https schema references
Co-Authored-By: Sam Brannen <sbrannen@pivotal.io>

See gh-22504
2019-03-31 12:53:13 +02:00
Sam Brannen 41b3d6ab3c URL Cleanup - Fix broken tests
See gh-22676
2019-03-29 16:02:08 +01:00
Sam Brannen a7254ce7b9 URL Cleanup - upgrade to more modern Xalan namespace
See gh-22676
2019-03-29 16:01:59 +01:00
Sam Brannen 5d91a21914 URL Cleanup - fix undesirable code change
Namespace handlers are mapped based on the canonical names for XML
namespaces which in Spring do not use "https" as the scheme.

See gh-22676
2019-03-29 16:01:48 +01:00
Spring Operator da31930a29 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 1 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://gee.cs.oswego.edu/dl/concurrency-interest/ (200) with 1 occurrences could not be migrated:
   ([https](https://gee.cs.oswego.edu/dl/concurrency-interest/) result AnnotatedConnectException).
* [ ] http://hsqldb.org (200) with 1 occurrences could not be migrated:
   ([https](https://hsqldb.org) result SSLHandshakeException).
* [ ] http://jasperreports.sourceforge.net (200) with 2 occurrences could not be migrated:
   ([https](https://jasperreports.sourceforge.net) result AnnotatedConnectException).
* [ ] http://jasperreports.sourceforge.net/dtds/jasperreport.dtd (200) with 6 occurrences could not be migrated:
   ([https](https://jasperreports.sourceforge.net/dtds/jasperreport.dtd) 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 1 occurrences could not be migrated:
   ([https](https://jibx.sourceforge.net/) result AnnotatedConnectException).
* [ ] http://www.andykhan.com/jexcelapi/ (200) with 2 occurrences could not be migrated:
   ([https](https://www.andykhan.com/jexcelapi/) result ConnectTimeoutException).
* [ ] 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.jasperassistant.com (200) with 6 occurrences could not be migrated:
   ([https](https://www.jasperassistant.com) 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://xmlunit.sourceforge.net/ (200) with 3 occurrences could not be migrated:
   ([https](https://xmlunit.sourceforge.net/) result AnnotatedConnectException).
* [ ] http://cglib.sourceforge.net/apidocs (301) with 1 occurrences could not be migrated:
   ([https](https://cglib.sourceforge.net/apidocs) result AnnotatedConnectException).
* [ ] http://www.easymock.org (301) with 3 occurrences could not be migrated:
   ([https](https://www.easymock.org) result SSLHandshakeException).
* [ ] http://struts.sourceforge.net/struts-spring (301) with 2 occurrences could not be migrated:
   ([https](https://struts.sourceforge.net/struts-spring) result AnnotatedConnectException).
* [ ] http://foo.com/bar (301) with 4 occurrences could not be migrated:
   ([https](https://foo.com/bar) result SSLHandshakeException).
* [ ] http://foo.com/wrong (301) with 1 occurrences could not be migrated:
   ([https](https://foo.com/wrong) result SSLHandshakeException).
* [ ] http://www.caucho.com/hessian (302) with 6 occurrences could not be migrated:
   ([https](https://www.caucho.com/hessian) result SSLHandshakeException).
* [ ] http://www.jdiff.org (302) with 1 occurrences could not be migrated:
   ([https](https://www.jdiff.org) result ConnectTimeoutException).
* [ ] http://www.jpox.org (404) with 1 occurrences could not be migrated:
   ([https](https://www.jpox.org) result ClosedChannelException).

These URLs were fixed, but the https status was not OK. However, the https status was the same as the http request or http redirected to an https URL, so they were migrated. Your review is recommended.

* [ ] http://bugs.sun.com/view_bug.do?bug_id=6342411 (302) with 1 occurrences migrated to:
  https://bugs.java.com/view_bug.do?bug_id=6342411 ([https](https://bugs.sun.com/view_bug.do?bug_id=6342411) result SSLHandshakeException).
* [ ] http://bugs.sun.com/view_bug.do?bug_id=7023180 (302) with 2 occurrences migrated to:
  https://bugs.java.com/view_bug.do?bug_id=7023180 ([https](https://bugs.sun.com/view_bug.do?bug_id=7023180) result SSLHandshakeException).
* [ ] http://www.freemarker.org (301) with 2 occurrences migrated to:
  https://freemarker.apache.org/ ([https](https://www.freemarker.org) result ConnectTimeoutException).
* [ ] http://progit.org/book/ch5-2.html (301) with 1 occurrences migrated to:
  https://progit.org/book/ch5-2.html ([https](https://progit.org/book/ch5-2.html) result SSLHandshakeException).
* [ ] http://www.caucho.com/burlap (302) with 6 occurrences migrated to:
  https://www.caucho.com/burlap ([https](https://www.caucho.com/burlap) result SSLHandshakeException).
* [ ] http://192.168.28.42/1.jsp (ConnectTimeoutException) with 2 occurrences migrated to:
  https://192.168.28.42/1.jsp ([https](https://192.168.28.42/1.jsp) result ConnectTimeoutException).
* [ ] http://dcl.mathcs.emory.edu/util/backport-util-concurrent/ (ConnectTimeoutException) with 1 occurrences migrated to:
  https://dcl.mathcs.emory.edu/util/backport-util-concurrent/ ([https](https://dcl.mathcs.emory.edu/util/backport-util-concurrent/) 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://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5041784 (ReadTimeoutException) with 1 occurrences migrated to:
  https://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5041784 ([https](https://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5041784) result SSLHandshakeException).
* [ ] http://www.w3.org/TR/html4/loose.dtd (ReadTimeoutException) with 3 occurrences migrated to:
  https://www.w3.org/TR/html4/loose.dtd ([https](https://www.w3.org/TR/html4/loose.dtd) result ReadTimeoutException).
* [ ] http://arjen:foobar@java.sun.com:80/javase/6/docs/api/java/util/BitSet.html?foo=bar (UnknownHostException) with 5 occurrences migrated to:
  https://arjen:foobar@java.sun.com:80/javase/6/docs/api/java/util/BitSet.html?foo=bar ([https](https://arjen:foobar@java.sun.com:80/javase/6/docs/api/java/util/BitSet.html?foo=bar) result UnknownHostException).
* [ ] http://castor.codehaus.org/xml-mapping.html (UnknownHostException) with 1 occurrences migrated to:
  https://castor.codehaus.org/xml-mapping.html ([https](https://castor.codehaus.org/xml-mapping.html) result UnknownHostException).
* [ ] http://example.com&quot;,HttpMethod.GET (UnknownHostException) with 3 occurrences migrated to:
  https://example.com&quot;,HttpMethod.GET ([https](https://example.com&quot;,HttpMethod.GET) result UnknownHostException).
* [ ] http://groovy.codehaus.org (UnknownHostException) with 1 occurrences migrated to:
  https://groovy.codehaus.org ([https](https://groovy.codehaus.org) result UnknownHostException).
* [ ] http://jackson.codehaus.org/ (UnknownHostException) with 4 occurrences migrated to:
  https://jackson.codehaus.org/ ([https](https://jackson.codehaus.org/) result UnknownHostException).
* [ ] http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16014 (UnknownHostException) with 2 occurrences migrated to:
  https://nagoya.apache.org/bugzilla/show_bug.cgi?id=16014 ([https](https://nagoya.apache.org/bugzilla/show_bug.cgi?id=16014) result UnknownHostException).
* [ ] http://samples.springframework.org/order (UnknownHostException) with 2 occurrences migrated to:
  https://samples.springframework.org/order ([https](https://samples.springframework.org/order) result UnknownHostException).
* [ ] http://url.somewhere.com (UnknownHostException) with 24 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://ws.geonames.org/searchJSON?q=T (UnknownHostException) with 1 occurrences migrated to:
  https://ws.geonames.org/searchJSON?q=T ([https](https://ws.geonames.org/searchJSON?q=T) result UnknownHostException).
* [ ] http://ws.geonames.org/searchJSON?q=T%C5%8Dky%C5%8D&style=FULL&maxRows=300 (UnknownHostException) with 1 occurrences migrated to:
  https://ws.geonames.org/searchJSON?q=T%C5%8Dky%C5%8D&style=FULL&maxRows=300 ([https](https://ws.geonames.org/searchJSON?q=T%C5%8Dky%C5%8D&style=FULL&maxRows=300) result UnknownHostException).
* [ ] http://xstream.codehaus.org/ (UnknownHostException) with 1 occurrences migrated to:
  https://xstream.codehaus.org/ ([https](https://xstream.codehaus.org/) result UnknownHostException).
* [ ] http://bitworking.org/projects/URI-Templates/ (302) with 1 occurrences migrated to:
  https://bitworking.org/projects/URI-Templates/ ([https](https://bitworking.org/projects/URI-Templates/) result 404).
* [ ] http://book.git-scm.com/4_interactive_rebasing.html (301) with 1 occurrences migrated to:
  https://book.git-scm.com/4_interactive_rebasing.html ([https](https://book.git-scm.com/4_interactive_rebasing.html) 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/2 (404) with 1 occurrences migrated to:
  https://example.com/2 ([https](https://example.com/2) result 404).
* [ ] http://example.com/abc/ (404) with 4 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/bar (404) with 1 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/foo (404) with 2 occurrences migrated to:
  https://example.com/foo ([https](https://example.com/foo) result 404).
* [ ] http://example.com/foo/../bar (404) with 8 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 5 occurrences migrated to:
  https://example.com/hotel ([https](https://example.com/hotel) result 404).
* [ ] http://example.com/hotel%20list (404) with 2 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/hotel%2520list (404) with 1 occurrences migrated to:
  https://example.com/hotel%2520list ([https](https://example.com/hotel%2520list) 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 17 occurrences migrated to:
  https://example.com/hotels/ ([https](https://example.com/hotels/) result 404).
* [ ] http://example.com/hotels/1/bookings/42 (404) with 7 occurrences migrated to:
  https://example.com/hotels/1/bookings/42 ([https](https://example.com/hotels/1/bookings/42) result 404).
* [ ] http://example.com/hotels/42 (404) with 1 occurrences migrated to:
  https://example.com/hotels/42 ([https](https://example.com/hotels/42) result 404).
* [ ] http://example.com/hotels/42/bookings/21 (404) with 2 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/42/rooms/42 (404) with 1 occurrences migrated to:
  https://example.com/hotels/42/rooms/42 ([https](https://example.com/hotels/42/rooms/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/hotels/bookings (404) with 1 occurrences migrated to:
  https://example.com/hotels/bookings ([https](https://example.com/hotels/bookings) result 404).
* [ ] http://example.com/hotels/foo (404) with 1 occurrences migrated to:
  https://example.com/hotels/foo ([https](https://example.com/hotels/foo) 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?query (404) with 2 occurrences migrated to:
  https://example.com/path?query ([https](https://example.com/path?query) result 404).
* [ ] http://example.com/query=foo@bar (404) with 4 occurrences migrated to:
  https://example.com/query=foo@bar ([https](https://example.com/query=foo@bar) result 404).
* [ ] http://example.com/resource (404) with 3 occurrences migrated to:
  https://example.com/resource ([https](https://example.com/resource) 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.org/music/people (404) with 4 occurrences migrated to:
  https://example.org/music/people ([https](https://example.org/music/people) result 404).
* [ ] http://help.github.com/send-pull-requests (404) with 2 occurrences migrated to:
  https://help.github.com/send-pull-requests ([https](https://help.github.com/send-pull-requests) 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/hotels (404) with 2 occurrences migrated to:
  https://www.example.com/hotels ([https](https://www.example.com/hotels) 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://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.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/tips0243.html (404) with 1 occurrences migrated to:
  https://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/tips0243.html ([https](https://www.redbooks.ibm.com/Redbooks.nsf/RedbookAbstracts/tips0243.html) 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://search.twitter.com/search.atom?q= (410) with 1 occurrences migrated to:
  https://search.twitter.com/search.atom?q= ([https](https://search.twitter.com/search.atom?q=) result 410).
* [ ] http://search.twitter.com/search.atom?q=%23avatar (410) with 1 occurrences migrated to:
  https://search.twitter.com/search.atom?q=%23avatar ([https](https://search.twitter.com/search.atom?q=%23avatar) result 410).

These URLs were switched to an https URL with a 2xx status. While the status was successful, your review is still recommended.

* [ ] http://ant.apache.org with 1 occurrences migrated to:
  https://ant.apache.org ([https](https://ant.apache.org) result 200).
* [ ] http://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html with 3 occurrences migrated to:
  https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html ([https](https://docs.oracle.com/javaee/6/api/javax/servlet/http/HttpServletRequest.html) result 200).
* [ ] http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinPool.html with 1 occurrences migrated to:
  https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinPool.html ([https](https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/ForkJoinPool.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://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/jdbc/OracleConnection.html with 1 occurrences migrated to:
  https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/jdbc/OracleConnection.html ([https](https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/jdbc/OracleConnection.html) result 200).
* [ ] http://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/BLOB.html with 7 occurrences migrated to:
  https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/BLOB.html ([https](https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/BLOB.html) result 200).
* [ ] http://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/CLOB.html with 7 occurrences migrated to:
  https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/CLOB.html ([https](https://download.oracle.com/otn_hosted_doc/jdeveloper/905/jdbc-javadoc/oracle/sql/CLOB.html) 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://example.com with 64 occurrences migrated to:
  https://example.com ([https](https://example.com) result 200).
* [ ] http://example.com/ with 3 occurrences migrated to:
  https://example.com/ ([https](https://example.com/) 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?format=json&url=http://another.com?foo=bar with 2 occurrences migrated to:
  https://example.org?format=json&url=http://another.com?foo=bar ([https](https://example.org?format=json&url=https://another.com?foo=bar) result 200).
* [ ] http://goessner.net/articles/JsonPath/ with 8 occurrences migrated to:
  https://goessner.net/articles/JsonPath/ ([https](https://goessner.net/articles/JsonPath/) result 200).
* [ ] http://gradle.org with 1 occurrences migrated to:
  https://gradle.org ([https](https://gradle.org) result 200).
* [ ] http://h2database.com with 1 occurrences migrated to:
  https://h2database.com ([https](https://h2database.com) result 200).
* [ ] http://hc.apache.org/httpcomponents-client-ga/ with 1 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 2 occurrences migrated to:
  https://hibernate.org/ ([https](https://www.hibernate.org) result 200).
* [ ] http://ibatis.apache.org with 1 occurrences migrated to:
  https://ibatis.apache.org ([https](https://ibatis.apache.org) result 200).
* [ ] http://jira.pentaho.com/browse/PDI-5031 with 1 occurrences migrated to:
  https://jira.pentaho.com/browse/PDI-5031 ([https](https://jira.pentaho.com/browse/PDI-5031) 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 1 occurrences migrated to:
  https://poi.apache.org ([https](https://poi.apache.org) 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://stackoverflow.com/faq with 1 occurrences migrated to:
  https://stackoverflow.com/faq ([https](https://stackoverflow.com/faq) result 200).
* [ ] http://stackoverflow.com/questions/tagged/spring with 1 occurrences migrated to:
  https://stackoverflow.com/questions/tagged/spring ([https](https://stackoverflow.com/questions/tagged/spring) result 200).
* [ ] http://stackoverflow.com/questions/tagged/spring-mvc with 1 occurrences migrated to:
  https://stackoverflow.com/questions/tagged/spring-mvc ([https](https://stackoverflow.com/questions/tagged/spring-mvc) 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://struts.apache.org with 2 occurrences migrated to:
  https://struts.apache.org ([https](https://struts.apache.org) result 200).
* [ ] http://tiles.apache.org with 6 occurrences migrated to:
  https://tiles.apache.org ([https](https://tiles.apache.org) result 200).
* [ ] http://tomcat.apache.org/tomcat-5.5-doc/config/context.html with 1 occurrences migrated to:
  https://tomcat.apache.org/tomcat-5.5-doc/config/context.html ([https](https://tomcat.apache.org/tomcat-5.5-doc/config/context.html) result 200).
* [ ] http://tomcat.apache.org/tomcat-5.5-doc/config/loader.html with 1 occurrences migrated to:
  https://tomcat.apache.org/tomcat-5.5-doc/config/loader.html ([https](https://tomcat.apache.org/tomcat-5.5-doc/config/loader.html) result 200).
* [ ] http://tools.ietf.org/html/rfc1945 with 1 occurrences migrated to:
  https://tools.ietf.org/html/rfc1945 ([https](https://tools.ietf.org/html/rfc1945) result 200).
* [ ] http://tools.ietf.org/html/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 43 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/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 2 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/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/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://twitter.com/springframework with 1 occurrences migrated to:
  https://twitter.com/springframework ([https](https://twitter.com/springframework) result 200).
* [ ] http://velocity.apache.org with 2 occurrences migrated to:
  https://velocity.apache.org ([https](https://velocity.apache.org) result 200).
* [ ] http://vimeo.com/34436402 with 1 occurrences migrated to:
  https://vimeo.com/34436402 ([https](https://vimeo.com/34436402) 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://ehcache.sourceforge.net (301) with 1 occurrences migrated to:
  https://www.ehcache.org/ ([https](https://ehcache.sourceforge.net) 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/?q=Z with 2 occurrences migrated to:
  https://www.google.com/?q=Z ([https](https://www.google.com/?q=Z) result 200).
* [ ] http://www.google.com/?q=Z%C3%BCrich with 2 occurrences migrated to:
  https://www.google.com/?q=Z%C3%BCrich ([https](https://www.google.com/?q=Z%C3%BCrich) 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 2 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 15 occurrences migrated to:
  https://www.ietf.org/rfc/rfc3986.txt ([https](https://www.ietf.org/rfc/rfc3986.txt) result 200).
* [ ] http://jruby.sourceforge.net (302) with 1 occurrences migrated to:
  https://www.jruby.org/ ([https](https://jruby.sourceforge.net) result 200).
* [ ] http://www.lowagie.com/iText with 1 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://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.ow2.org/ with 1 occurrences migrated to:
  https://www.ow2.org/ ([https](https://www.ow2.org/) result 200).
* [ ] http://quartz-scheduler.org (301) with 1 occurrences migrated to:
  https://www.quartz-scheduler.org/ ([https](https://quartz-scheduler.org) 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 8 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/dtd/spring-beans.dtd with 1 occurrences migrated to:
  https://www.springframework.org/dtd/spring-beans.dtd ([https](https://www.springframework.org/dtd/spring-beans.dtd) result 200).
* [ ] http://www.springframework.org/schema/beans/spring-beans-2.0.xsd with 5 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 6 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 11 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 11 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/tool/spring-tool-2.0.xsd with 5 occurrences migrated to:
  https://www.springframework.org/schema/tool/spring-tool-2.0.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-2.0.xsd) result 200).
* [ ] http://www.springframework.org/schema/tool/spring-tool-2.5.xsd with 7 occurrences migrated to:
  https://www.springframework.org/schema/tool/spring-tool-2.5.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-2.5.xsd) result 200).
* [ ] http://www.springframework.org/schema/tool/spring-tool-3.0.xsd with 11 occurrences migrated to:
  https://www.springframework.org/schema/tool/spring-tool-3.0.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-3.0.xsd) result 200).
* [ ] http://www.springframework.org/schema/tool/spring-tool-3.1.xsd with 12 occurrences migrated to:
  https://www.springframework.org/schema/tool/spring-tool-3.1.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-3.1.xsd) result 200).
* [ ] http://www.springframework.org/schema/tool/spring-tool-3.2.xsd with 12 occurrences migrated to:
  https://www.springframework.org/schema/tool/spring-tool-3.2.xsd ([https](https://www.springframework.org/schema/tool/spring-tool-3.2.xsd) result 200).
* [ ] http://www.w3.org/2000/xmlns/ with 2 occurrences migrated to:
  https://www.w3.org/2000/xmlns/ ([https](https://www.w3.org/2000/xmlns/) result 200).
* [ ] http://www.w3.org/2004/08/xop/include with 2 occurrences migrated to:
  https://www.w3.org/2004/08/xop/include ([https](https://www.w3.org/2004/08/xop/include) result 200).
* [ ] http://www.w3.org/TR/2004/WD-soap12-mtom-20040608/ with 2 occurrences migrated to:
  https://www.w3.org/TR/2004/WD-soap12-mtom-20040608/ ([https](https://www.w3.org/TR/2004/WD-soap12-mtom-20040608/) result 200).
* [ ] http://www.w3.org/TR/2005/REC-xop10-20050125/ with 6 occurrences migrated to:
  https://www.w3.org/TR/2005/REC-xop10-20050125/ ([https](https://www.w3.org/TR/2005/REC-xop10-20050125/) result 200).
* [ ] http://www.w3.org/TR/xhtml1/diffs.html with 1 occurrences migrated to:
  https://www.w3.org/TR/xhtml1/diffs.html ([https](https://www.w3.org/TR/xhtml1/diffs.html) result 200).
* [ ] http://xmlbeans.apache.org/ with 1 occurrences migrated to:
  https://xmlbeans.apache.org/ ([https](https://xmlbeans.apache.org/) 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://asm.ow2.org with 1 occurrences migrated to:
  https://asm.ow2.org ([https](https://asm.ow2.org) result 301).
* [ ] http://asm.ow2.org/asm50/javadoc/user with 1 occurrences migrated to:
  https://asm.ow2.org/asm50/javadoc/user ([https](https://asm.ow2.org/asm50/javadoc/user) result 301).
* [ ] 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://blog.springsource.org with 1 occurrences migrated to:
  https://blog.springsource.org ([https](https://blog.springsource.org) result 301).
* [ ] http://build.springframework.org/browse/SPR-TRUNKQUICK-908 with 1 occurrences migrated to:
  https://build.springframework.org/browse/SPR-TRUNKQUICK-908 ([https](https://build.springframework.org/browse/SPR-TRUNKQUICK-908) result 301).
* [ ] http://code.google.com/p/gears/wiki/ResumableHttpRequestsProposal with 2 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/mybatis/ with 9 occurrences migrated to:
  https://code.google.com/p/mybatis/ ([https](https://code.google.com/p/mybatis/) result 301).
* [ ] http://code.google.com/p/xml-matchers/ with 4 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-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://db.apache.org/derby with 1 occurrences migrated to:
  https://db.apache.org/derby ([https](https://db.apache.org/derby) result 301).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api) result 301).
* [ ] http://static.springsource.org/spring-framework/docs/current/spring-framework-reference (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/spring-framework-reference ([https](https://static.springsource.org/spring-framework/docs/current/spring-framework-reference) result 301).
* [ ] http://forum.springsource.org (301) with 1 occurrences migrated to:
  https://forum.spring.io/ ([https](https://forum.springsource.org) 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://help.github.com/set-up-git-redirect with 1 occurrences migrated to:
  https://help.github.com/set-up-git-redirect ([https](https://help.github.com/set-up-git-redirect) result 301).
* [ ] http://jakarta.apache.org/commons/dbcp with 2 occurrences migrated to:
  https://jakarta.apache.org/commons/dbcp ([https](https://jakarta.apache.org/commons/dbcp) 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://jakarta.apache.org/commons/httpclient with 2 occurrences migrated to:
  https://jakarta.apache.org/commons/httpclient ([https](https://jakarta.apache.org/commons/httpclient) result 301).
* [ ] http://jakarta.apache.org/commons/lang/ with 1 occurrences migrated to:
  https://jakarta.apache.org/commons/lang/ ([https](https://jakarta.apache.org/commons/lang/) result 301).
* [ ] http://jakarta.apache.org/commons/logging.html with 1 occurrences migrated to:
  https://jakarta.apache.org/commons/logging.html ([https](https://jakarta.apache.org/commons/logging.html) 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-6011 with 1 occurrences migrated to:
  https://jira.springframework.org/browse/SPR-6011 ([https](https://jira.springframework.org/browse/SPR-6011) 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://jira.springsource.org/browse/SPR with 1 occurrences migrated to:
  https://jira.springsource.org/browse/SPR ([https](https://jira.springsource.org/browse/SPR) result 301).
* [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-2645 with 1 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/SPR-2645 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2645) 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-2728 with 3 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/SPR-2728 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2728) 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-2788 with 5 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/SPR-2788 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2788) 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-2866 with 3 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/SPR-2866 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-2866) result 301).
* [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3026 with 1 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/SPR-3026 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3026) result 301).
* [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3038 with 1 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/SPR-3038 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3038) result 301).
* [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3127 with 2 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-3264 with 2 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/SPR-3264 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3264) result 301).
* [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-3550 with 1 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/SPR-3550 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3550) 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 8 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-3960 with 3 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/SPR-3960 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-3960) result 301).
* [ ] http://opensource.atlassian.com/projects/spring/browse/SPR-4005 with 1 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/browse/SPR-4005 ([https](https://opensource.atlassian.com/projects/spring/browse/SPR-4005) 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 3 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://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://springsource.org/projects with 1 occurrences migrated to:
  https://springsource.org/projects ([https](https://springsource.org/projects) result 301).
* [ ] http://www.atomenabled.org/developers/syndication/ with 1 occurrences migrated to:
  https://www.atomenabled.org/developers/syndication/ ([https](https://www.atomenabled.org/developers/syndication/) result 301).
* [ ] http://www.google.com/ig/calculator?q=1USD=?EUR with 1 occurrences migrated to:
  https://www.google.com/ig/calculator?q=1USD=?EUR ([https](https://www.google.com/ig/calculator?q=1USD=?EUR) result 301).
* [ ] http://www.lifl.fr/~dumoulin/tiles with 1 occurrences migrated to:
  https://www.lifl.fr/~dumoulin/tiles ([https](https://www.lifl.fr/~dumoulin/tiles) result 301).
* [ ] http://www.mnot.net/cache_docs with 2 occurrences migrated to:
  https://www.mnot.net/cache_docs ([https](https://www.mnot.net/cache_docs) result 301).
* [ ] http://www.spring.io with 1 occurrences migrated to:
  https://www.spring.io ([https](https://www.spring.io) 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://www.springframework.org/webflow with 1 occurrences migrated to:
  https://www.springframework.org/webflow ([https](https://www.springframework.org/webflow) result 301).
* [ ] http://www.springsource.org/news-events with 1 occurrences migrated to:
  https://www.springsource.org/news-events ([https](https://www.springsource.org/news-events) result 301).
* [ ] http://www.springsource.org/spring-framework with 1 occurrences migrated to:
  https://www.springsource.org/spring-framework ([https](https://www.springsource.org/spring-framework) 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://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/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://java.sun.com with 3 occurrences migrated to:
  https://java.sun.com ([https](https://java.sun.com) result 302).
* [ ] http://java.sun.com/docs/books/jls/third_edition/html/conversions.html with 1 occurrences migrated to:
  https://java.sun.com/docs/books/jls/third_edition/html/conversions.html ([https](https://java.sun.com/docs/books/jls/third_edition/html/conversions.html) result 302).
* [ ] http://java.sun.com/docs/books/jls/third_edition/html/expressions.html with 1 occurrences migrated to:
  https://java.sun.com/docs/books/jls/third_edition/html/expressions.html ([https](https://java.sun.com/docs/books/jls/third_edition/html/expressions.html) result 302).
* [ ] http://java.sun.com/j2se/ with 2 occurrences migrated to:
  https://java.sun.com/j2se/ ([https](https://java.sun.com/j2se/) result 302).
* [ ] http://java.sun.com/j2se/1.3/ with 4 occurrences migrated to:
  https://java.sun.com/j2se/1.3/ ([https](https://java.sun.com/j2se/1.3/) result 302).
* [ ] http://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html with 1 occurrences migrated to:
  https://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html ([https](https://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html) result 302).
* [ ] http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html with 1 occurrences migrated to:
  https://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html ([https](https://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html) result 302).
* [ ] http://java.sun.com/j2se/javadoc with 1 occurrences migrated to:
  https://java.sun.com/j2se/javadoc ([https](https://java.sun.com/j2se/javadoc) result 302).
* [ ] http://java.sun.com/j2se/javadoc/ with 1 occurrences migrated to:
  https://java.sun.com/j2se/javadoc/ ([https](https://java.sun.com/j2se/javadoc/) result 302).
* [ ] http://java.sun.com/j2se/javadoc/faq.html with 1 occurrences migrated to:
  https://java.sun.com/j2se/javadoc/faq.html ([https](https://java.sun.com/j2se/javadoc/faq.html) result 302).
* [ ] http://java.sun.com/webservices/jaxb/ with 1 occurrences migrated to:
  https://java.sun.com/webservices/jaxb/ ([https](https://java.sun.com/webservices/jaxb/) result 302).
* [ ] http://java.sun.com/xml/ns/j2ee/connector_1_5.xsd with 1 occurrences migrated to:
  https://java.sun.com/xml/ns/j2ee/connector_1_5.xsd ([https](https://java.sun.com/xml/ns/j2ee/connector_1_5.xsd) result 302).
* [ ] http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd with 2 occurrences migrated to:
  https://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd ([https](https://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd) result 302).
* [ ] http://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://springsource.com/support/springsupport with 1 occurrences migrated to:
  https://springsource.com/support/springsupport ([https](https://springsource.com/support/springsupport) result 302).
* [ ] http://twitter.com/springframework/team/members with 1 occurrences migrated to:
  https://twitter.com/springframework/team/members ([https](https://twitter.com/springframework/team/members) 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.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://anotherHost/mvc-showcase/data/param?foo=123 with 1 occurrences
* http://apache.org/xml/features/disallow-doctype-decl with 14 occurrences
* http://java.sun.com/xml/jaxp/properties/schemaLanguage with 1 occurrences
* http://java.sun.com/xml/ns/j2ee with 6 occurrences
* http://java.sun.com/xml/stream/properties/report-cdata-event with 1 occurrences
* http://jaxws.remoting.springframework.org/ with 4 occurrences
* http://localhost with 3 occurrences
* http://localhost/contextPath/main/path with 1 occurrences
* http://localhost/mvc-showcase with 1 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/query= with 1 occurrences
* http://localhost/query=foo@bar with 1 occurrences
* http://localhost:7070/example/adminhandle.vm with 1 occurrences
* http://localhost:7070/example/bingo.html with 1 occurrences
* http://localhost:8080 with 28 occurrences
* http://localhost:8080/ with 3 occurrences
* http://localhost:8080/OrderService with 3 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/test/ with 1 occurrences
* http://localhost:8080/test/Jason/logo.jpg with 1 occurrences
* http://localhost:8889/hessian with 1 occurrences
* http://localhost:9090 with 18 occurrences
* http://localhost:9999/ with 1 occurrences
* http://localhost:9999/OrderService?wsdl with 4 occurrences
* http://localhosta/testbean with 6 occurrences
* http://myUrl1 with 6 occurrences
* http://myserver with 1 occurrences
* http://myurl with 12 occurrences
* http://samples.springframework.org/flight with 42 occurrences
* http://springframework.org/spring-ws with 17 occurrences
* http://tiles.apache.org/tags-tiles with 1 occurrences
* http://www.foo.com/schema/component with 2 occurrences
* http://www.springframework.org/schema/aop with 10 occurrences
* http://www.springframework.org/schema/beans with 100 occurrences
* http://www.springframework.org/schema/beans/test with 2 occurrences
* http://www.springframework.org/schema/cache with 4 occurrences
* http://www.springframework.org/schema/context with 8 occurrences
* http://www.springframework.org/schema/jdbc with 6 occurrences
* http://www.springframework.org/schema/jee with 10 occurrences
* http://www.springframework.org/schema/jms with 8 occurrences
* http://www.springframework.org/schema/lang with 11 occurrences
* http://www.springframework.org/schema/mvc with 6 occurrences
* http://www.springframework.org/schema/oxm with 8 occurrences
* http://www.springframework.org/schema/task with 6 occurrences
* http://www.springframework.org/schema/tool with 106 occurrences
* http://www.springframework.org/schema/tx with 10 occurrences
* http://www.springframework.org/schema/util with 12 occurrences
* http://www.springframework.org/tags with 1 occurrences
* http://www.springframework.org/tags/form with 1 occurrences
* http://www.w3.org/1999/XSL/Transform with 7 occurrences
* http://www.w3.org/2001/XMLSchema with 64 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 12 occurrences
* http://www.w3.org/2005/Atom with 2 occurrences
* http://www.w3.org/TR/html4/charset.html with 5 occurrences
* http://www.w3.org/TR/html4/sgml/entities.html with 8 occurrences
* http://www.w3.org/XML/1998/namespace with 10 occurrences
* http://xml.org/sax/features/external-general-entities with 14 occurrences
* http://xml.org/sax/features/is-standalone with 1 occurrences
* http://xml.org/sax/features/namespace-prefixes with 11 occurrences
* http://xml.org/sax/features/namespaces with 8 occurrences
* http://xml.org/sax/features/namespaces-prefixes with 1 occurrences
* http://xml.org/sax/properties/lexical-handler with 9 occurrences

Closes gh-22676
2019-03-29 16:01:23 +01:00
Sam Brannen 28e31c23cf URL Cleanup - Fix broken tests
See gh-22670
2019-03-28 19:14:54 +01:00
Spring Operator d5f16204fc 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://dbunit.sourceforge.net/ (200) with 1 occurrences could not be migrated:
   ([https](https://dbunit.sourceforge.net/) result AnnotatedConnectException).
* [ ] http://grinder.sourceforge.net/ (200) with 1 occurrences could not be migrated:
   ([https](https://grinder.sourceforge.net/) result AnnotatedConnectException).
* [ ] http://jasperreports.sourceforge.net (200) with 1 occurrences could not be migrated:
   ([https](https://jasperreports.sourceforge.net) result AnnotatedConnectException).
* [ ] http://jibx.sourceforge.net/ (200) with 1 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://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://schemas.xmlsoap.org/soap/encoding/ (200) with 1 occurrences could not be migrated:
   ([https](https://schemas.xmlsoap.org/soap/encoding/) result AnnotatedConnectException).
* [ ] http://www.beanshell.org/ (200) with 1 occurrences could not be migrated:
   ([https](https://www.beanshell.org/) result SSLHandshakeException).
* [ ] http://www.caucho.com/resin-3.0/xml/jaxp.xtp (200) with 2 occurrences could not be migrated:
   ([https](https://www.caucho.com/resin-3.0/xml/jaxp.xtp) result SSLHandshakeException).
* [ ] http://www.datanucleus.org/ (200) with 2 occurrences could not be migrated:
   ([https](https://www.datanucleus.org/) result AnnotatedConnectException).
* [ ] http://www.hsqldb.org (200) with 1 occurrences could not be migrated:
   ([https](https://www.hsqldb.org) result SSLHandshakeException).
* [ ] 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.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://www.objectmentor.com/resources/articles/ocp.pdf (302) with 1 occurrences could not be migrated:
   ([https](https://www.objectmentor.com/resources/articles/ocp.pdf) result ConnectTimeoutException).
* [ ] http://blog.arendsen.net/index.php/2006/10/05/on-the-servicelocatorfactorybean-dlas-and-the-sustainability-of-code-and-design/ (403) with 1 occurrences could not be migrated:
   ([https](https://blog.arendsen.net/index.php/2006/10/05/on-the-servicelocatorfactorybean-dlas-and-the-sustainability-of-code-and-design/) result SSLHandshakeException).
* [ ] http://howardlewisship.com/blog/ (404) with 1 occurrences could not be migrated:
   ([https](https://howardlewisship.com/blog/) result SSLHandshakeException).
* [ ] http://howardlewisship.com/tapestry-javaforge/tapestry-spring/ (404) with 1 occurrences could not be migrated:
   ([https](https://howardlewisship.com/tapestry-javaforge/tapestry-spring/) result SSLHandshakeException).
* [ ] http://www.foo.com/schema/component/component.xsd (404) with 2 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.mularien.com/blog/2008/04/24/how-to-reference-and-use-jstl-in-your-web-application/ (404) with 1 occurrences could not be migrated:
   ([https](https://www.mularien.com/blog/2008/04/24/how-to-reference-and-use-jstl-in-your-web-application/) 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://www.freemarker.org (301) with 2 occurrences migrated to:
  https://freemarker.apache.org/ ([https](https://www.freemarker.org) result ConnectTimeoutException).
* [ ] http://www.caucho.com/ (302) with 1 occurrences migrated to:
  https://www.caucho.com/ ([https](https://www.caucho.com/) result SSLHandshakeException).
* [ ] http://www.caucho.com (302) with 1 occurrences migrated to:
  https://www.caucho.com/ ([https](https://www.caucho.com) result SSLHandshakeException).
* [ ] http://springide.org/blog/ (AnnotatedConnectException) with 1 occurrences migrated to:
  https://springide.org/blog/ ([https](https://springide.org/blog/) result AnnotatedConnectException).
* [ ] http://springide.org/project/wiki/SpringideInstall (AnnotatedConnectException) with 1 occurrences migrated to:
  https://springide.org/project/wiki/SpringideInstall ([https](https://springide.org/project/wiki/SpringideInstall) result AnnotatedConnectException).
* [ ] http://eclipse-plugins.2y.net/eclipse/plugins.jsp?category=XML (ConnectTimeoutException) with 1 occurrences migrated to:
  https://eclipse-plugins.2y.net/eclipse/plugins.jsp?category=XML ([https](https://eclipse-plugins.2y.net/eclipse/plugins.jsp?category=XML) result ConnectTimeoutException).
* [ ] http://wiki.opensymphony.com/display/WW/WebWork (ConnectTimeoutException) with 1 occurrences migrated to:
  https://wiki.opensymphony.com/display/WW/WebWork ([https](https://wiki.opensymphony.com/display/WW/WebWork) result ConnectTimeoutException).
* [ ] 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://www.opensymphony.com/quartz/JobSchedulingData (ConnectTimeoutException) with 2 occurrences migrated to:
  https://www.opensymphony.com/quartz/JobSchedulingData ([https](https://www.opensymphony.com/quartz/JobSchedulingData) result ConnectTimeoutException).
* [ ] http://www.opensymphony.com/quartz/xml/job_scheduling_data_1_5.xsd (ConnectTimeoutException) with 1 occurrences migrated to:
  https://www.opensymphony.com/quartz/xml/job_scheduling_data_1_5.xsd ([https](https://www.opensymphony.com/quartz/xml/job_scheduling_data_1_5.xsd) result ConnectTimeoutException).
* [ ] http://www.opensymphony.com/webwork/ (ConnectTimeoutException) with 3 occurrences migrated to:
  https://www.opensymphony.com/webwork/ ([https](https://www.opensymphony.com/webwork/) result ConnectTimeoutException).
* [ ] http://www.opensymphony.com/webwork/wikidocs/IoC%20Overview.html (ConnectTimeoutException) with 1 occurrences migrated to:
  https://www.opensymphony.com/webwork/wikidocs/IoC%20Overview.html ([https](https://www.opensymphony.com/webwork/wikidocs/IoC%20Overview.html) result ConnectTimeoutException).
* [ ] http://www.opensymphony.com/webwork/wikidocs/Spring.html (ConnectTimeoutException) with 1 occurrences migrated to:
  https://www.opensymphony.com/webwork/wikidocs/Spring.html ([https](https://www.opensymphony.com/webwork/wikidocs/Spring.html) result ConnectTimeoutException).
* [ ] http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd (ReadTimeoutException) with 5 occurrences migrated to:
  https://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd ([https](https://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd) result ReadTimeoutException).
* [ ] http://castor.codehaus.org/mapping.dtd (UnknownHostException) with 1 occurrences migrated to:
  https://castor.codehaus.org/mapping.dtd ([https](https://castor.codehaus.org/mapping.dtd) result UnknownHostException).
* [ ] http://castor.codehaus.org/xml-framework.html (UnknownHostException) with 1 occurrences migrated to:
  https://castor.codehaus.org/xml-framework.html ([https](https://castor.codehaus.org/xml-framework.html) result UnknownHostException).
* [ ] http://castor.codehaus.org/xml-mapping.html (UnknownHostException) with 1 occurrences migrated to:
  https://castor.codehaus.org/xml-mapping.html ([https](https://castor.codehaus.org/xml-mapping.html) result UnknownHostException).
* [ ] http://groovy.codehaus.org/ (UnknownHostException) with 1 occurrences migrated to:
  https://groovy.codehaus.org/ ([https](https://groovy.codehaus.org/) result UnknownHostException).
* [ ] http://groovy.codehaus.org/Operators (UnknownHostException) with 2 occurrences migrated to:
  https://groovy.codehaus.org/Operators ([https](https://groovy.codehaus.org/Operators) result UnknownHostException).
* [ ] http://jruby.codehaus.org/ (UnknownHostException) with 1 occurrences migrated to:
  https://jruby.codehaus.org/ ([https](https://jruby.codehaus.org/) result UnknownHostException).
* [ ] http://lingo.codehaus.org/ (UnknownHostException) with 1 occurrences migrated to:
  https://lingo.codehaus.org/ ([https](https://lingo.codehaus.org/) result UnknownHostException).
* [ ] http://myserver/logo.png (UnknownHostException) with 1 occurrences migrated to:
  https://myserver/logo.png ([https](https://myserver/logo.png) result UnknownHostException).
* [ ] http://xstream.codehaus.org/ (UnknownHostException) with 1 occurrences migrated to:
  https://xstream.codehaus.org/ ([https](https://xstream.codehaus.org/) result UnknownHostException).
* [ ] http://bitworking.org/projects/URI-Templates/ (302) with 1 occurrences migrated to:
  https://bitworking.org/projects/URI-Templates/ ([https](https://bitworking.org/projects/URI-Templates/) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.BUILD-SNAPSHOT/api/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMapping.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.BUILD-SNAPSHOT/api/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMapping.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.BUILD-SNAPSHOT/api/org/springframework/web/servlet/mvc/method/annotation/RequestMappingHandlerMapping.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/ServletAnnotationMappingUtils.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/ServletAnnotationMappingUtils.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/ServletAnnotationMappingUtils.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/ui/velocity/VelocityEngineFactory.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/ui/velocity/VelocityEngineFactory.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/ui/velocity/VelocityEngineFactory.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/jsf/DelegatingVariableResolver.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/jsf/DelegatingVariableResolver.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/jsf/DelegatingVariableResolver.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/ActionSupport.html (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/ActionSupport.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/ActionSupport.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/ContextLoaderPlugIn.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/ContextLoaderPlugIn.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/ContextLoaderPlugIn.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DelegatingActionProxy.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DelegatingActionProxy.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DelegatingActionProxy.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DelegatingRequestProcessor.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DelegatingRequestProcessor.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DelegatingRequestProcessor.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DelegatingTilesRequestProcessor.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DelegatingTilesRequestProcessor.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DelegatingTilesRequestProcessor.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DispatchActionSupport.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DispatchActionSupport.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/DispatchActionSupport.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/LookupDispatchActionSupport.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/LookupDispatchActionSupport.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/LookupDispatchActionSupport.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/MappingDispatchActionSupport.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/MappingDispatchActionSupport.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/struts/MappingDispatchActionSupport.html) result 404).
* [ ] http://static.springsource.org/spring/docs/current/api/org/springframework/context/access/ContextSingletonBeanFactoryLocator.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/api/org/springframework/context/access/ContextSingletonBeanFactoryLocator.html ([https](https://static.springsource.org/spring/docs/current/api/org/springframework/context/access/ContextSingletonBeanFactoryLocator.html) result 404).
* [ ] http://static.springsource.org/spring/docs/current/api/org/springframework/context/support/ClassPathXmlApplicationContext.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/api/org/springframework/context/support/ClassPathXmlApplicationContext.html ([https](https://static.springsource.org/spring/docs/current/api/org/springframework/context/support/ClassPathXmlApplicationContext.html) result 404).
* [ ] http://static.springsource.org/spring/docs/current/api/org/springframework/context/support/FileSystemXmlApplicationContext.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/api/org/springframework/context/support/FileSystemXmlApplicationContext.html ([https](https://static.springsource.org/spring/docs/current/api/org/springframework/context/support/FileSystemXmlApplicationContext.html) result 404).
* [ ] http://static.springsource.org/spring/docs/current/api/org/springframework/context/support/SimpleThreadScope.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/api/org/springframework/context/support/SimpleThreadScope.html ([https](https://static.springsource.org/spring/docs/current/api/org/springframework/context/support/SimpleThreadScope.html) result 404).
* [ ] http://static.springsource.org/spring/docs/current/api/org/springframework/oxm/xstream/XStreamMarshaller.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/api/org/springframework/oxm/xstream/XStreamMarshaller.html ([https](https://static.springsource.org/spring/docs/current/api/org/springframework/oxm/xstream/XStreamMarshaller.html) result 404).
* [ ] http://static.springsource.org/spring/docs/current/api/org/springframework/web/client/RestTemplate.html (301) with 8 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/api/org/springframework/web/client/RestTemplate.html ([https](https://static.springsource.org/spring/docs/current/api/org/springframework/web/client/RestTemplate.html) result 404).
* [ ] http://example.com/hotel (404) with 1 occurrences migrated to:
  https://example.com/hotel ([https](https://example.com/hotel) result 404).
* [ ] http://example.com/hotel%20list (404) with 2 occurrences migrated to:
  https://example.com/hotel%20list ([https](https://example.com/hotel%20list) result 404).
* [ ] http://example.com/hotel%2520list (404) with 1 occurrences migrated to:
  https://example.com/hotel%2520list ([https](https://example.com/hotel%2520list) result 404).
* [ ] http://example.com/hotels/ (404) with 6 occurrences migrated to:
  https://example.com/hotels/ ([https](https://example.com/hotels/) result 404).
* [ ] http://example.com/hotels/1/bookings (404) with 1 occurrences migrated to:
  https://example.com/hotels/1/bookings ([https](https://example.com/hotels/1/bookings) result 404).
* [ ] http://host.com/outsideOfficeHours.html (404) with 1 occurrences migrated to:
  https://host.com/outsideOfficeHours.html ([https](https://host.com/outsideOfficeHours.html) result 404).
* [ ] http://repository.springsource.com/maven/bundles/release/&lt;/url&gt (404) with 1 occurrences migrated to:
  https://repository.springsource.com/maven/bundles/release/&lt;/url&gt ([https](https://repository.springsource.com/maven/bundles/release/&lt;/url&gt) result 404).
* [ ] http://blog.springsource.com/2009/03/16/adding-an-atom-view-to-an-application-using-springs-rest-support/ (301) with 1 occurrences migrated to:
  https://spring.io/blog/2009/03/16/adding-an-atom-view-to-an-application-using-springs-rest-support/ ([https](https://blog.springsource.com/2009/03/16/adding-an-atom-view-to-an-application-using-springs-rest-support/) result 404).
* [ ] http://blog.springsource.com/2011/02/23/spring-3-1-m1-caching/ (301) with 1 occurrences migrated to:
  https://spring.io/blog/2011/02/23/spring-3-1-m1-caching/ ([https](https://blog.springsource.com/2011/02/23/spring-3-1-m1-caching/) result 404).
* [ ] http://www.example.com/users/ (404) with 1 occurrences migrated to:
  https://www.example.com/users/ ([https](https://www.example.com/users/) result 404).
* [ ] http://www.example.com/users/fred (404) with 3 occurrences migrated to:
  https://www.example.com/users/fred ([https](https://www.example.com/users/fred) result 404).
* [ ] http://www.example.com/users/fred.pdf (404) with 1 occurrences migrated to:
  https://www.example.com/users/fred.pdf ([https](https://www.example.com/users/fred.pdf) result 404).
* [ ] http://www.example.com/users/fred.xml (404) with 1 occurrences migrated to:
  https://www.example.com/users/fred.xml ([https](https://www.example.com/users/fred.xml) result 404).
* [ ] 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).
* [ ] http://www.springframework.org/schema/jdbc/spring-cache.xsd (404) with 1 occurrences migrated to:
  https://www.springframework.org/schema/jdbc/spring-cache.xsd ([https](https://www.springframework.org/schema/jdbc/spring-cache.xsd) 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://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://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/deprecated-list.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/deprecated-list.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/deprecated-list.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/beans/factory/config/BeanReferenceFactoryBean.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/beans/factory/config/BeanReferenceFactoryBean.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/beans/factory/config/BeanReferenceFactoryBean.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/beans/factory/config/CommonsLogFactoryBean.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/beans/factory/config/CommonsLogFactoryBean.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/beans/factory/config/CommonsLogFactoryBean.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/ejb/support/package-summary.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/ejb/support/package-summary.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/ejb/support/package-summary.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/http/HttpStatus.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/http/HttpStatus.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/http/HttpStatus.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/http/converter/xml/XmlAwareFormHttpMessageConverter.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/http/converter/xml/XmlAwareFormHttpMessageConverter.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/http/converter/xml/XmlAwareFormHttpMessageConverter.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/instrument/classloading/oc4j/OC4JLoadTimeWeaver.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/instrument/classloading/oc4j/OC4JLoadTimeWeaver.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/instrument/classloading/oc4j/OC4JLoadTimeWeaver.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/jmx/support/MBeanRegistrationSupport.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/jmx/support/MBeanRegistrationSupport.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/jmx/support/MBeanRegistrationSupport.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/orm/ibatis/package-summary.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/orm/ibatis/package-summary.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/orm/ibatis/package-summary.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/orm/jpa/vendor/TopLinkJpaDialect.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/orm/jpa/vendor/TopLinkJpaDialect.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/orm/jpa/vendor/TopLinkJpaDialect.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/orm/jpa/vendor/TopLinkJpaVendorAdapter.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/orm/jpa/vendor/TopLinkJpaVendorAdapter.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/orm/jpa/vendor/TopLinkJpaVendorAdapter.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/scheduling/backportconcurrent/package-summary.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/scheduling/backportconcurrent/package-summary.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/scheduling/backportconcurrent/package-summary.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/context/ContextConfigurationAttributes.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/context/ContextConfigurationAttributes.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/context/ContextConfigurationAttributes.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/context/junit4/AbstractTransactionalJUnit4SpringContextTests.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/context/junit4/AbstractTransactionalJUnit4SpringContextTests.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/context/junit4/AbstractTransactionalJUnit4SpringContextTests.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/context/testng/AbstractTransactionalTestNGSpringContextTests.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/context/testng/AbstractTransactionalTestNGSpringContextTests.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/context/testng/AbstractTransactionalTestNGSpringContextTests.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/jdbc/SimpleJdbcTestUtils.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/jdbc/SimpleJdbcTestUtils.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/test/jdbc/SimpleJdbcTestUtils.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/transaction/interceptor/TransactionAspectUtils.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/transaction/interceptor/TransactionAspectUtils.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/transaction/interceptor/TransactionAspectUtils.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/transaction/jta/OC4JJtaTransactionManager.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/transaction/jta/OC4JJtaTransactionManager.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/transaction/jta/OC4JJtaTransactionManager.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/ui/velocity/CommonsLoggingLogSystem.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/ui/velocity/CommonsLoggingLogSystem.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/ui/velocity/CommonsLoggingLogSystem.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/ui/velocity/VelocityEngineUtils.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/ui/velocity/VelocityEngineUtils.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/ui/velocity/VelocityEngineUtils.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/util/CachingMapDecorator.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/util/CachingMapDecorator.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/util/CachingMapDecorator.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/jsf/DelegatingVariableResolver.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/jsf/DelegatingVariableResolver.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/jsf/DelegatingVariableResolver.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/jsf/SpringBeanVariableResolver.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/jsf/SpringBeanVariableResolver.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/jsf/SpringBeanVariableResolver.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerAdapter.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/AnnotationMethodHandlerExceptionResolver.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/DefaultAnnotationHandlerMapping.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/DefaultAnnotationHandlerMapping.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/mvc/annotation/DefaultAnnotationHandlerMapping.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/servlet/view/ContentNegotiatingViewResolver.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/util/ExpressionEvaluationUtils.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/util/ExpressionEvaluationUtils.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/util/ExpressionEvaluationUtils.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/util/UriUtils.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/util/UriUtils.html ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RELEASE/javadoc-api/org/springframework/web/util/UriUtils.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/BeanFactory.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/BeanFactory.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/BeanFactory.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/AutowiredAnnotationBeanPostProcessor.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/CustomAutowireConfigurer.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/CustomAutowireConfigurer.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/CustomAutowireConfigurer.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/RequiredAnnotationBeanPostProcessor.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/RequiredAnnotationBeanPostProcessor.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/annotation/RequiredAnnotationBeanPostProcessor.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/config/FieldRetrievingFactoryBean.html (301) with 3 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/config/FieldRetrievingFactoryBean.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/config/FieldRetrievingFactoryBean.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/config/Scope.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/config/Scope.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/config/Scope.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/support/BeanNameGenerator.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/support/BeanNameGenerator.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/beans/factory/support/BeanNameGenerator.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationContext.html (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationContext.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/context/ApplicationContext.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/ScopeMetadataResolver.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/ScopeMetadataResolver.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/ScopeMetadataResolver.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/jca/context/SpringContextResourceAdapter.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jca/context/SpringContextResourceAdapter.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/jca/context/SpringContextResourceAdapter.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/jndi/support/SimpleJndiBeanFactory.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/jndi/support/SimpleJndiBeanFactory.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/jndi/support/SimpleJndiBeanFactory.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/orm/jpa/support/PersistenceAnnotationBeanPostProcessor.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/quartz/SchedulerFactoryBean.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/quartz/SchedulerFactoryBean.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/scheduling/quartz/SchedulerFactoryBean.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/validation/DefaultMessageCodesResolver.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/DefaultMessageCodesResolver.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/validation/DefaultMessageCodesResolver.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/validation/MessageCodesResolver.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/validation/MessageCodesResolver.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/validation/MessageCodesResolver.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/context/ContextLoaderListener.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/ContextLoaderListener.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/context/ContextLoaderListener.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/context/WebApplicationContext.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/WebApplicationContext.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/context/WebApplicationContext.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/context/support/WebApplicationContextUtils.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/context/support/WebApplicationContextUtils.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/context/support/WebApplicationContextUtils.html) result 200).
* [ ] http://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/jsf/FacesContextUtils.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/jsf/FacesContextUtils.html ([https](https://static.springsource.org/spring-framework/docs/current/javadoc-api/org/springframework/web/jsf/FacesContextUtils.html) result 200).
* [ ] http://static.springsource.org/spring-gemfire/docs/1.0.0.RELEASE/reference/html/ (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-gemfire/docs/1.0.0.RELEASE/reference/html/ ([https](https://static.springsource.org/spring-gemfire/docs/1.0.0.RELEASE/reference/html/) result 200).
* [ ] http://static.springsource.org/spring-security/site/ (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-security/site/ ([https](https://static.springsource.org/spring-security/site/) 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/Cache with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Cache ([https](https://en.wikipedia.org/wiki/Cache) result 200).
* [ ] http://en.wikipedia.org/wiki/Content_negotiation with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Content_negotiation ([https](https://en.wikipedia.org/wiki/Content_negotiation) result 200).
* [ ] http://en.wikipedia.org/wiki/HTTP_ETag with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/HTTP_ETag ([https](https://en.wikipedia.org/wiki/HTTP_ETag) result 200).
* [ ] http://en.wikipedia.org/wiki/Internet_media_type with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Internet_media_type ([https](https://en.wikipedia.org/wiki/Internet_media_type) 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://example.com with 1 occurrences migrated to:
  https://example.com ([https](https://example.com) result 200).
* [ ] http://www.hibernate.org/ (301) with 1 occurrences migrated to:
  https://hibernate.org/ ([https](https://www.hibernate.org/) 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://ibatis.apache.org/ with 1 occurrences migrated to:
  https://ibatis.apache.org/ ([https](https://ibatis.apache.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://jcp.org/en/jsr/detail?id=303 with 1 occurrences migrated to:
  https://jcp.org/en/jsr/detail?id=303 ([https](https://jcp.org/en/jsr/detail?id=303) result 200).
* [ ] http://logback.qos.ch with 1 occurrences migrated to:
  https://logback.qos.ch ([https](https://logback.qos.ch) result 200).
* [ ] http://martinfowler.com/articles/injection.html with 2 occurrences migrated to:
  https://martinfowler.com/articles/injection.html ([https](https://martinfowler.com/articles/injection.html) result 200).
* [ ] http://myfaces.apache.org/ with 1 occurrences migrated to:
  https://myfaces.apache.org/ ([https](https://myfaces.apache.org/) result 200).
* [ ] http://myfaces.apache.org/orchestra/ with 1 occurrences migrated to:
  https://myfaces.apache.org/orchestra/ ([https](https://myfaces.apache.org/orchestra/) 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://repository.springsource.com/ivy/bundles/external/ with 2 occurrences migrated to:
  https://repository.springsource.com/ivy/bundles/external/ ([https](https://repository.springsource.com/ivy/bundles/external/) result 200).
* [ ] http://repository.springsource.com/ivy/bundles/release/ with 2 occurrences migrated to:
  https://repository.springsource.com/ivy/bundles/release/ ([https](https://repository.springsource.com/ivy/bundles/release/) result 200).
* [ ] http://static.springsource.org/schema/mvc/spring-mvc.xsd (301) with 1 occurrences migrated to:
  https://schema.spring.io/mvc/spring-mvc.xsd ([https](https://static.springsource.org/schema/mvc/spring-mvc.xsd) result 200).
* [ ] http://blog.springsource.com/2004/08/06/method-injection/ (301) with 1 occurrences migrated to:
  https://spring.io/blog/2004/08/06/method-injection/ ([https](https://blog.springsource.com/2004/08/06/method-injection/) result 200).
* [ ] http://blog.springsource.com/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/ (301) with 1 occurrences migrated to:
  https://spring.io/blog/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/ ([https](https://blog.springsource.com/2007/06/11/using-a-shared-parent-application-context-in-a-multi-war-spring-application/) result 200).
* [ ] http://blog.springsource.com/2011/02/11/spring-framework-3-1-m1-released/ (301) with 2 occurrences migrated to:
  https://spring.io/blog/2011/02/11/spring-framework-3-1-m1-released/ ([https](https://blog.springsource.com/2011/02/11/spring-framework-3-1-m1-released/) result 200).
* [ ] http://blog.springsource.com/2011/02/14/spring-3-1-m1-introducing-profile/ (301) with 1 occurrences migrated to:
  https://spring.io/blog/2011/02/14/spring-3-1-m1-introducing-profile/ ([https](https://blog.springsource.com/2011/02/14/spring-3-1-m1-introducing-profile/) result 200).
* [ ] http://blog.springsource.com/2011/02/15/spring-3-1-m1-unified-property-management/ (301) with 1 occurrences migrated to:
  https://spring.io/blog/2011/02/15/spring-3-1-m1-unified-property-management/ ([https](https://blog.springsource.com/2011/02/15/spring-3-1-m1-unified-property-management/) result 200).
* [ ] http://blog.springsource.com/2011/06/21/spring-3-1-m2-testing-with-configuration-classes-and-profiles/ (301) with 1 occurrences migrated to:
  https://spring.io/blog/2011/06/21/spring-3-1-m2-testing-with-configuration-classes-and-profiles/ ([https](https://blog.springsource.com/2011/06/21/spring-3-1-m2-testing-with-configuration-classes-and-profiles/) 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 2 occurrences migrated to:
  https://struts.apache.org/ ([https](https://struts.apache.org/) result 200).
* [ ] http://subversion.apache.org/ with 1 occurrences migrated to:
  https://subversion.apache.org/ ([https](https://subversion.apache.org/) result 200).
* [ ] http://tapestry.apache.org/ with 3 occurrences migrated to:
  https://tapestry.apache.org/ ([https](https://tapestry.apache.org/) result 200).
* [ ] http://tiles.apache.org with 1 occurrences migrated to:
  https://tiles.apache.org ([https](https://tiles.apache.org) result 200).
* [ ] http://tiles.apache.org/dtds/tiles-config_2_0.dtd with 1 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 3 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://tomcat.apache.org/ with 1 occurrences migrated to:
  https://tomcat.apache.org/ ([https](https://tomcat.apache.org/) result 200).
* [ ] http://tomcat.apache.org/tomcat-5.5-doc/config/context.html with 1 occurrences migrated to:
  https://tomcat.apache.org/tomcat-5.5-doc/config/context.html ([https](https://tomcat.apache.org/tomcat-5.5-doc/config/context.html) result 200).
* [ ] http://tomcat.apache.org/tomcat-6.0-doc/config/context.html with 1 occurrences migrated to:
  https://tomcat.apache.org/tomcat-6.0-doc/config/context.html ([https](https://tomcat.apache.org/tomcat-6.0-doc/config/context.html) result 200).
* [ ] http://tools.ietf.org/html/rfc3986 with 1 occurrences migrated to:
  https://tools.ietf.org/html/rfc3986 ([https](https://tools.ietf.org/html/rfc3986) result 200).
* [ ] http://velocity.apache.org with 2 occurrences migrated to:
  https://velocity.apache.org ([https](https://velocity.apache.org) result 200).
* [ ] http://www.atomikos.com/ with 1 occurrences migrated to:
  https://www.atomikos.com/ ([https](https://www.atomikos.com/) result 200).
* [ ] http://www.eclipse.org/ with 1 occurrences migrated to:
  https://www.eclipse.org/ ([https](https://www.eclipse.org/) 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://www.eclipse.org/jetty/ with 1 occurrences migrated to:
  https://www.eclipse.org/jetty/ ([https](https://www.eclipse.org/jetty/) result 200).
* [ ] http://www.eclipse.org/webtools/ with 1 occurrences migrated to:
  https://www.eclipse.org/webtools/ ([https](https://www.eclipse.org/webtools/) result 200).
* [ ] http://ehcache.org/ (301) with 1 occurrences migrated to:
  https://www.ehcache.org/ ([https](https://ehcache.org/) result 200).
* [ ] http://www.enterpriseintegrationpatterns.com with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com ([https](https://www.enterpriseintegrationpatterns.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.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 2 occurrences migrated to:
  https://www.jetbrains.com/idea/ ([https](https://www.jetbrains.com/idea/) result 200).
* [ ] http://quartz-scheduler.org (301) with 2 occurrences migrated to:
  https://www.quartz-scheduler.org/ ([https](https://quartz-scheduler.org) result 200).
* [ ] http://www.slf4j.org with 1 occurrences migrated to:
  https://www.slf4j.org ([https](https://www.slf4j.org) result 200).
* [ ] http://www.springframework.org/dtd/spring-beans-2.0.dtd with 213 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/dtd/spring-beans.dtd with 3 occurrences migrated to:
  https://www.springframework.org/dtd/spring-beans.dtd ([https](https://www.springframework.org/dtd/spring-beans.dtd) result 200).
* [ ] http://www.springframework.org/schema/aop/spring-aop-2.0.xsd with 71 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 14 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 24 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 119 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 61 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 11 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 35 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 3 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.xsd with 150 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 5 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 44 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 5 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 7 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.xsd with 26 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 12 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.xsd with 5 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/jee/spring-jee.xsd with 3 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-3.1.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/jms/spring-jms-3.1.xsd ([https](https://www.springframework.org/schema/jms/spring-jms-3.1.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-2.0.xsd with 2 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 4 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 7 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.xsd with 5 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.0.xsd with 9 occurrences migrated to:
  https://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd ([https](https://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd) result 200).
* [ ] http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd with 5 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-3.2.xsd with 5 occurrences migrated to:
  https://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd ([https](https://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd) result 200).
* [ ] http://www.springframework.org/schema/mvc/spring-mvc.xsd with 8 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-3.1.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/oxm/spring-oxm-3.1.xsd ([https](https://www.springframework.org/schema/oxm/spring-oxm-3.1.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/security/spring-security-3.1.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/security/spring-security-3.1.xsd ([https](https://www.springframework.org/schema/security/spring-security-3.1.xsd) result 200).
* [ ] http://www.springframework.org/schema/task/spring-task-3.0.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/task/spring-task-3.0.xsd ([https](https://www.springframework.org/schema/task/spring-task-3.0.xsd) result 200).
* [ ] http://www.springframework.org/schema/task/spring-task.xsd with 5 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.0.xsd with 4 occurrences migrated to:
  https://www.springframework.org/schema/tx/spring-tx-2.0.xsd ([https](https://www.springframework.org/schema/tx/spring-tx-2.0.xsd) result 200).
* [ ] http://www.springframework.org/schema/tx/spring-tx-2.5.xsd with 7 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.xsd with 16 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 3 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 9 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 2 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.xsd with 5 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.w3.org/DesignIssues/MatrixURIs.html with 1 occurrences migrated to:
  https://www.w3.org/DesignIssues/MatrixURIs.html ([https](https://www.w3.org/DesignIssues/MatrixURIs.html) result 200).
* [ ] http://www.w3.org/TR/2004/REC-xmlschema-1-20041028/ with 1 occurrences migrated to:
  https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/ ([https](https://www.w3.org/TR/2004/REC-xmlschema-1-20041028/) result 200).
* [ ] http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/ with 1 occurrences migrated to:
  https://www.w3.org/TR/2004/REC-xmlschema-2-20041028/ ([https](https://www.w3.org/TR/2004/REC-xmlschema-2-20041028/) result 200).
* [ ] http://www.w3.org/TR/xhtml1/ with 2 occurrences migrated to:
  https://www.w3.org/TR/xhtml1/ ([https](https://www.w3.org/TR/xhtml1/) result 200).
* [ ] http://www.w3.org/TR/xhtml1/dtds.html with 2 occurrences migrated to:
  https://www.w3.org/TR/xhtml1/dtds.html ([https](https://www.w3.org/TR/xhtml1/dtds.html) result 200).
* [ ] http://xmlbeans.apache.org/ with 1 occurrences migrated to:
  https://xmlbeans.apache.org/ ([https](https://xmlbeans.apache.org/) result 200).
* [ ] http://ant.apache.org/ivy with 1 occurrences migrated to:
  https://ant.apache.org/ivy ([https](https://ant.apache.org/ivy) result 301).
* [ ] http://bit.ly/lrDHja with 1 occurrences migrated to:
  https://bit.ly/lrDHja ([https](https://bit.ly/lrDHja) result 301).
* [ ] http://blog.springsource.org/2012/05/06/spring-mvc-3-2-preview-introducing-servlet-3-async-support/ with 1 occurrences migrated to:
  https://blog.springsource.org/2012/05/06/spring-mvc-3-2-preview-introducing-servlet-3-async-support/ ([https](https://blog.springsource.org/2012/05/06/spring-mvc-3-2-preview-introducing-servlet-3-async-support/) result 301).
* [ ] http://db.apache.org/derby with 1 occurrences migrated to:
  https://db.apache.org/derby ([https](https://db.apache.org/derby) result 301).
* [ ] http://static.springsource.org/spring-framework/docs/3.1.3.RELEASE_to_3.2.0.RELEASE (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.1.3.RELEASE_to_3.2.0.RELEASE ([https](https://static.springsource.org/spring-framework/docs/3.1.3.RELEASE_to_3.2.0.RELEASE) result 301).
* [ ] http://static.springsource.org/spring-framework/docs/3.2.0.RC2_to_3.2.0.RELEASE (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/3.2.0.RC2_to_3.2.0.RELEASE ([https](https://static.springsource.org/spring-framework/docs/3.2.0.RC2_to_3.2.0.RELEASE) result 301).
* [ ] http://forum.springsource.org/ (301) with 2 occurrences migrated to:
  https://forum.spring.io/ ([https](https://forum.springsource.org/) result 301).
* [ ] http://forum.springframework.org/forumdisplay.php?f=25 with 1 occurrences migrated to:
  https://forum.springframework.org/forumdisplay.php?f=25 ([https](https://forum.springframework.org/forumdisplay.php?f=25) result 301).
* [ ] http://issues.apache.org/bugzilla/show_bug.cgi?id=39704 with 1 occurrences migrated to:
  https://issues.apache.org/bugzilla/show_bug.cgi?id=39704 ([https](https://issues.apache.org/bugzilla/show_bug.cgi?id=39704) result 301).
* [ ] http://jakarta.apache.org/commons/fileupload with 2 occurrences migrated to:
  https://jakarta.apache.org/commons/fileupload ([https](https://jakarta.apache.org/commons/fileupload) result 301).
* [ ] http://jakarta.apache.org/commons/httpclient with 1 occurrences migrated to:
  https://jakarta.apache.org/commons/httpclient ([https](https://jakarta.apache.org/commons/httpclient) result 301).
* [ ] http://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd with 1 occurrences migrated to:
  https://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd ([https](https://jakarta.apache.org/struts/dtds/tiles-config_1_1.dtd) result 301).
* [ ] http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd with 2 occurrences migrated to:
  https://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd ([https](https://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd) result 301).
* [ ] http://jira.springframework.org with 2 occurrences migrated to:
  https://jira.springframework.org ([https](https://jira.springframework.org) result 301).
* [ ] http://jira.springframework.org/ with 1 occurrences migrated to:
  https://jira.springframework.org/ ([https](https://jira.springframework.org/) result 301).
* [ ] http://jira.springsource.org/SPR with 1 occurrences migrated to:
  https://jira.springsource.org/SPR ([https](https://jira.springsource.org/SPR) result 301).
* [ ] http://logging.apache.org/log4j with 1 occurrences migrated to:
  https://logging.apache.org/log4j ([https](https://logging.apache.org/log4j) 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://opensource.atlassian.com/projects/spring/secure/Dashboard.jspa with 3 occurrences migrated to:
  https://opensource.atlassian.com/projects/spring/secure/Dashboard.jspa ([https](https://opensource.atlassian.com/projects/spring/secure/Dashboard.jspa) result 301).
* [ ] http://repo.springsource.org/milestone/&lt;/url&gt with 1 occurrences migrated to:
  https://repo.springsource.org/milestone/&lt;/url&gt ([https](https://repo.springsource.org/milestone/&lt;/url&gt) result 301).
* [ ] http://repo.springsource.org/release/&lt;/url&gt with 1 occurrences migrated to:
  https://repo.springsource.org/release/&lt;/url&gt ([https](https://repo.springsource.org/release/&lt;/url&gt) result 301).
* [ ] http://repo.springsource.org/snapshot/&lt;/url&gt with 1 occurrences migrated to:
  https://repo.springsource.org/snapshot/&lt;/url&gt ([https](https://repo.springsource.org/snapshot/&lt;/url&gt) result 301).
* [ ] http://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088866&amp;group_id=39190&amp;atid=424562 with 1 occurrences migrated to:
  https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088866&amp;group_id=39190&amp;atid=424562 ([https](https://sourceforge.net/tracker/index.php?func=detail&amp;aid=1088866&amp;group_id=39190&amp;atid=424562) result 301).
* [ ] http://springsource.org/spring-integration with 1 occurrences migrated to:
  https://springsource.org/spring-integration ([https](https://springsource.org/spring-integration) 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.docbook.org/xml/5.0/xsd/docbook.xsd with 49 occurrences migrated to:
  https://www.docbook.org/xml/5.0/xsd/docbook.xsd ([https](https://www.docbook.org/xml/5.0/xsd/docbook.xsd) result 301).
* [ ] http://www.docbook.org/xml/5.0/xsd/xlink.xsd with 49 occurrences migrated to:
  https://www.docbook.org/xml/5.0/xsd/xlink.xsd ([https](https://www.docbook.org/xml/5.0/xsd/xlink.xsd) 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.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.bea.com/framework.jsp?CNT=index.htm&amp;FP=/content/products/weblogic/server (301) with 1 occurrences migrated to:
  https://www.oracle.com/bea/index.html?CNT=index.htm&amp;FP=/content/products/weblogic/server ([https](https://www.bea.com/framework.jsp?CNT=index.htm&amp;FP=/content/products/weblogic/server) result 301).
* [ ] http://www.oracle.com/technology/products/oc4j/index.html with 1 occurrences migrated to:
  https://www.oracle.com/technology/products/oc4j/index.html ([https](https://www.oracle.com/technology/products/oc4j/index.html) 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 1 occurrences migrated to:
  https://www.springframework.org ([https](https://www.springframework.org) result 301).
* [ ] http://www.springframework.org/webflow with 2 occurrences migrated to:
  https://www.springframework.org/webflow ([https](https://www.springframework.org/webflow) result 301).
* [ ] http://www.springsource.com/products/sts with 4 occurrences migrated to:
  https://www.springsource.com/products/sts ([https](https://www.springsource.com/products/sts) result 301).
* [ ] http://www.springsource.com/repository with 4 occurrences migrated to:
  https://www.springsource.com/repository ([https](https://www.springsource.com/repository) result 301).
* [ ] http://www.springsource.com/repository/app/faq with 1 occurrences migrated to:
  https://www.springsource.com/repository/app/faq ([https](https://www.springsource.com/repository/app/faq) result 301).
* [ ] http://www.springsource.org/documentation with 2 occurrences migrated to:
  https://www.springsource.org/documentation ([https](https://www.springsource.org/documentation) result 301).
* [ ] http://www.springsource.org/javaconfig with 3 occurrences migrated to:
  https://www.springsource.org/javaconfig ([https](https://www.springsource.org/javaconfig) result 301).
* [ ] http://www.springsource.org/roo with 1 occurrences migrated to:
  https://www.springsource.org/roo ([https](https://www.springsource.org/roo) result 301).
* [ ] http://www.springsource.org/springframework-ebr with 1 occurrences migrated to:
  https://www.springsource.org/springframework-ebr ([https](https://www.springsource.org/springframework-ebr) result 301).
* [ ] 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/6/docs/api/java/beans/ConstructorProperties.html with 1 occurrences migrated to:
  https://download.oracle.com/javase/6/docs/api/java/beans/ConstructorProperties.html ([https](https://download.oracle.com/javase/6/docs/api/java/beans/ConstructorProperties.html) 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/developer/technicalArticles/J2EE/jpa/index.html with 1 occurrences migrated to:
  https://java.sun.com/developer/technicalArticles/J2EE/jpa/index.html ([https](https://java.sun.com/developer/technicalArticles/J2EE/jpa/index.html) result 302).
* [ ] http://java.sun.com/developer/technicalArticles/J2SE/jmx.html with 1 occurrences migrated to:
  https://java.sun.com/developer/technicalArticles/J2SE/jmx.html ([https](https://java.sun.com/developer/technicalArticles/J2SE/jmx.html) result 302).
* [ ] http://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html with 1 occurrences migrated to:
  https://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html ([https](https://java.sun.com/j2se/1.5.0/docs/api/java/io/Serializable.html) result 302).
* [ ] http://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/package-summary.html with 2 occurrences migrated to:
  https://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/package-summary.html ([https](https://java.sun.com/j2se/1.5.0/docs/api/java/lang/instrument/package-summary.html) result 302).
* [ ] http://java.sun.com/javaee/javaserverfaces/ with 2 occurrences migrated to:
  https://java.sun.com/javaee/javaserverfaces/ ([https](https://java.sun.com/javaee/javaserverfaces/) result 302).
* [ ] http://java.sun.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html with 1 occurrences migrated to:
  https://java.sun.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html ([https](https://java.sun.com/javase/6/docs/api/java/util/concurrent/ThreadPoolExecutor.html) result 302).
* [ ] http://java.sun.com/products/JavaManagement/ with 1 occurrences migrated to:
  https://java.sun.com/products/JavaManagement/ ([https](https://java.sun.com/products/JavaManagement/) result 302).
* [ ] http://java.sun.com/products/javabeans/ with 1 occurrences migrated to:
  https://java.sun.com/products/javabeans/ ([https](https://java.sun.com/products/javabeans/) result 302).
* [ ] http://java.sun.com/products/javabeans/docs/spec.html with 1 occurrences migrated to:
  https://java.sun.com/products/javabeans/docs/spec.html ([https](https://java.sun.com/products/javabeans/docs/spec.html) result 302).
* [ ] http://java.sun.com/products/javabeans/jaf/downloads/index.html with 1 occurrences migrated to:
  https://java.sun.com/products/javabeans/jaf/downloads/index.html ([https](https://java.sun.com/products/javabeans/jaf/downloads/index.html) result 302).
* [ ] http://java.sun.com/products/javamail/ with 1 occurrences migrated to:
  https://java.sun.com/products/javamail/ ([https](https://java.sun.com/products/javamail/) 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-app_3_0.xsd with 1 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/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).
* [ ] http://struts.apache.org/2.x/docs/spring-plugin.html with 1 occurrences migrated to:
  https://struts.apache.org/2.x/docs/spring-plugin.html ([https](https://struts.apache.org/2.x/docs/spring-plugin.html) result 302).
* [ ] http://www.springsource.com/produts/sts with 1 occurrences migrated to:
  https://www.springsource.com/produts/sts ([https](https://www.springsource.com/produts/sts) result 302).
* [ ] http://www.springsource.org/download/community with 2 occurrences migrated to:
  https://www.springsource.org/download/community ([https](https://www.springsource.org/download/community) result 302).

These URLs were intentionally ignored.

* http://HOST:8080/remoting/AccountService with 1 occurrences
* http://docbook.org/ns/docbook with 100 occurrences
* http://example/ with 1 occurrences
* http://jakarta.apache.org/log4j/ with 19 occurrences
* http://java.sun.com/dtd/properties.dtd with 4 occurrences
* http://java.sun.com/xml/ns/j2ee with 2 occurrences
* http://java.sun.com/xml/ns/javaee with 4 occurrences
* http://java.sun.com/xml/ns/persistence with 28 occurrences
* http://localhost/content with 1 occurrences
* http://localhost/content.atom with 1 occurrences
* http://localhost/registration.html with 1 occurrences
* http://localhost:8080 with 3 occurrences
* http://localhost:8080/ with 1 occurrences
* http://localhost:8080/account/services/accountService with 2 occurrences
* http://localhost:8080/account/services/accountService?WSDL with 1 occurrences
* http://localhost:8080/people with 2 occurrences
* http://localhost:8888/AccountServiceEndpoint?WSDL with 1 occurrences
* http://remotehost:8080/remoting/AccountService with 2 occurrences
* http://samples.springframework.org/flight with 7 occurrences
* http://schemas.microsoft.com/visio/2003/SVGExtensions/ with 5 occurrences
* http://testng.org/ with 1 occurrences
* http://www.foo.com/schema/component with 6 occurrences
* http://www.greeting.com/goodbye/ with 1 occurrences
* http://www.greeting.com/hello/ with 1 occurrences
* http://www.mycompany.com/schema/myns with 4 occurrences
* http://www.springframework.org/schema/aop with 221 occurrences
* http://www.springframework.org/schema/beans with 762 occurrences
* http://www.springframework.org/schema/beans/test with 2 occurrences
* http://www.springframework.org/schema/c with 11 occurrences
* http://www.springframework.org/schema/cache with 12 occurrences
* http://www.springframework.org/schema/context with 164 occurrences
* http://www.springframework.org/schema/jdbc with 45 occurrences
* http://www.springframework.org/schema/jee with 9 occurrences
* http://www.springframework.org/schema/jms with 6 occurrences
* http://www.springframework.org/schema/lang with 38 occurrences
* http://www.springframework.org/schema/mvc with 54 occurrences
* http://www.springframework.org/schema/oxm with 4 occurrences
* http://www.springframework.org/schema/p with 29 occurrences
* http://www.springframework.org/schema/security with 2 occurrences
* http://www.springframework.org/schema/task with 12 occurrences
* http://www.springframework.org/schema/tx with 54 occurrences
* http://www.springframework.org/schema/util with 43 occurrences
* http://www.springframework.org/spring-ws with 1 occurrences
* http://www.springframework.org/tags with 1 occurrences
* http://www.springframework.org/tags/form with 1 occurrences
* http://www.w3.org/1998/Math/MathML with 1 occurrences
* http://www.w3.org/1999/XSL/Transform with 1 occurrences
* http://www.w3.org/1999/xlink with 99 occurrences
* http://www.w3.org/2000/svg with 5 occurrences
* http://www.w3.org/2001/XInclude with 97 occurrences
* http://www.w3.org/2001/XMLSchema with 5 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 448 occurrences
* http://www.w3.org/2005/Atom with 3 occurrences

Closes gh-22670
2019-03-28 19:14:32 +01:00
Sam Brannen 9c83d29bba Merge branch 'spring-operator-polish-urls-apache-license-3.2.x' into 3.2.x 2019-03-23 14:04:25 +01:00
Spring Operator 8abbbb82ca 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 4671 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 14:53:34 -05:00
Sam Brannen ef1a676a7b Manual URL Cleanup
See gh-22516
2019-03-12 17:22:02 +01:00
Sam Brannen 5386c837b3 Manual URL Cleanup
See gh-22516
2019-03-11 19:45:33 +01:00
Sam Brannen 0c44f73bb4 Merge branch 'spring-operator-polish-urls-build-3.2.x' into 3.2.x 2019-03-06 19:11:37 +01:00
Sam Brannen 2b2df8f8d8 Manual URL Cleanup
Closes gh-22516
2019-03-06 19:03:28 +01:00
Spring Operator 24befe10a6 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://aopalliance.sourceforge.net/doc/ (200) migrated to:
  http://aopalliance.sourceforge.net/doc/ ([https](https://aopalliance.sourceforge.net/doc/) result AnnotatedConnectException).

# 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://jackson.codehaus.org/1.9.4/javadoc/ (UnknownHostException) migrated to:
  https://jackson.codehaus.org/1.9.4/javadoc/ ([https](https://jackson.codehaus.org/1.9.4/javadoc/) result UnknownHostException).
* http://jira.codehaus.org/browse/JIBX-465 (UnknownHostException) migrated to:
  https://jira.codehaus.org/browse/JIBX-465 ([https](https://jira.codehaus.org/browse/JIBX-465) result UnknownHostException).
* http://springsource.org/downloads/sts (302) migrated to:
  https://spring.io/projectss/sts ([https](https://springsource.org/downloads/sts) result 404).
* http://quartz-scheduler.org/api/2.2.0/ (301) migrated to:
  https://www.quartz-scheduler.org/api/2.2.0/ ([https](https://quartz-scheduler.org/api/2.2.0/) result 404).

## Fixed Success
These URLs were fixed successfully.

* http://commons.apache.org/proper/commons-codec/apidocs/ migrated to:
  https://commons.apache.org/proper/commons-codec/apidocs/ ([https](https://commons.apache.org/proper/commons-codec/apidocs/) result 200).
* http://commons.apache.org/proper/commons-dbcp/apidocs/ migrated to:
  https://commons.apache.org/proper/commons-dbcp/apidocs/ ([https](https://commons.apache.org/proper/commons-dbcp/apidocs/) result 200).
* http://commons.apache.org/proper/commons-lang/javadocs/api-2.5/ migrated to:
  https://commons.apache.org/proper/commons-lang/javadocs/api-2.5/ ([https](https://commons.apache.org/proper/commons-lang/javadocs/api-2.5/) result 200).
* http://docs.jboss.org/jbossas/javadoc/4.0.5/connector/ migrated to:
  https://docs.jboss.org/jbossas/javadoc/4.0.5/connector/ ([https](https://docs.jboss.org/jbossas/javadoc/4.0.5/connector/) result 200).
* http://docs.jboss.org/jbossas/javadoc/7.1.2.Final/ migrated to:
  https://docs.jboss.org/jbossas/javadoc/7.1.2.Final/ ([https](https://docs.jboss.org/jbossas/javadoc/7.1.2.Final/) result 200).
* http://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/ migrated to:
  https://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/ ([https](https://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/) result 200).
* http://docs.oracle.com/javaee/6/api/ migrated to:
  https://docs.oracle.com/javaee/6/api/ ([https](https://docs.oracle.com/javaee/6/api/) result 200).
* http://docs.oracle.com/javase/7/docs/api/ migrated to:
  https://docs.oracle.com/javase/7/docs/api/ ([https](https://docs.oracle.com/javase/7/docs/api/) result 200).
* http://ibatis.apache.org/docs/java/dev/ migrated to:
  https://ibatis.apache.org/docs/java/dev/ ([https](https://ibatis.apache.org/docs/java/dev/) result 200).
* http://portals.apache.org/pluto/portlet-2.0-apidocs/ migrated to:
  https://portals.apache.org/pluto/portlet-2.0-apidocs/ ([https](https://portals.apache.org/pluto/portlet-2.0-apidocs/) result 200).
* http://tiles.apache.org/framework/apidocs/ migrated to:
  https://tiles.apache.org/framework/apidocs/ ([https](https://tiles.apache.org/framework/apidocs/) result 200).
* http://tiles.apache.org/tiles-request/apidocs/ migrated to:
  https://tiles.apache.org/tiles-request/apidocs/ ([https](https://tiles.apache.org/tiles-request/apidocs/) result 200).
* http://www.apache.org/licenses/LICENSE-2.0.txt migrated to:
  https://www.apache.org/licenses/LICENSE-2.0.txt ([https](https://www.apache.org/licenses/LICENSE-2.0.txt) result 200).
* http://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/ migrated to:
  https://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/ ([https](https://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/) result 200).
* http://ehcache.org/apidocs/ (301) migrated to:
  https://www.ehcache.org/apidocs/ ([https](https://ehcache.org/apidocs/) result 200).
* http://static.springframework.org/spring-framework/docs (301) migrated to:
  https://docs.spring.io/spring-framework/docs ([https](https://static.springframework.org/spring-framework/docs) result 301).
* http://fasterxml.github.com/jackson-core/javadoc/2.3.0/ migrated to:
  https://fasterxml.github.com/jackson-core/javadoc/2.3.0/ ([https](https://fasterxml.github.com/jackson-core/javadoc/2.3.0/) result 301).
* http://fasterxml.github.com/jackson-databind/javadoc/2.3.0/ migrated to:
  https://fasterxml.github.com/jackson-databind/javadoc/2.3.0/ ([https](https://fasterxml.github.com/jackson-databind/javadoc/2.3.0/) result 301).
* http://glassfish.java.net/nonav/docs/v3/api/ migrated to:
  https://glassfish.java.net/nonav/docs/v3/api/ ([https](https://glassfish.java.net/nonav/docs/v3/api/) result 301).
* http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs migrated to:
  https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs ([https](https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs) result 301).
* http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.javadoc.doc/web/apidocs/ migrated to:
  https://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.javadoc.doc/web/apidocs/ ([https](https://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.javadoc.doc/web/apidocs/) result 301).
* http://springsource.org/spring-framework (301) migrated to:
  https://projects.spring.io/spring-framework ([https](https://springsource.org/spring-framework) result 301).
* http://springframework.org/schema migrated to:
  https://springframework.org/schema ([https](https://springframework.org/schema) result 301).
2019-03-05 21:55:34 -06:00
Spring Buildmaster 89fbe49905 Next Development Version 2016-12-21 18:42:20 +00:00
Juergen Hoeller e57047adf8 Remove outdated JasperReports tests (failing due to missing font on CI server) 2016-12-21 17:37:34 +01:00
Stephane Nicoll f85be8ebef Upgrade to Gradle 2.5
Issue: SPR-15039
2016-12-21 17:04:06 +01:00
Stephane Nicoll f22c669f45 Update changelog for 3.2.18.RELEASE 2016-12-21 15:37:31 +01:00
Brian Clozel a7dc48534e Normalize resource URL in ResourceServlet
Issue: SPR-14946
2016-12-21 10:42:41 +01:00
Juergen Hoeller bd282e632f Polishing
(cherry picked from commit 6e5b873)
2016-12-20 20:40:20 +01:00
Juergen Hoeller 6bdc5bfc08 SpEL docs: supported literals, null comparisons
Issue: SPR-14361
Issue: SPR-14987
2016-12-19 17:56:32 +01:00
Juergen Hoeller 8c26717bdc MBeanExporter silently ignores null beans
Issue: SPR-15031
(cherry picked from commit e9def51)
2016-12-19 17:56:04 +01:00
Juergen Hoeller 6075c81371 Consistent DeferredResultHandler invocation outside of result lock
Issue: SPR-14978
(cherry picked from commit 86614af)
2016-12-19 17:55:59 +01:00
Juergen Hoeller f473392a42 Polishing 2016-10-31 21:57:23 +01:00
Juergen Hoeller 1e2b8aba76 ObjectToObjectConverter properly handles constructors on non-public classes
Issue: SPR-14304
2016-10-31 21:54:26 +01:00
Juergen Hoeller f6024c23ca No external locking for singleton advice/aspect beans
Issue: SPR-14324
(cherry picked from commit 6b7f3fd)
2016-10-31 21:53:18 +01:00
Juergen Hoeller 703b3b1524 StringUtils.parseLocaleString accepts Java 7 variants
Issue: SPR-14718
(cherry picked from commit 818c72a)
2016-09-16 11:16:08 +02:00
Juergen Hoeller cfd16f9c94 ModelAndViewResolver declares handlerType as Class<?>
Issue: SPR-7860
2016-09-13 23:14:33 +02:00
Juergen Hoeller 70f2736c6c Polishing
(cherry picked from commit b344c92)
2016-09-13 23:13:04 +02:00
Juergen Hoeller a5070d562c Correct ISO DateTime example
Issue: SPR-14675
(cherry picked from commit 68332bf)
2016-09-13 23:12:56 +02:00
Juergen Hoeller 5fe608d098 PropertyValue stores source object in common superclass field
Issue: SPR-8337
(cherry picked from commit 53dc996)
2016-09-13 23:12:39 +02:00
Juergen Hoeller 71fd621a1b Polishing
(cherry picked from commit 96f1a0e)
2016-08-18 11:30:10 +02:00
Juergen Hoeller 1295f62319 Polishing 2016-08-17 21:39:24 +02:00
Juergen Hoeller b9a2d0af98 Polishing 2016-08-17 20:43:41 +02:00
Juergen Hoeller 52f21bdf54 Polishing
(cherry picked from commit 22ca7ac)
2016-08-17 20:43:27 +02:00
Juergen Hoeller 3185f67b43 Avoid stack overflow in case of chained factory-bean references to FactoryBean class
Issue: SPR-14551
2016-08-12 00:02:03 +02:00
Juergen Hoeller 9520a593bd Polishing 2016-08-09 12:59:54 +02:00
Juergen Hoeller 6924f00f8c Polishing 2016-08-09 12:12:42 +02:00
Juergen Hoeller e8562bb3af LinkedCaseInsensitiveMap properly overrides HashMap.clone()
Issue: SPR-14509
(cherry picked from commit dadd2c3)
2016-07-25 15:29:46 +02:00
Juergen Hoeller a4b5425108 ResourcePatternUtils.getResourcePatternResolver actually accepts null argument
Issue: SPR-14500
(cherry picked from commit f1fc74c)
2016-07-25 15:29:23 +02:00
Juergen Hoeller 74b4dd0a40 Polishing
(cherry picked from commit b5127dc)
2016-07-20 23:12:06 +02:00
Juergen Hoeller 9ec50a278e Javadoc fixes
(cherry picked from commit 392f9c8)
2016-07-15 23:10:20 +02:00
Juergen Hoeller d3c0e75b95 Polishing 2016-07-15 18:02:26 +02:00
Juergen Hoeller 9be54047e9 CronSequenceGenerator prevents stack overflow in case of inverted range
Issue: SPR-14462
(cherry picked from commit 44152ce)
2016-07-15 17:48:16 +02:00
Juergen Hoeller cb64dd1583 StandardTypeConverter initializes default ConversionService against volatile field
Issue: SPR-14465
(cherry picked from commit 97d73eb)
2016-07-15 17:48:07 +02:00
Stephane Nicoll c38381a54d Upgrade copyright 2016-07-04 12:48:08 +02:00
Juergen Hoeller 51a557b885 Polishing
(cherry picked from commit dd7ddc0)
2016-06-29 15:43:15 +02:00
Rossen Stoyanchev fc37824bc0 Improve static resource path check
(cherry picked from commit 2697425)
2016-06-29 15:41:33 +02:00
Juergen Hoeller 2b9c527d31 Fixed ambiguous sentence in conditional cache documentation
Issue: SPR-14399
2016-06-29 15:37:49 +02:00
Juergen Hoeller 14ab9800ff ObjectUtils.nullSafeEquals allows for JVM method inlining (through reducing its bytecode size)
Issue: SPR-14349
(cherry picked from commit 71df9ce)
2016-06-29 15:20:39 +02:00
Juergen Hoeller a1c09877d9 Avoid potential deadlock in AbstractBeanFactoryPointcutAdvisor
Issue: SPR-14388
(cherry picked from commit 0d3a22c)
2016-06-29 15:20:34 +02:00
Juergen Hoeller 0b8822fab4 Avoid double getFlushMode call 2016-06-04 11:53:06 +02:00
Juergen Hoeller 49ae46d7e4 For attribute is not actually required
Issue: SPR-14287
(cherry picked from commit dacc31e)
2016-06-04 11:52:47 +02:00
Juergen Hoeller 7da129539f @Bean's "autowire" attribute does not affect annotation-driven autowiring
Issue: SPR-14282
(cherry picked from commit 98eaf05)
2016-06-04 11:52:34 +02:00
Spring Buildmaster 6009e03a7f Next Development Version 2016-05-06 10:23:55 +00:00
Stephane Nicoll 2e90a1ccdc Update changelog for 3.2.17.RELEASE 2016-05-06 11:47:00 +02:00
Juergen Hoeller 25cf96f6df AbstractRequestLoggingFilter ignores non-available query string
Issue: SPR-14244
(cherry picked from commit 0f2bc3f)
2016-05-04 18:48:54 +02:00
Juergen Hoeller d6a4981a92 Polishing
(cherry picked from commit 1e491f1)
2016-05-04 18:48:15 +02:00
Juergen Hoeller 07db535b37 Polishing 2016-05-04 09:25:00 +02:00
Juergen Hoeller 5cbe90b2cd Explicit note on Java deserialization 2016-05-04 09:24:53 +02:00
Juergen Hoeller 7de8f4f584 LazySingletonAspectInstanceFactoryDecorator uses shared singleton mutex
Issue: SPR-14241
2016-05-04 09:24:39 +02:00
Rossen Stoyanchev cf39078fbb Backport MVC Java config path-related config options
Issue: SPR-14186
2016-04-21 13:50:03 -04:00
Juergen Hoeller 3d6b0ca5be SpringCacheAnnotationParser properly accepts empty @Caching annotation
Issue: SPR-14162
2016-04-13 13:25:29 +02:00
Juergen Hoeller a8418d3bcd Fixed XML example for setup of scheduled tasks
Issue: SPR-14145
(cherry picked from commit 550a320)
2016-04-11 22:12:18 +02:00
Juergen Hoeller dc20a32ded Backported reference documentation fixes
Issue: SPR-13832
Issue: SPR-14003
2016-04-08 22:30:56 +02:00
Rossen Stoyanchev ac5b9c7bd6 Fix javadoc issue in ResponseEntityExceptionHandler
Issue: SPR-13869
(cherry picked from commit 73df50d)
2016-04-08 22:30:56 +02:00
Juergen Hoeller 7c998a70bc Quartz ResourceLoaderClassLoadHelper explicitly falls back to classpath lookup
Issue: SPR-13706
(cherry picked from commit 51f356f)
2016-04-08 22:30:56 +02:00
Stephane Nicoll 8adff1bd70 Support Quartz trigger without JobDetail
This commit allows to create a Quartz trigger implementation via
either `CronTriggerFactoryBean` or `SimpleTriggerFactoryBean` even if no
job detail is provided.

Issue: SPR-13604
(cherry picked from commit 2970065)
2016-04-08 22:30:56 +02:00
Juergen Hoeller fe76f4084a RequestHeaderMapMethodArgumentResolver defensively checks for non-existing header values
Issue: SPR-14091
(cherry picked from commit 8f6ede5)
2016-04-08 22:30:56 +02:00
Rossen Stoyanchev 9e3bb1e26f Ensure RedirectModel is initialized
This commit fixes an old bug in ModelAndViewContainer where getModel
returns a new ModelMap instance that isn't saved and re-used.

Issue: SPR-14045
(cherry picked from commit d7062f6)
2016-04-08 22:30:56 +02:00
Juergen Hoeller c2eb5e1c1c Bsh/GroovyScriptFactory reset script cache in case of compilation error
Issue: SPR-14007
(cherry picked from commit 05ab769)
2016-04-08 22:30:56 +02:00
Juergen Hoeller 4fe386d572 TimerScheduledFuture correctly calculates getDelay result
Issue: SPR-13977
(cherry picked from commit 97b0177)
2016-04-08 22:30:56 +02:00
Juergen Hoeller ad103016eb AbstractMarshaller defensively uses DocumentBuilderFactory within synchronized block
Issue: SPR-13935
(cherry picked from commit 5047e90)
2016-04-08 22:30:56 +02:00
Juergen Hoeller 512d1263f2 ReflectiveMethodResolver lets local static methods override java.lang.Class methods
Issue: SPR-13918
(cherry picked from commit cf3e460)
2016-04-08 22:30:56 +02:00
Rossen Stoyanchev d11b9577d5 Fix NPE in InvocableHandlerMethod
Issue: SPR-13917
(cherry picked from commit b1a46cc)
2016-04-08 22:30:56 +02:00
Ian Chan 1ea9dd0579 Catch RejectedExecutionException in WebAsyncManager
Issue: SPR-13836
(cherry picked from commit 29692fc)
2016-04-08 22:30:56 +02:00
Rossen Stoyanchev 9d5b6430c4 Remove section on spring-framework-contrib group 2016-04-08 15:45:13 -04:00
Spring Buildmaster f93c520ffe Next Development Version 2015-12-17 05:08:23 -08:00
Stephane Nicoll 368773d3bb Update changelog for 3.2.16.RELEASE 2015-12-17 13:22:03 +01:00
Juergen Hoeller 12eb893e5f Polishing (backported from 4.1.x) 2015-12-09 17:10:34 +01:00
Juergen Hoeller c0e5d00e56 Jdbc4SqlXmlHandler returns null as documented (instead of throwing NPE)
Issue: SPR-13782
(cherry picked from commit 78dad4c)
2015-12-09 17:08:20 +01:00
Juergen Hoeller 73823151bf Polishing 2015-12-07 21:05:07 +01:00
Juergen Hoeller a385153e8c StatementCreatorUtils detects Microsoft SQL Server driver 4.0 as well
Issue: SPR-13772
(cherry picked from commit c2fed6e)
2015-12-07 21:04:11 +01:00
Juergen Hoeller f7031dfb10 Javadoc fixes
Issue: SPR-13765
(cherry picked from commit 242acda)
2015-12-07 21:03:29 +01:00
Juergen Hoeller 7bc04dcd5d Avoid instantiation of non-selected beans in BeanFactoryAnnotationUtils.qualifiedBeanOfType
Issue: SPR-13741
(cherry picked from commit 8ed2c47)
2015-12-03 13:07:48 +01:00
Juergen Hoeller 8890d3190a Upgrade to Hibernate 4.2.21 2015-11-15 13:39:49 +01:00
Juergen Hoeller 88be06e152 Fixed test class name 2015-11-15 13:39:17 +01:00
Juergen Hoeller dac8c9e0f6 Fixed code examples in reference documentation
Issue: SPR-10474
2015-11-15 13:38:55 +01:00
Juergen Hoeller 03585f2e4e Reduced warn log entry without stacktrace for startup exceptions
Also, AbstractApplicationContext.isRunning avoids IllegalStateException now.

Issue: SPR-13663
Issue: SPR-13667
(cherry picked from commit 5d6aab3)
2015-11-15 13:37:19 +01:00
Juergen Hoeller 8d7d4cecf8 CommonsMultipartFile removes mixed separator paths from original filename
Issue: SPR-13662
(cherry picked from commit df49b11)
2015-11-15 13:36:58 +01:00
Juergen Hoeller 2ea69c37c6 Avoid NPE for anonymous SqlParameter in CallMetaDataContext
Issue: SPR-13628
(cherry picked from commit d1f5ee2)
2015-11-15 13:36:37 +01:00
Juergen Hoeller d42cc149db Declared JDBC operation compiled flag as volatile
Issue: SPR-13617
(cherry picked from commit 0f4e4fc)
2015-11-15 13:36:12 +01:00
Rossen Stoyanchev 86ba7476cb Fix failing tests 2015-11-11 18:06:03 -05:00
Rossen Stoyanchev 1489e29d0c Switch "attachment" to "inline" on Content-Disposition
Issue: SPR-13587, SPR-13643
2015-11-11 17:49:58 -05:00
Rossen Stoyanchev f2e4da3dac Whitelist extension if present in the request mapping
We know skip the Content-Disposition header for any extension if the
chosen request mapping explicitly contains the URl extension.

Issue: SPR-13629
2015-11-06 13:01:34 -05:00
Rossen Stoyanchev 6a9329cb76 No Content-Disposition if HTML in the request mapping
Issue: SPR-13629
2015-11-02 13:21:59 -05:00
Spring Buildmaster ac5c904335 Next Development Version 2015-10-15 01:41:28 -07:00
Stephane Nicoll fb4408c779 Update changelog for 3.2.15.RELEASE 2015-10-15 09:45:27 +02:00
Stephane Nicoll 51e8aed41f Add .idea to gitignore 2015-10-15 09:33:21 +02:00
Rossen Stoyanchev 03f547eb98 Protect against RFD exploits
Issue: SPR-13548
2015-10-15 09:32:32 +02:00
Juergen Hoeller daada71c36 Polishing 2015-10-14 14:37:13 +02:00
Juergen Hoeller ef4c978c25 Upgrade to Hibernate 4.2.20 2015-10-14 14:36:24 +02:00
Juergen Hoeller 8a8225925e Clarified that getBody() never returns null
As the only place that historically differed, HttpComponents(Async)ClientHttpResponse returns an empty stream instead of null now.

Issue: SPR-13563
(cherry picked from commit ca60d79)
2015-10-14 14:00:37 +02:00
Juergen Hoeller 6c138d3981 Reliable null value handling in ConcurrentMapCache, GuavaCache, JCacheCache
Issue: SPR-13553
(cherry picked from commit de93290)
2015-10-14 14:00:02 +02:00
Juergen Hoeller bb8a12ff78 Fixed ContentNegotiationManager reference in MVC docs
Issue: SPR-13558
2015-10-14 13:59:40 +02:00
Juergen Hoeller 2b3d1bef10 Portlet MVC documentation consistently refers to Portlet 2.0 spec (JSR-286)
Issue: SPR-13513
2015-10-14 13:59:18 +02:00
Juergen Hoeller 51a0237e0a AbstractEmbeddedDatabaseConfigurer explicitly closes JDBC Connection on shutdown
Issue: SPR-13474
(cherry picked from commit aa0f117)
2015-10-14 13:59:06 +02:00
Juergen Hoeller 73a2407545 DeferredResult accessors based on volatile fields for proper visibility
Issue: SPR-13451
(cherry picked from commit 045016e)
2015-10-14 13:58:49 +02:00
Juergen Hoeller b15da37891 Removed misleading note on readonly and disabled flags in spring-form.tld
Issue: SPR-13397
(cherry picked from commit c4a9abb)
2015-10-14 13:58:15 +02:00
Juergen Hoeller eb5b147364 Avoid ambiguous property warning for methods with multiple parameters
Issue: SPR-13349
(cherry picked from commit 42d5780)
2015-10-14 13:58:00 +02:00
Juergen Hoeller 7491efa2c8 Clarify acknowledge mode semantics and transaction recommendations
Issue: SPR-13278
(cherry picked from commit 4012b4d)
2015-10-14 13:57:42 +02:00
Juergen Hoeller d2447ce523 AbstractEnvironment defensively synchronizes access to activeProfiles and defaultProfiles
Issue: SPR-13213
(cherry picked from commit af5f4e6)
2015-10-14 13:57:03 +02:00
Spring Buildmaster 30a55d73db Next Development Version 2015-06-30 10:36:18 -07:00
Rossen Stoyanchev d875772103 Polish tests 2015-06-30 12:00:12 -04:00
Rossen Stoyanchev 0d394a02f3 Fix test check 2015-06-30 10:00:12 -04:00
Stephane Nicoll d996a0988b Upgrade changelog 2015-06-30 06:19:41 -07:00
Rossen Stoyanchev 5a711c05ec Disable DTD when parsing untrusted XML input
Issue: SPR-13136
2015-06-30 07:59:00 -04:00
Juergen Hoeller 1e42464c22 Polishing 2015-06-17 15:50:19 +02:00
Juergen Hoeller 896f0d91f9 AspectJExpressionPointcut defensively catches exceptions thrown from ShadowMatch.matchesJoinPoint
Issue: SPR-13102
(cherry picked from commit 84ae28b)
2015-06-17 15:50:10 +02:00
Juergen Hoeller 50eef1b979 Upgrade to ASM 5.0.4 (and Hibernate 4.2.19)
Issue: SPR-13039
2015-05-22 17:55:24 +02:00
Juergen Hoeller d5de3867ca Polishing
(cherry picked from commit 3c6f1f8)
2015-05-22 17:50:13 +02:00
Juergen Hoeller a64dcc2a31 Message listener containers only call Session.recover() in client acknowledge mode
Issue: SPR-13052
(cherry picked from commit c111bd7)
2015-05-22 17:38:13 +02:00
Juergen Hoeller e5ccdfb029 Polishing
(cherry picked from commit ce4e795)
2015-05-11 20:12:46 +02:00
Juergen Hoeller adb54b2c69 Backported DispatcherServlet and ServletContextResourcePatternResolver refinements
Issue: SPR-13011
2015-05-11 19:58:36 +02:00
Juergen Hoeller eb6368ca3f CustomBooleanEditor avoids potential NPE in case of allowEmpty=false
Issue: SPR-13010
(cherry picked from commit 0cd7fed)
2015-05-11 19:58:20 +02:00
Juergen Hoeller ed9769a11b Avoid infinite loop in PatternMatchUtils
Issue: SPR-12971
(cherry picked from commit 8e074b6)
2015-05-11 19:58:11 +02:00
Juergen Hoeller b5a56ca3a9 CronSequenceGenerator explicitly rejects invalid incrementer delta
Issue: SPR-12871
(cherry picked from commit 50f4977)
2015-05-11 19:57:25 +02:00
Juergen Hoeller dd73848e15 BeanWrapperImpl.setPropertyValue throws InvalidPropertyException with correct property value for nested collection case
Issue: SPR-12866
(cherry picked from commit d506767)
2015-05-11 19:56:19 +02:00
Juergen Hoeller 64a039402a Clarification: Lifecycle does not imply auto-startup semantics
Issue: SPR-12855
(cherry picked from commit e9e2b73)
2015-05-11 19:55:21 +02:00
Sam Brannen e748cf17d9 Eclipse project deps come after third-party libs
This commit is a backport of SPR-11836.

Prior to this commit, the ordering of classpath entries in the
generated Eclipse .classpath files did not align with the intended
dependency management configured in the Gradle build. Specifically,
project dependencies often came before dependencies on third-party
libraries required for the given project, causing the project not to
compile in Eclipse.

This commit fixes this issue by introducing new functionality in the
ide.gradle script that moves all project dependencies to the end of the
generated classpath.

Issue: SPR-12947, SPR-11836
2015-04-24 21:23:00 +02:00
Juergen Hoeller 3e2491c058 Polishing 2015-03-23 22:43:49 +01:00
Juergen Hoeller e51da28897 Polishing
Issue: SPR-12803
2015-03-11 18:59:32 +01:00
Juergen Hoeller e7cc19537d ReflectiveMethodResolver reliably prefers direct matches over vararg methods
Issue: SPR-12803
2015-03-11 18:58:39 +01:00
Juergen Hoeller 474862a7c9 StandardMultipartFile declares itself as Serializable now
Issue: SPR-12795
(cherry picked from commit 5ba7b89)
2015-03-10 15:30:16 +01:00
Juergen Hoeller 0920266b33 PropertyResourceConfigurerTests accepts "." in operating system name
Issue: SPR-12794
(cherry picked from commit 6fe85c2)
2015-03-10 15:29:44 +01:00
Juergen Hoeller de9c5a8c4d Dependency updates for spring-oxm generation tasks
(cherry picked from commit ebe45cf)
2015-03-06 23:48:20 +01:00
Juergen Hoeller d879bad248 Polishing
(cherry picked from commit 7ed7f98)
2015-03-06 23:47:54 +01:00
Juergen Hoeller ff76be2d16 Converter interface explicitly documents null values
Issue: SPR-12780
(cherry picked from commit 5f30575)
2015-03-06 19:30:05 +01:00
Juergen Hoeller e5207e6231 Polishing 2015-03-02 21:17:16 +01:00
Juergen Hoeller 1c10861a92 Revised documentation on AUTO_ACKNOWLEDGE behavior
Issue: SPR-12705
(cherry picked from commit 91c47a9)
2015-03-02 20:25:10 +01:00
Sam Brannen 1f9bc50c3e 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
(cherry picked from commit 93c70b7440)
2015-02-28 18:01:24 +01:00
Brian Clozel 2d3fe96cd6 Allow file locations for resource handling
Prior to this change, location checks for serving resources would append
`/` to the location path it didn't already have one.

This commit makes sure not to append a `/` if the provided location is
actually a file.

Issue: SPR-12747
2015-02-27 19:12:01 +01:00
Juergen Hoeller 9b26e4f1ad Avoid potential deadlocks between event multicaster and singleton registry through shared lock
Issue: SPR-12739
(cherry picked from commit 772552b)
2015-02-26 21:08:49 +01:00
Juergen Hoeller 9a7871fb70 Consistent validation logic
Issue: SPR-12655
2015-02-20 00:20:07 +01:00
Juergen Hoeller 80128f1992 Polishing 2015-02-19 22:47:26 +01:00
Juergen Hoeller 186fef6808 Revised validation javadoc
Issue: SPR-12655
2015-02-19 22:46:29 +01:00
Juergen Hoeller 3f8d48eb1a Correct reference to executeAndReturnKey method
Issue: SPR-12639
2015-02-18 20:46:04 +01:00
Juergen Hoeller 3ed24bca20 ServletUriComponentsBuilder.java avoids NPE on scheme check
Issue: SPR-12723
(cherry picked from commit 61cc3b5)
2015-02-18 20:44:50 +01:00
Juergen Hoeller f8a8ecd8fe ScheduledAnnotationBeanPostProcessor uses target class as cache key in case of proxy
Issue: SPR-12709
(cherry picked from commit 1273c90)
2015-02-18 20:41:53 +01:00
Spring Buildmaster 16df002de7 Next Development Version 2014-12-30 08:23:52 -08:00
Stephane Nicoll 840ffc5ec4 Update changelog for 3.2.13 2014-12-30 16:49:14 +01:00
Stephane Nicoll 64e79ba692 Use hasLength rather than hasText 2014-12-30 15:39:48 +01:00
Stephane Nicoll 4bcf92f176 Restore JDK 5 compatiblity 2014-12-30 15:34:35 +01:00
Juergen Hoeller 75a9c45865 Polishing
Issue: SPR-12502
(cherry picked from commit 26845f6)
2014-12-30 10:13:03 +01:00
Juergen Hoeller 62a6c3733d Polishing
(cherry picked from commit e9d24d5)
2014-12-29 20:06:57 +01:00
Juergen Hoeller e353af65d2 HandlerExecutionChain prevents re-adding the interceptors array to the list (and declares varargs now)
Issue: SPR-12566
(cherry picked from commit 37713ae)
2014-12-29 20:05:04 +01:00
Juergen Hoeller 568e963466 Annotation post-processors clear old InjectionMetadata registrations on refresh
Issue: SPR-12526
(cherry picked from commit e118086)
2014-12-29 20:02:06 +01:00
Stephane Nicoll c50886ce03 Fix scope inheritance documentation
Issue: SPR-12570
2014-12-29 11:02:55 +01:00
Juergen Hoeller 2b0ada95ce AbstractApplicationEventMulticaster populates ListenerRetriever cache in fully synchronized fashion
Issue: SPR-12545
2014-12-22 15:46:58 +01:00
Juergen Hoeller 4efe6a8a5c AbstractFallbackTransactionAttributeSource's DefaultCacheKey takes targetClass into account (again)
Issue: SPR-12536
2014-12-22 14:01:19 +01:00
Juergen Hoeller ec3967a6c7 Consistent bridge method handling in annotation post-processors
Issue: SPR-12495
Issue: SPR-12187
(cherry picked from commit d97add0)
2014-12-22 13:44:01 +01:00
Juergen Hoeller 4c5e17ec3e Consistent resolution of Class methods and static methods
Issue: SPR-12502
(cherry picked from commit 9ef0bdc)
2014-12-07 23:56:06 +01:00
Juergen Hoeller 9413204838 Polishing
(cherry picked from commit 50c578c)
2014-11-28 22:06:45 +01:00
Juergen Hoeller 925c46e445 Polishing
Issue: SPR-12476
(cherry picked from commit c89d8ec)
2014-11-27 21:26:25 +01:00
Juergen Hoeller a6a837bc3b Revised SqlRowSet javadoc
Issue: SPR-12476
2014-11-27 17:59:49 +01:00
Juergen Hoeller 0e3b26da27 ExtendedBeanInfo ignores invalid bean properties (analogous to the JavaBeans Introspector)
Issue: SPR-12434
(cherry picked from commit b45f1aa)
2014-11-27 01:56:47 +01:00
Juergen Hoeller 98cbae7fdc Polishing
Issue: SPR-12462
(cherry picked from commit 5be50c8)
2014-11-24 19:11:22 +01:00
Brian Clozel 379d2e6da0 Fix location checks for servlet 3 resources
SPR-12354 applied new checks to make sure that served static resources
are under authorized locations.

Prior to this change, serving static resources from Servlet 3 locations
such as "/webjars/" would not work since those locations can be within
one of the JARs on path. In that case, the checkLocation method would
return false and disallow serving that static resource.

This change fixes this issue by making sure to call the
`ServletContextResource.getPath()` method for servlet context resources.

Note that there's a known workaround for this issue, which is using a
classpath scheme as location, such as:
"classpath:/META-INF/resources/webjars/" instead of "/webjars".

Issue: SPR-12432
(cherry picked from commit 1214624)
2014-11-24 19:11:15 +01:00
Brian Clozel c75e370eaf Use https for maven repositories
(cherry picked from commit 493e846)
2014-11-24 19:07:57 +01:00
Juergen Hoeller 4b4bc2dae0 Revised fix for SPR-12334, now finding duplicates at the collectImports level
Issue: SPR-12442
2014-11-22 23:59:12 +01:00
Juergen Hoeller feb6552d2c Avoid early initialization of Derby driver (for "derby.stream.error.method" system property)
Issue: SPR-12437
2014-11-22 23:21:31 +01:00
Juergen Hoeller 7f1e5a49a4 Polishing
(cherry picked from commit 2675ce7)
2014-11-22 23:19:48 +01:00
Juergen Hoeller f6e1856276 Rearranged WebAsyncTask constructor interdependencies and assertions
Issue: SPR-12457
(cherry picked from commit aadb93f)
2014-11-22 23:19:41 +01:00
Juergen Hoeller d02d9cea4e MethodParameter generally uses volatile variables where applicable now (as well as a local copy of the parameterNameDiscoverer field)
Issue: SPR-12453
(cherry picked from commit 7fcadaa)
2014-11-22 23:19:35 +01:00
Spring Buildmaster cf5077861a Next Development Version 2014-11-11 02:26:26 -08:00
Stephane Nicoll e2b42614c4 Update changelog 2014-11-11 10:37:24 +01:00
Rossen Stoyanchev 3f68cd633f Apply extra checks to static resource handling
- remove leading '/' and control chars
- improve url and relative path checks
- account for URL encoding
- add isResourceUnderLocation final verification

Issue: SPR-12354
2014-11-11 06:49:42 +01:00
Juergen Hoeller e1d6826fcd Polishing 2014-11-11 03:26:40 +01:00
Rossen Stoyanchev 6b353e889a Improve exception message
Issue: SPR-12230
(cherry picked from commit 2d0a677)
2014-11-06 16:34:37 +01:00
Juergen Hoeller 983ebaf658 Log context cache statistics in the TCF
Prior to this commit, finding out how many application contexts had
been loaded within a test suite required the use of reflection and a
bit of hacking.

This commit addresses this issue by logging ContextCache statistics
whenever an application context is loaded by the Spring TestContext
Framework (TCF).

The log output can be enabled by setting the
"org.springframework.test.context.cache" logging category to DEBUG.

Issue: SPR-12409
(cherry picked from commit a09bc9b)
2014-11-06 16:34:29 +01:00
Juergen Hoeller d5e4592728 Polishing 2014-11-02 11:19:54 +01:00
Juergen Hoeller 233393e3d5 Test for <util:map> with LinkedCaseInsensitiveMap and specified key/value types, with corresponding 3.2.x fix
Issue: SPR-10994
(cherry picked from commit de8645b)
2014-11-02 11:08:46 +01:00
Juergen Hoeller bb6349f8cc SimpleMetadataReaderFactory is capable of resolving inner class names with dot syntax now (analogous to ClassUtils.forName)
Issue: SPR-12390
(cherry picked from commit 2d874d7)
2014-11-02 00:22:08 +01:00
Juergen Hoeller d53b67f5cb TilesConfigurer defensively expects null from getResources in case of no resources found
Also includes order preservation for resource results with Tiles 2 as well as retrieval failure logging with Tiles 3.

Issue: SPR-12362
(cherry picked from commit c8b8dc5)
2014-11-02 00:21:19 +01:00
Juergen Hoeller f812998826 Set ResponseStatusExceptionResolver.messageSource in the MVC Java config
Issue: SPR-12380
(cherry picked from commit aa82da8)
2014-11-02 00:21:02 +01:00
Juergen Hoeller 7d44c7cb51 QualifierAnnotationAutowireCandidateResolver calls BeanFactory.getType defensively
Issue: SPR-12191
(cherry picked from commit 73ce3b5)
2014-10-22 17:23:41 +02:00
Juergen Hoeller be89612ec0 ConfigurationClassParser avoids ImportBeanDefinitionRegistrar double scan
Issue: SPR-12334
2014-10-22 01:58:57 +02:00
Juergen Hoeller 4ab27d83a1 Consistently accept empty Content-Type header and empty character encoding
Issue: SPR-12173
(cherry picked from commit a1c0905)
2014-10-22 01:58:22 +02:00
Juergen Hoeller de3ea5dad6 Deprecated BeanDefinitionDocumentReader's setEnvironment method in favor of access via XmlReaderContext
Issue: SPR-12248
2014-10-07 18:00:21 +02:00
Juergen Hoeller 1341fd4e73 Consistent use of LinkedHashSet for interfaces (since interface order may matter in subtle cases)
(cherry picked from commit 6f9d7da)
2014-10-07 17:50:20 +02:00
Juergen Hoeller 473d97350e Explicitly detect (and log) private @Scheduled methods on CGLIB proxies
Issue: SPR-12308
(cherry picked from commit 47ed4d6)
2014-10-07 17:38:37 +02:00
Juergen Hoeller 76ab5b9de2 Consistent reset of resource holders on doBegin failure
Issue: SPR-12280
(cherry picked from commit 9758bc7)
2014-10-07 00:39:45 +02:00
Juergen Hoeller 6183e83b6a Provider declaration for @Value method argument works again
Issue: SPR-12297
(cherry picked from commit c672678)
2014-10-07 00:23:24 +02:00
Juergen Hoeller a1538a451a Further locking optimizations for the retrieval of non-singleton beans
Issue: SPR-12250
(cherry picked from commit ac4103d)
2014-10-07 00:12:12 +02:00
Juergen Hoeller b45d08f192 Remove outdated references to ContextLoaderServlet
Issue: SPR-7725
2014-09-30 20:56:57 +02:00
Juergen Hoeller 65d47afc11 WebAsyncManager avoids concurrentResult.toString() and builds correct DeferredResultProcessingInterceptor keys
Issue: SPR-12253
(cherry picked from commit 901346e)
2014-09-30 20:51:45 +02:00
Juergen Hoeller 2c921681fe LiveBeansView escapes double quotes in resource descriptions
Issue: SPR-12252
(cherry picked from commit 1ffefcb)
2014-09-30 20:49:04 +02:00
Juergen Hoeller 834ddad616 Polishing
(cherry picked from commit 50e50d0)
2014-09-20 01:01:30 +02:00
Juergen Hoeller 37da70629f ScheduledAnnotationBeanPostProcessor avoids needless re-scanning of non-annotated classes
Issue: SPR-12189
(cherry picked from commit 58b22ce)
2014-09-17 22:50:05 +02:00
Juergen Hoeller 5cf452463e Log warning for single optional constructor when no default constructor to fall back to
Issue: SPR-12161
(cherry picked from commit 80cec01)
2014-09-17 22:39:13 +02:00
Juergen Hoeller e819999c08 Polishing 2014-09-17 19:10:33 +02:00
Juergen Hoeller 3a1f7b6d14 Client request implementations enforce RFC 6265 (cookies in a single header)
Issue: SPR-12196
(cherry picked from commit 26a93b6)
2014-09-17 18:43:04 +02:00
Juergen Hoeller 44c52a9096 Accept empty Content-Type header
Issue: SPR-12173
(cherry picked from commit 70412a9)
2014-09-17 18:17:09 +02:00
Spring Buildmaster f2675f7571 Next Development Version 2014-09-04 06:29:53 -07:00
Brian Clozel 0262d33f11 Polish 2014-09-04 11:27:55 +02:00
Brian Clozel ab8c3c785f Update changelog for 3.2.11 version 2014-09-04 11:13:32 +02:00
Juergen Hoeller 3264437cec Polishing 2014-09-04 02:42:34 +02:00
Juergen Hoeller 3d4e73b10c Polishing 2014-09-04 01:47:00 +02:00
Juergen Hoeller 42557743e8 CachingConnectionFactory proceeds to physicalClose in case of logicalClose exceptions
Issue: SPR-12148
(cherry picked from commit 82f8b43)
2014-09-04 01:45:47 +02:00
Juergen Hoeller d18bdf6448 Polishing
(cherry picked from commit d2ef6dc)
2014-09-03 14:25:16 +02:00
Juergen Hoeller 5da8a16284 AbstractAutowireCapableBeanFactory avoids early FactoryBean instantiation on currently created configuration bean
Issue: SPR-12141
(cherry picked from commit 4432c41)
2014-09-03 14:23:56 +02:00
Sam Brannen 3b64db18f7 Include ALL source artifacts in published sources jars
This commit updates the Gradle build to ensure that *all* source
artifacts are including in published 'sources' jars.

To achieve this, we are now assembling 'sources' jars from
'sourceSets.main.allSource' and not explicitly including or excluding
anything by default.

Issue: SPR-12085
(cherry picked from commit 07629a3c7c)
2014-08-26 17:06:42 +02:00
Juergen Hoeller 21f0057990 Polishing 2014-08-23 00:11:19 +02:00
Juergen Hoeller 3e17331fd9 PropertySource implementations perform conversion to String arrays via StringUtils (getting rid of EMPTY_NAMES_ARRAY)
(cherry picked from commit b73c531)
2014-08-22 23:51:39 +02:00
Juergen Hoeller a4c8e6176c Consistent attribute documentation/formatting in spring-context and spring-mvc schemas
(cherry picked from commit b5763fe)
2014-08-22 23:50:34 +02:00
Juergen Hoeller 7cf4a4ed2d DispatcherServlet's checkMultipart detects wrapped MultipartRequest as well
Issue: SPR-12114
(cherry picked from commit 786fd92)
2014-08-22 23:49:16 +02:00
Juergen Hoeller 388561df61 PersistenceAnnotationBeanPostProcessor defensively handles BeanDefinition access for extended EntityManagers
Issue: SPR-8834
(cherry picked from commit 592e344)
2014-08-22 23:47:26 +02:00
Juergen Hoeller e89f18bf6d DefaultListableBeanFactory defensively handles BeanDefinition access in getBean(Class)
Issue: SPR-10542
(cherry picked from commit 9d3d6d5)
2014-08-22 23:44:47 +02:00
Stephane Nicoll 76a3e6e6e1 Exclude infra modules from public distribution
Prior to this commit, spring-build-src and spring-framework-bom
internal artifacts were published as part of the distribution bundle.

This commit excludes those projects so that those unnecessary artifacts
are no longer shipped.

Issue: SPR-12087
2014-08-18 13:33:16 +02:00
Juergen Hoeller 0492c9955c Polishing
(cherry picked from commit a31ebb6)
2014-08-15 00:30:14 +02:00
Juergen Hoeller 0c89279d61 Polishing 2014-08-13 15:54:21 +02:00
Juergen Hoeller 3038f03fee Polishing
(cherry picked from commit 4db258b)
2014-08-11 23:34:49 +02:00
Juergen Hoeller 36918d6bb7 Polishing (includes varargs for selected setters) 2014-08-11 22:12:26 +02:00
Juergen Hoeller 6639320e8e Tiles 3 TilesViewResolver allows for specifying custom TilesView subclasses as well
Issue: SPR-12075
(cherry picked from commit 7c57424)
2014-08-11 22:11:07 +02:00
Juergen Hoeller 214f026ea3 Polishing 2014-07-29 12:45:32 +02:00
Juergen Hoeller c0a4631fd1 Polishing 2014-07-29 10:10:48 +02:00
Juergen Hoeller daaeeaa8e2 Latest dependency updates (Hibernate ORM 4.2.15, propdeps plugin 0.0.7) 2014-07-29 00:47:30 +02:00
Juergen Hoeller 780ea59ff3 Polishing 2014-07-29 00:46:20 +02:00
Juergen Hoeller e14aad8840 ResourceHttpMessageConverter does not call contentLength() on InputStreamResource
Issue: SPR-12017
(cherry picked from commit f0bcb77)
2014-07-29 00:18:16 +02:00
Juergen Hoeller 902303b44d AbstractMessageListenerContainer calls "Session.recover()" in case of rollback attempt on non-transacted Session
Issue: SPR-12015
(cherry picked from commit c082220)
2014-07-29 00:17:31 +02:00
Juergen Hoeller b56c8f49b5 AbstractApplicationContext logs initialization exception before trying to cancel refresh attempt
Issue: SPR-12010
(cherry picked from commit 5e2fbe7)
2014-07-29 00:16:41 +02:00
Juergen Hoeller 619e3a995d ClassUtils.isCacheSafe defensively catches SecurityException (for Google App Engine compatibility)
Issue: SPR-12002
(cherry picked from commit 48fea0b)
2014-07-29 00:15:09 +02:00
Juergen Hoeller a3ebf13579 SelectedValueComparator defensively handles null values in exhaustiveCompare
Issue: SPR-12001
(cherry picked from commit 980f971)
2014-07-29 00:13:29 +02:00
Juergen Hoeller ab9d947c08 DefaultListableBeanFactory's registerBeanDefinition only calls resetBeanDefinition in case of pre-existing bean definition or pre-existing singleton instance
Issue: SPR-8318
(cherry picked from commit a4968b9)
2014-07-29 00:13:04 +02:00
Arjen Poutsma b6f13b857c StaxStreamXMLReader ignores significant whitespace
The StaxStreamXMLReader no longer handles all whitespace as ignorable
whitespace.

Issue: SPR-12000
(cherry picked from commit d6950d8)
2014-07-29 00:08:14 +02:00
Brian Clozel 8c43fe1796 Fix UriComponentsBuilder.fromUriString parsing error
This commit fixes cases where part of the URI was mistaken for the
userinfo when:
* the URI did not contain any path
* the query string contained the "@"

Issue: SPR-11970
(cherry picked from commit a4484bb)
2014-07-29 00:06:26 +02:00
Spring Buildmaster a95ed4ad29 Next development version 2014-07-15 16:35:20 -07:00
Phillip Webb 612eba6728 Update changelog 2014-07-15 15:52:39 -07:00
Juergen Hoeller 7a3dd2a42b Allow ASM5's bytecode parsing of INVOKESPECIAL/STATIC on interfaces
Issue: SPR-11979
2014-07-10 17:03:18 +02:00
Juergen Hoeller cec3ffa3ca Polishing
Issue: SPR-8045
(cherry picked from commit 7eee7d2)
2014-07-08 00:16:32 +02:00
Juergen Hoeller a45d49c857 RestTemplate accepts getMessageConverters() List on setMessageConverters again
Issue: SPR-11962
(cherry picked from commit 1222ca3)
2014-07-07 21:05:27 +02:00
Juergen Hoeller 45c93e4791 Polishing 2014-07-04 22:39:29 +02:00
Juergen Hoeller 83a7deb594 ConstructorResolver's exception message on null factory-bean hints at potential BeanPostProcessor involvement
Issue: SPR-11951
(cherry picked from commit 6c41cc3)
2014-07-04 22:35:12 +02:00
Juergen Hoeller d10220edf8 Refined DefaultJpaDialect's InvalidIsolationLevelException message
Issue: SPR-8325
(cherry picked from commit af13310)
2014-07-03 22:54:30 +02:00
Juergen Hoeller fe72fcede5 Polishing
(cherry picked from commit ede2150)
2014-07-02 18:18:21 +02:00
Juergen Hoeller 010d8b8c89 Defensively check for pre-resolved FactoryBean.getObject() results in circular reference scenarios
Issue: SPR-11937
(cherry picked from commit 07edf11)
2014-07-02 00:32:01 +02:00
Juergen Hoeller 8307447235 CachedIntrospectionResults uses SoftReference instead of WeakReference for non-cache-safe entries
Issue: SPR-11867
(cherry picked from commit f27b949)
2014-07-02 00:31:06 +02:00
Juergen Hoeller 983cce22d8 Package javadoc cleanup for web.servlet.mvc, removing outdated references
Issue: SPR-11935
(cherry picked from commit 7396210)
2014-07-01 18:26:31 +02:00
Juergen Hoeller 67ebef6b32 BeanFactoryAnnotationUtils consistently applies bean name fallback when no BeanDefinition present
Issue: SPR-11915
(cherry picked from commit b9935e9)
2014-07-01 18:26:26 +02:00
Juergen Hoeller 386b757e84 Upgrade to ASM 5.0.3 (and Hibernate 4.2.14)
Issue: SPR-11889
2014-07-01 14:45:04 +02:00
Juergen Hoeller c033f889bf Polishing (backported from master)
(cherry picked from commit 48f753f)
2014-07-01 14:28:05 +02:00
Juergen Hoeller 44c61e5d5f Consistent declaration of private static final logger variables
Issue: SPR-11905
(cherry picked from commit c16032b)
2014-07-01 14:22:56 +02:00
Juergen Hoeller f4062bc758 AbstractAutowireCapableBeanFactory's createBean/autowireBean/configureBean use CacheUtils.isCacheSafe to re-enable PropertyDescriptor caching
Issue: SPR-11875
(cherry picked from commit c32d559)
2014-07-01 14:22:03 +02:00
Juergen Hoeller 0298a1f093 Cache Class.getDeclaredMethods() results and avoid pattern matching in isCglibRenamedMethod as far as possible
Issue: SPR-11882
Issue: SPR-11894
(cherry picked from commit 5f695a4)
2014-07-01 14:21:37 +02:00
Juergen Hoeller 247771ce91 UriComponentBuilder allows for multiple independent build() calls on same builder instance
Issue: SPR-11885
(cherry picked from commit c73ac07)
2014-07-01 14:20:11 +02:00
Juergen Hoeller 1be3a6cce2 FrameworkPortlet properly initializes StandardPortletEnvironment's property sources and exposes local PortletRequestAttributes in case of pre-bound ServletRequestAttributes as well
Issue: SPR-11816
Issue: SPR-11295
(cherry picked from commit 7d94b5e)
2014-07-01 14:19:56 +02:00
Juergen Hoeller 1ca0351831 PathMatchingResourcePatternResolver's findPathMatchingResources needs to check for VFS before checking isJarResource
ResourceUtils isFileURL also detects "vfsfile" as a file system protocol (again).

Issue: SPR-11887
(cherry picked from commit 8ddbbc2)
2014-07-01 14:19:20 +02:00
Juergen Hoeller 5b4748d897 MBeanExportConfiguration's SpecificPlatform properly calls afterPropertiesSet
Issue: SPR-11877
(cherry picked from commit 0a34f86)
2014-07-01 14:18:51 +02:00
Juergen Hoeller 13197b6aa5 WebSphereUowTransactionManager exposes SmartTransactionObject
Issue: SPR-11876
(cherry picked from commit a0c86ae)
2014-07-01 14:18:14 +02:00
Juergen Hoeller d96550898f HttpHeaders fails getAllow if set to EmptyCollection
Prior to this commit, calls to getAllow would fail is setAllow was set
to an EmptyCollection right before.

    java.lang.IllegalArgumentException: No enum constant
    org.springframework.http.HttpMethod

This commit fixes this by testing the header value for an empty value
before trying to use it to get a value from the Enum.

Issue: SPR-11917
(cherry picked from commit 9054f4f)
2014-07-01 14:17:55 +02:00
Spring Buildmaster fa2d21c27c Next development version 2014-05-20 04:50:17 -07:00
Phillip Webb 69b9d00179 Add 3.2.9 issues to the changelog 2014-05-20 11:40:13 +01:00
Juergen Hoeller 8aabc43dad Servlet 3 multipart request implements getParameterMap defensively as well
Issue: SPR-11074
(cherry picked from commit c7d1c49)
2014-05-20 11:28:57 +02:00
Juergen Hoeller 4d3aa59028 Polishing
(cherry picked from commit 6fef8b9)
2014-05-20 11:27:55 +02:00
Rossen Stoyanchev c6503ebbf7 Disable URL resolution in DTD declarations
Issue: SPR-11768
2014-05-19 22:43:14 -04:00
Juergen Hoeller f42f2231a4 Minor UriComponentsBuilder javadoc revision
(cherry picked from commit 545c28f)
2014-05-20 01:06:01 +02:00
Juergen Hoeller 0313222bc7 Consistent use of IllegalStateException instead of InternalError for UnsupportedEncodingException cause
(cherry picked from commit d9b39ad)
2014-05-20 01:05:55 +02:00
Juergen Hoeller f524a5abe4 StringUtils.parseLocaleString parses variant correctly when variant contains country code
This commit also includes a JUnit 4 style revision of StringUtilsTests and ObjectUtilsTests.

Issue: SPR-11806
(cherry picked from commit 295a6ae)
2014-05-19 23:05:47 +02:00
Juergen Hoeller f053ce52ea Consistently log Class.getName() instead of Class.toString(), avoiding double class term in log message
Issue: SPR-11804
(cherry picked from commit 1120680)
2014-05-19 21:03:29 +02:00
Juergen Hoeller 5e05a84d81 Refined check for NoClassDefFoundError in getTestExecutionListeners()
Issue: SPR-11804
(cherry picked from commit a2ef2c9)
2014-05-19 17:55:58 +02:00
Juergen Hoeller c7b2ac7bac Backported proper updateAccessedAttributes test
Issue: SPR-11738
(cherry picked from commit 1bbc032)
2014-05-19 17:40:11 +02:00
Juergen Hoeller cbff8b01bb Javadoc fixes 2014-05-18 23:55:57 +02:00
Juergen Hoeller dc50001620 Additional tests for configuration class importing via ASM
Issue: SPR-11647
(cherry picked from commit 8c9116f)
2014-05-18 23:55:12 +02:00
Juergen Hoeller faaf43677d Servlet 3 multipart request implements getParameterNames defensively (for WebLogic 12 compatibility)
This commit also includes lazy resolution support for StandardServletMultipartResolver, along the lines of existing lazy mode in CommonsMultipartResolver.

Issue: SPR-11074
Issue: SPR-11730
(cherry picked from commit 82336c3)
2014-05-18 20:51:39 +02:00
Rossen Stoyanchev f6fddeb6eb Improve StringUtils.cleanPath
Issue: SPR-11793
2014-05-16 11:28:53 -04:00
Juergen Hoeller c3ba0a2c5b JmsResourceHolder checks for nested DataSource transactions as well (for Oracle AQ compatibility)
Issue: SPR-11791
(cherry picked from commit 5faacd5)
2014-05-16 16:55:10 +02:00
Juergen Hoeller 8fed2f0c6c Minor 3.2.x build polishing (including Tiles 3.0.4 upgrade) 2014-05-16 16:54:50 +02:00
Juergen Hoeller b0f7184f3f Polishing 2014-05-15 15:19:17 +02:00
Juergen Hoeller 3ae6c0f401 ResultSetWrappingSqlRowSet preserves first matching column per name (as defined in ResultSet's javadoc)
Issue: SPR-11786
(cherry picked from commit 0728e32)
2014-05-15 15:10:12 +02:00
Juergen Hoeller bc43f2e72a IdToEntityConverter defensively handles access to getDeclaredMethods
Issue: SPR-11758
(cherry picked from commit 381ccde)
2014-05-09 23:17:01 +02:00
Juergen Hoeller 759bb33665 Upgraded to propdeps plugin 0.0.6 and backported several build script refinements 2014-05-01 00:49:29 +02:00
Juergen Hoeller a139670286 Fixed invalid code tag in javadoc 2014-05-01 00:49:22 +02:00
Juergen Hoeller 1fe477a273 Upgraded to Gradle 1.12 and updated selected dependencies
(cherry picked from commit e84f61b)
2014-04-30 20:48:57 +02:00
Juergen Hoeller 0e710769c2 JRubyScriptUtils defensively handles null Nodes in findClassNode (fails against JRuby 1.7.12 otherwise)
Issue: SPR-11747
(cherry picked from commit adb616b)
2014-04-30 20:47:59 +02:00
Juergen Hoeller a5606a6c46 Polishing 2014-04-29 23:39:17 +02:00
Juergen Hoeller 3cb1cb5d2f ConfigurationClassParser considers EnvironmentAware on ImportBeanDefinitionRegistrars
Issue: SPR-11744
2014-04-29 22:02:18 +02:00
Juergen Hoeller 79820e449b ConfigurationClassEnhancer consistently uses registerStaticCallbacks in order to prevent memory leaks
Issue: SPR-9274
2014-04-29 21:59:12 +02:00
Juergen Hoeller 2f5d378d82 AbstractAdvisingBeanPostProcessor uses target class check for existing proxy but checks against actual exposed object otherwise (catching introductions)
Issue: SPR-11725
(cherry picked from commit a0658c5)
2014-04-29 21:49:09 +02:00
Juergen Hoeller 228a586efb AspectJExpressionPointcut defensively handles fallback expression parsing
Issue: SPR-9335
(cherry picked from commit ce4912b)
2014-04-29 21:45:19 +02:00
Juergen Hoeller b13c5b2378 GenericBeanDefinition's toString() takes parent definition into account
Issue: SPR-9671
(cherry picked from commit 0ef29b2)
2014-04-29 21:42:19 +02:00
Juergen Hoeller 779a6b79eb Polishing 2014-04-27 22:52:51 +02:00
Juergen Hoeller 9e2060707a General defensiveness about the bootstrap ClassLoader (i.e. null ClassLoader)
Issue: SPR-11721
2014-04-27 22:29:08 +02:00
Juergen Hoeller 2c1203dc9f AnnotationTypeFilter prevents ASM-based loading of java.* and javax.* interfaces as well
Issue: SPR-11719
2014-04-27 22:28:56 +02:00
Juergen Hoeller 6ee0596c3a SpringProperties falls back to ClassLoader.getSystemResource when loaded in bootstrap ClassLoader
Issue: SPR-11721
(cherry picked from commit 9cb5f48)
2014-04-27 22:28:08 +02:00
Juergen Hoeller 93d13cfcb1 AbstractMarshaller avoids SAXSource workaround when processExternalEntities=true
Issue: SPR-11737
2014-04-27 22:27:46 +02:00
Juergen Hoeller de80cd9b3b ASM 5.0.2 for correct Java 7 stack map frame computations
Issue: SPR-11656
2014-04-25 23:50:02 +02:00
Juergen Hoeller 470e9c8558 Configuration class processing explicitly skips java.* classes since we'll never find @Bean annotations there anyway
Issue: SPR-11718
2014-04-25 23:39:50 +02:00
Juergen Hoeller dc934064a2 @Bean processing explicitly ignores bridge methods (for method overrides with return type narrowing on JDK 8)
Issue: SPR-11718
2014-04-25 23:37:37 +02:00
Juergen Hoeller 5d5f70473a checkNotModified leniently handles IE-10-style If-Modified-Since values and silently proceeds if header value cannot be parsed at all
Issue: SPR-11727
(cherry picked from commit 794e859)
2014-04-25 23:33:10 +02:00
HejiaHo ac85eab372 Fix ConcurrentReferenceHashMap max constraints
Update calculateShift to respect the maximum upper bound as well as the
minimum value.

Issue: SPR-11720

(cherry picked from commit 16410cad)
2014-04-22 15:01:51 +01:00
Juergen Hoeller ffaac0ecf3 Polishing 2014-04-18 13:23:05 +02:00
Juergen Hoeller 5aa93674a3 Consistent documentation for both 'close' and 'shutdown' as inferred destroy methods
Issue: SPR-11680
(cherry picked from commit 14f9dbf)
2014-04-18 12:09:27 +02:00
Phillip Webb 62941b7937 Fixup .mailmap file
Fix a few issues with the `.mailmap` file.

(cherry picked from commit 3a5de00c)
2014-04-18 11:01:38 +01:00
Graham Lea 5fac6614b6 Added a Git .mailmap file
(cherry picked from commit a5e1932c)
2014-04-18 09:50:43 +01:00
Sam Brannen a169c0e727 Ensure Gradle does not execute inner classes as tests 2014-04-10 16:56:56 +02:00
Juergen Hoeller 94caaedf84 Polishing 2014-04-09 20:31:15 +02:00
Juergen Hoeller be6b54fe8b JBoss "vfszip" resources need to be treated as jar URLs
Issue: SPR-11676
2014-04-09 20:30:50 +02:00
Juergen Hoeller 9ac46a965f Java 8 bytecode compatibility for Spring 3.2.x
Issue: SPR-11656
2014-04-09 20:29:17 +02:00
Juergen Hoeller d8a0f7578d Commons Logging resolution failure with JasperReports 2.0.5 -> easiest way out: upgrade to JasperReports 3.7.6 (which in turn requires POI 3.6) 2014-04-02 22:59:42 +02:00
Juergen Hoeller 99a3e9cacb Revised ByteArrayOutputStream handling in MarshallingView and co
Issue: SPR-11646
(cherry picked from commit 8006696)
2014-04-02 22:56:34 +02:00
Juergen Hoeller f93bfa8f84 ResourceHttpRequestHandler explicitly closes a Resource's InputStream
Issue: SPR-11644
(cherry picked from commit 3a96f16)
2014-04-02 22:55:52 +02:00
Juergen Hoeller b80dc9d642 Polishing
Issue: SPR-11262
(cherry picked from commit d628025)
2014-04-02 22:55:33 +02:00
Sam Brannen b31750fafb Reinject Servlet mocks between TestNG test methods
Prior to this commit, if multiple test methods were executed in a
subclass of AbstractTestNGSpringContextTests annotated with
@WebAppConfiguration, then injected Servlet API mocks would only
reference the mocks created for the first test method. Subsequent test
methods could therefore never reference the current mocks, and there
was a discrepancy between the state of the injected mocks and the mock
set in the RequestContextHolder.

This commit addresses this issue by ensuring that dependencies
(including updated mocks) are injected into the test instance before
the next test method if the ServletTestExecutionListener resets the
request attributes in RequestContextHolder.

Issue: SPR-11626
(cherry picked from commit c38600762d)
2014-03-29 21:43:42 +01:00
Juergen Hoeller a4a2e80f23 Consider a null ClassLoader (typically the bootstrap CL) as cache-safe
Issue: SPR-11606
2014-03-26 23:48:29 +01:00
Juergen Hoeller e8c06c6d99 Consistent PropertyAccessor method order as declared in the interface
Issue: SPR-11609
(cherry picked from commit b70148c)
2014-03-26 21:57:40 +01:00
Juergen Hoeller d8180e1e20 Correctly resolve accessors for static properties on Class
Issue: SPR-11609
(cherry picked from commit 3af8a32)
2014-03-26 21:57:35 +01:00
Juergen Hoeller 88485dc1a7 Maintenance version updates (aligned with 4.0.3 release) 2014-03-26 21:12:25 +01:00
Juergen Hoeller a25d67770e Added expression test case for constant on Map
Issue: SPR-11609
2014-03-26 21:11:49 +01:00
Juergen Hoeller 5c9fc09852 Added Spring Data oriented conversion test case
Issue: SPR-11608
2014-03-26 20:50:00 +01:00
Juergen Hoeller e1602f7f83 AbstractApplicationEventMulticaster only caches if event type and source type are cache-safe
Issue: SPR-11606
(cherry picked from commit 3388573)
2014-03-26 20:34:55 +01:00
Juergen Hoeller 20228e78c5 CacheAspectSupport checks Cache.get(key) once per invocation only
Issue: SPR-11592
2014-03-26 00:21:39 +01:00
Juergen Hoeller 623b1fc0d5 Polishing 2014-03-25 00:37:01 +01:00
Juergen Hoeller a2bdc284f9 DispatcherServlet logs request URI in encoded form only
Issue: SPR-11591
(cherry picked from commit 465ca24)
2014-03-25 00:36:36 +01:00
Juergen Hoeller dbd5f67498 Consistently applied appropriate ByteArrayOutputStream initial capacities across the codebase
Issue: SPR-11594
(cherry picked from commit dd7f54c)
2014-03-25 00:35:33 +01:00
Juergen Hoeller ab85aa2096 BufferedImageHttpMessageConverter ignores empty MIME types
Issue: SPR-11581
(cherry picked from commit 90e3dbb)
2014-03-25 00:34:53 +01:00
Juergen Hoeller 5c3f6a1571 Revised naming for prototype inner beans to avoid excessive unique name calculation
Restored original singleton-only adaptInnerBeanName behavior, avoiding endless unique name calculation for every single prototype instance. Non-named inner BeanDefinition objects now suffixed with an identity hex code analogous to non-named XML bean definitions, largely avoiding naming collisions to begin with. After SPR-11246, post-processors can deal with unstable classes per bean name, so occasional collisions aren't a hard problem anymore.

Issue: SPR-11545
(cherry picked from commit 5308b3e)
2014-03-25 00:34:41 +01:00
Juergen Hoeller b73a43972e Upgraded to TestNG 6.8.8 and Hibernate 4.2.10 2014-03-11 21:36:44 +01:00
Juergen Hoeller 9585752693 Polishing 2014-03-11 21:36:10 +01:00
Juergen Hoeller 5c0fdb05bd AbstractFlashMapManager needs to decode parameter names
Also includes general alignment with the 4.0.3 versions of AbstractFlashMapManager and FlashMapManagerTests.

Issue: SPR-11504
2014-03-11 21:35:36 +01:00
Juergen Hoeller eeb82c409a SpEL property-not-found message hints at non-public method/field
Issue: SPR-11535
2014-03-11 10:47:53 +01:00
Juergen Hoeller d317b637e0 CollectionToCollectionConverter avoids collection copy for untyped collection when simply returning source anyway
Also uses addAll instead of iteration over untyped collection now, supporting optimized addAll in target collection type, and avoids repeated getElementTypeDescriptor calls.

Issue: SPR-11479
(cherry picked from commit bea94d5)
2014-03-10 18:48:01 +01:00
Stephane Nicoll b1bcc5d6eb Fix double SPeL evaluation of parameter
When a node of an SPeL expression was a call to a bean referenced
 in a method argument, the expression was resolved twice.

 The resolved arguments are now specified to MethodValueRef instead
 of resolving the arguments again in the constructor

 Issue: SPR-11445
(cherry picked from commit 519799e)
2014-03-07 14:59:41 +01:00
Juergen Hoeller f1ba789494 DefaultListableBeanFactory only puts 'cache-safe' Class keys into its by-type cache
Issue: SPR-11520
(cherry picked from commit 93c8b7a)
2014-03-07 14:58:51 +01:00
Juergen Hoeller d642cd21bb SpringBeanELResolver's setValue should not throw PropertyNotWritableException if provided value is identical to current bean instance
Issue: SPR-11502
(cherry picked from commit 7972b31)
2014-03-07 14:58:16 +01:00
Juergen Hoeller 70155e9ff9 KeyGenerators should not return a plain array parameter as raw key but rather always handle that case in a deepHashCode fashion
Issue: SPR-11505
(cherry picked from commit e50cff4)
2014-03-07 14:57:25 +01:00
Juergen Hoeller 7e2a214f32 instantiateUsingFactoryMethod avoids NPE and reports argument types in case of explicitArgs and resolved generic arguments as well
Issue: SPR-11517
(cherry picked from commit ad31777)
2014-03-07 14:56:45 +01:00
Juergen Hoeller 4c9c7634d0 Log4jWebConfigurer does not try to parse empty "log4jRefreshInterval" context-param
Issue: SPR-11507
(cherry picked from commit 9b77157)
2014-03-07 14:55:44 +01:00
Juergen Hoeller 69c54a053c Fixed content length check in XmlValidationModeDetector
Issue: SPR-11477
(cherry picked from commit 1763bfb)
2014-03-07 14:55:11 +01:00
Rossen Stoyanchev 4b9aad8f65 Refactor async result handling in Spring MVC Test
This change removes the use of a CountDownLatch to wait for the
asynchronously computed controller method return value. Instead we
check in a loop every 200 milliseconds if the result has been set.
If the result is not set within the specified amount of time to wait
an IllegalStateException is raised.

Additional changes:
 - Use AtomicReference to hold the async result
 - Remove @Ignore annotations on AsyncTests methods
 - Remove checks for the presence of Servlet 3

Issue: SPR-11516
2014-03-05 14:54:34 -05:00
Spring Buildmaster 5fe436c9a9 Next development version 2014-02-18 21:51:58 -08:00
Phillip Webb 082a564b9b Update changelog for 3.2.8 2014-02-18 20:58:34 -08:00
Rossen Stoyanchev fb0683c066 Add processExternalEntities support to OXM
Update OXM AbstractMarshaller to support processing of external
XML entities. By default external entities will not be processed.

Issue: SPR-11376
2014-02-18 16:01:20 -08:00
Phillip Webb 09c57203bb Fix memory leak in ConcurrentReferenceHashMap
Update ConcurrentReferenceHashMap to protect against references that
have been garbage collected but for some reason do not appear as a
`pollForPurge` result.

Also added purgeUnreferencedEntries() method to allow for programmatic
cleanup.

Issue: SPR-11440
(cherry picked from commit 2b4c81e6)
2014-02-18 15:18:26 -08:00
Juergen Hoeller 4886bf0708 Polishing 2014-02-14 23:46:22 +01:00
Juergen Hoeller 75e08695a0 Mixed polishing along with recent changes
(cherry picked from commit 14e5a02)
2014-02-14 23:27:09 +01:00
Juergen Hoeller 5da79ebca6 Related polishing
Issue. SPR-11428
(cherry picked from commit 9c6df76)
2014-02-14 23:21:29 +01:00
Juergen Hoeller bb7a1372c0 Avoid unnecessary getMappingForMethod repeat (in particular for RequestMappingInfo)
Issue. SPR-11428
(cherry picked from commit f913940)
2014-02-14 22:54:16 +01:00
Juergen Hoeller 7e3c722146 Objects with multi-threaded access should not lazily populate a hash field
Issue. SPR-11428
(cherry picked from commit 72fe7eb)
2014-02-14 22:53:13 +01:00
Juergen Hoeller d7591c6bd7 Clarified CompositeCacheManager's applicability, added convenience constructor with given delegates, and fixed getCacheNames implementation to never return duplicates
Issue: SPR-11427
(cherry picked from commit d550ffb)
2014-02-14 22:51:12 +01:00
Juergen Hoeller 42dec02203 EhCache/JCacheCacheManager needs to re-obtain runtime-added Cache reference for potential decoration
Issue: SPR-11407
(cherry picked from commit ef1748f)
2014-02-14 22:48:23 +01:00
Sam Brannen 27ad1990e3 Fix imports in SourceHttpMessageConverterTests
Replaced static import of org.junit.Assert.* with implicit imports in
order to avoid ambiguity between JUnit's static Assert methods and those
in org.custommonkey.xmlunit.XMLAssert.
2014-02-13 00:45:40 +01:00
Juergen Hoeller 337b5ff5d6 Actually upgraded to Gradle 1.11 2014-02-13 00:42:41 +01:00
Juergen Hoeller b40403cdc9 Polishing
Issue: SPR-11422
(cherry picked from commit 520ef9e)
2014-02-13 00:42:22 +01:00
Juergen Hoeller 0972582880 resolveFactoryMethodIfPossible considers nonPublicAccessAllowed and SecurityManager
Issue: SPR-11422
(cherry picked from commit 603cdea)
2014-02-13 00:42:16 +01:00
Sam Brannen bc879100c4 Test against CGLIB memory leak for method injection
This commit introduces a test in XmlBeanFactoryTests that verifies that
CGLIB generated subclasses for method injected beans are reused across
bean factories for identical bean definitions. In other words, by
verifying that the same CGLIB generated class is reused for identical
bean definitions, we can be certain that Spring is no longer generating
identical, duplicate classes that consume memory in the VM.

Issue: SPR-10785, SPR-11420
(cherry picked from commit f2a4537)
2014-02-13 00:31:13 +01:00
Sam Brannen 9f77ef4102 Exclude overloaded from equals & hashCode in MethodOverride
Prior to this commit, the inclusion of the 'overloaded' flag in the
implementations of equals() and hashCode() in MethodOverride could lead
to adverse effects in the outcome of equals() in AbstractBeanDefinition.

For example, given two bean definitions A and B that represent the
exact same bean definition metadata for a bean that relies on method
injection, if A has been validated and B has not, then A.equals(B) will
potentially return false, which is not acceptable behavior.

This commit addresses this issue by removing the 'overloaded' flag from
the implementations of equals() and hashCode() for MethodOverride.

Issue: SPR-11420
(cherry picked from commit 9534245)
2014-02-12 17:20:43 +01:00
Juergen Hoeller 7f95a27e6d Upgraded to Commons Logging 1.1.3 and Gradle 1.11 2014-02-12 15:15:41 +01:00
Juergen Hoeller 4ac4630b0b Polishing 2014-02-12 15:15:05 +01:00
Juergen Hoeller 29b40b9d0e Revised InvocableHandlerMethod exception handling
Issue: SPR-11281
(cherry picked from commit 1a1c72c)
2014-02-12 15:13:28 +01:00
Juergen Hoeller 85e336e6da Consistently avoid close() call on Servlet OutputStream
Issue: SPR-11413
(cherry picked from commit 5f1592a)
2014-02-12 15:12:43 +01:00
Juergen Hoeller b223e6efec MarshallingView should not close response OutputStream after copying to it
MarshallingView also explicitly skips BindingResult when searching for a model object now, implementing common custom subclass behavior out-of-the-box.

Issue: SPR-11411
Issue: SPR-11417
2014-02-12 15:12:35 +01:00
Juergen Hoeller d55a173e2e Fix issue w/ use of UrlPathHelper's urlDecode property
Before this change the getPathWithinServletMapping method of
UrlPathHelper could not work properly when a default servlet mapping
(i.e. "/") was used in combination with urlDecode=false. The fact that
the getServletPath() method of HttpServletRequest always returns a
decoded path was getting in the way.

Although there is no way to check Servlet mappings through the Servlet
API, this change aims to detect the given scenario and returns the full
path following the context path thus avoiding URL decoding.

Note that the same can be achieved by setting urlDecode=false and
alwaysUseFullPath=true. However this change ensures that urlDecode
works properly without having to know that.

Issue: SPR-11101
(cherry picked from commit 12598f8)
2014-02-12 15:06:00 +01:00
Juergen Hoeller 4d2d223b0c Revised ExcelViewTests 2014-02-09 01:26:26 +01:00
Juergen Hoeller c3d74b4521 Polishing 2014-02-09 00:45:55 +01:00
Juergen Hoeller 61ab40cd7a Upgraded to Commons FileUpload 1.3.1, TestNG 6.8.7, Hibernate 4.2.8, Joda-Time 2.2, Jackson 1.7.9 2014-02-09 00:45:07 +01:00
Juergen Hoeller 3da9a3193c Polishing
(cherry picked from commit 749b65b)
2014-02-07 18:04:14 +01:00
Juergen Hoeller 7e9cb5195a Fixed broken link to jax-ws-commons website
Issue: SPR-11404
2014-02-07 17:46:51 +01:00
Juergen Hoeller 4233d0a99e Removed outdated hibernate3 references across the codebase
Issue: SPR-9028
(cherry picked from commit 09e2e58)
2014-02-06 23:38:30 +01:00
Juergen Hoeller ad91610796 Polishing
(cherry picked from commit 426f52b)
2014-02-06 23:27:46 +01:00
Juergen Hoeller f558396e91 Introduced SpringNamingPolicy for CGLIB
Issue: SPR-11398
(cherry picked from commit 8c4e372)
2014-02-06 23:25:52 +01:00
Sebastien Deleuze a2ec8f864e Fix EvalTagTests with locales other than English
Issue: SPR-11392
(cherry picked from commit edb0b0e)
2014-02-05 23:27:19 +01:00
Sam Brannen 03e243a4ab Fix off-by-one regression in AbstractMethodMockingControl
Issue: SPR-11385, SPR-10885
(cherry picked from commits 69a89b1 and 3a89bc4)
2014-02-04 23:56:04 +01:00
Juergen Hoeller 60b24cffdb Related polishing
Issue: SPR-11386
(cherry picked from commit 6634c19)
2014-02-04 16:53:50 +01:00
Juergen Hoeller 036bd791f0 Introduced "spring.jdbc.getParameterType.ignore" property
Issue: SPR-11386
(cherry picked from commit 60c1905)
2014-02-04 16:53:44 +01:00
Juergen Hoeller a53df0b2c1 Added explicit tests for generic and raw collection converters
Issue: SPR-11369
2014-02-01 19:36:38 +01:00
Juergen Hoeller 1a011616d9 Polishing
Issue: SPR-11369
2014-02-01 12:12:19 +01:00
Juergen Hoeller 3af9d1f29b Consistent iteration over actualValue in Velocity and FreeMarker macros
This requires consistent exposure of an actualValue in BindStatus, even if no BindingResult available.

Issue: SPR-10837
(cherry picked from commit 4f60b98)
2014-02-01 11:09:28 +01:00
Juergen Hoeller b3fb81bf72 Defensively handle ServletRequestAttributes casting in requestDestroyed callback
Issue: SPR-11378
(cherry picked from commit 5f24294)
2014-02-01 11:07:33 +01:00
Juergen Hoeller dd5af764b5 Avoided unnecessary substring creation for field error access with wildcard
Issue: SPR-11374
(cherry picked from commit 5be8301)
2014-01-31 13:20:59 +01:00
Juergen Hoeller 3ffbb24211 Fixed isMatchingFieldError to properly handle empty field name
Issue: SPR-11374
2014-01-30 23:20:41 +01:00
Juergen Hoeller 4c385f0073 Fixed LiveBeansView to not produce invalid JSON if last bean is not eligible
Also introducing overridable isBeanEligible template method.

Issue: SPR-11366
(cherry picked from commit c1eac20)
2014-01-30 12:32:35 +01:00
Spring Buildmaster 7d527f9771 Next development version 2014-01-28 14:38:50 -08:00
5427 changed files with 25793 additions and 20733 deletions
+1
View File
@@ -30,6 +30,7 @@ spring-*/src/main/java/META-INF/MANIFEST.MF
*.iml
*.ipr
*.iws
.idea
out
test-output
atlassian-ide-plugin.xml
+14
View File
@@ -0,0 +1,14 @@
Juergen Hoeller <jhoeller@vmware.com> jhoeller <jhoeller@vmware.com>
<rstoyanchev@gopivotal.com> <rstoyanchev@vmware.com>
<pwebb@gopivotal.com> <pwebb@vmware.com>
<cbeams@gopivotal.com> <cbeams@vmware.com>
<cbeams@gopivotal.com> <cbeams@gmail.com>
<apoutsma@gopivotal.com> <apoutsma@vmware.com>
<apoutsma@gopivotal.com> <poutsma@mac.com>
<ogierke@gopivotal.com> <ogierke@vmware.com>
<dsyer@gopivotal.com> <david_syer@hotmail.com>
<dsyer@gopivotal.com> <dsyer@vmware.com>
<aclement@gopivotal.com> <andrew.clement@gmail.com>
<aclement@gopivotal.com> <aclement@vmware.com>
<dmitry.katsubo@gmail.com> <dmitry.katsubo@gmai.com>
Nick Williams <nicholas@nicholaswilliams.net> Nicholas Williams <nicholas@nicholaswilliams.net>
+4 -12
View File
@@ -19,14 +19,6 @@ in our [JIRA issue tracker][] to see if you can find something similar. If not,
please create a new issue before submitting a pull request unless the change is
truly trivial, e.g. typo fixes, removing compiler warnings, etc.
## Discuss non-trivial contribution ideas with committers
If you're considering anything more than correcting a typo or fixing a minor
bug, please discuss it on the [spring-framework-contrib][] mailing list before
submitting a pull request. We're happy to provide guidance, but please spend an
hour or two researching the subject on your own including searching the mailing
list for prior discussions.
## Sign the Contributor License Agreement
If you have not previously done so, please fill out and submit the
@@ -93,7 +85,7 @@ present in the framework.
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -168,7 +160,7 @@ public class Spr8954Tests {
Use `git rebase --interactive`, `git add --patch` and other tools to "squash"
multiple commits into atomic changes. In addition to the man pages for git,
there are many resources online to help you understand how these tools work.
Here is one: http://book.git-scm.com/4_interactive_rebasing.html.
Here is one: https://book.git-scm.com/4_interactive_rebasing.html.
## Use real name in git commits
@@ -294,10 +286,10 @@ Note that you can always force push (`git push -f`) reworked / rebased commits
against the branch used to submit your pull request. i.e. you do not need to
issue a new pull request when asked to make changes.
[help documentation]: http://help.github.com/send-pull-requests
[help documentation]: https://help.github.com/send-pull-requests
[JIRA issue tracker]: https://jira.springsource.org/browse/SPR
[spring-framework-contrib]: https://groups.google.com/forum/#!forum/spring-framework-contrib
[SpringSource CLA form]: https://support.springsource.com/spring_committer_signup
[fork-and-edit]: https://github.com/blog/844-forking-with-the-edit-button
[commit guidelines section of Pro Git]: http://progit.org/book/ch5-2.html#commit_guidelines
[commit guidelines section of Pro Git]: https://progit.org/book/ch5-2.html#commit_guidelines
[building from source]: https://github.com/SpringSource/spring-framework#building-from-source
+18 -18
View File
@@ -66,31 +66,31 @@ The Spring Framework is released under version 2.0 of the [Apache License][].
[Spring Integration]: https://github.com/SpringSource/spring-integration
[Spring Batch]: https://github.com/SpringSource/spring-batch
[family of projects]: http://springsource.org/projects
[family of projects]: https://springsource.org/projects
[SpringSource organization]: https://github.com/SpringSource
[.NET]: https://github.com/SpringSource/spring-net
[Python]: https://github.com/SpringSource/spring-python
[downloading Spring artifacts]: https://github.com/SpringSource/spring-framework/wiki/Downloading-Spring-artifacts
[building a distribution with dependencies]: https://github.com/SpringSource/spring-framework/wiki/Building-a-distribution-with-dependencies
[Javadoc]: http://static.springsource.org/spring-framework/docs/current/javadoc-api
[reference docs]: http://static.springsource.org/spring-framework/docs/current/spring-framework-reference
[Spring forums]: http://forum.springsource.org
[spring tag]: http://stackoverflow.com/questions/tagged/spring
[spring-mvc tag]: http://stackoverflow.com/questions/tagged/spring-mvc
[Stack Overflow]: http://stackoverflow.com/faq
[Commercial support]: http://springsource.com/support/springsupport
[Spring Framework JIRA]: http://jira.springsource.org/browse/SPR
[Javadoc]: https://docs.spring.io/spring-framework/docs/current/javadoc-api
[reference docs]: https://docs.spring.io/spring-framework/docs/current/spring-framework-reference
[Spring forums]: https://forum.spring.io/
[spring tag]: https://stackoverflow.com/questions/tagged/spring
[spring-mvc tag]: https://stackoverflow.com/questions/tagged/spring-mvc
[Stack Overflow]: https://stackoverflow.com/faq
[Commercial support]: https://springsource.com/support/springsupport
[Spring Framework JIRA]: https://jira.springsource.org/browse/SPR
[the lifecycle of an issue]: https://github.com/cbeams/spring-framework/wiki/The-Lifecycle-of-an-Issue
[spring-framework-issues]: https://github.com/SpringSource/spring-framework-issues#readme
[readme]: https://github.com/SpringSource/spring-framework-issues#readme
[Gradle]: http://gradle.org
[`./gradlew`]: http://vimeo.com/34436402
[Git]: http://help.github.com/set-up-git-redirect
[Gradle]: https://gradle.org
[`./gradlew`]: https://vimeo.com/34436402
[Git]: https://help.github.com/set-up-git-redirect
[Gradle build and release FAQ]: https://github.com/SpringSource/spring-framework/wiki/Gradle-build-and-release-FAQ
[Pull requests]: http://help.github.com/send-pull-requests
[Pull requests]: https://help.github.com/send-pull-requests
[contributor guidelines]: https://github.com/SpringSource/spring-framework/blob/master/CONTRIBUTING.md
[@springframework]: http://twitter.com/springframework
[team members]: http://twitter.com/springframework/team/members
[team blog]: http://blog.springsource.org
[news feed]: http://www.springsource.org/news-events
[Apache License]: http://www.apache.org/licenses/LICENSE-2.0
[@springframework]: https://twitter.com/springframework
[team members]: https://twitter.com/springframework/team/members
[team blog]: https://blog.springsource.org
[news feed]: https://www.springsource.org/news-events
[Apache License]: https://www.apache.org/licenses/LICENSE-2.0
+124 -110
View File
@@ -1,10 +1,16 @@
buildscript {
repositories {
maven { url "http://repo.springsource.org/plugins-release" }
maven { url "https://repo.spring.io/plugins-release" }
}
dependencies {
classpath("org.springframework.build.gradle:propdeps-plugin:0.0.5")
classpath("org.springframework.build.gradle:docbook-reference-plugin:0.2.8")
classpath("org.springframework.build.gradle:propdeps-plugin:0.0.7")
classpath("io.spring.gradle:docbook-reference-plugin:0.3.1")
}
}
ext {
moduleProjects = subprojects.findAll {
!it.name.equals('spring-build-src') && !it.name.equals('spring-framework-bom')
}
}
@@ -12,12 +18,7 @@ configure(allprojects) { project ->
group = "org.springframework"
version = qualifyVersionIfNecessary(version)
// The following is a work-around for allowing to build on JDK 8 until the
// Gradle build uses Ant 1.9.x by default. This is necessary to avoid the
// "Class not found: javac1.8" issue with Ant versions prior to 1.9.x
ant.properties["build.compiler"] = "javac1.7"
ext.aspectjVersion = "1.7.2"
ext.aspectjVersion = "1.7.4"
ext.hsqldbVersion = "1.8.0.10"
ext.junitVersion = "4.11"
ext.slf4jVersion = "1.6.6"
@@ -64,12 +65,16 @@ configure(allprojects) { project ->
systemProperty("java.awt.headless", "true")
systemProperty("testGroups", project.properties.get("testGroups"))
scanForTestClasses = false
include '**/*Tests.*'
exclude '**/*Abstract*.*'
// Do not include "**/*Test.class" since some *Test classes are broken.
include(["**/*Tests.class"])
// Since we set scanForTestClasses to false, we need to filter out inner
// classes with the "$" pattern; otherwise, using -Dtest.single=MyTests to
// run MyTests by itself will fail if MyTests contains any inner classes.
exclude(["**/Abstract*.class", '**/*$*'])
}
repositories {
maven { url "http://repo.spring.io/libs-release" }
maven { url "https://repo.spring.io/libs-release" }
}
dependencies {
@@ -79,27 +84,28 @@ configure(allprojects) { project ->
}
ext.javadocLinks = [
"http://docs.oracle.com/javase/7/docs/api/",
"http://docs.oracle.com/javaee/6/api/",
"http://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/", // CommonJ
"http://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.javadoc.doc/web/apidocs/",
"http://glassfish.java.net/nonav/docs/v3/api/",
"http://docs.jboss.org/jbossas/javadoc/4.0.5/connector/",
"http://docs.jboss.org/jbossas/javadoc/7.1.2.Final/",
"http://commons.apache.org/proper/commons-lang/javadocs/api-2.5/",
"http://commons.apache.org/proper/commons-codec/apidocs/",
"http://commons.apache.org/proper/commons-dbcp/apidocs/",
"http://portals.apache.org/pluto/portlet-2.0-apidocs/",
"http://tiles.apache.org/framework/apidocs/",
"https://docs.oracle.com/javase/7/docs/api/",
"https://docs.oracle.com/javaee/6/api/",
"https://docs.oracle.com/cd/E13222_01/wls/docs90/javadocs/", // CommonJ
"https://pic.dhe.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.javadoc.doc/web/apidocs/",
"https://glassfish.java.net/nonav/docs/v3/api/",
"https://docs.jboss.org/jbossas/javadoc/4.0.5/connector/",
"https://docs.jboss.org/jbossas/javadoc/7.1.2.Final/",
"https://commons.apache.org/proper/commons-lang/javadocs/api-2.5/",
"https://commons.apache.org/proper/commons-codec/apidocs/",
"https://commons.apache.org/proper/commons-dbcp/apidocs/",
"https://portals.apache.org/pluto/portlet-2.0-apidocs/",
"https://tiles.apache.org/tiles-request/apidocs/",
"https://tiles.apache.org/framework/apidocs/",
"http://aopalliance.sourceforge.net/doc/",
"http://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/",
"http://ehcache.org/apidocs/",
"http://quartz-scheduler.org/api/2.1.7/",
"http://jackson.codehaus.org/1.9.4/javadoc/",
"http://fasterxml.github.com/jackson-core/javadoc/2.3.0/",
"http://fasterxml.github.com/jackson-databind/javadoc/2.3.0/",
"http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs",
"http://ibatis.apache.org/docs/java/dev/"
"https://www.eclipse.org/aspectj/doc/released/aspectj5rt-api/",
"https://www.ehcache.org/apidocs/2.4.4/",
"https://www.quartz-scheduler.org/api/2.2.2/",
"https://jackson.codehaus.org/1.9.4/javadoc/",
"https://fasterxml.github.io/jackson-core/javadoc/2.3.0/",
"https://fasterxml.github.io/jackson-databind/javadoc/2.3.0/",
"https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/",
"https://ibatis.apache.org/docs/java/dev/"
] as String[]
}
@@ -138,10 +144,10 @@ configure(subprojects - project(":spring-build-src")) { subproject ->
logging.captureStandardOutput LogLevel.INFO // suppress "## warnings" message
}
task sourcesJar(type: Jar, dependsOn:classes) {
classifier = "sources"
from sourceSets.main.allJava.srcDirs
include "**/*.java", "**/*.aj"
task sourcesJar(type: Jar, dependsOn: classes) {
classifier = 'sources'
from sourceSets.main.allSource
// don't include or exclude anything explicitly by default. See SPR-12085.
}
task javadocJar(type: Jar) {
@@ -170,14 +176,14 @@ project("spring-build-src") {
project("spring-core") {
description = "Spring Core"
// As of Spring 3.2 spring-core repackages both asm 4.0 and cglib 3.0 and inlines both
// into the spring-core jar. cglib 3.0 itself depends on asm 4.0, and is therefore
// As of Spring 3.2.9, spring-core repackages asm 5.0 and cglib 3.1, inlining both
// into the spring-core jar. cglib 3.1 itself depends on asm 4+, and is therefore
// further transformed by the JarJar task to depend on org.springframework.asm; this
// avoids including two different copies of asm unnecessarily. If however future cglib
// versions drift from the version of asm used by Spring internally, this duplication
// will become necessary.
def asmVersion = "4.0"
def cglibVersion = "3.0"
def asmVersion = "5.0.4"
def cglibVersion = "3.1"
configurations {
jarjar
@@ -234,7 +240,7 @@ project("spring-core") {
compile(files(cglibRepackJar))
compile(files(asmRepackJar))
compile("commons-logging:commons-logging:1.1.1")
compile("commons-logging:commons-logging:1.1.3")
optional("org.aspectj:aspectjweaver:${aspectjVersion}")
optional("net.sf.jopt-simple:jopt-simple:3.3")
optional("log4j:log4j:1.2.17")
@@ -328,11 +334,11 @@ project("spring-context") {
optional("javax.persistence:persistence-api:1.0")
optional("javax.validation:validation-api:1.0.0.GA")
optional("org.hibernate:hibernate-validator:4.3.1.Final")
optional("joda-time:joda-time:2.1")
optional("joda-time:joda-time:2.2")
optional("org.aspectj:aspectjweaver:${aspectjVersion}")
optional("org.codehaus.groovy:groovy-all:1.8.9")
optional("org.beanshell:bsh:2.0b4")
optional("org.jruby:jruby:1.7.2")
optional("org.jruby:jruby:1.7.12")
testCompile("javax.inject:javax.inject-tck:1")
testCompile("commons-dbcp:commons-dbcp:1.3")
testCompile("org.slf4j:slf4j-api:${slf4jVersion}")
@@ -353,7 +359,7 @@ project("spring-tx") {
compile(project(":spring-beans"))
compile(project(":spring-core"))
optional(project(":spring-aop"))
optional(project(":spring-context")) // for JCA, @EnableTransactionManagement
optional(project(":spring-context")) // for JCA, @EnableTransactionManagement
optional("aopalliance:aopalliance:1.0")
optional("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1")
optional("javax.resource:connector-api:1.5")
@@ -370,7 +376,7 @@ project("spring-oxm") {
compileTestJava {
// necessary to avoid java.lang.VerifyError on jibx compilation
// see http://jira.codehaus.org/browse/JIBX-465
// see https://jira.codehaus.org/browse/JIBX-465
sourceCompatibility=1.6
targetCompatibility=1.6
}
@@ -378,14 +384,24 @@ project("spring-oxm") {
dependencies {
compile(project(":spring-beans"))
compile(project(":spring-core"))
optional("com.thoughtworks.xstream:xstream:1.4.4")
optional("org.codehaus.castor:castor-xml:1.3.3") {
exclude group: 'stax', module: 'stax-api'
exclude group: "org.springframework", module: "spring-context"
}
optional("org.apache.xmlbeans:xmlbeans:2.6.0") {
exclude group: 'stax', module: 'stax-api'
}
optional("com.thoughtworks.xstream:xstream:1.4.7") {
exclude group: 'xpp3', module: 'xpp3_min'
exclude group: 'xmlpull', module: 'xmlpull'
}
optional("org.jibx:jibx-run:1.2.5")
optional("org.apache.xmlbeans:xmlbeans:2.6.0")
optional("org.codehaus.castor:castor-xml:1.3.2")
testCompile(project(":spring-context"))
testCompile("org.codehaus.jettison:jettison:1.0.1")
testCompile("xmlunit:xmlunit:1.3")
testCompile("xmlpull:xmlpull:1.1.3.4a")
testCompile("org.codehaus.jettison:jettison:1.0.1") {
exclude group: 'stax', module: 'stax-api'
}
testCompile(files(genCastor.classesDir).builtBy(genCastor))
testCompile(files(genJaxb.classesDir).builtBy(genJaxb))
testCompile(files(genXmlbeans.classesDir).builtBy(genXmlbeans))
@@ -406,7 +422,7 @@ project("spring-jms") {
optional("aopalliance:aopalliance:1.0")
optional("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1")
optional("javax.resource:connector-api:1.5")
optional("org.codehaus.jackson:jackson-mapper-asl:1.4.5")
optional("org.codehaus.jackson:jackson-mapper-asl:1.7.9")
optional("com.fasterxml.jackson.core:jackson-databind:2.0.6")
}
}
@@ -418,11 +434,11 @@ project("spring-jdbc") {
compile(project(":spring-beans"))
compile(project(":spring-core"))
compile(project(":spring-tx"))
optional(project(":spring-context")) // for JndiDataSourceLookup
optional(project(":spring-context")) // for JndiDataSourceLookup
optional("org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1")
optional("c3p0:c3p0:0.9.1.2")
optional("hsqldb:hsqldb:${hsqldbVersion}")
optional("com.h2database:h2:1.0.71")
optional("com.h2database:h2:1.0.79")
optional("org.apache.derby:derby:10.5.3.0_1")
optional("org.apache.derby:derbyclient:10.5.3.0_1")
}
@@ -436,20 +452,20 @@ project("spring-context-support") {
compile(project(":spring-beans"))
compile(project(":spring-context"))
provided("javax.activation:activation:1.1")
optional(project(":spring-jdbc")) // for Quartz support
optional(project(":spring-tx")) // for Quartz support
optional(project(":spring-jdbc")) // for Quartz support
optional(project(":spring-tx")) // for Quartz support
optional("javax.mail:mail:1.4.7")
optional("javax.cache:cache-api:0.5")
optional("net.sf.ehcache:ehcache-core:2.0.1")
optional("org.quartz-scheduler:quartz:1.7.3")
optional("org.codehaus.fabric3.api:commonj:1.1.0")
optional("velocity:velocity:1.5")
optional("org.freemarker:freemarker:2.3.19")
optional("org.freemarker:freemarker:2.3.20")
optional("com.lowagie:itext:2.1.7")
optional("jasperreports:jasperreports:2.0.5")
testCompile("org.apache.poi:poi:3.0.2-FINAL")
testCompile("commons-beanutils:commons-beanutils:1.8.0") // for Velocity/JasperReports
testCompile("commons-digester:commons-digester:1.8.1") // for Velocity/JasperReports
optional("net.sf.jasperreports:jasperreports:3.7.6")
testCompile("org.apache.poi:poi:3.6")
testCompile("commons-beanutils:commons-beanutils:1.8.0") // for Velocity/JasperReports
testCompile("commons-digester:commons-digester:1.8.1") // for Velocity/JasperReports
testCompile("hsqldb:hsqldb:${hsqldbVersion}")
testCompile("org.slf4j:slf4j-api:${slf4jVersion}")
}
@@ -462,13 +478,13 @@ project("spring-web") {
description = "Spring Web"
dependencies {
compile(project(":spring-aop")) // for JaxWsPortProxyFactoryBean
compile(project(":spring-beans")) // for MultiPartFilter
compile(project(":spring-aop")) // for JaxWsPortProxyFactoryBean
compile(project(":spring-beans")) // for MultipartFilter
compile(project(":spring-context"))
compile(project(":spring-core"))
provided("javax.servlet:javax.servlet-api:3.0.1")
provided("javax.activation:activation:1.1")
optional(project(":spring-oxm")) // for MarshallingHttpMessageConverter
optional(project(":spring-oxm")) // for MarshallingHttpMessageConverter
optional("javax.servlet.jsp:jsp-api:2.1")
optional("javax.portlet:portlet-api:2.0")
optional("javax.el:el-api:1.0")
@@ -477,11 +493,11 @@ project("spring-web") {
optional("javax.xml.soap:saaj-api:1.3")
optional("aopalliance:aopalliance:1.0")
optional("com.caucho:hessian:3.2.1")
optional("commons-fileupload:commons-fileupload:1.2.2")
optional("commons-fileupload:commons-fileupload:1.3.1")
optional("commons-io:commons-io:1.3")
optional("commons-httpclient:commons-httpclient:3.1")
optional("org.apache.httpcomponents:httpclient:4.2")
optional("org.codehaus.jackson:jackson-mapper-asl:1.4.5")
optional("org.apache.httpcomponents:httpclient:4.2.6")
optional("org.codehaus.jackson:jackson-mapper-asl:1.7.9")
optional("com.fasterxml.jackson.core:jackson-databind:2.0.6")
optional("rome:rome:1.0")
optional("taglibs:standard:1.1.2")
@@ -504,8 +520,7 @@ project("spring-orm") {
description = "Spring Object/Relational Mapping"
compileTestJava {
// necessary to avoid java.lang.VerifyError on toplink compilation
// TODO: remove this block when we remove toplink
// necessary to avoid java.lang.VerifyError on TopLink compilation
sourceCompatibility=1.6
targetCompatibility=1.6
}
@@ -547,8 +562,8 @@ project("spring-orm-hibernate4") {
provided(project(":spring-jdbc"))
provided(project(":spring-tx"))
optional(project(":spring-web"))
optional("org.hibernate:hibernate-core:4.1.9.Final")
optional("org.hibernate:hibernate-entitymanager:4.1.9.Final")
optional("org.hibernate:hibernate-core:4.2.21.Final")
optional("org.hibernate:hibernate-entitymanager:4.2.21.Final")
optional("javax.servlet:servlet-api:2.5")
}
}
@@ -563,20 +578,20 @@ project("spring-webmvc") {
compile(project(":spring-expression"))
compile(project(":spring-web"))
provided("javax.servlet:javax.servlet-api:3.0.1")
optional(project(":spring-context-support")) // for Velocity support
optional(project(":spring-oxm")) // for MarshallingView
optional(project(":spring-context-support")) // for Velocity support
optional(project(":spring-oxm")) // for MarshallingView
optional("javax.servlet.jsp:jsp-api:2.1")
optional("javax.servlet:jstl:1.2")
optional("net.sourceforge.jexcelapi:jxl:2.6.3")
optional("org.apache.poi:poi:3.0.2-FINAL")
optional("net.sourceforge.jexcelapi:jxl:2.6.12")
optional("org.apache.poi:poi:3.6")
optional("velocity:velocity:1.5")
optional("velocity-tools:velocity-tools-view:1.4")
optional("org.freemarker:freemarker:2.3.19")
optional("org.freemarker:freemarker:2.3.20")
optional("com.lowagie:itext:2.1.7")
optional("jasperreports:jasperreports:2.0.5") {
optional("net.sf.jasperreports:jasperreports:3.7.6") {
exclude group: "xml-apis", module: "xml-apis"
}
optional("org.codehaus.jackson:jackson-mapper-asl:1.4.5")
optional("org.codehaus.jackson:jackson-mapper-asl:1.7.9")
optional("com.fasterxml.jackson.core:jackson-databind:2.0.6")
optional("rome:rome:1.0")
optional("org.apache.tiles:tiles-api:2.1.2")
@@ -602,8 +617,8 @@ project("spring-webmvc") {
}
testCompile("javax.validation:validation-api:1.0.0.GA")
testCompile("org.hibernate:hibernate-validator:4.3.1.Final")
testCompile("org.apache.httpcomponents:httpclient:4.2")
testCompile("commons-fileupload:commons-fileupload:1.2.2")
testCompile("org.apache.httpcomponents:httpclient:4.2.6")
testCompile("commons-fileupload:commons-fileupload:1.3.1")
testCompile("commons-io:commons-io:1.3")
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
}
@@ -623,21 +638,20 @@ project("spring-webmvc-tiles3") {
optional("javax.servlet.jsp:jsp-api:2.1")
optional("javax.servlet:jstl:1.2")
optional("javax.el:el-api:1.0")
optional("org.apache.tiles:tiles-request-api:1.0.1")
optional("org.apache.tiles:tiles-api:3.0.1")
optional("org.apache.tiles:tiles-core:3.0.1") {
optional("org.apache.tiles:tiles-api:3.0.4")
optional("org.apache.tiles:tiles-core:3.0.4") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
}
optional("org.apache.tiles:tiles-servlet:3.0.1") {
optional("org.apache.tiles:tiles-servlet:3.0.4") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
}
optional("org.apache.tiles:tiles-jsp:3.0.1") {
optional("org.apache.tiles:tiles-jsp:3.0.4") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
}
optional("org.apache.tiles:tiles-el:3.0.1") {
optional("org.apache.tiles:tiles-el:3.0.4") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
}
optional("org.apache.tiles:tiles-extras:3.0.1") {
optional("org.apache.tiles:tiles-extras:3.0.4") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
exclude group: "org.springframework", module: "spring-web"
}
@@ -656,7 +670,7 @@ project("spring-webmvc-portlet") {
compile(project(":spring-webmvc"))
provided("javax.servlet:servlet-api:2.5")
provided("javax.portlet:portlet-api:2.0")
optional("commons-fileupload:commons-fileupload:1.2.2")
optional("commons-fileupload:commons-fileupload:1.3.1")
}
// pick up DispatcherPortlet.properties in src/main
@@ -678,7 +692,7 @@ project("spring-test") {
optional(project(":spring-webmvc"))
optional(project(":spring-webmvc-portlet"))
optional("junit:junit:${junitVersion}")
optional("org.testng:testng:6.5.2")
optional("org.testng:testng:6.8.8")
optional("javax.inject:javax.inject:1")
optional("javax.servlet:servlet-api:2.5")
optional("javax.servlet.jsp:jsp-api:2.1")
@@ -700,7 +714,7 @@ project("spring-test") {
// "TestCase" classes are run by other test classes, not the build.
exclude "**/*TestCase.class"
// Generate TestNG reports alongside JUnit reports.
testReport true
getReports().getHtml().setEnabled(true)
// show standard out and standard error of the test JVM(s) on the console
// testLogging.showStandardStreams = true
}
@@ -731,16 +745,15 @@ project("spring-test-mvc") {
testCompile("javax.servlet:jstl:1.2")
testCompile("javax.mail:mail:1.4.7")
testCompile("org.hibernate:hibernate-validator:4.3.1.Final")
testCompile("com.thoughtworks.xstream:xstream:1.3.1")
testCompile("org.codehaus.jackson:jackson-mapper-asl:1.4.5")
testCompile("com.thoughtworks.xstream:xstream:1.4.7")
testCompile("org.codehaus.jackson:jackson-mapper-asl:1.7.9")
testCompile("com.fasterxml.jackson.core:jackson-databind:2.0.6")
testCompile("rome:rome:1.0")
testCompile("org.apache.tiles:tiles-request-api:1.0.1")
testCompile("org.apache.tiles:tiles-api:3.0.1")
testCompile("org.apache.tiles:tiles-core:3.0.1") {
testCompile("org.apache.tiles:tiles-api:3.0.4")
testCompile("org.apache.tiles:tiles-core:3.0.4") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
}
testCompile("org.apache.tiles:tiles-servlet:3.0.1") {
testCompile("org.apache.tiles:tiles-servlet:3.0.4") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
}
testCompile("org.slf4j:slf4j-jcl:${slf4jVersion}")
@@ -773,13 +786,13 @@ project("spring-aspects") {
rt("org.aspectj:aspectjrt:${aspectjVersion}")
compile("org.aspectj:aspectjweaver:${aspectjVersion}")
provided("javax.persistence:persistence-api:1.0")
optional(project(":spring-aop")) // for @Async support
optional(project(":spring-beans")) // for @Configurable support
optional(project(":spring-context")) // for @Enable* support
optional(project(":spring-context-support")) // for JavaMail support
optional(project(":spring-orm")) // for JPA exception translation support
optional(project(":spring-tx")) // for JPA, @Transactional support
testCompile(project(":spring-core")) // for CodeStyleAspect
optional(project(":spring-aop")) // for @Async support
optional(project(":spring-beans")) // for @Configurable support
optional(project(":spring-context")) // for @Enable* support
optional(project(":spring-context-support")) // for JavaMail support
optional(project(":spring-orm")) // for JPA exception translation support
optional(project(":spring-tx")) // for JPA, @Transactional support
testCompile(project(":spring-core")) // for CodeStyleAspect
testCompile(project(":spring-test"))
testCompile("javax.mail:mail:1.4.7")
}
@@ -831,6 +844,7 @@ configure(rootProject) {
apply plugin: "docbook-reference"
apply plugin: "groovy"
// apply plugin: "detect-split-packages"
apply from: "${gradleScriptDir}/jdiff.gradle"
@@ -865,7 +879,7 @@ configure(rootProject) {
testCompile("javax.inject:javax.inject:1")
testCompile("javax.resource:connector-api:1.5")
testCompile("org.aspectj:aspectjweaver:${aspectjVersion}")
testCompile("org.hibernate:hibernate-core:4.1.9.Final")
testCompile("org.hibernate:hibernate-core:4.2.21.Final")
testCompile("hsqldb:hsqldb:${hsqldbVersion}")
}
@@ -899,7 +913,7 @@ configure(rootProject) {
doFirst {
classpath = files(
// ensure Servlet 3.x and Hibernate 4.x have precedence on the Javadoc
// ensure Servlet 3.x and Hibernate 4.x have precedence on the javadoc
// classpath over their respective 2.5 and 3.x variants
project(":spring-webmvc").sourceSets.main.compileClasspath.files.find { it =~ "servlet-api" },
rootProject.sourceSets.test.compileClasspath.files.find { it =~ "hibernate-core" },
@@ -910,12 +924,12 @@ configure(rootProject) {
}
}
task docsZip(type: Zip) {
task docsZip(type: Zip, dependsOn: 'reference') {
group = "Distribution"
baseName = "spring-framework"
classifier = "docs"
description = "Builds -${classifier} archive containing api and reference " +
"for deployment at http://static.springframework.org/spring-framework/docs."
"for deployment at https://docs.spring.io/spring-framework/docs."
from("src/dist") {
include "changelog.txt"
@@ -935,9 +949,9 @@ configure(rootProject) {
baseName = "spring-framework"
classifier = "schema"
description = "Builds -${classifier} archive containing all " +
"XSDs for deployment at http://springframework.org/schema."
subprojects.each { subproject ->
"XSDs for deployment at https://springframework.org/schema."
duplicatesStrategy 'exclude'
moduleProjects.each { subproject ->
def Properties schemas = new Properties();
subproject.sourceSets.main.resources.find {
@@ -983,7 +997,7 @@ configure(rootProject) {
into "${baseDir}/schema"
}
subprojects.each { subproject ->
moduleProjects.each { subproject ->
into ("${baseDir}/libs") {
from subproject.jar
if (subproject.tasks.findByPath("sourcesJar")) {
@@ -1036,7 +1050,7 @@ configure(rootProject) {
task wrapper(type: Wrapper) {
description = "Generates gradlew[.bat] scripts"
gradleVersion = "1.6"
gradleVersion = "2.5"
doLast() {
def gradleOpts = "-XX:MaxPermSize=1024m -Xmx1024m"
@@ -21,20 +21,17 @@ import org.gradle.api.artifacts.Configuration
import org.gradle.api.artifacts.ProjectDependency;
import org.gradle.api.artifacts.maven.Conf2ScopeMapping
import org.gradle.api.plugins.MavenPlugin
import org.gradle.api.tasks.*
import org.gradle.plugins.ide.eclipse.EclipsePlugin
import org.gradle.plugins.ide.eclipse.model.EclipseClasspath;
import org.gradle.plugins.ide.idea.IdeaPlugin
import org.gradle.api.invocation.*
/**
* Gradle plugin that allows projects to merged together. Primarily developed to
* allow Spring to support multiple multiple incompatible versions of third-party
* allow Spring to support multiple incompatible versions of third-party
* dependencies (for example Hibernate v3 and v4).
* <p>
* The 'merge' extension should be used to define how projects are merged, for example:
* <pre>
* <pre class="code">
* configure(subprojects) {
* apply plugin: MergePlugin
* }
@@ -71,18 +68,18 @@ class MergePlugin implements Plugin<Project> {
Configuration runtimeMerge = project.configurations.create("runtimeMerge")
// Ensure the IDE can reference merged projects
project.eclipse.classpath.plusConfigurations += [runtimeMerge]
project.idea.module.scopes.PROVIDED.plus += runtimeMerge
project.eclipse.classpath.plusConfigurations += [ runtimeMerge ]
project.idea.module.scopes.PROVIDED.plus += [ runtimeMerge ]
// Hook to perform the actual merge logic
project.afterEvaluate{
if(it.merge.into != null) {
if (it.merge.into != null) {
setup(it)
}
}
// Hook to build runtimeMerge dependencies
if(!attachedProjectsEvaluated) {
if (!attachedProjectsEvaluated) {
project.gradle.projectsEvaluated{
postProcessProjects(it)
}
@@ -102,7 +99,7 @@ class MergePlugin implements Plugin<Project> {
// invoking a task will invoke the task with the same name on 'into' project
["sourcesJar", "jar", "javadocJar", "javadoc", "install", "artifactoryPublish"].each {
def task = project.tasks.findByPath(it)
if(task) {
if (task) {
task.enabled = false
task.dependsOn(project.merge.into.tasks.findByPath(it))
}
@@ -120,7 +117,7 @@ class MergePlugin implements Plugin<Project> {
private void setupMaven(Project project) {
project.configurations.each { configuration ->
Conf2ScopeMapping mapping = project.conf2ScopeMappings.getMapping([configuration])
if(mapping.scope) {
if (mapping.scope) {
Configuration intoConfiguration = project.merge.into.configurations.create(
project.name + "-" + configuration.name)
configuration.excludeRules.each {
@@ -131,12 +128,13 @@ class MergePlugin implements Plugin<Project> {
configuration.dependencies.each {
def intoCompile = project.merge.into.configurations.getByName("compile")
// Protect against changing a compile scope dependency (SPR-10218)
if(!intoCompile.dependencies.contains(it)) {
if (!intoCompile.dependencies.contains(it)) {
intoConfiguration.dependencies.add(it)
}
}
def index = project.parent.childProjects.findIndexOf {p -> p.getValue() == project}
project.merge.into.install.repositories.mavenInstaller.pom.scopeMappings.addMapping(
mapping.priority + 100, intoConfiguration, mapping.scope)
mapping.priority + 100 + index, intoConfiguration, mapping.scope)
}
}
}
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -21,7 +21,6 @@ import org.gradle.api.Project
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.ProjectDependency;
/**
* Gradle plugin that automatically updates testCompile dependencies to include
* the test source sets of project dependencies.
@@ -41,11 +40,10 @@ class TestSourceSetDependenciesPlugin implements Plugin<Project> {
}
}
private void collectProjectDependencies(Set<ProjectDependency> projectDependencies,
Project project) {
for(def configurationName in ["compile", "optional", "provided", "testCompile"]) {
private void collectProjectDependencies(Set<ProjectDependency> projectDependencies, Project project) {
for (def configurationName in ["compile", "optional", "provided", "testCompile"]) {
Configuration configuration = project.getConfigurations().findByName(configurationName)
if(configuration) {
if (configuration) {
configuration.dependencies.findAll { it instanceof ProjectDependency }.each {
projectDependencies.add(it)
collectProjectDependencies(projectDependencies, it.dependencyProject)
+1 -1
View File
@@ -1 +1 @@
version=3.2.7.BUILD-SNAPSHOT
version=3.2.19.BUILD-SNAPSHOT
+11
View File
@@ -41,6 +41,17 @@ eclipse.classpath.file.whenMerged { classpath ->
}
}
// Ensure project dependencies come after 3rd-party libs (SPR-11836)
// https://jira.spring.io/browse/SPR-11836
eclipse.classpath.file.whenMerged { classpath ->
classpath.entries.findAll { it instanceof ProjectDependency }.each {
// delete from original position
classpath.entries.remove(it)
// append to end of classpath
classpath.entries.add(it)
}
}
// Allow projects to be used as WPT modules
eclipse.project.natures "org.eclipse.wst.common.project.facet.core.nature"
+3 -3
View File
@@ -11,7 +11,7 @@ difference between two public Java APIs.
The file jdiff.html contains the reference page for JDiff. The latest
version of JDiff can be downloaded at:
http://sourceforge.net/projects/javadiff
https://sourceforge.net/projects/javadiff
To use the Ant task on your own project, see example.xml. More examples
of using JDiff to compare the public APIs of J2SE1.3 and J2SE1.4 can
@@ -40,7 +40,7 @@ Acknowledgements
JDiff uses Stuart D. Gathman's Java translation of Gene Myers' O(ND)
difference algorithm.
JDiff uses Xerces 1.4.2 from http://www.apache.org.
JDiff uses Xerces 1.4.2 from https://www.apache.org.
JDiff also includes a script to use the classdoc application from
http://classdoc.sourceforge.net or http://www.jensgulden.de, by Jens
@@ -56,4 +56,4 @@ much of this work.
Footnote:
If you are looking for a generalized diff tool for XML, try diffmk from
http://wwws.sun.com/software/xml/developers/diffmk/
https://wwws.sun.com/software/xml/developers/diffmk/
+11 -11
View File
@@ -7,10 +7,10 @@
<BODY BGCOLOR="#ffffff">
<table width="100%">
<tr>
<td align="left"><A href="http://sourceforge.net/projects/javadiff/">
<td align="left"><A href="https://sourceforge.net/projects/javadiff/">
<IMG src="http://javadiff.cvs.sourceforge.net/*checkout*/javadiff/jdiff/lib/jdiff_logo.gif"
width="88" height="31" border="0" alt="JDiff Logo"></A></td>
<td align="right"><A href="http://sourceforge.net"> <IMG src="http://sourceforge.net/sflogo.php?group_id=37160" width="88" height="31" border="0" alt="SourceForge Logo"></A></td>
<td align="right"><A href="https://sourceforge.net"> <IMG src="https://sourceforge.net/sflogo.php?group_id=37160" width="88" height="31" border="0" alt="SourceForge Logo"></A></td>
</tr>
</table>
@@ -21,7 +21,7 @@ width="88" height="31" border="0" alt="JDiff Logo"></A></td>
<BLOCKQUOTE>
<b>JDiff</b> is a Javadoc <a
href="http://java.sun.com/j2se/javadoc">doclet</a> which generates an
href="https://java.sun.com/j2se/javadoc">doclet</a> which generates an
HTML report of all the packages, classes, constructors, methods, and
fields which have been removed, added or changed in any way, including
their documentation, when two APIs are compared. This is very useful
@@ -312,7 +312,7 @@ the HTML output to the given directory.
<code>-javadocnew</code> &lt;<i>javadoc files location for the new API</i>></DT>
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
The location of existing Javadoc files
for the new API, e.g. "http://java.sun.com/j2se/<b>1.5.0</b>/docs/api/" for the
for the new API, e.g. "https://java.sun.com/j2se/<b>1.5.0</b>/docs/api/" for the
public documentation for J2SE1.5.0. The default value is "../", which implies
that the documentation directory generated by Javadoc is at the same level as
the "changes.html" file generated by JDiff. Slashes are always
@@ -325,7 +325,7 @@ the HTML output to the given directory.
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
<code>-javadocold</code> &lt;<i>javadoc files location for the old API</i>></DT>
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm"> The location of existing
Javadoc files for the old API, e.g. "http://java.sun.com/j2se/<b>1.5.0</b>/docs/API/"
Javadoc files for the old API, e.g. "https://java.sun.com/j2se/<b>1.5.0</b>/docs/API/"
for the public documentation for J2SE1.5.0. The default value is null, which
results in no links to Javadoc-generated documentation for the previous
release. Slashes are always forward in the argument, since this is an HTML
@@ -426,7 +426,7 @@ the HTML output to the given directory.
<code>-showallchanges</code></DT>
<DD STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
If this argument is used, JDiff will show changes in
native and synchronized modifiers. See <a href="http://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html#generatedapideclarations">here</a> for why these are not shown by default.
native and synchronized modifiers. See <a href="https://java.sun.com/j2se/1.4.1/docs/tooldocs/solaris/javadoc.html#generatedapideclarations">here</a> for why these are not shown by default.
</DD>
<DT STYLE="margin-right: 2cm; margin-bottom: 0.5cm">
@@ -547,7 +547,7 @@ moved to the end of the file and placed inside XML comments.
<BLOCKQUOTE> The text which is added can be HTML text if necessary, but if the
HTML is incorrect, JDiff may fail to read the comments file and exit. Note that
the required HTML is in fact <a href="http://www.w3.org/TR/xhtml1/diffs.html">XHTML</a>. Since this HTML is stored in an XML document, single tags without their closing ("slash") element are not permitted.
the required HTML is in fact <a href="https://www.w3.org/TR/xhtml1/diffs.html">XHTML</a>. Since this HTML is stored in an XML document, single tags without their closing ("slash") element are not permitted.
For example, most browsers permit HTML which looks like "&lt;p>Here is some
text.", with no closing tag. XML requires that either a closing tag exists ("&lt;/p>"),
or that the single tag is closed, e.g. "&lt;p/>Here is some text.".
@@ -988,7 +988,7 @@ it can tell you how the content has changed.
Nor does it
compare what the methods in an API do; if JDiff could tell you what had changed about the way two
versions of an API execute, the <a
href="http://en.wikipedia.org/wiki/Halting_Problem">Halting
href="https://en.wikipedia.org/wiki/Halting_Problem">Halting
Problem</a> would be solved, and our lives would be very different.</li>
<li>On a P3 450MHz machine, to scan all of the J2SE <code>Java</code>
and <code>javax</code> packages and generate XML takes about 2 minutes
@@ -1002,14 +1002,14 @@ per version. To generate a report from the XML files takes about 30s</li>
<BLOCKQUOTE>
<UL>
<LI><A HREF="http://www.sys-con.com/java">Java Developer's Journal
<LI><A HREF="https://www.sys-con.com/java">Java Developer's Journal
</A>, April 2002 contained an article about JDiff. The article
can also be <a
href="http://javadiff.cvs.sourceforge.net/*checkout*/javadiff/jdiff/doc/JDiffArticle.pdf">found
here</a>.</LI>
<LI><A HREF="http://java.sun.com/j2se/javadoc/">Javadoc</A> and Doclet
<LI><A HREF="https://java.sun.com/j2se/javadoc/">Javadoc</A> and Doclet
documentation from Sun.</LI>
<LI><A HREF="http://java.sun.com/j2se/javadoc/faq.html#doclets">Third-party
<LI><A HREF="https://java.sun.com/j2se/javadoc/faq.html#doclets">Third-party
doclets</a> as listed by Sun.</LI>
<LI><A HREF="http://www.doclet.com">Third-party doclets</a> as listed by others.</LI>
</UL>
+3 -3
View File
@@ -22,15 +22,15 @@ def customizePom(pom, gradleProject) {
generatedPom.project {
name = gradleProject.description
description = gradleProject.description
url = "https://github.com/SpringSource/spring-framework"
url = "https://github.com/spring-projects/spring-framework"
organization {
name = "SpringSource"
url = "http://springsource.org/spring-framework"
url = "https://spring.io/projects/spring-framework"
}
licenses {
license {
name "The Apache Software License, Version 2.0"
url "http://www.apache.org/licenses/LICENSE-2.0.txt"
url "https://www.apache.org/licenses/LICENSE-2.0.txt"
distribution "repo"
}
}
Binary file not shown.
+5 -5
View File
@@ -1,6 +1,6 @@
#Tue Jul 30 09:29:28 PDT 2013
zipStoreBase=GRADLE_USER_HOME
distributionUrl=http\://services.gradle.org/distributions/gradle-1.6-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
#Wed Apr 30 13:06:57 CEST 2014
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-bin.zip
+1 -1
View File
@@ -17,7 +17,7 @@ echo been tested against STS %STS_TEST_VERSION%), but at the minimum you will
echo need Eclipse + AJDT.
echo.
echo If you need to download and install STS, please do that now by
echo visiting http://springsource.org/downloads/sts
echo visiting https://spring.io/tools
echo.
echo Otherwise, press enter and we'll begin.
+1 -1
View File
@@ -14,7 +14,7 @@ been tested against STS $STS_TEST_VERSION), but at the minimum you will
need Eclipse + AJDT.
If you need to download and install STS, please do that now by
visiting http://springsource.org/downloads/sts
visiting https://spring.io/tools
Otherwise, press enter and we'll begin.
EOM
+3 -3
View File
@@ -13,7 +13,7 @@ _Within your locally cloned spring-framework working directory:_
## Known issues
1. `spring-aspects` does not compile out of the box due to references to aspect types unknown to IDEA.
See http://youtrack.jetbrains.com/issue/IDEA-64446 for details. In the meantime, the 'spring-aspects'
See https://youtrack.jetbrains.com/issue/IDEA-64446 for details. In the meantime, the 'spring-aspects'
module has been excluded from the overall project to avoid compilation errors.
2. While all JUnit tests pass from the command line with Gradle, many will fail when run from IDEA.
Resolving this is a work in progress. If attempting to run all JUnit tests from within IDEA, you will
@@ -27,6 +27,6 @@ You'll notice these files are already intentionally in .gitignore. The same poli
## FAQ
Q. What about IDEA's own [Gradle support](http://confluence.jetbrains.net/display/IDEADEV/Gradle+integration)?
Q. What about IDEA's own [Gradle support](https://confluence.jetbrains.net/display/IDEADEV/Gradle+integration)?
A. Keep an eye on http://youtrack.jetbrains.com/issue/IDEA-53476
A. Keep an eye on https://youtrack.jetbrains.com/issue/IDEA-53476
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -34,6 +34,6 @@ public interface IntroductionInfo {
* Return the additional interfaces introduced by this Advisor or Advice.
* @return the introduced interfaces
*/
Class[] getInterfaces();
Class<?>[] getInterfaces();
}
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -1,11 +1,11 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -120,9 +120,9 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
/** Non-null if after returning advice binds the return value */
private String returningName = null;
private Class discoveredReturningType = Object.class;
private Class<?> discoveredReturningType = Object.class;
private Class discoveredThrowingType = Object.class;
private Class<?> discoveredThrowingType = Object.class;
/**
* Index for thisJoinPoint argument (currently only
@@ -238,7 +238,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
setArgumentNamesFromStringArray(tokens);
}
public void setArgumentNamesFromStringArray(String[] args) {
public void setArgumentNamesFromStringArray(String... args) {
this.argumentNames = new String[args.length];
for (int i = 0; i < args.length; i++) {
this.argumentNames[i] = StringUtils.trimWhitespace(args[i]);
@@ -251,7 +251,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
if (argumentNames != null) {
if (aspectJAdviceMethod.getParameterTypes().length == argumentNames.length + 1) {
// May need to add implicit join point arg name...
Class firstArgType = aspectJAdviceMethod.getParameterTypes()[0];
Class<?> firstArgType = aspectJAdviceMethod.getParameterTypes()[0];
if (firstArgType == JoinPoint.class ||
firstArgType == ProceedingJoinPoint.class ||
firstArgType == JoinPoint.StaticPart.class) {
@@ -290,7 +290,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
}
}
protected Class getDiscoveredReturningType() {
protected Class<?> getDiscoveredReturningType() {
return this.discoveredReturningType;
}
@@ -324,7 +324,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
}
}
protected Class getDiscoveredThrowingType() {
protected Class<?> getDiscoveredThrowingType() {
return this.discoveredThrowingType;
}
@@ -362,7 +362,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
}
int numUnboundArgs = this.adviceInvocationArgumentCount;
Class[] parameterTypes = this.aspectJAdviceMethod.getParameterTypes();
Class<?>[] parameterTypes = this.aspectJAdviceMethod.getParameterTypes();
if (maybeBindJoinPoint(parameterTypes[0]) || maybeBindProceedingJoinPoint(parameterTypes[0])) {
numUnboundArgs--;
}
@@ -378,7 +378,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
this.argumentsIntrospected = true;
}
private boolean maybeBindJoinPoint(Class candidateParameterType) {
private boolean maybeBindJoinPoint(Class<?> candidateParameterType) {
if (candidateParameterType.equals(JoinPoint.class)) {
this.joinPointArgumentIndex = 0;
return true;
@@ -388,7 +388,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
}
}
private boolean maybeBindProceedingJoinPoint(Class candidateParameterType) {
private boolean maybeBindProceedingJoinPoint(Class<?> candidateParameterType) {
if (candidateParameterType.equals(ProceedingJoinPoint.class)) {
if (!supportsProceedingJoinPoint()) {
throw new IllegalArgumentException("ProceedingJoinPoint is only supported for around advice");
@@ -405,7 +405,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
return false;
}
private boolean maybeBindJoinPointStaticPart(Class candidateParameterType) {
private boolean maybeBindJoinPointStaticPart(Class<?> candidateParameterType) {
if (candidateParameterType.equals(JoinPoint.StaticPart.class)) {
this.joinPointStaticPartArgumentIndex = 0;
return true;
@@ -509,8 +509,8 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
numParametersToRemove++;
}
String[] pointcutParameterNames = new String[this.argumentNames.length - numParametersToRemove];
Class[] pointcutParameterTypes = new Class[pointcutParameterNames.length];
Class[] methodParameterTypes = this.aspectJAdviceMethod.getParameterTypes();
Class<?>[] pointcutParameterTypes = new Class<?>[pointcutParameterNames.length];
Class<?>[] methodParameterTypes = this.aspectJAdviceMethod.getParameterTypes();
int index = 0;
for (int i = 0; i < this.argumentNames.length; i++) {
@@ -678,7 +678,7 @@ public abstract class AbstractAspectJAdvice implements Advice, AspectJPrecedence
this.adviceMethod = adviceMethod;
}
public boolean matches(Method method, Class targetClass) {
public boolean matches(Method method, Class<?> targetClass) {
return !this.adviceMethod.equals(method);
}
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -1,11 +1,11 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2015 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -19,6 +19,7 @@ package org.springframework.aop.aspectj;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.lang.reflect.Method;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
@@ -29,7 +30,6 @@ import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.weaver.BCException;
import org.aspectj.weaver.patterns.NamePattern;
import org.aspectj.weaver.reflect.ReflectionWorld;
import org.aspectj.weaver.reflect.ReflectionWorld.ReflectionWorldException;
import org.aspectj.weaver.reflect.ShadowMatchImpl;
import org.aspectj.weaver.tools.ContextBasedMatcher;
@@ -108,6 +108,8 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
private BeanFactory beanFactory;
private transient ClassLoader pointcutClassLoader;
private transient PointcutExpression pointcutExpression;
private transient Map<Method, ShadowMatch> shadowMatchCache = new ConcurrentHashMap<Method, ShadowMatch>(32);
@@ -182,20 +184,13 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
throw new IllegalStateException("Must set property 'expression' before attempting to match");
}
if (this.pointcutExpression == null) {
this.pointcutExpression = buildPointcutExpression();
this.pointcutClassLoader = (this.beanFactory instanceof ConfigurableBeanFactory ?
((ConfigurableBeanFactory) this.beanFactory).getBeanClassLoader() :
ClassUtils.getDefaultClassLoader());
this.pointcutExpression = buildPointcutExpression(this.pointcutClassLoader);
}
}
/**
* Build the underlying AspectJ pointcut expression.
*/
private PointcutExpression buildPointcutExpression() {
ClassLoader cl = (this.beanFactory instanceof ConfigurableBeanFactory ?
((ConfigurableBeanFactory) this.beanFactory).getBeanClassLoader() :
ClassUtils.getDefaultClassLoader());
return buildPointcutExpression(cl);
}
/**
* Build the underlying AspectJ pointcut expression.
*/
@@ -206,8 +201,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
pointcutParameters[i] = parser.createPointcutParameter(
this.pointcutParameterNames[i], this.pointcutParameterTypes[i]);
}
return parser.parsePointcutExpression(
replaceBooleanOperators(getExpression()),
return parser.parsePointcutExpression(replaceBooleanOperators(getExpression()),
this.pointcutDeclarationScope, pointcutParameters);
}
@@ -248,23 +242,22 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
public boolean matches(Class<?> targetClass) {
checkReadyToMatch();
try {
return this.pointcutExpression.couldMatchJoinPointsInType(targetClass);
}
catch (ReflectionWorldException rwe) {
logger.debug("PointcutExpression matching rejected target class", rwe);
try {
// Actually this is still a "maybe" - treat the pointcut as dynamic if we don't know enough yet
return getFallbackPointcutExpression(targetClass).couldMatchJoinPointsInType(targetClass);
return this.pointcutExpression.couldMatchJoinPointsInType(targetClass);
}
catch (BCException bce) {
logger.debug("Fallback PointcutExpression matching rejected target class", bce);
return false;
catch (ReflectionWorldException ex) {
logger.debug("PointcutExpression matching rejected target class - trying fallback expression", ex);
// Actually this is still a "maybe" - treat the pointcut as dynamic if we don't know enough yet
PointcutExpression fallbackExpression = getFallbackPointcutExpression(targetClass);
if (fallbackExpression != null) {
return fallbackExpression.couldMatchJoinPointsInType(targetClass);
}
}
}
catch (BCException ex) {
logger.debug("PointcutExpression matching rejected target class", ex);
return false;
}
return false;
}
public boolean matches(Method method, Class<?> targetClass, boolean beanHasIntroductions) {
@@ -326,29 +319,41 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
catch (IllegalStateException ex) {
// No current invocation...
// TODO: Should we really proceed here?
logger.debug("Couldn't access current invocation - matching with limited context: " + ex);
}
JoinPointMatch joinPointMatch = shadowMatch.matchesJoinPoint(thisObject, targetObject, args);
/*
* Do a final check to see if any this(TYPE) kind of residue match. For
* this purpose, we use the original method's (proxy method's) shadow to
* ensure that 'this' is correctly checked against. Without this check,
* we get incorrect match on this(TYPE) where TYPE matches the target
* type but not 'this' (as would be the case of JDK dynamic proxies).
* <p>See SPR-2979 for the original bug.
*/
if (pmi != null) { // there is a current invocation
RuntimeTestWalker originalMethodResidueTest = getRuntimeTestWalker(originalShadowMatch);
if (!originalMethodResidueTest.testThisInstanceOfResidue(thisObject.getClass())) {
return false;
}
if (joinPointMatch.matches()) {
bindParameters(pmi, joinPointMatch);
if (logger.isDebugEnabled()) {
logger.debug("Could not access current invocation - matching with limited context: " + ex);
}
}
return joinPointMatch.matches();
try {
JoinPointMatch joinPointMatch = shadowMatch.matchesJoinPoint(thisObject, targetObject, args);
/*
* Do a final check to see if any this(TYPE) kind of residue match. For
* this purpose, we use the original method's (proxy method's) shadow to
* ensure that 'this' is correctly checked against. Without this check,
* we get incorrect match on this(TYPE) where TYPE matches the target
* type but not 'this' (as would be the case of JDK dynamic proxies).
* <p>See SPR-2979 for the original bug.
*/
if (pmi != null) { // there is a current invocation
RuntimeTestWalker originalMethodResidueTest = getRuntimeTestWalker(originalShadowMatch);
if (!originalMethodResidueTest.testThisInstanceOfResidue(thisObject.getClass())) {
return false;
}
if (joinPointMatch.matches()) {
bindParameters(pmi, joinPointMatch);
}
}
return joinPointMatch.matches();
}
catch (Throwable ex) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to evaluate join point for arguments " + Arrays.asList(args) +
" - falling back to non-match", ex);
}
return false;
}
}
protected String getCurrentProxiedBeanName() {
@@ -357,12 +362,19 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
/**
* Get a new pointcut expression based on a target class's loader, rather
* than the default.
* Get a new pointcut expression based on a target class's loader rather than the default.
*/
private PointcutExpression getFallbackPointcutExpression(Class<?> targetClass) {
ClassLoader classLoader = targetClass.getClassLoader();
return (classLoader != null ? buildPointcutExpression(classLoader) : this.pointcutExpression);
try {
ClassLoader classLoader = targetClass.getClassLoader();
if (classLoader != null && classLoader != this.pointcutClassLoader) {
return buildPointcutExpression(classLoader);
}
}
catch (Throwable ex) {
logger.debug("Failed to create fallback PointcutExpression", ex);
}
return null;
}
private RuntimeTestWalker getRuntimeTestWalker(ShadowMatch shadowMatch) {
@@ -388,46 +400,51 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
if (shadowMatch == null) {
synchronized (this.shadowMatchCache) {
// Not found - now check again with full lock...
PointcutExpression fallbackExpression = null;
Method methodToMatch = targetMethod;
PointcutExpression fallbackPointcutExpression = null;
shadowMatch = this.shadowMatchCache.get(methodToMatch);
shadowMatch = this.shadowMatchCache.get(targetMethod);
if (shadowMatch == null) {
try {
shadowMatch = this.pointcutExpression.matchesMethodExecution(targetMethod);
shadowMatch = this.pointcutExpression.matchesMethodExecution(methodToMatch);
}
catch (ReflectionWorld.ReflectionWorldException ex) {
catch (ReflectionWorldException ex) {
// Failed to introspect target method, probably because it has been loaded
// in a special ClassLoader. Let's try the original method instead...
// in a special ClassLoader. Let's try the declaring ClassLoader instead...
try {
fallbackPointcutExpression = getFallbackPointcutExpression(methodToMatch.getDeclaringClass());
shadowMatch = fallbackPointcutExpression.matchesMethodExecution(methodToMatch);
}
catch (ReflectionWorld.ReflectionWorldException ex2) {
if (targetMethod == originalMethod) {
shadowMatch = new ShadowMatchImpl(org.aspectj.util.FuzzyBoolean.NO, null, null, null);
fallbackExpression = getFallbackPointcutExpression(methodToMatch.getDeclaringClass());
if (fallbackExpression != null) {
shadowMatch = fallbackExpression.matchesMethodExecution(methodToMatch);
}
else {
try {
shadowMatch = this.pointcutExpression.matchesMethodExecution(originalMethod);
}
catch (ReflectionWorld.ReflectionWorldException ex3) {
// Could neither introspect the target class nor the proxy class ->
// let's simply consider this method as non-matching.
methodToMatch = originalMethod;
fallbackPointcutExpression = getFallbackPointcutExpression(methodToMatch.getDeclaringClass());
try {
shadowMatch = fallbackPointcutExpression.matchesMethodExecution(methodToMatch);
}
catch (ReflectionWorld.ReflectionWorldException ex4) {
shadowMatch = new ShadowMatchImpl(org.aspectj.util.FuzzyBoolean.NO, null, null, null);
}
}
catch (ReflectionWorldException ex2) {
fallbackExpression = null;
}
}
if (shadowMatch == null && targetMethod != originalMethod) {
methodToMatch = originalMethod;
try {
shadowMatch = this.pointcutExpression.matchesMethodExecution(methodToMatch);
}
catch (ReflectionWorldException ex3) {
// Could neither introspect the target class nor the proxy class ->
// let's try the original method's declaring class before we give up...
try {
fallbackExpression = getFallbackPointcutExpression(methodToMatch.getDeclaringClass());
if (fallbackExpression != null) {
shadowMatch = fallbackExpression.matchesMethodExecution(methodToMatch);
}
}
catch (ReflectionWorldException ex4) {
fallbackExpression = null;
}
}
}
if (shadowMatch.maybeMatches() && fallbackPointcutExpression != null) {
if (shadowMatch == null) {
shadowMatch = new ShadowMatchImpl(org.aspectj.util.FuzzyBoolean.NO, null, null, null);
}
else if (shadowMatch.maybeMatches() && fallbackExpression != null) {
shadowMatch = new DefensiveShadowMatch(shadowMatch,
fallbackPointcutExpression.matchesMethodExecution(methodToMatch));
fallbackExpression.matchesMethodExecution(methodToMatch));
}
this.shadowMatchCache.put(targetMethod, shadowMatch);
}
@@ -545,7 +562,7 @@ public class AspectJExpressionPointcut extends AbstractExpressionPointcut
return false;
}
private FuzzyBoolean contextMatch(Class targetType) {
private FuzzyBoolean contextMatch(Class<?> targetType) {
String advisedBeanName = getCurrentProxiedBeanName();
if (advisedBeanName == null) { // no proxy creation in progress
// abstain; can't return YES, since that will make pointcut with negation fail
@@ -1,11 +1,11 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -39,24 +39,24 @@ public class AspectJExpressionPointcutAdvisor extends AbstractGenericPointcutAdv
this.pointcut.setExpression(expression);
}
public String getExpression() {
return this.pointcut.getExpression();
}
public void setLocation(String location) {
this.pointcut.setLocation(location);
}
public void setParameterTypes(Class[] types) {
this.pointcut.setParameterTypes(types);
}
public void setParameterNames(String[] names) {
this.pointcut.setParameterNames(names);
}
public String getLocation() {
return this.pointcut.getLocation();
}
public String getExpression() {
return this.pointcut.getExpression();
public void setParameterTypes(Class<?>[] types) {
this.pointcut.setParameterTypes(types);
}
public void setParameterNames(String... names) {
this.pointcut.setParameterNames(names);
}
}
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -34,7 +34,7 @@ import org.springframework.aop.support.DelegatingIntroductionInterceptor;
*/
public class DeclareParentsAdvisor implements IntroductionAdvisor {
private final Class introducedInterface;
private final Class<?> introducedInterface;
private final ClassFilter typePatternClassFilter;
@@ -47,7 +47,7 @@ public class DeclareParentsAdvisor implements IntroductionAdvisor {
* @param typePattern type pattern the introduction is restricted to
* @param defaultImpl the default implementation class
*/
public DeclareParentsAdvisor(Class interfaceType, String typePattern, Class defaultImpl) {
public DeclareParentsAdvisor(Class<?> interfaceType, String typePattern, Class<?> defaultImpl) {
this(interfaceType, typePattern, defaultImpl,
new DelegatePerTargetObjectIntroductionInterceptor(defaultImpl, interfaceType));
}
@@ -58,7 +58,7 @@ public class DeclareParentsAdvisor implements IntroductionAdvisor {
* @param typePattern type pattern the introduction is restricted to
* @param delegateRef the delegate implementation object
*/
public DeclareParentsAdvisor(Class interfaceType, String typePattern, Object delegateRef) {
public DeclareParentsAdvisor(Class<?> interfaceType, String typePattern, Object delegateRef) {
this(interfaceType, typePattern, delegateRef.getClass(),
new DelegatingIntroductionInterceptor(delegateRef));
}
@@ -71,13 +71,13 @@ public class DeclareParentsAdvisor implements IntroductionAdvisor {
* @param implementationClass implementation class
* @param advice delegation advice
*/
private DeclareParentsAdvisor(Class interfaceType, String typePattern, Class implementationClass, Advice advice) {
private DeclareParentsAdvisor(Class<?> interfaceType, String typePattern, Class<?> implementationClass, Advice advice) {
this.introducedInterface = interfaceType;
ClassFilter typePatternFilter = new TypePatternClassFilter(typePattern);
// Excludes methods implemented.
ClassFilter exclusion = new ClassFilter() {
public boolean matches(Class clazz) {
public boolean matches(Class<?> clazz) {
return !(introducedInterface.isAssignableFrom(clazz));
}
};
@@ -103,8 +103,8 @@ public class DeclareParentsAdvisor implements IntroductionAdvisor {
return this.advice;
}
public Class[] getInterfaces() {
return new Class[] {this.introducedInterface};
public Class<?>[] getInterfaces() {
return new Class<?>[] {this.introducedInterface};
}
}
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -1,11 +1,11 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -18,9 +18,11 @@ package org.springframework.aop.aspectj.annotation;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.beans.factory.support.AbstractBeanFactory;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.AnnotationUtils;
import org.springframework.core.annotation.Order;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
/**
@@ -66,7 +68,9 @@ public class BeanFactoryAspectInstanceFactory implements MetadataAwareAspectInst
* @param name the name of the bean
* @param type the type that should be introspected by AspectJ
*/
public BeanFactoryAspectInstanceFactory(BeanFactory beanFactory, String name, Class type) {
public BeanFactoryAspectInstanceFactory(BeanFactory beanFactory, String name, Class<?> type) {
Assert.notNull(beanFactory, "BeanFactory must not be null");
Assert.notNull(name, "Bean name must not be null");
this.beanFactory = beanFactory;
this.name = name;
this.aspectMetadata = new AspectMetadata(type, name);
@@ -78,18 +82,31 @@ public class BeanFactoryAspectInstanceFactory implements MetadataAwareAspectInst
}
public ClassLoader getAspectClassLoader() {
if (this.beanFactory instanceof ConfigurableBeanFactory) {
return ((ConfigurableBeanFactory) this.beanFactory).getBeanClassLoader();
}
else {
return ClassUtils.getDefaultClassLoader();
}
return (this.beanFactory instanceof ConfigurableBeanFactory ?
((ConfigurableBeanFactory) this.beanFactory).getBeanClassLoader() :
ClassUtils.getDefaultClassLoader());
}
public AspectMetadata getAspectMetadata() {
return this.aspectMetadata;
}
public Object getAspectCreationMutex() {
if (this.beanFactory != null) {
if (this.beanFactory.isSingleton(this.name)) {
// Rely on singleton semantics provided by the factory -> no local lock.
return null;
}
else if (this.beanFactory instanceof AbstractBeanFactory) {
// No singleton guarantees from the factory -> let's lock locally but
// reuse the factory's singleton lock, just in case a lazy dependency
// of our advice bean happens to trigger the singleton lock implicitly...
return ((AbstractBeanFactory) this.beanFactory).getSingletonMutex();
}
}
return this;
}
/**
* Determine the order for this factory's target aspect, either
* an instance-specific order expressed through implementing the
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -1,11 +1,11 @@
/*
* Copyright 2002-2009 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -42,11 +42,20 @@ public class LazySingletonAspectInstanceFactoryDecorator implements MetadataAwar
}
public synchronized Object getAspectInstance() {
public Object getAspectInstance() {
if (this.materialized == null) {
synchronized (this) {
if (this.materialized == null) {
this.materialized = this.maaif.getAspectInstance();
Object mutex = this;
if (this.maaif instanceof BeanFactoryAspectInstanceFactory) {
mutex = ((BeanFactoryAspectInstanceFactory) this.maaif).getAspectCreationMutex();
}
if (mutex == null) {
this.materialized = this.maaif.getAspectInstance();
}
else {
synchronized (mutex) {
if (this.materialized == null) {
this.materialized = this.maaif.getAspectInstance();
}
}
}
}
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -1,11 +1,11 @@
/*
* Copyright 2002-2013 the original author or authors.
* Copyright 2002-2014 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -49,7 +49,7 @@ public abstract class AbstractAdvisingBeanPostProcessor extends ProxyConfig
*/
private int order = Ordered.LOWEST_PRECEDENCE;
private final Map<Class, Boolean> eligibleBeans = new ConcurrentHashMap<Class, Boolean>(64);
private final Map<Class<?>, Boolean> eligibleBeans = new ConcurrentHashMap<Class<?>, Boolean>(64);
/**
@@ -87,9 +87,11 @@ public abstract class AbstractAdvisingBeanPostProcessor extends ProxyConfig
// Ignore AOP infrastructure such as scoped proxies.
return bean;
}
if (isEligible(bean, beanName)) {
if (bean instanceof Advised) {
Advised advised = (Advised) bean;
if (bean instanceof Advised) {
Advised advised = (Advised) bean;
if (!advised.isFrozen() && isEligible(AopUtils.getTargetClass(bean))) {
// Add our local Advisor to the existing proxy's Advisor chain...
if (this.beforeExistingAdvisors) {
advised.addAdvisor(0, this.advisor);
}
@@ -98,32 +100,47 @@ public abstract class AbstractAdvisingBeanPostProcessor extends ProxyConfig
}
return bean;
}
else {
ProxyFactory proxyFactory = new ProxyFactory(bean);
// Copy our properties (proxyTargetClass etc) inherited from ProxyConfig.
proxyFactory.copyFrom(this);
proxyFactory.addAdvisor(this.advisor);
return proxyFactory.getProxy(this.beanClassLoader);
}
}
else {
// No async proxy needed.
return bean;
if (isEligible(bean, beanName)) {
ProxyFactory proxyFactory = new ProxyFactory(bean);
// Copy our properties (proxyTargetClass etc) inherited from ProxyConfig.
proxyFactory.copyFrom(this);
proxyFactory.addAdvisor(this.advisor);
return proxyFactory.getProxy(this.beanClassLoader);
}
// No async proxy needed.
return bean;
}
/**
* Check whether the given bean is eligible for advising with this
* post-processor's {@link Advisor}.
* <p>Implements caching of {@code canApply} results per bean target class.
* <p>Delegates to {@link #isEligible(Class)} for target class checking.
* Can be overridden e.g. to specifically exclude certain beans by name.
* <p>Note: Only called for regular bean instances but not for existing
* proxy instances which implement {@link Advised} and allow for adding
* the local {@link Advisor} to the existing proxy's {@link Advisor} chain.
* For the latter, {@link #isEligible(Class)} is being called directly,
* with the actual target class behind the existing proxy (as determined
* by {@link AopUtils#getTargetClass(Object)}).
* @param bean the bean instance
* @param beanName the name of the bean
* @see AopUtils#getTargetClass(Object)
* @see AopUtils#canApply(Advisor, Class)
* @see #isEligible(Class)
*/
protected boolean isEligible(Object bean, String beanName) {
Class<?> targetClass = AopUtils.getTargetClass(bean);
return isEligible(bean.getClass());
}
/**
* Check whether the given class is eligible for advising with this
* post-processor's {@link Advisor}.
* <p>Implements caching of {@code canApply} results per bean target class.
* @param targetClass the class to check against
* @see AopUtils#canApply(Advisor, Class)
*/
protected boolean isEligible(Class<?> targetClass) {
Boolean eligible = this.eligibleBeans.get(targetClass);
if (eligible != null) {
return eligible;
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
@@ -5,7 +5,7 @@
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,

Some files were not shown because too many files have changed in this diff Show More