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://docs.groovy-lang.org/latest/html/documentation/index.html (200) with 2 occurrences could not be migrated:
   ([https](https://docs.groovy-lang.org/latest/html/documentation/index.html) result SSLProtocolException).
* [ ] http://jibx.sourceforge.net/ (200) with 1 occurrences could not be migrated:
   ([https](https://jibx.sourceforge.net/) result AnnotatedConnectException).
* [ ] http://www.castor.org/ (200) with 1 occurrences could not be migrated:
   ([https](https://www.castor.org/) result AnnotatedConnectException).
* [ ] http://www.groovy-lang.org/ (200) with 2 occurrences could not be migrated:
   ([https](https://www.groovy-lang.org/) result SSLProtocolException).
* [ ] http://www.jcraft.com/jsch/ (200) with 2 occurrences could not be migrated:
   ([https](https://www.jcraft.com/jsch/) result AnnotatedConnectException).
* [ ] http://foo.com (301) with 7 occurrences could not be migrated:
   ([https](https://foo.com) result SSLHandshakeException).
* [ ] http://oexchange.org/spec/0.8/rel/related-target (301) with 1 occurrences could not be migrated:
   ([https](https://oexchange.org/spec/0.8/rel/related-target) result SSLHandshakeException).
* [ ] http://twitter4j.org (302) with 1 occurrences could not be migrated:
   ([https](https://twitter4j.org) 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://bugs.sun.com/view_bug.do?bug_id=6682380 (302) with 1 occurrences migrated to:
  https://bugs.java.com/view_bug.do?bug_id=6682380 ([https](https://bugs.sun.com/view_bug.do?bug_id=6682380) result SSLHandshakeException).
* [ ] http://status.twitter.com (301) with 1 occurrences migrated to:
  https://status.twitterstat.us/ ([https](https://status.twitter.com) result SSLProtocolException).
* [ ] http://jruby.org/ (301) with 1 occurrences migrated to:
  https://www.jruby.org ([https](https://jruby.org/) result SSLHandshakeException).
* [ ] http://site1.com (ConnectTimeoutException) with 1 occurrences migrated to:
  https://site1.com ([https](https://site1.com) result ConnectTimeoutException).
* [ ] http://www.gemstone.com/docs/6.6.RC/product/docs/html/user_guide/UserGuide_GemFire.html (ConnectTimeoutException) with 1 occurrences migrated to:
  https://www.gemstone.com/docs/6.6.RC/product/docs/html/user_guide/UserGuide_GemFire.html ([https](https://www.gemstone.com/docs/6.6.RC/product/docs/html/user_guide/UserGuide_GemFire.html) result ConnectTimeoutException).
* [ ] http://www.gemstone.com/docs/current/product/docs/japi/com/gemstone/gemfire/cache/EntryEvent.html (ConnectTimeoutException) with 1 occurrences migrated to:
  https://www.gemstone.com/docs/current/product/docs/japi/com/gemstone/gemfire/cache/EntryEvent.html ([https](https://www.gemstone.com/docs/current/product/docs/japi/com/gemstone/gemfire/cache/EntryEvent.html) result ConnectTimeoutException).
* [ ] http://a0.twimg.com/a/1295478501/images/fronts/logo_withbird_home.png (UnknownHostException) with 1 occurrences migrated to:
  https://a0.twimg.com/a/1295478501/images/fronts/logo_withbird_home.png ([https](https://a0.twimg.com/a/1295478501/images/fronts/logo_withbird_home.png) result UnknownHostException).
* [ ] http://a0.twimg.com/a/1295478501/images/whatsnew/video-sample-ss.png (UnknownHostException) with 1 occurrences migrated to:
  https://a0.twimg.com/a/1295478501/images/whatsnew/video-sample-ss.png ([https](https://a0.twimg.com/a/1295478501/images/whatsnew/video-sample-ss.png) result UnknownHostException).
* [ ] http://a0.twimg.com/a/1295478501/javascripts/widgets/widget.js?1295482593 (UnknownHostException) with 1 occurrences migrated to:
  https://a0.twimg.com/a/1295478501/javascripts/widgets/widget.js?1295482593 ([https](https://a0.twimg.com/a/1295478501/javascripts/widgets/widget.js?1295482593) result UnknownHostException).
* [ ] http://a0.twimg.com/profile_images/1129952837/chelsea_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a0.twimg.com/profile_images/1129952837/chelsea_normal.jpg ([https](https://a0.twimg.com/profile_images/1129952837/chelsea_normal.jpg) result UnknownHostException).
* [ ] http://a0.twimg.com/profile_images/1147019935/evedit0xr_2_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a0.twimg.com/profile_images/1147019935/evedit0xr_2_normal.jpg ([https](https://a0.twimg.com/profile_images/1147019935/evedit0xr_2_normal.jpg) result UnknownHostException).
* [ ] http://a0.twimg.com/profile_images/1147750206/avatar03_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a0.twimg.com/profile_images/1147750206/avatar03_normal.jpg ([https](https://a0.twimg.com/profile_images/1147750206/avatar03_normal.jpg) result UnknownHostException).
* [ ] http://a0.twimg.com/profile_images/1193341281/BOF-Logo-Favicon-Twitter_normal.png (UnknownHostException) with 2 occurrences migrated to:
  https://a0.twimg.com/profile_images/1193341281/BOF-Logo-Favicon-Twitter_normal.png ([https](https://a0.twimg.com/profile_images/1193341281/BOF-Logo-Favicon-Twitter_normal.png) result UnknownHostException).
* [ ] http://a0.twimg.com/profile_images/1218603158/photo-1_normal.jpeg (UnknownHostException) with 2 occurrences migrated to:
  https://a0.twimg.com/profile_images/1218603158/photo-1_normal.jpeg ([https](https://a0.twimg.com/profile_images/1218603158/photo-1_normal.jpeg) result UnknownHostException).
* [ ] http://a0.twimg.com/profile_images/52396555/logo_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a0.twimg.com/profile_images/52396555/logo_normal.jpg ([https](https://a0.twimg.com/profile_images/52396555/logo_normal.jpg) result UnknownHostException).
* [ ] http://a0.twimg.com/profile_images/66982165/Cory_Booker_Twitter_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a0.twimg.com/profile_images/66982165/Cory_Booker_Twitter_normal.jpg ([https](https://a0.twimg.com/profile_images/66982165/Cory_Booker_Twitter_normal.jpg) result UnknownHostException).
* [ ] http://a1.twimg.com/a/1295478501/images/favicon.ico (UnknownHostException) with 1 occurrences migrated to:
  https://a1.twimg.com/a/1295478501/images/favicon.ico ([https](https://a1.twimg.com/a/1295478501/images/favicon.ico) result UnknownHostException).
* [ ] http://a1.twimg.com/a/1295478501/images/twitter_57.png (UnknownHostException) with 1 occurrences migrated to:
  https://a1.twimg.com/a/1295478501/images/twitter_57.png ([https](https://a1.twimg.com/a/1295478501/images/twitter_57.png) result UnknownHostException).
* [ ] http://a1.twimg.com/a/1295478501/stylesheets/fronts.css?1295482593 (UnknownHostException) with 1 occurrences migrated to:
  https://a1.twimg.com/a/1295478501/stylesheets/fronts.css?1295482593 ([https](https://a1.twimg.com/a/1295478501/stylesheets/fronts.css?1295482593) result UnknownHostException).
* [ ] http://a1.twimg.com/profile_images/421377161/azizlittletwitter_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a1.twimg.com/profile_images/421377161/azizlittletwitter_normal.jpg ([https](https://a1.twimg.com/profile_images/421377161/azizlittletwitter_normal.jpg) result UnknownHostException).
* [ ] http://a1.twimg.com/profile_images/557774500/IMG_1731_normal.JPG (UnknownHostException) with 2 occurrences migrated to:
  https://a1.twimg.com/profile_images/557774500/IMG_1731_normal.JPG ([https](https://a1.twimg.com/profile_images/557774500/IMG_1731_normal.JPG) result UnknownHostException).
* [ ] http://a2.twimg.com/a/1295478501/javascripts/fronts.js (UnknownHostException) with 1 occurrences migrated to:
  https://a2.twimg.com/a/1295478501/javascripts/fronts.js ([https](https://a2.twimg.com/a/1295478501/javascripts/fronts.js) result UnknownHostException).
* [ ] http://a2.twimg.com/profile_images/1164188883/support_normal.png (UnknownHostException) with 2 occurrences migrated to:
  https://a2.twimg.com/profile_images/1164188883/support_normal.png ([https](https://a2.twimg.com/profile_images/1164188883/support_normal.png) result UnknownHostException).
* [ ] http://a2.twimg.com/profile_images/1216137252/image_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a2.twimg.com/profile_images/1216137252/image_normal.jpg ([https](https://a2.twimg.com/profile_images/1216137252/image_normal.jpg) result UnknownHostException).
* [ ] http://a2.twimg.com/profile_images/276864980/Greene_blk_hat_wynn_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a2.twimg.com/profile_images/276864980/Greene_blk_hat_wynn_normal.jpg ([https](https://a2.twimg.com/profile_images/276864980/Greene_blk_hat_wynn_normal.jpg) result UnknownHostException).
* [ ] http://a2.twimg.com/profile_images/57465005/twitter_avatar.nyt_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a2.twimg.com/profile_images/57465005/twitter_avatar.nyt_normal.jpg ([https](https://a2.twimg.com/profile_images/57465005/twitter_avatar.nyt_normal.jpg) result UnknownHostException).
* [ ] http://a2.twimg.com/profile_images/76339565/DA_Twitter_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a2.twimg.com/profile_images/76339565/DA_Twitter_normal.jpg ([https](https://a2.twimg.com/profile_images/76339565/DA_Twitter_normal.jpg) result UnknownHostException).
* [ ] http://a3.twimg.com/profile_images/111107619/tweet-2_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a3.twimg.com/profile_images/111107619/tweet-2_normal.jpg ([https](https://a3.twimg.com/profile_images/111107619/tweet-2_normal.jpg) result UnknownHostException).
* [ ] http://a3.twimg.com/profile_images/1220597165/nate_robinson_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a3.twimg.com/profile_images/1220597165/nate_robinson_normal.jpg ([https](https://a3.twimg.com/profile_images/1220597165/nate_robinson_normal.jpg) result UnknownHostException).
* [ ] http://a3.twimg.com/profile_images/323584581/Bolt_Bus_Photo_FINAL_-_01___2__normal.JPG (UnknownHostException) with 2 occurrences migrated to:
  https://a3.twimg.com/profile_images/323584581/Bolt_Bus_Photo_FINAL_-_01___2__normal.JPG ([https](https://a3.twimg.com/profile_images/323584581/Bolt_Bus_Photo_FINAL_-_01___2__normal.JPG) result UnknownHostException).
* [ ] http://a3.twimg.com/profile_images/68908343/Gold_Box_plain_normal.PNG (UnknownHostException) with 2 occurrences migrated to:
  https://a3.twimg.com/profile_images/68908343/Gold_Box_plain_normal.PNG ([https](https://a3.twimg.com/profile_images/68908343/Gold_Box_plain_normal.PNG) result UnknownHostException).
* [ ] http://a3.twimg.com/profile_images/75078767/AR_73x73_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a3.twimg.com/profile_images/75078767/AR_73x73_normal.jpg ([https](https://a3.twimg.com/profile_images/75078767/AR_73x73_normal.jpg) result UnknownHostException).
* [ ] http://a3.twimg.com/profile_images/856198179/alg_kyle_wilson_normal.jpg (UnknownHostException) with 2 occurrences migrated to:
  https://a3.twimg.com/profile_images/856198179/alg_kyle_wilson_normal.jpg ([https](https://a3.twimg.com/profile_images/856198179/alg_kyle_wilson_normal.jpg) result UnknownHostException).
* [ ] http://domain1.com (UnknownHostException) with 1 occurrences migrated to:
  https://domain1.com ([https](https://domain1.com) result UnknownHostException).
* [ ] http://domain2.com (UnknownHostException) with 1 occurrences migrated to:
  https://domain2.com ([https](https://domain2.com) result UnknownHostException).
* [ ] http://foo.bar.com (UnknownHostException) with 3 occurrences migrated to:
  https://foo.bar.com ([https](https://foo.bar.com) result UnknownHostException).
* [ ] http://foo.host/ (UnknownHostException) with 1 occurrences migrated to:
  https://foo.host/ ([https](https://foo.host/) result UnknownHostException).
* [ ] http://git.springsource.org/spring-integration (UnknownHostException) with 2 occurrences migrated to:
  https://git.springsource.org/spring-integration ([https](https://git.springsource.org/spring-integration) 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.jmiguel.eu/groovy.codehaus.org/Advanced+compiler+configuration.html (UnknownHostException) with 1 occurrences migrated to:
  https://groovy.jmiguel.eu/groovy.codehaus.org/Advanced+compiler+configuration.html ([https](https://groovy.jmiguel.eu/groovy.codehaus.org/Advanced+compiler+configuration.html) result UnknownHostException).
* [ ] http://jaxen.codehaus.org/faq.html (UnknownHostException) with 1 occurrences migrated to:
  https://jaxen.codehaus.org/faq.html ([https](https://jaxen.codehaus.org/faq.html) result UnknownHostException).
* [ ] http://local.yahooapis.com/trafficData?appid=YdnDemo&zip= (UnknownHostException) with 1 occurrences migrated to:
  https://local.yahooapis.com/trafficData?appid=YdnDemo&zip= ([https](https://local.yahooapis.com/trafficData?appid=YdnDemo&zip=) result UnknownHostException).
* [ ] http://my.RabbitMQ.com/api/ (UnknownHostException) with 1 occurrences migrated to:
  https://my.RabbitMQ.com/api/ ([https](https://my.RabbitMQ.com/api/) result UnknownHostException).
* [ ] http://my.RabbitMQ.com/api/queues/%2f/si.test.queue?foo (UnknownHostException) with 1 occurrences migrated to:
  https://my.RabbitMQ.com/api/queues/%2f/si.test.queue?foo ([https](https://my.RabbitMQ.com/api/queues/%2f/si.test.queue?foo) result UnknownHostException).
* [ ] http://docs.spring.io/spring-amqp/reference/html/%5Freference.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-amqp/reference/html/%255Freference.html ([https](https://docs.spring.io/spring-amqp/reference/html/%5Freference.html) result 404).
* [ ] http://docs.spring.io/spring-amqp/reference/html/_reference.html (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring-amqp/reference/html/_reference.html ([https](https://docs.spring.io/spring-amqp/reference/html/_reference.html) result 404).
* [ ] http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/beans.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/beans.html ([https](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/beans.html) result 404).
* [ ] http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/expressions.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/expressions.html ([https](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/expressions.html) result 404).
* [ ] http://static.springsource.org/spring-framework/docs/current/spring-framework-reference/html/expressions.html (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/expressions.html ([https](https://static.springsource.org/spring-framework/docs/current/spring-framework-reference/html/expressions.html) result 404).
* [ ] http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/htmlsingle/ (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/htmlsingle/ ([https](https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/htmlsingle/) result 404).
* [ ] http://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/store/MetadataStore.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/store/MetadataStore.html ([https](https://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/store/MetadataStore.html) result 404).
* [ ] http://docs.spring.io/spring-security/site/docs/current/reference/html/concurrency.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-security/site/docs/current/reference/html/concurrency.html ([https](https://docs.spring.io/spring-security/site/docs/current/reference/html/concurrency.html) result 404).
* [ ] http://docs.spring.io/spring-ws/docs/current/reference/html/client.html (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring-ws/docs/current/reference/html/client.html ([https](https://docs.spring.io/spring-ws/docs/current/reference/html/client.html) result 404).
* [ ] http://docs.spring.io/spring-ws/docs/current/reference/html/common.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-ws/docs/current/reference/html/common.html ([https](https://docs.spring.io/spring-ws/docs/current/reference/html/common.html) result 404).
* [ ] http://docs.spring.io/spring-ws/docs/current/reference/html/server.html (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring-ws/docs/current/reference/html/server.html ([https](https://docs.spring.io/spring-ws/docs/current/reference/html/server.html) result 404).
* [ ] http://git-scm.com/,Git (301) with 1 occurrences migrated to:
  https://git-scm.com/,Git ([https](https://git-scm.com/,Git) result 404).
* [ ] http://jcp.org/aboutJava/communityprocess/pr/jsr223/ (302) with 1 occurrences migrated to:
  https://jcp.org/aboutJava/communityprocess/pr/jsr223/ ([https](https://jcp.org/aboutJava/communityprocess/pr/jsr223/) result 404).
* [ ] http://www.example.org/prodcuts (404) with 2 occurrences migrated to:
  https://www.example.org/prodcuts ([https](https://www.example.org/prodcuts) result 404).
* [ ] http://www.example.org/validationTestsSchema (404) with 4 occurrences migrated to:
  https://www.example.org/validationTestsSchema ([https](https://www.example.org/validationTestsSchema) result 404).
* [ ] http://www.springframework.org/schema/integration/webflux/spring-integration-webflux.xsd (404) with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/webflux/spring-integration-webflux.xsd ([https](https://www.springframework.org/schema/integration/webflux/spring-integration-webflux.xsd) result 404).
* [ ] http://search.twitter.com/operators (410) with 1 occurrences migrated to:
  https://search.twitter.com/operators ([https](https://search.twitter.com/operators) result 410).
* [ ] http://search.twitter.com/search (410) with 1 occurrences migrated to:
  https://search.twitter.com/search ([https](https://search.twitter.com/search) result 410).

## 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://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js with 1 occurrences migrated to:
  https://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js ([https](https://ajax.googleapis.com/ajax/libs/jquery/1.3.0/jquery.min.js) result 200).
* [ ] http://blog.twitter.com with 1 occurrences migrated to:
  https://blog.twitter.com ([https](https://blog.twitter.com) result 200).
* [ ] http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css with 1 occurrences migrated to:
  https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css ([https](https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css) result 200).
* [ ] http://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html with 1 occurrences migrated to:
  https://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html ([https](https://dev.mysql.com/doc/refman/5.6/en/fractional-seconds.html) result 200).
* [ ] http://docs.oracle.com/javaee/6/api/javax/jms/Message.html with 1 occurrences migrated to:
  https://docs.oracle.com/javaee/6/api/javax/jms/Message.html ([https](https://docs.oracle.com/javaee/6/api/javax/jms/Message.html) result 200).
* [ ] http://docs.oracle.com/javaee/6/api/javax/jms/TemporaryQueue.html with 1 occurrences migrated to:
  https://docs.oracle.com/javaee/6/api/javax/jms/TemporaryQueue.html ([https](https://docs.oracle.com/javaee/6/api/javax/jms/TemporaryQueue.html) result 200).
* [ ] http://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Result.html with 3 occurrences migrated to:
  https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Result.html ([https](https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Result.html) result 200).
* [ ] http://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Source.html with 1 occurrences migrated to:
  https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Source.html ([https](https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Source.html) result 200).
* [ ] http://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Templates.html with 2 occurrences migrated to:
  https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Templates.html ([https](https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Templates.html) result 200).
* [ ] http://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Document.html with 2 occurrences migrated to:
  https://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Document.html ([https](https://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Document.html) result 200).
* [ ] http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html with 3 occurrences migrated to:
  https://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html ([https](https://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html) result 200).
* [ ] http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/Transformer.html with 1 occurrences migrated to:
  https://docs.oracle.com/javase/7/docs/api/javax/xml/transform/Transformer.html ([https](https://docs.oracle.com/javase/7/docs/api/javax/xml/transform/Transformer.html) result 200).
* [ ] http://docs.spring.io/spring-amqp/api/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-amqp/api/ ([https](https://docs.spring.io/spring-amqp/api/) result 200).
* [ ] http://docs.spring.io/spring-amqp/api/org/springframework/amqp/core/MessageProperties.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-amqp/api/org/springframework/amqp/core/MessageProperties.html ([https](https://docs.spring.io/spring-amqp/api/org/springframework/amqp/core/MessageProperties.html) result 200).
* [ ] http://docs.spring.io/spring-amqp/reference/html/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-amqp/reference/html/ ([https](https://docs.spring.io/spring-amqp/reference/html/) result 200).
* [ ] http://docs.spring.io/spring-data/data-mongo/docs/current/reference/html/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-data/data-mongo/docs/current/reference/html/ ([https](https://docs.spring.io/spring-data/data-mongo/docs/current/reference/html/) result 200).
* [ ] http://docs.spring.io/spring-data/data-redis/docs/current/api/org/springframework/data/redis/core/BoundHashOperations.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-data/data-redis/docs/current/api/org/springframework/data/redis/core/BoundHashOperations.html ([https](https://docs.spring.io/spring-data/data-redis/docs/current/api/org/springframework/data/redis/core/BoundHashOperations.html) result 200).
* [ ] http://docs.spring.io/spring-data/data-redis/docs/current/api/org/springframework/data/redis/support/collections/RedisProperties.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-data/data-redis/docs/current/api/org/springframework/data/redis/support/collections/RedisProperties.html ([https](https://docs.spring.io/spring-data/data-redis/docs/current/api/org/springframework/data/redis/support/collections/RedisProperties.html) result 200).
* [ ] http://static.springsource.org/spring-data/data-redis/docs/current/reference/ (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-data/data-redis/docs/current/reference/ ([https](https://static.springsource.org/spring-data/data-redis/docs/current/reference/) result 200).
* [ ] http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/aop/framework/ReflectiveMethodInvocation.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/aop/framework/ReflectiveMethodInvocation.html ([https](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/aop/framework/ReflectiveMethodInvocation.html) result 200).
* [ ] http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/support/TransactionSynchronization.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/support/TransactionSynchronization.html ([https](https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/support/TransactionSynchronization.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/constant-values.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/constant-values.html ([https](https://docs.spring.io/spring-integration/api/constant-values.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/amqp/support/DefaultAmqpHeaderMapper.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/amqp/support/DefaultAmqpHeaderMapper.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/amqp/support/DefaultAmqpHeaderMapper.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/endpoint/EventDrivenConsumer.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/endpoint/EventDrivenConsumer.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/endpoint/EventDrivenConsumer.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/endpoint/PollingConsumer.html (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/endpoint/PollingConsumer.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/endpoint/PollingConsumer.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/endpoint/SourcePollingChannelAdapter.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/endpoint/SourcePollingChannelAdapter.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/endpoint/SourcePollingChannelAdapter.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/file/DefaultFileNameGenerator.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/file/DefaultFileNameGenerator.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/file/DefaultFileNameGenerator.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileHeaders.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileHeaders.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileHeaders.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileNameGenerator.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileNameGenerator.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileNameGenerator.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileWritingMessageHandler.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileWritingMessageHandler.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileWritingMessageHandler.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/file/remote/RemoteFileTemplate.html with 2 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/file/remote/RemoteFileTemplate.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/file/remote/RemoteFileTemplate.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/http/inbound/IntegrationRequestMappingHandlerMapping.html (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/http/inbound/IntegrationRequestMappingHandlerMapping.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/http/inbound/IntegrationRequestMappingHandlerMapping.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/http/inbound/RequestMapping.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/http/inbound/RequestMapping.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/http/inbound/RequestMapping.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/sftp/session/DefaultSftpSessionFactory.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/sftp/session/DefaultSftpSessionFactory.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/sftp/session/DefaultSftpSessionFactory.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageStore.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageStore.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageStore.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/AbstractPayloadTransformer.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/AbstractPayloadTransformer.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/AbstractPayloadTransformer.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/AbstractTransformer.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/AbstractTransformer.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/AbstractTransformer.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/MessageTransformingHandler.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/MessageTransformingHandler.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/MessageTransformingHandler.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/Transformer.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/Transformer.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/Transformer.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/ws/DefaultSoapHeaderMapper.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/ws/DefaultSoapHeaderMapper.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/ws/DefaultSoapHeaderMapper.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/config/XsltPayloadTransformerParser.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/config/XsltPayloadTransformerParser.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/config/XsltPayloadTransformerParser.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/DomResultFactory.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/DomResultFactory.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/DomResultFactory.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/ResultFactory.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/ResultFactory.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/ResultFactory.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/StringResultFactory.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/StringResultFactory.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/StringResultFactory.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/DomSourceFactory.html with 3 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/DomSourceFactory.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/DomSourceFactory.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/SourceFactory.html with 3 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/SourceFactory.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/SourceFactory.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/MarshallingTransformer.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/MarshallingTransformer.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/MarshallingTransformer.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultToDocumentTransformer.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultToDocumentTransformer.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultToDocumentTransformer.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultToStringTransformer.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultToStringTransformer.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultToStringTransformer.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultTransformer.html with 2 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultTransformer.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultTransformer.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/UnmarshallingTransformer.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/UnmarshallingTransformer.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/UnmarshallingTransformer.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/XsltPayloadTransformer.html with 3 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/XsltPayloadTransformer.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/XsltPayloadTransformer.html) result 200).
* [ ] http://docs.spring.io/spring-integration/api/org/springframework/integration/xmpp/support/DefaultXmppHeaderMapper.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/xmpp/support/DefaultXmppHeaderMapper.html ([https](https://docs.spring.io/spring-integration/api/org/springframework/integration/xmpp/support/DefaultXmppHeaderMapper.html) result 200).
* [ ] http://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/config/EnableIntegration.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/config/EnableIntegration.html ([https](https://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/config/EnableIntegration.html) result 200).
* [ ] http://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/metadata/MetadataStore.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/metadata/MetadataStore.html ([https](https://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/metadata/MetadataStore.html) result 200).
* [ ] http://docs.spring.io/spring-integration/reference/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/reference/ ([https](https://docs.spring.io/spring-integration/reference/) result 200).
* [ ] http://docs.spring.io/spring-session/docs/current/reference/html5/ with 1 occurrences migrated to:
  https://docs.spring.io/spring-session/docs/current/reference/html5/ ([https](https://docs.spring.io/spring-session/docs/current/reference/html5/) result 200).
* [ ] http://docs.spring.io/spring-ws/docs/current/api/org/springframework/ws/client/support/destination/DestinationProvider.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-ws/docs/current/api/org/springframework/ws/client/support/destination/DestinationProvider.html ([https](https://docs.spring.io/spring-ws/docs/current/api/org/springframework/ws/client/support/destination/DestinationProvider.html) result 200).
* [ ] http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/expressions.html ([https](https://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/messaging/PollableChannel.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/messaging/PollableChannel.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/messaging/PollableChannel.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/messaging/SubscribableChannel.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/messaging/SubscribableChannel.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/messaging/SubscribableChannel.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/Resource.html with 2 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/Resource.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/Resource.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/expression/PropertyAccessor.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/expression/PropertyAccessor.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/expression/PropertyAccessor.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/http/client/ClientHttpRequestFactory.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/client/ClientHttpRequestFactory.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/http/client/ClientHttpRequestFactory.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/http/client/SimpleClientHttpRequestFactory.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/client/SimpleClientHttpRequestFactory.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/http/client/SimpleClientHttpRequestFactory.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jmx/export/naming/MetadataNamingStrategy.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jmx/export/naming/MetadataNamingStrategy.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jmx/export/naming/MetadataNamingStrategy.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jmx/export/naming/ObjectNamingStrategy.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jmx/export/naming/ObjectNamingStrategy.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jmx/export/naming/ObjectNamingStrategy.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/messaging/MessageHandlingException.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/messaging/MessageHandlingException.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/messaging/MessageHandlingException.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/orm/jpa/support/SharedEntityManagerBean.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/orm/jpa/support/SharedEntityManagerBean.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/orm/jpa/support/SharedEntityManagerBean.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/scheduling/support/PeriodicTrigger.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/support/PeriodicTrigger.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/scheduling/support/PeriodicTrigger.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/PropertiesPersister.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/PropertiesPersister.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/PropertiesPersister.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/context/support/HttpRequestHandlerServlet.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/context/support/HttpRequestHandlerServlet.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/context/support/HttpRequestHandlerServlet.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/servlet/HandlerMapping.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/HandlerMapping.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/servlet/HandlerMapping.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfo.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfo.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfo.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.html) result 200).
* [ ] http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/util/UriComponentsBuilder.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/util/UriComponentsBuilder.html ([https](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/util/UriComponentsBuilder.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/util/UriComponentsBuilder.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/util/UriComponentsBuilder.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/util/UriComponentsBuilder.html) result 200).
* [ ] http://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding ([https](https://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding) result 200).
* [ ] http://en.wikipedia.org/wiki/List_of_HTTP_header_fields with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/List_of_HTTP_header_fields ([https](https://en.wikipedia.org/wiki/List_of_HTTP_header_fields) result 200).
* [ ] http://en.wikipedia.org/wiki/SQL-92 with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/SQL-92 ([https](https://en.wikipedia.org/wiki/SQL-92) result 200).
* [ ] http://en.wikipedia.org/wiki/XSL_Transformations with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/XSL_Transformations ([https](https://en.wikipedia.org/wiki/XSL_Transformations) result 200).
* [ ] http://epaul.github.io/jsch-documentation/javadoc/com/jcraft/jsch/Session.html with 1 occurrences migrated to:
  https://epaul.github.io/jsch-documentation/javadoc/com/jcraft/jsch/Session.html ([https](https://epaul.github.io/jsch-documentation/javadoc/com/jcraft/jsch/Session.html) result 200).
* [ ] http://example.org with 3 occurrences migrated to:
  https://example.org ([https](https://example.org) result 200).
* [ ] http://feeds.bbci.co.uk/news/rss.xml with 1 occurrences migrated to:
  https://feeds.bbci.co.uk/news/rss.xml ([https](https://feeds.bbci.co.uk/news/rss.xml) result 200).
* [ ] http://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,700italic,400,700 with 1 occurrences migrated to:
  https://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,700italic,400,700 ([https](https://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,700italic,400,700) result 200).
* [ ] http://git-scm.com/ with 3 occurrences migrated to:
  https://git-scm.com/ ([https](https://git-scm.com/) result 200).
* [ ] http://gradle.org/ with 1 occurrences migrated to:
  https://gradle.org/ ([https](https://gradle.org/) result 200).
* [ ] http://hc.apache.org/httpcomponents-client-ga/ with 2 occurrences migrated to:
  https://hc.apache.org/httpcomponents-client-ga/ ([https](https://hc.apache.org/httpcomponents-client-ga/) result 200).
* [ ] http://jcp.org/en/jsr/detail?id=317 with 1 occurrences migrated to:
  https://jcp.org/en/jsr/detail?id=317 ([https](https://jcp.org/en/jsr/detail?id=317) result 200).
* [ ] http://micrometer.io/ with 1 occurrences migrated to:
  https://micrometer.io/ ([https](https://micrometer.io/) result 200).
* [ ] http://oauth.net with 2 occurrences migrated to:
  https://oauth.net ([https](https://oauth.net) result 200).
* [ ] http://projects.spring.io/spring-batch/ with 1 occurrences migrated to:
  https://projects.spring.io/spring-batch/ ([https](https://projects.spring.io/spring-batch/) result 200).
* [ ] http://projects.spring.io/spring-data-mongodb/ with 1 occurrences migrated to:
  https://projects.spring.io/spring-data-mongodb/ ([https](https://projects.spring.io/spring-data-mongodb/) result 200).
* [ ] http://projects.spring.io/spring-integration/ with 3 occurrences migrated to:
  https://projects.spring.io/spring-integration/ ([https](https://projects.spring.io/spring-integration/) result 200).
* [ ] http://projects.spring.io/spring-security/ with 1 occurrences migrated to:
  https://projects.spring.io/spring-security/ ([https](https://projects.spring.io/spring-security/) result 200).
* [ ] http://projects.spring.io/spring-social-twitter/ with 2 occurrences migrated to:
  https://projects.spring.io/spring-social-twitter/ ([https](https://projects.spring.io/spring-social-twitter/) result 200).
* [ ] http://projects.spring.io/spring-ws/ with 1 occurrences migrated to:
  https://projects.spring.io/spring-ws/ ([https](https://projects.spring.io/spring-ws/) result 200).
* [ ] http://redis.io/ with 2 occurrences migrated to:
  https://redis.io/ ([https](https://redis.io/) result 200).
* [ ] http://redis.io/commands/brpop with 2 occurrences migrated to:
  https://redis.io/commands/brpop ([https](https://redis.io/commands/brpop) result 200).
* [ ] http://redis.io/commands/llen with 2 occurrences migrated to:
  https://redis.io/commands/llen ([https](https://redis.io/commands/llen) result 200).
* [ ] http://redis.io/download with 1 occurrences migrated to:
  https://redis.io/download ([https](https://redis.io/download) result 200).
* [ ] http://redis.io/topics/pubsub with 2 occurrences migrated to:
  https://redis.io/topics/pubsub ([https](https://redis.io/topics/pubsub) result 200).
* [ ] http://relaxng.org/ns/structure/1.0 with 1 occurrences migrated to:
  https://relaxng.org/ns/structure/1.0 ([https](https://relaxng.org/ns/structure/1.0) result 200).
* [ ] http://spring.io with 2 occurrences migrated to:
  https://spring.io ([https](https://spring.io) result 200).
* [ ] http://blog.springsource.com/2010/03/29/using-udp-and-tcp-adapters-in-spring-integration-2-0-m3/ (301) with 1 occurrences migrated to:
  https://spring.io/blog/2010/03/29/using-udp-and-tcp-adapters-in-spring-integration-2-0-m3/ ([https](https://blog.springsource.com/2010/03/29/using-udp-and-tcp-adapters-in-spring-integration-2-0-m3/) result 200).
* [ ] http://blog.springsource.com/2010/09/29/new-spring-integration-samples/ (301) with 1 occurrences migrated to:
  https://spring.io/blog/2010/09/29/new-spring-integration-samples/ ([https](https://blog.springsource.com/2010/09/29/new-spring-integration-samples/) result 200).
* [ ] http://stackoverflow.com/questions/32398754/how-to-connect-to-ftps-server-with-data-connection-using-same-tls-session with 1 occurrences migrated to:
  https://stackoverflow.com/questions/32398754/how-to-connect-to-ftps-server-with-data-connection-using-same-tls-session ([https](https://stackoverflow.com/questions/32398754/how-to-connect-to-ftps-server-with-data-connection-using-same-tls-session) result 200).
* [ ] http://stackoverflow.com/questions/6117254/force-oracle-to-return-top-n-rows-with-skip-locked with 1 occurrences migrated to:
  https://stackoverflow.com/questions/6117254/force-oracle-to-return-top-n-rows-with-skip-locked ([https](https://stackoverflow.com/questions/6117254/force-oracle-to-return-top-n-rows-with-skip-locked) result 200).
* [ ] http://tomcat.apache.org/ with 1 occurrences migrated to:
  https://tomcat.apache.org/ ([https](https://tomcat.apache.org/) result 200).
* [ ] http://twitter.com/business with 1 occurrences migrated to:
  https://twitter.com/business ([https](https://twitter.com/business) result 200).
* [ ] http://twitter.com/search?q=%23501pjmnotalone with 1 occurrences migrated to:
  https://twitter.com/search?q=%23501pjmnotalone ([https](https://twitter.com/search?q=%23501pjmnotalone) result 200).
* [ ] http://twitter.com/search?q=%23iloveyoubecause with 1 occurrences migrated to:
  https://twitter.com/search?q=%23iloveyoubecause ([https](https://twitter.com/search?q=%23iloveyoubecause) result 200).
* [ ] http://twitter.com/search?q=%23tweetumfilmecompassiva with 1 occurrences migrated to:
  https://twitter.com/search?q=%23tweetumfilmecompassiva ([https](https://twitter.com/search?q=%23tweetumfilmecompassiva) result 200).
* [ ] http://twitter.com/search?q=Animated+Series with 1 occurrences migrated to:
  https://twitter.com/search?q=Animated+Series ([https](https://twitter.com/search?q=Animated+Series) result 200).
* [ ] http://twitter.com/search?q=Anne+Hathaway with 1 occurrences migrated to:
  https://twitter.com/search?q=Anne+Hathaway ([https](https://twitter.com/search?q=Anne+Hathaway) result 200).
* [ ] http://twitter.com/search?q=Arin+Ilejay with 1 occurrences migrated to:
  https://twitter.com/search?q=Arin+Ilejay ([https](https://twitter.com/search?q=Arin+Ilejay) result 200).
* [ ] http://twitter.com/search?q=Bane with 1 occurrences migrated to:
  https://twitter.com/search?q=Bane ([https](https://twitter.com/search?q=Bane) result 200).
* [ ] http://twitter.com/search?q=Catwoman with 2 occurrences migrated to:
  https://twitter.com/search?q=Catwoman ([https](https://twitter.com/search?q=Catwoman) result 200).
* [ ] http://twitter.com/search?q=Coachella with 1 occurrences migrated to:
  https://twitter.com/search?q=Coachella ([https](https://twitter.com/search?q=Coachella) result 200).
* [ ] http://twitter.com/search?q=Damn+Beliebers with 2 occurrences migrated to:
  https://twitter.com/search?q=Damn+Beliebers ([https](https://twitter.com/search?q=Damn+Beliebers) result 200).
* [ ] http://twitter.com/search?q=Edgar+Allan+Poe with 1 occurrences migrated to:
  https://twitter.com/search?q=Edgar+Allan+Poe ([https](https://twitter.com/search?q=Edgar+Allan+Poe) result 200).
* [ ] http://twitter.com/search?q=English with 1 occurrences migrated to:
  https://twitter.com/search?q=English ([https](https://twitter.com/search?q=English) result 200).
* [ ] http://twitter.com/search?q=Farmac%C3%AAutico with 1 occurrences migrated to:
  https://twitter.com/search?q=Farmac%C3%AAutico ([https](https://twitter.com/search?q=Farmac%C3%AAutico) result 200).
* [ ] http://twitter.com/search?q=First+Class with 1 occurrences migrated to:
  https://twitter.com/search?q=First+Class ([https](https://twitter.com/search?q=First+Class) result 200).
* [ ] http://twitter.com/search?q=Friday with 1 occurrences migrated to:
  https://twitter.com/search?q=Friday ([https](https://twitter.com/search?q=Friday) result 200).
* [ ] http://twitter.com/search?q=Giuliano with 1 occurrences migrated to:
  https://twitter.com/search?q=Giuliano ([https](https://twitter.com/search?q=Giuliano) result 200).
* [ ] http://twitter.com/search?q=JBisJonasBrothers with 2 occurrences migrated to:
  https://twitter.com/search?q=JBisJonasBrothers ([https](https://twitter.com/search?q=JBisJonasBrothers) result 200).
* [ ] http://twitter.com/search?q=Janis+Joplin with 1 occurrences migrated to:
  https://twitter.com/search?q=Janis+Joplin ([https](https://twitter.com/search?q=Janis+Joplin) result 200).
* [ ] http://twitter.com/search?q=Modern+Family with 1 occurrences migrated to:
  https://twitter.com/search?q=Modern+Family ([https](https://twitter.com/search?q=Modern+Family) result 200).
* [ ] http://twitter.com/search?q=Obamacare with 1 occurrences migrated to:
  https://twitter.com/search?q=Obamacare ([https](https://twitter.com/search?q=Obamacare) result 200).
* [ ] http://twitter.com/search?q=Passiva with 1 occurrences migrated to:
  https://twitter.com/search?q=Passiva ([https](https://twitter.com/search?q=Passiva) result 200).
* [ ] http://twitter.com/search?q=Rise+%26+Grind with 2 occurrences migrated to:
  https://twitter.com/search?q=Rise+%26+Grind ([https](https://twitter.com/search?q=Rise+%26+Grind) result 200).
* [ ] http://twitter.com/search?q=Rivaldo with 1 occurrences migrated to:
  https://twitter.com/search?q=Rivaldo ([https](https://twitter.com/search?q=Rivaldo) result 200).
* [ ] http://twitter.com/search?q=Seoul+Music+Awards with 2 occurrences migrated to:
  https://twitter.com/search?q=Seoul+Music+Awards ([https](https://twitter.com/search?q=Seoul+Music+Awards) result 200).
* [ ] http://twitter.com/search?q=Steven+Tyler with 1 occurrences migrated to:
  https://twitter.com/search?q=Steven+Tyler ([https](https://twitter.com/search?q=Steven+Tyler) result 200).
* [ ] http://twitter.com/search?q=Tom+Hardy with 1 occurrences migrated to:
  https://twitter.com/search?q=Tom+Hardy ([https](https://twitter.com/search?q=Tom+Hardy) 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/paho/ with 1 occurrences migrated to:
  https://www.eclipse.org/paho/ ([https](https://www.eclipse.org/paho/) result 200).
* [ ] http://www.ejabberd.im with 1 occurrences migrated to:
  https://www.ejabberd.im ([https](https://www.ejabberd.im) result 200).
* [ ] http://www.eaipatterns.com (302) with 5 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/ ([https](https://www.eaipatterns.com) result 200).
* [ ] http://www.eaipatterns.com/ (302) with 2 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/ ([https](https://www.eaipatterns.com/) result 200).
* [ ] http://www.enterpriseintegrationpatterns.com/docs/TestDrivenEAI.pdf with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/docs/TestDrivenEAI.pdf ([https](https://www.enterpriseintegrationpatterns.com/docs/TestDrivenEAI.pdf) result 200).
* [ ] http://www.eaipatterns.com/ramblings.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/ramblings.html ([https](https://www.eaipatterns.com/ramblings.html) result 200).
* [ ] http://www.example.org with 3 occurrences migrated to:
  https://www.example.org ([https](https://www.example.org) result 200).
* [ ] http://www.h2database.com/ with 1 occurrences migrated to:
  https://www.h2database.com/ ([https](https://www.h2database.com/) result 200).
* [ ] http://www.ietf.org/rfc/rfc2396.txt with 1 occurrences migrated to:
  https://www.ietf.org/rfc/rfc2396.txt ([https](https://www.ietf.org/rfc/rfc2396.txt) result 200).
* [ ] http://www.igniterealtime.org/projects/openfire/ with 1 occurrences migrated to:
  https://www.igniterealtime.org/projects/openfire/ ([https](https://www.igniterealtime.org/projects/openfire/) result 200).
* [ ] http://www.igniterealtime.org/projects/smack/ with 1 occurrences migrated to:
  https://www.igniterealtime.org/projects/smack/ ([https](https://www.igniterealtime.org/projects/smack/) result 200).
* [ ] http://www.jcp.org/en/jsr/detail?id=223 with 1 occurrences migrated to:
  https://www.jcp.org/en/jsr/detail?id=223 ([https](https://www.jcp.org/en/jsr/detail?id=223) result 200).
* [ ] http://www.oracle.com/technetwork/java/javase/downloads/index.html with 1 occurrences migrated to:
  https://www.oracle.com/technetwork/java/javase/downloads/index.html ([https](https://www.oracle.com/technetwork/java/javase/downloads/index.html) result 200).
* [ ] http://www.rabbitmq.com/ with 2 occurrences migrated to:
  https://www.rabbitmq.com/ ([https](https://www.rabbitmq.com/) result 200).
* [ ] http://www.sonarsource.org/ (301) with 1 occurrences migrated to:
  https://www.sonarqube.org/ ([https](https://www.sonarsource.org/) result 200).
* [ ] http://www.springframework.org/schema/beans/spring-beans.xsd with 51 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/context/spring-context.xsd with 1 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/integration/feed/spring-integration-feed.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/feed/spring-integration-feed.xsd ([https](https://www.springframework.org/schema/integration/feed/spring-integration-feed.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/file/spring-integration-file-5.0.xsd with 2 occurrences migrated to:
  https://www.springframework.org/schema/integration/file/spring-integration-file-5.0.xsd ([https](https://www.springframework.org/schema/integration/file/spring-integration-file-5.0.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/file/spring-integration-file.xsd with 3 occurrences migrated to:
  https://www.springframework.org/schema/integration/file/spring-integration-file.xsd ([https](https://www.springframework.org/schema/integration/file/spring-integration-file.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd ([https](https://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/gemfire/spring-integration-gemfire.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/gemfire/spring-integration-gemfire.xsd ([https](https://www.springframework.org/schema/integration/gemfire/spring-integration-gemfire.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/http/spring-integration-http-5.0.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/http/spring-integration-http-5.0.xsd ([https](https://www.springframework.org/schema/integration/http/spring-integration-http-5.0.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/http/spring-integration-http.xsd with 2 occurrences migrated to:
  https://www.springframework.org/schema/integration/http/spring-integration-http.xsd ([https](https://www.springframework.org/schema/integration/http/spring-integration-http.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/ip/spring-integration-ip-5.0.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/ip/spring-integration-ip-5.0.xsd ([https](https://www.springframework.org/schema/integration/ip/spring-integration-ip-5.0.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc.xsd with 4 occurrences migrated to:
  https://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc.xsd ([https](https://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd ([https](https://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/mail/spring-integration-mail.xsd with 2 occurrences migrated to:
  https://www.springframework.org/schema/integration/mail/spring-integration-mail.xsd ([https](https://www.springframework.org/schema/integration/mail/spring-integration-mail.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/rmi/spring-integration-rmi.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/rmi/spring-integration-rmi.xsd ([https](https://www.springframework.org/schema/integration/rmi/spring-integration-rmi.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/scripting/spring-integration-scripting-core-5.0.xsd with 2 occurrences migrated to:
  https://www.springframework.org/schema/integration/scripting/spring-integration-scripting-core-5.0.xsd ([https](https://www.springframework.org/schema/integration/scripting/spring-integration-scripting-core-5.0.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/security/spring-integration-security.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/security/spring-integration-security.xsd ([https](https://www.springframework.org/schema/integration/security/spring-integration-security.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/sftp/spring-integration-sftp.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/sftp/spring-integration-sftp.xsd ([https](https://www.springframework.org/schema/integration/sftp/spring-integration-sftp.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/spring-integration-2.2.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/spring-integration-2.2.xsd ([https](https://www.springframework.org/schema/integration/spring-integration-2.2.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/spring-integration-5.0.xsd with 30 occurrences migrated to:
  https://www.springframework.org/schema/integration/spring-integration-5.0.xsd ([https](https://www.springframework.org/schema/integration/spring-integration-5.0.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/spring-integration.xsd with 46 occurrences migrated to:
  https://www.springframework.org/schema/integration/spring-integration.xsd ([https](https://www.springframework.org/schema/integration/spring-integration.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/stomp/spring-integration-stomp.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/stomp/spring-integration-stomp.xsd ([https](https://www.springframework.org/schema/integration/stomp/spring-integration-stomp.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd with 3 occurrences migrated to:
  https://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd ([https](https://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/twitter/spring-integration-twitter.xsd with 2 occurrences migrated to:
  https://www.springframework.org/schema/integration/twitter/spring-integration-twitter.xsd ([https](https://www.springframework.org/schema/integration/twitter/spring-integration-twitter.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/websocket/spring-integration-websocket.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/websocket/spring-integration-websocket.xsd ([https](https://www.springframework.org/schema/integration/websocket/spring-integration-websocket.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/ws/spring-integration-ws.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/ws/spring-integration-ws.xsd ([https](https://www.springframework.org/schema/integration/ws/spring-integration-ws.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/xml/spring-integration-xml.xsd with 3 occurrences migrated to:
  https://www.springframework.org/schema/integration/xml/spring-integration-xml.xsd ([https](https://www.springframework.org/schema/integration/xml/spring-integration-xml.xsd) result 200).
* [ ] http://www.springframework.org/schema/integration/xmpp/spring-integration-xmpp.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/xmpp/spring-integration-xmpp.xsd ([https](https://www.springframework.org/schema/integration/xmpp/spring-integration-xmpp.xsd) result 200).
* [ ] http://www.springframework.org/schema/security/spring-security.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/security/spring-security.xsd ([https](https://www.springframework.org/schema/security/spring-security.xsd) result 200).
* [ ] http://www.springframework.org/schema/task/spring-task.xsd with 4 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/util/spring-util.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/util/spring-util.xsd ([https](https://www.springframework.org/schema/util/spring-util.xsd) result 200).
* [ ] http://www.vmware.com/support/developer/vfabric-gemfire/662-api/index.html with 1 occurrences migrated to:
  https://www.vmware.com/support/developer/vfabric-gemfire/662-api/index.html ([https](https://www.vmware.com/support/developer/vfabric-gemfire/662-api/index.html) result 200).
* [ ] http://www.vmware.com/support/pubs/vfabric-gemfire.html with 2 occurrences migrated to:
  https://www.vmware.com/support/pubs/vfabric-gemfire.html ([https](https://www.vmware.com/support/pubs/vfabric-gemfire.html) result 200).
* [ ] http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html with 1 occurrences migrated to:
  https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html ([https](https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html) result 200).
* [ ] http://xmpp.org/extensions/xep-0001.html with 1 occurrences migrated to:
  https://xmpp.org/extensions/xep-0001.html ([https](https://xmpp.org/extensions/xep-0001.html) result 200).
* [ ] http://amzn.to/GoldboxDeals with 1 occurrences migrated to:
  https://amzn.to/GoldboxDeals ([https](https://amzn.to/GoldboxDeals) result 301).
* [ ] http://bit.ly/dN812J with 1 occurrences migrated to:
  https://bit.ly/dN812J ([https](https://bit.ly/dN812J) result 301).
* [ ] http://code.google.com/p/jredis/ with 1 occurrences migrated to:
  https://code.google.com/p/jredis/ ([https](https://code.google.com/p/jredis/) result 301).
* [ ] http://code.google.com/p/json-path with 2 occurrences migrated to:
  https://code.google.com/p/json-path ([https](https://code.google.com/p/json-path) result 301).
* [ ] http://contributor-covenant.org with 1 occurrences migrated to:
  https://contributor-covenant.org ([https](https://contributor-covenant.org) result 301).
* [ ] http://contributor-covenant.org/version/1/3/0/ with 1 occurrences migrated to:
  https://contributor-covenant.org/version/1/3/0/ ([https](https://contributor-covenant.org/version/1/3/0/) result 301).
* [ ] http://docs.spring.io/spring-batch/reference/html/retry.html with 1 occurrences migrated to:
  https://docs.spring.io/spring-batch/reference/html/retry.html ([https](https://docs.spring.io/spring-batch/reference/html/retry.html) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop-api.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop-api.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop-api.html) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html with 3 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) result 301).
* [ ] http://static.springsource.org/spring/docs/current/spring-framework-reference/html/beans.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html ([https](https://static.springsource.org/spring/docs/current/spring-framework-reference/html/beans.html) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html with 6 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html) result 301).
* [ ] http://static.springsource.org/spring/docs/current/spring-framework-reference/html/expressions.html (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html ([https](https://static.springsource.org/spring/docs/current/spring-framework-reference/html/expressions.html) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html with 3 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html with 3 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html) result 301).
* [ ] http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html (301) with 3 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html ([https](https://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html with 3 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/remoting.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/remoting.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/remoting.html) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html with 3 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html) result 301).
* [ ] http://static.springsource.org/spring/docs/current/spring-framework-reference/html/validation.html (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html ([https](https://static.springsource.org/spring/docs/current/spring-framework-reference/html/validation.html) result 301).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html) result 301).
* [ ] http://domain.com/ with 1 occurrences migrated to:
  https://domain.com/ ([https](https://domain.com/) result 301).
* [ ] http://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/Proxy.html with 1 occurrences migrated to:
  https://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/Proxy.html ([https](https://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/Proxy.html) result 301).
* [ ] http://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/SocketFactory.html with 1 occurrences migrated to:
  https://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/SocketFactory.html ([https](https://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/SocketFactory.html) result 301).
* [ ] http://forum.spring.io/forum/spring-projects/integration/87155-spring-integration-poller-configuration with 1 occurrences migrated to:
  https://forum.spring.io/forum/spring-projects/integration/87155-spring-integration-poller-configuration ([https](https://forum.spring.io/forum/spring-projects/integration/87155-spring-integration-poller-configuration) result 301).
* [ ] http://forum.springsource.org/forumdisplay.php?f=42 (301) with 1 occurrences migrated to:
  https://forum.spring.io/forumdisplay.php?f=42 ([https](https://forum.springsource.org/forumdisplay.php?f=42) result 301).
* [ ] http://forum.springsource.org/showthread.php?p=333478&posted=1 (301) with 1 occurrences migrated to:
  https://forum.spring.io/showthread.php?p=333478&posted=1 ([https](https://forum.springsource.org/showthread.php?p=333478&posted=1) result 301).
* [ ] http://google.com/ with 1 occurrences migrated to:
  https://google.com/ ([https](https://google.com/) result 301).
* [ ] http://help.github.com/fork-a-repo/ with 2 occurrences migrated to:
  https://help.github.com/fork-a-repo/ ([https](https://help.github.com/fork-a-repo/) result 301).
* [ ] http://help.github.com/send-pull-requests/ with 1 occurrences migrated to:
  https://help.github.com/send-pull-requests/ ([https](https://help.github.com/send-pull-requests/) result 301).
* [ ] http://jabber.org/protocol/disco with 1 occurrences migrated to:
  https://jabber.org/protocol/disco ([https](https://jabber.org/protocol/disco) result 301).
* [ ] http://jabber.org/protocol/pubsub with 1 occurrences migrated to:
  https://jabber.org/protocol/pubsub ([https](https://jabber.org/protocol/pubsub) result 301).
* [ ] http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=10791 with 1 occurrences migrated to:
  https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=10791 ([https](https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=10791) result 301).
* [ ] http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11101 with 1 occurrences migrated to:
  https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11101 ([https](https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11101) result 301).
* [ ] http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11102 with 1 occurrences migrated to:
  https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11102 ([https](https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11102) result 301).
* [ ] http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11146 with 1 occurrences migrated to:
  https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11146 ([https](https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11146) result 301).
* [ ] http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11153 with 1 occurrences migrated to:
  https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11153 ([https](https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11153) result 301).
* [ ] http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11178 with 1 occurrences migrated to:
  https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11178 ([https](https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11178) result 301).
* [ ] http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11209 with 1 occurrences migrated to:
  https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11209 ([https](https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11209) result 301).
* [ ] http://jira.springsource.org with 1 occurrences migrated to:
  https://jira.springsource.org ([https](https://jira.springsource.org) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11306 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11306 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11306) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11307 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11307 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11307) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11311 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11311 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11311) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11389 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11389 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11389) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11446 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11446 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11446) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11536 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11536 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11536) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11537 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11537 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11537) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11656 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11656 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11656) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11668 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11668 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11668) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11696 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11696 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11696) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11749 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11749 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11749) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11787 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11787 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11787) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11815 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11815 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11815) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11828 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11828 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11828) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=12104 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=12104 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=12104) result 301).
* [ ] http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=12200 with 1 occurrences migrated to:
  https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=12200 ([https](https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=12200) result 301).
* [ ] http://m.twitter.com/ with 1 occurrences migrated to:
  https://m.twitter.com/ ([https](https://m.twitter.com/) result 301).
* [ ] http://nyti.ms/gVqqut with 1 occurrences migrated to:
  https://nyti.ms/gVqqut ([https](https://nyti.ms/gVqqut) result 301).
* [ ] http://oxf.am/ZMm with 1 occurrences migrated to:
  https://oxf.am/ZMm ([https](https://oxf.am/ZMm) result 301).
* [ ] http://projects.spring.io/spring-amqp with 1 occurrences migrated to:
  https://projects.spring.io/spring-amqp ([https](https://projects.spring.io/spring-amqp) result 301).
* [ ] http://projects.spring.io/spring-integration with 1 occurrences migrated to:
  https://projects.spring.io/spring-integration ([https](https://projects.spring.io/spring-integration) result 301).
* [ ] http://projects.spring.io/spring-social with 1 occurrences migrated to:
  https://projects.spring.io/spring-social ([https](https://projects.spring.io/spring-social) result 301).
* [ ] http://site2.com with 1 occurrences migrated to:
  https://site2.com ([https](https://site2.com) result 301).
* [ ] http://springsource.org/ with 1 occurrences migrated to:
  https://springsource.org/ ([https](https://springsource.org/) result 301).
* [ ] http://support.twitter.com with 1 occurrences migrated to:
  https://support.twitter.com ([https](https://support.twitter.com) result 301).
* [ ] http://support.twitter.com/articles/119138-types-of-tweets-and-where-they-appear with 1 occurrences migrated to:
  https://support.twitter.com/articles/119138-types-of-tweets-and-where-they-appear ([https](https://support.twitter.com/articles/119138-types-of-tweets-and-where-they-appear) result 301).
* [ ] http://ht.ly/3GzWs (301) with 1 occurrences migrated to:
  https://www.architecturalrecord.com/news/newsmakers/1101fumihiko_maki.asp?WT.mc_id=twitter_archrecord?WT.mc_id=twitter_archrecord ([https](https://ht.ly/3GzWs) result 301).
* [ ] http://www.eaipatterns.com/BroadcastAggregate.html (302) with 2 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/BroadcastAggregate.html ([https](https://www.eaipatterns.com/BroadcastAggregate.html) result 301).
* [ ] http://www.eaipatterns.com/CanonicalDataModel.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/CanonicalDataModel.html ([https](https://www.eaipatterns.com/CanonicalDataModel.html) result 301).
* [ ] http://www.eaipatterns.com/ControlBus.html (302) with 3 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/ControlBus.html ([https](https://www.eaipatterns.com/ControlBus.html) result 301).
* [ ] http://www.eaipatterns.com/DataEnricher.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/DataEnricher.html ([https](https://www.eaipatterns.com/DataEnricher.html) result 301).
* [ ] http://www.eaipatterns.com/DatatypeChannel.html (302) with 2 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/DatatypeChannel.html ([https](https://www.eaipatterns.com/DatatypeChannel.html) result 301).
* [ ] http://www.eaipatterns.com/DistributionAggregate.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/DistributionAggregate.html ([https](https://www.eaipatterns.com/DistributionAggregate.html) result 301).
* [ ] http://www.eaipatterns.com/DynamicRouter.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/DynamicRouter.html ([https](https://www.eaipatterns.com/DynamicRouter.html) result 301).
* [ ] http://www.eaipatterns.com/EventDrivenConsumer.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/EventDrivenConsumer.html ([https](https://www.eaipatterns.com/EventDrivenConsumer.html) result 301).
* [ ] http://www.eaipatterns.com/IdempotentReceiver.html (302) with 3 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/IdempotentReceiver.html ([https](https://www.eaipatterns.com/IdempotentReceiver.html) result 301).
* [ ] http://eaipatterns.com/IdempotentReceiver.html (302) with 2 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/IdempotentReceiver.html ([https](https://eaipatterns.com/IdempotentReceiver.html) result 301).
* [ ] http://www.eaipatterns.com/MessageHistory.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/MessageHistory.html ([https](https://www.eaipatterns.com/MessageHistory.html) result 301).
* [ ] http://www.eaipatterns.com/MessageSelector.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/MessageSelector.html ([https](https://www.eaipatterns.com/MessageSelector.html) result 301).
* [ ] http://www.eaipatterns.com/MessageStore.html (302) with 4 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/MessageStore.html ([https](https://www.eaipatterns.com/MessageStore.html) result 301).
* [ ] http://eaipatterns.com/MessageStore.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/MessageStore.html ([https](https://eaipatterns.com/MessageStore.html) result 301).
* [ ] http://www.enterpriseintegrationpatterns.com/PollingConsumer.html with 2 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/PollingConsumer.html ([https](https://www.enterpriseintegrationpatterns.com/PollingConsumer.html) result 301).
* [ ] http://www.eaipatterns.com/PollingConsumer.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/PollingConsumer.html ([https](https://www.eaipatterns.com/PollingConsumer.html) result 301).
* [ ] http://www.eaipatterns.com/ProcessManager.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/ProcessManager.html ([https](https://www.eaipatterns.com/ProcessManager.html) result 301).
* [ ] http://eaipatterns.com/ReturnAddress.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/ReturnAddress.html ([https](https://eaipatterns.com/ReturnAddress.html) result 301).
* [ ] http://www.eaipatterns.com/RoutingTable.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/RoutingTable.html ([https](https://www.eaipatterns.com/RoutingTable.html) result 301).
* [ ] http://www.eaipatterns.com/StoreInLibrary.html (302) with 4 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/StoreInLibrary.html ([https](https://www.eaipatterns.com/StoreInLibrary.html) result 301).
* [ ] http://eaipatterns.com/WireTap.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/WireTap.html ([https](https://eaipatterns.com/WireTap.html) result 301).
* [ ] http://www.github.com/ with 1 occurrences migrated to:
  https://www.github.com/ ([https](https://www.github.com/) result 301).
* [ ] http://www.google.com/ig/api?weather= with 1 occurrences migrated to:
  https://www.google.com/ig/api?weather= ([https](https://www.google.com/ig/api?weather=) result 301).
* [ ] http://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/index.html with 1 occurrences migrated to:
  https://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/index.html ([https](https://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/index.html) result 301).
* [ ] http://www.mongodb.org/ with 2 occurrences migrated to:
  https://www.mongodb.org/ ([https](https://www.mongodb.org/) result 301).
* [ ] http://www.mongodb.org/display/DOCS/Querying with 8 occurrences migrated to:
  https://www.mongodb.org/display/DOCS/Querying ([https](https://www.mongodb.org/display/DOCS/Querying) result 301).
* [ ] http://www.rabbitmq.com/install.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/install.html ([https](https://www.rabbitmq.com/install.html) result 301).
* [ ] http://www.spring.io/spring-ws with 1 occurrences migrated to:
  https://www.spring.io/spring-ws ([https](https://www.spring.io/spring-ws) result 301).
* [ ] http://www.springsource.com/products/spring-community-download with 1 occurrences migrated to:
  https://www.springsource.com/products/spring-community-download ([https](https://www.springsource.com/products/spring-community-download) 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://www.springsource.org/spring-gemfire with 1 occurrences migrated to:
  https://www.springsource.org/spring-gemfire ([https](https://www.springsource.org/spring-gemfire) result 301).
* [ ] http://www.springsource.org/spring-integration with 32 occurrences migrated to:
  https://www.springsource.org/spring-integration ([https](https://www.springsource.org/spring-integration) result 301).
* [ ] http://www.vmware.com/products/application-platform/vfabric-gemfire/overview.html with 1 occurrences migrated to:
  https://www.vmware.com/products/application-platform/vfabric-gemfire/overview.html ([https](https://www.vmware.com/products/application-platform/vfabric-gemfire/overview.html) result 301).
* [ ] http://www.w3.org/TR/xpath/ with 2 occurrences migrated to:
  https://www.w3.org/TR/xpath/ ([https](https://www.w3.org/TR/xpath/) result 301).
* [ ] http://www.xmpp.org with 1 occurrences migrated to:
  https://www.xmpp.org ([https](https://www.xmpp.org) result 301).
* [ ] http://commons.apache.org/net/ with 1 occurrences migrated to:
  https://commons.apache.org/net/ ([https](https://commons.apache.org/net/) result 302).
* [ ] http://dev.twitter.com with 2 occurrences migrated to:
  https://dev.twitter.com ([https](https://dev.twitter.com) result 302).
* [ ] http://dev.twitter.com/ with 1 occurrences migrated to:
  https://dev.twitter.com/ ([https](https://dev.twitter.com/) result 302).
* [ ] http://dev.twitter.com/pages/oauth_faq with 1 occurrences migrated to:
  https://dev.twitter.com/pages/oauth_faq ([https](https://dev.twitter.com/pages/oauth_faq) result 302).
* [ ] http://docs.spring.io/spring/docs/current/spring-framework-reference/html/ with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/spring-framework-reference/html/ ([https](https://docs.spring.io/spring/docs/current/spring-framework-reference/html/) result 302).
* [ ] http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html with 1 occurrences migrated to:
  https://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html ([https](https://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html) result 302).
* [ ] http://eclipse.org/egit/ with 1 occurrences migrated to:
  https://eclipse.org/egit/ ([https](https://eclipse.org/egit/) result 302).
* [ ] http://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project with 1 occurrences migrated to:
  https://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project ([https](https://git-scm.com/book/en/Distributed-Git-Contributing-to-a-Project) result 302).
* [ ] http://git-scm.com/book/en/Git-Branching-Rebasing with 2 occurrences migrated to:
  https://git-scm.com/book/en/Git-Branching-Rebasing ([https](https://git-scm.com/book/en/Git-Branching-Rebasing) result 302).
* [ ] http://hueniverse.com/oauth with 2 occurrences migrated to:
  https://hueniverse.com/oauth ([https](https://hueniverse.com/oauth) result 302).
* [ ] http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/ with 1 occurrences migrated to:
  https://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/ ([https](https://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/) result 302).
* [ ] http://www.mongodb.org/downloads with 1 occurrences migrated to:
  https://www.mongodb.org/downloads ([https](https://www.mongodb.org/downloads) result 302).
* [ ] http://www.springsource.org/extensions/se-sia with 1 occurrences migrated to:
  https://www.springsource.org/extensions/se-sia ([https](https://www.springsource.org/extensions/se-sia) result 302).
* [ ] http://www.springsource.org/sites/all/themes/dotorg09/images/dotorg09_logo.png with 2 occurrences migrated to:
  https://www.springsource.org/sites/all/themes/dotorg09/images/dotorg09_logo.png ([https](https://www.springsource.org/sites/all/themes/dotorg09/images/dotorg09_logo.png) result 302).

# Ignored
These URLs were intentionally ignored.

* http://HOST:PORT/PATH with 1 occurrences
* http://apache.org/xml/features/nonvalidating/load-dtd-grammar with 1 occurrences
* http://apache.org/xml/features/nonvalidating/load-external-dtd with 1 occurrences
* http://bar/baz?foo with 1 occurrences
* http://foo with 1 occurrences
* http://foo/service with 1 occurrences
* http://localhost/example with 2 occurrences
* http://localhost/spring-integration?param=test1%20&%20test2 with 1 occurrences
* http://localhost/test with 3 occurrences
* http://localhost/test1 with 9 occurrences
* http://localhost/test1/%2f with 1 occurrences
* http://localhost/test2 with 5 occurrences
* http://localhost/test2/ with 1 occurrences
* http://localhost:51235/%2f/testApps?param=http+Outbound+Gateway+Within+Chain with 1 occurrences
* http://localhost:8080/example with 4 occurrences
* http://localhost:8080/foo with 4 occurrences
* http://localhost:8080/multipart-http/inboundAdapter.htm with 1 occurrences
* http://localhost:9090 with 2 occurrences
* http://schemas.xmlsoap.org/soap/envelope/ with 7 occurrences
* http://somehost/%2f/fooApps?bar= with 2 occurrences
* http://test with 1 occurrences
* http://test.auth.org with 4 occurrences
* http://test.org with 2 occurrences
* http://test/ with 3 occurrences
* http://test/42 with 1 occurrences
* http://test/BAR with 1 occurrences
* http://test/bar with 3 occurrences
* http://testInt3022 with 1 occurrences
* http://testServer/test with 1 occurrences
* http://testServer/test?foo=bar&FOO=BAR with 1 occurrences
* http://testServer/testmp with 1 occurrences
* http://www with 1 occurrences
* http://www.example.org/orders with 1 occurrences
* http://www.springframework.org/schema/beans with 156 occurrences
* http://www.springframework.org/schema/context with 2 occurrences
* http://www.springframework.org/schema/integration with 156 occurrences
* http://www.springframework.org/schema/integration/amqp with 2 occurrences
* http://www.springframework.org/schema/integration/event with 2 occurrences
* http://www.springframework.org/schema/integration/feed with 4 occurrences
* http://www.springframework.org/schema/integration/file with 12 occurrences
* http://www.springframework.org/schema/integration/ftp with 4 occurrences
* http://www.springframework.org/schema/integration/gemfire with 4 occurrences
* http://www.springframework.org/schema/integration/groovy with 2 occurrences
* http://www.springframework.org/schema/integration/http with 8 occurrences
* http://www.springframework.org/schema/integration/ip with 4 occurrences
* http://www.springframework.org/schema/integration/jdbc with 10 occurrences
* http://www.springframework.org/schema/integration/jms with 4 occurrences
* http://www.springframework.org/schema/integration/jmx with 2 occurrences
* http://www.springframework.org/schema/integration/jpa with 2 occurrences
* http://www.springframework.org/schema/integration/mail with 6 occurrences
* http://www.springframework.org/schema/integration/mongodb with 2 occurrences
* http://www.springframework.org/schema/integration/mqtt with 2 occurrences
* http://www.springframework.org/schema/integration/redis with 2 occurrences
* http://www.springframework.org/schema/integration/rmi with 4 occurrences
* http://www.springframework.org/schema/integration/scripting with 3 occurrences
* http://www.springframework.org/schema/integration/security with 4 occurrences
* http://www.springframework.org/schema/integration/sftp with 4 occurrences
* http://www.springframework.org/schema/integration/stomp with 4 occurrences
* http://www.springframework.org/schema/integration/stream with 8 occurrences
* http://www.springframework.org/schema/integration/syslog with 2 occurrences
* http://www.springframework.org/schema/integration/twitter with 6 occurrences
* http://www.springframework.org/schema/integration/webflux with 4 occurrences
* http://www.springframework.org/schema/integration/websocket with 4 occurrences
* http://www.springframework.org/schema/integration/ws with 4 occurrences
* http://www.springframework.org/schema/integration/xml with 8 occurrences
* http://www.springframework.org/schema/integration/xmpp with 4 occurrences
* http://www.springframework.org/schema/integration/zookeeper with 2 occurrences
* http://www.springframework.org/schema/schema/beans with 1 occurrences
* http://www.springframework.org/schema/security with 2 occurrences
* http://www.springframework.org/schema/task with 8 occurrences
* http://www.springframework.org/schema/tool with 58 occurrences
* http://www.springframework.org/schema/util with 2 occurrences
* http://www.w3.org/1999/XSL/Transform with 7 occurrences
* http://www.w3.org/1999/xhtml with 1 occurrences
* http://www.w3.org/2001/XMLSchema with 39 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 51 occurrences
* http://x with 2 occurrences
This commit is contained in:
Spring Operator
2019-03-26 04:36:17 -05:00
committed by Artem Bilan
parent 0787a9abe0
commit 934d718e22
136 changed files with 641 additions and 641 deletions

View File

@@ -5,7 +5,7 @@ This document is the API specification for Spring Integration
<div id="overviewBody">
<p>
For further API reference and developer documentation, see the
<a href="http://docs.spring.io/spring-integration/reference/" target="_top">Spring
<a href="https://docs.spring.io/spring-integration/reference/" target="_top">Spring
Integration reference documentation</a>.
That documentation contains more detailed, developer-targeted
descriptions, with conceptual overviews, definitions of terms,
@@ -13,7 +13,7 @@ This document is the API specification for Spring Integration
</p>
<p>
<a href="http://projects.spring.io/spring-integration/" target="_top">Spring
<a href="https://projects.spring.io/spring-integration/" target="_top">Spring
Integration main project page</a>
</p>

View File

@@ -18,88 +18,88 @@ Changes in version 2.1.0 Milestone 3 (Oct 26, 2011)
https://jira.springsource.org/secure/ReleaseNote.jspa?projectId=10121&version=12640
Changes in version 2.1.0 Milestone 2 (Oct 12, 2011)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=12200
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=12200
Changes in version 2.1.0 Milestone 1 (Sept 2, 2011)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11668
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11668
Changes in version 2.0.5 (July 18, 2011)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=12104
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=12104
Changes in version 2.0.4 (May 18, 2011)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11828
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11828
Changes in version 2.0.3 (Feb 09, 2011)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11815
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11815
Changes in version 2.0.2 (Feb 08, 2011)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11787
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11787
Changes in version 2.0.1 (Dec 17, 2010)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11696
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11696
Changes in version 2.0.0 GA (Nov 22, 2010)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11537
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11537
Changes in version 2.0.0 Release Candidate 2 (Nov 13, 2010)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11749
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11749
Changes in version 2.0.0 Release Candidate 1 (Oct 28, 2010)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11656
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11656
Changes in version 2.0.0 Milestone 7 (Sept 03, 2010)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11311
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11311
Changes in version 2.0.0 Milestone 6 (July 28, 2010)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11536
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11536
Changes in version 2.0.0 Milestone 5 (June 25, 2010)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11446
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11446
Changes in version 2.0.0 Milestone 4 (May 8, 2010)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11389
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11389
Changes in version 2.0.0 Milestone 3 (Mar 12, 2010)
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11307
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11307
Changes in version 2.0.0 Milestone 2 (Dec 24, 2009)
---------------------------------------------------
http://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11306
https://jira.springsource.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11306
Changes in version 2.0.0 Milestone 1 (Oct 12, 2009)
---------------------------------------------------
http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11178
https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11178
Changes in version 1.0.3 (Jul 18, 2009)
---------------------------------------
http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11209
https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11209
Changes in version 1.0.2 (Mar 31, 2009)
---------------------------------------
http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11153
https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11153
Changes in version 1.0.1 (Dec 17, 2008)
---------------------------------------
For changes in this release, see:
http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11146
https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11146
Changes in version 1.0.0 (Nov 26, 2008)
---------------------------------------
For changes in this release, see:
http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=10791
https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=10791
Changes in version 1.0.0.RC2 (Nov 14, 2008)
-------------------------------------------
For changes in this release, see:
http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11102
https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11102
Changes in version 1.0.0.RC1 (Nov 03, 2008)
-------------------------------------------
For changes in this release, see:
http://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11101
https://jira.springframework.org/secure/IssueNavigator.jspa?reset=true&pid=10121&fixfor=11101
*** GENERAL ***

2
src/dist/readme.txt vendored
View File

@@ -5,7 +5,7 @@ To find out what has changed since any earlier releases, see 'changelog.txt'.
Please consult the documentation located within the 'docs/reference' directory
of this release and also visit the official Spring Integration home at
http://www.springsource.org/spring-integration
https://www.springsource.org/spring-integration
There you will find links to the forum, issue tracker, and several other resources.

View File

@@ -606,7 +606,7 @@ NOTE: Wherever it makes sense, the release strategy method, correlation strategy
[[aggregator-spel]]
====== Aggregators and Spring Expression Language (SpEL)
Since Spring Integration 2.0, the various strategies (correlation, release, and aggregation) may be handled with http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html[SpEL] which is recommended if the logic behind such _release strategy_ is relatively simple.
Since Spring Integration 2.0, the various strategies (correlation, release, and aggregation) may be handled with https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html[SpEL] which is recommended if the logic behind such _release strategy_ is relatively simple.
Let's say you have a legacy component that was designed to receive an array of objects.
We know that the default release strategy will assemble all aggregated messages in the List.
So now we have two problems.
@@ -632,7 +632,7 @@ However, with SpEL such a requirement could actually be handled relatively easil
expression="#this.![payload].toArray()"/>
----
In the above configuration we are using a http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-collection-projection[Collection Projection] expression to assemble a new collection from the payloads of all messages in the list and then transforming it to an Array, thus achieving the same result as the java code above.
In the above configuration we are using a https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-collection-projection[Collection Projection] expression to assemble a new collection from the payloads of all messages in the list and then transforming it to an Array, thus achieving the same result as the java code above.
The same expression-based approach can be applied when dealing with custom _Release_ and _Correlation_ strategies.
@@ -794,7 +794,7 @@ public interface MessageGroupStore {
}
----
For more information please refer to the http://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html[JavaDoc].
For more information please refer to the https://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html[JavaDoc].
The `MessageGroupStore` accumulates state information in `MessageGroups` while waiting for a release strategy to be triggered, and that event might not ever happen.
So to prevent stale messages from lingering, and for volatile stores to provide a hook for cleaning up when the application shuts down, the `MessageGroupStore` allows the user to register callbacks to apply to its `MessageGroups` when they expire.

View File

@@ -15,16 +15,16 @@ The following adapters are available:
Spring Integration also provides a point-to-point Message Channel as well as a publish/subscribe Message Channel backed by AMQP Exchanges and Queues.
In order to provide AMQP support, Spring Integration relies on (http://projects.spring.io/spring-amqp[Spring AMQP])
In order to provide AMQP support, Spring Integration relies on (https://projects.spring.io/spring-amqp[Spring AMQP])
which "applies core Spring concepts to the development of AMQP-based messaging solutions".
Spring AMQP provides similar semantics to (http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html[Spring JMS]).
Spring AMQP provides similar semantics to (https://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html[Spring JMS]).
Whereas the provided AMQP Channel Adapters are intended for unidirectional Messaging (send or receive) only, Spring Integration also provides inbound and outbound AMQP Gateways for request/reply operations.
[TIP]
=====
Please familiarize yourself with the
http://docs.spring.io/spring-amqp/reference/html/[reference documentation of the Spring AMQP project as well].
https://docs.spring.io/spring-amqp/reference/html/[reference documentation of the Spring AMQP project as well].
It provides much more in-depth information regarding Spring's integration with AMQP in general and RabbitMQ in particular.
=====
[[amqp-inbound-channel-adapter]]
@@ -186,7 +186,7 @@ The transaction manager works in conjunction with the "channel-transacted" attri
If there is already a transaction in progress when the framework is sending or receiving a message, and the channelTransacted flag is true, then the commit or rollback of the messaging transaction will be deferred until the end of the current transaction.
If the channelTransacted flag is false, then no transaction semantics apply to the messaging operation (it is auto-acked).
For further information see
http://docs.spring.io/spring-amqp/reference/html/%5Freference.html#%5Ftransactions[Transactions with Spring AMQP].
https://docs.spring.io/spring-amqp/reference/html/%255Freference.html#%5Ftransactions[Transactions with Spring AMQP].
_Optional_.
@@ -1235,12 +1235,12 @@ Note that RabbitMQ https://www.rabbitmq.com/validated-user-id.html[validates tha
To configure a default user id for outbound messages, configure it on a `RabbitTemplate` and configure the outbound adapter or gateway to use that template.
Similarly, to set the user id property on replies, inject an appropriately configured template into the inbound gateway.
See the http://docs.spring.io/spring-amqp/reference/html/_reference.html#template-user-id[Spring AMQP documentation] for more information.
See the https://docs.spring.io/spring-amqp/reference/html/_reference.html#template-user-id[Spring AMQP documentation] for more information.
[[amqp-delay]]
=== Delayed Message Exchange
Spring AMQP supports the http://docs.spring.io/spring-amqp/reference/html/_reference.html#delayed-message-exchange[RabbitMQ Delayed Message Exchange Plugin].
Spring AMQP supports the https://docs.spring.io/spring-amqp/reference/html/_reference.html#delayed-message-exchange[RabbitMQ Delayed Message Exchange Plugin].
For inbound messages, the `x-delay` header is mapped to the `AmqpHeaders.RECEIVED_DELAY` header.
Setting the `AMQPHeaders.DELAY` header will cause the corresponding `x-delay` header to be set in outbound messages.
You can also specify the `delay` and `delayExpression` properties on outbound endpoints (`delay-expression` when using XML configuration).
@@ -1391,12 +1391,12 @@ public IntegrationFlow pubSubInFlow(ConnectionFactory connectionFactory) {
The Spring Integration AMQP Adapters will map all AMQP properties and headers automatically.
(This is a change in 4.3 - previously, only standard headers were mapped).
These properties will be copied by default to and from Spring Integration `MessageHeaders` using the
http://docs.spring.io/spring-integration/api/org/springframework/integration/amqp/support/DefaultAmqpHeaderMapper.html[DefaultAmqpHeaderMapper].
https://docs.spring.io/spring-integration/api/org/springframework/integration/amqp/support/DefaultAmqpHeaderMapper.html[DefaultAmqpHeaderMapper].
Of course, you can pass in your own implementation of AMQP specific header mappers, as the adapters have respective
properties to support that.
Any user-defined headers within the AMQP http://docs.spring.io/spring-amqp/api/org/springframework/amqp/core/MessageProperties.html[MessageProperties] WILL
Any user-defined headers within the AMQP https://docs.spring.io/spring-amqp/api/org/springframework/amqp/core/MessageProperties.html[MessageProperties] WILL
be copied to or from an AMQP Message, unless explicitly negated by the _requestHeaderNames_ and/or
_replyHeaderNames_ properties of the `DefaultAmqpHeaderMapper`.
For an outbound mapper, no `x-*` headers are mapped by default; see the caution below for the reason why.
@@ -1513,11 +1513,11 @@ To experiment with the AMQP adapters, check out the samples available in the Spr
Currently there is one sample available that demonstrates the basic functionality of the Spring Integration AMQP Adapter using an Outbound Channel Adapter and an Inbound Channel Adapter.
As AMQP Broker implementation the sample uses RabbitMQ (http://www.rabbitmq.com/[http://www.rabbitmq.com/]).
As AMQP Broker implementation the sample uses RabbitMQ (https://www.rabbitmq.com/[https://www.rabbitmq.com/]).
NOTE: In order to run the example you will need a running instance of RabbitMQ.
A local installation with just the basic defaults will be sufficient.
For detailed RabbitMQ installation procedures please visit: http://www.rabbitmq.com/install.html[http://www.rabbitmq.com/install.html]
For detailed RabbitMQ installation procedures please visit: https://www.rabbitmq.com/install.html[https://www.rabbitmq.com/install.html]
Once the sample application is started, you enter some text on the command prompt and a message containing that entered text is dispatched to the AMQP queue.
In return that message is retrieved via Spring Integration and then printed to the console.

View File

@@ -7,7 +7,7 @@
The `MessageHandlerChain` is an implementation of `MessageHandler` that can be configured as a single Message Endpoint while actually delegating to a chain of other handlers, such as Filters, Transformers, Splitters, and so on.
This can lead to a much simpler configuration when several handlers need to be connected in a fixed, linear progression.
For example, it is fairly common to provide a Transformer before other components.
Similarly, when providing a _Filter_ before some other component in a chain, you are essentially creating a http://www.eaipatterns.com/MessageSelector.html[Selective Consumer].
Similarly, when providing a _Filter_ before some other component in a chain, you are essentially creating a https://www.enterpriseintegrationpatterns.com/MessageSelector.html[Selective Consumer].
In either case, the chain only requires a single `input-channel` and a single `output-channel` eliminating the need to define channels for each individual component.
TIP: Spring Integration's `Filter` provides a boolean property `throwExceptionOnRejection`.

View File

@@ -20,7 +20,7 @@ There are many samples provided throughout this manual.
[[conversion-support]]
===== ConversionService and Converter
You can now benefit from _Conversion Service_ support provided with Spring while configuring many Spring Integration components such as http://www.eaipatterns.com/DatatypeChannel.html[Datatype Channel].
You can now benefit from _Conversion Service_ support provided with Spring while configuring many Spring Integration components such as https://www.enterpriseintegrationpatterns.com/DatatypeChannel.html[Datatype Channel].
See <<channel-implementations>> as well <<service-activator-introduction>>.
Also, the SpEL support mentioned in the previous point also relies upon the ConversionService.
Therefore, you can register Converters once, and take advantage of them anywhere you are using SpEL expressions.
@@ -45,18 +45,18 @@ See <<http-outbound>> for more details.
[[new-eip]]
==== Enterprise Integration Pattern Additions
Also in 2.0 we have added support for even more of the patterns described in Hohpe and Woolf's http://www.eaipatterns.com/[Enterprise Integration Patterns] book.
Also in 2.0 we have added support for even more of the patterns described in Hohpe and Woolf's https://www.enterpriseintegrationpatterns.com/[Enterprise Integration Patterns] book.
[[new-message-history]]
===== Message History
We now provide support for the http://www.eaipatterns.com/MessageHistory.html[Message History] pattern allowing you to keep track of all traversed components, including the name of each channel and endpoint as well as the timestamp of that traversal.
We now provide support for the https://www.enterpriseintegrationpatterns.com/MessageHistory.html[Message History] pattern allowing you to keep track of all traversed components, including the name of each channel and endpoint as well as the timestamp of that traversal.
See <<message-history>> for more details.
[[new-message-store]]
===== Message Store
We now provide support for the http://www.eaipatterns.com/MessageStore.html[Message Store] pattern.
We now provide support for the https://www.enterpriseintegrationpatterns.com/MessageStore.html[Message Store] pattern.
The Message Store provides a strategy for persisting messages on behalf of any process whose scope extends beyond a single transaction, such as the Aggregator and Resequencer.
Many sections of this document provide samples on how to use a Message Store as it affects several areas of Spring Integration.
See <<message-store>>, <<claim-check>>, <<channel>>, <<aggregator>>, <<jdbc>>, and <<resequencer>> for more details
@@ -64,7 +64,7 @@ See <<message-store>>, <<claim-check>>, <<channel>>, <<aggregator>>, <<jdbc>>, a
[[new-claim-check]]
===== Claim Check
We have added an implementation of the http://www.eaipatterns.com/StoreInLibrary.html[Claim Check] pattern.
We have added an implementation of the https://www.enterpriseintegrationpatterns.com/StoreInLibrary.html[Claim Check] pattern.
The idea behind the Claim Check pattern is that you can exchange a Message payload for a "claim ticket" and vice-versa.
This allows you to reduce bandwidth and/or avoid potential security issues when sending Messages across channels.
See <<claim-check>> for more details.
@@ -72,7 +72,7 @@ See <<claim-check>> for more details.
[[new-control-bus]]
===== Control Bus
We have provided implementations of the http://www.eaipatterns.com/ControlBus.html[Control Bus] pattern which allows you to use messaging to manage and monitor endpoints and channels.
We have provided implementations of the https://www.enterpriseintegrationpatterns.com/ControlBus.html[Control Bus] pattern which allows you to use messaging to manage and monitor endpoints and channels.
The implementations include both a SpEL-based approach and one that executes Groovy scripts.
See <<control-bus>> and <<groovy-control-bus>> for more details.
@@ -86,7 +86,7 @@ We have added several new Channel Adapters and Messaging Gateways in Spring Inte
We have added Channel Adapters for receiving and sending messages over the TCP and UDP internet protocols.
See <<ip>> for more details.
Also, you can checkout the following blog: http://blog.springsource.com/2010/03/29/using-udp-and-tcp-adapters-in-spring-integration-2-0-m3/[TCP/UDP support]
Also, you can checkout the following blog: https://spring.io/blog/2010/03/29/using-udp-and-tcp-adapters-in-spring-integration-2-0-m3/[TCP/UDP support]
[[new-twitter]]
===== Twitter Adapters
@@ -160,14 +160,14 @@ We restructured some packaging to provide the flexibility we needed for extendin
==== New Source Control Management and Build Infrastructure
With Spring Integration 2.0 we have switched our build environment to use Git for source control.
To access our repository simply follow this URL: http://git.springsource.org/spring-integration[http://git.springsource.org/spring-integration].
We have also switched our build system to http://gradle.org/[Gradle].
To access our repository simply follow this URL: https://git.springsource.org/spring-integration[https://git.springsource.org/spring-integration].
We have also switched our build system to https://gradle.org/[Gradle].
[[new-samples]]
==== New Spring Integration Samples
With Spring Integration 2.0 we have decoupled the samples from our main release distribution.
Please read this blog to get more info http://blog.springsource.com/2010/09/29/new-spring-integration-samples/[New Spring Integration Samples] We have also created many new samples, including samples for every new Adapter.
Please read this blog to get more info https://spring.io/blog/2010/09/29/new-spring-integration-samples/[New Spring Integration Samples] We have also created many new samples, including samples for every new Adapter.
[[new-sts]]
==== Spring Tool Suite Visual Editor for Spring Integration

View File

@@ -7,8 +7,8 @@
[[x2.1-new-scripting-support]]
===== JSR-223 Scripting Support
In Spring Integration 2.0, support for http://groovy.codehaus.org/[Groovy] was added.
With Spring Integration 2.1 we expanded support for additional languages substantially by implementing support for http://www.jcp.org/en/jsr/detail?id=223[JSR-223] (Scripting for the Java™ Platform).
In Spring Integration 2.0, support for https://groovy.codehaus.org/[Groovy] was added.
With Spring Integration 2.1 we expanded support for additional languages substantially by implementing support for https://www.jcp.org/en/jsr/detail?id=223[JSR-223] (Scripting for the Java™ Platform).
Now you have the ability to use any scripting language that supports JSR-223 including:
* Javascript
@@ -23,8 +23,8 @@ For further details please see <<scripting>>.
[[x2.1-new-gemfire-support]]
===== GemFire Support
Spring Integration provides support for http://www.vmware.com/products/application-platform/vfabric-gemfire/overview.html[GemFire] by providing inbound adapters for entry and continuous query events, an outbound adapter to write entries to the cache, and http://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageStore.html[`MessageStore`] and http://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html[`MessageGroupStore`] implementations.
Spring integration leverages the http://www.springsource.org/spring-gemfire[_Spring Gemfire_] project, providing a thin wrapper over its components.
Spring Integration provides support for https://www.vmware.com/products/application-platform/vfabric-gemfire/overview.html[GemFire] by providing inbound adapters for entry and continuous query events, an outbound adapter to write entries to the cache, and https://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageStore.html[`MessageStore`] and https://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageGroupStore.html[`MessageGroupStore`] implementations.
Spring integration leverages the https://www.springsource.org/spring-gemfire[_Spring Gemfire_] project, providing a thin wrapper over its components.
For further details please see <<gemfire>>.
@@ -39,14 +39,14 @@ For further details please see <<amqp>>.
[[x2.1-new-mongodb-support]]
===== MongoDB Support
As of version 2.1 Spring Integration provides support for http://www.mongodb.org/[MongoDB] by providing a MongoDB-based MessageStore.
As of version 2.1 Spring Integration provides support for https://www.mongodb.org/[MongoDB] by providing a MongoDB-based MessageStore.
For further details please see <<mongodb>>.
[[x2.1-new-redis-support]]
===== Redis Support
As of version 2.1 Spring Integration supports http://redis.io/[Redis], an advanced key-value store, by providing a Redis-based MessageStore as well as Publish-Subscribe Messaging adapters.
As of version 2.1 Spring Integration supports https://redis.io/[Redis], an advanced key-value store, by providing a Redis-based MessageStore as well as Publish-Subscribe Messaging adapters.
For further details please see <<redis>>.
@@ -162,9 +162,9 @@ Declaring a version-less Spring Integration namespace:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
https://www.springframework.org/schema/beans/spring-beans.xsd">
...
</beans>
----
@@ -178,9 +178,9 @@ Declaring a Spring Integration namespace using an explicit version:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int="http://www.springframework.org/schema/integration"
xsi:schemaLocation="http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration-2.2.xsd
https://www.springframework.org/schema/integration/spring-integration-2.2.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
https://www.springframework.org/schema/beans/spring-beans.xsd">
...
</beans>
----
@@ -193,8 +193,8 @@ The old 1.0 and 2.0 schemas are still there, but if an Application Context still
[[x2.1-move-to-github]]
===== Source Code now hosted on Github
Since version 2.0, the Spring Integration project uses http://git-scm.com/[Git] for version control.
In order to increase community visibility even further, the project was moved from SpringSource hosted Git repositories to http://www.github.com/[Github].
Since version 2.0, the Spring Integration project uses https://git-scm.com/[Git] for version control.
In order to increase community visibility even further, the project was moved from SpringSource hosted Git repositories to https://www.github.com/[Github].
The Spring Integration Git repository is located at: https://github.com/spring-projects/spring-integration[spring-integration].
For the project we also improved the process of providing code contributions and we ensure that every commit is peer-reviewed.
@@ -206,7 +206,7 @@ https://github.com/spring-projects/spring-integration/blob/master/CONTRIBUTING.a
[[x2.1-sonar]]
===== Improved Source Code Visibility with Sonar
In an effort to provide better source code visibility and consequently to monitor the quality of Spring Integration's source code, an instance of http://www.sonarsource.org/[Sonar] was setup and metrics are gathered nightly and made available at:
In an effort to provide better source code visibility and consequently to monitor the quality of Spring Integration's source code, an instance of https://www.sonarqube.org/[Sonar] was setup and metrics are gathered nightly and made available at:
https://sonar.spring.io/dashboard?id=org.springframework.integration%3Aspring-integration%3Amaster[sonar.spring.io].

View File

@@ -37,7 +37,7 @@ For more information see <<spel-property-accessors>>.
[[x3.0-redis-new-components]]
===== Redis: New Components
A new Redis-based http://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/store/MetadataStore.html[MetadataStore] implementation has been added.
A new Redis-based https://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/store/MetadataStore.html[MetadataStore] implementation has been added.
The `RedisMetadataStore` can be used to maintain state of a `MetadataStore` across application restarts.
This new `MetadataStore` implementation can be used with adapters such as:
@@ -351,7 +351,7 @@ For more information see <<transformer>>.
[[x3.0-jpa-changes]]
===== JPA Support Changes
Payloads to _persist_ or _merge_ can now be of type `http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html[java.lang.Iterable]`.
Payloads to _persist_ or _merge_ can now be of type `https://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html[java.lang.Iterable]`.
In that case, each object returned by the `Iterable` is treated as an entity and persisted or merged using the underlying `EntityManager`.
_NULL_ values returned by the iterator are ignored.

View File

@@ -256,7 +256,7 @@ The reason for this is that when a Message is sent to a `SubscribableChannel` it
a PublishSubscribeChannel sends to all of its subscribers).
Therefore, the `preReceive(..)`, `postReceive(..)` and `afterReceiveCompletion(..)` interceptor methods are only invoked when the interceptor is applied to a `PollableChannel`.
Spring Integration also provides an implementation of the http://eaipatterns.com/WireTap.html[Wire Tap] pattern.
Spring Integration also provides an implementation of the https://www.enterpriseintegrationpatterns.com/WireTap.html[Wire Tap] pattern.
It is a simple interceptor that sends the Message to another channel without otherwise altering the existing flow.
It can be very useful for debugging and monitoring.
An example is shown in <<channel-wiretap>>.
@@ -378,7 +378,7 @@ There are times when a consumer can only process a particular type of payload an
Of course the first thing that comes to mind is Message Filter.
However all that Message Filter will do is filter out Messages that are not compliant with the requirements of the consumer.
Another way would be to use a Content Based Router and route Messages with non-compliant data-types to specific Transformers to enforce transformation/conversion to the required data-type.
This of course would work, but a simpler way of accomplishing the same thing is to apply the http://www.eaipatterns.com/DatatypeChannel.html[Datatype Channel] pattern.
This of course would work, but a simpler way of accomplishing the same thing is to apply the https://www.enterpriseintegrationpatterns.com/DatatypeChannel.html[Datatype Channel] pattern.
You can use separate Datatype Channels for each specific payload data-type.
To create a Datatype Channel that only accepts messages containing a certain payload type, provide the fully-qualified class name in the channel element's `datatype` attribute:
@@ -396,7 +396,7 @@ Multiple types can be provided as a comma-delimited list:
----
So the 'numberChannel' above will only accept Messages with a data-type of `java.lang.Number`.
But what happens if the payload of the Message is not of the required type? It depends on whether you have defined a bean named `integrationConversionService` that is an instance of Spring's http://static.springsource.org/spring/docs/current/spring-framework-reference/html/validation.html#core-convert-ConversionService-API[Conversion Service].
But what happens if the payload of the Message is not of the required type? It depends on whether you have defined a bean named `integrationConversionService` that is an instance of Spring's https://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html#core-convert-ConversionService-API[Conversion Service].
If not, then an Exception would be thrown immediately, but if you do have an "integrationConversionService" bean defined, it will be used in an attempt to convert the Message's payload to the acceptable type.
You can even register custom converters.

View File

@@ -10,7 +10,7 @@ However there are times when we want to hide data temporarily.
For example, in a distributed system we may receive a Message with a very large payload.
Some intermittent message processing steps may not need access to this payload and some may only need to access certain headers, so carrying the large Message payload through each processing step may cause performance degradation, may produce a security risk, and may make debugging more difficult.
The http://www.eaipatterns.com/StoreInLibrary.html[Claim Check] pattern describes a mechanism that allows you to store data in a well known place while only maintaining a pointer (Claim Check) to where that data is located.
The https://www.enterpriseintegrationpatterns.com/StoreInLibrary.html[Claim Check] pattern describes a mechanism that allows you to store data in a well known place while only maintaining a pointer (Claim Check) to where that data is located.
You can pass that pointer around as a payload of a new Message thereby allowing any component within the message flow to get the actual data as soon as it needs it.
This approach is very similar to the Certified Mail process where you'll get a Claim Check in your mailbox and would have to go to the Post Office to claim your actual package.
Of course it's also the same idea as baggage-claim on a flight or in a hotel.

View File

@@ -16,7 +16,7 @@ Direct usage of the API is of course always an option, but we expect that most u
=== Namespace Support
Spring Integration components can be configured with XML elements that map directly to the terminology and concepts of enterprise integration.
In many cases, the element names match those of the http://www.eaipatterns.com[Enterprise Integration Patterns].
In many cases, the element names match those of the https://www.enterpriseintegrationpatterns.com/[Enterprise Integration Patterns].
To enable Spring Integration's core namespace support within your Spring configuration files, add the following namespace reference and schema mapping in your top-level 'beans' element:
@@ -27,9 +27,9 @@ To enable Spring Integration's core namespace support within your Spring configu
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
*xmlns:int="http://www.springframework.org/schema/integration"*
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
*http://www.springframework.org/schema/integration*
*http://www.springframework.org/schema/integration/spring-integration.xsd*">
*https://www.springframework.org/schema/integration/spring-integration.xsd*">
----
You can choose any name after "xmlns:"; _int_ is used here for clarity, but you might prefer a shorter abbreviation.
@@ -43,9 +43,9 @@ Alternatively, you can create configuration files that use the Spring Integratio
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
*http://www.springframework.org/schema/integration*
*http://www.springframework.org/schema/integration/spring-integration.xsd*">
*https://www.springframework.org/schema/integration/spring-integration.xsd*">
----
When using this alternative, no prefix is necessary for the Spring Integration elements.
@@ -70,19 +70,19 @@ For example, the following root element shows several of these namespace declara
xmlns:int-rmi="http://www.springframework.org/schema/integration/rmi"
xmlns:int-ws="http://www.springframework.org/schema/integration/ws"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/file
http://www.springframework.org/schema/integration/file/spring-integration-file.xsd
https://www.springframework.org/schema/integration/file/spring-integration-file.xsd
http://www.springframework.org/schema/integration/jms
http://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd
https://www.springframework.org/schema/integration/jms/spring-integration-jms.xsd
http://www.springframework.org/schema/integration/mail
http://www.springframework.org/schema/integration/mail/spring-integration-mail.xsd
https://www.springframework.org/schema/integration/mail/spring-integration-mail.xsd
http://www.springframework.org/schema/integration/rmi
http://www.springframework.org/schema/integration/rmi/spring-integration-rmi.xsd
https://www.springframework.org/schema/integration/rmi/spring-integration-rmi.xsd
http://www.springframework.org/schema/integration/ws
http://www.springframework.org/schema/integration/ws/spring-integration-ws.xsd">
https://www.springframework.org/schema/integration/ws/spring-integration-ws.xsd">
...
</beans>
----
@@ -102,7 +102,7 @@ This is also defined as a constant:
IntegrationContextUtils.TASK_SCHEDULER_BEAN_NAME
----
By default Spring Integration relies on an instance of `ThreadPoolTaskScheduler` as described in the http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html[Task Execution and Scheduling] section of the Spring Framework reference manual.
By default Spring Integration relies on an instance of `ThreadPoolTaskScheduler` as described in the https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html[Task Execution and Scheduling] section of the Spring Framework reference manual.
That default TaskScheduler will startup automatically with a pool of 10 threads, but see <<global-properties>>.
If you provide your own TaskScheduler instance instead, you can set the 'autoStartup' property to _false_, and/or you can provide your own pool size value.
@@ -122,7 +122,7 @@ Such endpoints have no poller configuration since their handlers will be invoked
[IMPORTANT]
=====
When running in a JEE container, you may need to use Spring's `TimerManagerTaskScheduler` as described
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html#scheduling-task-scheduler-implementations[here],
https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html#scheduling-task-scheduler-implementations[here],
instead of the default _taskScheduler_.
To do that, simply define a bean with the appropriate JNDI name for your environment, for example:
[source,xml]
@@ -354,7 +354,7 @@ This is consistent across both configuration options (namespace and annotations)
TIP: The combination of output channels on endpoints and the reply channel message header enables a pipeline approach where multiple components have an output channel, and the final component simply allows the reply message to be forwarded to the reply channel as specified in the original request message.
In other words, the final component depends on the information provided by the original sender and can dynamically support any number of clients as a result.
This is an example of http://eaipatterns.com/ReturnAddress.html[Return Address].
This is an example of https://www.enterpriseintegrationpatterns.com/ReturnAddress.html[Return Address].
In addition to the examples shown here, these annotations also support inputChannel and outputChannel properties.

View File

@@ -5,7 +5,7 @@
==== Introduction
At times you may have a requirement to enhance a request with more information than was provided by the target system.
The http://www.eaipatterns.com/DataEnricher.html[Content Enricher] pattern describes various scenarios as well as the component (Enricher), which allows you to address such requirements.
The https://www.enterpriseintegrationpatterns.com/DataEnricher.html[Content Enricher] pattern describes various scenarios as well as the component (Enricher), which allows you to address such requirements.
The Spring Integration `Core` module includes 2 enrichers:
@@ -110,7 +110,7 @@ as well as point to a Groovy script:
*SpEL Support*
In Spring Integration 2.0 we have introduced the convenience of the http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html[Spring Expression Language (SpEL)] to help configure many different components.
In Spring Integration 2.0 we have introduced the convenience of the https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html[Spring Expression Language (SpEL)] to help configure many different components.
The _Header Enricher_ is one of them.
Looking again at the POJO example above, you can see that the computation logic to determine the header value is actually pretty simple.
A natural question would be: "is there a simpler way to accomplish this?".

View File

@@ -57,7 +57,7 @@ In some sense, Spring Integration's support for the Spring Expression Language (
=== DSL Basics
The `org.springframework.integration.dsl` package contains the `IntegrationFlowBuilder` API mentioned above and a bunch of `IntegrationComponentSpec` implementations which are builders too and provide the fluent API to configure concrete endpoints.
The `IntegrationFlowBuilder` infrastructure provides common http://www.eaipatterns.com[EIP] for message based applications, such as channels, endpoints, pollers and channel interceptors.
The `IntegrationFlowBuilder` infrastructure provides common https://www.enterpriseintegrationpatterns.com/[EIP] for message based applications, such as channels, endpoints, pollers and channel interceptors.
Endpoints are expressed as verbs in the DSL to improve readability.
The following list includes the common DSL method names and the associated EIP endpoint:

View File

@@ -11,7 +11,7 @@ Some of these are also capable of sending reply Messages.
Sending Messages is quite straightforward.
As shown above in <<channel>>, it's easy to _send_ a Message to a Message Channel.
However, receiving is a bit more complicated.
The main reason is that there are two types of consumers: http://www.eaipatterns.com/PollingConsumer.html[Polling Consumers] and http://www.eaipatterns.com/EventDrivenConsumer.html[Event Driven Consumers].
The main reason is that there are two types of consumers: https://www.enterpriseintegrationpatterns.com/PollingConsumer.html[Polling Consumers] and https://www.enterpriseintegrationpatterns.com/EventDrivenConsumer.html[Event Driven Consumers].
Of the two, Event Driven Consumers are much simpler.
Without any need to manage and schedule a separate poller thread, they are essentially just listeners with a callback method.
@@ -425,7 +425,7 @@ https://github.com/SpringSource/spring-integration-samples/tree/master/intermedi
The sample provides a custom Trigger which implements the _http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/scheduling/Trigger.html[org.springframework.scheduling.Trigger]_ interface.
The sample's Trigger is based on Spring's http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/scheduling/support/PeriodicTrigger.html[PeriodicTrigger] implementation.
The sample's Trigger is based on Spring's https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/scheduling/support/PeriodicTrigger.html[PeriodicTrigger] implementation.
However, the fields of the custom trigger are not final and the properties have explicit getters and setters, allowing to dynamically change the polling period at runtime.
NOTE: It is important to note, though, that because the Trigger method is _nextExecutionTime()_, any changes to a dynamic trigger will not take effect until the next poll, based on the existing configuration.
@@ -496,7 +496,7 @@ public class ContextConfiguration {
[IMPORTANT]
=====
When configuring an _Application Context_, the Spring Framework allows you to add a _conversionService_ bean (see http://static.springsource.org/spring/docs/current/spring-framework-reference/html/validation.html#core-convert-Spring-config[Configuring a ConversionService] chapter).
When configuring an _Application Context_, the Spring Framework allows you to add a _conversionService_ bean (see https://docs.spring.io/spring/docs/current/spring-framework-reference/html/validation.html#core-convert-Spring-config[Configuring a ConversionService] chapter).
This service is used, when needed, to perform appropriate conversions during bean creation and configuration.
In contrast, the _integrationConversionService_ is used for runtime conversions.
@@ -554,7 +554,7 @@ The problem is that there are two configurations in place.
The _Poller_ and the _TaskExecutor_, and they both have to be in tune with each other otherwise you might end up creating an artificial memory leak.
Let's look at the following configuration provided by one of the users on the
http://forum.spring.io/forum/spring-projects/integration/87155-spring-integration-poller-configuration[Spring Integration Forum]:
https://forum.spring.io/forum/spring-projects/integration/87155-spring-integration-poller-configuration[Spring Integration Forum]:
[source,xml]
----
<int:channel id="publishChannel">
@@ -579,7 +579,7 @@ One of the ways to handle this is to set the `queue-capacity` attribute of the T
value.
You can also manage it by specifying what to do with messages that can not be queued by setting the `rejection-policy` attribute of the Task Executor (e.g., DISCARD).
In other words, there are certain details you must understand with regard to configuring the TaskExecutor.
Please refer to http://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html[Task Execution and Scheduling] of the Spring reference manual for more detail on the subject.
Please refer to https://docs.spring.io/spring/docs/current/spring-framework-reference/html/scheduling.html[Task Execution and Scheduling] of the Spring reference manual for more detail on the subject.
[[endpoint-inner]]
==== Endpoint Inner Beans
@@ -604,7 +604,7 @@ If you use an inner bean definition such as this:
the bean is treated like any inner bean declared that way and is not registered with the application context.
If you wish to access this bean in some other manner, declare it at the top level with an `id` and use the `ref` attribute instead.
See the http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/beans.html#beans-inner-beans[Spring Documentation] for more information.
See the https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/beans.html#beans-inner-beans[Spring Documentation] for more information.
[[endpoint-roles]]
=== Endpoint Roles

View File

@@ -2,7 +2,7 @@
== Spring ApplicationEvent Support
Spring Integration provides support for inbound and outbound `ApplicationEvents` as defined by the underlying Spring Framework.
For more information about Spring's support for events and listeners, refer to the http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#context-functionality-events[Spring Reference Manual].
For more information about Spring's support for events and listeners, refer to the https://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#context-functionality-events[Spring Reference Manual].
[[appevent-inbound]]
=== Receiving Spring Application Events

View File

@@ -15,7 +15,7 @@ To configure the 'feed' namespace, include the following elements within the hea
----
xmlns:int-feed="http://www.springframework.org/schema/integration/feed"
xsi:schemaLocation="http://www.springframework.org/schema/integration/feed
http://www.springframework.org/schema/integration/feed/spring-integration-feed.xsd"
https://www.springframework.org/schema/integration/feed/spring-integration-feed.xsd"
----
[[feed-inbound-channel-adapter]]
@@ -28,7 +28,7 @@ Below is an example configuration:
----
<int-feed:inbound-channel-adapter id="feedAdapter"
channel="feedChannel"
url="http://feeds.bbci.co.uk/news/rss.xml">
url="https://feeds.bbci.co.uk/news/rss.xml">
<int:poller fixed-rate="10000" max-messages-per-poll="100" />
</int-feed:inbound-channel-adapter>
----

View File

@@ -193,11 +193,11 @@ To do this use the following template.
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-file="http://www.springframework.org/schema/integration/file"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/file
http://www.springframework.org/schema/integration/file/spring-integration-file.xsd">
https://www.springframework.org/schema/integration/file/spring-integration-file.xsd">
</beans>
----
@@ -552,7 +552,7 @@ See the javadocs for more information.
[[file-writing]]
=== Writing files
To write messages to the file system you can use a http://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileWritingMessageHandler.html[FileWritingMessageHandler].
To write messages to the file system you can use a https://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileWritingMessageHandler.html[FileWritingMessageHandler].
This class can deal with the following payload types:
* _File_,
@@ -571,8 +571,8 @@ Starting with _version 4.3_, you can specify the buffer size to use when writing
==== Generating File Names
In its simplest form, the `FileWritingMessageHandler` only requires a destination directory for writing the files.
The name of the file to be written is determined by the handler's http://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileNameGenerator.html[FileNameGenerator].
The http://docs.spring.io/spring-integration/api/org/springframework/integration/file/DefaultFileNameGenerator.html[default implementation] looks for a Message header whose key matches the constant defined as http://docs.spring.io/spring-integration/api/constant-values.html#org.springframework.integration.file.FileHeaders.FILENAME[FileHeaders.FILENAME].
The name of the file to be written is determined by the handler's https://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileNameGenerator.html[FileNameGenerator].
The https://docs.spring.io/spring-integration/api/org/springframework/integration/file/DefaultFileNameGenerator.html[default implementation] looks for a Message header whose key matches the constant defined as https://docs.spring.io/spring-integration/api/constant-values.html#org.springframework.integration.file.FileHeaders.FILENAME[FileHeaders.FILENAME].
Alternatively, you can specify an expression to be evaluated against the Message in order to generate a file name, e.g. _headers['myCustomHeader'] + '.foo'_.
The expression must evaluate to a `String`.
@@ -687,7 +687,7 @@ See <<file-flushing>> for more information.
_FAIL_
If the target file exists, a http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/messaging/MessageHandlingException.html[MessageHandlingException] is thrown.
If the target file exists, a https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/messaging/MessageHandlingException.html[MessageHandlingException] is thrown.
_IGNORE_
@@ -791,7 +791,7 @@ Generally, when using the _File Outbound Gateway_, the result file is returned a
This also applies when specifying the _IGNORE_ mode.
In that case the pre-existing destination file is returned.
If the payload of the request message was a file, you still have access to that original file through the Message Header http://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileHeaders.html[FileHeaders.ORIGINAL_FILE].
If the payload of the request message was a file, you still have access to that original file through the Message Header https://docs.spring.io/spring-integration/api/org/springframework/integration/file/FileHeaders.html[FileHeaders.ORIGINAL_FILE].
NOTE: The 'outbound-gateway' works well in cases where you want to first move a file and then send it through a processing pipeline.
In such cases, you may connect the file namespace's `inbound-channel-adapter` element to the `outbound-gateway` and then connect that gateway's `reply-channel` to the beginning of the pipeline.

View File

@@ -105,7 +105,7 @@ It can be used to avoid Java entirely for simple filters.
----
The string passed as the expression attribute will be evaluated as a SpEL expression with the Message available in the evaluation context.
If it is necessary to include the result of an expression in the scope of the application context you can use the #{} notation as defined in the http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-beandef[SpEL reference documentation].
If it is necessary to include the result of an expression in the scope of the application context you can use the #{} notation as defined in the https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-beandef[SpEL reference documentation].
[source,xml]
----

View File

@@ -20,7 +20,7 @@ To use the _FTP_ namespace, add the following to the header of your XML file:
----
xmlns:int-ftp="http://www.springframework.org/schema/integration/ftp"
xsi:schemaLocation="http://www.springframework.org/schema/integration/ftp
http://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd"
https://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd"
----
@@ -83,11 +83,11 @@ NOTE: If you experience connectivity problems and would like to trace Session cr
Now all you need to do is inject these session factories into your adapters.
Obviously the protocol (FTP or FTPS) that an adapter will use depends on the type of session factory that has been injected into the adapter.
NOTE: A more practical way to provide values for _FTP/FTPS Session Factories_ is by using Spring's property placeholder support (See: http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-placeholderconfigurer).
NOTE: A more practical way to provide values for _FTP/FTPS Session Factories_ is by using Spring's property placeholder support (See: https://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-placeholderconfigurer).
*Advanced Configuration*
`DefaultFtpSessionFactory` provides an abstraction over the underlying client API which, since _Spring Integration 2.0_, is http://commons.apache.org/net/[Apache Commons Net].
`DefaultFtpSessionFactory` provides an abstraction over the underlying client API which, since _Spring Integration 2.0_, is https://commons.apache.org/net/[Apache Commons Net].
This spares you from the low level configuration details of the `org.apache.commons.net.ftp.FTPClient`.
Several common properties are exposed on the session factory (since _version 4.0_, this now includes `connectTimeout`, `defaultTimeout` and `dataTimeout`).
However there are times when access to lower level `FTPClient` configuration is necessary to achieve more advanced configuration (e.g., setting the port range for active mode etc.).
@@ -129,7 +129,7 @@ When using FTP over SSL/TLS, some servers require the same `SSLSession` to be us
Currently, the Apache FTPSClient does not support this feature - see https://issues.apache.org/jira/browse/NET-408[NET-408].
The following solution, courtesy of http://stackoverflow.com/questions/32398754/how-to-connect-to-ftps-server-with-data-connection-using-same-tls-session[Stack Overflow], uses reflection on the `sun.security.ssl.SSLSessionContextImpl` so may not work on other JVMs.
The following solution, courtesy of https://stackoverflow.com/questions/32398754/how-to-connect-to-ftps-server-with-data-connection-using-same-tls-session[Stack Overflow], uses reflection on the `sun.security.ssl.SSLSessionContextImpl` so may not work on other JVMs.
The stack overflow answer was submitted in 2015 and the solution has been tested by the Spring Integration team recently on JDK 1.8.0_112.
[source, java]
@@ -758,7 +758,7 @@ NOTE: By default Spring Integration will use `o.s.i.file.DefaultFileNameGenerato
`DefaultFileNameGenerator` will determine the file name based on the value of the `file_name` header (if it exists) in the MessageHeaders, or if the payload of the Message is already a `java.io.File`, then it will use the original name of that file.
IMPORTANT: Defining certain values (e.g., remote-directory) might be platform/ftp server dependent.
For example as it was reported on this forum http://forum.springsource.org/showthread.php?p=333478&posted=1#post333478 on some platforms you must add slash to the end of the directory definition (e.g., remote-directory="/foo/bar/" instead of remote-directory="/foo/bar")
For example as it was reported on this forum https://forum.spring.io/showthread.php?p=333478&posted=1#post333478 on some platforms you must add slash to the end of the directory definition (e.g., remote-directory="/foo/bar/" instead of remote-directory="/foo/bar")
Starting with _version 4.1_, you can specify the `mode` when transferring the file.
By default, an existing file will be overwritten; the modes are defined on `enum` `FileExistsMode`, having values `REPLACE` (default), `APPEND`, `IGNORE`, and `FAIL`.
@@ -1306,7 +1306,7 @@ The template provides methods to send, retrieve (as an `InputStream`), remove, a
In addition an `execute` method is provided allowing the caller to execute multiple operations on the session.
In all cases, the template takes care of reliably closing the session.
For more information, refer to the
http://docs.spring.io/spring-integration/api/org/springframework/integration/file/remote/RemoteFileTemplate.html[JavaDocs for `RemoteFileTemplate`].
https://docs.spring.io/spring-integration/api/org/springframework/integration/file/remote/RemoteFileTemplate.html[JavaDocs for `RemoteFileTemplate`].
There is a subclass for FTP: `FtpRemoteFileTemplate`.
Additional methods were added in _version 4.1_ including `getClientInstance()` which provides access to the underlying `FTPClient` enabling access to low-level APIs.

View File

@@ -7,7 +7,7 @@ Spring Integration provides support for VMWare vFabric GemFire
=== Introduction
VMWare vFabric GemFire (GemFire) is a distributed data management platform providing a key-value data grid along with advanced distributed system features such as event processing, continuous querying, and remote function execution.
This guide assumes some familiarity with http://www.vmware.com/support/pubs/vfabric-gemfire.html[GemFire] and its http://www.vmware.com/support/developer/vfabric-gemfire/662-api/index.html[API].
This guide assumes some familiarity with https://www.vmware.com/support/pubs/vfabric-gemfire.html[GemFire] and its https://www.vmware.com/support/developer/vfabric-gemfire/662-api/index.html[API].
Spring integration provides support for GemFire by providing inbound adapters for entry and continuous query events, an outbound adapter to write entries to the cache, and `MessageStore` and `MessageGroupStore` implementations.
Spring integration leverages thehttp://www.springsource.org/spring-gemfire[Spring Gemfire] project, providing a thin wrapper over its components.
@@ -17,7 +17,7 @@ To configure the 'int-gfe' namespace, include the following elements within the
----
xmlns:int-gfe="http://www.springframework.org/schema/integration/gemfire"
xsi:schemaLocation="http://www.springframework.org/schema/integration/gemfire
http://www.springframework.org/schema/integration/gemfire/spring-integration-gemfire.xsd"
https://www.springframework.org/schema/integration/gemfire/spring-integration-gemfire.xsd"
----
[[gemfire-inbound]]
@@ -43,7 +43,7 @@ By default CREATED and UPDATED are enabled.
Note that this adapter conforms to Spring integration conventions.
If no `channel` attribute is provided, the channel will be created from the `id` attribute.
This adapter also supports an `error-channel`.
The GemFire http://www.gemstone.com/docs/current/product/docs/japi/com/gemstone/gemfire/cache/EntryEvent.html[EntryEvent] is the `#root` object of the `expression` evaluation.
The GemFire https://www.gemstone.com/docs/current/product/docs/japi/com/gemstone/gemfire/cache/EntryEvent.html[EntryEvent] is the `#root` object of the `expression` evaluation.
Example:
[source]
----
@@ -62,7 +62,7 @@ The continuous query acts as an event source that will fire whenever its result
NOTE: GemFire queries are written in OQL and are scoped to the entire cache (not just one region).
Additionally, continuous queries require a remote (i.e., running in a separate process or remote host) cache server.
Please consult the http://www.gemstone.com/docs/6.6.RC/product/docs/html/user_guide/UserGuide_GemFire.html#Continuous%20Querying[GemFire documentation] for more information on implementing continuous queries.
Please consult the https://www.gemstone.com/docs/6.6.RC/product/docs/html/user_guide/UserGuide_GemFire.html#Continuous%20Querying[GemFire documentation] for more information on implementing continuous queries.
[source,xml]
@@ -126,7 +126,7 @@ This adapter also supports the `order` attribute which may be useful if it is bo
[[gemfire-message-store]]
=== Gemfire Message Store
As described in EIP, a http://www.eaipatterns.com/MessageStore.html[Message Store] allows you to persist Messages.
As described in EIP, a https://www.enterpriseintegrationpatterns.com/MessageStore.html[Message Store] allows you to persist Messages.
This can be very useful when dealing with components that have a capability to buffer messages (_QueueChannel, Aggregator, Resequencer_, etc.) if reliability is a concern.
In Spring Integration, the MessageStore strategy also provides the foundation for thehttp://www.eaipatterns.com/StoreInLibrary.html[ClaimCheck] pattern, which is described in EIP as well.
@@ -152,7 +152,7 @@ Spring Integration's Gemfire module provides the `GemfireMessageStore` which is
----
In the above example, the cache and region are configured using the spring-gemfire namespace (not to be confused with the spring-integration-gemfire namespace).
Often it is desirable for the message store to be maintained in one or more remote cache servers in a client-server configuration (See the http://www.vmware.com/support/pubs/vfabric-gemfire.html[GemFire product documentation] for more details).
Often it is desirable for the message store to be maintained in one or more remote cache servers in a client-server configuration (See the https://www.vmware.com/support/pubs/vfabric-gemfire.html[GemFire product documentation] for more details).
In this case, you configure a client cache, client region, and client pool and inject the region into the MessageStore.
Here is an example:
[source,xml]

View File

@@ -2,7 +2,7 @@
=== Groovy support
In Spring Integration 2.0 we added Groovy support allowing you to use the Groovy scripting language to provide the logic for various integration components similar to the way the Spring Expression Language (SpEL) is supported for routing, transformation and other integration concerns.
For more information about Groovy please refer to the Groovy documentation which you can find on the http://www.groovy-lang.org/[project website].
For more information about Groovy please refer to the Groovy documentation which you can find on the https://groovy-lang.org/[project website].
[[groovy-config]]
==== Groovy configuration
@@ -66,8 +66,8 @@ _Groovy Script Compiler Customization_
The `@CompileStatic` hint is the most popular Groovy compiler customization option,
which can be used on the class or method level.
See more information in the Groovy
http://docs.groovy-lang.org/latest/html/documentation/index.html#_static_compilation[Reference Manual] and,
specifically, http://docs.groovy-lang.org/latest/html/documentation/index.html#compilestatic-annotation[@CompileStatic].
https://groovy-lang.org/metaprogramming.html#section-typechecked[Reference Manual] and,
specifically, https://groovy-lang.org/metaprogramming.html#xform-CompileStatic[@CompileStatic].
To utilize this feature for short scripts (in integration scenarios), we are forced to change a simple script like this
(a `<filter>` script):
@@ -108,7 +108,7 @@ Where we can access the `headers` and `payload` (or any other) variables only th
In addition, the `compiler-configuration` bean reference has been introduced.
With this attribute, you can provide any other required Groovy compiler customizations, e.g. `ImportCustomizer`.
For more information about this feature, please, refer to the Groovy Documentation:
http://groovy.jmiguel.eu/groovy.codehaus.org/Advanced+compiler+configuration.html[Advanced compiler configuration].
https://melix.github.io/blog/2011/05/12/customizing_groovy_compilation_process.html[Advanced compiler configuration].
NOTE: Using `compilerConfiguration` does not automatically add a `ASTTransformationCustomizer` for `@CompileStatic`
and overrides the `compileStatic` option.
@@ -121,7 +121,7 @@ and reloadable scripts can be statically compiled, too.
[[groovy-control-bus]]
==== Control Bus
As described in (http://www.eaipatterns.com/ControlBus.html[EIP]), the idea behind the Control Bus is that the same messaging system can be used for monitoring and managing the components within the framework as is used for "application-level" messaging.
As described in (https://www.enterpriseintegrationpatterns.com/ControlBus.html[EIP]), the idea behind the Control Bus is that the same messaging system can be used for monitoring and managing the components within the framework as is used for "application-level" messaging.
In Spring Integration we build upon the adapters described above so that it's possible to send Messages as a means of invoking exposed operations.
One option for those operations is Groovy scripts.
[source,xml]

View File

@@ -75,7 +75,7 @@ Stateful retry needs some mechanism to detect a retried submission.
*Further Information*
For more information on `spring-retry`, refer to the project's javadocs, as well as the reference documentation for http://docs.spring.io/spring-batch/reference/html/retry.html[Spring Batch], where `spring-retry` originated.
For more information on `spring-retry`, refer to the project's javadocs, as well as the reference documentation for https://docs.spring.io/spring-batch/reference/html/retry.html[Spring Batch], where `spring-retry` originated.
WARNING: The default back off behavior is no back off - retries are attempted immediately.
Using a back off policy that causes threads to pause between attempts may cause performance issues, including excessive memory use and thread starvation.
@@ -498,7 +498,7 @@ In addition to the `execute()` method, the `ExecutionCallback` provides an addit
This method must be used in cases where the invocation might be called multiple times within a single execution of `doInvoke()`, such as in the `RequestHandlerRetryAdvice`.
This is required because the Spring AOP `org.springframework.aop.framework.ReflectiveMethodInvocation` object maintains state of which advice in a chain was last invoked; this state must be reset for each call.
For more information, see the http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/aop/framework/ReflectiveMethodInvocation.html[ReflectiveMethodInvocation] JavaDocs.
For more information, see the https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/aop/framework/ReflectiveMethodInvocation.html[ReflectiveMethodInvocation] JavaDocs.
=====
[[other-advice]]
@@ -533,7 +533,7 @@ Bear in mind, however, that this means the advice chain order is not complied wi
----
The `<tx:advice>` is applied to the `AbstractReplyProducingMessageHandler.handleRequestMessage()`, but `myHandleMessageAdvice` is applied for to `MessageHandler.handleMessage()` and, therefore, invoked **before** the `<tx:advice>`.
To retain the order, you should follow with standard http://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop-api.html[Spring AOP] configuration approach and use endpoint `id` together with the `.handler` suffix to obtain the target `MessageHandler` bean.
To retain the order, you should follow with standard https://docs.spring.io/spring/docs/current/spring-framework-reference/html/aop-api.html[Spring AOP] configuration approach and use endpoint `id` together with the `.handler` suffix to obtain the target `MessageHandler` bean.
Note, however, that in that case, the entire downstream flow would be within the transaction scope.
In the case of a `MessageHandler` that does **not** return a response, the advice chain order is retained.
@@ -693,7 +693,7 @@ String componentName = handler.getComponentName();
[[idempotent-receiver]]
==== Idempotent Receiver Enterprise Integration Pattern
Starting with _version 4.1_, Spring Integration provides an implementation of the http://www.eaipatterns.com/IdempotentReceiver.html[Idempotent Receiver] Enterprise Integration Pattern.
Starting with _version 4.1_, Spring Integration provides an implementation of the https://www.enterpriseintegrationpatterns.com/IdempotentReceiver.html[Idempotent Receiver] Enterprise Integration Pattern.
It is a _functional_ pattern and the whole _idempotency_ logic should be implemented in the application, however to simplify the decision-making, the `IdempotentReceiverInterceptor` component is provided.
This is an AOP `Advice`, which is applied to the `MessageHandler.handleMessage()` method and can `filter` a request message or mark it as a `duplicate`, according to its configuration.

View File

@@ -12,9 +12,9 @@ Also see <<webflux>>.
=== Http Inbound Components
To receive messages over HTTP, you need to use an _HTTP Inbound Channel Adapter_ or _Gateway_.
To support the _HTTP Inbound Adapters_, they need to be deployed within a servlet container such as http://tomcat.apache.org/[Apache Tomcat] or http://www.eclipse.org/jetty/[Jetty].
To support the _HTTP Inbound Adapters_, they need to be deployed within a servlet container such as https://tomcat.apache.org/[Apache Tomcat] or https://www.eclipse.org/jetty/[Jetty].
The easiest way to do this is to use Spring's
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/context/support/HttpRequestHandlerServlet.html[HttpRequestHandlerServlet],
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/context/support/HttpRequestHandlerServlet.html[HttpRequestHandlerServlet],
by providing the following servlet definition in the _web.xml_ file:
[source,xml]
@@ -27,13 +27,13 @@ http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/co
Notice that the servlet name matches the bean name.
For more information on using the `HttpRequestHandlerServlet`, see chapter
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/remoting.html[Remoting and web services using Spring],
https://docs.spring.io/spring/docs/current/spring-framework-reference/html/remoting.html[Remoting and web services using Spring],
which is part of the Spring Framework Reference documentation.
If you are running within a Spring MVC application, then the aforementioned explicit servlet definition is not necessary.
In that case, the bean name for your gateway can be matched against the URL path just like a Spring MVC Controller bean.
For more information, please see the chapter
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html[Web MVC framework], which is part of the Spring Framework Reference documentation.
https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html[Web MVC framework], which is part of the Spring Framework Reference documentation.
TIP: For a sample application and the corresponding configuration, please see the https://github.com/spring-projects/spring-integration-samples[Spring Integration Samples] repository.
It contains the https://github.com/spring-projects/spring-integration-samples/tree/master/basic/http[Http Sample] application demonstrating Spring Integration's HTTP support.
@@ -67,7 +67,7 @@ NOTE: The HTTP inbound Endpoint will locate a `MultipartResolver` in the context
If it does in fact locate that bean, then the support for MultipartFiles will be enabled on the inbound request mapper.
Otherwise, it will fail when trying to map a multipart-file request to a Spring Integration Message.
For more on Spring's support for `MultipartResolver`, refer to the
http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-multipart[Spring Reference Manual].
https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-multipart[Spring Reference Manual].
[NOTE]
====
@@ -176,7 +176,7 @@ If _transfer-cookies_ is false, any _Set-Cookie_ header received will remain as
HTTP is a request/response protocol.
However the response may not have a body, just headers.
In this case, the `HttpRequestExecutingMessageHandler` produces a reply `Message` with the payload being an `org.springframework.http.ResponseEntity`, regardless of any provided `expected-response-type`.
According to the http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html[HTTP RFC Status Code Definitions], there are many statuses which identify that a response MUST NOT contain a message-body (e.g.
According to the https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html[HTTP RFC Status Code Definitions], there are many statuses which identify that a response MUST NOT contain a message-body (e.g.
204 No Content).
There are also cases where calls to the same URL might, or might not, return a response body; for example, the first request to an HTTP resource returns content, but the second does not (e.g.
304 Not Modified).
@@ -209,11 +209,11 @@ To include it in your configuration, simply provide the following namespace decl
xmlns:int-http="http://www.springframework.org/schema/integration/http"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/http
http://www.springframework.org/schema/integration/http/spring-integration-http.xsd">
https://www.springframework.org/schema/integration/http/spring-integration-http.xsd">
...
</beans>
----
@@ -241,14 +241,14 @@ To process requests that do expect a response, use an _inbound-gateway_:
[[http-request-mapping]]
==== Request Mapping Support
NOTE: _Spring Integration 3.0_ is improving the REST support by introducing the http://static.springsource.org/spring-integration/api/org/springframework/integration/http/inbound/IntegrationRequestMappingHandlerMapping.html[IntegrationRequestMappingHandlerMapping].
NOTE: _Spring Integration 3.0_ is improving the REST support by introducing the https://docs.spring.io/spring-integration/api/org/springframework/integration/http/inbound/IntegrationRequestMappingHandlerMapping.html[IntegrationRequestMappingHandlerMapping].
The implementation relies on the enhanced REST support provided by Spring Framework 3.1 or higher.
The parsing of the _HTTP Inbound Gateway_ or the _HTTP Inbound Channel Adapter_ registers an `integrationRequestMappingHandlerMapping` bean of type http://static.springsource.org/spring-integration/api/org/springframework/integration/http/inbound/IntegrationRequestMappingHandlerMapping.html[IntegrationRequestMappingHandlerMapping], in case there is none registered, yet.
This particular implementation of the http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/servlet/HandlerMapping.html[`HandlerMapping`] delegates its logic to the http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.html[`RequestMappingInfoHandlerMapping`].
The implementation provides similar functionality as the one provided by the http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html[`org.springframework.web.bind.annotation.RequestMapping`] annotation in Spring MVC.
The parsing of the _HTTP Inbound Gateway_ or the _HTTP Inbound Channel Adapter_ registers an `integrationRequestMappingHandlerMapping` bean of type https://docs.spring.io/spring-integration/api/org/springframework/integration/http/inbound/IntegrationRequestMappingHandlerMapping.html[IntegrationRequestMappingHandlerMapping], in case there is none registered, yet.
This particular implementation of the https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/HandlerMapping.html[`HandlerMapping`] delegates its logic to the https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfoHandlerMapping.html[`RequestMappingInfoHandlerMapping`].
The implementation provides similar functionality as the one provided by the https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html[`org.springframework.web.bind.annotation.RequestMapping`] annotation in Spring MVC.
NOTE: For more information, please see http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping[Mapping Requests With `@RequestMapping`].
NOTE: For more information, please see https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping[Mapping Requests With `@RequestMapping`].
For this purpose, _Spring Integration 3.0_ introduces the `<request-mapping>` sub-element.
This optional sub-element can be added to the `<http:inbound-channel-adapter>` and the `<http:inbound-gateway>`.
@@ -270,7 +270,7 @@ It works in conjunction with the `path` and `supported-methods` attributes:
</inbound-gateway>
----
Based on this configuration, the namespace parser creates an instance of the `IntegrationRequestMappingHandlerMapping` (if none exists, yet), a `HttpRequestHandlingController` bean and associated with it an instance of http://static.springsource.org/spring-integration/api/org/springframework/integration/http/inbound/RequestMapping.html[`RequestMapping`], which in turn, is converted to the Spring MVC http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfo.html[`RequestMappingInfo`].
Based on this configuration, the namespace parser creates an instance of the `IntegrationRequestMappingHandlerMapping` (if none exists, yet), a `HttpRequestHandlingController` bean and associated with it an instance of https://docs.spring.io/spring-integration/api/org/springframework/integration/http/inbound/RequestMapping.html[`RequestMapping`], which in turn, is converted to the Spring MVC https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/servlet/mvc/method/RequestMappingInfo.html[`RequestMappingInfo`].
The `<request-mapping>` sub-element provides the following attributes:
@@ -305,7 +305,7 @@ This allows you to get the `Message` into the flow as early as possibly, e.g.:
<int:service-activator input-channel="in2" ref="service" method="delete"/>
----
For more information regarding _Handler Mappings_, please see: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-handlermapping[Handler Mappings].
For more information regarding _Handler Mappings_, please see: https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-handlermapping[Handler Mappings].
[[http-cors]]
==== Cross-Origin Resource Sharing (CORS) Support
@@ -412,7 +412,7 @@ Using the _payload-expression_ attribute, the URI template variable _{firstName}
</int-http:inbound-channel-adapter>
----
For more information about _URI template variables_, please see the Spring Reference Manual: http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-uri-templates[uri template patterns].
For more information about _URI template variables_, please see the Spring Reference Manual: https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-requestmapping-uri-templates[uri template patterns].
@@ -424,7 +424,7 @@ The entire list of available expression variables:
* _#requestParams_ - the `MultiValueMap` from the `ServletRequest` `parameterMap`.
* _#pathVariables_ - the `Map` from URI Template placeholders and their values;
* _#matrixVariables_ - the `Map` of `MultiValueMap` according to http://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-matrix-variables[Spring MVC Specification].
* _#matrixVariables_ - the `Map` of `MultiValueMap` according to https://docs.spring.io/spring/docs/current/spring-framework-reference/html/mvc.html#mvc-ann-matrix-variables[Spring MVC Specification].
Note, _#matrixVariables_ require Spring MVC 3.2 or higher;
* _#requestAttributes_ - the `org.springframework.web.context.request.RequestAttributes` associated with the current Request;
* _#requestHeaders_ - the `org.springframework.http.HttpHeaders` object from the current Request;
@@ -535,7 +535,7 @@ This sub-element is available for the _Http Outbound Gateway_ and the _Http Outb
[source,xml]
----
<int-http:outbound-gateway id="trafficGateway"
url="http://local.yahooapis.com/trafficData?appid=YdnDemo&amp;zip={zipCode}"
url="https://local.yahooapis.com/trafficData?appid=YdnDemo&amp;zip={zipCode}"
request-channel="trafficChannel"
http-method="GET"
expected-response-type="java.lang.String">
@@ -554,7 +554,7 @@ This attribute is mutually exclusive with the `<uri-variable/>` sub-element:
[source,xml]
----
<int-http:outbound-gateway
url="http://foo.host/{foo}/bars/{bar}"
url="https://foo.host/{foo}/bars/{bar}"
request-channel="trafficChannel"
http-method="GET"
uri-variables-expression="@uriVariablesBean.populate(payload)"
@@ -634,7 +634,7 @@ List<NameValuePair> nameValuePairs =
==== Controlling URI Encoding
By default, the URL string is encoded (see http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/util/UriComponentsBuilder.html[UriComponentsBuilder]) to the URI object before sending the request.
By default, the URL string is encoded (see https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/util/UriComponentsBuilder.html[UriComponentsBuilder]) to the URI object before sending the request.
In some scenarios with a non-standard URI (e.g.
the RabbitMQ Rest API) it is undesirable to perform the encoding.
The `<http:outbound-gateway/>` and `<http:outbound-channel-adapter/>` provide an `encode-uri` attribute.
@@ -739,14 +739,14 @@ image::images/http-outbound-gateway.png[align="center"]
You may want to configure the HTTP related timeout behavior, when making active HTTP requests using the _HTTP Outbound Gateway_ or the _HTTP Outbound Channel Adapter_.
In those instances, these two components use Spring's
http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html[RestTemplate] support to execute HTTP requests.
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html[RestTemplate] support to execute HTTP requests.
In order to configure timeouts for the _HTTP Outbound Gateway_ and the _HTTP Outbound Channel Adapter_, you can either reference a `RestTemplate` bean directly, using the _rest-template_ attribute, or you can provide a reference to a http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/http/client/ClientHttpRequestFactory.html[ClientHttpRequestFactory] bean using the _request-factory_ attribute.
In order to configure timeouts for the _HTTP Outbound Gateway_ and the _HTTP Outbound Channel Adapter_, you can either reference a `RestTemplate` bean directly, using the _rest-template_ attribute, or you can provide a reference to a https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/client/ClientHttpRequestFactory.html[ClientHttpRequestFactory] bean using the _request-factory_ attribute.
Spring provides the following implementations of the `ClientHttpRequestFactory` interface:
http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/http/client/SimpleClientHttpRequestFactory.html[SimpleClientHttpRequestFactory] - Uses standard J2SE facilities for making HTTP Requests
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/client/SimpleClientHttpRequestFactory.html[SimpleClientHttpRequestFactory] - Uses standard J2SE facilities for making HTTP Requests
http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.html[HttpComponentsClientHttpRequestFactory] - Uses http://hc.apache.org/httpcomponents-client-ga/[Apache HttpComponents HttpClient] (Since Spring 3.1)
https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/client/HttpComponentsClientHttpRequestFactory.html[HttpComponentsClientHttpRequestFactory] - Uses https://hc.apache.org/httpcomponents-client-ga/[Apache HttpComponents HttpClient] (Since Spring 3.1)
If you don't explicitly configure the _request-factory_ or _rest-template_ attribute respectively, then a default RestTemplate which uses a `SimpleClientHttpRequestFactory` will be instantiated.
@@ -760,7 +760,7 @@ Some non-standard implementation of this method may ignore the specified timeout
To see the connect timeout set, please call getConnectTimeout().
Please test your timeouts if you have specific needs.
Consider using the `HttpComponentsClientHttpRequestFactory` which, in turn, uses http://hc.apache.org/httpcomponents-client-ga/[Apache HttpComponents HttpClient] instead.
Consider using the `HttpComponentsClientHttpRequestFactory` which, in turn, uses https://hc.apache.org/httpcomponents-client-ga/[Apache HttpComponents HttpClient] instead.
=====
IMPORTANT: When using the _Apache HttpComponents HttpClient_ with a Pooling Connection Manager, be aware that, by default, the connection manager will create no more than 2 concurrent connections per given route and no more than 20 connections in total.
@@ -771,7 +771,7 @@ Here is an example of how to configure an _HTTP Outbound Gateway_ using a `Simpl
[source,xml]
----
<int-http:outbound-gateway url="http://www.google.com/ig/api?weather={city}"
<int-http:outbound-gateway url="https://www.google.com/ig/api?weather={city}"
http-method="GET"
expected-response-type="java.lang.String"
request-factory="requestFactory"
@@ -835,7 +835,7 @@ And for HTTPS:
For more information please refer to this document: http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html
For more information please refer to this document: https://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html
_Spring's SimpleClientHttpRequestFactory_
@@ -865,7 +865,7 @@ If for any reason, you need more explicit control over the proxy configuration,
Spring Integration provides support for Http Header mapping for both HTTP Request and HTTP Responses.
By default all standard Http Headers as defined here http://en.wikipedia.org/wiki/List_of_HTTP_header_fields will be mapped from the message to HTTP request/response headers without further configuration.
By default all standard Http Headers as defined here https://en.wikipedia.org/wiki/List_of_HTTP_header_fields will be mapped from the message to HTTP request/response headers without further configuration.
However if you do need further customization you may provide additional configuration via convenient namespace support.
You can provide a comma-separated list of header names, and you can also include simple patterns with the '*' character acting as a wildcard.
If you do provide such values, it will override the default behavior.

View File

@@ -17,7 +17,7 @@ include::./whats-new.adoc[]
= Overview of Spring Integration Framework
[[spring-integration-intro]]
Spring Integration provides an extension of the Spring programming model to support the well-known http://www.eaipatterns.com/[Enterprise Integration Patterns].
Spring Integration provides an extension of the Spring programming model to support the well-known https://www.enterpriseintegrationpatterns.com/[Enterprise Integration Patterns].
It enables lightweight messaging _within_ Spring-based applications and supports integration with external systems via declarative adapters.
Those adapters provide a higher-level of abstraction over Spring's support for remoting, messaging, and scheduling.
Spring Integration's primary goal is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code.

View File

@@ -195,7 +195,7 @@ for the `<int-ip:udp-outbound-channel-adapter>` (`UnicastSendingMessageHandler`)
The `destination-expression` can be used as a runtime alternative to the hardcoded `host`/`port` pair to determine
the destination address for the outgoing datagram packet against a `requestMessage` as the root object for the evaluation context.
The expression must evaluate to an `URI`, or `String` in the URI style (see http://www.ietf.org/rfc/rfc2396.txt[RFC-2396])
The expression must evaluate to an `URI`, or `String` in the URI style (see https://www.ietf.org/rfc/rfc2396.txt[RFC-2396])
or `SocketAddress`.
The inbound `IpHeaders.PACKET_ADDRESS` header can be used for this expression as well.
In the Framework, this header is populated by the `DatagramPacketMessageMapper`, when we receive datagrams in the

View File

@@ -562,7 +562,7 @@ If you want to execute Stored Functions instead, the following databases are ful
=====
Even though your particular database may not be fully supported, chances are, that you can use the Stored Procedure Spring Integration components quite successfully anyway, provided your RDBMS supports Stored Procedures or Functions.
As a matter of fact, some of the provided integration tests use the http://www.h2database.com/[H2 database].
As a matter of fact, some of the provided integration tests use the https://www.h2database.com/[H2 database].
Nevertheless, it is very important to thoroughly test those usage scenarios.
=====

View File

@@ -9,12 +9,12 @@ There is also an outbound Channel Adapter which uses the `JmsTemplate` to conver
As you can see from above by using `JmsTemplate` and `MessageListener` container Spring Integration relies on Spring's JMS support.
This is important to understand since most of the attributes exposed on these adapters will configure the underlying Spring's `JmsTemplate` and/or `MessageListener` container.
For more details about `JmsTemplate` and `MessageListener` container please refer to http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html[Spring JMS documentation].
For more details about `JmsTemplate` and `MessageListener` container please refer to https://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html[Spring JMS documentation].
Whereas the JMS Channel Adapters are intended for unidirectional Messaging (send-only or receive-only), Spring Integration also provides inbound and outbound JMS Gateways for request/reply operations.
The inbound gateway relies on one of Spring's `MessageListener` container implementations for Message-driven reception that is also capable of sending a return value to the `reply-to` Destination as provided by the received Message.
The outbound Gateway sends a JMS Message to a `request-destination` (or `request-destination-name` or `request-destination-expression`) and then receives a reply Message.
The `reply-destination` reference (or `reply-destination-name` or `reply-destination-expression`) can be configured explicitly or else the outbound gateway will use a JMS http://docs.oracle.com/javaee/6/api/javax/jms/TemporaryQueue.html[TemporaryQueue].
The `reply-destination` reference (or `reply-destination-name` or `reply-destination-expression`) can be configured explicitly or else the outbound gateway will use a JMS https://docs.oracle.com/javaee/6/api/javax/jms/TemporaryQueue.html[TemporaryQueue].
Prior to _Spring Integration 2.2_, if necessary, a `TemporaryQueue` was created (and removed) for each request/reply.
Beginning with _Spring Integration 2.2_, the outbound gateway can be configured to use a `MessageListener` container to receive replies instead of directly using a new (or cached) `Consumer` to receive the reply for each request.
@@ -275,14 +275,14 @@ Note that, in this situation, a new consumer is used for each request, and consu
In the above example, a reply listener with default attributes is used.
The listener is very lightweight and it is anticipated that, in most cases, only a single consumer will be needed.
However, attributes such as _concurrent-consumers_, _max-concurrent-consumers_ etc., can be added.
Refer to the schema for a complete list of supported attributes, together with the http://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html[Spring JMS documentation] for their meanings.
Refer to the schema for a complete list of supported attributes, together with the https://docs.spring.io/spring/docs/current/spring-framework-reference/html/jms.html[Spring JMS documentation] for their meanings.
*Idle Reply Listeners*
Starting with _version 4.2_, the reply listener can be started as needed (and stopped after an idle time) instead
of running for the duration of the gateway's lifecycle.
This might be useful if you have many gateways in the application context where they are mostly idle.
One such situation is a context with many (inactive) partitioned http://projects.spring.io/spring-batch/[Spring Batch]
One such situation is a context with many (inactive) partitioned https://projects.spring.io/spring-batch/[Spring Batch]
jobs using Spring Integration and JMS for partition distribution.
If all the reply listeners were active, the JMS broker would have an active consumer for each gateway.
By enabling the idle timeout, each consumer would exist only while the corresponding batch job is running (and
@@ -682,7 +682,7 @@ Use `subscription` to name the subscription.
[[jms-selectors]]
=== Using JMS Message Selectors
With JMS message selectors you can filter http://docs.oracle.com/javaee/6/api/javax/jms/Message.html[JMS Messages] based on JMS headers as well as JMS properties.
With JMS message selectors you can filter https://docs.oracle.com/javaee/6/api/javax/jms/Message.html[JMS Messages] based on JMS headers as well as JMS properties.
For example, if you want to listen to messages whose custom JMS header property _fooHeaderProperty_ equals _bar_, you can specify the following expression:
[source,xml]
@@ -690,7 +690,7 @@ For example, if you want to listen to messages whose custom JMS header property
fooHeaderProperty = 'bar'
----
Message selector expressions are a subset of the http://en.wikipedia.org/wiki/SQL-92[SQL-92] conditional expression syntax, and are defined as part of the _http://download.oracle.com/otn-pub/jcp/7195-jms-1.1-fr-spec-oth-JSpec/jms-1_1-fr-spec.pdf[Java Message Service]_ specification (Version 1.1 April 12, 2002).
Message selector expressions are a subset of the https://en.wikipedia.org/wiki/SQL-92[SQL-92] conditional expression syntax, and are defined as part of the _http://download.oracle.com/otn-pub/jcp/7195-jms-1.1-fr-spec-oth-JSpec/jms-1_1-fr-spec.pdf[Java Message Service]_ specification (Version 1.1 April 12, 2002).
Specifically, please see chapter "3.8 Message Selection".
It contains a detailed explanation of the expressions syntax.

View File

@@ -274,7 +274,7 @@ The _bean_ attribute in the object names for sources and handlers takes one of t
Custom elements can be appended to the object name by providing a reference to a `Properties` object in the `object-name-static-properties` attribute.
Also, since _Spring Integration 3.0_, you can use a custom http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jmx/export/naming/ObjectNamingStrategy.html[ObjectNamingStrategy] using the `object-naming-strategy` attribute.
Also, since _Spring Integration 3.0_, you can use a custom https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jmx/export/naming/ObjectNamingStrategy.html[ObjectNamingStrategy] using the `object-naming-strategy` attribute.
This permits greater control over the naming of the MBeans.
For example, to group all Integration MBeans under an 'Integration' type.
A simple custom naming strategy implementation might be:
@@ -297,7 +297,7 @@ The `beanKey` argument is a String containing the standard object name beginning
This example simply moves the standard `type` part to `componentType` and sets the `type` to 'Integration', enabling selection of all Integration MBeans in one query:`"my.domain:type=Integration,*`.
This also groups the beans under one tree entry under the domain in tools like VisualVM.
NOTE: The default naming strategy is a http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jmx/export/naming/MetadataNamingStrategy.html[MetadataNamingStrategy].
NOTE: The default naming strategy is a https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/jmx/export/naming/MetadataNamingStrategy.html[MetadataNamingStrategy].
The exporter propagates the `default-domain` to that object to allow it to generate a fallback object name if parsing of the bean key fails.
If your custom naming strategy is a `MetadataNamingStrategy` (or subclass), the exporter will *not* propagate the `default-domain`; you will need to configure it on your strategy bean.

View File

@@ -124,7 +124,7 @@ Either this attribute or the _entity-manager-factory_ attribute or the _jpa-oper
NOTE: Usually your Spring Application Context only defines a JPA Entity Manager Factory and the `EntityManager` is injected using the `@PersistenceContext` annotation.
This, however, is not applicable for the Spring Integration JPA components.
Usually, injecting the JPA Entity Manager Factory will be best but in case you want to inject an `EntityManager` explicitly, you have to define a `SharedEntityManagerBean`.
For more information, please see the relevant http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/orm/jpa/support/SharedEntityManagerBean.html[JavaDoc].
For more information, please see the relevant https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/orm/jpa/support/SharedEntityManagerBean.html[JavaDoc].
[source,xml]
----
@@ -499,7 +499,7 @@ The default value is _MERGE_.
As we can see above these 4 attributes of the _outbound-channel-adapter_ are all we need to configure it to accept entities over the input channel and process them to _PERSIST_,_MERGE_ or _DELETE_ it from the underlying data source.
NOTE: As of _Spring Integration 3.0_, payloads to _PERSIST_ or _MERGE_ can also be of type `http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html[java.lang.Iterable]`.
NOTE: As of _Spring Integration 3.0_, payloads to _PERSIST_ or _MERGE_ can also be of type `https://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html[java.lang.Iterable]`.
In that case, each object returned by the `Iterable` is treated as an entity and persisted or merged using the underlying `EntityManager`.
_NULL_ values returned by the iterator are ignored.
@@ -722,7 +722,7 @@ Relevant only if an entity is being used for JPA operations.
Ignored if JPA QL, named query or native query is provided.
Defaults to _MERGE_.
_Optional_.
As of *Spring Integration 3.0*, payloads to _persist_ or _merge_ can also be of type `http://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html[java.lang.Iterable]`.
As of *Spring Integration 3.0*, payloads to _persist_ or _merge_ can also be of type `https://docs.oracle.com/javase/7/docs/api/java/lang/Iterable.html[java.lang.Iterable]`.
In that case, each object returned by the `Iterable` is treated as an entity and persisted or merged using the underlying `EntityManager`.
_NULL_ values returned by the iterator are ignored.
@@ -1175,7 +1175,7 @@ _JSR 317: Java™ Persistence 2.0_ states in chapter Chapter 4.10, Bulk Update a
"A delete operation only applies to entities of the specified class and its subclasses.
It does not cascade to related entities."
For more information please see http://jcp.org/en/jsr/detail?id=317[JSR 317: Java™ Persistence 2.0]
For more information please see https://jcp.org/en/jsr/detail?id=317[JSR 317: Java™ Persistence 2.0]
=====
[[outboundGatewaySamples]]

View File

@@ -168,9 +168,9 @@ To use it, configure the following schema locations.
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:int-mail="http://www.springframework.org/schema/integration/mail"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration/mail
http://www.springframework.org/schema/integration/mail/spring-integration-mail.xsd">
https://www.springframework.org/schema/integration/mail/spring-integration-mail.xsd">
----
To configure an outbound Channel Adapter, provide the channel to receive from, and the MailSender:

View File

@@ -5,7 +5,7 @@ Enterprise Integration Patterns (EIP) identifies several patterns that have the
For example, an _Aggregator_ buffers messages until they can be released and a _QueueChannel_ buffers messages until consumers explicitly receive those messages from that channel.
Because of the failures that can occur at any point within your message flow, EIP components that buffer messages also introduce a point where messages could be lost.
To mitigate the risk of losing Messages, EIP defines the http://eaipatterns.com/MessageStore.html[Message Store] pattern which allows EIP components to store _Messages_ typically in some type of persistent store (e.g.
To mitigate the risk of losing Messages, EIP defines the https://www.enterpriseintegrationpatterns.com/MessageStore.html[Message Store] pattern which allows EIP components to store _Messages_ typically in some type of persistent store (e.g.
RDBMS).
Spring Integration provides support for the _Message Store_ pattern by a) defining a `org.springframework.integration.store.MessageStore` strategy interface, b) providing several implementations of this interface, and c) exposing a `message-store` attribute on all components that have the capability to buffer messages so that you can inject any instance that implements the `MessageStore` interface.

View File

@@ -2,7 +2,7 @@
=== Metadata Store
Many external systems, services or resources aren't transactional (Twitter, RSS, file system etc.) and there is no any ability to mark the data as read.
Or there is just need to implement the Enterprise Integration Pattern http://eaipatterns.com/IdempotentReceiver.html[Idempotent Receiver] in some integration solutions.
Or there is just need to implement the Enterprise Integration Pattern https://www.enterpriseintegrationpatterns.com/IdempotentReceiver.html[Idempotent Receiver] in some integration solutions.
To achieve this goal and store some previous state of the Endpoint before the next interaction with external system, or deal with the next Message, Spring Integration provides the _Metadata Store_ component being an implementation of the `org.springframework.integration.metadata.MetadataStore` interface with a general _key-value_ contract.
The _Metadata Store_ is designed to store various types of generic meta-data (e.g., published date of the last feed entry that has been processed) to help components such as the Feed adapter deal with duplicates.
@@ -22,7 +22,7 @@ the framework:
The `PropertiesPersistingMetadataStore` is backed by a properties file and a http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/PropertiesPersister.html[PropertiesPersister].
The `PropertiesPersistingMetadataStore` is backed by a properties file and a https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/PropertiesPersister.html[PropertiesPersister].
By default, it only persists the state when the application context is closed normally. It implements `Flushable` so you
can persist the state at will, be invoking `flush()`.
@@ -42,7 +42,7 @@ These provide for atomic updates and can be used across multiple component or ap
[[idempotent-receiver-pattern]]
==== Idempotent Receiver and Metadata Store
The _Metadata Store_ is useful for implementing the EIP http://eaipatterns.com/IdempotentReceiver.html[Idempotent Receiver] pattern, when there is need to _filter_ an incoming Message if it has already been processed, and just discard it or perform some other logic on discarding.
The _Metadata Store_ is useful for implementing the EIP https://www.enterpriseintegrationpatterns.com/IdempotentReceiver.html[Idempotent Receiver] pattern, when there is need to _filter_ an incoming Message if it has already been processed, and just discard it or perform some other logic on discarding.
The following configuration is an example of how to do this:
[source,xml]

View File

@@ -1,19 +1,19 @@
[[mongodb]]
== MongoDb Support
As of version 2.1 Spring Integration introduces support for http://www.mongodb.org/[MongoDB]: a _"high-performance, open source, document-oriented database"_.
As of version 2.1 Spring Integration introduces support for https://www.mongodb.org/[MongoDB]: a _"high-performance, open source, document-oriented database"_.
This support comes in the form of a MongoDB-based MessageStore.
[[mongodb-intro]]
=== Introduction
To download, install, and run MongoDB please refer to the http://www.mongodb.org/downloads[MongoDB documentation].
To download, install, and run MongoDB please refer to the https://www.mongodb.org/downloads[MongoDB documentation].
[[mongodb-connection]]
=== Connecting to MongoDb
To begin interacting with MongoDB you first need to connect to it.
Spring Integration builds on the support provided by another Spring project, http://projects.spring.io/spring-data-mongodb/[Spring Data MongoDB], which provides a factory class called `MongoDbFactory` that simplifies integration with the MongoDB Client API.
Spring Integration builds on the support provided by another Spring project, https://projects.spring.io/spring-data-mongodb/[Spring Data MongoDB], which provides a factory class called `MongoDbFactory` that simplifies integration with the MongoDB Client API.
_MongoDbFactory_
@@ -63,14 +63,14 @@ Or in Spring's XML configuration:
As you can see `SimpleMongoDbFactory` takes two arguments: 1) a `Mongo` instance and 2) a String specifying the name of the database.
If you need to configure properties such as `host`, `port`, etc, you can pass those using one of the constructors provided by the underlying `Mongo` class.
For more information on how to configure MongoDB, please refer to the http://docs.spring.io/spring-data/data-mongo/docs/current/reference/html/[Spring-Data-MongoDB] reference.
For more information on how to configure MongoDB, please refer to the https://docs.spring.io/spring-data/data-mongo/docs/current/reference/html/[Spring-Data-MongoDB] reference.
[[mongodb-message-store]]
=== MongoDB Message Store
As described in EIP, a http://www.eaipatterns.com/MessageStore.html[Message Store] allows you to persist Messages.
As described in EIP, a https://www.enterpriseintegrationpatterns.com/MessageStore.html[Message Store] allows you to persist Messages.
This can be very useful when dealing with components that have a capability to buffer messages (_QueueChannel, Aggregator, Resequencer_, etc.) if reliability is a concern.
In Spring Integration, the `MessageStore` strategy also provides the foundation for the http://www.eaipatterns.com/StoreInLibrary.html[ClaimCheck] pattern, which is described in EIP as well.
In Spring Integration, the `MessageStore` strategy also provides the foundation for the https://www.enterpriseintegrationpatterns.com/StoreInLibrary.html[ClaimCheck] pattern, which is described in EIP as well.
Spring Integration's MongoDB module provides the `MongoDbMessageStore` which is an implementation of both the `MessageStore` strategy (mainly used by the _ClaimCheck_ pattern) and the `MessageGroupStore` strategy (mainly used by the _Aggregator_ and _Resequencer_ patterns).
@@ -187,7 +187,7 @@ The _MongoDb Inbound Channel Adapter_ is a polling consumer that reads data from
As you can see from the configuration above, you configure a _MongoDb Inbound Channel Adapter_ using the `inbound-channel-adapter` element, providing values for various attributes such as:
* `query`: A JSON query (see http://www.mongodb.org/display/DOCS/Querying[MongoDB Querying])
* `query`: A JSON query (see https://www.mongodb.org/display/DOCS/Querying[MongoDB Querying])
* `query-expression`: A SpEL expression that is evaluated to a JSON query string (as the `query` attribute above) or to an instance of `o.s.data.mongodb.core.query.Query`.
Mutually exclusive with the `query` attribute.
* `entity-class`: The type of the payload object. If not supplied, a `com.mongodb.DBObject` is returned.
@@ -319,7 +319,7 @@ The Message payload and headers can be used to specify the query, as well as col
* `entity-class` - the fully qualified name of the entity class to be passed to `find(..)` or `findOne(..)` method in MongoTemplate.
If this attribute is not provided the default value is `org.bson.Document`;
* `query` or `query-expression` - specifies the MongoDb query.
Please refer to http://www.mongodb.org/display/DOCS/Querying[MongoDB documentation] for more query samples.
Please refer to https://www.mongodb.org/display/DOCS/Querying[MongoDB documentation] for more query samples.
* `collection-callback` - reference to an instance of `org.springframework.data.mongodb.core.CollectionCallback`
(NOTE: you can not have both collection-callback and any of the query attributes).
@@ -331,7 +331,7 @@ NOTE: you can not set both `mongo-template` and `mongodb-factory`.
* `entity-class`: The fully qualified name of the entity class to be passed to the `find(..)` and `findOne(..)` methods in MongoTemplate.
If this attribute is not provided, the default value is `org.bson.Document`.
* `query` or `query-expression`: Specifies the MongoDB query.
See the http://www.mongodb.org/display/DOCS/Querying[MongoDB documentation] for more query samples.
See the https://www.mongodb.org/display/DOCS/Querying[MongoDB documentation] for more query samples.
* `collection-callback`: Reference to an instance of `org.springframework.data.mongodb.core.CollectionCallback`.
Preferable an instance of `org.springframework.integration.mongodb.outbound.MessageCollectionCallback` since 5.0.11 with the request message context.
See its Javadocs for more information.

View File

@@ -5,7 +5,7 @@
=== Introduction
Spring Integration provides inbound and outbound channel adapters supporting the MQ Telemetry Transport (MQTT) protocol.
The current implementation uses the http://www.eclipse.org/paho/[Eclipse Paho MQTT Client] library.
The current implementation uses the https://www.eclipse.org/paho/[Eclipse Paho MQTT Client] library.
Configuration of both adapters is achieved using the `DefaultMqttPahoClientFactory`.
Refer to the Paho documentation for more information about configuration options.

View File

@@ -23,7 +23,7 @@ In other words, the messaging and integration concerns are handled by the framew
As an extension of the Spring programming model, Spring Integration provides a wide variety of configuration options including annotations, XML with namespace support, XML with generic "bean" elements, and of course direct usage of the underlying API.
That API is based upon well-defined strategy interfaces and non-invasive, delegating adapters.
Spring Integration's design is inspired by the recognition of a strong affinity between common patterns within Spring and the well-known http://www.eaipatterns.com[Enterprise Integration Patterns] as described in the book of the same name by Gregor Hohpe and Bobby Woolf (Addison Wesley, 2004).
Spring Integration's design is inspired by the recognition of a strong affinity between common patterns within Spring and the well-known https://www.enterpriseintegrationpatterns.com/[Enterprise Integration Patterns] as described in the book of the same name by Gregor Hohpe and Bobby Woolf (Addison Wesley, 2004).
Developers who have read that book should be immediately comfortable with the Spring Integration concepts and terminology.
[[overview-goalsandprinciples]]
@@ -117,7 +117,7 @@ This is similar to the role of a Controller in the MVC paradigm.
Just as a Controller handles HTTP requests, the Message Endpoint handles Messages.
Just as Controllers are mapped to URL patterns, Message Endpoints are mapped to Message Channels.
The goal is the same in both cases: isolate application code from the infrastructure.
These concepts are discussed at length along with all of the patterns that follow in the http://www.eaipatterns.com[Enterprise Integration Patterns] book.
These concepts are discussed at length along with all of the patterns that follow in the https://www.enterpriseintegrationpatterns.com/[Enterprise Integration Patterns] book.
Here, we provide only a high-level description of the main endpoint types supported by Spring Integration and their roles.
The chapters that follow will elaborate and provide sample code as well as configuration examples.
@@ -383,7 +383,7 @@ The first time a Spring Integration namespace element is encountered, the framew
IMPORTANT: Starting with _version 4.0_, the `@EnableIntegration` annotation has been introduced, to allow the
registration of Spring Integration infrastructure beans (see
http://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/config/EnableIntegration.html[JavaDocs]).
https://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/config/EnableIntegration.html[JavaDocs]).
This annotation is required when only Java & Annotation configuration is used, e.g. with Spring Boot and/or
Spring Integration Messaging Annotation support and Spring Integration Java DSL with no XML integration configuration.
@@ -728,4 +728,4 @@ If you wish, you can also set up your POJO method such that it always uses SpEL,
public void bar(String bar) { ... }
----
If the `compilerMode` property is omitted, the `spring.expression.compiler.mode` system property will determine the compiler mode - see http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/expressions.html#expressions-spel-compilation[SpEL compilation] for more information about compiled SpEL.
If the `compilerMode` property is omitted, the `spring.expression.compiler.mode` system property will determine the compiler mode - see https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/expressions.html#expressions-spel-compilation[SpEL compilation] for more information about compiled SpEL.

View File

@@ -5,14 +5,14 @@
When Message Endpoints (Channel Adapters) are connected to channels and instantiated, they produce one of the following 2 instances:
* http://static.springsource.org/spring-integration/api/org/springframework/integration/endpoint/PollingConsumer.html[PollingConsumer]
* http://static.springsource.org/spring-integration/api/org/springframework/integration/endpoint/EventDrivenConsumer.html[EventDrivenConsumer]
* https://docs.spring.io/spring-integration/api/org/springframework/integration/endpoint/PollingConsumer.html[PollingConsumer]
* https://docs.spring.io/spring-integration/api/org/springframework/integration/endpoint/EventDrivenConsumer.html[EventDrivenConsumer]
The actual implementation depends on which type of channel these Endpoints are connected to.
A channel adapter connected to a channel that implements the http://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/messaging/SubscribableChannel.html[org.springframework.messaging.SubscribableChannel] interface will produce an instance of `EventDrivenConsumer`.
On the other hand, a channel adapter connected to a channel that implements the http://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/messaging/PollableChannel.html[org.springframework.messaging.PollableChannel] interface (e.g. a QueueChannel) will produce an instance of `PollingConsumer`.
A channel adapter connected to a channel that implements the https://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/messaging/SubscribableChannel.html[org.springframework.messaging.SubscribableChannel] interface will produce an instance of `EventDrivenConsumer`.
On the other hand, a channel adapter connected to a channel that implements the https://docs.spring.io/spring/docs/current/javadoc-api/index.html?org/springframework/messaging/PollableChannel.html[org.springframework.messaging.PollableChannel] interface (e.g. a QueueChannel) will produce an instance of `PollingConsumer`.
Polling Consumers allow Spring Integration components to actively poll for Messages, rather than to process Messages in an event-driven manner.
@@ -20,7 +20,7 @@ They represent a critical cross cutting concern in many messaging scenarios.
In Spring Integration, Polling Consumers are based on the pattern with the same name, which is described in the book "Enterprise Integration Patterns" by Gregor Hohpe and Bobby Woolf.
You can find a description of the pattern on the book's website at:
http://www.enterpriseintegrationpatterns.com/PollingConsumer.html[http://www.enterpriseintegrationpatterns.com/PollingConsumer.html]
https://www.enterpriseintegrationpatterns.com/PollingConsumer.html[https://www.enterpriseintegrationpatterns.com/PollingConsumer.html]
[[pollable-message-source]]
==== Pollable Message Source
@@ -30,8 +30,8 @@ When Inbound Channel Adapters are being used, these adapters are often wrapped b
For example, when retrieving messages from a remote FTP Server location, the adapter described in <<ftp-inbound>> is configured with a _poller_ to retrieve messages periodically.
So, when components are configured with Pollers, the resulting instances are of one of the following types:
* http://static.springsource.org/spring-integration/api/org/springframework/integration/endpoint/PollingConsumer.html[PollingConsumer]
* http://static.springsource.org/spring-integration/api/org/springframework/integration/endpoint/SourcePollingChannelAdapter.html[SourcePollingChannelAdapter]
* https://docs.spring.io/spring-integration/api/org/springframework/integration/endpoint/PollingConsumer.html[PollingConsumer]
* https://docs.spring.io/spring-integration/api/org/springframework/integration/endpoint/SourcePollingChannelAdapter.html[SourcePollingChannelAdapter]

View File

@@ -5,7 +5,7 @@
[[system-requirements]]
== Requirements
This section details the compatible http://www.oracle.com/technetwork/java/javase/downloads/index.html[Java] and http://www.springsource.org/spring-framework[Spring Framework] versions.
This section details the compatible https://www.oracle.com/technetwork/java/javase/downloads/index.html[Java] and https://www.springsource.org/spring-framework[Spring Framework] versions.
[[supported-java-versions]]
=== Compatible Java Versions
@@ -39,13 +39,13 @@ Each Spring Integration adapter type (module) will provide its own namespace, wh
xmlns:int-stream="http://www.springframework.org/schema/integration/stream"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/twitter
http://www.springframework.org/schema/integration/twitter/spring-integration-twitter.xsd
https://www.springframework.org/schema/integration/twitter/spring-integration-twitter.xsd
http://www.springframework.org/schema/integration/stream
http://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd">
https://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd">
</beans>
----

View File

@@ -1,13 +1,13 @@
[[redis]]
== Redis Support
Since version 2.1 Spring Integration introduces support for http://redis.io/[Redis]: _"an open source advanced key-value store".
_ This support comes in the form of a Redis-based MessageStore as well as Publish-Subscribe Messaging adapters that are supported by Redis via its http://redis.io/topics/pubsub[PUBLISH, SUBSCRIBE and UNSUBSCRIBE] commands.
Since version 2.1 Spring Integration introduces support for https://redis.io/[Redis]: _"an open source advanced key-value store".
_ This support comes in the form of a Redis-based MessageStore as well as Publish-Subscribe Messaging adapters that are supported by Redis via its https://redis.io/topics/pubsub[PUBLISH, SUBSCRIBE and UNSUBSCRIBE] commands.
[[redis-intro]]
=== Introduction
To download, install and run Redis please refer to the http://redis.io/download[Redis documentation].
To download, install and run Redis please refer to the https://redis.io/download[Redis documentation].
[[redis-connection]]
=== Connecting to Redis
@@ -15,7 +15,7 @@ To download, install and run Redis please refer to the http://redis.io/download[
To begin interacting with Redis you first need to connect to it.
Spring Integration uses support provided by another Spring project, https://github.com/SpringSource/spring-data-redis[Spring Data Redis], which provides typical Spring constructs: `ConnectionFactory` and `Template`.
Those abstractions simplify integration with several Redis-client Java APIs.
Currently Spring-Data-Redis supportshttps://github.com/xetorthio/jedis[jedis], http://code.google.com/p/jredis/[jredis] and https://github.com/e-mzungu/rjc[rjc]
Currently Spring-Data-Redis supportshttps://github.com/xetorthio/jedis[jedis], https://code.google.com/p/jredis/[jredis] and https://github.com/e-mzungu/rjc[rjc]
_RedisConnectionFactory_
@@ -57,7 +57,7 @@ Once an instance of RedisConnectionFactory is created, you can create an instanc
_RedisTemplate_
As with other template classes in Spring (e.g., `JdbcTemplate`, `JmsTemplate`) `RedisTemplate` is a helper class that simplifies Redis data access code.
For more information about `RedisTemplate` and its variations (e.g., `StringRedisTemplate`) please refer to the http://static.springsource.org/spring-data/data-redis/docs/current/reference/[Spring-Data-Redis documentation]
For more information about `RedisTemplate` and its variations (e.g., `StringRedisTemplate`) please refer to the https://docs.spring.io/spring-data/data-redis/docs/current/reference/[Spring-Data-Redis documentation]
The code below shows how to create an instance of `RedisTemplate`:
@@ -134,7 +134,7 @@ Inbound adapters can subscribe to multiple topic names hence the comma-delimited
Since _version 3.0_, the Inbound Adapter, in addition to the existing `topics` attribute, now has the `topic-patterns` attribute.
This attribute contains a comma-delimited set of Redis topic patterns.
For more information regarding Redis publish/subscribe, see http://redis.io/topics/pubsub[Redis Pub/Sub].
For more information regarding Redis publish/subscribe, see https://redis.io/topics/pubsub[Redis Pub/Sub].
Inbound adapters can use a `RedisSerializer` to deserialize the body of Redis Messages.
The `serializer` attribute of the `<int-redis:inbound-channel-adapter>` can be set to an empty string, which results in a `null` value for the `RedisSerializer` property.
@@ -321,9 +321,9 @@ Handling these events using an `<int-event:inbound-channel-adapter/>` can be use
[[redis-message-store]]
=== Redis Message Store
As described in EIP, a http://www.eaipatterns.com/MessageStore.html[Message Store] allows you to persist Messages.
As described in EIP, a https://www.enterpriseintegrationpatterns.com/MessageStore.html[Message Store] allows you to persist Messages.
This can be very useful when dealing with components that have a capability to buffer messages (_Aggregator, Resequencer_, etc.) if reliability is a concern.
In Spring Integration, the MessageStore strategy also provides the foundation for the http://www.eaipatterns.com/StoreInLibrary.html[ClaimCheck] pattern, which is described in EIP as well.
In Spring Integration, the MessageStore strategy also provides the foundation for the https://www.enterpriseintegrationpatterns.com/StoreInLibrary.html[ClaimCheck] pattern, which is described in EIP as well.
Spring Integration's Redis module provides the `RedisMessageStore`.
@@ -392,7 +392,7 @@ IMPORTANT: These stores implement only `BasicMessageGroupStore` and do not imple
[[redis-metadata-store]]
=== Redis Metadata Store
As of _Spring Integration 3.0_ a new Redis-based http://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/metadata/MetadataStore.html[MetadataStore] (<<metadata-store>>) implementation is available.
As of _Spring Integration 3.0_ a new Redis-based https://docs.spring.io/spring-integration/docs/latest-ga/api/org/springframework/integration/metadata/MetadataStore.html[MetadataStore] (<<metadata-store>>) implementation is available.
The `RedisMetadataStore` can be used to maintain state of a `MetadataStore` across application restarts.
This new `MetadataStore` implementation can be used with adapters such as:
@@ -414,7 +414,7 @@ The _Twitter Inbound Channel Adapter_ and the _Feed Inbound Channel Adapter_ wil
</bean>
----
The `RedisMetadataStore` is backed by http://docs.spring.io/spring-data/data-redis/docs/current/api/org/springframework/data/redis/support/collections/RedisProperties.html[`RedisProperties`] and interaction with it uses http://docs.spring.io/spring-data/data-redis/docs/current/api/org/springframework/data/redis/core/BoundHashOperations.html[`BoundHashOperations`], which, in turn, requires a `key` for the entire `Properties` store.
The `RedisMetadataStore` is backed by https://docs.spring.io/spring-data/data-redis/docs/current/api/org/springframework/data/redis/support/collections/RedisProperties.html[`RedisProperties`] and interaction with it uses https://docs.spring.io/spring-data/data-redis/docs/current/api/org/springframework/data/redis/core/BoundHashOperations.html[`BoundHashOperations`], which, in turn, requires a `key` for the entire `Properties` store.
In the case of the `MetadataStore`, this `key` plays the role of a _region_, which is useful in distributed environment, when several applications use the same Redis server.
By default this `key` has the value `MetaData`.

View File

@@ -4,5 +4,5 @@
[[resources-home]]
=== Spring Integration Home
The definitive source of information about Spring Integration is the http://projects.spring.io/spring-integration/[Spring Integration Home] at http://spring.io[http://spring.io].
The definitive source of information about Spring Integration is the https://projects.spring.io/spring-integration/[Spring Integration Home] at https://spring.io[https://spring.io].
That site serves as a hub of information and is the best place to find up-to-date announcements about the project as well as links to articles, blogs, and new sample applications.

View File

@@ -1070,8 +1070,8 @@ In the above configuration, if the Message includes a header with the name 'chan
You may also find _Collection Projection_ and _Collection Selection_ expressions useful to select multiple channels.
For further information, please see:
* http://static.springsource.org/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-collection-projection[Collection Projection]
* http://static.springsource.org/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-collection-selection[Collection Selection]
* https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-collection-projection[Collection Projection]
* https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-collection-selection[Collection Selection]
@@ -1133,7 +1133,7 @@ Or you may want to introduce more granularity to your message flow by adding ano
Unfortunately with static router configuration to accomplish this, you would have to bring down your entire application, change the configuration of the router (change routes) and bring it back up.
This is obviously not the solution.
The http://www.eaipatterns.com/DynamicRouter.html[Dynamic Router] pattern describes the mechanisms by which one can change/configure routers dynamically without bringing down the system or individual routers. 
The https://www.enterpriseintegrationpatterns.com/DynamicRouter.html[Dynamic Router] pattern describes the mechanisms by which one can change/configure routers dynamically without bringing down the system or individual routers. 
Before we get into the specifics of how this is accomplished in Spring Integration, let's quickly summarize the typical flow of the router, which consists of 3 simple steps:
@@ -1228,7 +1228,7 @@ It also means that you could expose these same configuration options via JMX (se
[[dynamic-routers-control-bus]]
===== Manage Router Mappings using the Control Bus
One way to manage the router mappings is through the http://www.eaipatterns.com/ControlBus.html[Control Bus] pattern which exposes a Control Channel where you can send control messages to manage and monitor Spring Integration components, including routers.
One way to manage the router mappings is through the https://www.enterpriseintegrationpatterns.com/ControlBus.html[Control Bus] pattern which exposes a Control Channel where you can send control messages to manage and monitor Spring Integration components, including routers.
NOTE: For more information about the Control Bus, please see chapter _<<control-bus>>_.
@@ -1270,7 +1270,7 @@ NOTE: For more information about Spring Integration's JMX support, please see ch
[[routing-slip]]
===== Routing Slip
Starting with _version 4.1_, Spring Integration provides an implementation of the http://www.eaipatterns.com/RoutingTable.html[Routing Slip] Enterprise Integration Pattern.
Starting with _version 4.1_, Spring Integration provides an implementation of the https://www.enterpriseintegrationpatterns.com/RoutingTable.html[Routing Slip] Enterprise Integration Pattern.
It is implemented as a `routingSlip` message header which is used to determine the next channel in `AbstractMessageProducingHandler` s, when an `outputChannel` isn't specified for the endpoint.
This pattern is useful in complex, dynamic, cases when it can become difficult to configure multiple routers to determine message flow.
When a message arrives at an endpoint that has no `output-channel`, the `routingSlip` is consulted to determine the next channel to which the message will be sent.
@@ -1363,7 +1363,7 @@ The `routingSlipIndex` remains unchanged.
[[process-manager]]
===== Process Manager Enterprise Integration Pattern
The EIP also defines the http://www.eaipatterns.com/ProcessManager.html[Process Manager] pattern.
The EIP also defines the https://www.enterpriseintegrationpatterns.com/ProcessManager.html[Process Manager] pattern.
This pattern can now easily be implemented using custom _Process Manager_ logic encapsulated in a `RoutingSlipRouteStrategy` within the routing slip.
In addition to a bean name, the `RoutingSlipRouteStrategy` can return any `MessageChannel` object; and there is no requirement that this `MessageChannel` instance is a bean in the application context.
This way, we can provide powerful dynamic routing logic, when there is no prediction which channel should be used; a `MessageChannel` can be created within the `RoutingSlipRouteStrategy` and returned.

View File

@@ -25,11 +25,11 @@ https://github.com/SpringSource/spring-integration-samples[https://github.com/Sp
In order to check out or _clone_ (Git parlance) the samples, please make sure you have a Git client installed on your system.
There are several GUI-based products available for many platforms, e.g.
http://eclipse.org/egit/[EGit] for the Eclipse IDE.
https://eclipse.org/egit/[EGit] for the Eclipse IDE.
A simple Google search will help you find them.
Of course you can also just use the command line interface for <<http://git-scm.com/,Git>>.
Of course you can also just use the command line interface for <<https://git-scm.com/,Git>>.
NOTE: If you need more information on how to install and/or use Git, please visit: http://git-scm.com/[http://git-scm.com/].
NOTE: If you need more information on how to install and/or use Git, please visit: https://git-scm.com/[https://git-scm.com/].
In order to checkout (clone in Git terms) the Spring Integration samples repository using the Git command line tool, issue the following commands:
@@ -51,8 +51,8 @@ $ git pull
_How can I contribute my own Samples?_
Github is for social coding: if you want to submit your own code examples to the Spring Integration Samples project, we encourage contributions through http://help.github.com/send-pull-requests/[_pull
requests_] from http://help.github.com/fork-a-repo/[_forks_] of this repository.
Github is for social coding: if you want to submit your own code examples to the Spring Integration Samples project, we encourage contributions through https://help.github.com/send-pull-requests/[_pull
requests_] from https://help.github.com/fork-a-repo/[_forks_] of this repository.
If you want to contribute code this way, please reference, if possible, ahttps://jira.springframework.org/browse/INTSAMPLES[_JIRA Ticket_] that provides some details regarding the provided sample.
[IMPORTANT]
@@ -141,7 +141,7 @@ In this section you'll find details on samples that we believe require special a
[[samples-loan-broker]]
==== Loan Broker
In this section, we will review the _Loan Broker_ sample application that is included in the Spring Integration samples. This sample is inspired by one of the samples featured in Gregor Hohpe and Bobby Woolf's book, http://www.eaipatterns.com[Enterprise Integration Patterns].
In this section, we will review the _Loan Broker_ sample application that is included in the Spring Integration samples. This sample is inspired by one of the samples featured in Gregor Hohpe and Bobby Woolf's book, https://www.enterpriseintegrationpatterns.com/[Enterprise Integration Patterns].
The diagram below represents the entire process
@@ -288,7 +288,7 @@ It should not require change in design, testing and deployment strategy if such
[[samples-cafe]]
==== The Cafe Sample
In this section, we will review a _Cafe_ sample application that is included in the Spring Integration samples. This sample is inspired by another sample featured in Gregor Hohpe's http://www.eaipatterns.com/ramblings.html[Ramblings].
In this section, we will review a _Cafe_ sample application that is included in the Spring Integration samples. This sample is inspired by another sample featured in Gregor Hohpe's https://www.enterpriseintegrationpatterns.com/ramblings.html[Ramblings].
The domain is that of a Cafe, and the basic flow is depicted in the following diagram:
@@ -311,11 +311,11 @@ Here is the XML configuration:
xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:int-stream="http://www.springframework.org/schema/integration/stream"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/stream
http://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd">
https://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd">
<int:gateway id="cafe" service-interface="o.s.i.samples.cafe.Cafe"/>

View File

@@ -4,7 +4,7 @@
[[scatter-gather-introduction]]
==== Introduction
Starting with _version 4.1_, Spring Integration provides an implementation of the http://www.eaipatterns.com/BroadcastAggregate.html[Scatter-Gather] Enterprise Integration Pattern.
Starting with _version 4.1_, Spring Integration provides an implementation of the https://www.enterpriseintegrationpatterns.com/BroadcastAggregate.html[Scatter-Gather] Enterprise Integration Pattern.
It is a compound endpoint, where the goal is to send a message to the recipients and aggregate the results.
Quoting the EIP Book, it is a component for scenarios like _best quote_, when we need to request information from several suppliers and decide which one provides us with the best term for the requested item.

View File

@@ -1,16 +1,16 @@
[[scripting]]
=== Scripting support
With Spring Integration 2.1 we've added support for the http://jcp.org/aboutJava/communityprocess/pr/jsr223/[JSR223 Scripting for Java specification], introduced in Java version 6.
With Spring Integration 2.1 we've added support for the https://jcp.org/aboutJava/communityprocess/pr/jsr223/[JSR223 Scripting for Java specification], introduced in Java version 6.
This allows you to use scripts written in any supported language including Ruby/JRuby, Javascript and Groovy to provide the logic for various integration components similar to the way the Spring Expression Language (SpEL) is used in Spring Integration.
For more information about JSR223 please refer to the http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/[documentation]
For more information about JSR223 please refer to the https://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/[documentation]
IMPORTANT: Note that this feature requires Java 6 or higher.
Sun developed a JSR223 reference implementation which works with Java 5 but it is not officially supported and we have not tested it with Spring Integration.
In order to use a JVM scripting language, a JSR223 implementation for that language must be included in your class path.
Java 6 natively supports Javascript.
The http://www.groovy-lang.org/[Groovy] and http://jruby.org/[JRuby] projects provide JSR233 support in their standard distribution.
The http://www.groovy-lang.org/[Groovy] and https://www.jruby.org[JRuby] projects provide JSR233 support in their standard distribution.
Other language implementations may be available or under development.
Please refer to the appropriate project website for more information.

View File

@@ -12,7 +12,7 @@ with any type of data in the message's `payload`.
We can either trust all those messages or _secure_ our service against "infecting" messages.
Spring Integration together with
http://projects.spring.io/spring-security/[Spring Security] provide a simple and comprehensive way to
https://projects.spring.io/spring-security/[Spring Security] provide a simple and comprehensive way to
secure message channels, as well as other part of the integration solution.
[[securing-channels]]
@@ -36,13 +36,13 @@ The pattern is a `java.util.regexp.Pattern`.
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:security="http://www.springframework.org/schema/security"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/security
http://www.springframework.org/schema/security/spring-security.xsd
https://www.springframework.org/schema/security/spring-security.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/security
http://www.springframework.org/schema/integration/security/spring-integration-security.xsd">
https://www.springframework.org/schema/integration/security/spring-integration-security.xsd">
<int-security:secured-channels>
<int-security:access-policy pattern="admin.*" send-access="ROLE_ADMIN"/>
@@ -157,7 +157,7 @@ This means that, when the thread that processes the handed-off message, complete
(successfully or otherwise), the context is cleared so that it can't be inadvertently be used when processing another
message.
NOTE: When working with <<async-gateway,Asynchronous Gateway>>, you should use an appropriate `AbstractDelegatingSecurityContextSupport` implementation from Spring Security http://docs.spring.io/spring-security/site/docs/current/reference/html/concurrency.html[Concurrency Support], when security context propagation should be ensured over gateway invocation:
NOTE: When working with <<async-gateway,Asynchronous Gateway>>, you should use an appropriate `AbstractDelegatingSecurityContextSupport` implementation from Spring Security https://docs.spring.io/spring-security/site/docs/current/reference/html/concurrency.html[Concurrency Support], when security context propagation should be ensured over gateway invocation:
[source,java]
----

View File

@@ -109,7 +109,7 @@ If you inadvertently reference the same message handler from multiple beans, you
_Service Activators and the Spring Expression Language (SpEL)_
Since Spring Integration 2.0, Service Activators can also benefit from SpEL (http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/expressions.html).
Since Spring Integration 2.0, Service Activators can also benefit from SpEL (https://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/expressions.html).
For example, you may now invoke any bean method without pointing to the bean via a `ref` attribute or including it as an inner bean definition.
For example:

View File

@@ -16,7 +16,7 @@ Spring Integration supports sending and receiving files over SFTP by providing t
----
xmlns:int-sftp="http://www.springframework.org/schema/integration/sftp"
xsi:schemaLocation="http://www.springframework.org/schema/integration/sftp
http://www.springframework.org/schema/integration/sftp/spring-integration-sftp.xsd"
https://www.springframework.org/schema/integration/sftp/spring-integration-sftp.xsd"
----
[[sftp-session-factory]]
@@ -63,12 +63,12 @@ Please also see <<sftp-jsch-logging>>.
Now all you need to do is inject this _SFTP Session Factory_ into your adapters.
NOTE: A more practical way to provide values for the _SFTP Session Factory_ would be via Spring's http://static.springsource.org/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-placeholderconfigurer[property placeholder support].
NOTE: A more practical way to provide values for the _SFTP Session Factory_ would be via Spring's https://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-factory-placeholderconfigurer[property placeholder support].
[[sftp-session-factory-properties]]
==== Configuration Properties
Below you will find all properties that are exposed by the http://static.springsource.org/spring-integration/api/org/springframework/integration/sftp/session/DefaultSftpSessionFactory.html[DefaultSftpSessionFactory].
Below you will find all properties that are exposed by the https://docs.spring.io/spring-integration/api/org/springframework/integration/sftp/session/DefaultSftpSessionFactory.html[DefaultSftpSessionFactory].
*isSharedSession (constructor argument)*
@@ -84,7 +84,7 @@ It's default depends on the underlying JSch version but it will look like:_SSH-2
If `true`, all threads will be daemon threads.
If set to `false`, normal non-daemon threads will be used instead.
This property will be set on the underlying http://epaul.github.io/jsch-documentation/javadoc/com/jcraft/jsch/Session.html[Session].
This property will be set on the underlying https://epaul.github.io/jsch-documentation/javadoc/com/jcraft/jsch/Session.html[Session].
There, this property will default to `false`, if not explicitly set.
*host*
@@ -116,7 +116,7 @@ If specified, this properties must be a positive number.
*privateKey*
Allows you to set a http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/Resource.html[Resource],
Allows you to set a https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/Resource.html[Resource],
which represents the location of the private key used for authenticating against the remote host.
If the _privateKey_ is not provided, then the _password_ property is mandatory.
@@ -128,7 +128,7 @@ Optional.
*proxy*
Allows for specifying a JSch-based http://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/Proxy.html[Proxy].
Allows for specifying a JSch-based https://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/Proxy.html[Proxy].
If set, then the proxy object is used to create the connection to the remote host via the proxy.
See <<sftp-proxy-factory-bean>> for a convenient way to configure the proxy.
@@ -147,7 +147,7 @@ Using `Properties`, you can set additional configuration setting on the underlyi
*socketFactory*
Allows you to pass in a http://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/SocketFactory.html[SocketFactory].
Allows you to pass in a https://epaul.github.com/jsch-documentation/javadoc/com/jcraft/jsch/SocketFactory.html[SocketFactory].
The socket factory is used to create a socket to the target host.
When a proxy is used, the socket factory is passed to the proxy.
By default plain TCP sockets are used.
@@ -287,7 +287,7 @@ Starting with _Spring Integration version 3.0_, a new abstraction is provided ov
The template provides methods to send, retrieve (as an `InputStream`), remove, and rename files.
In addition an `execute` method is provided allowing the caller to execute multiple operations on the session.
In all cases, the template takes care of reliably closing the session.
For more information, refer to the http://docs.spring.io/spring-integration/api/org/springframework/integration/file/remote/RemoteFileTemplate.html[javadocs for `RemoteFileTemplate`] There is a subclass for SFTP: `SftpRemoteFileTemplate`.
For more information, refer to the https://docs.spring.io/spring-integration/api/org/springframework/integration/file/remote/RemoteFileTemplate.html[javadocs for `RemoteFileTemplate`] There is a subclass for SFTP: `SftpRemoteFileTemplate`.
Additional methods were added in _version 4.1_ including `getClientInstance()` which provides access to the underlying `ChannelSftp` enabling access to low-level APIs.

View File

@@ -5,7 +5,7 @@
=== Introduction
Many Spring Integration components can be configured using expressions.
These expressions are written in the http://static.springsource.org/spring-framework/docs/current/spring-framework-reference/html/expressions.html[Spring Expression Language].
These expressions are written in the https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/expressions.html[Spring Expression Language].
In most cases, the _#root_ object is the `Message` which, of course, has two properties - `headers` and `payload` - allowing such expressions as `payload`, `payload.foo`, `headers['my.header']` etc.
@@ -79,7 +79,7 @@ In the following example, SpEL expressions will always use the bean factory's cl
=== SpEL Functions
Namespace support is provided for easy addition of SpEL custom functions.
You can specify `<spel-function/>` components to provide http://static.springsource.org/spring-framework/docs/current/spring-framework-reference/html/expressions.html#expressions-ref-functions[custom SpEL functions] to the `EvaluationContext` used throughout the framework.
You can specify `<spel-function/>` components to provide https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/html/expressions.html#expressions-ref-functions[custom SpEL functions] to the `EvaluationContext` used throughout the framework.
Instead of configuring the factory bean above, simply add one or more of these components and the framework will automatically add them to the default _integrationEvaluationContext_ factory bean.
For example, assuming we have a useful static method to evaluate XPath:
@@ -124,7 +124,7 @@ Spring Integration provides some standard functions, which are registered with t
*#jsonPath* - to evaluate a 'jsonPath' on some provided object.
This function invokes `JsonPathUtils.evaluate(...)`.
This static method delegates to the http://code.google.com/p/json-path[Jayway JsonPath library].
This static method delegates to the https://code.google.com/p/json-path[Jayway JsonPath library].
The following shows some usage examples:
[source,xml]
----
@@ -153,7 +153,7 @@ For more information regarding xml and xpath see <<xml>>.
[[spel-property-accessors]]
=== PropertyAccessors
Namespace support is provided for the easy addition of SpEL custom http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/expression/PropertyAccessor.html[`PropertyAccessor`] implementations.
Namespace support is provided for the easy addition of SpEL custom https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/expression/PropertyAccessor.html[`PropertyAccessor`] implementations.
You can specify the `<spel-property-accessors/>` component to provide a list of custom `PropertyAccessor` s to the `EvaluationContext` used throughout the framework.
Instead of configuring the factory bean above, simply add one or more of these components, and the framework will automatically add the accessors to the default _integrationEvaluationContext_ factory bean:

View File

@@ -10,7 +10,7 @@ Very often, they are upstream producers in a pipeline that includes an Aggregato
==== Programming model
The API for performing splitting consists of one base class, `AbstractMessageSplitter`, which is a `MessageHandler` implementation, encapsulating features which are common to splitters, such as filling in the appropriate message headers `CORRELATION_ID`, `SEQUENCE_SIZE`, and `SEQUENCE_NUMBER` on the messages that are produced.
This enables tracking down the messages and the results of their processing (in a typical scenario, these headers would be copied over to the messages that are produced by the various transforming endpoints), and use them, for example, in a http://www.eaipatterns.com/DistributionAggregate.html[Composed Message Processor] scenario.
This enables tracking down the messages and the results of their processing (in a typical scenario, these headers would be copied over to the messages that are produced by the various transforming endpoints), and use them, for example, in a https://www.enterpriseintegrationpatterns.com/DistributionAggregate.html[Composed Message Processor] scenario.
An excerpt from `AbstractMessageSplitter` can be seen below:

View File

@@ -8,7 +8,7 @@ Spring Integration _version 4.2_ introduced _STOMP Client_ support.
It is based on the architecture, infrastructure and API from the Spring Framework's _messaging_ module, _stomp_ package.
Many of Spring STOMP components (e.g. `StompSession` or `StompClientSupport`)
are used within Spring Integration.
For more information, please, refer to the http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html#websocket-stomp-client[Spring Framework STOMP Support]
For more information, please, refer to the https://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html#websocket-stomp-client[Spring Framework STOMP Support]
chapter in the Spring Framework reference manual.
[[stomp-overview]]
@@ -191,11 +191,11 @@ configuration file:
xmlns:int-stomp="http://www.springframework.org/schema/integration/stomp"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/stomp
http://www.springframework.org/schema/integration/stomp/spring-integration-stomp.xsd">
https://www.springframework.org/schema/integration/stomp/spring-integration-stomp.xsd">
...
</beans>
----

View File

@@ -107,9 +107,9 @@ The following schema locations are needed to use it.
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration/stream
http://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd">
https://www.springframework.org/schema/integration/stream/spring-integration-stream.xsd">
----
To configure the inbound channel adapter the following code snippet shows the different configuration options that are supported.

View File

@@ -1,8 +1,8 @@
@import url(http://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,700italic,400,700);
@import url(https://fonts.googleapis.com/css?family=Varela+Round|Open+Sans:400italic,700italic,400,700);
/*! normalize.css v2.1.2 | MIT License | git.io/normalize */
/* ========================================================================== HTML5 display definitions ========================================================================== */
/** Correct `block` display not defined in IE 8/9. */
@import url(http://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css);
@import url(https://cdnjs.cloudflare.com/ajax/libs/font-awesome/3.2.1/css/font-awesome.css);
article, aside, details, figcaption, figure, footer, header, hgroup, main, nav, section, summary { display: block; }
/** Correct `inline-block` display not defined in IE 8/9. */

View File

@@ -6,13 +6,13 @@ Test support is presented by two modules: `spring-integration-test-support` whic
`spring-integration-test-support` (`spring-integration-test` in versions before _5.0_) provides basic, standalone utilities, rules and matchers for unit testing (it also has no dependencies on Spring Integration itself, and is used internally in Framework tests). `spring-integration-test` is aimed to help with integration testing and provides a comprehensive high level API to mock integration components and verify behavior of individual components, including whole integration flows or just parts thereof.
A thorough treatment of testing in the enterprise is beyond the scope of this reference manual.
See the http://www.enterpriseintegrationpatterns.com/docs/TestDrivenEAI.pdf[Test-Driven Development in Enterprise Integration Projects] paper, by Gregor Hohpe and Wendy Istvanick, for a source of ideas and principles for testing your target integration solution.
See the https://www.enterpriseintegrationpatterns.com/docs/TestDrivenEAI.pdf[Test-Driven Development in Enterprise Integration Projects] paper, by Gregor Hohpe and Wendy Istvanick, for a source of ideas and principles for testing your target integration solution.
[[testing-intro]]
=== Introduction
The Spring Integration Test Framework and test utilities are fully based on existing JUnit, Hamcrest and Mockito libraries.
The Application Context interaction is based on the http://docs.spring.io/spring-framework/docs/current/spring-framework-reference/htmlsingle/#testing[Spring Test Framework].
The Application Context interaction is based on the https://docs.spring.io/spring-framework/docs/current/spring-framework-reference/htmlsingle/#testing[Spring Test Framework].
Please, refer to the documentation for those projects for further information.
Thanks to the canonical implementation of the EIP in Spring Integration Framework and its first class citizens like `MessageChannel`, `Endpoint` and `MessageHandler` abstractions and supported out-of-the-box loose coupling principles, we can implement integration solutions of any complexity.

View File

@@ -154,7 +154,7 @@ public interface TransactionSynchronizationProcessor {
}
----
The factory is responsible for creating a http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/support/TransactionSynchronization.html[TransactionSynchronization] object.
The factory is responsible for creating a https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/transaction/support/TransactionSynchronization.html[TransactionSynchronization] object.
You can implement your own, or use the one provided by the framework: `DefaultTransactionSynchronizationFactory`.
This implementation returns a `TransactionSynchronization` that delegates to a default implementation of `TransactionSynchronizationProcessor`, the `ExpressionEvaluatingTransactionSynchronizationProcessor`.
This processor supports three SpEL expressions, _beforeCommitExpression_, _afterCommitExpression_, and _afterRollbackExpression_.

View File

@@ -8,7 +8,7 @@ Message Transformers play a very important role in enabling the loose-coupling o
Rather than requiring every Message-producing component to know what type is expected by the next consumer, Transformers can be added between those components.
Generic transformers, such as one that converts a String to an XML Document, are also highly reusable.
For some systems, it may be best to provide a http://www.eaipatterns.com/CanonicalDataModel.html[Canonical Data Model], but Spring Integration's general philosophy is not to require any particular format.
For some systems, it may be best to provide a https://www.enterpriseintegrationpatterns.com/CanonicalDataModel.html[Canonical Data Model], but Spring Integration's general philosophy is not to require any particular format.
Rather, for maximum flexibility, Spring Integration aims to provide the simplest possible model for extension.
As with the other endpoint types, the use of declarative configuration in XML and/or Annotations enables simple POJOs to be adapted for the role of Message Transformers.
These configuration options will be described below.
@@ -62,7 +62,7 @@ Its `requires-reply` value is FALSE by default, but that can be set to TRUE in o
_Transformers and Spring Expression Language (SpEL)_
Just like Routers, Aggregators and other components, as of Spring Integration 2.0 Transformers can also benefit from SpEL support (http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html) whenever transformation logic is relatively simple.
Just like Routers, Aggregators and other components, as of Spring Integration 2.0 Transformers can also benefit from SpEL support (https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html) whenever transformation logic is relatively simple.
[source,xml]
----
@@ -342,7 +342,7 @@ This will result in a message with no `content-type` header, unless such a heade
Beginning with _version 3.0_, the `ObjectToJsonTransformer` adds headers, reflecting the source type, to the message.
Similarly, the `JsonToObjectTransformer` can use those type headers when converting the JSON to an object.
These headers are mapped in the AMQP adapters so that they are entirely compatible with the Spring-AMQP http://docs.spring.io/spring-amqp/api/[JsonMessageConverter].
These headers are mapped in the AMQP adapters so that they are entirely compatible with the Spring-AMQP https://docs.spring.io/spring-amqp/api/[JsonMessageConverter].
This enables the following flows to work without any special configuration...

View File

@@ -12,7 +12,7 @@ Since _version 4.0_, a search outbound gateway is provided to perform dynamic se
Twitter is a social networking and micro-blogging service that enables its users to send and read messages known as tweets.
Tweets are text-based posts of up to 140 characters displayed on the author's profile page and delivered to the author's subscribers who are known as followers.
IMPORTANT: Versions of Spring Integration prior to 2.1 were dependent upon the http://twitter4j.org[Twitter4J API], but with the release of http://projects.spring.io/spring-social[Spring Social 1.0 GA], Spring Integration, as of version 2.1, now builds directly upon Spring Social's Twitter support, instead of Twitter4J.
IMPORTANT: Versions of Spring Integration prior to 2.1 were dependent upon the http://twitter4j.org/ja/index.html[Twitter4J API], but with the release of https://projects.spring.io/spring-social[Spring Social 1.0 GA], Spring Integration, as of version 2.1, now builds directly upon Spring Social's Twitter support, instead of Twitter4J.
All Twitter endpoints require the configuration of a `TwitterTemplate` because even search operations require an authenticated template.
Spring Integration provides a convenient namespace configuration to define Twitter artifacts.
@@ -21,20 +21,20 @@ You can enable it by adding the following within your XML header.
----
xmlns:int-twitter="http://www.springframework.org/schema/integration/twitter"
xsi:schemaLocation="http://www.springframework.org/schema/integration/twitter
http://www.springframework.org/schema/integration/twitter/spring-integration-twitter.xsd"
https://www.springframework.org/schema/integration/twitter/spring-integration-twitter.xsd"
----
[[twitter-oauth]]
=== Twitter OAuth Configuration
For authenticated operations, Twitter uses OAuth - an authentication protocol that allows users to approve an application to act on their behalf without sharing their password.
More information can be found at http://oauth.net[http://oauth.net] or in this article http://hueniverse.com/oauth[http://hueniverse.com/oauth] from Hueniverse.
Please also see http://dev.twitter.com/pages/oauth_faq[OAuth FAQ] for more information about OAuth and Twitter.
More information can be found at https://oauth.net[https://oauth.net] or in this article https://hueniverse.com/oauth[https://hueniverse.com/oauth] from Hueniverse.
Please also see https://dev.twitter.com/pages/oauth_faq[OAuth FAQ] for more information about OAuth and Twitter.
In order to use OAuth authentication/authorization with Twitter you must create a new Application on the Twitter Developers site.
Follow the directions below to create a new application and obtain consumer keys and an access token:
* Go to http://dev.twitter.com[http://dev.twitter.com]
* Go to https://dev.twitter.com[https://dev.twitter.com]
* Click on the `Register an app` link and fill out all required fields on the form provided; set `Application Type` to `Client` and depending on the nature of your application select `Default Access Type` as _Read & Write_ or _Read-only_ and Submit the form.
If everything is successful you'll be presented with the `Consumer Key` and `Consumer Secret`.
@@ -94,7 +94,7 @@ Then, you can configure a `property-placeholder` to point to the above property
=== Twitter Inbound Adapters
Twitter inbound adapters allow you to receive Twitter Messages.
There are several types of http://support.twitter.com/articles/119138-types-of-tweets-and-where-they-appear[twitter messages, or tweets]
There are several types of https://support.twitter.com/articles/119138-types-of-tweets-and-where-they-appear[twitter messages, or tweets]
_Spring Integration version 2.0 and above_ provides support for receiving tweets as _Timeline Updates_, _Direct Messages_, _Mention Messages_ as well as Search Results.
@@ -215,7 +215,7 @@ This adapter allows you to send regular status updates by simply sending a Messa
The only extra configuration that is required for this adapter is the `twitter-template` reference.
Starting with _version 4.0_ the `<int-twitter:outbound-channel-adapter>` supports a `tweet-data-expression` to populate the `TweetData` argument (http://projects.spring.io/spring-social-twitter/[Spring Social Twitter]) using the message as the root object of the expression evaluation context.
Starting with _version 4.0_ the `<int-twitter:outbound-channel-adapter>` supports a `tweet-data-expression` to populate the `TweetData` argument (https://projects.spring.io/spring-social-twitter/[Spring Social Twitter]) using the message as the root object of the expression evaluation context.
The result can be a `String`, which will be used for the `TweetData` message; a `Tweet` object, the `text` of which will be used for the `TweetData` message; or an entire `TweetData` object.
For convenience, the `TweetData` can be built from the expression directly without needing a fully qualified class name:
[source,xml]
@@ -287,7 +287,7 @@ The reply message payload is a collection of `Tweet` objects.
If the search returns no results, the payload is an empty collection.
You can limit the number of tweets and you can page through a larger set of tweets by making multiple calls.
To facilitate this, search reply messages contain a header `twitter_searchMetadata` with its value being a `SearchMetadata` object.
For more information on the `Tweet`, `SearchParameters` and `SearchMetadata` classes, refer to the http://projects.spring.io/spring-social-twitter/[Spring Social Twitter] documentation.
For more information on the `Tweet`, `SearchParameters` and `SearchMetadata` classes, refer to the https://projects.spring.io/spring-social-twitter/[Spring Social Twitter] documentation.
*Configuring the Outbound Gateway*
@@ -311,7 +311,7 @@ For more information on the `Tweet`, `SearchParameters` and `SearchMetadata` cla
<3> A SpEL expression that evaluates to argument(s) for the search.
Default: *"payload"* - in which case the payload can be a `String` (e.g "#springintegration") and the gateway limits the query to 20 tweets, or the payload can be a `SearchParameters` object. +
The expression can also be specified as a http://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-inline-lists[SpEL List].
The expression can also be specified as a https://docs.spring.io/spring/docs/current/spring-framework-reference/html/expressions.html#expressions-inline-lists[SpEL List].
The first element (String) is the query, the remaining elements (Numbers) are `pageSize, sinceId, maxId` respectively - refer to the Spring Social Twitter documentation for more information about these parameters.
When specifying a `SearchParameters` object directly in the SpEL expression, you do not have to fully qualify the class name.
Some examples: +

View File

@@ -9,7 +9,7 @@ It is based on architecture, infrastructure and API from the Spring Framework's
Therefore, many of Spring WebSocket's components (e.g.
`SubProtocolHandler` or `WebSocketClient`) and configuration options (e.g.
`@EnableWebSocketMessageBroker`) can be reused within Spring Integration.
For more information, please, refer to the http://docs.spring.io/spring/docs/current/spring-framework-reference/html/#websocket[Spring Framework WebSocket Support] chapter in the Spring Framework reference manual.
For more information, please, refer to the https://docs.spring.io/spring/docs/current/spring-framework-reference/html/#websocket[Spring Framework WebSocket Support] chapter in the Spring Framework reference manual.
NOTE: Since the Spring Framework WebSocket infrastructure is based on the _Spring Messaging_ foundation and provides a basic Messaging framework based on the same `MessageChannel` s, `MessageHandler` s that Spring Integration uses, and some POJO-method annotation mappings, Spring Integration can be directly involved in a WebSocket flow, even without WebSocket adapters.
For this purpose you can simply configure a Spring Integration `@MessagingGateway` with appropriate annotations:
@@ -117,11 +117,11 @@ To include it in your configuration, simply provide the following namespace decl
xmlns:int-websocket="http://www.springframework.org/schema/integration/websocket"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/websocket
http://www.springframework.org/schema/integration/websocket/spring-integration-websocket.xsd">
https://www.springframework.org/schema/integration/websocket/spring-integration-websocket.xsd">
...
</beans>
----
@@ -232,7 +232,7 @@ Default to `DefaultHandshakeHandler`.
used to process WebSocket messages.
This may be useful for some advanced use cases, for example to allow Spring Security to forcibly close
the WebSocket session when the corresponding HTTP session expires.
See http://docs.spring.io/spring-session/docs/current/reference/html5/#websocket[Spring Session Project]
See https://docs.spring.io/spring-session/docs/current/reference/html5/#websocket[Spring Session Project]
for more information.
<6> See the same option on the `<int-websocket:client-container>`.

View File

@@ -128,11 +128,11 @@ To include it in your configuration, simply provide the following namespace decl
xmlns:int-webflux="http://www.springframework.org/schema/integration/webflux"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/webflux
http://www.springframework.org/schema/integration/webflux/spring-integration-webflux.xsd">
https://www.springframework.org/schema/integration/webflux/spring-integration-webflux.xsd">
...
</beans>
----

View File

@@ -308,7 +308,7 @@ See <<jdbc>> for more information.
==== Metrics Changes
http://micrometer.io/[Micrometer] application monitoring is now supported (since _version 5.0.2_).
https://micrometer.io/[Micrometer] application monitoring is now supported (since _version 5.0.2_).
See <<micrometer-integration>> for more information.
IMPORTANT: Changes were made to the Micrometer `Meters` in _version 5.0.3_ to make them more suitable for use in dimensional systems.

View File

@@ -4,7 +4,7 @@
[[webservices-outbound]]
=== Outbound Web Service Gateways
To invoke a Web Service upon sending a message to a channel, there are two options - both of which build upon the http://projects.spring.io/spring-ws/[Spring Web Services] project: `SimpleWebServiceOutboundGateway` and `MarshallingWebServiceOutboundGateway`.
To invoke a Web Service upon sending a message to a channel, there are two options - both of which build upon the https://projects.spring.io/spring-ws/[Spring Web Services] project: `SimpleWebServiceOutboundGateway` and `MarshallingWebServiceOutboundGateway`.
The former will accept either a `String` or `javax.xml.transform.Source` as the message payload.
The latter provides support for any implementation of the `Marshaller` and `Unmarshaller` interfaces.
Both require a Spring Web Services `DestinationProvider` for determining the URI of the Web Service to be called.
@@ -19,11 +19,11 @@ Both require a Spring Web Services `DestinationProvider` for determining the URI
NOTE: When using the namespace support described below, you will only need to set a URI.
Internally, the parser will configure a fixed URI `DestinationProvider` implementation.
If you do need dynamic resolution of the URI at runtime, however, then the `DestinationProvider` can provide such behavior as looking up the URI from a registry.
See the Spring Web Services http://docs.spring.io/spring-ws/docs/current/api/org/springframework/ws/client/support/destination/DestinationProvider.html[DestinationProvider] JavaDoc for more information about this strategy.
See the Spring Web Services https://docs.spring.io/spring-ws/docs/current/api/org/springframework/ws/client/support/destination/DestinationProvider.html[DestinationProvider] JavaDoc for more information about this strategy.
Starting with _version 5.0_ the `SimpleWebServiceOutboundGateway` and `MarshallingWebServiceOutboundGateway` can be supplied with an external `WebServiceTemplate` instance, which may be configured for any custom properties, including `checkConnectionForFault` allowing your application to deal with non-conforming services.
For more detail on the inner workings, see the Spring Web Services reference guide's chapter covering http://docs.spring.io/spring-ws/docs/current/reference/html/client.html[client access] as well as the chapter covering http://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html[Object/XML mapping].
For more detail on the inner workings, see the Spring Web Services reference guide's chapter covering https://docs.spring.io/spring-ws/docs/current/reference/html/client.html[client access] as well as the chapter covering https://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html[Object/XML mapping].
[[webservices-inbound]]
=== Inbound Web Service Gateways
@@ -46,8 +46,8 @@ If the incoming web service message is a SOAP message the SOAP Action header wil
Both gateways implement the Spring Web Services `MessageEndpoint` interface, so they can be configured with a `MessageDispatcherServlet` as per standard Spring Web Services configuration.
For more detail on how to use these components, see the Spring Web Services reference guide's chapter covering http://docs.spring.io/spring-ws/docs/current/reference/html/server.html[creating a Web Service].
The chapter covering http://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html[Object/XML mapping] is also applicable again.
For more detail on how to use these components, see the Spring Web Services reference guide's chapter covering https://docs.spring.io/spring-ws/docs/current/reference/html/server.html[creating a Web Service].
The chapter covering https://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html[Object/XML mapping] is also applicable again.
To include the `SimpleWebServiceInboundGateway` and `MarshallingWebServiceInboundGateway` configurations to the Spring WS
infrastructure you should add the `EndpointMapping` definition between `MessageDispatcherServlet` and the target
@@ -64,7 +64,7 @@ The beans for these classes must be specified in the application context referen
`SimpleWebServiceInboundGateway` and/or `MarshallingWebServiceInboundGateway` bean definitions according to the WS
mapping algorithm.
Please, refer to the http://docs.spring.io/spring-ws/docs/current/reference/html/server.html#server-endpoint-mapping[Endpoint mappings]
Please, refer to the https://docs.spring.io/spring-ws/docs/current/reference/html/server.html#server-endpoint-mapping[Endpoint mappings]
for the more information.
[[webservices-namespace]]
@@ -75,7 +75,7 @@ To configure an outbound Web Service Gateway, use the "outbound-gateway" element
----
<int-ws:outbound-gateway id="simpleGateway"
request-channel="inputChannel"
uri="http://example.org"/>
uri="https://example.org"/>
----
NOTE: Notice that this example does not provide a 'reply-channel'.
@@ -100,7 +100,7 @@ For outbound:
----
<int-ws:outbound-gateway id="marshallingGateway"
request-channel="requestChannel"
uri="http://example.org"
uri="https://example.org"
marshaller="someMarshaller"
unmarshaller="someUnmarshaller"/>
----
@@ -132,12 +132,12 @@ Starting with _version 5.0_ the `web-service-template` reference attribute is pr
[[outbound-uri]]
=== Outbound URI Configuration
For all URI-schemes supported by Spring Web Services (http://docs.spring.io/spring-ws/docs/current/reference/html/client.html#client-transports[URIs and Transports]) `<uri-variable/>` substitution is provided:
For all URI-schemes supported by Spring Web Services (https://docs.spring.io/spring-ws/docs/current/reference/html/client.html#client-transports[URIs and Transports]) `<uri-variable/>` substitution is provided:
[source,xml]
----
<ws:outbound-gateway id="gateway" request-channel="input"
uri="http://springsource.org/{foo}-{bar}">
uri="https://springsource.org/{foo}-{bar}">
<ws:uri-variable name="foo" expression="payload.substring(1,7)"/>
<ws:uri-variable name="bar" expression="headers.x"/>
</ws:outbound-gateway>
@@ -155,7 +155,7 @@ If a `DestinationProvider` is supplied, variable substitution is not supported a
_Controlling URI Encoding_
By default, the URL string is encoded (see http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/util/UriComponentsBuilder.html[UriComponentsBuilder]) to the URI object before sending the request.
By default, the URL string is encoded (see https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/util/UriComponentsBuilder.html[UriComponentsBuilder]) to the URI object before sending the request.
In some scenarios with a non-standard URI it is undesirable to perform the encoding.
Since _version 4.1_ the `<ws:outbound-gateway/>` provides an `encode-uri` attribute.
To disable encoding the URL, this attribute should be set to `false` (by default it is `true`).
@@ -176,7 +176,7 @@ Note, `encode-uri` is ignored, if `DestinationProvider` is supplied.
The Spring Integration WebService Gateways will map the SOAP Action header automatically.
It will be copied by default to and from Spring Integration `MessageHeaders` using the
http://docs.spring.io/spring-integration/api/org/springframework/integration/ws/DefaultSoapHeaderMapper.html[DefaultSoapHeaderMapper].
https://docs.spring.io/spring-integration/api/org/springframework/integration/ws/DefaultSoapHeaderMapper.html[DefaultSoapHeaderMapper].
Of course, you can pass in your own implementation of SOAP specific header mappers, as the gateways have respective
properties to support that.

View File

@@ -41,11 +41,11 @@ A typical setup is shown below:
xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-xml="http://www.springframework.org/schema/integration/xml"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
https://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration.xsd
https://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/xml
http://www.springframework.org/schema/integration/xml/spring-integration-xml.xsd">
https://www.springframework.org/schema/integration/xml/spring-integration-xml.xsd">
</beans>
----
@@ -58,9 +58,9 @@ Each of those components will either reference an XPath Expression that has been
All forms of XPath expressions result in the creation of an `XPathExpression` using the Spring `org.springframework.xml.xpath.XPathExpressionFactory`.
When creating XPath expressions, the best XPath implementation that is available on the classpath is being used, either JAXP 1.3+ or Jaxen, whereby JAXP is preferred.
NOTE: Spring Integration under the covers uses the XPath functionality as provided by the _Spring Web Services_ project (http://www.spring.io/spring-ws).
NOTE: Spring Integration under the covers uses the XPath functionality as provided by the _Spring Web Services_ project (https://www.spring.io/spring-ws).
Specifically, Spring Web Services' XML module (spring-xml-x.x.x.jar) is being used.
Therefore, for a deeper understanding, please refer to the respective documentation as well at: http://docs.spring.io/spring-ws/docs/current/reference/html/common.html#xpath
Therefore, for a deeper understanding, please refer to the respective documentation as well at: https://docs.spring.io/spring-ws/docs/current/reference/html/common.html#xpath
Here is an overview of all available configuration parameters of the `xpath-expression` element:
@@ -220,7 +220,7 @@ The following XPath Expression will match against the XML document above:
[source,xml]
----
<int-xml:xpath-expression expression="/:order/:orderItem"
ns-prefix="" ns-uri="http://www.example.org/prodcuts"/>
ns-prefix="" ns-uri="https://www.example.org/prodcuts"/>
----
Of course you can also provide any other arbitrarily chosen namespace prefix.
@@ -229,11 +229,11 @@ The following XPath expression using the _myorder_ namespace prefix will match a
[source,xml]
----
<int-xml:xpath-expression expression="/myorder:order/myorder:orderItem"
ns-prefix="myorder" ns-uri="http://www.example.org/prodcuts"/>
ns-prefix="myorder" ns-uri="https://www.example.org/prodcuts"/>
----
It is important to remember that the namespace URI is the really important piece of information to declare, not the prefix itself.
The http://jaxen.codehaus.org/faq.html[Jaxen FAQ] summarizes the point very well:
The https://jaxen.codehaus.org/faq.html[Jaxen FAQ] summarizes the point very well:
[quote]
In XPath 1.0, all unprefixed names are unqualified.
@@ -258,22 +258,22 @@ This section will explain the workings of the following transformers and how to
All of the provided XML transformers extend http://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/AbstractTransformer.html[AbstractTransformer] or http://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/AbstractPayloadTransformer.html[AbstractPayloadTransformer] and therefore implement http://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/Transformer.html[Transformer].
When configuring XML transformers as beans in Spring Integration, you would normally configure the _Transformer_ in conjunction with a http://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/MessageTransformingHandler.html[MessageTransformingHandler].
All of the provided XML transformers extend https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/AbstractTransformer.html[AbstractTransformer] or https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/AbstractPayloadTransformer.html[AbstractPayloadTransformer] and therefore implement https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/Transformer.html[Transformer].
When configuring XML transformers as beans in Spring Integration, you would normally configure the _Transformer_ in conjunction with a https://docs.spring.io/spring-integration/api/org/springframework/integration/transformer/MessageTransformingHandler.html[MessageTransformingHandler].
This allows the transformer to be used as an _Endpoint_.
Finally, the namespace support will be discussed, which allows for the simple configuration of the transformers as elements in XML.
[[xml-unmarshalling-transformer]]
===== UnmarshallingTransformer
An http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/UnmarshallingTransformer.html[UnmarshallingTransformer] allows an XML `Source` to be unmarshalled using implementations of the http://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html[Spring OXM] `Unmarshaller`.
Spring's Object/XML Mapping support provides several implementations supporting marshalling and unmarshalling using http://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding[JAXB], http://www.castor.org/[Castor] and http://jibx.sourceforge.net/[JiBX] amongst others.
An https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/UnmarshallingTransformer.html[UnmarshallingTransformer] allows an XML `Source` to be unmarshalled using implementations of the https://docs.spring.io/spring/docs/current/spring-framework-reference/html/oxm.html[Spring OXM] `Unmarshaller`.
Spring's Object/XML Mapping support provides several implementations supporting marshalling and unmarshalling using https://en.wikipedia.org/wiki/Java_Architecture_for_XML_Binding[JAXB], https://castor-data-binding.github.io/castor/reference-guide/reference/xml/xml-framework.html[Castor] and https://en.wikipedia.org/wiki/JiBX[JiBX] amongst others.
The unmarshaller requires an instance of `Source`.
If the message payload is not an instance of `Source`, conversion will be attempted.
Currently `String`, `File` and `org.w3c.dom.Document` payloads are supported.
Custom conversion to a `Source` is also supported by injecting an implementation of a http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/SourceFactory.html[SourceFactory].
Custom conversion to a `Source` is also supported by injecting an implementation of a https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/SourceFactory.html[SourceFactory].
NOTE: If a `SourceFactory` is not set explicitly, the property on the `UnmarshallingTransformer` will by default be set to a http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/DomSourceFactory.html[DomSourceFactory].
NOTE: If a `SourceFactory` is not set explicitly, the property on the `UnmarshallingTransformer` will by default be set to a https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/DomSourceFactory.html[DomSourceFactory].
Starting with _version 5.0_, the `UnmarshallingTransformer` also supports an `org.springframework.ws.mime.MimeMessage` as the incoming payload.
This can be useful in scenarios when we receive a raw `WebServiceMessage` via SOAP with MTOM attachments.
@@ -293,7 +293,7 @@ See <<mtom-support>> for more information.
[[xml-marshalling-transformer]]
===== MarshallingTransformer
The http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/MarshallingTransformer.html[MarshallingTransformer] allows an object graph to be converted into XML using a Spring OXM `Marshaller`.
The https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/MarshallingTransformer.html[MarshallingTransformer] allows an object graph to be converted into XML using a Spring OXM `Marshaller`.
By default the `MarshallingTransformer` will return a `DomResult`.
However, the type of result can be controlled by configuring an alternative `ResultFactory` such as `StringResultFactory`.
In many cases it will be more convenient to transform the payload into an alternative XML format.
@@ -320,20 +320,20 @@ That may be useful for certain custom implementations of the `Marshaller` interf
[[xml-xslt-payload-transformers]]
===== XsltPayloadTransformer
http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/XsltPayloadTransformer.html[XsltPayloadTransformer] transforms XML payloads using http://en.wikipedia.org/wiki/XSL_Transformations[Extensible Stylesheet Language Transformations] (XSLT).
The transformer's constructor requires an instance of either http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/Resource.html[Resource] or http://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Templates.html[Templates] to be passed in.
https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/XsltPayloadTransformer.html[XsltPayloadTransformer] transforms XML payloads using https://en.wikipedia.org/wiki/XSL_Transformations[Extensible Stylesheet Language Transformations] (XSLT).
The transformer's constructor requires an instance of either https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/io/Resource.html[Resource] or https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Templates.html[Templates] to be passed in.
Passing in a `Templates` instance allows for greater configuration of the `TransformerFactory` used to create the template instance.
As with the link:#xml-unmarshalling-transformer[UnmarshallingTransformer], the `XsltPayloadTransformer` will do the actual XSLT transformation using instances of `Source`.
Therefore, if the message payload is not an instance of `Source`, conversion will be attempted.
`String` and `Document` payloads are supported directly.
Custom conversion to a `Source` is also supported by injecting an implementation of a http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/SourceFactory.html[SourceFactory].
Custom conversion to a `Source` is also supported by injecting an implementation of a https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/SourceFactory.html[SourceFactory].
NOTE: If a `SourceFactory` is not set explicitly, the property on the `XsltPayloadTransformer` will by default be set to a http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/DomSourceFactory.html[DomSourceFactory].
NOTE: If a `SourceFactory` is not set explicitly, the property on the `XsltPayloadTransformer` will by default be set to a https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/DomSourceFactory.html[DomSourceFactory].
By default, the `XsltPayloadTransformer` will create a message with a http://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Result.html[Result] payload, similar to the `XmlPayloadMarshallingTransformer`.
This can be customised by providing a http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/ResultFactory.html[ResultFactory] and/or a http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultTransformer.html[ResultTransformer].
By default, the `XsltPayloadTransformer` will create a message with a https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Result.html[Result] payload, similar to the `XmlPayloadMarshallingTransformer`.
This can be customised by providing a https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/ResultFactory.html[ResultFactory] and/or a https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultTransformer.html[ResultTransformer].
[source,xml]
----
@@ -351,27 +351,27 @@ This is configured using the `transformer-factory-class` attribute when using th
[[xml-using-result-transformers]]
===== ResultTransformers
Both the `MarshallingTransformer` and the `XsltPayloadTransformer` allow you to specify a http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultTransformer.html[ResultTransformer].
Thus, if the Marshalling or XSLT transformation returns a http://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Result.html[Result], than you have the option to also use a `ResultTransformer` to transform the `Result` into another format.
Both the `MarshallingTransformer` and the `XsltPayloadTransformer` allow you to specify a https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultTransformer.html[ResultTransformer].
Thus, if the Marshalling or XSLT transformation returns a https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Result.html[Result], than you have the option to also use a `ResultTransformer` to transform the `Result` into another format.
Spring Integration provides 2 concrete`ResultTransformer` implementations:
* http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultToDocumentTransformer.html[ResultToDocumentTransformer]
* https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultToDocumentTransformer.html[ResultToDocumentTransformer]
* http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultToStringTransformer.html[ResultToStringTransformer]
* https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/ResultToStringTransformer.html[ResultToStringTransformer]
_Using ResultTransformers with the MarshallingTransformer_
By default, the _MarshallingTransformer_ will always return a http://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Result.html[Result].
By default, the _MarshallingTransformer_ will always return a https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Result.html[Result].
By specifying a `ResultTransformer`, you can customize the type of payload returned.
_Using ResultTransformers with the XsltPayloadTransformer_
The behavior is slighly more complex for the _XsltPayloadTransformer_.
By default, if the input payload is an instance of `String` or http://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Document.html[Document] the _resultTransformer_ property is ignored.
By default, if the input payload is an instance of `String` or https://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Document.html[Document] the _resultTransformer_ property is ignored.
However, if the input payload is a http://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Source.html[Source] or any other type, then the _resultTransformer_ property is applied.
However, if the input payload is a https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Source.html[Source] or any other type, then the _resultTransformer_ property is applied.
Additionally, you can set the property _alwaysUseResultFactory_ to `true`, which will also cause the specified _resultTransformer_ to being used.
For more information and examples, please see <<xml-using-result-transformers-namespace>>
@@ -427,15 +427,15 @@ Valid values are `StringResult` or `DomResult` (the default).
Where the provided result types are not sufficient, a reference to a custom implementation of `ResultFactory` can be provided as an alternative to setting the `result-type` attribute, using the `result-factory` attribute.
The attributes _result-type_ and _result-factory_ are mutually exclusive.
NOTE: Internally, the result types `StringResult` and `DomResult` are represented by the `ResultFactory` s http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/StringResultFactory.html[StringResultFactory] and http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/DomResultFactory.html[DomResultFactory] respectively.
NOTE: Internally, the result types `StringResult` and `DomResult` are represented by the `ResultFactory` s https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/StringResultFactory.html[StringResultFactory] and https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/result/DomResultFactory.html[DomResultFactory] respectively.
_XsltPayloadTransformer_
Namespace support for the `XsltPayloadTransformer` allows you to either pass in a `Resource`, in order to create the http://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Templates.html[Templates] instance, or alternatively, you can pass in a precreated `Templates` instance as a reference.
Namespace support for the `XsltPayloadTransformer` allows you to either pass in a `Resource`, in order to create the https://docs.oracle.com/javase/6/docs/api/javax/xml/transform/Templates.html[Templates] instance, or alternatively, you can pass in a precreated `Templates` instance as a reference.
In common with the marshalling transformer, the type of the result output can be controlled by specifying either the `result-factory` or `result-type` attribute.
A `result-transformer` attribute can also be used to reference an implementation of `ResultTransformer` where conversion of the result is required before sending.
IMPORTANT: If you specify the `result-factory` or the `result-type` attribute, then the `alwaysUseResultFactory` property on the underlying http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/XsltPayloadTransformer.html[XsltPayloadTransformer] will be set to `true` by the http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/config/XsltPayloadTransformerParser.html[XsltPayloadTransformerParser].
IMPORTANT: If you specify the `result-factory` or the `result-type` attribute, then the `alwaysUseResultFactory` property on the underlying https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/XsltPayloadTransformer.html[XsltPayloadTransformer] will be set to `true` by the https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/config/XsltPayloadTransformerParser.html[XsltPayloadTransformerParser].
[source,xml]
----
@@ -508,8 +508,8 @@ IMPORTANT: If the incoming message's payload is of type `String`, the payload af
Similarly, if the incoming message's payload is of type `Document`, the payload after the Xslt transformation will be a`Document`.
The specified _ResultTransformer_ will be ignored with `String` or `Document` payloads.
If the message payload is neither a `Source`, `String` or `Document`, as a fallback option, it is attempted to create a`Source` using the default http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/SourceFactory.html[SourceFactory].
As we did not specify a `SourceFactory` explicitly using the _source-factory_ attribute, the default http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/DomSourceFactory.html[DomSourceFactory] is used.
If the message payload is neither a `Source`, `String` or `Document`, as a fallback option, it is attempted to create a`Source` using the default https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/SourceFactory.html[SourceFactory].
As we did not specify a `SourceFactory` explicitly using the _source-factory_ attribute, the default https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/source/DomSourceFactory.html[DomSourceFactory] is used.
If successful, the XSLT transformation is executed as if the payload was of type `Source`, which we described in the previous paragraphs.
NOTE: The `DomSourceFactory` supports the creation of a `DOMSource` from a either `Document`, `File` or `String` payloads.
@@ -528,13 +528,13 @@ Thus, you could have also added a reference to a `StringResultFactory`, using th
Because we are using a `ResultFactory`, the _alwaysUseResultFactory_ property of the `XsltPayloadTransformer` class will be implicitly set to `true`.
Consequently, the referenced `ResultToDocumentTransformer` will be used.
Therefore, if you transform a payload of type `String`, the resulting payload will be of type http://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Document.html[Document].
Therefore, if you transform a payload of type `String`, the resulting payload will be of type https://docs.oracle.com/javase/6/docs/api/org/w3c/dom/Document.html[Document].
_XsltPayloadTransformer and <xsl:output method="text"/>_
`<xsl:output method="text"/>` tells the XSLT template to only produce text content from the input source.
In this particular case there is no reason to have a `DomResult`.
Therefore, the http://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/XsltPayloadTransformer.html[XsltPayloadTransformer] defaults to `StringResult` if the http://docs.oracle.com/javase/7/docs/api/javax/xml/transform/Transformer.html#getOutputProperties()[output property] called `method` of the underlying `javax.xml.transform.Transformer` returns `"text"`.
Therefore, the https://docs.spring.io/spring-integration/api/org/springframework/integration/xml/transformer/XsltPayloadTransformer.html[XsltPayloadTransformer] defaults to `StringResult` if the https://docs.oracle.com/javase/7/docs/api/javax/xml/transform/Transformer.html#getOutputProperties()[output property] called `method` of the underlying `javax.xml.transform.Transformer` returns `"text"`.
This coercion is performed independent from the inbound payload type.
Keep in mind that this [quote]
smart behavior is only available, if the `result-type` or `result-factory` attributes aren't provided for the respective `<int-xml:xslt-transformer>` component.
@@ -788,9 +788,9 @@ This means that if the expression selects multiple nodes, it will return the str
For further information, please see:
* http://www.w3.org/TR/xpath/[Specification: XML Path Language (XPath) Version 1.0]
* https://www.w3.org/TR/xpath/[Specification: XML Path Language (XPath) Version 1.0]
* http://www.w3.org/TR/xpath/#function-string[XPath specification - string() function]
* https://www.w3.org/TR/xpath/#function-string[XPath specification - string() function]
=====
For example if we want to route based on the name of the root node, we can use the following configuration:
@@ -1015,7 +1015,7 @@ The following schema types are supported:
* xml-schema (http://www.w3.org/2001/XMLSchema)
* relax-ng (http://relaxng.org/ns/structure/1.0)
* relax-ng (https://relaxng.org/ns/structure/1.0)

View File

@@ -1,7 +1,7 @@
[[xmpp]]
== XMPP Support
Spring Integration provides Channel Adapters for http://www.xmpp.org[XMPP].
Spring Integration provides Channel Adapters for https://www.xmpp.org[XMPP].
[[xmpp-intro]]
=== Introduction
@@ -14,7 +14,7 @@ Within that network, actors may address each other directly, as well as broadcas
XMPP provides the messaging fabric that underlies some of the biggest Instant Messaging networks in the world, including Google Talk (GTalk) - which is also available from within GMail - and Facebook Chat.
There are many good open-source XMPP servers available.
Two popular implementations are http://www.igniterealtime.org/projects/openfire/[_Openfire_] and http://www.ejabberd.im[_ejabberd_]
Two popular implementations are https://www.igniterealtime.org/projects/openfire/[_Openfire_] and https://www.ejabberd.im[_ejabberd_]
Spring integration provides support for XMPP via XMPP adapters which support sending and receiving both XMPP chat messages and presence changes from other entries in your roster.
As with other adapters, the XMPP adapters come with support for a convenient namespace-based configuration.
@@ -23,7 +23,7 @@ To configure the XMPP namespace, include the following elements in the headers o
----
xmlns:int-xmpp="http://www.springframework.org/schema/integration/xmpp"
xsi:schemaLocation="http://www.springframework.org/schema/integration/xmpp
http://www.springframework.org/schema/integration/xmpp/spring-integration-xmpp.xsd"
https://www.springframework.org/schema/integration/xmpp/spring-integration-xmpp.xsd"
----
[[xmpp-connection]]
@@ -221,7 +221,7 @@ In that case, the bean with the name _xmppConnection_ will be located and inject
[[xmpp-advanced]]
=== Advanced Configuration
Since Spring Integration XMPP support is based on the Smack 4.0 API (http://www.igniterealtime.org/projects/smack/), it is important to know a few details related to more complex configuration of the XMPP Connection object.
Since Spring Integration XMPP support is based on the Smack 4.0 API (https://www.igniterealtime.org/projects/smack/), it is important to know a few details related to more complex configuration of the XMPP Connection object.
As stated earlier the `xmpp-connection` namespace support is designed to simplify basic connection configuration and only supports a few common configuration attributes.
However, the `org.jivesoftware.smack.ConnectionConfiguration` object defines about 20 attributes, and there is no real value of adding namespace support for all of them.
@@ -270,14 +270,14 @@ public class CustomConnectionConfiguration {
----
For more information on the JavaConfig style of Application Context configuration, refer to the following section
in the http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-java[Spring Reference Manual].
in the https://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html#beans-java[Spring Reference Manual].
[[xmpp-message-headers]]
=== XMPP Message Headers
The Spring Integration XMPP Adapters will map standard XMPP properties automatically.
These properties will be copied by default to and from Spring Integration `MessageHeaders` using the
http://docs.spring.io/spring-integration/api/org/springframework/integration/xmpp/support/DefaultXmppHeaderMapper.html[DefaultXmppHeaderMapper].
https://docs.spring.io/spring-integration/api/org/springframework/integration/xmpp/support/DefaultXmppHeaderMapper.html[DefaultXmppHeaderMapper].
Any user-defined headers will NOT be copied to or from an XMPP Message, unless explicitly specified by the
_requestHeaderNames_ and/or _replyHeaderNames_ properties of the `DefaultXmppHeaderMapper`.
@@ -334,12 +334,12 @@ Well, you can make up a way to do that, but unless everyone else does it the sam
no other software will be able interpret it (they will just ignore namespaces they don't understand).
So the XMPP Standards Foundation (XSF) publishes a series of extra documents, known as
http://xmpp.org/extensions/xep-0001.html[XMPP Enhancement Proposals] (XEPs).
https://xmpp.org/extensions/xep-0001.html[XMPP Enhancement Proposals] (XEPs).
In general each XEP describes a particular activity (from message formatting, to file transfers, multi-user
chats and many more), and they provide a standard format for everyone to use for that activity.
The Smack API provides many XEP implementations with its `extensions` and `experimental`
http://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/index.html[projects].
https://www.igniterealtime.org/builds/smack/docs/latest/documentation/extensions/index.html[projects].
And starting with Spring Integration _version 4.3_ any XEP can be use with the existing XMPP channel adapters.
To be able to process XEPs or any other custom XMPP extensions, the Smack's `ProviderManager` pre-configuration
@@ -373,13 +373,13 @@ where `mycustom.providers` might be like this:
<iqProvider>
<elementName>query</elementName>
<namespace>http://jabber.org/protocol/disco#items</namespace>
<namespace>https://jabber.org/protocol/disco#items</namespace>
<className>org.jivesoftware.smackx.provider.DiscoverItemsProvider</className>
</iqProvider>
<extensionProvider>
<elementName>subscription</elementName>
<namespace>http://jabber.org/protocol/pubsub</namespace>
<namespace>https://jabber.org/protocol/pubsub</namespace>
<className>org.jivesoftware.smackx.pubsub.provider.SubscriptionProvider</className>
</extensionProvider>
</smackProviders>