首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Eclipse 插件擴展 IBM Lotus Symphony 實戰指南

     編輯:Java 相關知識

Lotus Symphony 架構解析

IBM Lotus Symphony 本質上是基於 Lotus Expeditor 平台(Eclipse RCP 3.2)構建的大型插件集合。其框架採用標準 Eclipse 插件架構:核心辦公引擎(源自 OpenOffice 1.1)+ Eclipse 插件容器 + 服務層(文檔模型、UI、協作等)。這意味著:

  • 完全相容 Eclipse 3.2 插件開發模型
  • 可通過 org.eclipse.ui.actionSets 等標準擴展點注入功能
  • 享有 Eclipse 豐富的 API 體系(JFace、SWT、Commands 等)

開發環境搭建(關鍵版本鎖定)

組件版本/路徑要求
Eclipse IDE3.2 版本(不建議 3.3+),解壓至 d:\eclipse 作為 <ECLIPSE_HOME>
Lotus Symphony安裝至 d:\symphony 作為 <SYMPHONY_HOME>
J9 SDK來自 Lotus Expeditor Toolkit,放置 d:\J9_SDK

Target Platform 配置

  1. Window → Preferences → Plug-in Development → Target Platform 設為 <SYMPHONY_HOME>\framework\eclipse
  2. Java → Installed JREs 添加 J9 VM:
    • JRE type: J9 VM
    • JRE name: JCL Desktop
    • JRE home: <J9_SDK>\jre
    • Default VM args: -jcl:max
  3. 將 <JRE_HOME>\lib\jclmaxext 和 jclmaxopt-ext 所有 JAR 加入系統庫

Runtime Configuration 關鍵參數

  • Run a product: com.ibm.productivity.tools.standalone.branding.productivitytools
  • Runtime JRE: JCL Desktop
  • Program arguments: -personality com.ibm.productivity.tools.standalone.personality -debug -console
  • VM arguments: -Xbootclasspath/a: ${rcp_home}/rcp/eclipse/plugins/com.ibm.rcp.base_${rcp_version}/rcpbootcp.jar
  • 變量 rcp_home=<SYMPHONY_HOME>\framework,rcp_version=實際插件版本號(如 6.1.0.0-200701121347)

插件開發實戰:論壇快捷入口

步驟 1:創建 Plug-in Project

  • Project name: com.ibm.symphony.samples.forum
  • 擴展點: org.eclipse.ui.actionSets

步驟 2:plugin.xml 定義菜單與工具欄

<extension point="org.eclipse.ui.actionSets">
  <actionSet id="forumActionSet" label="Forum Support" visible="true">
    <menu id="forumMenu" label="Forum Support" path="additions">
      <separator name="forumGroup"/>
    </menu>
    <action id="openForum" label="Open Forum" 
            class="com.ibm.symphony.samples.forum.actions.OpenForumAction"
            menubarPath="forumMenu/forumGroup"
            toolbarPath="forumToolBarGroup"
            icon="icons/forum.gif"/>
  </actionSet>
</extension>

步驟 3:Action 實現內嵌瀏覽器啟動

public class OpenForumAction extends Action {
    public void run() {
        IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow();
        IIntroPart intro = (IIntroPart) window.getActivePage().findView(IIntroPart.INTRO_ID);
        if (intro != null) {
            // 啟動 Symphony 內嵌瀏覽器打開論壇 URL
            BrowserUtil.openURL("https://www.ibm.com/developerworks/lotus/products/symphony/forum.html");
        }
    }
}

步驟 4:構建 Feature 與 Update Site

  1. 新建 Feature Project,包含上述插件
  2. 新建 Update Site Project,添加 Feature
  3. Build All → 生成 site.xml 與插件 JAR

部署安裝到 Symphony

  1. Symphony 中 File → Application → Install
  2. 選 Search for new features to install → Add Zip/Jar Location 指向 Update Site 目錄
  3. 完成安裝向導,重啟 Symphony
  4. 菜單欄出現「Forum Support」,工具欄顯示圖標,點擊即啟動內嵌瀏覽器訪問論壇

避坑指南與最佳實踐

  • 版本鎖定:嚴格使用 Eclipse 3.2 + 對應 J9 SDK,版本不匹配會導致 ClassNotFound 或啟動失敗
  • 清理工作空間:啟動配置勾選 Clear workspace data before launching 避免殘留狀態干擾
  • API 依賴:優先使用 Symphony 公開 API(com.ibm.symphony.api.*),避免直接依賴內部實現類
  • 國際化:插件資源採用 plugin.properties 多語言包,適配 Symphony 多語言環境
  • 簽名與權限:生產部署需簽名插件,配置 policy.xml 授予必要權限

結語

Lotus Symphony 作為 Eclipse RCP 應用的典型案例,展示了「產品即平台」的擴展威力。掌握其插件開發流程,不僅能定製辦公套件,更能深度理解 Eclipse RCP 架構精髓。從論壇入口到複雜文檔自動化、協作增強,插件機制為 Symphony 賦予了無限可能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved