ã¯ããã«
é·ãæŽå²ãæã€Eclipse RCPå šäœã1ã€ã®æçš¿ã§èŠãããšã¯ã»ãšãã©äžå¯èœãªã®ã§ããŸãã¯ã¯ãŒã¯ã¹ããŒã¹ïŒãã©ã°ã€ã³ïŒããã©ã°ã€ã³ããããã®éã®äŸåé¢ä¿ãã©ã³ã¿ã€ã ãªã©ããã©ãããã©ãŒã ã®åºæ¬æŠå¿µã匷調ããããšæããŸãã
æ¬æã§ã¯ãæçšãªæç®ãç¹ã«èšäºãžã®ãªã³ã¯ã瀺ããŸã
Lars Vogellaã¯ãEclipseãã¯ãããžãŒã®äžçã§æåãªè¬æŒè ã§ãããEclipseã³ãã¥ããã£ãŒããç¹°ãè¿ãè³ãåè³ããŠããŸãã
æ¥é£
Eclipseã¯ãIDEãäœæããããã®æ¡åŒµå¯èœãªãã©ãããã©ãŒã ã§ãã ãã©ãããã©ãŒã ã¯ãã©ã°ã€ã³ã§æ¡åŒµããããããããEclipseã®åäœãè£å®ã§ããŸãã ããšãã°ãæ°ãããšãã£ã¿ãŒãã¡ãã¥ãŒé ç®ãªã©ãè¿œå ããŸãã
äœæ¥ãšãªã¢

ã¯ãŒã¯ãã³ãã¯ãEclipseãã©ãããã©ãŒã ã®ã°ã©ãã£ã«ã«è¡šçŸã®ã«ãŒãèŠçŽ ã§ãã ãŠãŒã¶ãŒã«äœããã®ã¢ãã«ãæäŸãã1ã€ãŸãã¯è€æ°ã®ãŠã£ã³ããŠïŒ ã¯ãŒã¯ãã³ããŠã£ã³ã㊠ïŒãå«ããããšãã§ããŸãã ã»ãšãã©ã®å Žåããããã¯ã¯ãŒã¯ã¹ããŒã¹ã«ä¿åãããŠãããªãœãŒã¹ã§ãã [ãŠã£ã³ããŠ]â[æ°ãããŠã£ã³ããŠ]ã䜿çšããŠãæ°ãããŠã£ã³ããŠãéãããšãã§ããŸãã
åãŠã£ã³ããŠã«ã¯ãããŒãžã®ã³ã¬ã¯ã·ã§ã³ïŒ ã¯ãŒã¯ãã³ãããŒãž ïŒãšã¢ã¯ãã£ãããŒãžãžã®ãªã³ã¯ãå«ãŸãã1ã€ã®ãŠã£ã³ããŠã§ã¢ã¯ãã£ãã«ã§ããã®ã¯1ããŒãžã®ã¿ã§ãã
ãšãã£ã¿ãŒãšãã¥ãŒã¯ãé©åãªãããŒãžã£ãŒïŒ ViewFactoryãEditorManager ïŒã䜿çšããŠããŒãžã«ä¿åãããŸãã ãšãã£ã¿ãŒãšãã¥ãŒã«ã¯å ±éã®ã€ã³ã¿ãŒãã§ã€ã¹ããããŸã-IWorkbenchPart ã次ã«äœæ¥éšåã ã¯ãŒã¯ã¹ããŒã¹ã¯ãšãã£ã¿ãŒãšãã¥ãŒãžã®ãªã³ã¯ãä¿åããŸããããEditorReferenceãViewReference ãªã©ã®äžéãªããžã§ã¯ãã䜿çšããŸãã ããã«ããã é 延åæåã䜿çšããŠãã©ã°ã€ã³ãããŒãã§ããŸãã ããšãã°ã次ã®ã¹ã¯ãªãŒã³ã·ã§ããã§ã¯ãéå±€ãã¥ãŒãJavadocãã¥ãŒãããã³å®£èšãã¥ãŒãå®çŸ©ãããã©ã°ã€ã³ã¯ãŸã 䜿çšãããŠããªãããããŸã ããŒããããŠããªãå¯èœæ§ããããŸãã

