https://github.com/kompiro/osgi-demo-bookstore
デブサミ2010でデモしたアプリケーションです。README.txtに手順を記載しています。
https://github.com/kompiro/osgi-demo-bookstore
Last synced: about 2 months ago
JSON representation
デブサミ2010でデモしたアプリケーションです。README.txtに手順を記載しています。
- Host: GitHub
- URL: https://github.com/kompiro/osgi-demo-bookstore
- Owner: kompiro
- Created: 2010-02-19T02:36:52.000Z (over 15 years ago)
- Default Branch: master
- Last Pushed: 2010-02-21T14:04:48.000Z (over 15 years ago)
- Last Synced: 2025-02-16T09:15:22.270Z (3 months ago)
- Language: Java
- Homepage:
- Size: 1.29 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.txt
Awesome Lists containing this project
README
bookstoreデモアプリケーション
written by Hiroki Kondo
このアプリケーションでは、一般にMaven2のリポジトリで配布されていない、H2 databaseのJaQuというライブラリを使っています。
(と言っても、H2のソースから簡単にビルドできます。)
個人ではMaven2のリポジトリを運用していないため、JaQuをビルドしたライブラリをデモに同梱しています。
バージョンの不整合を防ぐため、H2 Databaseも併せて試す前にローカルにインストールしてください。mvn install:install-file -Dfile=h2-1.2.128.jar -DgroupId=com.h2database -DartifactId=h2 -Dversion=1.2.128 -Dpackaging=jar
mvn install:install-file -Dfile=h2jaqu-1.2.128.jar -DgroupId=com.h2database -DartifactId=h2jaqu -Dversion=1.2.128 -Dpackaging=jar== デモ実行のために必要なもの ==
* Maven 2系
* Pax Construct 1.4
http://wiki.ops4j.org/display/paxconstruct/Downloadからダウンロードしてください。== 記号の意味 ==
# : コマンド入力
> : OSGiコンソール上の操作
e : ソース編集1. Mock Bundleでの起動
# cd bookstore
# mvn install
... (各プロジェクトのビルドをします。)# pax-provision
[OSGiランタイムが起動]
> ss (稼働中のBundleの状況が確認できます)
id State Bundle
...
34 ACTIVE org.kompiro.bookstore.books.domain_1.0.0
35 ACTIVE org.kompiro.bookstore.books_0.1.0
36 ACTIVE org.kompiro.bookstore.web_0.1.0
37 ACTIVE org.springframework.bundle.spring.webmvc_2.5.4
38 ACTIVE org.kompiro.bookstore.web.admin_0.1.0
39 ACTIVE org.kompiro.bookstore.books.mock_0.1.0.mockという感じで表示されます。
Mockサービスとして動いていることを確認してください。検索画面
http://localhost:8080/shop/search.htm登録画面
http://localhost:8080/admin/register.htmそれぞれのページのHTMLソースを開くと、
途中に現在動作中のサービス名が表示されています。2. Mock->implへ変更
# cd books.impl
# mvn installinstallで指定できるJARのパスはURLです。今回はローカルのファイルのため、file://を接頭辞として指定します。Windowsの場合はfile://C:/...、LinuxやMacの場合は、file:///...(ルートからのパス)で指定してください。
> install file:///{bookstoreまでの絶対パス}/books2/target/books2-2.0.0.jar
> install file:///{bookstoreまでの絶対パス}/books.impl/target/books.impl-0.1.0.impl.jar
> install file:///{bookstoreまでの絶対パス}/h2-1.2.128.jar
> install file:///{bookstoreまでの絶対パス}/h2jaqu-1.2.128.jar> stop org.kompiro.bookstore.books.mock
> uninstall org.kompiro.bookstore.books
> start org.kompiro.bookstore.books_2.0.0のID(左端の番号)
> start org.kompiro.bookstore.books.impl
> refresh
> ss
[Bundle IDを確認]> update org.kompiro.bookstore.web
> update org.kompiro.bookstore.web.admin
(データが空の事を確認)
http://localhost:8080/shop/search.htmにアクセスし、検索してみましょう。
http://localhost:8080/admin/register.htmにアクセスし、登録してみましょう。
(Like検索していることを確認)http://localhost:8080/shop/search.htmにアクセスし、Like検索してみましょう。
*残念ながら、日本語はLike検索できません。JaQuの振る舞いの確認ではないので既存の障害にしてください。3. impl->Mockへ変更
> stop org.kompiro.bookstore.books.impl
> start org.kompiro.bookstore.books.mock
> update org.kompiro.bookstore.web
> upate org.kompiro.bookstore.web.admin(データが元のMockのデータを参照していることを確認)
4. Mockとimplを同時実行(システムの中で同一系のサービスを起動)
e JaQuBookServiceを開き、BookService以外にBookService2を実装していることを確認
e src/main/webapp/WEB-INF/shop-osgi.xmlを開き、BookService→BookService2
# cd ../web
# mvn install
> start org.kompiro.bookstore.books.impl
> uninstall org.kompiro.bookstore.web
> install file://...(mvnでインストールしたパス)
> refresh
> start org.kompiro.bookstore.web
HTMLソースをみて、それぞれ違うサービスで動いていることを確認しましょう。== OSGiコンソールコマンドの意味 ==
ss:現在稼働中のBundle状態を一覧表示
install url:urlで指定したBundleを新たにインストールします。
uninstall id or symbolic_name:指定したBundleをアンインストールします。
start id or symbolic_name:指定したBundleを活性化します。サービスのインストールもこの時に行われます。
stop id or symbolic_name:指定したBundleを非活性化します。サービスのアンインストールもこの時に行われます。
refresh:現在installされているBundleのうち、更新されたものを読み込み直します。
update id or symbolic_name:指定したBundleを更新します。