2011-01-28 8 views
2

JUnitテストで次のコードを実行して、gitリポジトリの取得をテストしています。私はJGitから必要な基本機能のそれぞれについてテストを書いていますので、私はそれらをアプリケーションに実装できます。問題は、以下のgit.fetch()呼び出しで次のエラーが発生することです。JGit/EGit翻訳バンドルの読み込みに失敗しました。en_US

Loading of translation bundle failed for [org.eclipse.jgit.JGitText, en_US] 
org.eclipse.jgit.errors.TranslationBundleLoadingException: Loading of translation bundle failed for [org.eclipse.jgit.JGitText, en_US] 

コードサンプルは以下のとおりです。リポジトリのパスとすべてが正しいように見えることを確認しました。私がフェッチ呼び出しにブレークポイントを置き、MSysGitで同じコマンドを実行すると動作します。

try { 
     String remoteName = "origin"; 
     URIish uri = new URIish(repository.getRepositoryDirectory()); 
     saveRemote(repository2.getRepository(), uri, remoteName); 
     Git git = repository.getGit(); 
     FetchResult r = git.fetch().setRemote(remoteName).call(); 
     assertNotNull("Did not get any result from fetch.", r); 
     } catch (JGitInternalException ex) { 
     fail("Failed to do fetch. " + ex.getMessage()); 
     } catch (InvalidRemoteException ex) { 
     fail("Failed to do fetch. " + ex.getMessage()); 
     } catch (URISyntaxException ex) { 
     fail("Failed to do fetch. " + ex.getMessage()); 
     } 

ありがとうございます!

答えて

2

これはわかりました。バイナリ配布のJGitText.propertiesファイルをソースコードの同じパッケージにコピーし、JGitText_en_US.propertiesに名前を変更し、JGitText.javaで使用されたコードを手動で手動で追加しなければならなかったJGitText.propertiesで定義されています。

私は、全体のソースコードとすべてのバイナリファイルおよび関連ドキュメントを通して検索し、これらの新しいプロパティへの参照、または任意の場所に作成されたプロパティファイルを見つかりませんでした。私は、開発者がソースコードにローカライゼーションファイルを持たない理由、または少なくともビルドファイルなどを介して生成する方法を知りません。つまり、手動でソースコードに追加してコミットしないといけないということです。

とにかくこれは非常に厄介な問題でした。ネット上のどこにもドキュメントはありませんでした(グーグルはとにかく公開されていました)ので、同じ問題に遭遇した人を助けるかもしれないので、

+0

より多く:( –

0

私は同じ問題を抱えていたが、私の修正は少し違っていました。私の場合、問題はOSGIクラスローダーに関連していました。 https://github.com/diffplug/jgit/commit/3bcc69bde5567ec57ccd6bd065ded0db49f810fb

そして、ここでは、その背後にある論理的根拠です:

は、ここで問題が修正されているコミットだ私は、このパッケージを使用して後悔してい Loading a ResourceBundle within an OSGi bundle