« Ubuntu ServerでTrac | Main | SP = SpecialPoison? »

2007.10.15

JavaアプリからXML-RPCでTracのTicketを更新

 当然ながらTrac側にXML-RPCのプラグインを組み込んでおく必要があります。以前組み込んだことはありますが、今回はUbuntu上に構築したTracで行うため、再度セットアップ。
 ここしばらく(?)trac-hacksのページが落ちているので、一時的にミラーサイトとして公開されている https://trachacks.coderanger.net/browser/xmlrpcplugin/0.10からダウンロードし、python setup.py installでサクッとインストール。インストール完了後、Adminのページからtracxmlrpc 0.1のすべてのモジュールをenableに。

 で、クライアント側としては以前使用したRedstone XML-RPC Libraryを今回も使用しようかと思ったのですが、このライブラリの場合、Basic認証の方法がよくわからない(対応しそうなメソッドが見つからない・・・)ので、Apache XML-RPCを使用することに。使用したバージョンは、3.1となります。

 ダウンロードしてきたxmlrpc-3.1-bin.tar.gzファイルに含まれているws-commons-util-1.0.2.jarxmlrpc-client-3.1.jarxmlrpc-common-3.1.jarをクラスパスに追加。

 で、以下のような感じのソースを書いてみて実行。

XmlRpcClient client = new XmlRpcClient();
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setBasicUserName("(username)");
config.setBasicPassword("(password)");
config.setServerURL(new URL("http://ubuntu-server/tracproj/test/login/xmlrpc"));
Map<String, String> attributes = new HashMap<String, String>();
attributes.put("status", "assigned");
client.execute(config, "ticket.update", new Object[] {
 new Integer(1),
 "XML-RPCからコミット" + new Date(),
 attributes,
 false
});

 newだったチケット番号1のStatusが見事にassignedに変わりました(^^)。また、コメントも期待通りの値がセットされました。
 もちろん、上記の処理はTicketのStatusがnewであることを前提としているので、実際に処理を行う場合はあれこれとチェック等を行う必要がありますが(^^;

|

« Ubuntu ServerでTrac | Main | SP = SpecialPoison? »

Java」カテゴリの記事

Subversion・Trac・etc.」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack


Listed below are links to weblogs that reference JavaアプリからXML-RPCでTracのTicketを更新:

« Ubuntu ServerでTrac | Main | SP = SpecialPoison? »