ãã¥ãŒãšãšãã£ã¿ãŒã¯äºãã«éåžžã«äŒŒãŠãããããŒãžã®äžéšã§ãããã¡ãã¥ãŒãšãã¿ã³ãäœæããããã®ã¡ã«ããºã ã¯åãã§ããã©ã¡ããããã€ãã®ãã¡ã€ã«ã®ã³ã³ãã³ãã衚瀺ã§ããŸãããæŠå¿µçãªéãã¯ãããŸãã ãã¥ãŒãšã¯ç°ãªãããšãã£ã¿ãŒã®è€æ°ã®ã€ã³ã¹ã¿ã³ã¹ã1ããŒãžã«äœæã§ããŸãã ãšãã£ã¿ãŒã¯ãã¡ã€ã«ã®å€æŽã®ã¹ããŒã¿ã¹ïŒ dirty ïŒã衚瀺ã§ããä¿åããã«ãšãã£ã¿ãŒãéãããšå€±ãããå¯èœæ§ã®ããæªä¿åã®å€æŽãããããšãå ±åã§ããŸãã
ããŒãžã«ã¯å€ãã®èŠç¹ãå«ãŸããŠããŸã ã ããŒã¹ãã¯ãã£ãã¯ãããŒãã®ã³ã¬ã¯ã·ã§ã³ãããŒãžäžã®çžå¯Ÿçãªäœçœ®ãã³ãã³ãã®ããŒããŒãã·ã§ãŒãã«ãããã¡ãã¥ãŒã®å¯èŠæ§ãªã©ãå«ãããŒãžãã³ãã¬ãŒãã§ãã ã³ãã³ããŠã£ã³ããŠâããŒã¹ãã¯ãã£ãã®ã«ã¹ã¿ãã€ãºã䜿çšããŠãããŒã¹ãã¯ãã£ããã«ã¹ã¿ãã€ãºã§ããŸãã
ãŠãŒã¶ãŒèšå®ã«é¢ããæ å ±ã¯ã [workspace] /ãMetadata / .plugins / org.eclipse.ui.workbench /ãã£ã¬ã¯ããªã«ä¿åãããŸã ã ãããã®ãã¡ã€ã«ã䜿çšãããšãããŸããŸãªäœæ¥é åã§ããŒã¹ãã¯ãã£ãèšå®ã䜿çšã§ããŸãã ãã ããã¯ãŒã¯ã¹ããŒã¹ãåãæ¿ãããšãã«èšå®ãã³ããŒãããªãã·ã§ã³ã䜿çšããããšããå§ãããŸãã
ã¯ãŒã¯ã¹ããŒã¹ã«ã€ããŠã¯ãã¡ããã詳现ã¯ãã¡ãããèªã¿ãã ãã ã
ãã©ã°ã€ã³
ãã©ã°ã€ã³ã¯ãã¯ãŒã¯ã¹ããŒã¹ã®ã³ã³ããã¹ãå ã§ç¹å®ã®ãµãŒãã¹ãæäŸããã³ã³ããŒãã³ãã§ãã ãã©ã°ã€ã³ã®äŸã¯ãéçºè ãããââã°ã©ã ããããã°ã§ããorg.eclipse.debug.coreãšãåè ã®ã°ã©ãã£ã«ã«ãªè¡šçŸãå«ãorg.eclipse.debug.uiã§ãã
ãã©ã°ã€ã³ã®èª¬æã¯ããã©ã°ã€ã³ãã©ã«ããŒã«ããç¹å¥ãªXMLãã¡ã€ã«plugin.xmlã§è¡ãããŸãã ãã®ãã¡ã€ã«ã¯ããã©ã°ã€ã³ãEclipseãã©ãããã©ãŒã ãæ¡åŒµããæ¹æ³ïŒãšãã£ã¿ãŒããã¥ãŒãã³ã³ããã¹ãã¡ãã¥ãŒã説æããïŒãããã³ãã®æ¹æ³ããäŸåé¢ä¿ãã»ã¯ã·ã§ã³ã§èª¬æããŸãã ãã©ã°ã€ã³ã®å®è£ ã³ãŒãã¯ããã©ã°ã€ã³ã®èµ·åæã«ã®ã¿ããŒããããåã³åæåãé 延ããŸãã ãã®ããã«ããŠãEclipseã¯ãã©ã°ã€ã³æ¡åŒµæ©èœãçŽæ¥ããŠã³ããŒãããã«è¡šç€ºã§ããŸãã
plugin.xmlã®äŸã¯ãèšäºããã©ã°ã€ã³ãããã§ã¹ããã¡ã€ã«ïŒplugin.xmlïŒãšã¯ïŒãã«èšèŒãããŠããŸãã
<?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.4"?> <plugin> <extension point="org.eclipse.ui.views"> <view class="com.xyz.myplugin.ViewPart" id="com.xyz.myplugin.testview" name="Test View"> </view> </extension> </plugin>
ã©ã³ã¿ã€ã ç°å¢
Eclipseã©ã³ã¿ã€ã ã¯ããã©ã°ã€ã³ã®ã©ã€ããµã€ã¯ã«ãå¶åŸ¡ããæ©èœãæäŸããŸãã ãã©ã°ã€ã³ã¯å¿ èŠãªå Žåã«ã®ã¿ããŒããããåæ§ã«ç¡å¹ã«ãªããŸãã åæã«ãèµ·åãããEclipseå ã§ãã©ã°ã€ã³ã®ã€ã³ã¹ã¿ã³ã¹ãäœæããããã©ã°ã€ã³ã®ã¯ã©ã¹ïŒ org.eclipse.core.runtime.Plugin ïŒã察話ãã€ã³ããšèŠãªãããã¢ã¯ãã£ããŒã¿ãŒãšãåŒã°ããŸãã ã¢ã¯ãã£ããŒã¿ã®äž»ãªæ©èœã¯ããã©ã°ã€ã³ã®èµ·åäžã«è¿œå ã®ã¢ã¯ã·ã§ã³ãå®è¡ããããšã§ãïŒç»åã®åæåãç¹å®ã®éçãªãœãŒã¹ã®ãã£ãã·ã¥ãªã©ïŒã è¿œå ã®ã¢ã¯ã·ã§ã³ãå®è¡ããå¿ èŠããªãå Žåãã¢ã¯ãã£ããŒã¿ãŒãæå®ããããšã¯ã§ãããæšæºã®ã¢ã¯ãã£ããŒã¿ãŒã䜿çšãããŸãã ã¢ã¯ãã£ããŒã¿ãŒã®è©³çŽ°ã«ã€ããŠã¯ã ãã¡ããã芧ãã ãã ã Eclipseã©ã³ã¿ã€ã ã¯ãOSGiä»æ§ãå®è£ ããŠããŸãã
OSGiïŒOpen Services Gateway InitiativeïŒã¯ãè€éãªã·ã¹ãã ãã¢ãžã¥ãŒã«ïŒ ãã³ãã« ïŒã«åå²ããã·ã¹ãã ãåèµ·åããã«ãããã®ã¢ãžã¥ãŒã«ããªã¢ãŒãã§ã€ã³ã¹ããŒã«ãæŽæ°ããŸãã¯åé€ã§ããããã«ããä»æ§ã§ãã åã¢ãžã¥ãŒã«ã«ã¯ãä»ã®ã¢ãžã¥ãŒã«ã«å¯ŸããäŸåé¢ä¿ã®ã»ãããšãä»ã®ã¢ãžã¥ãŒã«ãšå¯Ÿè©±ããããã®å³å¯ã«å®çŸ©ãããAPIããããŸãã
æè¡çã«ã¯ãã¢ãžã¥ãŒã«ã¯META-INF / MANIFEST.MFã¢ãžã¥ãŒã«ã«æ ŒçŽãããŠããè¿œå ã®ã¡ã¿æ å ±ãå«ã.jarãã¡ã€ã«ã§ããããã®ãã¡ã€ã«ã¯jarãã¡ã€ã«ã®ä»æ§ã®äžéšã§ãã éOSGiã©ã³ã¿ã€ã ç°å¢ã¯ããããã®ãã¡ã€ã«ãç¡èŠããŸãã
OSGiã¯ããã³ãã«ããµãŒãã¹ãã©ã€ããµã€ã¯ã«ããµãŒãã¹ã¬ãžã¹ããªãªã©ã®ã³ã³ããŒãã³ãã«ã€ããŠã説æããŸãã OSGiã¢ãŒããã¯ãã£ã¯æ¬¡ã®ãšããã§ãã

