blob: 9f2c2777b26298b7f86701a61329522d0965ad31 [file] [log] [blame]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>OSGi を使用した NetBeans プラットフォームクイックスタート</title>
<link rel="stylesheet" type="text/css" href="https://netbeans.org/netbeans.css"/>
<meta name="AUDIENCE" content="NBUSER"/>
<meta name="TYPE" content="ARTICLE"/>
<meta name="EXPIRES" content="N"/>
<meta name="indexed" content="y"/>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="description"
content="A short guide to getting started with the NetBeans Platform."/>
<!-- Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. -->
<!-- Use is subject to license terms.-->
</head>
<body>
<h1>OSGi を使用した NetBeans プラットフォームクイックスタート</h1>
<p>このドキュメントは、NetBeans プラットフォームアプリケーションで OSGi バンドルを統合する方法についての簡単なデモンストレーションです。
</p>
<p>
このチュートリアルの中心は、「<a href="http://www.aqute.biz/Code/Download#sudoku">Peter Kriens 氏による Sudoku ゲーム</a>」に基づいた「hello world」シナリオです。Sudoku ゲームを構成する OSGi バンドルを、関連する必須の Equinox バンドルと一緒にインポートします。アプリケーションを配備すると、Web ブラウザで次のアプリケーションが使用できます。
</p>
<p><img width="400" height="300" src="http://netbeans.dzone.com/sites/all/files/sudokugame-4.png"/></p>
<p>この簡単なシナリオを終えたら、このチュートリアルの最後にある「参考情報」の節に一覧されている、さらに役立つシナリオも参照してください。</p>
<p><b>目次</b></p>
<p><img src="../../images/articles/69/netbeans-stamp69.png" class="stamp" width="114" height="114" alt="このページの内容は NetBeans IDE 6.5、6.7、および 6.8 が対象です" title="このページの内容は NetBeans IDE 6.5、6.7、および 6.8 が対象です" /></p>
<ul class="toc">
<li><a href="#setup">環境の設定</a></li>
<li><a href="#create">アプリケーションの作成</a></li>
<li><a href="#import">OSGi バンドルのインポート</a></li>
<li><a href="#run">アプリケーションの実行</a></li>
<li><a href="#further">参考情報</a></li>
</ul>
<p><b>このチュートリアルを行うには、次の表に示すソフトウェアおよびリソースが必要です。</b></p>
<table>
<tbody>
<tr>
<th class="tblheader" scope="col">ソフトウェアまたはリソース</th>
<th class="tblheader" scope="col">必須バージョン</th>
</tr>
<tr>
<td class="tbltd1"><a href="https://netbeans.org/downloads/index.html">NetBeans IDE</a></td>
<td class="tbltd1">version 6.9</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://java.sun.com/javase/downloads/index.jsp">Java Developer Kit (JDK)</a></td>
<td class="tbltd1">version 6 または</td>
</tr>
<tr>
<td class="tbltd1"><a href="http://download.eclipse.org/equinox">Equinox</a></td>
<td class="tbltd1"></td>
</tr>
<tr>
<td class="tbltd1"><a href="http://www.aqute.biz/Code/Download#sudoku">Sudoku ゲーム</a></td>
<td class="tbltd1"></td>
</tr>
</tbody>
</table>
<p><strong class="notes">注:</strong> NetBeans プラットフォーム用のアプリケーション開発のために、別々のバージョンの NetBeans プラットフォームをダウンロードする必要はありません。通常、NetBeans IDE でアプリケーションおよびモジュールを開発し、NetBeans プラットフォームおよびアプリケーションを実行するのに必要なモジュールのみを追加します。
</p>
<!-- ===================================================================================== -->
<h2><a name="setup"></a>環境の設定</h2>
<p>上記に一覧されているソフトウェアのダウンロードのほかに、次に示す手順を実行して環境を整える必要があります。</p>
<ol>
<li>ディスク上のファイルシステムに新しいフォルダを作成します。</li>
<li>Equinox ディストリビューションから、次のものをこのフォルダに入れます。
<ul><li>javax.servlet_xxx.jar</li>
<li>org.eclipse.equinox.ds_xxx.jar</li>
<li>org.eclipse.equinox.http_xxx.jar</li>
<li>org.eclipse.equinox.util_xxx.jar</li>
<li>org.eclipse.osgi.services_xxx.jar</li>
<li>org.eclipse.osgi_xxx.jar</li></ul>
</li>
<li>次の 2 つの Sudoku JAR を、上記の JAR があるフォルダへ入れます。
<ul><li>aQute.sudoku.jar</li>
<li>aQute.webrpc.jar</li></ul>
</li>
</ol>
<p>これで、インポートする OSGi バンドルが、集中管理された場所で使用可能になりました。この場所から、バンドルをアプリケーションに統合できます。</p>
<h2><a name="create"></a>アプリケーションの作成</h2>
<p>すべての必須 OSGi バンドルが使用可能になったら、次のようにして新しい NetBeans プラットフォームアプリケーションを作成します。</p>
<ol>
<li><p>「ファイル」&gt;「新規プロジェクト」を選択して、次のように、Equinox テンプレートを使用して Equinox 上に NetBeans プラットフォームアプリケーションを作成するオプションを選択します。</p>
<p><img src="http://netbeans.dzone.com/sites/all/files/sudokugame-5.png"/></p>
<p>「次へ」をクリックします。</p>
</li>
<li><p>次に示すように、アプリケーションの名前を指定します。</p>
<p><img src="http://netbeans.dzone.com/sites/all/files/sudokugame-3.png"/></p>
<p>「完了」をクリックします。</p></li>
<li>上記のテンプレートから作成されたアプリケーションを実行すると、アプリケーションのウィンドウに、アプリケーションを構成するすべての NetBeans モジュールおよび OSGi バンドルが表示されるのが確認できます。</li>
</ol>
<h2><a name="import"></a>OSGi バンドルのインポート</h2>
<p>上記に一覧されているソフトウェアのダウンロードのほかに、次に示す手順を実行して環境を整える必要があります。</p>
<ol>
<li><p>「プロジェクト」ウィンドウでアプリケーションを右クリックして「プロパティー」を選択し、「ライブラリ」タブを表示します。「クラスタを追加」をクリックして、上記の JAR があるフォルダに移動します。そのあと、JAR を「クラスタ」(アプリケーションに組み込まれる関連モジュールおよびバンドルの集まり) に変換する次のようなウィザードが開きます。</p>
<p><img src="http://netbeans.dzone.com/sites/all/files/sudokugame-1.png"/></p></li>
<li>上記のように、インポートするすべての OSGi バンドルを「有効」に設定して、アプリケーションの起動時にロードされて使用可能になるようにします。</li>
<li>「完了」をクリックすると、「platform.properties」構成ファイルが更新されています。次のようになっているはずです。
<pre class="examplecode">cluster.path.extra=netbinox:\../../path/to/my/nbsudokugame/folder
disabled.modules.extra=org.netbeans.libs.felix
cluster.path=\
${nbplatform.active.dir}/harness:\
${nbplatform.active.dir}/platform:\
${cluster.path.extra}
disabled.modules=\
org.jdesktop.layout,\
org.netbeans.api.visual,\
org.netbeans.core.execution,\
org.netbeans.core.multiview,\
org.netbeans.insane,\
org.netbeans.libs.felix,\
org.netbeans.libs.jsr223,\
org.netbeans.modules.apisupport.harness,\
org.netbeans.modules.apisupport.tc.cobertura,\
org.netbeans.modules.autoupdate.services,\
org.netbeans.modules.autoupdate.ui,\
org.netbeans.modules.core.kit,\
org.netbeans.modules.favorites,\
org.netbeans.modules.jellytools.platform,\
org.netbeans.modules.jemmy,\
org.openide.compat,\
org.openide.execution,\
org.openide.options,\
org.openide.util.enumerations
nbplatform.active=default</pre>
<p><b>注:</b> 上記の最初の行は、前に作成したフォルダの場所を示しています。</p></li>
<li>そのあと、スプラッシュ画面を表示しないことと、アプリケーションを配備するポートを指定するために、アプリケーションの「project.properties」構成ファイルに次の行を追加します。
<pre class="examplecode">run.args.extra=--nosplash -J-Dorg.osgi.service.http.port=8080</pre></li>
</ol>
<h2><a name="run"></a>アプリケーションの実行</h2>
<p>これで、次に示す手順でアプリケーションを配備する準備が整いました。</p>
<ol>
<li><p>アプリケーションを実行します。アプリケーションのすべての OSGi バンドルおよび NetBeans モジュールが配備されます。配備済みの OSGi バンドルおよび NetBeans モジュールを表示するアプリケーションも配備されます。このアプリケーションは、現在何が配備済みかを監視できるので、非常に便利です。</p>
<p><img src="http://netbeans.dzone.com/sites/all/files/sudokugame-6_0.png"/></p>
<p>または、上記のウィンドウを提供するモジュール全体を削除します。そのあと、OSGi の統合に必要な、いくつかの JAR (ブートストラップ、起動、ファイルシステム、モジュールシステム、ユーティリティー、およびルックアップ) を除いて、上記のウィンドウに必要なすべてのモジュール (ウィンドウシステム、アクションシステム、およびその他すべて) を削除します。
</p>
<pre class="examplecode">cluster.path.extra=netbinox:\../../path/to/my/nbsudokugame/folder
disabled.modules.extra=org.netbeans.libs.felix
cluster.path=\
${nbplatform.active.dir}/harness:\
${nbplatform.active.dir}/platform:\
${cluster.path.extra}
disabled.modules=\
org.jdesktop.layout,\
org.netbeans.api.annotations.common,\
org.netbeans.api.progress,\
org.netbeans.api.visual,\
org.netbeans.core,\
org.netbeans.core.execution,\
org.netbeans.core.io.ui,\
org.netbeans.core.multiview,\
org.netbeans.core.nativeaccess,\
org.netbeans.core.output2,\
org.netbeans.core.ui,\
org.netbeans.core.windows,\
org.netbeans.insane,\
org.netbeans.libs.felix,\
org.netbeans.libs.jna,\
org.netbeans.libs.jsr223,\
org.netbeans.libs.junit4,\
org.netbeans.modules.apisupport.harness,\
org.netbeans.modules.apisupport.tc.cobertura,\
org.netbeans.modules.applemenu,\
org.netbeans.modules.autoupdate.services,\
org.netbeans.modules.autoupdate.ui,\
org.netbeans.modules.core.kit,\
org.netbeans.modules.editor.mimelookup,\
org.netbeans.modules.editor.mimelookup.impl,\
org.netbeans.modules.favorites,\
org.netbeans.modules.javahelp,\
org.netbeans.modules.jellytools.platform,\
org.netbeans.modules.jemmy,\
org.netbeans.modules.keyring,\
org.netbeans.modules.masterfs,\
org.netbeans.modules.nbjunit,\
org.netbeans.modules.options.api,\
org.netbeans.modules.options.keymap,\
org.netbeans.modules.print,\
org.netbeans.modules.progress.ui,\
org.netbeans.modules.queries,\
org.netbeans.modules.sendopts,\
org.netbeans.modules.settings,\
org.netbeans.modules.spi.actions,\
org.netbeans.spi.quicksearch,\
org.netbeans.swing.outline,\
org.netbeans.swing.plaf,\
org.netbeans.swing.tabcontrol,\
org.openide.actions,\
org.openide.awt,\
org.openide.compat,\
org.openide.dialogs,\
org.openide.execution,\
org.openide.explorer,\
org.openide.io,\
org.openide.loaders,\
org.openide.nodes,\
org.openide.options,\
org.openide.text,\
org.openide.util.enumerations,\
org.openide.windows
nbplatform.active=default</pre>
<p>このようにすると、モジュール式の Web 開発に適した非 GUI アプリケーション (サーバーアプリケーション) を使用できるようになります。</p></li>
<li>これで、次の URL をブラウザに入力すると (または、プログラムで NetBeans UI ユーティリティー API の URLDisplayer.getDefault() を使用して必要な場所でブラウザを開くと)、Sudoku ゲームの配備で定義されている「index.html」がブラウザで表示され、Sudoku ゲームを始めることができます。
<pre class="examplecode">http://localhost:8080/rpc/sudoku/index.html</pre></li>
</ol>
<p>お疲れさまでした。これで最初の OSGi バンドルが NetBeans プラットフォームアプリケーションに統合されました。</p>
<h2><a name="further"></a>参考情報</h2>
<p>これでチュートリアルが終了しました。NetBeans プラットフォームアプリケーションで OSGi バンドルを再利用するための手順を理解したら、次に、関連ドキュメントや、より高度なシナリオを参照してください。</p>
<ul>
<li><a href="http://www.osgi.org/blog/2006_09_01_archive.html">Peter Kriens 氏と Sudoku ゲーム</a></li>
<li><a href="http://wiki.apidesign.org/wiki/NetbinoxTutorial">Jaroslav Tulach 氏と Netbinox</a></li>
<li>Toni Epple 氏の OSGi/NetBeans <a href="http://eppleton.sharedhost.de/blog/?p=662">ブログエントリ</a>および<a href="http://eppleton.sharedhost.de/blog/?s=Frankenstein%27s+IDE">プレゼンテーション</a></li>
<li>Gunnar Reinseth 氏の NetBeans-EMF 統合 (<a href="http://eclipse.dzone.com/emf-on-netbeans-rcp">パート 1</a><a href="http://eclipse.dzone.com/emf-on-netbeans-rcp-2">パート 2</a>)</li>
<li><a href="http://java.dzone.com/news/new-cool-tools-osgi-developers">OSGi 開発者のための新しい便利ツール</a>」も参照してください</li>
</ul>
</body>
</html>