質問

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

要件の概要は次のとおりです(詳細が欠けている可能性があることを言い訳してください。これは実際に自分を励ますためのほんの一例です):

一部のサーバーを監視するEclipse RCPアプリケーションが必要でした。これらのサーバーは、最初はアプリケーションが知っているプログラムです(インとアウトについて正確に知っていることを意味します)。ただし、将来、アプリケーションは、ユーザーがアプリケーションが監視するアプリケーションの異なる特性を持つ任意のプログラムを指定できるようにする必要があります(既知のサーバーだけでなく、以前は知らなかった他のサーバーも)。アプリケーションには、監視する必要のあるサーバーのすべての詳細(ホスト、ポート、ユーザー名、パスワードなど)を含む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>

アプリケーションが認識しているサーバーと場所。

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

コンポーネント<!> lt; ---サーバー<!> lt; --- 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;
}

今、これはあなたたちも問題に取り組むために行うものですか?私は推測しますが、ユーザーが指定した他のプログラムを監視できるアプリケーションの要件について混乱しているだけです。私は最初にそれを設定したことを知っていますが、<!> quot;これはEclipse RCPの拡張ポイント<!> quot;を利用できるもののように見えることを念頭に置いて行いましたが、今は設定ファイルにジャンプしました、構成ファイルがplugin.xmlにどのように関連するのか明確ではありませんか?

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

役に立ちましたか?

解決

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

さまざまな監視特性を持つさまざまなサーバーがあります。しかし、Eclipseアプリケーションの場合、それらはすべて似ている必要があります。

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

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

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

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top