Eclipseã«å ããŠãOSGiã«ã¯ã Apache Felix ã Knopflerfish ã Concierge OSGiãªã©ã®å®è£ ãããã€ããããŸãã OSGiã®è©³çŽ°ã«ã€ããŠã¯ã å ¬åŒWebãµã€ã ã wiki ãããã³Larsãåç §ããŠãã ãã ã
ãšã¯ã€ããã¯ã¹
Eclipseã§ã®OSGiã®å®è£ ã¯ãå²åŠçã«EquinoxãšåŒã°ããŸãã ãããã£ãŠããã©ã°ã€ã³ã¯OSGiã¢ãžã¥ãŒã«ã§ããããã®ã¡ã¿æ å ±ã¯æ¬¡ã®ãšããã§ãã
Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Test Plug-in Bundle-SymbolicName: com.xyz.myplugin; singleton:=true Bundle-Version: 1.0.0 Bundle-Activator: com.xyz.MyPlugin Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime Bundle-ActivationPolicy: lazy Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Equinoxã¯ãå®è¡æã«ã¢ãžã¥ãŒã«éã®äŸåé¢ä¿ã管çããŸãã ã€ã³ã¹ããŒã«äžã«MANIFEST.MFã¢ãžã¥ãŒã«ãèªã¿åãããã¹ãŠã®äŸåã¢ãžã¥ãŒã«ãæ¢ã«ããŒããããŠããããšã確èªããŠãããèŠæ±ãããã¢ãžã¥ãŒã«ãã¢ã¯ãã£ãã«ããŸãã äŸåé¢ä¿ããªãå Žåãã¢ãžã¥ãŒã«ã¯ããŒããããŸããã ã¢ãžã¥ãŒã«ãäŸåé¢ä¿ãªãã«ã¯ã©ã¹ã«ã¢ã¯ã»ã¹ããããšãããšãClassNotFoundExceptionãã¹ããŒãããŸãã
OSGiã¯ãã©ã°ã€ã³ãã¢ã¯ãã£ãã«ããããã«äœ¿çšã§ããŸã ããã©ã°ã€ã³ã¯ãåå¥ã®ãã©ã°ã€ã³ãã©ã«ããŒeclipse_install_dir / pluginsã«ãããŸã ã
äŸåé¢ä¿
çŽæ¥çãªé¢ä¿
ãã®åœ¹å²ã¯ãäŸåããå¿ èŠãªãã©ã°ã€ã³ã«ãã£ãŠæããããŸãã å€å žçãªçŽæ¥äŸåé¢ä¿ã¯ãMANIFEST.MFãã©ã°ã€ã³ã®ã¡ã¿ããŒã¿ã§èª¬æãããŠããŸãã
äŸåé¢ä¿ã¯ãå®è¡æã ãã§ãªããã³ã³ãã€ã«æã«ã決å®ãããŸãã å®è¡æã«ãEclipseã¯å¿ èŠãªãã¹ãŠã®äŸåé¢ä¿ãäŸåã¢ãžã¥ãŒã«ã§å©çšå¯èœã§ããããšã確èªãããããã¢ã¯ãã£ãåããã ãã§ãã ã³ã³ãã€ã«æã«ãEclipseã¯ããã«å¿ããŠäŸåãã©ã°ã€ã³ã®ã¯ã©ã¹ãã¹ãå€æŽããŸãã
延é·

