Tuesday, April 8, 2014

post messages to Active MQ

import lrapi.lr;
import javax.jms.Connection;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageProducer;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.apache.activemq.command.ActiveMQTextMessage;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import javax.jms.*;

public class Actions
{
    //private static String connectionString ="failover:(ssl://cpliqap0.hoxeepo.com:61625,ssl://cpliqap2.hoxeepo.com:61625)";
    private static String connectionString ="failover:(ssl://cplinpm0.homedepot.com:61625,ssl://cplinpm2.homedepot.com:61625,ssl://cplinpm4.homedepot.com:61625,ssl://cplinpm6.homedepot.com:61625,ssl://cplinpn0.homedepot.com:61625,ssl://cplinpn2.homedepot.com:61625,ssl://cplinpn4.homedepot.com:61625,ssl://cplinpn6.homedepot.com:61625)";
    //private static String connectionString ="failover:(ssl://cplinpm0.homedepot.com:61625)";
    private static String queueName  = "MM.PO.POM.VT.IOSTATUS.VISIBILITY";//dynamicQueues/MM.PO.POM.VT.IOSTATUS.VISIBILITY
    private static String userName = "mmpoUser";
    private static String password = "mmpoP@ssw0rd";
    private String xmlStr = null;
    private String finalFileName = null;
    private String xmlDocument = null;

    private Session session = null;
    private MessageProducer producer = null;
    private Connection conn = null;
    private Message message = null;
    private String Formatted_msg = null;
    private TextMessage messageSend = null;


public int init() throws Throwable {
try{
   ActiveMQConnectionFactory cf = new ActiveMQConnectionFactory();

   cf.setBrokerURL(connectionString);
   cf.setUserName(userName);
   cf.setPassword(password);

   conn = cf.createQueueConnection();
   conn.start();
   session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
   Destination destination =  session.createQueue(queueName);
   producer = session.createProducer(destination);

}catch(JMSException ex){
                  ex.printStackTrace();
}
return 0;
}//end of init


public int action() throws Throwable {
   FileReader fr = null;
   File f=new File("POMS_1.xml");

   int fileLength = (int) f.length();
   char[] cbuf = new char[fileLength];

 
   try {
     fr = new FileReader(f);
     fr.read(cbuf);
   } catch (FileNotFoundException e) {
     lr.error_message("Could not find data file: " + f);
     lr.abort();
   } catch (IOException e) {
     lr.error_message("Error reading file: " + f);
     lr.abort();
   } finally{
   try{
if(fr!=null){
   fr.close();
}
   }catch(IOException ioe){
     lr.error_message("Error closing file reader: " + ioe);
     lr.abort();
   }
}

 
   new String(cbuf);
            String xmlDocument = String.valueOf(cbuf);
   xmlDocument = xmlDocument.replace("<skuNbr>100013</skuNbr>","<skuNbr><SKUNo></skuNbr>");
   xmlDocument = xmlDocument.replace("<poNbr>42</poNbr>","<poNbr><PONo></poNbr>");
   xmlDocument = xmlDocument.replace("<lastUpdatedTs>2013-07-25T13:00:00</lastUpdatedTs>","<lastUpdatedTs><CurrTimeStamp></lastUpdatedTs>");

   Formatted_msg =  xmlDocument;
   messageSend = session.createTextMessage();
   messageSend.setText(Formatted_msg);

   lr.start_transaction("POMS_01_TIBCO_FEED_1");
//    lr.output_message("**"+ messageSend);
//    lr.output_message("**messageSend.getText()\n"+ messageSend.getText());
                    producer.send(messageSend);
                    lr.end_transaction("POMS_01_TIBCO_FEED_1", lr.AUTO);

return 0;
}//end of action


public int end() throws Throwable {
   session.close();
   conn.close();
return 0;
}//end of end
}

1 comment: