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
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
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