home *** CD-ROM | disk | FTP | other *** search
- package lotus.domino;
-
- public class AgentRunner extends NotesThread {
- private static final String ARVersion = "Agent Runner Release 2.0";
- private static String dumpAgentContextFile = "AgentRunner.nsf";
- private static String argServer;
- private static String argDatabase;
- private static String argAgent;
- private String keyServer;
- private String keyDatabase;
- private String keyAgent;
- private String agentClassName;
-
- public static void main(String[] var0) throws Exception {
- AgentRunner var1 = new AgentRunner();
- if (var0.length > 3) {
- System.out.println("AgentRunner=> too many arguments");
- System.out.println("Usage: java AgentRunner <agent> [<database> [<server>]]");
- } else if (var0.length == 0) {
- System.out.println("AgentRunner=> no arguments");
- System.out.println("Usage: java AgentRunner <agent> [<database> [<server>]]");
- } else {
- if (var0.length > 0) {
- argAgent = var0[0];
- }
-
- if (var0.length > 1) {
- argDatabase = var0[1];
- }
-
- if (var0.length > 2) {
- argServer = var0[2];
- }
-
- ((Thread)var1).start();
- }
- }
-
- public void runNotes() {
- try {
- if (this.getAgent()) {
- this.runAgent();
- return;
- }
-
- System.out.println("AgentRunner=>No AgentContext document found for:");
- System.out.println(" <agent=" + argAgent + ">");
- if (argDatabase != null) {
- System.out.println(" <database=" + argDatabase + ">");
- }
-
- if (argServer != null) {
- System.out.println(" <server=" + argServer + ">");
- return;
- }
- } catch (Exception var2) {
- ((Throwable)var2).printStackTrace();
- }
-
- }
-
- public boolean getAgent() throws NotesException {
- boolean var1 = false;
- Session var2 = null;
- Database var3 = null;
- View var4 = null;
- Document var5 = null;
-
- try {
- var2 = NotesFactory.createSession();
- var3 = var2.getDatabase("", dumpAgentContextFile);
- if (!var3.isOpen()) {
- throw new NotesException(0, "AgentRunner=>AgentContext database not found");
- }
-
- var4 = var3.getView("($AgentContexts)");
- if (var4 == null) {
- throw new NotesException(0, "AgentRunner=>$AgentContexts view not found");
- }
-
- for(var5 = var4.getFirstDocument(); var5 != null; var5 = var4.getNextDocument(var5)) {
- this.keyAgent = var5.getItemValueString("CurrentAgent");
- this.keyDatabase = var5.getItemValueString("CurrentDatabase_FilePath");
- String var6 = var5.getItemValueString("CurrentDatabase_Server");
- if (var6 != null && !var6.equals("")) {
- this.keyServer = var6;
- } else {
- this.keyServer = "local";
- }
-
- if (argAgent.equalsIgnoreCase(this.keyAgent) && (argDatabase == null || argDatabase.equalsIgnoreCase(this.keyDatabase)) && (argServer == null || argServer.equalsIgnoreCase(this.keyServer))) {
- this.agentClassName = var5.getItemValueString("ClassName");
- var1 = true;
- break;
- }
- }
- } catch (Exception var7) {
- ((Throwable)var7).printStackTrace();
- }
-
- if (var5 != null) {
- var5.recycle();
- }
-
- if (var4 != null) {
- var4.recycle();
- }
-
- if (var3 != null) {
- var3.recycle();
- }
-
- if (var2 != null) {
- var2.recycle();
- }
-
- return var1;
- }
-
- public void runAgent() {
- try {
- Class var1 = Class.forName(this.agentClassName);
- DebugAgentBase var2 = (DebugAgentBase)var1.newInstance();
- var2.initAgentRunner(this.keyServer, this.keyDatabase, this.keyAgent);
- ((AgentBase)var2).NotesMain();
- var2.termAgentRunner();
- } catch (Exception var3) {
- System.out.println("AgentRunner=>Exception! " + this.agentClassName + ".class not found");
- }
- }
- }
-