Advertisement
Guest User

Untitled

a guest
Aug 23rd, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.27 KB | None | 0 0
  1. package com.practicingtechie
  2.  
  3. import org.apache.activemq.artemis.api.core.TransportConfiguration
  4. import org.apache.activemq.artemis.api.core.SimpleString
  5. import org.apache.activemq.artemis.api.core.client.{ActiveMQClient, ClientMessage, MessageHandler}
  6. import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants._
  7. import scala.collection.JavaConversions._
  8.  
  9. // produce & consume messages using Apache Artemis v2.2.0 core API
  10. object ArtemisClient {
  11. val NettyConnectorFactory = "org.apache.activemq.artemis.core.remoting.impl.netty.NettyConnectorFactory"
  12.  
  13. val QueueName = "foo.bar.requests"
  14.  
  15. val creds = Map(
  16. "consumer-user1" -> "****",
  17. "producer-user1" -> "****"
  18. )
  19.  
  20. def createSession(userName: String) = {
  21. val connectionParams: Map[String, Object] = Map(
  22. PORT_PROP_NAME -> Int.box(61616),
  23. HOST_PROP_NAME -> "foo.bar.com",
  24. SSL_ENABLED_PROP_NAME -> Boolean.box(true),
  25. TRUSTSTORE_PATH_PROP_NAME -> "/foo/bar/my.keystore",
  26. TRUSTSTORE_PASSWORD_PROP_NAME -> "****"
  27. )
  28. val locator = ActiveMQClient.createServerLocatorWithoutHA(new TransportConfiguration(NettyConnectorFactory, connectionParams)).
  29. setThreadPoolMaxSize(10).
  30. setReconnectAttempts(-1)
  31.  
  32. val factory = locator.createSessionFactory()
  33.  
  34. factory.createSession(userName, creds(userName), false, true, true, false, 10)
  35. }
  36.  
  37.  
  38. def produceMessage(text: String) = {
  39. val session = ArtemisClient.createSession("producer-user1")
  40.  
  41. val producer = session.createProducer(QueueName)
  42. val message: ClientMessage = session.createMessage(true)
  43. message.getBodyBuffer().writeString(text)
  44.  
  45. producer.send(message)
  46. session.commit
  47. }
  48.  
  49. def consumeMessage() = {
  50. val session = ArtemisClient.createSession("consumer-user1")
  51. val consumer = session.createConsumer(QueueName)
  52. consumer.setMessageHandler(new MyMessageHandler)
  53.  
  54. session.start()
  55. Thread.sleep(890123)
  56.  
  57. session.close()
  58. }
  59.  
  60. class MyMessageHandler extends MessageHandler {
  61. override def onMessage(msg: ClientMessage): Unit = {
  62. val id = msg.getMessageID
  63. msg.acknowledge
  64. }
  65. }
  66.  
  67. def main(args: Array[String]): Unit = {
  68. val cmd = args(0)
  69. if (cmd == "send") {
  70. produceMessage("hello, world")
  71. } else if (cmd == "receive") {
  72. consumeMessage()
  73. }
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement