rabbitmq-tutorials/kotlin/README.md
Spring Operator 5436636673 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://blog.listincomprehension.com/search/label/procket (200) with 1 occurrences could not be migrated:
   ([https](https://blog.listincomprehension.com/search/label/procket) result ClosedChannelException).
* http://central.maven.org/maven2/com/rabbitmq/amqp-client/4.0.2/amqp-client-4.0.2.jar (200) with 1 occurrences could not be migrated:
   ([https](https://central.maven.org/maven2/com/rabbitmq/amqp-client/4.0.2/amqp-client-4.0.2.jar) result SSLHandshakeException).
* http://central.maven.org/maven2/org/slf4j/slf4j-api/1.7.21/slf4j-api-1.7.21.jar (200) with 1 occurrences could not be migrated:
   ([https](https://central.maven.org/maven2/org/slf4j/slf4j-api/1.7.21/slf4j-api-1.7.21.jar) result SSLHandshakeException).
* http://central.maven.org/maven2/org/slf4j/slf4j-simple/1.7.22/slf4j-simple-1.7.22.jar (200) with 1 occurrences could not be migrated:
   ([https](https://central.maven.org/maven2/org/slf4j/slf4j-simple/1.7.22/slf4j-simple-1.7.22.jar) result SSLHandshakeException).
* http://clojurerabbitmq.info (200) with 1 occurrences could not be migrated:
   ([https](https://clojurerabbitmq.info) result AnnotatedConnectException).
* http://dozzie.jarowit.net/trac/wiki/TOML (200) with 1 occurrences could not be migrated:
   ([https](https://dozzie.jarowit.net/trac/wiki/TOML) result SSLHandshakeException).
* http://dozzie.jarowit.net/trac/wiki/subproc (200) with 1 occurrences could not be migrated:
   ([https](https://dozzie.jarowit.net/trac/wiki/subproc) result SSLHandshakeException).
* http://e2project.org (200) with 1 occurrences could not be migrated:
   ([https](https://e2project.org) result AnnotatedConnectException).
* http://nitrogenproject.com/ (200) with 2 occurrences could not be migrated:
   ([https](https://nitrogenproject.com/) result ConnectTimeoutException).
* http://proper.softlab.ntua.gr (200) with 1 occurrences could not be migrated:
   ([https](https://proper.softlab.ntua.gr) result SSLHandshakeException).
* http://rubybunny.info (200) with 2 occurrences could not be migrated:
   ([https](https://rubybunny.info) result AnnotatedConnectException).
* http://yaws.hyber.org (200) with 1 occurrences could not be migrated:
   ([https](https://yaws.hyber.org) result AnnotatedConnectException).
* http://schemas.microsoft.com/developer/msbuild/2003 (404) with 13 occurrences could not be migrated:
   ([https](https://schemas.microsoft.com/developer/msbuild/2003) result AnnotatedConnectException).
* http://choven.ca (503) with 1 occurrences could not be migrated:
   ([https](https://choven.ca) 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://fixprotocol.org/ (301) with 1 occurrences migrated to:
  https://fixtrading.org ([https](https://fixprotocol.org/) result SSLHandshakeException).
* http://cl-rabbit.io/cl-bunny (UnknownHostException) with 2 occurrences migrated to:
  https://cl-rabbit.io/cl-bunny ([https](https://cl-rabbit.io/cl-bunny) result UnknownHostException).
* http://cl-rabbit.io/cl-bunny/tutorials/ (UnknownHostException) with 1 occurrences migrated to:
  https://cl-rabbit.io/cl-bunny/tutorials/ ([https](https://cl-rabbit.io/cl-bunny/tutorials/) result UnknownHostException).
* http://cl-rabbit.io/cl-bunny/tutorials/tutorial-five-cl.html (UnknownHostException) with 1 occurrences migrated to:
  https://cl-rabbit.io/cl-bunny/tutorials/tutorial-five-cl.html ([https](https://cl-rabbit.io/cl-bunny/tutorials/tutorial-five-cl.html) result UnknownHostException).
* http://cl-rabbit.io/cl-bunny/tutorials/tutorial-four-cl.html (UnknownHostException) with 1 occurrences migrated to:
  https://cl-rabbit.io/cl-bunny/tutorials/tutorial-four-cl.html ([https](https://cl-rabbit.io/cl-bunny/tutorials/tutorial-four-cl.html) result UnknownHostException).
* http://cl-rabbit.io/cl-bunny/tutorials/tutorial-one-cl.html (UnknownHostException) with 1 occurrences migrated to:
  https://cl-rabbit.io/cl-bunny/tutorials/tutorial-one-cl.html ([https](https://cl-rabbit.io/cl-bunny/tutorials/tutorial-one-cl.html) result UnknownHostException).
* http://cl-rabbit.io/cl-bunny/tutorials/tutorial-six-cl.html (UnknownHostException) with 1 occurrences migrated to:
  https://cl-rabbit.io/cl-bunny/tutorials/tutorial-six-cl.html ([https](https://cl-rabbit.io/cl-bunny/tutorials/tutorial-six-cl.html) result UnknownHostException).
* http://cl-rabbit.io/cl-bunny/tutorials/tutorial-three-cl.html (UnknownHostException) with 1 occurrences migrated to:
  https://cl-rabbit.io/cl-bunny/tutorials/tutorial-three-cl.html ([https](https://cl-rabbit.io/cl-bunny/tutorials/tutorial-three-cl.html) result UnknownHostException).
* http://cl-rabbit.io/cl-bunny/tutorials/tutorial-two-cl.html (UnknownHostException) with 1 occurrences migrated to:
  https://cl-rabbit.io/cl-bunny/tutorials/tutorial-two-cl.html ([https](https://cl-rabbit.io/cl-bunny/tutorials/tutorial-two-cl.html) result UnknownHostException).
* http://erldb.org (UnknownHostException) with 1 occurrences migrated to:
  https://erldb.org ([https](https://erldb.org) result UnknownHostException).
* http://hg.rabbitmq.com/rabbitmq-erlang-client/ (UnknownHostException) with 1 occurrences migrated to:
  https://hg.rabbitmq.com/rabbitmq-erlang-client/ ([https](https://hg.rabbitmq.com/rabbitmq-erlang-client/) result UnknownHostException).
* http://elixir-lang.org/docs/stable/mix/Mix.html (301) with 1 occurrences migrated to:
  https://elixir-lang.org/docs/stable/mix/Mix.html ([https](https://elixir-lang.org/docs/stable/mix/Mix.html) 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://cloudi.org/ with 27 occurrences migrated to:
  https://cloudi.org/ ([https](https://cloudi.org/) 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://elixir-lang.org with 1 occurrences migrated to:
  https://elixir-lang.org ([https](https://elixir-lang.org) result 200).
* http://elixir-lang.org/install.html with 1 occurrences migrated to:
  https://elixir-lang.org/install.html ([https](https://elixir-lang.org/install.html) result 200).
* http://erlware.org/ with 1 occurrences migrated to:
  https://erlware.org/ ([https](https://erlware.org/) result 200).
* http://getcomposer.org with 2 occurrences migrated to:
  https://getcomposer.org ([https](https://getcomposer.org) result 200).
* http://github.com/rabbitmq/rabbitmq-tutorials with 1 occurrences migrated to:
  https://github.com/rabbitmq/rabbitmq-tutorials ([https](https://github.com/rabbitmq/rabbitmq-tutorials) result 200).
* http://hackage.haskell.org/package/amqp with 1 occurrences migrated to:
  https://hackage.haskell.org/package/amqp ([https](https://hackage.haskell.org/package/amqp) result 200).
* http://inaka.github.io/cowboy-trails/ with 1 occurrences migrated to:
  https://inaka.github.io/cowboy-trails/ ([https](https://inaka.github.io/cowboy-trails/) result 200).
* http://leiningen.org with 1 occurrences migrated to:
  https://leiningen.org ([https](https://leiningen.org) result 200).
* http://ninenines.eu with 6 occurrences migrated to:
  https://ninenines.eu ([https](https://ninenines.eu) result 200).
* http://www.actordb.com/ with 2 occurrences migrated to:
  https://www.actordb.com/ ([https](https://www.actordb.com/) result 200).
* http://www.apple.com/DTDs/PropertyList-1.0.dtd with 10 occurrences migrated to:
  https://www.apple.com/DTDs/PropertyList-1.0.dtd ([https](https://www.apple.com/DTDs/PropertyList-1.0.dtd) result 200).
* http://www.cliki.net/fibonacci with 1 occurrences migrated to:
  https://www.cliki.net/fibonacci ([https](https://www.cliki.net/fibonacci) result 200).
* http://www.cs.kent.ac.uk/projects/wrangler/Home.html with 1 occurrences migrated to:
  https://www.cs.kent.ac.uk/projects/wrangler/Home.html ([https](https://www.cs.kent.ac.uk/projects/wrangler/Home.html) result 200).
* http://www.eclipse.org/legal/epl-v10.html with 1 occurrences migrated to:
  https://www.eclipse.org/legal/epl-v10.html ([https](https://www.eclipse.org/legal/epl-v10.html) result 200).
* http://www.rabbitmq.com/download.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/download.html ([https](https://www.rabbitmq.com/download.html) result 200).
* http://www.rabbitmq.com/erlang-client-user-guide.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/erlang-client-user-guide.html ([https](https://www.rabbitmq.com/erlang-client-user-guide.html) result 200).
* http://www.rabbitmq.com/getstarted.html with 20 occurrences migrated to:
  https://www.rabbitmq.com/getstarted.html ([https](https://www.rabbitmq.com/getstarted.html) result 200).
* http://www.rabbitmq.com/releases/rabbitmq-server/ with 1 occurrences migrated to:
  https://www.rabbitmq.com/releases/rabbitmq-server/ ([https](https://www.rabbitmq.com/releases/rabbitmq-server/) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-five-javascript.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-five-javascript.html ([https](https://www.rabbitmq.com/tutorials/tutorial-five-javascript.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-five-php.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-five-php.html ([https](https://www.rabbitmq.com/tutorials/tutorial-five-php.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-four-javascript.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-four-javascript.html ([https](https://www.rabbitmq.com/tutorials/tutorial-four-javascript.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-four-php.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-four-php.html ([https](https://www.rabbitmq.com/tutorials/tutorial-four-php.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-one-javascript.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html ([https](https://www.rabbitmq.com/tutorials/tutorial-one-javascript.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-one-php.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-one-php.html ([https](https://www.rabbitmq.com/tutorials/tutorial-one-php.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-six-javascript.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-six-javascript.html ([https](https://www.rabbitmq.com/tutorials/tutorial-six-javascript.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-six-php.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-six-php.html ([https](https://www.rabbitmq.com/tutorials/tutorial-six-php.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-three-javascript.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-three-javascript.html ([https](https://www.rabbitmq.com/tutorials/tutorial-three-javascript.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-three-php.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-three-php.html ([https](https://www.rabbitmq.com/tutorials/tutorial-three-php.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-two-javascript.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-two-javascript.html ([https](https://www.rabbitmq.com/tutorials/tutorial-two-javascript.html) result 200).
* http://www.rabbitmq.com/tutorials/tutorial-two-php.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials/tutorial-two-php.html ([https](https://www.rabbitmq.com/tutorials/tutorial-two-php.html) result 200).
* http://www.rebar3.org with 1 occurrences migrated to:
  https://www.rebar3.org ([https](https://www.rebar3.org) result 200).
* http://inaka.github.com/apns4erl with 1 occurrences migrated to:
  https://inaka.github.com/apns4erl ([https](https://inaka.github.com/apns4erl) result 301).
* http://inaka.github.com/edis/ with 1 occurrences migrated to:
  https://inaka.github.com/edis/ ([https](https://inaka.github.com/edis/) result 301).
* http://lasp-lang.org/ with 1 occurrences migrated to:
  https://lasp-lang.org/ ([https](https://lasp-lang.org/) result 301).
* http://rabbitmq.com/download.html with 1 occurrences migrated to:
  https://rabbitmq.com/download.html ([https](https://rabbitmq.com/download.html) result 301).
* http://saleyn.github.com/erlexec with 1 occurrences migrated to:
  https://saleyn.github.com/erlexec ([https](https://saleyn.github.com/erlexec) result 301).
* http://erlang.org/download.html (302) with 1 occurrences migrated to:
  https://www.erlang.org/download.html ([https](https://erlang.org/download.html) result 301).
* http://www.erlang.org/download/otp_src_R14B03.tar.gz with 1 occurrences migrated to:
  https://www.erlang.org/download/otp_src_R14B03.tar.gz ([https](https://www.erlang.org/download/otp_src_R14B03.tar.gz) result 301).
* http://www.rabbitmq.com/releases with 1 occurrences migrated to:
  https://www.rabbitmq.com/releases ([https](https://www.rabbitmq.com/releases) result 301).
* http://www.rabbitmq.com/tutorial-five-dotnet.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-five-dotnet.html ([https](https://www.rabbitmq.com/tutorial-five-dotnet.html) result 301).
* http://www.rabbitmq.com/tutorial-five-go.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-five-go.html ([https](https://www.rabbitmq.com/tutorial-five-go.html) result 301).
* http://www.rabbitmq.com/tutorial-five-java.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-five-java.html ([https](https://www.rabbitmq.com/tutorial-five-java.html) result 301).
* http://www.rabbitmq.com/tutorial-five-python.html with 4 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-five-python.html ([https](https://www.rabbitmq.com/tutorial-five-python.html) result 301).
* http://www.rabbitmq.com/tutorial-five-ruby.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-five-ruby.html ([https](https://www.rabbitmq.com/tutorial-five-ruby.html) result 301).
* http://www.rabbitmq.com/tutorial-four-dotnet.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-four-dotnet.html ([https](https://www.rabbitmq.com/tutorial-four-dotnet.html) result 301).
* http://www.rabbitmq.com/tutorial-four-go.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-four-go.html ([https](https://www.rabbitmq.com/tutorial-four-go.html) result 301).
* http://www.rabbitmq.com/tutorial-four-java.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-four-java.html ([https](https://www.rabbitmq.com/tutorial-four-java.html) result 301).
* http://www.rabbitmq.com/tutorial-four-python.html with 4 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-four-python.html ([https](https://www.rabbitmq.com/tutorial-four-python.html) result 301).
* http://www.rabbitmq.com/tutorial-four-ruby.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-four-ruby.html ([https](https://www.rabbitmq.com/tutorial-four-ruby.html) result 301).
* http://www.rabbitmq.com/tutorial-one-dotnet.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-one-dotnet.html ([https](https://www.rabbitmq.com/tutorial-one-dotnet.html) result 301).
* http://www.rabbitmq.com/tutorial-one-go.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-one-go.html ([https](https://www.rabbitmq.com/tutorial-one-go.html) result 301).
* http://www.rabbitmq.com/tutorial-one-java.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-one-java.html ([https](https://www.rabbitmq.com/tutorial-one-java.html) result 301).
* http://www.rabbitmq.com/tutorial-one-python.html with 4 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-one-python.html ([https](https://www.rabbitmq.com/tutorial-one-python.html) result 301).
* http://www.rabbitmq.com/tutorial-one-ruby.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-one-ruby.html ([https](https://www.rabbitmq.com/tutorial-one-ruby.html) result 301).
* http://www.rabbitmq.com/tutorial-six-dotnet.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-six-dotnet.html ([https](https://www.rabbitmq.com/tutorial-six-dotnet.html) result 301).
* http://www.rabbitmq.com/tutorial-six-go.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-six-go.html ([https](https://www.rabbitmq.com/tutorial-six-go.html) result 301).
* http://www.rabbitmq.com/tutorial-six-java.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-six-java.html ([https](https://www.rabbitmq.com/tutorial-six-java.html) result 301).
* http://www.rabbitmq.com/tutorial-six-python.html with 3 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-six-python.html ([https](https://www.rabbitmq.com/tutorial-six-python.html) result 301).
* http://www.rabbitmq.com/tutorial-six-ruby.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-six-ruby.html ([https](https://www.rabbitmq.com/tutorial-six-ruby.html) result 301).
* http://www.rabbitmq.com/tutorial-three-dotnet.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-three-dotnet.html ([https](https://www.rabbitmq.com/tutorial-three-dotnet.html) result 301).
* http://www.rabbitmq.com/tutorial-three-go.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-three-go.html ([https](https://www.rabbitmq.com/tutorial-three-go.html) result 301).
* http://www.rabbitmq.com/tutorial-three-java.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-three-java.html ([https](https://www.rabbitmq.com/tutorial-three-java.html) result 301).
* http://www.rabbitmq.com/tutorial-three-python.html with 4 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-three-python.html ([https](https://www.rabbitmq.com/tutorial-three-python.html) result 301).
* http://www.rabbitmq.com/tutorial-three-ruby.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-three-ruby.html ([https](https://www.rabbitmq.com/tutorial-three-ruby.html) result 301).
* http://www.rabbitmq.com/tutorial-two-dotnet.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-two-dotnet.html ([https](https://www.rabbitmq.com/tutorial-two-dotnet.html) result 301).
* http://www.rabbitmq.com/tutorial-two-go.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-two-go.html ([https](https://www.rabbitmq.com/tutorial-two-go.html) result 301).
* http://www.rabbitmq.com/tutorial-two-java.html with 2 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-two-java.html ([https](https://www.rabbitmq.com/tutorial-two-java.html) result 301).
* http://www.rabbitmq.com/tutorial-two-python.html with 4 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-two-python.html ([https](https://www.rabbitmq.com/tutorial-two-python.html) result 301).
* http://www.rabbitmq.com/tutorial-two-ruby.html with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorial-two-ruby.html ([https](https://www.rabbitmq.com/tutorial-two-ruby.html) result 301).
* http://www.rabbitmq.com/tutorials with 1 occurrences migrated to:
  https://www.rabbitmq.com/tutorials ([https](https://www.rabbitmq.com/tutorials) result 301).
* http://zhongwencool.github.io/observer_cli with 1 occurrences migrated to:
  https://zhongwencool.github.io/observer_cli ([https](https://zhongwencool.github.io/observer_cli) result 301).
* http://go.microsoft.com/fwlink/?LinkID=322105 with 12 occurrences migrated to:
  https://go.microsoft.com/fwlink/?LinkID=322105 ([https](https://go.microsoft.com/fwlink/?LinkID=322105) result 302).
2019-03-20 03:25:16 -05:00

1.5 KiB

RabbitMQ Tutorials in Kotlin

This is a minimalistic Kotlin port of the RabbitMQ tutorials in Java. The port is admittedly quite close to Java in terms of code style.

Compiling the Code

gradle clean compileKotlin

Running the Tutorials

Tutorial 1

Execute the following command to start a Hello, world consumer

gradle run -P main=Recv

Execute the following in a separate shell to publish a Hello, world messge:

gradle run -P main=Send

Tutorial 2

Send a task message. The task will be completed immediately

gradle run -P main=NewTask

To start a worker (run in a separate shell):

gradle run -P main=Worker

Send a task message. It will wait for 1 second for each dot in the payload.

gradle run -P main=NewTask -P argv="rabbit1 ...."

Add more workers to the same queue, message will be distributed in the round robin manner.

Tutorial 3

gradle run -P main=ReceiveLogs
gradle run -P main=EmitLog -P argv="rabbit1, msg1"

Tutorial 4

gradle run -P main="ReceiveLogsDirect" -P argv="info,error"
gradle run -P main=EmitLogDirect"

Tutorial 5

gradle run -P main=ReceiveLogsTopic -P argv="anonymous.*"
gradle run -P main=EmitLogTopic -P argv="anonymous.info"

Tutorial 6

In one shell:

gradle run -P main=RPCServer

In another shell:

gradle run -P main=RPCClient