首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Eclipse RCP案例研究

Eclipse RCP案例研究
EN

Stack Overflow用户
提问于 2009-03-18 03:12:14
回答 1查看 479关注 0票数 2

我对学习Eclipse RCP很感兴趣,我已经有了一些基础知识,但我想知道更多它的能力。因此,我鼓励自己创建一组需求,分析它们,并提出关于如何使用Eclipse RCP作为基础框架来满足它们的设计决策,并最终使用Eclipse RCP实现它们。现在,可能需求太难了,或者我还不太了解Eclipse RCP,我正在努力想出合适的解决方案来满足这些需求!

以下是要求的摘要(请原谅可能缺乏细节,这只是一些例子,以鼓励我自己):

我想要一个Eclipse RCP应用程序来监控一些服务器。这些服务器最初将是应用程序知道的程序(这意味着它确切地知道它们的输入和输出)。然而,在未来,应用程序应该能够允许用户指定具有不同特征的任意程序,以便应用程序也进行监控(因此,不仅是已知的服务器,还包括一些以前不知道的其他服务器)。应用程序还需要一个XML配置文件,其中包含需要监视的服务器的所有详细信息(例如,主机、端口、用户名和密码)。这个XML配置文件将使用JAXB进行编码和解码。

因此,基于上述要求,我提出了以下细节:

XML将如下所示:

代码语言:javascript
复制
<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分别从服务器和映射到和元素。

配置的点条目在名为configuration的类中,该类包含一个ServerA列表和一个ServerB列表。现在,因为应用程序应该能够监视它不知道的其他程序,所以XML配置文件也应该是可扩展的,所以configuration类还包含一个对象列表,该对象列表映射到配置文件中用户指定的任何其他组件。

Configuration.java

代码语言:javascript
复制
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中将其配置为扩展,然后在配置文件中指定其其他详细信息?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-03-18 10:31:42

有几种方法可以解决这个问题。但让我试一试吧。

您有一堆不同的服务器,具有不同的监控特征。但是对于您的eclipse应用程序,它们必须看起来都很相似。

假设您有一个Eclipse RCP应用程序,其中包含一些用于监视服务器的UI。对于这个应用程序,服务器实际上是什么并不重要,但应该有一个公共接口来连接它们。

一种可能性是,你有一个表示服务器通信协议的接口,然后,你在你的主插件中定义了一个扩展点,允许协议的贡献实现。因此,您将能够创建某个接口的实例集合(让我们称其为IMonitoringProtocol)。此接口将包含在UI上显示状态所需的方法。

此外,您还需要一个XML配置文件,其中列出了所有服务器。此配置文件中的一个元素是用于监视的协议。

因此,当您启动您的应用程序时,您将实例化所有贡献的协议,并读取配置文件。然后,您可以通过匹配配置条目来查找要与服务器通信的正确协议。

这使您可以在将来为未知的服务器添加新协议。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/656852

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档