osgi - XPage Osgi 插件开发

标签 osgi xpages xpages-extlib

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

我的问题

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

非常感谢您的意见。

最佳答案

根据我的经验,我发现潜入插件开发是一个巨大的 PITA,直到您习惯它,但总体而言绝对值得。

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

有两个主要起点:XSP 入门工具包 (http://www.openntf.org/internal/home.nsf/project.xsp?name=XSP%20Starter%20Kit) 和 Niklas Heidloff 关于设置 Eclipse 以进行 XPages 开发的视频 (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,然后使用应用程序 -> 安装从那里安装到​​ Designer。您还可以进行设置,以便部署到服务器的插件/功能目录中,而不是按照您的喜好安装到更新站点中。 GitHub 在这方面并没有真正发挥作用——它更多的是与您的代码共享/协作以及为您的 git 存储库提供远程存储位置(我强烈建议这样做)。

至于“迷失在树林中”的感觉:是的,你会在很长一段时间内拥有这种感觉。有很多事件部件和深奥的概念可以一次掌握。如果您主要遵循上述链接,然后从 XSP Starter Kit(它本身是一个可以与功能配对的插件项目)中的一些基础知识开始 - 例如,在 Activator 类中打印文本并制作一个隐式全局变量只是为了确保它有效 - 这应该有助于弄湿你的脚。

关于osgi - XPage Osgi 插件开发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24327337/

相关文章:

OSGI 集成测试和代码覆盖率

java - 如何在 SE 应用程序中引导 weld-osgi 版本 2

rest - 如何配置 xe :viewFileItemService on an XPage to filter the data in a categorized view?

javascript - dojo.exists 在 IE11 上失败

xpages - XPage 的 Java 控件中的设置图标

javascript - XPages - 在查找 xe :simpleValuePicker 时使用变量

java - 如何在 Eclipse Juno 中打开 OSGi 控制台?

java - 使用 DS 多次实例化 Bundle

java - xpages xp :fileDownload allowDelete ="false", 但用户可以删除附件

xpages - JDBCConnectionManager 可以与 JDBCRowSet 一起使用吗?