changes for kafka upgrade
[dmaap/messagerouter/mirroragent.git] / src / main / java / com / att / nsa / dmaapMMAgent / MirrorMakerAgent.java
index 3f993db..977caae 100644 (file)
  *  ECOMP is a trademark and service mark of AT&T Intellectual Property.
  *  
  *******************************************************************************/
-
 package com.att.nsa.dmaapMMAgent;
 
+import java.io.BufferedReader;
+import java.io.DataOutputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
+import java.io.InputStreamReader;
 import java.io.OutputStream;
+import java.net.HttpURLConnection;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Properties;
-
-import org.apache.log4j.Level;
-import org.apache.log4j.Logger;
-import org.jasypt.util.text.BasicTextEncryptor;
+//import org.json.JSONObject;
+//import org.apache.log4j.Logger;
+//import org.jasypt.util.text.BasicTextEncryptor;
 
 import com.att.nsa.dmaapMMAgent.dao.CreateMirrorMaker;
 import com.att.nsa.dmaapMMAgent.dao.DeleteMirrorMaker;
@@ -43,9 +46,12 @@ import com.att.nsa.dmaapMMAgent.dao.UpdateMirrorMaker;
 import com.att.nsa.dmaapMMAgent.dao.UpdateWhiteList;
 import com.att.nsa.dmaapMMAgent.utils.MirrorMakerProcessHandler;
 import com.google.gson.Gson;
+import com.google.gson.JsonArray;
 import com.google.gson.internal.LinkedTreeMap;
+import com.sun.org.apache.xerces.internal.impl.dtd.models.CMAny;
+import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
 
