XPage-Osgi插件开发

XPage-Osgi插件开发,osgi,xpages,xpages-extlib,Osgi,Xpages,Xpages Extlib,背景 在过去一年左右的时间里,我设计了很多工具来帮助我为XPages编程。这些工具主要包括helper java类、扩展日志记录(利用OpenLogger和我自己的东西),以及一些我个人认为没有的其他工具。已经和我的雇主讨论过了,我们觉得开始将这些项目发布到openNTF是个好主意。由于这些工具由大约3.nsfs组成,所有这些工具都设计为使用相同的java代码、关键javascript类、css,甚至一个或两个自定义控件,因此我希望将关键项整合到一个插件中,该插件可以安装在服务器和客户机级别。我

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

我的问题

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

  • 非常感谢您的投入。

    根据我的经验,我发现在您习惯插件开发之前,潜入插件开发是一个巨大的难题,但总的来说是值得的

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

    有两个主要的起点:XSP初学者工具包()和Niklas Heidloff关于为XPages开发设置Eclipse的视频()。后者提到了xpagesdk(),它也很有用。在我的设置中,我发现视频非常有用,但有些方面要么很难找到(IBM的下载是流动的),要么是可选的(调试,这取决于您是否在Windows上使用Eclipse)

    这些资源通常会帮助您进行设置。设置Eclipse环境时需要考虑的主要问题是确保插件执行环境正确完成。如果您正在按照SDK安装说明进行操作,那么应该可以到达您需要的位置

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


    至于“迷失在森林里”的感觉:是的,你会有一段时间的这种感觉。有很多运动部件和深奥的概念可以同时掌握。如果您主要遵循上述链接,然后从XSP初学者工具包(它本身就是一个插件项目,您可以与一个功能配对)中的一些基础知识开始,比如,在Activator类中打印文本,并生成一个隐式全局变量以确保其正常工作,这将有助于您了解更多信息。

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

  • 面向RCP和RAP开发人员的Eclipse
  • Eclipse RCP的XPages SDK(来自OpenNTF)
  • XPages调试插件(来自OpenNTF-基本上允许您将插件动态加载到Domino服务器,而不是一直导出到更新站点)
  • OpenNTF上的XSP初学者工具包是插件的良好起点。有各种对库id的引用,对于插件来说,库id必须是唯一的。基本上,对org.openntf.xsp.starter的引用需要更改为您想要调用插件的任何内容。你最好把你不需要的东西拿走。我倾向于在初学者的副本中工作,删除东西,构建,如果所需的类有错误(显然需要Activator.java和其他一些类),然后从初学者中粘贴它们

    XPages OpenLog Logger是一个很好的交叉参考,它是从XPages初学者工具包构建的。它几乎是精简的,你可以看到有什么需要改变。XSP初学者工具包的许多元素对应于您在XPages Java开发中可能熟悉的Java类

    GitHub等往往被用作源代码控制,这有助于了解不时发生的变化。

    I'm hop