Files
spring-integration-samples/basic/barrier/README.md
Artem Bilan cb052d2d98 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://blueprintcss.org (200) with 3 occurrences could not be migrated:
   ([https](https://blueprintcss.org) result AnnotatedConnectException).
* [ ] http://jmesnil.net/ (200) with 1 occurrences could not be migrated:
   ([https](https://jmesnil.net/) result ConnectTimeoutException).
* [ ] http://jtds.sourceforge.net (200) with 1 occurrences could not be migrated:
   ([https](https://jtds.sourceforge.net) result AnnotatedConnectException).
* [ ] http://www.jmesnil.net/stomp-websocket/doc/ (301) with 1 occurrences could not be migrated:
   ([https](https://www.jmesnil.net/stomp-websocket/doc/) result ConnectTimeoutException).
* [ ] http://enfranchisedmind.com/blog/posts/jquery-periodicalupdater-ajax-polling/ (404) with 1 occurrences could not be migrated:
   ([https](https://enfranchisedmind.com/blog/posts/jquery-periodicalupdater-ajax-polling/) result SSLHandshakeException).

# Fixed URLs

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

* [ ] http://smokejumperit.com (301) with 1 occurrences migrated to:
  https://blog.enfranchisedmind.com/posts/author/candide/?coming_from=smokejumperit.com ([https](https://smokejumperit.com) result UnknownHostException).
* [ ] http://sockjs.org (303) with 2 occurrences migrated to:
  https://github.com/sockjs/sockjs-client ([https](https://sockjs.org) result AnnotatedConnectException).
* [ ] http://platform.beta.mapquest.com/traffic/ (UnknownHostException) with 1 occurrences migrated to:
  https://platform.beta.mapquest.com/traffic/ ([https](https://platform.beta.mapquest.com/traffic/) result UnknownHostException).
* [ ] http://en.wikipedia.org/wiki/Caf%C3%A9 (301) with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Caf%25C3%25A9 ([https](https://en.wikipedia.org/wiki/Caf%C3%A9) result 400).
* [ ] http://ws.cdyne.com/WeatherWS/ (403) with 3 occurrences migrated to:
  https://ws.cdyne.com/WeatherWS/ ([https](https://ws.cdyne.com/WeatherWS/) result 403).
* [ ] http://blogs.oracle.com/swinger/entry/collections_trick_i_lru_cache (404) with 1 occurrences migrated to:
  https://blogs.oracle.com/swinger/entry/collections_trick_i_lru_cache ([https](https://blogs.oracle.com/swinger/entry/collections_trick_i_lru_cache) result 404).
* [ ] http://static.springsource.org/spring-integration/docs/latest-ga/reference/html/samples.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/docs/latest-ga/reference/html/samples.html ([https](https://static.springsource.org/spring-integration/docs/latest-ga/reference/html/samples.html) result 404).
* [ ] http://static.springsource.org/spring-integration/reference/html/messaging-routing-chapter.html (301) with 3 occurrences migrated to:
  https://docs.spring.io/spring-integration/reference/html/messaging-routing-chapter.html ([https](https://static.springsource.org/spring-integration/reference/html/messaging-routing-chapter.html) result 404).
* [ ] http://docs.spring.io/spring-integration/reference/html/samples.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/reference/html/samples.html ([https](https://docs.spring.io/spring-integration/reference/html/samples.html) result 404).
* [ ] http://static.springsource.org/spring-integration/reference/htmlsingle/ (301) with 4 occurrences migrated to:
  https://docs.spring.io/spring-integration/reference/htmlsingle/ ([https](https://static.springsource.org/spring-integration/reference/htmlsingle/) result 404).
* [ ] http://xml.apache.org/xslt (404) with 3 occurrences migrated to:
  https://xml.apache.org/xslt ([https](https://xml.apache.org/xslt) result 404).
* [ ] http://customcode.info (503) with 1 occurrences migrated to:
  https://customcode.info ([https](https://customcode.info) result 503).

## 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://activemq.apache.org/ with 1 occurrences migrated to:
  https://activemq.apache.org/ ([https](https://activemq.apache.org/) result 200).
* [ ] http://db.apache.org/derby/ with 1 occurrences migrated to:
  https://db.apache.org/derby/ ([https](https://db.apache.org/derby/) result 200).
* [ ] http://developer.mapquest.com/ with 1 occurrences migrated to:
  https://developer.mapquest.com/ ([https](https://developer.mapquest.com/) result 200).
* [ ] http://docs.oracle.com/javase/tutorial/jmx/mbeans/index.html with 1 occurrences migrated to:
  https://docs.oracle.com/javase/tutorial/jmx/mbeans/index.html ([https](https://docs.oracle.com/javase/tutorial/jmx/mbeans/index.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/ip/tcp/serializer/ByteArrayCrLfSerializer.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/ip/tcp/serializer/ByteArrayCrLfSerializer.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/ip/tcp/serializer/ByteArrayCrLfSerializer.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/ip/tcp/serializer/ByteArrayStxEtxSerializer.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/ip/tcp/serializer/ByteArrayStxEtxSerializer.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/ip/tcp/serializer/ByteArrayStxEtxSerializer.html) result 200).
* [ ] http://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageGroupStoreReaper.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring-integration/api/org/springframework/integration/store/MessageGroupStoreReaper.html ([https](https://static.springsource.org/spring-integration/api/org/springframework/integration/store/MessageGroupStoreReaper.html) result 200).
* [ ] http://static.springsource.org/spring-integration/docs/2.2.0.RC3/reference/htmlsingle/ (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring-integration/docs/2.2.0.RC3/reference/htmlsingle/ ([https](https://static.springsource.org/spring-integration/docs/2.2.0.RC3/reference/htmlsingle/) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/core/convert/ConversionService.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/convert/ConversionService.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/core/convert/ConversionService.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/core/serializer/Deserializer.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/serializer/Deserializer.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/core/serializer/Deserializer.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/core/serializer/Serializer.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/core/serializer/Serializer.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/core/serializer/Serializer.html) result 200).
* [ ] http://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html (301) with 1 occurrences migrated to:
  https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html ([https](https://static.springsource.org/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html) result 200).
* [ ] http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol ([https](https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol) result 200).
* [ ] http://en.wikipedia.org/wiki/Binary_Synchronous_Communications with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Binary_Synchronous_Communications ([https](https://en.wikipedia.org/wiki/Binary_Synchronous_Communications) result 200).
* [ ] http://en.wikipedia.org/wiki/CURL with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/CURL ([https](https://en.wikipedia.org/wiki/CURL) result 200).
* [ ] http://en.wikipedia.org/wiki/Control_character with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Control_character ([https](https://en.wikipedia.org/wiki/Control_character) result 200).
* [ ] http://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol with 2 occurrences migrated to:
  https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol ([https](https://en.wikipedia.org/wiki/Extensible_Messaging_and_Presence_Protocol) result 200).
* [ ] http://en.wikipedia.org/wiki/Java_Message_Service with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Java_Message_Service ([https](https://en.wikipedia.org/wiki/Java_Message_Service) result 200).
* [ ] http://en.wikipedia.org/wiki/Netcat with 2 occurrences migrated to:
  https://en.wikipedia.org/wiki/Netcat ([https](https://en.wikipedia.org/wiki/Netcat) result 200).
* [ ] http://en.wikipedia.org/wiki/Newline with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Newline ([https](https://en.wikipedia.org/wiki/Newline) result 200).
* [ ] http://en.wikipedia.org/wiki/OAuth with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/OAuth ([https](https://en.wikipedia.org/wiki/OAuth) result 200).
* [ ] http://en.wikipedia.org/wiki/SOAP with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/SOAP ([https](https://en.wikipedia.org/wiki/SOAP) result 200).
* [ ] http://en.wikipedia.org/wiki/Telnet with 2 occurrences migrated to:
  https://en.wikipedia.org/wiki/Telnet ([https](https://en.wikipedia.org/wiki/Telnet) result 200).
* [ ] http://en.wikipedia.org/wiki/Transmission_Control_Protocol with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/Transmission_Control_Protocol ([https](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) result 200).
* [ ] http://en.wikipedia.org/wiki/XML with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/XML ([https](https://en.wikipedia.org/wiki/XML) result 200).
* [ ] http://en.wikipedia.org/wiki/XPath with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/XPath ([https](https://en.wikipedia.org/wiki/XPath) result 200).
* [ ] http://en.wikipedia.org/wiki/XSLT with 1 occurrences migrated to:
  https://en.wikipedia.org/wiki/XSLT ([https](https://en.wikipedia.org/wiki/XSLT) result 200).
* [ ] http://hillert.blogspot.com/2011/01/marshal-json-data-using-jackson-in.html with 1 occurrences migrated to:
  https://hillert.blogspot.com/2011/01/marshal-json-data-using-jackson-in.html ([https](https://hillert.blogspot.com/2011/01/marshal-json-data-using-jackson-in.html) result 200).
* [ ] http://hillert.blogspot.com/2011/05/testing-email-notifications-with-apache.html with 1 occurrences migrated to:
  https://hillert.blogspot.com/2011/05/testing-email-notifications-with-apache.html ([https](https://hillert.blogspot.com/2011/05/testing-email-notifications-with-apache.html) result 200).
* [ ] http://james.apache.org/ with 1 occurrences migrated to:
  https://james.apache.org/ ([https](https://james.apache.org/) result 200).
* [ ] http://james.apache.org/server/3/quick-start.html with 1 occurrences migrated to:
  https://james.apache.org/server/3/quick-start.html ([https](https://james.apache.org/server/3/quick-start.html) result 200).
* [ ] http://jquery.com/ with 1 occurrences migrated to:
  https://jquery.com/ ([https](https://jquery.com/) result 200).
* [ ] http://meyerweb.com/eric/tools/dencoder/ with 1 occurrences migrated to:
  https://meyerweb.com/eric/tools/dencoder/ ([https](https://meyerweb.com/eric/tools/dencoder/) result 200).
* [ ] http://projects.spring.io/spring-integration/ with 2 occurrences migrated to:
  https://projects.spring.io/spring-integration/ ([https](https://projects.spring.io/spring-integration/) result 200).
* [ ] http://sizzlejs.com/ with 1 occurrences migrated to:
  https://sizzlejs.com/ ([https](https://sizzlejs.com/) 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/huntchr with 1 occurrences migrated to:
  https://twitter.com/huntchr ([https](https://twitter.com/huntchr) result 200).
* [ ] http://www.360innovate.co.uk with 1 occurrences migrated to:
  https://www.360innovate.co.uk ([https](https://www.360innovate.co.uk) result 200).
* [ ] http://www.amqp.org/ with 1 occurrences migrated to:
  https://www.amqp.org/ ([https](https://www.amqp.org/) result 200).
* [ ] http://tempuri.org/ (302) with 1 occurrences migrated to:
  https://www.bing.com/ ([https](https://tempuri.org/) 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.eaipatterns.com/ (302) with 2 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/ ([https](https://www.eaipatterns.com/) result 200).
* [ ] http://www.eaipatterns.com/gregor.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/gregor.html ([https](https://www.eaipatterns.com/gregor.html) result 200).
* [ ] http://www.eaipatterns.com/ramblings/18_starbucks.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/ramblings/18_starbucks.html ([https](https://www.eaipatterns.com/ramblings/18_starbucks.html) result 200).
* [ ] http://www.gnu.org/licenses/gpl.html with 1 occurrences migrated to:
  https://www.gnu.org/licenses/gpl.html ([https](https://www.gnu.org/licenses/gpl.html) result 200).
* [ ] http://fusesource.com (302) with 1 occurrences migrated to:
  https://www.jboss.org/ ([https](https://fusesource.com) result 200).
* [ ] http://www.microsoft.com/en-us/download/details.aspx?id=23650 with 2 occurrences migrated to:
  https://www.microsoft.com/en-us/download/details.aspx?id=23650 ([https](https://www.microsoft.com/en-us/download/details.aspx?id=23650) result 200).
* [ ] http://www.postgresql.org/ with 1 occurrences migrated to:
  https://www.postgresql.org/ ([https](https://www.postgresql.org/) result 200).
* [ ] http://www.rabbitmq.com/ with 6 occurrences migrated to:
  https://www.rabbitmq.com/ ([https](https://www.rabbitmq.com/) result 200).
* [ ] http://www.w3schools.com/xml/ with 1 occurrences migrated to:
  https://www.w3schools.com/xml/ ([https](https://www.w3schools.com/xml/) result 200).
* [ ] http://forum.springsource.org/archive/index.php/t-84006.html (301) with 1 occurrences migrated to:
  https://forum.spring.io/archive/index.php/t-84006.html ([https](https://forum.springsource.org/archive/index.php/t-84006.html) result 301).
* [ ] http://forum.spring.io/forum/spring-projects/integration/117523-starting-multiple-consumers?p=589517 with 1 occurrences migrated to:
  https://forum.spring.io/forum/spring-projects/integration/117523-starting-multiple-consumers?p=589517 ([https](https://forum.spring.io/forum/spring-projects/integration/117523-starting-multiple-consumers?p=589517) result 301).
* [ ] http://forum.spring.io/forum/spring-projects/integration/119081-dynamic-inbound-channel-adapter-creation with 1 occurrences migrated to:
  https://forum.spring.io/forum/spring-projects/integration/119081-dynamic-inbound-channel-adapter-creation ([https](https://forum.spring.io/forum/spring-projects/integration/119081-dynamic-inbound-channel-adapter-creation) result 301).
* [ ] http://jira.springframework.org/browse/ROO-909 with 1 occurrences migrated to:
  https://jira.springframework.org/browse/ROO-909 ([https](https://jira.springframework.org/browse/ROO-909) result 301).
* [ ] http://jquery.org/license with 1 occurrences migrated to:
  https://jquery.org/license ([https](https://jquery.org/license) result 301).
* [ ] http://junit.org/ with 1 occurrences migrated to:
  https://junit.org/ ([https](https://junit.org/) result 301).
* [ ] http://mina.apache.org/sshd-project with 1 occurrences migrated to:
  https://mina.apache.org/sshd-project ([https](https://mina.apache.org/sshd-project) result 301).
* [ ] http://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx with 1 occurrences migrated to:
  https://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx ([https](https://msdn.microsoft.com/en-us/sqlserver/aa937724.aspx) result 301).
* [ ] http://projects.spring.io/spring-boot with 1 occurrences migrated to:
  https://projects.spring.io/spring-boot ([https](https://projects.spring.io/spring-boot) result 301).
* [ ] http://springsource.com with 1 occurrences migrated to:
  https://springsource.com ([https](https://springsource.com) result 301).
* [ ] http://support.microsoft.com/default.aspx?scid=kb;EN-US;914277 with 2 occurrences migrated to:
  https://support.microsoft.com/default.aspx?scid=kb;EN-US;914277 ([https](https://support.microsoft.com/default.aspx?scid=kb;EN-US;914277) result 301).
* [ ] http://www.360innovate.co.uk/blog/2009/03/periodicalupdater-for-jquery/ with 1 occurrences migrated to:
  https://www.360innovate.co.uk/blog/2009/03/periodicalupdater-for-jquery/ ([https](https://www.360innovate.co.uk/blog/2009/03/periodicalupdater-for-jquery/) result 301).
* [ ] http://www.eaipatterns.com/eaipatterns.html (302) with 1 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/eaipatterns.html ([https](https://www.eaipatterns.com/eaipatterns.html) result 301).
* [ ] http://www.google.com/talk/ with 1 occurrences migrated to:
  https://www.google.com/talk/ ([https](https://www.google.com/talk/) result 301).
* [ ] http://www.gradle.org with 4 occurrences migrated to:
  https://www.gradle.org ([https](https://www.gradle.org) result 301).
* [ ] http://www.gradle.org/docs/current/userguide/application_plugin.html with 10 occurrences migrated to:
  https://www.gradle.org/docs/current/userguide/application_plugin.html ([https](https://www.gradle.org/docs/current/userguide/application_plugin.html) result 301).
* [ ] http://www.gradle.org/docs/current/userguide/jetty_plugin.html with 1 occurrences migrated to:
  https://www.gradle.org/docs/current/userguide/jetty_plugin.html ([https](https://www.gradle.org/docs/current/userguide/jetty_plugin.html) result 301).
* [ ] http://www.mapquestapi.com/ with 1 occurrences migrated to:
  https://www.mapquestapi.com/ ([https](https://www.mapquestapi.com/) result 301).
* [ ] http://www.mongodb.org/display/DOCS/Querying with 1 occurrences migrated to:
  https://www.mongodb.org/display/DOCS/Querying ([https](https://www.mongodb.org/display/DOCS/Querying) result 301).
* [ ] http://www.opensource.org/licenses/mit-license.php with 1 occurrences migrated to:
  https://www.opensource.org/licenses/mit-license.php ([https](https://www.opensource.org/licenses/mit-license.php) result 301).
* [ ] http://www.oracle.com/technetwork/indexes/downloads/index.html with 2 occurrences migrated to:
  https://www.oracle.com/technetwork/indexes/downloads/index.html ([https](https://www.oracle.com/technetwork/indexes/downloads/index.html) result 301).
* [ ] http://www.rabbitmq.com/install.html with 4 occurrences migrated to:
  https://www.rabbitmq.com/install.html ([https](https://www.rabbitmq.com/install.html) result 301).
* [ ] http://www.springsource.org/node/3598 with 1 occurrences migrated to:
  https://www.springsource.org/node/3598 ([https](https://www.springsource.org/node/3598) result 301).
* [ ] http://www.springsource.org/spring-amqp with 4 occurrences migrated to:
  https://www.springsource.org/spring-amqp ([https](https://www.springsource.org/spring-amqp) result 301).
* [ ] http://www.springsource.org/spring-integration with 35 occurrences migrated to:
  https://www.springsource.org/spring-integration ([https](https://www.springsource.org/spring-integration) result 301).
* [ ] http://www.springintegration.org/ (301) with 7 occurrences migrated to:
  https://www.springsource.org/spring-integration/ ([https](https://www.springintegration.org/) result 301).
* [ ] http://www.springsource.org/spring-security with 1 occurrences migrated to:
  https://www.springsource.org/spring-security ([https](https://www.springsource.org/spring-security) result 301).
* [ ] http://www.springsource.org/spring-web-services with 1 occurrences migrated to:
  https://www.springsource.org/spring-web-services ([https](https://www.springsource.org/spring-web-services) result 301).
* [ ] http://www.springsource.org/sts with 1 occurrences migrated to:
  https://www.springsource.org/sts ([https](https://www.springsource.org/sts) result 301).
* [ ] http://www.youtube.com/SpringSourceDev with 2 occurrences migrated to:
  https://www.youtube.com/SpringSourceDev ([https](https://www.youtube.com/SpringSourceDev) result 301).
* [ ] http://dev.twitter.com with 1 occurrences migrated to:
  https://dev.twitter.com ([https](https://dev.twitter.com) result 302).
* [ ] http://dev.twitter.com/ with 4 occurrences migrated to:
  https://dev.twitter.com/ ([https](https://dev.twitter.com/) result 302).
* [ ] http://visualvm.java.net/ with 1 occurrences migrated to:
  https://visualvm.java.net/ ([https](https://visualvm.java.net/) result 302).
* [ ] http://www.springsource.com/developer/sts with 4 occurrences migrated to:
  https://www.springsource.com/developer/sts ([https](https://www.springsource.com/developer/sts) result 302).

# Ignored
These URLs were intentionally ignored.

* http://java.sun.com/JSP/Page with 40 occurrences
* http://java.sun.com/jsp/jstl/core with 34 occurrences
* http://java.sun.com/jsp/jstl/fmt with 2 occurrences
* http://java.sun.com/jsp/jstl/functions with 29 occurrences
* http://localhost:8080/broadcast/foo with 2 occurrences
* http://localhost:8080/chat with 1 occurrences
* http://localhost:8080/foo with 3 occurrences
* http://localhost:8080/monitoring with 1 occurrences
* http://localhost:8080/multipart-http/inboundAdapter.htm with 1 occurrences
* http://localhost:8080/rest-http/services/employee/ with 3 occurrences
* http://localhost:8080/rest-http/services/employee/0/search with 1 occurrences
* http://localhost:8080/rest-http/services/employee/1/search with 1 occurrences
* http://localhost:8080/shutdown with 1 occurrences
* http://localhost:8080/sockjs.js with 2 occurrences
* http://localhost:8080/stomp.js with 1 occurrences
* http://localhost:8080/time with 1 occurrences
* http://localhost:8080/ws-inbound-gateway/echoservice with 2 occurrences
* http://localhost:8082 with 1 occurrences
* http://schemas.xmlsoap.org/soap/envelope/ with 1 occurrences
* http://tiles.apache.org/tags-tiles with 1 occurrences
* http://www.example.org/orders with 3 occurrences
* http://www.example.org/orders-bigbooks with 2 occurrences
* http://www.springframework.org/spring-ws/samples/echo with 5 occurrences
* http://www.springframework.org/tags with 34 occurrences
* http://www.springframework.org/tags/form with 18 occurrences
* http://www.w3.org/1999/XSL/Transform with 1 occurrences
2019-03-22 15:59:21 -04:00

2.9 KiB

Barrier Sample

This example demonstrates the use of a process barrier component to suspend a thread until some asynchronous operation completes. The first example uses an HTTP Inbound Gateway, splits the request, sends the splits to rabbitmq and then waits for the publisher confirms. Finally, the results are returned to the caller.

The sample is a Spring Boot application that loads 2 contexts:

  • Client - Sends A,B,C to the server
  • Server - Web application

The server context has 3 integration flows:

http -> splitter -> amqp
     |-> barrier

amqp(Acks) -> aggregator -> barrier (release)

qmqp(inbound) -> nullChannel

The last flow drains the messages and allows the auto-delete queue to be removed when the application is closed.

Running the sample

$ gradlew :barrier:run

This will package the application and run it using the Gradle Application Plugin

Using an IDE such as SpringSource Tool Suite™ (STS)

In STS (Eclipse), go to package org.springframework.integration.samples.barrier, right-click Application and select Run as --> Java Application (or Spring Boot Application).

Output

The gateway (client) initiates a simple request posting "A,B,C" to the server and the server responds with the results. You should see the following output from the server:

++++++++++++ Replied with: Result: A: ack=true, B: ack=true, C: ack=true ++++++++++++

Error Handling

The second example uses a simple gateway to launch some asynchronous tasks and waits for those tasks to complete.

It shows how you might return an exception to the caller if one or more of those tasks fail.

An aggregator is used to aggregate the results; if there are no errors, the results are returned; if one or more errors occurred, an exception is sent to release the barrier; this is thrown to the caller and has all the consolidated results in a property.

You can run this example from an IDE, such as STS using the technique above; in this case, the class is ErrorHandlingApplication in the org.springframework.integration.samples.barrier package.

It sends a list of integers to the flow:

[2, 0, 2, 0, 2]

The zeros should fail and in stderr you should see the results:

ConsolidatedResultsException
[results=
[5
org.springframework.integration.transformer.MessageTransformationException:
  Failed to transform Message; nested exception is org.springframework.messaging.MessageHandlingException:
  Expression evaluation failed: 10 / payload; nested exception is java.lang.ArithmeticException: / by zero
5
org.springframework.integration.transformer.MessageTransformationException:
  Failed to transform Message; nested exception is org.springframework.messaging.MessageHandlingException:
  Expression evaluation failed: 10 / payload; nested exception is java.lang.ArithmeticException: / by zero
5]
]