2016-07-14 9 views
2

あるcom.sun.tools.xjc.Optionsへの代替、我々は公共のAPIで、この方法とのインタフェースがあります。ではJAXB XJCオプション:私たちのフレームワークではJava9に優しいとOSGiフレンドリー

JaxbConfiguration newJaxbConfiguration(Options xjcOpts); 

を実装は、我々はこのような何かを:

import com.sun.tools.xjc.ModelLoader; 
import com.sun.tools.xjc.Options; 
import com.sun.tools.xjc.model.Model; 
... 

public JaxbConfiguration newJaxbConfiguration(Options xjcOpts) { 
    Model model = ModelLoader.load(xjcOpts, ...); 
    ... 
} 

しかし、OSGiのとJava 9のジグソーパズルの両方は、我々はない私たちの実装では、特にありません私たちのパブリックAPIインタフェースで、com.sun.tools.xjc.Optionsを使用することを好みません。

どうすれば削除できますか?

+2

JaxbConfigurationの仕組みとその方法で達成したいことについて説明できますか? –

+0

[これはJaxbConfigurationのコードです](https://github.com/droolsjbpm/drools/blob/master/drools-core/src/main/java/org/drools/core/builder/conf/impl/JaxbConfigurationImpl)。 java)。 @ mario-fuscoあなたは私たちが何をしているか考えていますか? –

答えて

2

JDeps websiteには、JDKの内部APIの一部とその使用方法を置き換える推奨される方法が記載されています。ただし、ModelLoader.load()の使用については言及していません。私の推測では、このユースケースがJDepsチームの注意を引くのに十分ではないということです。

私の推薦はあなたがオプションの引数を構築するために使用して、代わりにオプションの引数にデータを構築することを
  • 使用を渡しているデータを渡す

    1. ように、このメソッドをリファクタリングするだろう

      JaxbConfigurationオブジェクトを内部モデルから変換する代わりに使用します。

    あなたはJaxbConfigurationが何であるか、どのライブラリから来たのかは言及していないので、それをどのように構築するのか正確に言うのは難しいです。とにかく、この答えは、内部APIの使用を取り除く方法です。 JaxbConfigurationの構築方法はおそらく別の質問です。

  • 関連する問題