Eclipseã§æããã䜿çšãããŠããäŸåé¢ä¿ã®1ã€ã¯ã æ¡åŒµãã€ã³ããšåŒã°ããŸãã ãã€ã³ãã¯ãä»ã®ãã©ã°ã€ã³ã«çŽæ¥äŸåããã«ããã¹ãã®ãã¹ãæ©èœãæ¡åŒµããããã«äœ¿çšãããŸãã æ¡åŒµæ©èœãšæ¡åŒµãã€ã³ãã¯ããã©ã°ã€ã³èšè¿°ãã¡ã€ã«plugin.xmlã«èšè¿°ãããŠããŸãã
æ¡åŒµãã€ã³ããå®çŸ©ãããã©ã°ã€ã³ã«ãããä»ã®ãã©ã°ã€ã³ãæ¡åŒµæ©èœã®èª¬æã«åºã¥ããŠæ©èœãè¿œå ã§ããŸãã æ¡åŒµã¯ãã³ãŒããŸãã¯ããŒã¿ã®ããããã§ãã
æ¡åŒµãã€ã³ãã®è¯ãäŸã¯ãé»æºãããã¯ãŒã¯ã§ãããã®äžã®æ¡åŒµãã€ã³ãã¯ãé»æºã®ä»ã®èŠçŽ ïŒã©ã³ããã³ã³ãã¥ãŒã¿ãŒãã¢ã€ãã³ïŒãæ¥ç¶ã§ãããœã±ããã§ãé»æºã®æ©èœãæ¡åŒµããŸãã ãã®å Žåãåããã€ã¹ã«ã¯é»æºãããã¯ãŒã¯ãšäžèŽããããã€ã¹ãå¿ èŠã§ããããã§ãªãå Žåãæ¥ç¶ã§ããŸããã
äŸãç¶ããŠã org.eclipse.uiã¢ãžã¥ãŒã«ã¯ãããšãã£ã¿ãŒããããã¥ãŒãããã¡ãã¥ãŒããªã©ã®å€ãã®æ¡åŒµãã€ã³ããèšè¿°ããŸãã åæã«ãå¥ã®ãã©ã°ã€ã³org.eclipse.help.uiããããŸãããã®ãã©ã°ã€ã³ã¯ãã¡ãã¥ãŒé ç®ãHelp-> Help Contentsããè¿œå ããŸãã ãããè¡ãã«ã¯ã次ã®æ¡åŒµæ©èœã«ã€ããŠèª¬æããŸã
<extension point="org.eclipse.ui.actionSets"> <actionSet description="%actionSet.description" id="org.eclipse.help.ui.actions" label="%actionSet.label" visible="true"> <action class="org.eclipse.help.ui.internal.DynamicHelpAction" icon="$nl$/icons/etool16/help.gif" id="org.eclipse.help.ui.dynamicHelp" label="%searchAction.label" style="push" toolbarPath="org.eclipse.ui.workbench.navigate" tooltip="%dynamicHelpAction.tooltip"/> </actionSet> </extension>

