通过 XMLEncoder 可以将 JavaBean 序列化为 XML 形式
String file = "D:/temp/a.obj";
FileOutputStream fos = new FileOutputStream(file);
XMLEncoder encoder = new XMLEncoder(fos);
encoder.writeObject(a);
encoder.flush();
encoder.close();
fos.close(); 序列化结果
<?xml version="1.0" encoding="UTF-8"?>
<java version="1.4.2_08" class="java.beans.XMLDecoder">
<object class="A">
<void property="a">
<string>a</string>
</void>
<void property="b">
<object class="B">
<void property="e">
<string>e</string>
</void>
<void property="f">
<string>f</string>
</void>
</object>
</void>
<void property="c">
<string>c</string>
</void>
<void property="d">
<string>d</string>
</void>
</object>
</java>
通过 XMLDecoder 来将 XML 内容反序列化
String file = "D:/temp/a.obj";
FileInputStream fis = new FileInputStream(file);
XMLDecoder decoder = new XMLDecoder(fis);
A obj = (A) decoder.readObject();
fis.close();
System.out.println(obj);
posted @
2007-01-16 17:27 哈哈的日子 阅读(710) |
评论 (0) |
编辑 收藏
起因:
CruiseControl 与 JBoss 进程启动在固定的端口上,分别为 1099 和 8080 ,每次杀掉这两个进程的时候,就手动的执行 netstat -anp | grep 1099 和 netstat -anp | grep 8080 ,看到进程号,把他们杀掉,然后重启。
郁闷:
但这样实在是太麻烦了,每天调试程序,重启 n 遍,看得我眼睛都花了。想办法自动杀死。
解决部分:
想起了当初使用 awk 命令得到进程号,有了进程号,不就可以 kill -9 干掉他了!快乐,开始找 awk 命令用法,google 了一下,可以使用 netstat -anp | grep 1099 | gawk '{print substr($7,0,index($7,"/java")-1)}' 命令得到我想要的进程号,但说什么都不能对这个进程号运行 kill -9 ,再找!
解决问题:
google 了一下,可以使用
kill -9 `netstat -anp | grep 1099 | gawk '{print substr($7,0,index($7,"/java")-1)}'`
果然好用!
想起了使用过的 cd = `pwd` 原来 ` 号包围起来的命令可以执行,并放在相应位置上。
遗留问题:
解决问题时,还 google 到,可以使用 netstat -anp | grep 1099 | gawk '{print substr($7,0,index($7,"/java")-1)}' | xargs -t -i kill -9 {} 来完成,需要了解管道符号的作用了。
posted @
2007-01-16 10:18 哈哈的日子 阅读(427) |
评论 (0) |
编辑 收藏
svn 支持多个版本库的管理,可以将不同部门,不同项目组的代码库同时管理。
比如:
建立代码库根目录 repos
在其中建立 dept1 , dept2
repos
├─dept1
└─dept2
在 dept1 中建立 proj1 , proj2
在 dept2 中建立 proj3 , proj4
repos
├─dept1
│ ├─proj1
│ └─proj2
└─dept2
├─proj3
└─proj4
然后运行
svnadmin create repos/dept1/proj1
svnadmin create repos/dept1/proj2
svnadmin create repos/dept2/proj3
svnadmin create repos/dept2/proj4
ps:实际上 proj1-proj4 可以不建,svnadmin create 会自动创建。
最后
svnserve -d -r repos 或使用 apache 就可以了
使用 svn://IP/dept1/proj1 或
http://IP/dept/proj1 可以访问
posted @
2007-01-15 11:41 哈哈的日子 阅读(910) |
评论 (0) |
编辑 收藏
摘要:
阅读全文
posted @
2007-01-11 09:45 哈哈的日子 阅读(428) |
评论 (0) |
编辑 收藏
摘要: 一.安装subversion
二.建立Repository(保存文档各个版本的数据库)
三.配置Repository
四.启动subversion服务器
五.客户端的使用
阅读全文
posted @
2007-01-10 16:39 哈哈的日子 阅读(488) |
评论 (0) |
编辑 收藏
在 CruiseControl 中需要监测 ClearCase 中的变化,以便在变化时进行构建动作。
配置如下:
<modificationset quietperiod="5">
<clearcase branch="dev_ct2.0" viewpath="D:\temp\cruisecontrol-bin-2.5 view\hello\group_ct\temp\test_project\hello" />
<modificationset>
CruiseControl 会每次调用
cleartool lshistory -branch dev_ct2.0 -r -nco -since 10-一月-2007.09:59:23 -fmt %u#~#%Nd#"~#%En#~#%Vn#~#%o#~#!%l#~#!%a#~#%Nc@#@#@#@#@#@#@#@#@#@#@#@
这个命令去监测 ClearCase 的变化
其中 dev_ct2.0 与配置的 branch 一致 -since 后面的时间保存在 listeners 中,默认一般为 status.txt 中
ps:有个问题就是这个命令不会监测没有在 View 中的文件的变化,也就是说,只在 ClearCase 根目录(因为其它目录中增加ClearCase认为目录变化,会监测到)中增加文件而没有更改文件,这个命令认为没有变化!
posted @
2007-01-10 10:53 哈哈的日子 阅读(812) |
评论 (1) |
编辑 收藏
如果是 jar 包,在 Plugin 中配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
</plugin>
</plugins>
</build>
如果是 war 包,在 Plugin 中配置
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<archive>
<addMavenDescriptor>false</addMavenDescriptor>
</archive>
</configuration>
</plugin>
</plugins>
</build>
这个是在 maven-archiver 中设置的,可以查看代码。
posted @
2007-01-04 20:37 哈哈的日子 阅读(4448) |
评论 (0) |
编辑 收藏
public static String getSystemEnv(String name) {
final String perfix = "env";
Project project = new Project();
Property property = new Property();
property.setProject(project);
property.setEnvironment(perfix);
property.execute();
return project.getProperty(perfix + "." + name);
}
同样可以利用这个方法处理 properties 文件中 ${} 引用。
posted @
2007-01-04 14:14 哈哈的日子 阅读(191) |
评论 (0) |
编辑 收藏
摘要:
阅读全文
posted @
2007-01-04 07:58 哈哈的日子 阅读(274) |
评论 (0) |
编辑 收藏
规格说明是必不可少的,我理解 Scrum 中的 UserStory 就是规格的一部分,但规格还包含了更多的东西,比如部分的需求,在华为的时候,需求是在规格之前的,分成不同的文档写成,不知道在 Scrum 中,是如何来描述需求的,是否是在 UserStory 中一并完成了?
进度表一章最大的感觉就是那段塞木块,要么增大盒子,要么丢掉木块。有了进度表,就给了你这样的选择。
目前的项目中,这两个东西都是没有的,一是导致进度延迟看不到,二是心里没底,人心惶惶。
盲点,软件做了这么久了,对这些最基本的东西还是没有深刻的理解,早该学习了,再玩就要饿死了。
posted @
2007-01-01 09:12 哈哈的日子 阅读(171) |
评论 (0) |
编辑 收藏