Realization of automatic upgrade of CS structure software (III.):
Config.java Processing configuration file:
1/** *//********************************************************************
2 * Project name:rochoc<p>
3 * Package name:com.rochoc.autoupdate<p>
4 * File name:config.java<p>
5 * Creator:kfzx-luoc<p>
6 * Written date:2008-12-22<p>
7 * Program function (Class) Description:<p>
8 * For updated profile reads like
9 * Program Change Date:
10 * Change Author:
11 * Change Note:
12********************************************************************/
13package com.rochoc.autoupdate;
14
15import Java.io.File;
16import Java.text.SimpleDateFormat;
17import java.util.Date;
18import java.util.List;
19
20import org.dom4j.Document;
21import org.dom4j.Element;
22import Org.dom4j.io.SAXReader;
23
24
25/** *//**
* @author Kfzx-luoc
27 *
TODO to the "template for" generated type comment go to
* Window-preferences-java-code Style-code Templates
30 * *
31public class Config
32{
public static String cfgfile = ". \\config\\autoupdate.xml";
private static config config = null;
/** *//** XML document*/
private Document doc = null;
Notoginseng public static Config getinstance ()
38 {
(config==null)
40 {
config = new config ();
42}
return config;
44}
45
private Config ()
47 {
a try
49 {
Saxreader reader = new Saxreader ();
Wuyi doc = Reader.read (cfgfile);
}catch (Exception e)
53 {
E.printstacktrace ();
55}
56}
public void Refresh ()
58 {
config = new config ();
60}
-Public String getverstion ()
62 {
(config==null)
64 {
"";
66}
List lst = doc.selectnodes ("info/version");
-Element el = (Element) lst.get (0);
return El.gettext ();
70}
public String Getserverip ()
72 {
if (config==null)
74 {
"";
76}
List lst = doc.selectnodes ("INFO/UPDATESERVER/IP");
-Element el = (Element) lst.get (0);
-El.gettext ();
80}
Bayi public Updfile [] GetFiles ()
82 {
-if (config==null)
84 {
return null;
86}
List file = Doc.selectnodes ("Info/files");
List lst = ((Element) file.get (0)). elements ();
(Lst.size () ==0)
90 {
return null;
92}
updfile files[] = new updfile[lst.size ()];
for (int i=0;i<lst.size (); i++)
95 {
element el = (Element) lst.get (i);
The List childs = El.elements ();
element name = (Element) childs.get (0);//name
Element Path = (Element) childs.get (1);//path
element ver = (Element) Childs.get (2);//version
Files[i] = new Updfile (Name.gettext ());
102 if ("File". Equals (El.getname ())
103 {
files[i].settype (0);//File
}else
106 {
Files[i].settype (1);//Directory
108}
109 Files[i].setpath (Path.gettext ());
files[i].setversion (Ver.gettext ());
111}
112 return files;
113}
114 Public String Getserverport ()
115 {
116 if (config==null)
117 {
118 return "";
119}
The List lst = doc.selectnodes ("Info/updateserver/port");
121 Element el = (Element) lst.get (0);
122 return El.gettext ();
123}
124 public static void print (String msg)
125 {
126 SimpleDateFormat sdf = new SimpleDateFormat ("Yyyy-mm-dd hh:mm:ss->>");
127 String str = sdf.format (new Date ());
128 System.out.println (str+msg);
129}
130 public static void Main (String args[])
131 {
132 Config cfg = config.getinstance ();
updfile files[] = Cfg.getfiles ();
134 for (int i=0;i<files.length;i++)
135 {
136 System.out.println (files[i]);
137}
138 config.print ("Test");
139}
140/** *//**
141 * Format path, increase the tail of the directory separator
142 *
143 * @param p the directory string to format
144 * *
145 public static string Formatpath (String p)
146 {
147 if (!p.endswith (file.separator))
148 return (p + file.separator);
149 return p;
150}
151
152/** *//**
153 * Format path, remove the trailing directory separator
154 *
* @param p The directory string to format
156 * *
157 public static string Unformatpath (String p)
158 {
159 if (P.endswith (file.separator))
160 return (p.substring (0, P.length ()-1));
161 return p;
162}
163 public static byte[] Getcmd (String cmd)
164 {
165//First is used to identify the command, and the following 8-bit is the command name
166 byte CMDB [] = new byte[9];
167 Cmdb[0] = aupd. Cmd_data_sect;
byte [] tmp = Cmd.getbytes ();
169 if (tmp.length!=8)
170 {
171 Config.print ("Wrong order:" +cmd+ "<<");
172 return null;
173}
174 for (int i=0;i<8;i++)
175 {
176 cmdb[i+1] = Tmp[i];
177}
178 return CMDB;
179}
180 public static String Parsecmd (Byte cmd[])
181 {
a new String (cmd,0,8);
183}
184 public static byte [] Getlen (int len)
185 {
186 String Slen = string.valueof (len);
187 while (Slen.length () <4)
188 {
189 Slen = "0" +slen;
190}
191 return slen.getbytes ();
192}
193 public static void Copyarray (Byte objary[], byte souary[], int o_begin,
194 int S_begin, int len)
195 {
196 for (int i = 0; i < len; i++)
197 {
198 Objary[o_begin + i] = Souary[s_begin + i];
199}
200}
201}