問題タブ [osgi]
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.
java - モバイル OSGi は、携帯電話で実際に使用する準備ができていますか?
モバイルデバイス向けのアプリケーションを開発しています。私は OSGi 用に開発したことはありませんが、今から始めようと考えています。
携帯電話で OSGi を使用することについてよく読んだことがありますが、J2ME、Symbian、Windows Mobile、Android で動作すると言われています。
私は OSGi の多くの利点を活用したいと思っていますが、OSGi がなくてもできることはわかっています。また、自分の電話で OSGi を使用できないユーザーや、電話を OSGi に対応させるために複雑なセットアップ プロセスを経なければならないユーザーを排除したくありません。
そして、これらの安価な J2ME 携帯電話のほとんどが OSGi のような洗練されたものを実行できるとは信じられません。1000 ドルのスマートフォンの話ではなく、たとえば Sony Ericsson から 100 ドル (または公平を期すために 200 ドル) で入手できる消費者向けデバイスについて話します。
モバイル OSGi は現在、真の代替手段ですか?それとも、将来的に使用するための良い展望にすぎませんか?
編集: これまでのところ、答えは 1 つしかなく、モバイル OSGi の使用にはほど遠いと述べられています。しかし、私にとっての答えの 1 つは、重要な決定の基礎となる人が少ないことです。そのため、報奨金がより多くの読者を引き付けることを願っています。
これ以上回答が得られない場合、それは誰もモバイル OSGi の経験がないという兆候であり、私はそれを探求する最初の人になりたくないと結論付けます。通常、私は新しいテクノロジーを試すのが大好きですが、今回は間違った馬に賭けることが非常に重要です.
osgi - OSGir4.1のServiceTracker
org.osgi.util.tracker.ServiceTracker
(PrintableServiceTrackerはServiceTrackerCustomizerを実装し、新しいサービスが追加されたときに単に印刷します)を使用しています。
新しい電子書籍「 OSGiの動作」で「疑似登録」について読んだのですが、疑似登録を明示的に行う必要があるのでしょうか、それともフレームワークがこれを自動的に処理するのでしょうか。
(すでにインストールされている印刷可能なサービスはServiceTrackerによってキャッチされます。ServiceTracker.addingService(ServiceReference)は、事前にインストールされている印刷可能なサービスごとに呼び出されます)
java - Web Start / JNLP を使用して追加の jar ファイルを動的にロードする
Web Start 開発者ガイドには、次のように記載されています。
すべてのアプリケーション リソースは、JNLP ファイルのリソース セクションで指定された JAR ファイルから取得するか、Web サーバーへの HTTP 要求を使用して明示的に取得する必要があります。
リソースは Java Web Start によってローカル マシンにキャッシュされるため、JAR ファイルに格納することをお勧めします。
ここで、アプリケーションの起動後に動的にロードしたいリソースがいくつかあります (OSGi バンドルなど)。プレーンな HTTP を使用してこれを行うことができますが、Web Start のローカル キャッシングおよびバージョン管理された/アーキテクチャ固有のリソースのサポートを利用したいと考えています。
Web Start インフラストラクチャを使用して、元のコード ベース (アプリケーションの jnlp ファイルで指定) から追加の jar ファイルをダウンロードする方法はありますか?
あるいは、Web Start サーバーからバンドルをインストールする作業から解放される、OSGi と Web Start を統合する確立された方法は既にありますか?
obfuscation - ProGuard で OSGi バンドルを難読化する方法は?
現在、ProGuard を使用して Eclipse RCP アプリケーションを難読化しようとしています。問題は、パッケージ名を難読化する (クラス My.Package.Class が abc のようなものに変わる) ことですが、パッケージ名は MANIFEST.MF の Export-Package セクションに保持されます。
これは、MANIFEST.MFs の Export-Package セクションで指定されたパッケージ名を解決できないため、アプリケーション (実際には OSGi バンドルのセット) を実行できないという事実につながります。
ProGuard による OSGi ベースの RCP アプリケーションの難読化に成功した人はいますか? 基本的に、パッケージ名の難読化を完全に無効にするか、MANIFEST.MF の Export-Package セクションを難読化するかの 2 つの選択肢がありますが、いずれも実装する方法が見つかりません。Proguard は、MANIFEST.MF の Bundle-Activator クラス名のみを難読化し、他のすべてのセクションをスキップしているようです。前もって感謝します!
hibernate - Hibernate、JDBC ドライバー、および OSGi の問題
ややイライラする問題に遭遇しました。OSGi フレームワークとして Apache Felix を使用しており、永続性の問題のために Hibernate も使用しています。
Hibernateの「osgi-bundle」バージョン(com.springsource.org.hibernate-3.2.6.ga.jar)を使用しています。私の知る限り、これは META-INF/MANIFEST.mf に追加の osgi-metdata がインストールされた Hibernate Core です。この情報 (Package-Export および Package-Import) は、osgi システムにとって不可欠です。
私の問題は、Hibernate バンドルが JDBC ドライバーを見つけられないことです。import ステートメントを springsource Hibernate バンドルに追加するのは非常に間違っているように感じます。これを解決するためのより良い方法があるはずです。
java - すべてのバンドルの Eclipse でバンドル [] を取得する
OSGi フレームワークとして Equinox を使用するアプリケーションを作成しています。バンドルが登録された時点で認識されているすべてのバンドルを検出しようとしています。次の行を使用して、利用可能なすべてのバンドルを取得しようとしました。でも、
EclipseStarter.getSystemBundleContext().getBundles();
私に警告を与える...
推奨されないアクセス: 必要なライブラリー D:\java\eclipse\plugins\org.eclipse.osgi_3.4.0.v20080605-1900.jar の制限により、タイプ EclipseStarter のメソッド getSystemBundleContext() にはアクセスできません
フレームワーク内で利用可能なすべてのバンドルのリストを取得する適切な使用法は何ですか?
java - OSGi バンドルのパッケージ構造
osgi バンドル内のパッケージ構造に関する「グッド プラクティス」についていくつか考えてきました。現在、平均して、バンドルごとに 8 ~ 12 個のクラスがあります。私のイニシアチブ/提案の 1 つは、2 つのパッケージを用意することでした。com.company_name.osgi.services.api (API 関連のクラス/インターフェース (外部にエクスポートされる) 用、および実装用の 1 つのパッケージ com.company_name.osgi.services.impl (エクスポートされない))。これの長所と短所は何ですか?他の提案はありますか?
java - OSGi と Java EE - JOSGiEE?
この記事を読んだ後、1 つの疑問が頭に浮かびました。「OSGi は Java EE になるのでしょうか?」OSGi は Java EE を置き換える予定ですか? OSGi は Java EE をインクリメントしていますか?」歴史的に見て、OSGi が Java EE とはまったく異なるのは事実ですが、EEG から得られた成果を考えると、これらのサービスの一部は Java EE サービスです。もう 1 つの事実は、API にとらわれない OSGi とは対照的に、Java EE を使用する人がその API に Java EE を使用しているということです。
どこに行くのかわからないのですが、皆さんはどうですか?
java - Eclipse拡張機能と宣言型サービス
Eclipseアーキテクチャの拡張機能/サービスへのアプローチについて少し混乱しています。開発者が利用できるオプションは2つあります。
- Eclipseプラグイン拡張機能の使用-http ://www.eclipse.org/articles/Article-Plug-in-architecture/plugin_architecture.html
- 宣言型サービスの使用-http://www.eclipse.org/equinox/bundles/
どちらを使用する場合、それぞれのアプローチの長所と短所は何ですか?また、どちらが好ましいアプローチですか?