問題タブ [equinox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
4 に答える
4344 参照

equinox - 分点/至点の瞬間を計算するにはどうすればよいですか?

分点と至点を計算するために利用できるアルゴリズムまたは式は何ですか? 数年前にこれらの 1 つを見つけて実装しましたが、精度は高くありませんでした。時刻は、分点に応じて 00:00、06:00、12:00、および 18:00 UTC であると想定されているようです。または至点が計算されました。ウィキペディアはこれらを分単位で計算して提供しているので、より正確なことが可能でなければなりません。私のお気に入りのプログラミング言語のライブラリもハードコーディングされた時代に出てくるので、私が実装したものと同じまたは類似のアルゴリズムを使用していると思います。

また、太陽経度を提供するライブラリを使用して、0、90、180、および 270 度の正確な瞬間に照準を合わせるための検索ルーチンを実装したこともあります。これは秒まで機能しましたが、ウィキペディアの時間と一致しなかったため、このアプローチには何か問題があったと思います。しかし、マイモニデス (中世のユダヤ人学者) が 1,000 年前にまったく同じアイデアを使用したアルゴリズムを提案したことを知って、私はうれしい驚きを覚えました。

0 投票する
3 に答える
7225 参照

java - Equinox Servle Bridge を使用して OSGi アプリを Tomcat にデプロイするときに Log4J を構成する方法は?

Equinox サーブレット ブリッジを使用して OSGi Web アプリケーションをデプロイすると、次のようになります。

必要な「log4j.properties」ファイルを提供するいくつかの方法を試しました。

  • context-param "log4jConfigLocation" をサーブレット ブリッジ web.xml に追加する
  • WEB-INFフォルダーにフォルダー「classes」を作成し、そこにlog4j.propertiesファイルをコピーします(そして、他のいくつかの場所にコピーします)
  • log4j バンドルを削除し、「extendedFrameworkExports」を org.apache.log4j に設定して、(私が推測するに) tomcat log4j が使用されるようにします...これは機能しませんでした。 ..もうそこにはありません...

もちろん、log4j バンドルを log4j.properties ファイルで拡張するフラグメント バンドルもありますが、この log4j バンドルは使用されていないようです。

追加: Eclipse でアプリケーションを開発していることを追加する必要があります... log4j / slf4j を構成するフラグメント バンドルがそこで動作します。

誰かがこれを解決しましたか?何か案は?

0 投票する
2 に答える
1304 参照

spring - 春分のジャスパー - jstl コア uri を解決しない

私は現在、Spring で OSGi を研究しており、Pro Spring Dynamic Modules for OSGiのいくつかの例に取り組んでいます。

私のサンプル Web アプリには、次のような単一のコントローラーがあります。

ビュー リゾルバーは次のように構成されます。

URL を呼び出すと、単一の Bean を含む'http://localhost:8080/helloworld-web/spring/home'ビューjsp/home.jspがレンダリングされます。helloworld

ただし、次のスタック トレースが表示されます。

これは OSGi バンドルとしてデプロイされた WAR であるため、そのWEB-INF/libディレクトリーは完全に空です。

私の理解では、jasper の OSGi バージョンは、個々の Web アプリの外部で taglib 記述子と JAR を探すということでしたか?

他の誰かがこれを見たことがありますか?

0 投票する
2 に答える
176 参照

osgi - 動的プラグイン管理/更新

つまり、あるプラグインが他のプラグインを適切なフォルダに[ダウンロードして]コピーしたり、リンクファイルを作成したりする場合、再起動せずにプラットフォームと動的に統合できますか?


したがって、再起動せずに時間とともに進化する常時稼働のサーバーを構築することは可能であるように思われます。それは要求された(この単語についてはよくわかりません、英語は私のネイティブではありません)機能ですか?つまり、ビジネスにはそれが必要ですか、それとも再起動する方が簡単で大丈夫ですか?私が見るもう1つの利点は、古いバージョンの互換性です...

0 投票する
2 に答える
733 参照

java - OSGi とレガシー ライブラリ

私はしばらくの間 OSGi を調べてきましたが、「レガシー」ライブラリ (OSGi バンドルとしてではなく、プレーンな JAR としてリリースされているもの) を処理する最善の方法について疑問に思っています。

これらを処理する最善の方法は何だと思いますか? マニフェスト ファイルを変更し、最小限のバンドル固有の情報を追加してから、それらを再パッケージ化することは、現時点で私が行っていることですが、どういうわけか間違っているようです。これらの JAR に対して手動の依存関係管理を使用する必要がありますか (アプリケーションの特定の部分でのみ使用される可能性が高いライブラリに対してこれを行います)。

それらが利用可能な限り、私は Eclipse のバンドルを使用しています (私は OSGi プラットフォームとして Equinox を使用しているため、これはバンドルとして利用可能なライブラリに対してうまく機能します)。

知っておくべき Eclipse バンドル以外のバンドル リポジトリはありますか?

0 投票する
8 に答える
11942 参照

java - Persistence.xml と OSGi (Equinox)

現在、OSGi を使用してテストしています。これをEclipseで実行しています。DAO レイヤーを OSGi ソリューションの一部として使用したいのですが、最初の障害は次のエラーです。

persistence.xml ファイルをさまざまな場所に配置しようとしましたが、役に立ちませんでした。 私が間違っていることについてのアイデアはありますか?

persistence.xml を手動でロードする方法はありますか?

アクティベーターは次のようになります。

私のディレクトリ構造は次のようになります。

代替テキスト http://www.freeimagehosting.net/uploads/7b7b7d2d30.jpg

これが私のManifest.MFです

HibernateBundleには、すべての Hibernate および Persistence Jar が含まれています。

ここに私のPersistence.xmlがあります

マニフェストのクラスパスで試したことは運が悪い:

Bundle-ClassPath: ., META-INF/persistence.xml

Bundle-ClassPath: ., ../META-INF/persistence.xml

Bundle-ClassPath: ., /META-INF/persistence.xml

Bundle-ClassPath: ., ./META-INF/persistence.xml

Bundle-ClassPath: ., META-INF

バンドル クラスパス: ., ../META-INF

Bundle-ClassPath: ., /META-INF

バンドル クラスパス: ., ./META-INF

Bundle-ClassPath: ., C:\Workspaces\OSGiJPA\Dao\META-INF\persistence.xml

Bundle-ClassPath: ., C:\Workspaces\OSGiJPA\Dao\META-INF

0 投票する
6 に答える
2978 参照

java - リモーティングとOSGi

OSGiコンテナー間またはOSGiコンテナー間でサービスを使用するためのエレガントな方法はありますか?

それも可能ですか?

たとえば、ローカルマシンにサービスインターフェイスがあるとします。リモートOSGiコンテナーのBundleContextを介してそのサービス・インターフェースにアクセスできるようにするために、どのような方法論/テクノロジーを使用できますか?

0 投票する
3 に答える
8544 参照

java - OSGI宣言型サービス(DS):サービスコンポーネントインスタンスを使用する良い方法は何ですか

EquinoxとEclipsePDEを使用してOSGIと宣言型サービス(DS)を使い始めたところです。

AとBの2つのバンドルがあります。バンドルAは、バンドルBによって消費されるコンポーネントを公開します。どちらのバンドルも、このサービスをOSGIサービスレジストリに再度公開します。

これまでのところすべてが正常に機能しており、Equinoxはコンポーネントを相互にワイヤリングしています。つまり、バンドルAとバンドルBは(デフォルトのコンストラクタを呼び出すことによって)Equinoxによってインスタンス化され、バインド/アンバインドメソッドを使用してワイヤリングが行われます。

さて、Equinoxがそれらのコンポーネント/サービスのインスタンスを作成しているので、このインスタンスを取得するための最良の方法を知りたいですか?

したがって、OSGIによってインスタンス化されないサードクラスのクラスがあると仮定します。

現在、次のオプションが表示されています。



1. ActivatorでServiceTrackerを使用してComponentBundleA.class.getName()のサービスを取得し(すでに試しましたが、機能しますが、かなりのオーバーヘッドがあるようです)、静的ファクトリメソッドを介して利用できるようにします。

2. activate()メソッドが呼び出されるとすぐに各コンポーネントが登録される、ある種のレジストリを作成します。

また

}

