home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / Notes.jar / lotus / domino / AgentRunner.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-15  |  3.8 KB  |  132 lines

  1. package lotus.domino;
  2.  
  3. public class AgentRunner extends NotesThread {
  4.    private static final String ARVersion = "Agent Runner Release 2.0";
  5.    private static String dumpAgentContextFile = "AgentRunner.nsf";
  6.    private static String argServer;
  7.    private static String argDatabase;
  8.    private static String argAgent;
  9.    private String keyServer;
  10.    private String keyDatabase;
  11.    private String keyAgent;
  12.    private String agentClassName;
  13.  
  14.    public static void main(String[] var0) throws Exception {
  15.       AgentRunner var1 = new AgentRunner();
  16.       if (var0.length > 3) {
  17.          System.out.println("AgentRunner=> too many arguments");
  18.          System.out.println("Usage: java AgentRunner <agent> [<database> [<server>]]");
  19.       } else if (var0.length == 0) {
  20.          System.out.println("AgentRunner=> no arguments");
  21.          System.out.println("Usage: java AgentRunner <agent> [<database> [<server>]]");
  22.       } else {
  23.          if (var0.length > 0) {
  24.             argAgent = var0[0];
  25.          }
  26.  
  27.          if (var0.length > 1) {
  28.             argDatabase = var0[1];
  29.          }
  30.  
  31.          if (var0.length > 2) {
  32.             argServer = var0[2];
  33.          }
  34.  
  35.          ((Thread)var1).start();
  36.       }
  37.    }
  38.  
  39.    public void runNotes() {
  40.       try {
  41.          if (this.getAgent()) {
  42.             this.runAgent();
  43.             return;
  44.          }
  45.  
  46.          System.out.println("AgentRunner=>No AgentContext document found for:");
  47.          System.out.println("   <agent=" + argAgent + ">");
  48.          if (argDatabase != null) {
  49.             System.out.println("   <database=" + argDatabase + ">");
  50.          }
  51.  
  52.          if (argServer != null) {
  53.             System.out.println("   <server=" + argServer + ">");
  54.             return;
  55.          }
  56.       } catch (Exception var2) {
  57.          ((Throwable)var2).printStackTrace();
  58.       }
  59.  
  60.    }
  61.  
  62.    public boolean getAgent() throws NotesException {
  63.       boolean var1 = false;
  64.       Session var2 = null;
  65.       Database var3 = null;
  66.       View var4 = null;
  67.       Document var5 = null;
  68.  
  69.       try {
  70.          var2 = NotesFactory.createSession();
  71.          var3 = var2.getDatabase("", dumpAgentContextFile);
  72.          if (!var3.isOpen()) {
  73.             throw new NotesException(0, "AgentRunner=>AgentContext database not found");
  74.          }
  75.  
  76.          var4 = var3.getView("($AgentContexts)");
  77.          if (var4 == null) {
  78.             throw new NotesException(0, "AgentRunner=>$AgentContexts view not found");
  79.          }
  80.  
  81.          for(var5 = var4.getFirstDocument(); var5 != null; var5 = var4.getNextDocument(var5)) {
  82.             this.keyAgent = var5.getItemValueString("CurrentAgent");
  83.             this.keyDatabase = var5.getItemValueString("CurrentDatabase_FilePath");
  84.             String var6 = var5.getItemValueString("CurrentDatabase_Server");
  85.             if (var6 != null && !var6.equals("")) {
  86.                this.keyServer = var6;
  87.             } else {
  88.                this.keyServer = "local";
  89.             }
  90.  
  91.             if (argAgent.equalsIgnoreCase(this.keyAgent) && (argDatabase == null || argDatabase.equalsIgnoreCase(this.keyDatabase)) && (argServer == null || argServer.equalsIgnoreCase(this.keyServer))) {
  92.                this.agentClassName = var5.getItemValueString("ClassName");
  93.                var1 = true;
  94.                break;
  95.             }
  96.          }
  97.       } catch (Exception var7) {
  98.          ((Throwable)var7).printStackTrace();
  99.       }
  100.  
  101.       if (var5 != null) {
  102.          var5.recycle();
  103.       }
  104.  
  105.       if (var4 != null) {
  106.          var4.recycle();
  107.       }
  108.  
  109.       if (var3 != null) {
  110.          var3.recycle();
  111.       }
  112.  
  113.       if (var2 != null) {
  114.          var2.recycle();
  115.       }
  116.  
  117.       return var1;
  118.    }
  119.  
  120.    public void runAgent() {
  121.       try {
  122.          Class var1 = Class.forName(this.agentClassName);
  123.          DebugAgentBase var2 = (DebugAgentBase)var1.newInstance();
  124.          var2.initAgentRunner(this.keyServer, this.keyDatabase, this.keyAgent);
  125.          ((AgentBase)var2).NotesMain();
  126.          var2.termAgentRunner();
  127.       } catch (Exception var3) {
  128.          System.out.println("AgentRunner=>Exception! " + this.agentClassName + ".class not found");
  129.       }
  130.    }
  131. }
  132.