Modify restructure
[holmes/common.git] / holmes-actions / src / main / java / org / openo / holmes / common / producer / MQProducer.java
index 8cb3d2b..d258695 100644 (file)
@@ -24,6 +24,7 @@ import javax.jms.JMSException;
 import javax.jms.MessageProducer;\r
 import javax.jms.ObjectMessage;\r
 import javax.jms.Session;\r
+import lombok.NoArgsConstructor;\r
 import lombok.extern.slf4j.Slf4j;\r
 import org.glassfish.hk2.api.IterableProvider;\r
 import org.jvnet.hk2.annotations.Service;\r
@@ -32,15 +33,25 @@ import org.openo.holmes.common.api.stat.Alarm;
 import org.openo.holmes.common.api.stat.AplusResult;\r
 import org.openo.holmes.common.config.MQConfig;\r
 import org.openo.holmes.common.constant.AlarmConst;\r
+import org.apache.activemq.ActiveMQConnectionFactory;\r
 \r
 @Service\r
 @Slf4j\r
+@NoArgsConstructor\r
 public class MQProducer {\r
 \r
     @Inject\r
     private IterableProvider<MQConfig> mqConfigProvider;\r
     private ConnectionFactory connectionFactory;\r
 \r
+    public void init() {\r
+\r
+        String brokerURL =\r
+            "tcp://" + mqConfigProvider.get().brokerIp + ":" + mqConfigProvider.get().brokerPort;\r
+        connectionFactory = new ActiveMQConnectionFactory(mqConfigProvider.get().brokerUsername,\r
+            mqConfigProvider.get().brokerPassword, brokerURL);\r
+    }\r
+\r
     public void sendAlarmMQTopicMsg(Alarm alarm) {\r
         sendMQTopicMsg(alarm);\r
     }\r
@@ -55,14 +66,18 @@ public class MQProducer {
         Serializable msgEntity = (Serializable) t;\r
         Connection connection = null;\r
         Session session;\r
-        Destination destination;\r
+        Destination destination = null;\r
         MessageProducer messageProducer;\r
 \r
         try {\r
             connection = connectionFactory.createConnection();\r
             connection.start();\r
             session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);\r
-            destination = session.createTopic(AlarmConst.MQ_TOPIC_NAME_ALARMS_CORRELATION);\r
+            if (t instanceof CorrelationResult) {\r
+                destination = session.createTopic(AlarmConst.MQ_TOPIC_NAME_ALARMS_CORRELATION);\r
+            } else if (t instanceof Alarm) {\r
+                destination = session.createTopic(AlarmConst.MQ_TOPIC_NAME_ALARM);\r
+            }\r
             messageProducer = session.createProducer(destination);\r
             ObjectMessage message = session.createObjectMessage(msgEntity);\r
             messageProducer.send(message);\r