Files
spring-integration-samples/intermediate/retry-and-more
Spring Operator 79f13d042c 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://rss.cnn.com/rss/cnn_topstories.rss (200) with 1 occurrences could not be migrated:
   ([https](https://rss.cnn.com/rss/cnn_topstories.rss) result ClosedChannelException).
* http://wsf.cdyne.com/WeatherWS/Weather.asmx (200) with 1 occurrences could not be migrated:
   ([https](https://wsf.cdyne.com/WeatherWS/Weather.asmx) result ConnectTimeoutException).

# 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://local.yahooapis.com/MapsService/V1/trafficData?appid=YdnDemo&zip= (UnknownHostException) with 1 occurrences migrated to:
  https://local.yahooapis.com/MapsService/V1/trafficData?appid=YdnDemo&zip= ([https](https://local.yahooapis.com/MapsService/V1/trafficData?appid=YdnDemo&zip=) result UnknownHostException).
* http://static.springsource.org/spring-integration/reference/htmlsingle/ (301) with 2 occurrences migrated to:
  https://docs.spring.io/spring-integration/reference/htmlsingle/ ([https](https://static.springsource.org/spring-integration/reference/htmlsingle/) result 404).
* http://schema.cloudfoundry.org (404) with 1 occurrences migrated to:
  https://schema.cloudfoundry.org ([https](https://schema.cloudfoundry.org) result 404).
* http://schema.cloudfoundry.org/spring/cloudfoundry-spring.xsd (404) with 5 occurrences migrated to:
  https://schema.cloudfoundry.org/spring/cloudfoundry-spring.xsd ([https](https://schema.cloudfoundry.org/spring/cloudfoundry-spring.xsd) result 404).
* http://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP (404) with 2 occurrences migrated to:
  https://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP ([https](https://ws.cdyne.com/WeatherWS/GetCityWeatherByZIP) result 404).
* http://ws.cdyne.com/WeatherWS/Weather.asmx (404) with 1 occurrences migrated to:
  https://ws.cdyne.com/WeatherWS/Weather.asmx ([https](https://ws.cdyne.com/WeatherWS/Weather.asmx) result 404).
* http://www.example.org/prodcuts (404) with 1 occurrences migrated to:
  https://www.example.org/prodcuts ([https](https://www.example.org/prodcuts) result 404).
* http://www.springframework.org/schema/integration/script.xsd (404) with 4 occurrences migrated to:
  https://www.springframework.org/schema/integration/script.xsd ([https](https://www.springframework.org/schema/integration/script.xsd) result 404).
* http://www.springframework.org/schema/integration/splunk/spring-integration-splunk.xsd (404) with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/splunk/spring-integration-splunk.xsd ([https](https://www.springframework.org/schema/integration/splunk/spring-integration-splunk.xsd) result 404).
* http://www.w3schools.com/xml/FahrenheitToCelsius (301) with 1 occurrences migrated to:
  https://www.w3schools.com/xml/FahrenheitToCelsius ([https](https://www.w3schools.com/xml/FahrenheitToCelsius) result 404).

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

* http://activemq.apache.org/peer-transport-reference.html with 1 occurrences migrated to:
  https://activemq.apache.org/peer-transport-reference.html ([https](https://activemq.apache.org/peer-transport-reference.html) result 200).
* http://activemq.apache.org/schema/core/activemq-core-5.4.2.xsd with 1 occurrences migrated to:
  https://activemq.apache.org/schema/core/activemq-core-5.4.2.xsd ([https](https://activemq.apache.org/schema/core/activemq-core-5.4.2.xsd) result 200).
* http://maven.apache.org/xsd/maven-4.0.0.xsd with 68 occurrences migrated to:
  https://maven.apache.org/xsd/maven-4.0.0.xsd ([https](https://maven.apache.org/xsd/maven-4.0.0.xsd) result 200).
* http://tiles.apache.org/dtds/tiles-config_2_1.dtd with 3 occurrences migrated to:
  https://tiles.apache.org/dtds/tiles-config_2_1.dtd ([https](https://tiles.apache.org/dtds/tiles-config_2_1.dtd) result 200).
* http://www.springframework.org/schema/aop/spring-aop.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/aop/spring-aop.xsd ([https](https://www.springframework.org/schema/aop/spring-aop.xsd) result 200).
* http://www.springframework.org/schema/beans/spring-beans.xsd with 136 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-4.1.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/context/spring-context-4.1.xsd ([https](https://www.springframework.org/schema/context/spring-context-4.1.xsd) result 200).
* http://www.springframework.org/schema/context/spring-context.xsd with 34 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/data/mongo/spring-mongo.xsd with 2 occurrences migrated to:
  https://www.springframework.org/schema/data/mongo/spring-mongo.xsd ([https](https://www.springframework.org/schema/data/mongo/spring-mongo.xsd) result 200).
* http://www.springframework.org/schema/integration/amqp/spring-integration-amqp.xsd with 9 occurrences migrated to:
  https://www.springframework.org/schema/integration/amqp/spring-integration-amqp.xsd ([https](https://www.springframework.org/schema/integration/amqp/spring-integration-amqp.xsd) result 200).
* http://www.springframework.org/schema/integration/event/spring-integration-event.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/event/spring-integration-event.xsd ([https](https://www.springframework.org/schema/integration/event/spring-integration-event.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.xsd with 11 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 5 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/groovy/spring-integration-groovy.xsd with 5 occurrences migrated to:
  https://www.springframework.org/schema/integration/groovy/spring-integration-groovy.xsd ([https](https://www.springframework.org/schema/integration/groovy/spring-integration-groovy.xsd) result 200).
* http://www.springframework.org/schema/integration/http/spring-integration-http.xsd with 10 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.xsd with 8 occurrences migrated to:
  https://www.springframework.org/schema/integration/ip/spring-integration-ip.xsd ([https](https://www.springframework.org/schema/integration/ip/spring-integration-ip.xsd) result 200).
* http://www.springframework.org/schema/integration/jdbc/spring-integration-jdbc.xsd with 8 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 11 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/jmx/spring-integration-jmx.xsd with 3 occurrences migrated to:
  https://www.springframework.org/schema/integration/jmx/spring-integration-jmx.xsd ([https](https://www.springframework.org/schema/integration/jmx/spring-integration-jmx.xsd) result 200).
* http://www.springframework.org/schema/integration/jpa/spring-integration-jpa.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/integration/jpa/spring-integration-jpa.xsd ([https](https://www.springframework.org/schema/integration/jpa/spring-integration-jpa.xsd) result 200).
* http://www.springframework.org/schema/integration/mail/spring-integration-mail.xsd with 4 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/mongodb/spring-integration-mongodb.xsd with 2 occurrences migrated to:
  https://www.springframework.org/schema/integration/mongodb/spring-integration-mongodb.xsd ([https](https://www.springframework.org/schema/integration/mongodb/spring-integration-mongodb.xsd) result 200).
* http://www.springframework.org/schema/integration/rmi/spring-integration-rmi.xsd with 2 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.xsd with 4 occurrences migrated to:
  https://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd ([https](https://www.springframework.org/schema/integration/scripting/spring-integration-scripting.xsd) result 200).
* http://www.springframework.org/schema/integration/sftp/spring-integration-sftp.xsd with 3 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.xsd with 125 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/stream/spring-integration-stream.xsd with 27 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 4 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 2 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 4 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 1 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 2 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/jdbc/spring-jdbc.xsd with 5 occurrences migrated to:
  https://www.springframework.org/schema/jdbc/spring-jdbc.xsd ([https](https://www.springframework.org/schema/jdbc/spring-jdbc.xsd) result 200).
* http://www.springframework.org/schema/jee/spring-jee.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/jee/spring-jee.xsd ([https](https://www.springframework.org/schema/jee/spring-jee.xsd) result 200).
* http://www.springframework.org/schema/mvc/spring-mvc.xsd with 2 occurrences migrated to:
  https://www.springframework.org/schema/mvc/spring-mvc.xsd ([https](https://www.springframework.org/schema/mvc/spring-mvc.xsd) result 200).
* http://www.springframework.org/schema/oxm/spring-oxm.xsd with 2 occurrences migrated to:
  https://www.springframework.org/schema/oxm/spring-oxm.xsd ([https](https://www.springframework.org/schema/oxm/spring-oxm.xsd) result 200).
* http://www.springframework.org/schema/rabbit/spring-rabbit.xsd with 11 occurrences migrated to:
  https://www.springframework.org/schema/rabbit/spring-rabbit.xsd ([https](https://www.springframework.org/schema/rabbit/spring-rabbit.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-4.2.xsd with 1 occurrences migrated to:
  https://www.springframework.org/schema/task/spring-task-4.2.xsd ([https](https://www.springframework.org/schema/task/spring-task-4.2.xsd) result 200).
* http://www.springframework.org/schema/task/spring-task.xsd with 8 occurrences migrated to:
  https://www.springframework.org/schema/task/spring-task.xsd ([https](https://www.springframework.org/schema/task/spring-task.xsd) result 200).
* http://www.springframework.org/schema/tx/spring-tx.xsd with 3 occurrences migrated to:
  https://www.springframework.org/schema/tx/spring-tx.xsd ([https](https://www.springframework.org/schema/tx/spring-tx.xsd) result 200).
* http://www.springframework.org/schema/util/spring-util.xsd with 7 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.w3schools.com/xml/tempconvert.asmx with 1 occurrences migrated to:
  https://www.w3schools.com/xml/tempconvert.asmx ([https](https://www.w3schools.com/xml/tempconvert.asmx) result 200).
* http://www.eaipatterns.com/MessagingGateway.html (302) with 2 occurrences migrated to:
  https://www.enterpriseintegrationpatterns.com/MessagingGateway.html ([https](https://www.eaipatterns.com/MessagingGateway.html) result 301).
* http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd with 2 occurrences migrated to:
  https://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd ([https](https://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd) result 302).
* http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd with 5 occurrences migrated to:
  https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd ([https](https://java.sun.com/xml/ns/javaee/web-app_2_5.xsd) result 302).
* http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd with 1 occurrences migrated to:
  https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd ([https](https://java.sun.com/xml/ns/javaee/web-app_3_0.xsd) result 302).
* http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd with 1 occurrences migrated to:
  https://java.sun.com/xml/ns/persistence/persistence_2_0.xsd ([https](https://java.sun.com/xml/ns/persistence/persistence_2_0.xsd) result 302).

# Ignored
These URLs were intentionally ignored.

* http://activemq.apache.org/schema/core with 2 occurrences
* http://jakarta.apache.org/log4j/ with 1 occurrences
* http://java.sun.com/xml/ns/j2ee with 4 occurrences
* http://java.sun.com/xml/ns/javaee with 8 occurrences
* http://java.sun.com/xml/ns/persistence with 2 occurrences
* http://localhost:8080/http/receiveGateway with 1 occurrences
* http://localhost:8080/multipart-http/inboundAdapter.htm with 1 occurrences
* http://localhost:8080/postGateway with 1 occurrences
* http://localhost:8084/traffic/v1/incidents?key= with 1 occurrences
* http://maven.apache.org/POM/4.0.0 with 136 occurrences
* http://schema.cloudfoundry.org/spring with 9 occurrences
* http://www.example.org/orders with 2 occurrences
* http://www.springframework.org/schema/aop with 2 occurrences
* http://www.springframework.org/schema/beans with 273 occurrences
* http://www.springframework.org/schema/context with 69 occurrences
* http://www.springframework.org/schema/data/mongo with 4 occurrences
* http://www.springframework.org/schema/integration with 250 occurrences
* http://www.springframework.org/schema/integration/amqp with 18 occurrences
* http://www.springframework.org/schema/integration/event with 2 occurrences
* http://www.springframework.org/schema/integration/feed with 2 occurrences
* http://www.springframework.org/schema/integration/file with 21 occurrences
* http://www.springframework.org/schema/integration/ftp with 10 occurrences
* http://www.springframework.org/schema/integration/groovy with 10 occurrences
* http://www.springframework.org/schema/integration/http with 20 occurrences
* http://www.springframework.org/schema/integration/ip with 16 occurrences
* http://www.springframework.org/schema/integration/jdbc with 16 occurrences
* http://www.springframework.org/schema/integration/jms with 22 occurrences
* http://www.springframework.org/schema/integration/jmx with 6 occurrences
* http://www.springframework.org/schema/integration/jpa with 2 occurrences
* http://www.springframework.org/schema/integration/mail with 9 occurrences
* http://www.springframework.org/schema/integration/mongodb with 4 occurrences
* http://www.springframework.org/schema/integration/rmi with 4 occurrences
* http://www.springframework.org/schema/integration/script with 4 occurrences
* http://www.springframework.org/schema/integration/scripting with 8 occurrences
* http://www.springframework.org/schema/integration/sftp with 6 occurrences
* http://www.springframework.org/schema/integration/splunk with 2 occurrences
* http://www.springframework.org/schema/integration/stream with 57 occurrences
* http://www.springframework.org/schema/integration/twitter with 8 occurrences
* http://www.springframework.org/schema/integration/websocket with 4 occurrences
* http://www.springframework.org/schema/integration/ws with 8 occurrences
* http://www.springframework.org/schema/integration/xml with 2 occurrences
* http://www.springframework.org/schema/integration/xmpp with 4 occurrences
* http://www.springframework.org/schema/jdbc with 10 occurrences
* http://www.springframework.org/schema/jee with 2 occurrences
* http://www.springframework.org/schema/mvc with 4 occurrences
* http://www.springframework.org/schema/oxm with 4 occurrences
* http://www.springframework.org/schema/p with 2 occurrences
* http://www.springframework.org/schema/rabbit with 22 occurrences
* http://www.springframework.org/schema/security with 2 occurrences
* http://www.springframework.org/schema/task with 18 occurrences
* http://www.springframework.org/schema/tx with 6 occurrences
* http://www.springframework.org/schema/util with 14 occurrences
* http://www.w3.org/2001/XMLSchema-instance with 211 occurrences
2019-03-20 15:31:01 -04:00
..
2019-03-20 15:31:01 -04:00
2019-03-20 15:31:01 -04:00
2017-04-16 16:32:52 -04:00

Handler Advice Sample "retry-and-more"

This sample shows how to use the 2.2.0 Handler Advice feature.

Stateless Retry Advice Demo

This class (StatelessRetryDemo) demonstrates stateless retry.

By default, it runs with a simple default retry (3 tries, no backoff, no recovery)

Run with -Dspring.profiles.active=backoff to run with 3 tries, exponential backoff, no recovery

Run with -Dspring.profiles.active=recovery to run with 3 tries, no backoff, error message "recovery"

In each case enter 'fail n' where n is the number of times you want the service to fail.

e.g. 'fail 2' will succeed in each case on the third try, 'fail 3' will fail permanently after the third try.

NOTE: Starting with Spring Integration 4.0, stateless retry has convenient namespace support; this sample has been updated to show its use.

It shows the retry advice declared (for each profile) as a top level bean <int:handler-retry-advice id="retryAdvice">. Declaring it as a top level bean allows it to be used in multiple places (or via profiles). You can also declare it within the advice chain using <int:retry-advice/> (with no 'id'). In that case, it cannot be reused in other advice chains.

Stateful Retry Advice Demo

This class (StatefulRetryDemo) demonstrates stateful retry.

It is similar to the default version of the stateless retry but uses AMQP; you will see that the exception are thrown back to the container and the retries are re-delivered by AMQP.

NOTE: Starting with Spring Integration 4.0, stateless retry has convenient namespace support; stateful retry requires the retry advice to be configured using <bean/> definitions as is shown here.

Circuit Breaker Advice Demo

This class (CircuitBreakerDemo) demonstrates the circuit breaker advice.

In this demo, the target service only succeeds in the last quarter of any minute (seconds 45-59). The breaker's threshold is set to 2, with the breaker going half-open once 15 seconds have elapsed since the last failure.

You can observe the function of the advice by entering a number of messages over time, and watch the resulting messages.

Expression Evaluating Advice Demo

FileTransferDeleteAfterSuccessDemo

FileTransferRenameAfterFailureDemo

These classes show how to configure expressions to be evaluated after either succes, or failure; the application context is defined in expression-advice-context-xml.

It is a simulation of an application with a file inbound adapter -> ftp outbound adapter.

The advice on the outbound adapter evaluates an expression after the transfer - delete the file on success, rename it on failure.

The results of the expression evaluation are then logged (INFO or ERROR).

No real FTP is involved; mocks are used to simulate the transfer (success or failure).

In both cases simply add a file ending with .txt in ${java.io.tmpdir}/adviceDemo (e.g. touch /tmp/adviceDemo/x,txt) and the results will appear in the console.

Running the Demos

In each case, run the main method in each of the demonstration classes.