home *** CD-ROM | disk | FTP | other *** search
- import java.awt.TextComponent;
- import java.awt.TextField;
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.InputStream;
- import java.util.Date;
- import java.util.Hashtable;
- import java.util.Properties;
- import java.util.StringTokenizer;
- import java.util.Vector;
-
- public class JDPNotificationMgr {
- JDPSubsystemMgr manager;
- JDPJob thisJob;
- JDPJagg jaggSQL;
- Vector emailMessageQueue;
- Vector pagerMessageQueue;
- String mailServer = "mail";
- String returnAddress = "";
- String commPort = "1";
- String baudRate = "300";
-
- public JDPNotificationMgr(JDPSubsystemMgr var1, JDPJob var2) {
- this.manager = var1;
- this.thisJob = var2;
- var2.appendJobLog("JDPNotificationMgr started on " + (new Date()).toString());
- this.emailMessageQueue = new Vector();
- this.pagerMessageQueue = new Vector();
- this.setupJaggConnection();
- this.loadSettings();
-
- while(!var1.shutdownRequested) {
- try {
- this.checkQueue();
- Thread.sleep(10000L);
- } catch (Exception var3) {
- }
- }
-
- }
-
- void checkQueue() {
- for(int var1 = this.manager.notifyQueue.size(); var1 > 0; --var1) {
- this.queueMessage((JDPJob)this.manager.notifyQueue.elementAt(0));
- this.manager.notifyQueue.removeElementAt(0);
- }
-
- if (this.emailMessageQueue.size() > 0) {
- this.sendQueuedEmail();
- }
-
- if (this.pagerMessageQueue.size() > 0) {
- this.sendQueuedPages();
- }
-
- }
-
- void queueMessage(JDPJob var1) {
- if (var1.getNotifyVia().equals("E")) {
- this.emailMessageQueue.addElement(var1);
- } else if (var1.getNotifyVia().equals("P")) {
- this.pagerMessageQueue.addElement(var1);
- } else {
- if (var1.getNotifyVia().equals("B")) {
- this.emailMessageQueue.addElement(var1);
- this.pagerMessageQueue.addElement(var1);
- }
-
- }
- }
-
- void sendQueuedEmail() {
- JDPSendMail var1 = new JDPSendMail(this.mailServer);
- String var2 = "";
- String var3 = "";
- String var4 = "";
- String var5 = "";
- new Properties();
-
- for(int var7 = 0; var7 < this.emailMessageQueue.size(); ++var7) {
- JDPJob var8 = (JDPJob)this.emailMessageQueue.elementAt(var7);
- Properties var6 = this.getUserInfo(var8.getNotifyUser());
- if (var6 != null) {
- var2 = (String)((Hashtable)var6).get("emailaddr");
- if (this.returnAddress.equals("")) {
- var3 = var2;
- } else {
- var3 = this.returnAddress;
- }
-
- var5 = "Job:" + var8.getJobName() + " ";
- if (var8.getJobStatus() == 10) {
- var5 = var5 + "completed";
- } else if (var8.getJobStatus() == 9) {
- var5 = var5 + "failed";
- } else {
- var5 = var5 + "status unknown";
- }
-
- String var14 = var5 + " on " + (new Date(var8.getEndDate().getTime() + var8.getEndTime())).toString();
- var1.mailMessage(var2, var3, var5, var14);
- }
- }
-
- this.emailMessageQueue = new Vector();
- System.gc();
- }
-
- void sendQueuedPages() {
- int var1 = Integer.parseInt(this.commPort);
- int var2 = Integer.parseInt(this.baudRate);
- new Properties();
- String var4 = "";
- String[][] var5 = new String[this.pagerMessageQueue.size()][3];
-
- for(int var6 = 0; var6 < this.pagerMessageQueue.size(); ++var6) {
- JDPJob var7 = (JDPJob)this.pagerMessageQueue.elementAt(var6);
- Properties var3 = this.getUserInfo(var7.getNotifyUser());
- if (var3 != null) {
- var4 = "Job:" + var7.getJobName() + " ";
- if (var7.getJobStatus() == 10) {
- var4 = var4 + "completed";
- } else if (var7.getJobStatus() == 9) {
- var4 = var4 + "failed";
- } else {
- var4 = var4 + "status unknown";
- }
-
- var4 = var4 + " on " + (new Date(var7.getEndDate().getTime() + var7.getEndTime())).toString();
- var5[var6][0] = (String)((Hashtable)var3).get("alphsvcph");
- var5[var6][1] = (String)((Hashtable)var3).get("alphpgrnum");
- var5[var6][2] = var4;
- } else {
- var5[var6][0] = "";
- var5[var6][1] = "";
- var5[var6][2] = "";
- }
- }
-
- this.sendAlphaPage(var1, var2, (String)null, (String)null, (String)null, (String[])null, (Vector)null, var5);
- this.pagerMessageQueue = new Vector();
- System.gc();
- }
-
- Properties getUserInfo(int var1) {
- String var2 = this.jaggSQL.getSEP();
- Properties var3 = new Properties();
- Vector var4 = new Vector();
- String var5 = "SELECT emailaddr, alphsvcph, alphpgrnum FROM JDPUser WHERE userid = " + var1;
- int var6 = this.jaggSQL.execSQL(var5, var4);
- if (var6 != 1) {
- return null;
- } else {
- StringTokenizer var7 = new StringTokenizer((String)var4.elementAt(0), var2);
- ((Hashtable)var3).put("emailaddr", var7.nextToken());
- ((Hashtable)var3).put("alphsvcph", var7.nextToken());
- ((Hashtable)var3).put("alphpgrnum", var7.nextToken());
- return var3;
- }
- }
-
- boolean sendAlphaPage(int var1, int var2, String var3, String var4, String var5, String[] var6, Vector var7, String[][] var8) {
- String var9 = "pagingfile.txt ";
- String var10 = "Bin\\JDPAlphaPage ";
- var10 = var10 + var9 + " ";
- var10 = var10 + Integer.toString(var1) + " ";
- var10 = var10 + Integer.toString(var2);
- String var11 = "";
- String var12 = "";
- String var13 = "";
- String var14 = "";
- String var15 = "";
- Object var16 = null;
- int var17 = 0;
- int var18 = 0;
- if (var5 == null) {
- for(int var19 = 0; var19 < var8.length; ++var19) {
- var14 = var8[var19][0].trim();
- var15 = JDPUtils.replace(var8[var19][1].trim(), " ", "", 1000);
- if (!var14.equals("") && !var15.equals("")) {
- ++var17;
- var11 = var11 + var14 + "\u0002" + var15 + "\u0002" + var8[var19][2] + "\u0001";
- }
- }
- } else if (var7 != null) {
- int var35 = var7.size();
-
- for(int var20 = 0; var20 < var35; ++var20) {
- StringTokenizer var34 = new StringTokenizer((String)var7.elementAt(var20), "\u0003");
- var14 = var34.nextToken().trim();
- var15 = JDPUtils.replace(var34.nextToken().trim(), " ", "", 1000);
- var12 = var14 + "\u0002" + var15 + "\u0002";
- if (!var14.equals("") && !var15.equals("")) {
- if (!var12.toUpperCase().equals(var13) || var13.equals("")) {
- var13 = var12.toUpperCase();
- ++var17;
- var12 = var12 + var5 + "\u0001";
- var11 = var11 + var12;
- }
- } else {
- ++var18;
- }
- }
- } else {
- var14 = var3.trim();
- var15 = JDPUtils.replace(var4.trim(), " ", "", 1000);
- if (!var14.equals("") && !var15.equals("")) {
- ++var17;
- var11 = var14 + "\u0002" + var15 + "\u0002" + var5 + "\u0001";
- }
- }
-
- if (var17 != 0 && !var11.equals("")) {
- try {
- FileOutputStream var36 = new FileOutputStream(var9);
- int var37 = var11.length();
- byte[] var21 = new byte[var37];
- var11.getBytes(0, var37, var21, 0);
- var36.write(var21);
- var36.close();
- } catch (Exception var22) {
- ((Throwable)var22).printStackTrace();
- return false;
- }
-
- if (var17 > 1) {
- this.thisJob.appendJobLog("Preparing to send " + Integer.toString(var17) + " messages.");
- } else {
- this.thisJob.appendJobLog("Preparing to send 1 message.");
- }
-
- this.execCommand(var10);
- return true;
- } else {
- return true;
- }
- }
-
- int execCommand(String var1) {
- int var2 = 0;
- String[] var3 = new String[]{var1};
- Object var4 = null;
- Object var5 = null;
- char[] var6 = null;
- char[] var7 = var6;
- if (var6 == null) {
- var7 = var6 = new char[128];
- }
-
- int var8 = var7.length;
- int var9 = 0;
- boolean var10 = false;
-
- try {
- Runtime var11 = Runtime.getRuntime();
- Process var12 = var11.exec(var1);
- InputStream var15 = var12.getInputStream();
- InputStream var16 = var12.getErrorStream();
- var2 = var12.waitFor();
- if (var15 != null) {
- for(int var17 = var15.read(); var17 > -1; var17 = var15.read()) {
- --var8;
- if (var8 < 0) {
- var7 = new char[var9 + 128];
- var8 = var7.length - var9 - 1;
- System.arraycopy(var6, 0, var7, 0, var9);
- var6 = var7;
- }
-
- var7[var9++] = (char)var17;
- }
-
- var15.close();
- }
-
- if (var16 != null) {
- for(int var18 = var16.read(); var18 > -1; var18 = var16.read()) {
- --var8;
- if (var8 < 0) {
- var7 = new char[var9 + 128];
- var8 = var7.length - var9 - 1;
- System.arraycopy(var6, 0, var7, 0, var9);
- var6 = var7;
- }
-
- var7[var9++] = (char)var18;
- }
-
- var16.close();
- }
-
- if (var9 > 0) {
- this.thisJob.appendJobLog(String.copyValueOf(var7, 0, var9));
- Thread.sleep(2L);
- }
-
- var12.destroy();
- } catch (Exception var13) {
- this.thisJob.appendJobLog("Call to paging program failed: " + var1);
- this.thisJob.logException(var13);
- var2 = -1;
- }
-
- return var2;
- }
-
- void setupJaggConnection() {
- if (this.jaggSQL == null) {
- this.jaggSQL = new JDPJagg(this.manager.JDPJaggPath);
- this.jaggSQL.setDSN(this.manager.JDPJaggDSN);
- this.jaggSQL.setCSTR(this.manager.JDPJaggCSTR);
- this.jaggSQL.setJdbcDriver(this.manager.JDPJaggJdbcDriver);
- this.jaggSQL.setJdbcPrefix(this.manager.JDPJaggJdbcPrefix);
- this.jaggSQL.setJdbcSuffix(this.manager.JDPJaggJdbcSuffix);
- this.jaggSQL.setUID(this.manager.JDPJaggJdbcUserid);
- this.jaggSQL.setPWD(this.manager.JDPJaggJdbcPassword);
- }
-
- }
-
- public void loadSettings() {
- try {
- JDPUser.classactivated = true;
- JDPUser var1 = new JDPUser();
- var1.u = new JDPUtils(var1);
- var1.jaggSQL = this.jaggSQL;
- String var2 = this.manager.JDPDirectory + "System" + File.separator + "ServerSettings.cfg";
- JDPSaveProps var3 = new JDPSaveProps(var1);
- boolean var4 = var3.load(var2);
- if (var4) {
- TextField var5 = new TextField("");
- TextField var6 = new TextField("");
- JDPChoice var7 = new JDPChoice(var1);
- String[] var8 = new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "", "", "", "", ""};
- String[] var9 = new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "", "", "", "", ""};
- var7.loadChoice(var8, var9);
- JDPChoice var10 = new JDPChoice(var1);
- String[] var11 = new String[]{"300", "600", "1200", "2400", "4800", "9600", "14400", "19200", "38400", "56000", "128000", "256000", "", "", "", "", "", "", "", ""};
- String[] var12 = new String[]{"300", "600", "1200", "2400", "4800", "9600", "14400", "19200", "38400", "56000", "128000", "256000", "", "", "", "", "", "", "", ""};
- var10.loadChoice(var11, var12);
- String var13 = "Server";
- var3.restoreObject(var5, var13, "mailServer");
- var3.restoreObject(var6, var13, "returnAddress");
- var3.restoreObject(var7, var13, "commPort");
- var3.restoreObject(var10, var13, "baudRate");
- this.mailServer = ((TextComponent)var5).getText();
- this.returnAddress = ((TextComponent)var6).getText();
- this.commPort = var7.getSelectedItem();
- this.baudRate = var10.getSelectedItem();
- return;
- }
- } catch (Exception var14) {
- this.thisJob.logException(var14);
- }
-
- }
- }
-