ターゲットプラットフォームのアセンブリ。 開発者向けのEquinox

OSGiを使い始めたとき、質問は実際に開発され、デバッグされました。 Eclipseに組み込まれたプラットフォームでスタンドアロンアプリケーションをデバッグするのは非合理的で、バンドルと依存関係が多すぎます-これは一方ではあります。 一方で、Eclipseの更新ごとにプラットフォームを拡張し、新しい依存関係を取得したくありませんでした。 要するに、プラットフォームJetty、OSGiコンソール、EclipseLinkおよびRAP / RWTからのみ必要でした。



ランタイムの構成を完全に制御し、その中でプロジェクトをデバッグしたかったのです。 そのためには、EclipseからOSGiプラットフォームを選択して、それを元に戻す必要がありました。 これを行う方法-この記事で説明します。



一般的に、私はすぐにEclipse VirgoまたはApache Felixを使用するための推奨事項から身を守りたいと思います。 またはGlassfish。 はい、それらは大きく、強力で、クールです。 そして、重く、複雑で、かさばります。 Equinoxの機能の1つは、プロジェクトに最小限の労力で統合できることです。 このプロジェクトを展開するホストに重いアプリケーションサーバーを配置する必要はありません。アーカイブをコピーして展開し、スクリプトを起動するだけで、今では既に機能しています。



ストーリーは十分に詳細になるので、スキップしてもかまいません。 ;)



ステップ1. Equinoxをダウンロードする



公式ウェブサイトdownload.eclipse.org/equinoxで入手できます 。 ダウンロードして、どこでも、WindowsでC:/ Equinox、Linuxで-/ home / user / Equnoxをインストールしました。 展開後にそこに書き込むことができることが重要なので、権利に従いましょう。



記事3.8.2の執筆時点での最新バージョンの重量は28Mbです。 ソースコード(約半分)を含む238のバンドルがあります。 それらをすべて含める必要はありませんが、配信から削除しないでください。便利になります。 ;)たとえば、私はまだP2リポジトリを必要としませんでしたが、システムの自動更新を実装するには非常に便利です(これは64バンドルです)。



次に、このすべてのエコノミーをEclipseから実行し、バンドルの構成とプラットフォームの構成を管理できるようにする必要があります。



ステップ2. Eclipseの構成



RAP / RCP開発者向けのEclipse、またはJava EE開発者向けのEclipseのいずれかのタスクに適したビルドがあることが理解されています。 そうでない場合でも、Eclipse自体を介して必要なバンドルをインストールすることにより、ほとんどすべてを適切な状態にすることができます。 または、目的のアセンブリをダウンロードして、別のディレクトリに解凍します。



ちなみに、最近リリースされたKeplerマイルストーン7を使用することをお勧めします。これは、開発者ビルドですが、マイルストーン6とは異なり、動作するのに十分安定しています。



最初に、メニューの「ウィンドウ」/「オプション」でEclipseに移動します(便宜上、Russifiedがあります)。 そして、写真に示すように、新しい構成を作成してロードします。 すべては地獄に直観的で理解できるが、これは戦いの半分にすぎない。



























後半では、プロジェクトの起動構成を直接構成します。 面白いのは、1つのプラットフォームが異なる構成で実行できることであり、これにより操作の余地が与えられます。 各構成は、システムの一部のコンポーネントを有効または無効にします。 必要なバンドルの異なるセットを持つ完全に異なる複数のプロジェクトがない限り、複数のプラットフォームを作成する必要はまったくありません。



ステップ3.スタートアップ構成の構成



以下の図から、「OSGi Equinox環境」をどこで作成するのか、具体的に何を作成するのかがはっきりしていると思います。 重要なポイントが1つあります。simpleconfiguratorから構成を保存する場所を指定する必要があります。Eclipseはこれを非常に気に入っています。 カタログに環境と共に保存する必要があることを示しました。 転送する方が簡単です。 これを行わないと、Eclipseの設定がワークスペースに保存されるため、非常に不便です。











原則として、これですべてですが、すべてが適切に配置されるように依存関係を確認する必要があります。 基本環境はそのように開始する必要があります。 Eclipseコンソールでは、大切なosgi>プロンプトが表示され、「ss」と答えて、システムで実行されているバンドルのリストを取得します。



この段階では、いくつかの問題は発生しません。 さて、最後に、私が20時間の命を奪ったのは、)コマンドラインからこのファームを起動して、正しく機能させる方法です。 Eclipseと同じ方法で実行する必要があります。 そして、彼はどのようにそれをしますか?



#!/bin/sh exec /usr/jdk/bin/java \ -Dorg.osgi.service.http.secure.enabled=true \ -Dorg.eclipse.equinox.http.jetty.https.enabled=true \ -Dorg.osgi.service.http.port=8080 \ -Dorg.eclipse.equinox.http.jetty.https.port=8443 \ -Dorg.osgi.service.http.port.secure=8443 \ -Dorg.eclipse.equinox.http.jetty.ssl.keystore=/home/pavlov/Equinox/ssl/keystore \ -Dorg.eclipse.equinox.http.jetty.ssl.password=xxxx \ -Dorg.eclipse.equinox.http.jetty.ssl.keypassword=xxxx \ -Dosgi.install.area=file:/home/pavlov/Equinox/ \ -Dosgi.syspath=/home/pavlov/Equinox/plugins -Declipse.ignoreApp=true \ -Dosgi.noShutdown=true -jar \ /home/pavlov/Equinox/plugins/org.eclipse.equinox.launcher_1.3.0.v20120522-1813.jar \ -configuration file:/home/pavlov/Equinox/configuration/ \ -dev file:/home/pavlov/Equinox/configuration/dev.properties \ -os unix -ws unix -arch x86_64 -nl ru_RU -console -consoleLog
      
      







Eclipseの機能を実行する魔法のスクリプトを次に示します。現在、プラットフォームは独立しており、Javaを備えた任意のサーバーにデプロイできます。 パスのみを規定する必要があります。



PS。 素敵なボーナス-それはすぐにEmbedded JettyでHTTPをオンにします。 結局のところ、これを行う方法を見つけることは簡単ではありません。



All Articles