-IStorage対応(5)

どうやっても無理な唯一パターンがあります。以下の条件を満たすと見つけられません。

  • JarのルートにDiconをおく
  • PackageExplorerから直接そのDiconを開く

わざわざEclipseAPIでデフォルトパッケージの非Javaクラスについてローディングできないようにとめてるのです。

org.eclipse.jdt.internal.core.PackageFragment
public Object[] getNonJavaResources() throws JavaModelException {
  if (this.isDefaultPackage()) {
    // We don't want to show non java resources
    // of the default package (see PR #1G58NB8)
    return JavaElementInfo.NO_NON_JAVA_RESOURCES;
  } else {
    return ( (PackageFragmentInfo) getElementInfo()
           ).getNonJavaResources(getResource(), getPackageFragmentRoot());
  }
}

「PR #1G58NB8」って何かはわかりませんが、デフォルトパッケージにおいちゃダメなそうな。Seasar2のプロジェクトやS2Daoのプロジェクトなどは、デフォルトに「j2ee.dicon」があるし「app.dicon」がデフォルトパッケージに置かれたりしますので、Jarの中じゃ無いときにはKijimunaの回避コードで探しますが、Jarの中は探せないのです。既知の制限ということにせざるを得ません。