📄 event.java.svn-base
字号:
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Vector;
import org.w3c.dom.*;
import javax.xml.parsers.*;
public class event extends Thread {
public String name;
public String Agent_ID;
public String script;
public String result;
public String web_service_url;
public String TimeTable;
public String conf_path;
public String script_path;
public String result_path;
public int delay;
public int result_format_begin;
public int result_total;
public XMLManage eventxml=new XMLManage();
public MyHttpClient myhttp=new MyHttpClient();
public Hashtable result_format = new Hashtable();
public void SetResultFormat(String first,Vector second){
System.out.println(" "+first+":"+second);
result_format.put(first,second);
}
public void SetResultValue(String first,String value,int num){
Vector v=(Vector)result_format.get(first);
v.set(num,value);
}
public String GetResultValue(String first,String value,int num){
Vector v=(Vector)result_format.get(first);
return (String)v.get(num);
}
public void GetPara()
{
File f=new File("agent.xml");
DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance();
DocumentBuilder builder=factory.newDocumentBuilder();
Document doc = builder.parse(f);
NodeList nl = doc.getElementsByTagName("event");
int j=nl.getLength();
for (int i=0;i<j;i++){
event m_event=new event();
m_event.web_service_url=agent.m_webservice_url;
m_event.Agent_ID=agent.m_agent_id;
System.out.println("name:" + doc.getElementsByTagName("name").item(i).getFirstChild().getNodeValue());
m_event.name=doc.getElementsByTagName("name").item(i).getFirstChild().getNodeValue();
System.out.println(" delay:" + doc.getElementsByTagName("delay").item(i).getFirstChild().getNodeValue());
m_event.delay=Integer.parseInt(doc.getElementsByTagName("delay").item(i).getFirstChild().getNodeValue());
System.out.println(" timetable:" + doc.getElementsByTagName("timetable").item(i).getFirstChild().getNodeValue());
m_event.TimeTable=doc.getElementsByTagName("timetable").item(i).getFirstChild().getNodeValue();
System.out.println(" script:" + doc.getElementsByTagName("script").item(i).getFirstChild().getNodeValue());
m_event.script=doc.getElementsByTagName("script").item(i).getFirstChild().getNodeValue();
System.out.println(" result:" + doc.getElementsByTagName("result").item(i).getFirstChild().getNodeValue());
m_event.result=doc.getElementsByTagName("result").item(i).getFirstChild().getNodeValue();
System.out.println(" beginline:" + doc.getElementsByTagName("beginline").item(i).getFirstChild().getNodeValue());
m_event.result_format_begin=Integer.parseInt(doc.getElementsByTagName("beginline").item(i).getFirstChild().getNodeValue());
Element element=(Element)doc.getElementsByTagName("result_format").item(i);
nl=element.getElementsByTagName("parameter");
m_event.result_total=nl.getLength();
for (int z=0;z<nl.getLength();z++){
System.out.println(" parameter:" + element.getElementsByTagName("parameter").item(z).getFirstChild().getNodeValue());
System.out.println(" row:" + element.getElementsByTagName("parameter").item(z).getAttributes().getNamedItem("row").getNodeValue());
Vector v=new Vector();
v.add(element.getElementsByTagName("parameter").item(z).getFirstChild().getNodeValue());
v.add("");
v.add(element.getElementsByTagName("parameter").item(z).getAttributes().getNamedItem("row").getNodeValue());
m_event.SetResultFormat(Integer.toString(z),v);
}
agent.eventlist.put(Integer.toString(i),m_event);
m_event.start();
}
}
public void GetString(String sr){
String []srsplit=sr.split("\\s+");
Object elm=eventxml.AddElement("list");
String row;
for (int i=0;i<result_total;i++){
Vector v=(Vector)result_format.get(Integer.toString(i));
row=(String)v.get(2);
if (Integer.parseInt(row)>=srsplit.length) continue;
SetResultValue(Integer.toString(i),srsplit[Integer.parseInt(row)],1);
eventxml.AddElementChild(elm,(String)v.get(0),(String)v.get(1));
System.out.println(result_format.get(Integer.toString(i)));
}
eventxml.AddElementfinish(elm);
}
public boolean iftimebegin(String m_time){
boolean result=false;
int nowtotal=0,needtotal=0;
Date nowTime=new Date(System.currentTimeMillis());
SimpleDateFormat sDateFormat=new SimpleDateFormat("ss mm HH dd MM F yyyy");
String todayTime=sDateFormat.format(nowTime);
String m_sp[]=m_time.split(" ");
String m_today_sp[]=todayTime.split(" ");
for (int i=0;i<m_sp.length;i++){
if (m_sp[i].equals("?")){
continue;
}
else if( m_sp[i].equals("*") ){
nowtotal+=1;
needtotal+=1;
}
else{
needtotal+=1;
String m_split[]=m_sp[i].split(",");
for (int j=0;j<m_split.length;j++){
if (Integer.parseInt(m_today_sp[i])==Integer.parseInt(m_split[j])){
nowtotal+=1;
break;
}
}
}
}
if (result) System.out.println(name+" "+todayTime);
if (nowtotal==needtotal)
return true;
else
return false;
}
public void run(){
eventxml.CreatXML(name,Agent_ID);
Runtime rn=Runtime.getRuntime();
Process p=null;
while(true){
if (iftimebegin(TimeTable)){
try {
System.out.println(name+" begin run script");
p=rn.exec(script);
if (result.equals("null")){
InputStream in = p.getInputStream();
BufferedReader br= new BufferedReader(new InputStreamReader(in));
String str;
int i=0;
while ((str = br.readLine()) != null) {
if (i>=result_format_begin && str.length()>0){
GetString(str);
}
System.out.println(str);
i++;
}
try{
p.waitFor();
br.close();
in.close();
}catch (Exception e){
e.printStackTrace();
}
}
else
{
p.waitFor();
File f=new File(result);
if(!f.exists())
System.out.println("result not find");
else
{
BufferedReader br = new BufferedReader(new FileReader(f));
String str;
int i=1;
while ((str = br.readLine()) != null) {
if (i>=result_format_begin && str.length()>0){
GetString(str);
}
// System.out.println(str);
i++;
}
br.close();
f.delete();
}
}
myhttp.MyPost(web_service_url,eventxml.outputToString(eventxml.Doc));
// eventxml.SaveXML(name+".xml");
eventxml.DeleElementAll();
} catch(Exception e) {
System.out.println(e);
}
}
try {
Thread.sleep(delay);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -