Revert package name changes
[dmaap/messagerouter/mirroragent.git] / src / main / java / com / att / nsa / dmaapMMAgent / MirrorMakerAgent.java
1 /*******************************************************************************
2  *  ============LICENSE_START=======================================================
3  *  org.onap.dmaap
4  *  ================================================================================
5  *  Copyright © 2017 AT&T Intellectual Property. All rights reserved.
6  *  ================================================================================
7  *  Licensed under the Apache License, Version 2.0 (the "License");
8  *  you may not use this file except in compliance with the License.
9  *  You may obtain a copy of the License at
10  *        http://www.apache.org/licenses/LICENSE-2.0
11  *  
12  *  Unless required by applicable law or agreed to in writing, software
13  *  distributed under the License is distributed on an "AS IS" BASIS,
14  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  *  See the License for the specific language governing permissions and
16  *  limitations under the License.
17  *  ============LICENSE_END=========================================================
18  *
19  *  ECOMP is a trademark and service mark of AT&T Intellectual Property.
20  *  
21  *******************************************************************************/
22
23 package com.att.nsa.dmaapMMAgent;
24
25 import java.io.BufferedReader;
26 import java.io.DataOutputStream;
27 import java.io.File;
28 import java.io.FileInputStream;
29 import java.io.FileOutputStream;
30 import java.io.IOException;
31 import java.io.InputStream;
32 import java.io.InputStreamReader;
33 import java.io.OutputStream;
34 import java.net.HttpURLConnection;
35 import java.net.URL;
36 import java.util.ArrayList;
37 import java.util.Properties;
38
39 import org.apache.log4j.Logger;
40 import org.jasypt.util.text.BasicTextEncryptor;
41
42 import com.att.nsa.dmaapMMAgent.dao.CreateMirrorMaker;
43 import com.att.nsa.dmaapMMAgent.dao.DeleteMirrorMaker;
44 import com.att.nsa.dmaapMMAgent.dao.ListMirrorMaker;
45 import com.att.nsa.dmaapMMAgent.dao.MirrorMaker;
46 import com.att.nsa.dmaapMMAgent.dao.UpdateMirrorMaker;
47 import com.att.nsa.dmaapMMAgent.dao.UpdateWhiteList;
48 import com.att.nsa.dmaapMMAgent.utils.MirrorMakerProcessHandler;
49 import com.google.gson.Gson;
50 import com.google.gson.internal.LinkedTreeMap;
51 import com.sun.org.apache.xerces.internal.impl.dtd.models.CMAny;
52 import com.sun.org.apache.xerces.internal.impl.dv.util.Base64;
53
54 public class MirrorMakerAgent {
55         static final Logger logger = Logger.getLogger(MirrorMakerAgent.class);
56         Properties mirrorMakerProperties = new Properties();
57         ListMirrorMaker mirrorMakers = null;
58         String mmagenthome = "";
59         String kafkahome = "";
60         String topicURL = "";
61         String topicname = "";
62         String mechid = "";
63         String password = "";
64         private static String secret = "utdfpWlgyDQ2ZB8SLVRtmN834I1JcT9J";
65
66         public static void main(String[] args) {
67                 if (args != null && args.length == 2) {
68                         if (args[0].equals("-encrypt")) {
69                                 BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
70                                 textEncryptor.setPassword(secret);
71                                 String plainText = textEncryptor.encrypt(args[1]);
72                                 System.out.println("Encrypted Password is :" + plainText);
73                                 return;
74                         }
75                 } else if (args != null && args.length > 0) {
76                         System.out.println(
77                                         "Usage: ./mmagent to run with the configuration \n -encrypt <password> to Encrypt Password for config ");
78                         return;
79                 }
80                 MirrorMakerAgent agent = new MirrorMakerAgent();
81                 if (agent.checkStartup()) {
82                         logger.info("mmagent started, loading properties");
83                         agent.checkAgentProcess();
84                         agent.readAgentTopic();
85                 } else {
86                         System.out.println(
87                                         "ERROR: mmagent startup unsuccessful, please make sure the mmagenthome /etc/mmagent.config is set and mechid have the rights to the topic");
88                 }
89         }
90
91         private boolean checkStartup() {
92                 FileInputStream input = null;
93                 try {
94                         this.mmagenthome = System.getProperty("MMAGENTHOME");
95                         input = new FileInputStream(mmagenthome + "/etc/mmagent.config");
96                         logger.info("mmagenthome is set :" + mmagenthome + " loading properties at /etc/mmagent.config");
97                 } catch (IOException ex) {
98                         logger.error(mmagenthome + "/etc/mmagent.config not found.  Set -DMMAGENTHOME and check the config file");
99                         return false;
100                 } finally {
101                         if (input != null) {
102                                 try {
103                                         input.close();
104                                 } catch (IOException e) {
105                                         e.printStackTrace();
106                                 }
107                         }
108                 }
109                 loadProperties();
110                 input = null;
111                 try {
112                         input = new FileInputStream(kafkahome + "/bin/kafka-run-class.sh");
113                         logger.info("kakahome is set :" + kafkahome);
114                 } catch (IOException ex) {
115                         logger.error(kafkahome + "/bin/kafka-run-class.sh not found.  Make sure kafka home is set correctly");
116                         return false;
117                 } finally {
118                         if (input != null) {
119                                 try {
120                                         input.close();
121                                 } catch (IOException e) {
122                                         e.printStackTrace();
123                                 }
124                         }
125                 }
126                 String response = publishTopic("{\"test\":\"test\"}");
127                 if (response.startsWith("ERROR:")) {
128                         logger.error("Problem publishing to topic, please verify the config " + this.topicname + " MR URL is:"
129                                         + this.topicURL + " Error is:  " + response);
130                         return false;
131                 }
132                 logger.info("Published to Topic :" + this.topicname + " Successfully");
133                 response = subscribeTopic("1");
134                 if (response != null && response.startsWith("ERROR:")) {
135                         logger.error("Problem subscribing to topic, please verify the config " + this.topicname + " MR URL is:"
136                                         + this.topicURL + " Error is:  " + response);
137                         return false;
138                 }
139                 logger.info("Subscribed to Topic :" + this.topicname + " Successfully");
140                 return true;
141         }
142
143         private void checkPropertiesFile(String agentName, String propName, String info, boolean refresh) {
144                 InputStream input = null;
145                 OutputStream out = null;
146                 try {
147                         if (refresh) {
148                                 throw new IOException();
149                         }
150                         input = new FileInputStream(mmagenthome + "/etc/" + agentName + propName + ".properties");
151                 } catch (IOException ex) {
152                         try {
153                                 input = new FileInputStream(mmagenthome + "/etc/" + propName + ".properties");
154                                 Properties prop = new Properties();
155                                 prop.load(input);
156                                 if (propName.equals("consumer")) {
157                                         prop.setProperty("group.id", agentName);
158                                         prop.setProperty("zookeeper.connect", info);
159                                 } else {
160                                         prop.setProperty("metadata.broker.list", info);
161                                 }
162                                 out = new FileOutputStream(mmagenthome + "/etc/" + agentName + propName + ".properties");
163                                 prop.store(out, "");
164
165                         } catch (Exception e) {
166                                 e.printStackTrace();
167                         }
168                 } finally {
169                         if (input != null) {
170                                 try {
171                                         input.close();
172                                 } catch (IOException e) {
173                                         e.printStackTrace();
174                                 }
175                         }
176                         if (out != null) {
177                                 try {
178                                         out.close();
179                                 } catch (IOException e) {
180                                         e.printStackTrace();
181                                 }
182                         }
183                 }
184         }
185
186         private void checkAgentProcess() {
187                 logger.info("Checking MirrorMaker Process");
188                 if (mirrorMakers != null) {
189                         int mirrorMakersCount = mirrorMakers.getListMirrorMaker().size();
190                         for (int i = 0; i < mirrorMakersCount; i++) {
191                                 MirrorMaker mm = mirrorMakers.getListMirrorMaker().get(i);
192                                 if (MirrorMakerProcessHandler.checkMirrorMakerProcess(mm.name) == false) {
193                                         checkPropertiesFile(mm.name, "consumer", mm.consumer, false);
194                                         checkPropertiesFile(mm.name, "producer", mm.producer, false);
195
196                                         if (mm.whitelist != null && !mm.whitelist.equals("")) {
197                                                 logger.info("MirrorMaker " + mm.name + " is not running, restarting.  Check Logs for more Details");
198                                                 MirrorMakerProcessHandler.startMirrorMaker(this.mmagenthome, this.kafkahome, mm.name,
199                                                                 mmagenthome + "/etc/" + mm.name + "consumer.properties",
200                                                                 mmagenthome + "/etc/" + mm.name + "producer.properties", mm.whitelist);
201                                                 mm.setStatus("RESTARTING");
202
203                                         } else {
204                                                 logger.info("MirrorMaker " + mm.name + " is STOPPED");
205                                                 mm.setStatus("STOPPED");
206                                         }
207                                         try {
208                                                 Thread.sleep(1000);
209                                         } catch (InterruptedException e) {
210                                         }
211                                         mirrorMakers.getListMirrorMaker().set(i, mm);
212                                 } else {
213                                         logger.info("MirrorMaker " + mm.name + " is running");
214                                         mm.setStatus("RUNNING");
215                                         mirrorMakers.getListMirrorMaker().set(i, mm);
216                                 }
217                         }
218                 }
219                 // Gson g = new Gson();
220                 // System.out.println(g.toJson(mirrorMakers));
221         }
222
223         private String subscribeTopic(String timeout) {
224                 String response = "";
225                 try {
226                         String requestURL = this.topicURL + "/events/" + this.topicname + "/mirrormakeragent/1?timeout=" + timeout
227                                         + "&limit=1";
228                         String authString = this.mechid + ":" + this.password;
229                         String authStringEnc = Base64.encode(authString.getBytes());
230                         URL url = new URL(requestURL);
231                         HttpURLConnection connection = (HttpURLConnection) url.openConnection();
232                         connection.setRequestMethod("GET");
233                         connection.setDoOutput(true);
234                         connection.setRequestProperty("Authorization", "Basic " + authStringEnc);
235                         connection.setRequestProperty("Content-Type", "application/json");
236                         InputStream content = (InputStream) connection.getInputStream();
237                         BufferedReader in = new BufferedReader(new InputStreamReader(content));
238                         String line;
239
240                         while ((line = in.readLine()) != null) {
241                                 response = response + line;
242                         }
243                         Gson g = new Gson();
244                         // get message as JSON String Array
245                         String[] topicMessage = g.fromJson(response, String[].class);
246                         if (topicMessage.length != 0) {
247                                 return topicMessage[0];
248                         }
249                 } catch (Exception e) {
250                         return "ERROR:" + e.getMessage() + " Server Response is:" + response;
251                 }
252                 return null;
253         }
254
255         private String publishTopic(String message) {
256                 try {
257                         String requestURL = this.topicURL + "/events/" + this.topicname;
258                         String authString = this.mechid + ":" + this.password;
259                         String authStringEnc = Base64.encode(authString.getBytes());
260                         URL url = new URL(requestURL);
261                         HttpURLConnection connection = (HttpURLConnection) url.openConnection();
262                         connection.setRequestMethod("POST");
263                         connection.setDoOutput(true);
264                         connection.setRequestProperty("Authorization", "Basic " + authStringEnc);
265                         connection.setRequestProperty("Content-Type", "application/json");
266                         connection.setRequestProperty("Content-Length", Integer.toString(message.length()));
267                         DataOutputStream wr = new DataOutputStream(connection.getOutputStream());
268                         wr.write(message.getBytes());
269
270                         InputStream content = (InputStream) connection.getInputStream();
271                         BufferedReader in = new BufferedReader(new InputStreamReader(content));
272                         String line;
273                         String response = "";
274                         while ((line = in.readLine()) != null) {
275                                 response = response + line;
276                         }
277                         return response;
278
279                 } catch (Exception e) {
280                         return "ERROR:" + e.getLocalizedMessage();
281                 }
282         }
283
284         private void readAgentTopic() {
285                 try {
286                         int connectionattempt = 0;
287                         while (true) {
288                                 logger.info("--------------------------------");
289                                 logger.info("Waiting for Messages for 60 secs");
290                                 String topicMessage = subscribeTopic("60000");
291                                 Gson g = new Gson();
292                                 LinkedTreeMap<?, ?> object = null;
293                                 if (topicMessage != null) {
294                                         try {
295                                                 object = g.fromJson(topicMessage, LinkedTreeMap.class);
296
297                                                 // Cast the 1st item (since limit=1 and see the type of
298                                                 // object
299                                                 if (object.get("createMirrorMaker") != null) {
300                                                         logger.info("Received createMirrorMaker request from topic");
301                                                         CreateMirrorMaker m = g.fromJson(topicMessage, CreateMirrorMaker.class);
302                                                         createMirrorMaker(m.getCreateMirrorMaker());
303                                                         checkAgentProcess();
304                                                         mirrorMakers.setMessageID(m.getMessageID());
305                                                         publishTopic(g.toJson(mirrorMakers));
306                                                         mirrorMakers.setMessageID("");
307                                                 } else if (object.get("updateMirrorMaker") != null) {
308                                                         logger.info("Received updateMirrorMaker request from topic");
309                                                         UpdateMirrorMaker m = g.fromJson(topicMessage, UpdateMirrorMaker.class);
310                                                         updateMirrorMaker(m.getUpdateMirrorMaker());
311                                                         checkAgentProcess();
312                                                         mirrorMakers.setMessageID(m.getMessageID());
313                                                         publishTopic(g.toJson(mirrorMakers));
314                                                         mirrorMakers.setMessageID("");
315                                                 } else if (object.get("deleteMirrorMaker") != null) {
316                                                         logger.info("Received deleteMirrorMaker request from topic");
317                                                         DeleteMirrorMaker m = g.fromJson(topicMessage, DeleteMirrorMaker.class);
318                                                         deleteMirrorMaker(m.getDeleteMirrorMaker());
319                                                         checkAgentProcess();
320                                                         mirrorMakers.setMessageID(m.getMessageID());
321                                                         publishTopic(g.toJson(mirrorMakers));
322                                                         mirrorMakers.setMessageID("");
323                                                 } else if (object.get("listAllMirrorMaker") != null) {
324                                                         logger.info("Received listALLMirrorMaker request from topic");
325                                                         checkAgentProcess();
326                                                         mirrorMakers.setMessageID((String) object.get("messageID"));
327                                                         publishTopic(g.toJson(mirrorMakers));
328                                                         mirrorMakers.setMessageID("");
329                                                 } else if (object.get("updateWhiteList") != null) {
330                                                         logger.info("Received updateWhiteList request from topic");
331                                                         UpdateWhiteList m = g.fromJson(topicMessage, UpdateWhiteList.class);
332                                                         updateWhiteList(m.getUpdateWhiteList());
333                                                         checkAgentProcess();
334                                                         mirrorMakers.setMessageID(m.getMessageID());
335                                                         publishTopic(g.toJson(mirrorMakers));
336                                                         mirrorMakers.setMessageID("");
337                                                 } else if (object.get("listMirrorMaker") != null) {
338                                                         logger.info("Received listMirrorMaker from topic, skipping messages");
339                                                 } else {
340                                                         logger.info("Received unknown request from topic");
341                                                 }
342                                         } catch (Exception ex) {
343                                                 connectionattempt++;
344                                                 if (connectionattempt > 5) {
345                                                         logger.info("Can't connect to the topic, mmagent shutting down , " + topicMessage);
346                                                         return;
347                                                 }
348                                                 logger.info("Can't connect to the topic, " + topicMessage + " Retrying " + connectionattempt
349                                                                 + " of 5 times in 1 minute" + " Error:" + ex.getLocalizedMessage());
350                                                 Thread.sleep(60000);
351                                         }
352                                 } else {
353                                         // Check all MirrorMaker every min
354                                         connectionattempt = 0;
355                                         checkAgentProcess();
356                                 }
357
358                         }
359                 } catch (Exception e) {
360                         e.printStackTrace();
361                 }
362
363         }
364
365         private void createMirrorMaker(MirrorMaker newMirrorMaker) {
366                 boolean exists = false;
367                 if (mirrorMakers != null) {
368                         int mirrorMakersCount = mirrorMakers.getListMirrorMaker().size();
369                         for (int i = 0; i < mirrorMakersCount; i++) {
370                                 MirrorMaker mm = mirrorMakers.getListMirrorMaker().get(i);
371                                 if (mm.name.equals(newMirrorMaker.name)) {
372                                         exists = true;
373                                         logger.info("MirrorMaker already exist for:" + newMirrorMaker.name);
374                                         return;
375                                 }
376                         }
377                 }
378                 logger.info("Adding new MirrorMaker:" + newMirrorMaker.name);
379                 if (exists == false && mirrorMakers != null) {
380                         mirrorMakers.getListMirrorMaker().add(newMirrorMaker);
381                 } else if (exists == false && mirrorMakers == null) {
382                         mirrorMakers = new ListMirrorMaker();
383                         ArrayList<MirrorMaker> list = mirrorMakers.getListMirrorMaker();
384                         list = new ArrayList<MirrorMaker>();
385                         list.add(newMirrorMaker);
386                         mirrorMakers.setListMirrorMaker(list);
387                 }
388                 checkPropertiesFile(newMirrorMaker.name, "consumer", newMirrorMaker.consumer, true);
389                 checkPropertiesFile(newMirrorMaker.name, "producer", newMirrorMaker.producer, true);
390
391                 Gson g = new Gson();
392                 mirrorMakerProperties.setProperty("mirrormakers", g.toJson(this.mirrorMakers));
393                 OutputStream out = null;
394                 try {
395                         out = new FileOutputStream(mmagenthome + "/etc/mmagent.config");
396                         mirrorMakerProperties.store(out, "");
397                 } catch (IOException ex) {
398                         ex.printStackTrace();
399                 } finally {
400                         if (out != null) {
401                                 try {
402                                         out.close();
403                                 } catch (IOException e) {
404                                         e.printStackTrace();
405                                 }
406                         }
407                 }
408         }
409
410         private void updateMirrorMaker(MirrorMaker newMirrorMaker) {
411                 boolean exists = false;
412                 if (mirrorMakers != null) {
413                         int mirrorMakersCount = mirrorMakers.getListMirrorMaker().size();
414                         for (int i = 0; i < mirrorMakersCount; i++) {
415                                 MirrorMaker mm = mirrorMakers.getListMirrorMaker().get(i);
416                                 if (mm.name.equals(newMirrorMaker.name)) {
417                                         exists = true;
418                                         mm.setConsumer(newMirrorMaker.getConsumer());
419                                         mm.setProducer(newMirrorMaker.getProducer());
420                                         mirrorMakers.getListMirrorMaker().set(i, mm);
421                                         logger.info("Updating MirrorMaker:" + newMirrorMaker.name);
422                                 }
423                         }
424                 }
425                 if (exists) {
426                         checkPropertiesFile(newMirrorMaker.name, "consumer", newMirrorMaker.consumer, true);
427                         checkPropertiesFile(newMirrorMaker.name, "producer", newMirrorMaker.producer, true);
428
429                         Gson g = new Gson();
430                         mirrorMakerProperties.setProperty("mirrormakers", g.toJson(this.mirrorMakers));
431                         OutputStream out = null;
432                         try {
433                                 out = new FileOutputStream(mmagenthome + "/etc/mmagent.config");
434                                 mirrorMakerProperties.store(out, "");
435                                 MirrorMakerProcessHandler.stopMirrorMaker(newMirrorMaker.name);
436                                 try {
437                                         Thread.sleep(1000);
438                                 } catch (InterruptedException e) {
439                                 }
440                         } catch (IOException ex) {
441                                 ex.printStackTrace();
442                         } finally {
443                                 if (out != null) {
444                                         try {
445                                                 out.close();
446                                         } catch (IOException e) {
447                                                 e.printStackTrace();
448                                         }
449                                 }
450                         }
451                 } else {
452                         logger.info("MirrorMaker Not found for:" + newMirrorMaker.name);
453                 }
454         }
455
456         private void updateWhiteList(MirrorMaker newMirrorMaker) {
457                 boolean exists = false;
458                 if (mirrorMakers != null) {
459                         int mirrorMakersCount = mirrorMakers.getListMirrorMaker().size();
460                         for (int i = 0; i < mirrorMakersCount; i++) {
461                                 MirrorMaker mm = mirrorMakers.getListMirrorMaker().get(i);
462                                 if (mm.name.equals(newMirrorMaker.name)) {
463                                         exists = true;
464                                         mm.setWhitelist(newMirrorMaker.whitelist);
465                                         mirrorMakers.getListMirrorMaker().set(i, mm);
466                                         logger.info("Updating MirrorMaker WhiteList:" + newMirrorMaker.name + " WhiteList:"
467                                                         + newMirrorMaker.whitelist);
468                                 }
469                         }
470                 }
471                 if (exists) {
472                         Gson g = new Gson();
473                         mirrorMakerProperties.setProperty("mirrormakers", g.toJson(this.mirrorMakers));
474                         OutputStream out = null;
475                         try {
476                                 out = new FileOutputStream(mmagenthome + "/etc/mmagent.config");
477                                 mirrorMakerProperties.store(out, "");
478                                 MirrorMakerProcessHandler.stopMirrorMaker(newMirrorMaker.name);
479                                 try {
480                                         Thread.sleep(1000);
481                                 } catch (InterruptedException e) {
482                                 }
483                         } catch (IOException ex) {
484                                 ex.printStackTrace();
485                         } finally {
486                                 if (out != null) {
487                                         try {
488                                                 out.close();
489                                         } catch (IOException e) {
490                                                 e.printStackTrace();
491                                         }
492                                 }
493                         }
494                 } else {
495                         logger.info("MirrorMaker Not found for:" + newMirrorMaker.name);
496                 }
497         }
498
499         private void deleteMirrorMaker(MirrorMaker newMirrorMaker) {
500                 boolean exists = false;
501                 if (mirrorMakers != null) {
502                         int mirrorMakersCount = mirrorMakers.getListMirrorMaker().size();
503                         for (int i = 0; i < mirrorMakersCount; i++) {
504                                 MirrorMaker mm = mirrorMakers.getListMirrorMaker().get(i);
505                                 if (mm.name.equals(newMirrorMaker.name)) {
506                                         exists = true;
507                                         mirrorMakers.getListMirrorMaker().remove(i);
508                                         logger.info("Removing MirrorMaker:" + newMirrorMaker.name);
509                                         i = mirrorMakersCount;
510                                 }
511                         }
512                 }
513                 if (exists) {
514                         try {
515                                 String path = mmagenthome + "/etc/" + newMirrorMaker.name + "consumer" + ".properties";
516                                 File file = new File(path);
517                                 file.delete();
518                         } catch (Exception ex) {
519                         }
520                         try {
521                                 String path = mmagenthome + "/etc/" + newMirrorMaker.name + "producer" + ".properties";
522                                 File file = new File(path);
523                                 file.delete();
524                         } catch (Exception ex) {
525                         }
526                         Gson g = new Gson();
527                         mirrorMakerProperties.setProperty("mirrormakers", g.toJson(this.mirrorMakers));
528                         OutputStream out = null;
529                         try {
530                                 out = new FileOutputStream(mmagenthome + "/etc/mmagent.config");
531                                 mirrorMakerProperties.store(out, "");
532                                 MirrorMakerProcessHandler.stopMirrorMaker(newMirrorMaker.name);
533                         } catch (IOException ex) {
534                                 ex.printStackTrace();
535                         } finally {
536                                 if (out != null) {
537                                         try {
538                                                 out.close();
539                                         } catch (IOException e) {
540                                                 e.printStackTrace();
541                                         }
542                                 }
543                         }
544                 } else {
545                         logger.info("MirrorMaker Not found for:" + newMirrorMaker.name);
546                 }
547         }
548
549         private void loadProperties() {
550                 InputStream input = null;
551                 try {
552
553                         input = new FileInputStream(mmagenthome + "/etc/mmagent.config");
554                         mirrorMakerProperties.load(input);
555                         Gson g = new Gson();
556                         if (mirrorMakerProperties.getProperty("mirrormakers") == null) {
557                                 this.mirrorMakers = new ListMirrorMaker();
558                                 ArrayList<MirrorMaker> list = this.mirrorMakers.getListMirrorMaker();
559                                 list = new ArrayList<MirrorMaker>();
560                                 this.mirrorMakers.setListMirrorMaker(list);
561                         } else {
562                                 this.mirrorMakers = g.fromJson(mirrorMakerProperties.getProperty("mirrormakers"),
563                                                 ListMirrorMaker.class);
564                         }
565
566                         this.kafkahome = mirrorMakerProperties.getProperty("kafkahome");
567                         this.topicURL = mirrorMakerProperties.getProperty("topicURL");
568                         this.topicname = mirrorMakerProperties.getProperty("topicname");
569                         this.mechid = mirrorMakerProperties.getProperty("mechid");
570
571                         BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
572                         textEncryptor.setPassword(secret);
573                         //this.password = textEncryptor.decrypt(mirrorMakerProperties.getProperty("password"));
574                         this.password = mirrorMakerProperties.getProperty("password");
575                 } catch (IOException ex) {
576                         // ex.printStackTrace();
577                 } finally {
578                         if (input != null) {
579                                 try {
580                                         input.close();
581                                 } catch (IOException e) {
582                                         // e.printStackTrace();
583                                 }
584                         }
585                 }
586
587         }
588 }