-public class MirrorMakerAgent {
+public class MirrorMakerAgent {/*
        static final Logger logger = Logger.getLogger(MirrorMakerAgent.class);
        Properties mirrorMakerProperties = new Properties();
        ListMirrorMaker mirrorMakers = null;
@@ -55,8 +61,7 @@ public class MirrorMakerAgent {
        String topicname = "";
        String mechid = "";
        String password = "";
-       TopicUtil topicUtil = new TopicUtil();
-       public boolean exitLoop = false;
+       String grepLog = "";
        private static String secret = "utdfpWlgyDQ2ZB8SLVRtmN834I1JcT9J";
 
        public static void main(String[] args) {
@@ -76,7 +81,12 @@ public class MirrorMakerAgent {
                MirrorMakerAgent agent = new MirrorMakerAgent();
                if (agent.checkStartup()) {
                        logger.info("mmagent started, loading properties");
-                       agent.checkAgentProcess();
+                       try {
+                               agent.checkAgentProcess();
+                       } catch (Exception e) {
+                               
+                               e.printStackTrace();
+                       }
                        agent.readAgentTopic();
                } else {
                        System.out.println(
@@ -91,49 +101,42 @@ public class MirrorMakerAgent {
                        input = new FileInputStream(mmagenthome + "/etc/mmagent.config");
                        logger.info("mmagenthome is set :" + mmagenthome + " loading properties at /etc/mmagent.config");
                } catch (IOException ex) {
-                       logger.error(
-                                       mmagenthome + "/etc/mmagent.config not found.  Set -DMMAGENTHOME and check the config file" + ex);
+                       logger.error(mmagenthome + "/etc/mmagent.config not found.  Set -DMMAGENTHOME and check the config file");
                        return false;
                } finally {
                        if (input != null) {
                                try {
                                        input.close();
                                } catch (IOException e) {
-                                       logger.error(" IOException occers " + e);
+                                       e.printStackTrace();
                                }
                        }
                }
                loadProperties();
                input = null;
                try {
-                       /*
-                        * input = new FileInputStream(kafkahome +
-                        * "/bin/kafka-run-class.sh");
-                        */
-                       if (false) {
-                               throw new IOException();
-                       }
+                       input = new FileInputStream(kafkahome + "/bin/kafka-run-class.sh");
                        logger.info("kakahome is set :" + kafkahome);
                } catch (IOException ex) {
-                       logger.error(kafkahome + "/bin/kafka-run-class.sh not found.  Make sure kafka home is set correctly" + ex);
+                       logger.error(kafkahome + "/bin/kafka-run-class.sh not found.  Make sure kafka home is set correctly");
                        return false;
                } finally {
                        if (input != null) {
                                try {
                                        input.close();
                                } catch (IOException e) {
-                                       logger.error("IOException" + e);
+                                       e.printStackTrace();
                                }
                        }
                }
-               String response = topicUtil.publishTopic(topicURL, topicname, mechid, password, "{\"test\":\"test\"}");
+               String response = publishTopic("{\"test\":\"test\"}");
                if (response.startsWith("ERROR:")) {
                        logger.error("Problem publishing to topic, please verify the config " + this.topicname + " MR URL is:"
                                        + this.topicURL + " Error is:  " + response);
                        return false;
                }
                logger.info("Published to Topic :" + this.topicname + " Successfully");
-               response = topicUtil.subscribeTopic(topicURL, topicname, "1", response, response);
+               response = subscribeTopic("1");
                if (response != null && response.startsWith("ERROR:")) {
                        logger.error("Problem subscribing to topic, please verify the config " + this.topicname + " MR URL is:"
                                        + this.topicURL + " Error is:  " + response);
@@ -143,38 +146,41 @@ public class MirrorMakerAgent {
                return true;
        }
 
-       private void checkPropertiesFile(String agentName, String propName, String info, boolean refresh) {
+       private void checkPropertiesFile(MirrorMaker mm, String propName, boolean refresh) {
                InputStream input = null;
                OutputStream out = null;
                try {
                        if (refresh) {
                                throw new IOException();
                        }
-                       input = new FileInputStream(mmagenthome + "/etc/" + agentName + propName + ".properties");
+                       input = new FileInputStream(mmagenthome + "/etc/" + mm.name + propName + ".properties");
                } catch (IOException ex) {
-                       logger.error(" IOException will be handled " + ex);
                        try {
                                input = new FileInputStream(mmagenthome + "/etc/" + propName + ".properties");
                                Properties prop = new Properties();
                                prop.load(input);
                                if (propName.equals("consumer")) {
-                                       prop.setProperty("group.id", agentName);
-                                       prop.setProperty("zookeeper.connect", info);
-                               } else {
-                                       prop.setProperty("metadata.broker.list", info);
+                               prop.setProperty("group.id", mm.name);
+          
+                                prop.setProperty("bootstrap.servers", mm.consumer);
+                                 prop.setProperty("client.id", mm.name + "MM_consumer");
+                                 } else {
+                                       prop.setProperty("bootstrap.servers", mm.producer);
+          prop.setProperty("client.id", mm.name + "MM_producer");
+                               
                                }
-                               out = new FileOutputStream(mmagenthome + "/etc/" + agentName + propName + ".properties");
+                               out = new FileOutputStream(mmagenthome + "/etc/" + mm.name + propName + ".properties");
                                prop.store(out, "");
 
                        } catch (Exception e) {
-                               logger.error("Exception at checkPropertiesFile " + e);
+                               e.printStackTrace();
                        }
                } finally {
                        if (input != null) {
                                try {
                                        input.close();
                                } catch (IOException e) {
-                                       logger.error("Exception occurred is " + e);
+                                       e.printStackTrace();
                                }
                        }
                        if (out != null) {
@@ -182,28 +188,26 @@ public class MirrorMakerAgent {
                                        out.close();
                                } catch (IOException e) {
                                        e.printStackTrace();
-                                       logger.error("Exception is : " + e);
                                }
                        }
                }
        }
 
-       private void checkAgentProcess() {
+       private void checkAgentProcess() throws Exception {
                logger.info("Checking MirrorMaker Process");
                if (mirrorMakers != null) {
                        int mirrorMakersCount = mirrorMakers.getListMirrorMaker().size();
                        for (int i = 0; i < mirrorMakersCount; i++) {
                                MirrorMaker mm = mirrorMakers.getListMirrorMaker().get(i);
-                               if (MirrorMakerProcessHandler.checkMirrorMakerProcess(mm.name) == false) {
-                                       checkPropertiesFile(mm.name, "consumer", mm.consumer, false);
-                                       checkPropertiesFile(mm.name, "producer", mm.producer, false);
+                               if (MirrorMakerProcessHandler.checkMirrorMakerProcess(mm.name,mm.enablelogCheck,this.grepLog) == false) {
+                                       checkPropertiesFile(mm, "consumer", false);
+                                       checkPropertiesFile(mm, "producer", false);
 
                                        if (mm.whitelist != null && !mm.whitelist.equals("")) {
-                                               logger.info(
-                                                               "MirrorMaker " + mm.name + " is not running, restarting.  Check Logs for more Details");
+                                               logger.info("MirrorMaker " + mm.name + " is not running, restarting.  Check Logs for more Details");
                                                MirrorMakerProcessHandler.startMirrorMaker(this.mmagenthome, this.kafkahome, mm.name,
                                                                mmagenthome + "/etc/" + mm.name + "consumer.properties",
-                                                               mmagenthome + "/etc/" + mm.name + "producer.properties", mm.whitelist);
+                                                               mmagenthome + "/etc/" + mm.name + "producer.properties",mm.numStreams, mm.whitelist);
                                                mm.setStatus("RESTARTING");
 
                                        } else {
@@ -213,7 +217,6 @@ public class MirrorMakerAgent {
                                        try {
                                                Thread.sleep(1000);
                                        } catch (InterruptedException e) {
-                                               Thread.currentThread().interrupt();
                                        }
                                        mirrorMakers.getListMirrorMaker().set(i, mm);
                                } else {
@@ -227,26 +230,146 @@ public class MirrorMakerAgent {
                // System.out.println(g.toJson(mirrorMakers));
        }
 
-       public void readAgentTopic() {
+       private String subscribeTopic(String timeout) {
+               String response = "";
+               try {
+                       String requestURL = this.topicURL + "/events/" + this.topicname + "/mirrormakeragent/1?timeout=" + timeout
+                                       + "&limit=1";
+                       String authString = this.mechid + ":" + this.password;
+                       String authStringEnc = Base64.encode(authString.getBytes());
+                       URL url = new URL(requestURL);
+                       HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+                       connection.setRequestMethod("GET");
+                       connection.setDoOutput(true);
+                       connection.setRequestProperty("Authorization", "Basic " + authStringEnc);
+                       connection.setRequestProperty("Content-Type", "application/json");
+                       InputStream content = (InputStream) connection.getInputStream();
+                       BufferedReader in = new BufferedReader(new InputStreamReader(content));
+                       String line;
+
+                       while ((line = in.readLine()) != null) {
+                               response = response + line;
+                       }
+                       Gson g = new Gson();
+                       //Get message as JSON Array
+                       JsonArray topicMessage = g.fromJson(response, JsonArray.class);
+                        if (topicMessage.size() != 0) {
+                                return topicMessage.get(0).toString();
+                        }
+                       
+                       // get message as JSON String Array
+                       String[] topicMessage = g.fromJson(response, String[].class);
+                       if (topicMessage.length != 0) {
+                               return topicMessage[0];
+                       }
+               } catch (Exception e) {
+                       return "ERROR:" + e.getMessage() + " Server Response is:" + response;
+               }
+               return null;
+       }
+
+       private String publishTopic(String message) {
+               try {
+                       String requestURL = this.topicURL + "/events/" + this.topicname;
+                       String authString = this.mechid + ":" + this.password;
+                       String authStringEnc = Base64.encode(authString.getBytes());
+                       URL url = new URL(requestURL);
+                       HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+                       connection.setRequestMethod("POST");
+                       connection.setDoOutput(true);
+                       connection.setRequestProperty("Authorization", "Basic " + authStringEnc);
+                       connection.setRequestProperty("Content-Type", "application/json");
+                       connection.setRequestProperty("Content-Length", Integer.toString(message.length()));
+                       DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
+                       wr.write(message.getBytes());
+
+                       InputStream content = (InputStream) connection.getInputStream();
+                       BufferedReader in = new BufferedReader(new InputStreamReader(content));
+                       String line;
+                       String response = "";
+                       while ((line = in.readLine()) != null) {
+                               response = response + line;
+                       }
+                       return response;
+
+               } catch (Exception e) {
+                       return "ERROR:" + e.getLocalizedMessage();
+               }
+       }
+
+       private void readAgentTopic() {
                try {
                        int connectionattempt = 0;
                        while (true) {
                                logger.info("--------------------------------");
                                logger.info("Waiting for Messages for 60 secs");
-                               String topicMessage = topicUtil.subscribeTopic(topicURL, topicname, "60000", mechid, password);
+                               String topicMessage = subscribeTopic("60000");
                                Gson g = new Gson();
                                LinkedTreeMap<?, ?> object = null;
                                if (topicMessage != null) {
                                        try {
+                                               //Check and parse if String object returned by consumer API
+                                               //else use the jsonObject
+                                                if( topicMessage.startsWith("\""))
+                                                   {
+                                                       topicMessage = g.fromJson(topicMessage.toString(), String.class);
+                                                   }
                                                object = g.fromJson(topicMessage, LinkedTreeMap.class);
 
                                                // Cast the 1st item (since limit=1 and see the type of
                                                // object
-                                               readAgent(object, topicMessage);
+                                               if (object.get("createMirrorMaker") != null) {
+                                                       logger.info("Received createMirrorMaker request from topic");
+                                                       CreateMirrorMaker m = g.fromJson(topicMessage, CreateMirrorMaker.class);
+                                                       createMirrorMaker(m.getCreateMirrorMaker());
+                                                       checkAgentProcess();
+                                                       mirrorMakers.setMessageID(m.getMessageID());
+                                                       publishTopic(g.toJson(mirrorMakers));
+                                                       mirrorMakers.setMessageID("");
+                                               } else if (object.get("updateMirrorMaker") != null) {
+                                                       logger.info("Received updateMirrorMaker request from topic");
+                                                       UpdateMirrorMaker m = g.fromJson(topicMessage, UpdateMirrorMaker.class);
+                                                       JSONObject json = new JSONObject(topicMessage);
+                                                       JSONObject json2 = (JSONObject) json.get("updateMirrorMaker");
+                                                       if(!json2.has("numStreams")){
+                                                               m.getUpdateMirrorMaker().setNumStreams(0);
+                                                       }
+                                                       updateMirrorMaker(m.getUpdateMirrorMaker());
+                                                       checkAgentProcess();
+                                                       mirrorMakers.setMessageID(m.getMessageID());
+                                                       publishTopic(g.toJson(mirrorMakers));
+                                                       mirrorMakers.setMessageID("");
+                                               } else if (object.get("deleteMirrorMaker") != null) {
+                                                       logger.info("Received deleteMirrorMaker request from topic");
+                                                       DeleteMirrorMaker m = g.fromJson(topicMessage, DeleteMirrorMaker.class);
+                                                       deleteMirrorMaker(m.getDeleteMirrorMaker());
+                                                       checkAgentProcess();
+                                                       mirrorMakers.setMessageID(m.getMessageID());
+                                                       publishTopic(g.toJson(mirrorMakers));
+                                                       mirrorMakers.setMessageID("");
+                                               } else if (object.get("listAllMirrorMaker") != null) {
+                                                       logger.info("Received listALLMirrorMaker request from topic");
+                                                       checkAgentProcess();
+                                                       mirrorMakers.setMessageID((String) object.get("messageID"));
+                                                       publishTopic(g.toJson(mirrorMakers));
+                                                       mirrorMakers.setMessageID("");
+                                               } else if (object.get("updateWhiteList") != null) {
+                                                       logger.info("Received updateWhiteList request from topic");
+                                                       UpdateWhiteList m = g.fromJson(topicMessage, UpdateWhiteList.class);
+                                                       updateWhiteList(m.getUpdateWhiteList());
+                                                       checkAgentProcess();
+                                                       mirrorMakers.setMessageID(m.getMessageID());
+                                                       publishTopic(g.toJson(mirrorMakers));
+                                                       mirrorMakers.setMessageID("");
+                                               } else if (object.get("listMirrorMaker") != null) {
+                                                       logger.info("Received listMirrorMaker from topic, skipping messages");
+                                               } else {
+                                                       logger.info("Received unknown request from topic");
+                                               }
                                        } catch (Exception ex) {
                                                connectionattempt++;
                                                if (connectionattempt > 5) {
-                                                       logger.info("Can't connect to the topic, mmagent shutting down , " + topicMessage + ex);
+                                                       logger.info("Can't connect to the topic, mmagent shutting down , " + topicMessage);
                                                        return;
                                                }
                                                logger.info("Can't connect to the topic, " + topicMessage + " Retrying " + connectionattempt
@@ -258,66 +381,15 @@ public class MirrorMakerAgent {
                                        connectionattempt = 0;
                                        checkAgentProcess();
                                }
-                               if (exitLoop) {
-                                       break;
-                               }
+
                        }
                } catch (Exception e) {
-                       logger.error("Exception at readAgentTopic : " + e);
-               }
-
-       }
-
-       public void readAgent(LinkedTreeMap<?, ?> object, String topicMessage) {
-
-               Gson g = new Gson();
-
-               if (object.get("createMirrorMaker") != null) {
-                       logger.info("Received createMirrorMaker request from topic");
-                       CreateMirrorMaker m = g.fromJson(topicMessage, CreateMirrorMaker.class);
-                       createMirrorMaker(m.getCreateMirrorMaker());
-                       checkAgentProcess();
-                       mirrorMakers.setMessageID(m.getMessageID());
-                       topicUtil.publishTopic(topicMessage, topicMessage, topicMessage, topicMessage, g.toJson(mirrorMakers));
-                       mirrorMakers.setMessageID("");
-               } else if (object.get("updateMirrorMaker") != null) {
-                       logger.info("Received updateMirrorMaker request from topic");
-                       UpdateMirrorMaker m = g.fromJson(topicMessage, UpdateMirrorMaker.class);
-                       updateMirrorMaker(m.getUpdateMirrorMaker());
-                       checkAgentProcess();
-                       mirrorMakers.setMessageID(m.getMessageID());
-                       topicUtil.publishTopic(topicMessage, topicMessage, topicMessage, topicMessage, g.toJson(mirrorMakers));
-                       mirrorMakers.setMessageID("");
-               } else if (object.get("deleteMirrorMaker") != null) {
-                       logger.info("Received deleteMirrorMaker request from topic");
-                       DeleteMirrorMaker m = g.fromJson(topicMessage, DeleteMirrorMaker.class);
-                       deleteMirrorMaker(m.getDeleteMirrorMaker());
-                       checkAgentProcess();
-                       mirrorMakers.setMessageID(m.getMessageID());
-                       topicUtil.publishTopic(topicMessage, topicMessage, topicMessage, topicMessage, g.toJson(mirrorMakers));
-                       mirrorMakers.setMessageID("");
-               } else if (object.get("listAllMirrorMaker") != null) {
-                       logger.info("Received listALLMirrorMaker request from topic");
-                       checkAgentProcess();
-                       mirrorMakers.setMessageID((String) object.get("messageID"));
-                       topicUtil.publishTopic(topicMessage, topicMessage, topicMessage, topicMessage, g.toJson(mirrorMakers));
-               } else if (object.get("updateWhiteList") != null) {
-                       logger.info("Received updateWhiteList request from topic");
-                       UpdateWhiteList m = g.fromJson(topicMessage, UpdateWhiteList.class);
-                       updateWhiteList(m.getUpdateWhiteList());
-                       checkAgentProcess();
-                       mirrorMakers.setMessageID(m.getMessageID());
-                       topicUtil.publishTopic(topicMessage, topicMessage, topicMessage, topicMessage, g.toJson(mirrorMakers));
-                       mirrorMakers.setMessageID("");
-               } else if (object.get("listMirrorMaker") != null) {
-                       logger.info("Received listMirrorMaker from topic, skipping messages");
-               } else {
-                       logger.info("Received unknown request from topic");
+                       e.printStackTrace();
                }
 
        }
 
-       protected void createMirrorMaker(MirrorMaker newMirrorMaker) {
+       private void createMirrorMaker(MirrorMaker newMirrorMaker) {
                boolean exists = false;
                if (mirrorMakers != null) {
                        int mirrorMakersCount = mirrorMakers.getListMirrorMaker().size();
@@ -336,12 +408,12 @@ public class MirrorMakerAgent {
                } else if (exists == false && mirrorMakers == null) {
                        mirrorMakers = new ListMirrorMaker();
                        ArrayList<MirrorMaker> list = mirrorMakers.getListMirrorMaker();
-                       list = new ArrayList();
+                       list = new ArrayList<MirrorMaker>();
                        list.add(newMirrorMaker);
                        mirrorMakers.setListMirrorMaker(list);
                }
-               checkPropertiesFile(newMirrorMaker.name, "consumer", newMirrorMaker.consumer, true);
-               checkPropertiesFile(newMirrorMaker.name, "producer", newMirrorMaker.producer, true);
+               checkPropertiesFile(newMirrorMaker, "consumer",  true);
+               checkPropertiesFile(newMirrorMaker, "producer",  true);
 
                Gson g = new Gson();
                mirrorMakerProperties.setProperty("mirrormakers", g.toJson(this.mirrorMakers));
@@ -350,7 +422,7 @@ public class MirrorMakerAgent {
                        out = new FileOutputStream(mmagenthome + "/etc/mmagent.config");
                        mirrorMakerProperties.store(out, "");
                } catch (IOException ex) {
-                       logger.error(" IOException Occered " + ex);
+                       ex.printStackTrace();
                } finally {
                        if (out != null) {
                                try {
@@ -370,16 +442,30 @@ public class MirrorMakerAgent {
                                MirrorMaker mm = mirrorMakers.getListMirrorMaker().get(i);
                                if (mm.name.equals(newMirrorMaker.name)) {
                                        exists = true;
-                                       mm.setConsumer(newMirrorMaker.getConsumer());
-                                       mm.setProducer(newMirrorMaker.getProducer());
+                                       if(null!=newMirrorMaker.getConsumer()) 
+                                       {
+                                               mm.setConsumer(newMirrorMaker.getConsumer());
+                                       }
+                                       if(null!=newMirrorMaker.getProducer())
+                                       {
+                                               mm.setProducer(newMirrorMaker.getProducer());
+                                       }
+                                       if(newMirrorMaker.getNumStreams()>=1) 
+                                       {
+                                               mm.setNumStreams(newMirrorMaker.getNumStreams());
+                                       } 
+                                       
+                                       mm.setEnablelogCheck(newMirrorMaker.enablelogCheck);
+                                       
                                        mirrorMakers.getListMirrorMaker().set(i, mm);
+                                       newMirrorMaker=mm;
                                        logger.info("Updating MirrorMaker:" + newMirrorMaker.name);
                                }
                        }
                }
                if (exists) {
-                       checkPropertiesFile(newMirrorMaker.name, "consumer", newMirrorMaker.consumer, true);
-                       checkPropertiesFile(newMirrorMaker.name, "producer", newMirrorMaker.producer, true);
+                       checkPropertiesFile(newMirrorMaker, "consumer", true);
+                       checkPropertiesFile(newMirrorMaker, "producer", true);
 
                        Gson g = new Gson();
                        mirrorMakerProperties.setProperty("mirrormakers", g.toJson(this.mirrorMakers));
@@ -391,17 +477,15 @@ public class MirrorMakerAgent {
                                try {
                                        Thread.sleep(1000);
                                } catch (InterruptedException e) {
-                                       logger.log(Level.WARN, "Interrupted!", e);
-                                       Thread.currentThread().interrupt();
                                }
                        } catch (IOException ex) {
-                               logger.error(" IOException Occered " + ex);
+                               ex.printStackTrace();
                        } finally {
                                if (out != null) {
                                        try {
                                                out.close();
                                        } catch (IOException e) {
-                                               logger.error(" IOException Occered " + e);
+                                               e.printStackTrace();
                                        }
                                }
                        }
@@ -436,18 +520,15 @@ public class MirrorMakerAgent {
                                try {
                                        Thread.sleep(1000);
                                } catch (InterruptedException e) {
-                                       logger.log(Level.WARN, "Interrupted!", e);
-                                       Thread.currentThread().interrupt();
                                }
                        } catch (IOException ex) {
-                               logger.error("Exception at updateWhiteList : " + ex);
+                               ex.printStackTrace();
                        } finally {
                                if (out != null) {
                                        try {
                                                out.close();
                                        } catch (IOException e) {
                                                e.printStackTrace();
-                                               logger.error("IOException occered " + e);
                                        }
                                }
                        }
@@ -527,12 +608,11 @@ public class MirrorMakerAgent {
                        this.topicURL = mirrorMakerProperties.getProperty("topicURL");
                        this.topicname = mirrorMakerProperties.getProperty("topicname");
                        this.mechid = mirrorMakerProperties.getProperty("mechid");
+                       this.grepLog= mirrorMakerProperties.getProperty("grepLog");
 
                        BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
                        textEncryptor.setPassword(secret);
-                       // this.password =
-                       // textEncryptor.decrypt(mirrorMakerProperties.getProperty("password"));
-                       this.password = mirrorMakerProperties.getProperty("password");
+                       this.password = textEncryptor.decrypt(mirrorMakerProperties.getProperty("password"));
                } catch (IOException ex) {
                        // ex.printStackTrace();
                } finally {
@@ -546,4 +626,4 @@ public class MirrorMakerAgent {
                }
 
        }
-}
+*/}