快速业务通道

Java企业项目中应用Subversion配置与管理 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
领域对象存储到Subversion 中,检索以前的版本,并显示两个版本的差异。我们示例的领域对象是以下所示的贷款数据。在本文结尾的“资源”部分有完整的源代码链接。

public class LoanData extends BaseTrackingObject {      private String loanId;      private double loanAmount;      private float loanRate;      private int  loanTerm;      ......      ...... }

在这里,使用抽象的BaseTrackingObject类来定义通用的跟踪数据,如修改用户、修改日期、修改原因等。其中定义了设置和取得objectId抽象方法,把它用作主键来访问领域对象;定义了一个命名为getXmlRepresentation的工具方法,用于把对象转换成XML格式,进而用于在Subversion中存储和检索数据。

Java企业项目中应用Subversion配置与管理(2)

时间:2011-02-14

初始化JavaSVN

SVNManager类是通向Subversion的路由,用于在不使用工作拷贝的情况下,通过底层JavaSVN接口直接访问Subversion仓库,通过初始化JavaSVN类库来可以使用HTTP(S)或SVN(S)与Subversion仓库进行交互。在这里,我们选择使用HTTP (WebDAV),因为可以减少在处理防火墙方面的工作。

库的初始化工作要首先调用的是方法DAVRepositoryFactory.setup()。SVNRepository类包含了所有直接访问Subversion仓库的方法,将Subversion仓库树状结构的根路径提供给SVNRepositoryFactory类后,就完成了这个类的初始化,而ISVNAuthenticationManager类的作用是向SVNRepository提供访问Subversion仓库的授权信息。

public void initRepository() {      //initialize the system to work over http      DAVRepositoryFactory.setup();      ............      //point to the root folder of repository      SVNURL svnUrl = SVNURL.parseURIEncoded              ("http://localhost/repos/");      //initialize the SVNRepository      theRepository = SVNRepositoryFactory.              create(svnUrl);      //Creates the Auth manager with our user      //and password credentials      ISVNAuthenticationManager authManager =          new BasicAuthenticationManager          (name, password);      //provides the credentials to the      //SVNRepository      theManager.setAuthenticationManager          (authManager);      ........ }

在Subversion中存储数据

Subversion需要使用层次结构存储数据,这样我们先要设定一下领域实体的层次结构,这里使用一个命名为“DomainObjects”的文件夹来存放领域数据。领域对象类将会检测这个目录下存放领域对象的所有子目录,而每个独立的域对象被以XML格式进行存储,并以其主键进行命名。

为存储LoanData域对象,我们先要执行SVNManager对象的checkInObject方法,通过SVNRepository 执行的ISVNEditor对象来在Subversion仓库中的建立和更新域对象的版本,但只有在closeEdit被调用后,才会提交所有的操作。SVNDeltaGenerator类用于获取当前版本与被更新版本之间的差异,Subversion通过存储版本间差异部分的形式存放新的版本,这样会使提高网络效率。

public SVNResult checkInObject(          BaseTrackingObject obj){      .....      //Obtain the editor handle from the      //repository      ISVNEditor editor = theRepository.          getCommitEditor(obj.          getModificationReason(),

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号