if(state != null) {
//FAll 2: Es gibt eine Details Parameter. D.h. nur der eine job in der Jobkette mit der state bekommt einen Monitoring
sel = "//job_chain[@name='"+ jobChainname + "']/job_chain_node[@state='"+state+"']";
}
XPath x = XPath.newInstance(sel);
List listOfElement = x.selectNodes(dom.getDoc());
if(!listOfElement.isEmpty()) {
for(int i = 0; i < listOfElement.size(); i++) {
Element jobChainNode = (Element)listOfElement.get(i);
//jobname in der Jobkette ermitteln
String jobname = Utils.getAttributeValue("job", jobChainNode);
String hotFolderfilename = "";
File hotFolderfile = null;
if ( new File(Options.getSchedulerHotFolder(), jobname + ".job.xml").exists()) {
hotFolderfile = new File(Options.getSchedulerHotFolder(), jobname + ".job.xml");
}else {
hotFolderfile = new File(new File(dom.getFilename()).getParent(), new File(jobname).getName() + ".job.xml");
}
hotFolderfilename = hotFolderfile.getCanonicalPath();
//Unterscheiden, ob Hot Folder Element. Wenn ja, dann Hot Folder Datei �ffnen. Wenn der Hot Folder Element bereits offen ist, dann ver�ndern
List listOfElement2 = null;
if(dom.isLifeElement() || new File(jobname).getParent() != null ) {
if(!hotFolderfile.exists()) {
openFilePerFTP(hotFolderfilename);
if(!new File(hotFolderfilename).exists()) {
sos.scheduler.editor.app.MainWindow.message("Could not add Monitoring Job, cause Hot Folder File " + hotFolderfilename + " not exist.", SWT.ICON_WARNING);
continue;
}
}
XPath x2 = null;
//Es ist ein Hot Folder oder der Job ist woanders abgelegt
sos.scheduler.editor.app.TabbedContainer tab = ((sos.scheduler.editor.app.TabbedContainer)MainWindow.getContainer());
String pathFromHotFolderDirectory = new File(hotFolderfilename).getParent();
if(tab.getFilelist() != null &&
(tab.getFilelist().contains(hotFolderfilename) ||
tab.getFilelist().contains(pathFromHotFolderDirectory) )) {
//Hot Folder oder Hot Folder Element ist in einem Tabraiter offen oder
SchedulerForm form = null;
if(tab.getFilelist().contains(hotFolderfilename)) {
form = (SchedulerForm)tab.getEditor(hotFolderfilename);//hot folder element
x2 = XPath.newInstance("//job/monitor/script[@java_class='sos.scheduler.managed.configuration.ConfigurationOrderMonitor']");
} else {
form = (SchedulerForm)tab.getEditor(pathFromHotFolderDirectory);//hot folder
x2 = XPath.newInstance("//job[@name='"+new File(jobname).getName()+"']/monitor/script[@java_class='sos.scheduler.managed.configuration.ConfigurationOrderMonitor']");
}
SchedulerDom currdom = (SchedulerDom)form.getDom();
listOfElement2 = x2.selectNodes(currdom.getDoc());
if(listOfElement2.isEmpty()) {
XPath x3 = null;
XPath x4 = null;
if(tab.getFilelist().contains(hotFolderfilename)) {
x3 = XPath.newInstance("//job/monitor/script[@java_class='sos.scheduler.managed.configuration.ConfigurationOrderMonitor']");
x4 = XPath.newInstance("//job");;
} else {
x3 = XPath.newInstance("//job[@name='"+new File(jobname).getName()+"']/monitor/script[@java_class='sos.scheduler.managed.configuration.ConfigurationOrderMonitor']");
x4 = XPath.newInstance("//job[@name='"+new File(jobname).getName()+"']");
}
List listOfElement3 = x3.selectNodes(currdom.getDoc());
if(listOfElement3.isEmpty()) {
List listOfElement4 = x4.selectNodes(currdom.getDoc());
Element job = (Element)listOfElement4.get(0);
addMonitoring(job, currdom);
if(currdom.isLifeElement())
form.getTree().setSelection(new org.eclipse.swt.widgets.TreeItem[] { form.getTree().getItem(0) });
else if(currdom.isDirectory())
form.selectTreeItem(SchedulerListener.JOBS , SchedulerListener.JOB + new File(jobname).getName());
currdom.setChanged(true);
if(form != null) {
form.updateJob(job);
form.updateJob();
form.update();
}
currdom.setChanged(true);
form.dataChanged();
dom.setChanged(true);
if(tab.getFilelist().contains(hotFolderfilename)) {
form.dataChanged(tab.getFolderTab(hotFolderfilename));
} else {
form.dataChanged(tab.getFolderTab(pathFromHotFolderDirectory));
}
}
}
} else {
// Hot Folder Element ist nicht offen in einem Tabraiter
SchedulerDom currDom = new SchedulerDom(SchedulerDom.LIFE_JOB);
currDom.read(hotFolderfilename);
if(x2==null)
x2 = XPath.newInstance("//job/monitor/script[@java_class='sos.scheduler.managed.configuration.ConfigurationOrderMonitor']");
listOfElement2 = x2.selectNodes(currDom.getDoc());
if(listOfElement2.isEmpty()) {
XPath x3 = XPath.newInstance("//job");
List listOfElement3 = x3.selectNodes(currDom.getDoc());
if(!listOfElement3.isEmpty()) {
Element job = (Element)listOfElement3.get(0);
addMonitoring(job, currDom);
currDom.writeElement(currDom.getFilename(), currDom.getDoc());
MainWindow.getContainer().getCurrentTab().setData("ftp_details_parameter_file", hotFolderfilename);
MainWindow.saveFTP(new java.util.HashMap());
}
}
}
} else {
XPath x2 = XPath.newInstance("//job[@name='"+ jobname + "']/monitor/script[@java_class='sos.scheduler.managed.configuration.ConfigurationOrderMonitor']");
listOfElement2 = x2.selectNodes(dom.getDoc());
if(listOfElement2.isEmpty()) {
XPath x3 = XPath.newInstance("//jobs/job[@name='"+ jobname + "']");
List listOfElement3 = x3.selectNodes(dom.getDoc());
if(!listOfElement3.isEmpty()) {
Element job = (Element)listOfElement3.get(0);
addMonitoring(job, dom);
if(update != null) {