我有兴趣了解 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>
应用程序知道的服务器位置和位置。
在源代码中,类的层次结构如下:
组件 <--- 服务器 <--- 服务器 A、服务器 B
ServerA 和 ServerB 从 Server 下降并分别映射到和元素。
配置的点条目位于名为 Configuration 的类中,该类包含一个 ServerA 列表和一个 ServerB 列表。现在,因为应用程序应该能够监视它不知道的其他程序,所以 XML 配置文件也应该是可扩展的,所以 Configuration 类还包含一个 Object 列表,该列表映射到用户在配置文件。
配置.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中将它们配置为扩展,然后在配置文件中指定它们的其他细节?