我有兴趣了解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下载并映射到和元素。
配置的点条目位于名为Configuration的类中,该类包含ServerA列表和ServerB列表。现在,因为应用程序应该能够监视它不知道的其他程序,所以XML配置文件也应该是可扩展的,因此Configuration类还包含一个Object列表,该列表映射到user中指定的任何其他组件。配置文件。
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中将它们配置为扩展,然后在配置文件中指定其他详细信息?
答案 0 :(得分:1)
有几种方法可以解决这个问题。但是让我试一试。
您有许多不同的服务器,具有不同的监控特性。但是对于你的eclipse应用程序,它们看起来都必须类似。
假设您有一个Eclipse RCP应用程序,其中包含一些用于监视服务器的UI。对于这个应用程序,服务器实际上应该是什么并不重要,但应该有一个通用接口来连接它们。
一种可能性是你有一个代表服务器通信协议的接口,然后,你在主插件中定义一个扩展点,允许贡献协议的实现。因此,您可以创建一些接口实例的集合(让我们称之为IMonitoringProtocol)。此界面将包含在UI上显示状态所需的方法。
此外,您将拥有一个列出所有服务器的XML配置文件。此配置文件中的一个元素是用于监视的协议。
因此,当您启动应用程序时,您将实例化所有提供的协议,并读取配置文件。然后,您可以通过匹配配置条目找到与服务器通信的正确协议。
这使您可以在将来为尚未知的服务器添加新协议。