æ¡åŒµãã€ã³ãã§ç解ã§ããªãç¬éãããå Žåã¯ããã©ã°ã€ã³ã®çžäºäœçšã®ã¡ã«ããºã ãåºæ¬ã§ãããããç解ããããšããå§ãããŸãã
ã§ãããã ãã ã ãã ããããŠäŸã䜿ã£ãŠè©³çŽ°ãèªã㧠ãã ãã ã ãã©ãããã©ãŒã æ¡åŒµãã€ã³ãã®ãªã¹ãã¯ããã«æ瀺ãããŸã ã
ãã©ã°ã€ã³ã¯ãæ¢åã®æ¡åŒµãã€ã³ãã䜿çšããããšã«å ããŠãæ°ããæ¡åŒµãã€ã³ããå®çŸ©ã§ããŸãã ãã€ã³ãã¯ã* .exsdããã³å¯Ÿå¿ããæ¡åŒµãã€ã³ãã¿ã°ã䜿çšããŠã説æãã¡ã€ã«ãžã®ãªã³ã¯ã䜿çšããŠèª¬æãããŸãã
<extension-point id="com.xyz.myplugin.ext" name="Test Extension Point" schema="schema/myextpoint.exsd"/>
ãã®ãã¡ã€ã«ã¯ãæ¡åŒµæ©èœãšãã¹ãéã®ã€ã³ã¿ãŒãã§ãŒã¹ãã€ãŸãç¹å®ã®ã€ã³ã¿ãŒãã§ãŒã¹ãå®è£ ããå¿ èŠãªããŒã¿ãã¯ã©ã¹ãèšè¿°ããŸãã
Larsãšãã¡ãã§ãç¬èªã®æ¡åŒµãã€ã³ãã®äœæã«ã€ããŠè©³ãã説æããŸã ã
䟿å©ãªãªã³ã¯
äžè¬çãªæ¥é£ããã°ã©ãã³ã°
Eclipse 4 RCP-Lars Vogelã«ãããã¥ãŒããªã¢ã«
Eclipseãªããã¯ã©ã€ã¢ã³ããã©ãããã©ãŒã ïŒç¬¬2çïŒ
Eclipseãã©ã°ã€ã³éçºã®ããã10ã®ééã
Eclipseãã©ãããã©ãŒã
Eclipse APIã®äœ¿çšæ¹æ³
Eclipseãã©ã°ã€ã³ã¢ãŒããã¯ãã£ã«é¢ãã泚æ
ãšã¯ãªãã¹UI
ã¯ãŒã¯ãã³ãå
EclipseãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã¬ã€ãã©ã€ã³
ããã§äœïŒ
äžè¬ã®äººãã¢ããªã±ãŒã·ã§ã³éçºãã©ãããã©ãŒã ãšããŠã®Eclipseã«ã€ããŠãã£ãšç¥ããããªããç§ã¯èšäºãæžãç¶ããŠä»¥äžã®æè¡ã«å ãåœãŠãããšãã§ããŸãã
- EclipseãªãœãŒã¹
- Eclipseã¢ããªã³ã°ïŒEMF /ããŒã¿ãã€ã³ãã£ã³ã°ïŒ
- Eclipse UIïŒSWT / jface / GEF / GMF / graphitiïŒ
- Eclipse RCPãããã€ã¡ã³ãïŒMaven / TychoïŒ
ãã ãããŸããããªãã«ãšã£ãŠäœãé¢çœãããç¥ããããšæããŸãããããããéçºããŒã«ããã®æŠå¿µãæ©èœããŸãã¯Eclipseãã©ã°ã€ã³ãäœæããäžé£ã®ãã¥ãŒããªã¢ã«ãå®æœããçè«ãæãäžããŠã䞊è¡ããŠéçºã®çè«çåŽé¢ïŒã¢ã€ãã¢ã Eclipseã«ãã©ã°ã€ã³ããããŸãããæè¿ããŸãïŒã