IBM Lotus Symphony 本質上是基於 Lotus Expeditor 平台(Eclipse RCP 3.2)構建的大型插件集合。其框架採用標準 Eclipse 插件架構:核心辦公引擎(源自 OpenOffice 1.1)+ Eclipse 插件容器 + 服務層(文檔模型、UI、協作等)。這意味著:
org.eclipse.ui.actionSets 等標準擴展點注入功能| 組件 | 版本/路徑要求 |
|---|---|
| Eclipse IDE | 3.2 版本(不建議 3.3+),解壓至 d:\eclipse 作為 <ECLIPSE_HOME> |
| Lotus Symphony | 安裝至 d:\symphony 作為 <SYMPHONY_HOME> |
| J9 SDK | 來自 Lotus Expeditor Toolkit,放置 d:\J9_SDK |
Window → Preferences → Plug-in Development → Target Platform 設為 <SYMPHONY_HOME>\framework\eclipseJava → Installed JREs 添加 J9 VM:
<J9_SDK>\jre-jcl:max<JRE_HOME>\lib\jclmaxext 和 jclmaxopt-ext 所有 JAR 加入系統庫com.ibm.productivity.tools.standalone.branding.productivitytools-personality com.ibm.productivity.tools.standalone.personality -debug -console-Xbootclasspath/a: ${rcp_home}/rcp/eclipse/plugins/com.ibm.rcp.base_${rcp_version}/rcpbootcp.jarrcp_home=<SYMPHONY_HOME>\framework,rcp_version=實際插件版本號(如 6.1.0.0-200701121347)com.ibm.symphony.samples.forumorg.eclipse.ui.actionSets<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>
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");
}
}
}
site.xml 與插件 JARFile → Application → InstallSearch for new features to install → Add Zip/Jar Location 指向 Update Site 目錄Clear workspace data before launching 避免殘留狀態干擾com.ibm.symphony.api.*),避免直接依賴內部實現類plugin.properties 多語言包,適配 Symphony 多語言環境policy.xml 授予必要權限Lotus Symphony 作為 Eclipse RCP 應用的典型案例,展示了「產品即平台」的擴展威力。掌握其插件開發流程,不僅能定製辦公套件,更能深度理解 Eclipse RCP 架構精髓。從論壇入口到複雜文檔自動化、協作增強,插件機制為 Symphony 賦予了無限可能。