XPage Osgi插件正在开发中



背景
在过去一年左右的时间里,我设计了许多工具,旨在帮助我为XPages编程。这些工具主要包括helper java类、扩展日志记录(利用OpenLogger和我自己的东西(,以及其他一些我个人认为没有它们就无法工作的东西。我已经和我的雇主讨论过了,我们觉得开始将这些项目发布到openNTF可能是个好主意。由于这些工具由大约3.nsfs组成,所有这些工具都设计为使用相同的java代码、关键javascript类、css,甚至一两个自定义控件,所以我想将关键项合并到一个插件中,该插件可以安装在服务器和客户端级别。我想在考虑出版我迄今为止所做的任何工作之前进行整合。这将是太多的工作来维护,不仅对我来说,而且对潜在用户来说。我真的没有在谷歌搜索中找到任何关于如何做这件事的信息。我还必须确保能够使用ExtLib库、openNTF Domino API和Notes API。

我的问题

  1. 如何最好地设计这样的插件?必须是设计师使用eclipse,或者可以直接在Notes中这样做吗设计师
  2. 在设计和更新插件代码时,设计者如何最好地保持服务器和客户端的最新状态?这就是为什么经常使用GitHub吗
  3. 哪里是获得材料以开始这个方向的最佳地点?我有点迷失在树林里,知道我需要向北走,但第一步没有指南针

非常感谢您的意见。

根据我的经验,我发现在你习惯之前,深入插件开发是一个巨大的PITA,但总的来说,这绝对是值得的。

至于你是否可以使用Designer进行插件开发:是的,但你最终可能不想这样做。我一开始用Designer做这类事情有一段时间,大概和你有同样的感受:既然我已经整天坐在一个实例里了,为什么还要安装另一个Eclipse实例呢?然而,在Designer的年龄(我认为它大致相当于Eclipse 3.4(、"应用程序"one_answers"项目浏览器"视图之间的工作集的奇怪之处,以及我想要使用Mac应用程序的愿望之间,我最终切换了。

有两个主要的起点:XSP入门套件(http://www.openntf.org/internal/home.nsf/project.xsp?name=XSP%20Starter%20Kit)以及Niklas Heidloff关于为XPages开发设置Eclipse的视频(http://www.openntf.org/main.nsf/blog.xsp?permaLink=NHEF-8RVB5H(。后者提到了XPages SDK(http://www.openntf.org/internal/home.nsf/project.xsp?name=XPages%20SDK%20for%20Eclipse%20RCP),这也是有用的。在我的设置中,我发现视频非常有用,但有些方面要么很难找到(IBM的下载是流沙(,要么是可选的(调试,这将取决于您是否在Windows上使用Eclipse(。

这些资源通常会让你做好准备。在设置Eclipse环境时,需要担心的主要问题是确保插件执行环境正确完成。如果你遵循SDK的设置说明,那应该会让你到达你需要的地方。

接下来要了解的是插件的结构方式。您要在Designer或Domino中安装的每个插件也将与一个功能项目(一个功能可以容纳多个插件(配对,并可能与一个更新站点配对-如果您只想将功能导入更新站点NSF,则最后一个是可选的。这就是我通常进行插件开发的方式:将配对的功能导出到一个目录,然后将该功能导入服务器的更新站点NSF,然后使用Application->install在Designer中安装。如果你愿意,你也可以设置一些东西,以便部署到服务器的插件/功能目录中,而不是安装到更新站点中。GitHub在这方面并没有真正发挥作用——它更多的是与您的代码共享/协作,以及为您的git存储库提供远程存储位置(我强烈建议(。

至于"迷失在树林里"的感觉:是的,你会有很长一段时间的。有很多移动部件和深奥的概念需要同时掌握。如果你主要遵循上面的链接,然后从XSP入门套件(它本身就是一个插件项目,你可以与一个功能配对(中的一些基础知识开始——比如,在Activator类中打印文本,并制作一个隐式全局变量来确保它的工作——这应该有助于你站稳脚跟。

最好在Eclipse中完成。您可以从那里调试在服务器上运行的代码,也可以直接从那里运行代码。编辑们也更与时俱进。您想要:

  1. 用于RCP和RAP开发人员的Eclipse
  2. 用于Eclipse RCP的XPages SDK(来自OpenNTF(
  3. XPages调试插件(来自OpenNTF-基本上允许您动态地将插件加载到Domino服务器,而不是一直导出到更新站点(

OpenNTF上的XSP入门套件是插件的一个很好的起点。有各种对库id的引用,对于您的插件来说,库id必须是唯一的。基本上,对org.openntf.xsp.starter的引用需要更改为您想要调用的插件。最好也建议你去掉不需要的东西。我倾向于在Starter的副本中工作,删除东西,构建,如果所需的类出现错误(Activator.java显然是必需的,还有其他一些(,然后从Starter将它们粘贴回来。

XPages OpenLog Logger是一个很好的交叉引用,它是从XPages Starter Kit构建的。它几乎被剥光了,你可以看到需要改变的地方。XSP入门套件的许多元素都对应于您在XPages Java开发中可能熟悉的Java类。

GitHub等往往被用作源代码管理,这对于计算不时发生的变化很有用。

最新更新