2

Eclipse RCPについて知りたいのですが、基本的な知識はありますが、EclipseRCPの機能についてもっと知りたいと思いました。そこで、一連の要件を作成して分析し、基本フレームワークとしてEclipse RCPを使用してそれらをどのように満たすことができるかについて設計上の決定を下し、最終的にEclipseRCPでそれらを実装することを自分自身に勧めました。さて、要件が厳しすぎるか、Eclipse RCPについてまだよく理解していないので、要件を満たすための適切なソリューションを考え出すのに苦労しています。

以下は要件の要約です(詳細が不足している可能性があります。これは実際には自分自身を励ますための単なる例です)。

一部のサーバーを監視するためのEclipseRCPアプリケーションが必要でした。これらのサーバーは、最初はアプリケーションが認識しているプログラムになります(つまり、サーバーのインとアウトを正確に認識しています)。ただし、将来的には、アプリケーションは、ユーザーが監視するアプリケーションの特性が異なる任意のプログラムを指定できるようにする必要があります(つまり、既知のサーバーだけでなく、以前は知らなかった他のサーバーも)。アプリケーションには、監視する必要のあるサーバーのすべての詳細(ホスト、ポート、ユーザー名、パスワードなど)を含むXML構成ファイルも必要です。このXML構成ファイルは、JAXBを使用してエンコードおよびデコードされます。

したがって、上記の要件に基づいて、次の詳細を考え出しました。

XMLは次のようになります。

<configuration>
    <components>
        <serverA>
          <host></host>
          <port></port>
          <username></username>
          <password></password>
        </serverA>
        <serverB>
          <host></host>
          <port></port>
          <username></username>
          <password></password>
        </serverB>
        <!--- this will be the place for other components specified by user -->
    </components>
</configuration>

アプリケーションが認識しているサーバーはどこにありますか。

ソースコードには、次のクラスの階層があります。

コンポーネント<---サーバー<---ServerA、ServerB

ServerAとServerBは、Serverの子孫であり、それぞれと要素にマップされます。

構成のポイントエントリは、ServerAのリストとServerBのリストを含むConfigurationというクラスにあります。これで、アプリケーションは認識していない他のプログラムを監視できるはずなので、XML構成ファイルも拡張可能である必要があります。したがって、Configurationクラスには、ユーザーが指定した他のコンポーネントにマップするObjectのリストも含まれます。構成ファイル。

Configuration.java

public class Configuration
{
   @XmlElement
    private List<ServerA> serveras;

   @XmlElement
    private List<ServerB> serverbs;

   @XmlAnyElement
    private List<Object> otherServers;
}

さて、これはあなたたちが問題に取り組むためにも行うことですか?私は、ユーザーが指定した他のプログラムをアプリケーションが監視できるようにするための要件について混乱しているだけだと思います。そもそも設定したことは知っていますが、「これはEclipse RCPの拡張ポイントを利用できるもののようです」ということを念頭に置いて設定しましたが、設定ファイルに飛び込んだので、どうすればいいのかわかりません。構成ファイルはplugin.xmlに関連していますか?

頭の中で、アプリケーションが監視する必要のあるプログラムの詳細(ホスト、ポート、ユーザー名、およびパスワード)を構成ファイルで指定する必要がありました。plugin.xmlは、アプリケーションが監視する必要のあるユーザー定義プログラムの拡張ポイントと拡張機能を指定するために使用されます。つまり、最終的に、ユーザー定義プログラムの場合、ユーザーはそれらをplugin.xmlで拡張機能として構成し、構成ファイルで他の詳細を指定する必要があるということですか?

4

1 に答える 1

1

この問題に取り組むにはいくつかの方法があります。しかし、私はそれにショットを与えましょう。

さまざまな監視特性を持つさまざまなサーバーがたくさんあります。しかし、Eclipseアプリケーションの場合、それらはすべて同じように見える必要があります。

サーバーを監視するためのUIを含むEclipseRCPアプリケーションがあるとします。このアプリケーションでは、サーバーが実際に何であるかは問題ではありませんが、サーバーに接続するための共通のインターフェースが必要です。

1つの可能性は、サーバー通信プロトコルを表すインターフェイスがあり、その後、プロトコルの実装に貢献できるようにする拡張ポイントをメインプラグインに定義することです。したがって、いくつかのインターフェイスのインスタンスのコレクションを作成できるようになります(これをIMonitoringProtocolと呼びます)。このインターフェイスには、UIにステータスを表示するために必要なメソッドが含まれます。

さらに、すべてのサーバーをリストするXML構成ファイルがあります。この構成ファイルの要素の1つは、監視に使用するプロトコルです。

したがって、アプリケーションを起動するときに、提供されたすべてのプロトコルをインスタンス化し、構成ファイルを読み取ります。次に、構成エントリを照合することにより、サーバーと通信するための適切なプロトコルを見つけることができます。

これにより、まだ不明なサーバーに対して、将来的に新しいプロトコルを追加できます。

于 2009-03-18T10:31:41.763 に答える