異なるスレッドでリポジトリインスタンスを作成する前に、このメソッドを1回呼び出すだけで済みます。
SVNRepositoryFactoryImpl javadocから:
ライブラリを使用する前に、アプリケーションで1回実行すると、svn-protocol(svnおよびsvn + sshを介して)を介してリポジトリを操作できるようになります。
これは2つのリポジトリ(モノスレッド)を持つサンプルコードです:
SVNRepositoryFactoryImpl.setup(); // ONCE!
String url1 = "svn://host1/path1";
SVNRepository repository1 = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url1));
String url2 = "svn://host2/path2";
SVNRepository repository2 = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url2));
マルチスレッド環境では、Runnableを実装するクラスを作成できます。
public class ProcessSVN implements Runnable {
private String url;
public ProcessSVN(String url) {
this.url = url;
}
public void run() {
SVNRepository repository = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(url));
// do stuff with repository
}
}
そして、次のように使用します。
SVNRepositoryFactoryImpl.setup(); // STILL ONCE!
(new Thread(new ProcessSVN("http://svnurl1"))).start();
(new Thread(new ProcessSVN("http://svnurl2"))).start();