3.それらのインスタンスを持つosgi/equinox内の既存のレジストリを使用しますか?つまり、OSGIはすでにインスタンスを作成し、それらを相互に接続しているので、オブジェクトはすでにどこかにあります。しかしここで?どうすれば入手できますか?

結論 クラスWantsToUseComponentB(これはコンポーネントではなく、OSGIによってインスタンス化されません)はどこからComponentBのインスタンスを取得しますか?パターンやベストプラクティスはありますか?先ほど言ったように、ActivatorでServiceTrackerを使用することができましたが、それがなくても可能だと思いました。

私が探しているのは、実際にはSpringframeworkのBeanContainerのようなもので、Container.getBean(ComponentA.BEAN_NAME)のようなものを言うことができます。しかし、私はSpringDSを使いたくありません。

それが十分に明確だったことを願っています。それ以外の場合は、ソースコードを投稿して詳細を説明することもできます。

ありがとうクリストフ


更新: ニールのコメントへの回答:

元のバージョンに対してこの質問を明確にしていただきありがとうございますが、DSなどを使用して3番目のクラスを作成できない理由を説明する必要があると思います。

うーん、わかりません。方法はあるかもしれませんが、フレームワーク全体をリファクタリングしてDSに基づくようにし、「new MyThirdClass(arg1、arg2)」ステートメントがなくなるようにする必要があります。その方法はよくわかりませんが、DSのComponentFactoriesについて何か読んでいます。だから、する代わりに

私はするかもしれません

これを書いている時点では、ComponentFactoriesの使用方法は正確にはわかりませんが、これはある種の擬似コードであると思われます:)

ありがとうクリストフ

0 投票する
3 に答える
2807 参照

java - 「ローカルバンドルキャッシュ」の管理を変更するようにEquinoxを構成します

前の質問に関連して、OSGiにConfig Adminを介して構成を再利用させる方法について、私はまだEquinoxFrameworkでこの問題を解決しようとしています。

PavolJuhosは次のように書いています。

Equinox Config Admin(org.eclipse.equinox.cm)は、フレームワークによって提供される永続ストレージ領域に構成データを保管します。そして、それはEquinoxのデフォルトの「ローカルバンドルキャッシュ」ディレクトリです。

だから私はこのトピックを読んで、Equinoxにはいくつかのランタイムオプションがあることを発見しました(とりわけosgi.configuration.area)。

ローカルバンドルキャッシュが削除またはクリーンアップされないように構成を変更する必要があるため、次にFrameworkを実行するときに、最後に入力された構成(任意のバンドル)が使用されます。