Files
spring-integration-samples/intermediate/monitoring
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

Spring Integration - Monitoring

This application demonstrates managing and monitoring Spring Integration Applications.

It is based on the STS 'Spring Integration Project (war)' template project, available using

New... | Spring Template Project

It was used in the Managing and Monitoring Spring Integration webinar available on the SpringSource Developer YouTube Channel.

If you wish to see the changes made during the webinar, please use the following git command:

git log -p <The commit titled 'Webinar End State'>

To run the sample, in STS, use:

Run As... | Run on Server

and then use VisualVM/JConsole to explore the MBeans.

The twitter search results can be examined at http://localhost:8080/monitoring.

Alternatively, there is a simple main class SpringIntegrationTest.

2.2 Updates:

The application context now includes an example of <int-jmx:notification-publishing-channel-adapter/>, to which the tweets are published. You can navigate to the MBean - spring.application:type=TweetPublisher,name=tweeter, click the Notifications tab and then subscribe. You will then see the notifications.

An additional class NotificationListener is now included. It demonstrates the use of <int-jmx:notification-listening-channel-adapter> and <int-jmx:attribute-polling-channel-adapter>.

Also, it shows how to use an <int-jmx:operation-invoking-channel-adapter> to stop/start the dummyAdapter in the web application.

These adapters use a client connector to connect to the Twitter search web application to catch notifications published by it, polls the sendCount attribute of the twitterChannel. and invokes operations on the dummyAdapter.

You will need to update the credentials on the clientConnector in remote-monitor-context.xml to match your environment. If you are using STS, you can find the credentials in Servers | [server] | jmxremote.password. You can then run the NotificationListener's main method.

You should observe log output of the notifications as well as polling the channel's sendCount. Simply use the console to enter 'n' to stop and 'y' to start the adapter.

These changes show how you can create a sophisticated monitoring application using Spring Integration - it is important to understand that the application being monitored doesn't have to be a Spring or Spring Integration application - any application that exports MBeans can be monitored in this way.

Note:

Twitter now requires an authenticated user to perform searches. By default, this project now uses a dummy adapter to avoid having to configure the credentials. To use a real adapter, uncomment the spring.profiles.active context-param element in the web.xml.

To run the SpringIntegrationTest command-line application, use -Dspring.profiles.active=twitter command line argument in the launch configuration.

However, you will need to configure OAuth and set the values in the OAuth properties.

To use OAuth authentication/authorization with Twitter you must create a new Application on the Twitter Developer's site. Follow the directions below to create a new application and obtain the consumer keys and the access token:

  • Go to http://dev.twitter.com/
  • Log in to your account
  • Go to My applications.
  • Click on 'Create a new application' link and fill out all required fields on the form provided;
  • Submit the form.
  • If everything is successful you'll be presented with the 'Consumer Key' and 'Consumer Secret'.
  • Copy both values to a safe place.
  • On the same page you should see 'My Access Token' button on bottom of the page.
  • Click on it and you'll be presented with two more values: 'Access Token' and 'Access Token Secret'.
  • Copy these values to a safe place as well.

When done, fill out oauth.properties file so it looks similar to this.

twitter.oauth.consumerKey=4XzBPabcJQxyBzzzH3TrRQ
twitter.oauth.consumerSecret=ab2piKdMfPu8bVa3ab6DAIvIWEVZyMDL0RSEN2I8
twitter.oauth.accessToken=21691649-4XYZY5iJEOfz2A9qCFd9SjBRGb3HLmIm4HNE6AMv4
twitter.oauth.accessTokenSecret=AbRxUAvyNCtqQtvxFK8w5ZMtMj20KFhB6oEfTA0

NOTE: the above values are samples only.


For help please see the Spring Integration documentation:

http://www.springsource.org/spring-integration