アパッチ ダービー db-derby-10.9.1.0-src / Eclipse 4.2.1 (ジュノ) / Java 7
ある種の修正。さらに調査が必要ですが、これでうまくいきます。
参照:
db-derby-10.9.1.0-src/BUILDING.html
db-derby-10.8.1.2-src/plugins/eclipse/Readme.txt
Apache Derby のソース zip をダウンロードします。
zip を解凍します。
ソース ディレクトリに移動します。
デシベル-ダービー-10.9.1.0-src
次のアリ ターゲットを実行します。
ant -quiet clobber
ant -quiet buildsource
ant -quiet buildjars
コア プラグインをビルドします。
アリプラグイン
これで、db-derby-10.9.1.0-src/jars/sane ディレクトリーに derby_core_plugin_10.9.1.zip ファイルがあるはずです。
注: Eclipse IDE は実行されていないはずです。上記の ant プラグイン タスクによって作成された derby コア プラグインを抽出し、内容を Eclipse プラグイン ディレクトリにコピーします。
エクリプスを実行します。
ソースツリーから org.apache.derby.ui をインポートします。
(インポート > 一般 > 既存のプロジェクトをワークスペースに)
plugin.xml ファイルを開く
[概要] タブで、バージョン番号を 1.1.4 に上げます。
ファイルを保存します。
バグは...
1.) パッケージ org.apache.derby.ui.popup.actions.AddDerbyNature.java
2.) パッケージ org.apache.derby.ui.popup.actions.RemoveDerbyNature.java
これら 2 つのユニットで .setStatus メソッドが呼び出される場所。
注: ( ApplicationWindow の javadoc から)
void org.eclipse.jface.window.ApplicationWindow.setStatus(文字列メッセージ)
このウィンドウのステータス ラインに表示されるメッセージを設定またはクリアします (1 つ以上ある場合)。ウィンドウにステータス行がない場合、このメソッドは効果がありません。
パラメータ:
message ステータス メッセージ、またはクリアする場合は null
したがって、IDE にはステータス行がないと仮定しましょう。したがって、この呼び出しは Java doc によると効果がありません。
Commenting out these method calls from:
AddDerbyNature.java
//((ApplicationWindow) window).setStatus(Messages.ADDING_NATURE);
//((ApplicationWindow) window).setStatus(Messages.DERBY_NATURE_ADDED);
RemoveDerbyNature.java
//((ApplicationWindow)window).setStatus(Messages.REMOVING_NATURE);
//((ApplicationWindow)window).setStatus(Messages.DERBY_NATURE_REMOVED);
テスト:
Eclipse アプリケーションとして実行。
プロジェクトを作成します。「org.apache.derby.ui.test」と呼ぶかもしれません。
プロジェクトを右クリック / Add Apache Derby nature を選択し
ます。エラーはありません。
プロジェクトを右クリックし、[Apache Derby の性質を削除] を選択し
ます。エラーはありません。
自然をもう一度追加して、他のメニュー項目をテストします。
プロジェクトを右クリック / Add Apache Derby nature を選択
プロジェクトを右クリック / Start Derby Network Server を選択
エラーなし、サーバーが開始されました。
コンソール ログから... Sun Jan 27 17:51:29 EST 2013 : Basic サーバー セキュリティ ポリシーを使用してセキュリティ マネージャがインストールされました。Sun Jan 27 17:51:29 EST 2013: Apache Derby Network Server - 10.9.1.0 - (Unversioned directory) が開始され、ポート 1527 で接続を受け入れる準備ができました
注: バージョン管理されていないディレクトリ メッセージの意味がわからない
プロジェクトを右クリックして、Derby Network Server の停止を選択
します。エラーはありません。サーバーは停止しました。
Sun Jan 27 17:53:32 EST 2013: Apache Derby Network Server - 10.9.1.0 - (Unversioned directory) シャットダウン
サーバーのバックアップを開始します …<br> プロジェクトを右クリック / Start Derby Network Server を選択します
sql フォルダーを作成します。
test.sql ファイルを作成する
私のテストSQLファイル。
connect 'jdbc:derby://localhost:1527/TESTDB;create=true;user=test;password=test;';
-- drop User Indexes - ignore error if first time creating
drop index UserNameIdx1;
-- drop the table if it exists - ignore error if first time creating
drop table TEST_USER;
-- create the table
create table TEST_USER (
ID integer generated by default as identity,
USER_NAME varchar(255) not null,
FIRST_NAME varchar(255),
LAST_NAME varchar(255),
PASSWORD varchar(255),
ENABLED integer,
CREATED_STAMP timestamp,
CREATED_TX_STAMP timestamp,
LAST_UPDATED_STAMP timestamp,
LAST_UPDATED_TX_STAMP timestamp,
constraint TEST_USER_PK primary key (ID)
);
-- insert some data -- oops --- will mess with the ID generator, see the alter table restart line below.
insert into TEST_USER values(0, 'admin','admin','admin','admin',1,'2013-01-18 12:00:00.000','2013-01-18 12:00:00.000','2013-01-18 12:00:00.000','2013-01-18 12:00:00.000');
-- make the USER_NAME unique
create unique index UserNameIdx1 on TEST_USER(USER_NAME);
-- reset the generator
alter table TEST_USER alter column ID restart with 1;
ファイルを右クリック > Apache Derby > 「ij」を使用して SQL スクリプトを実行
プロジェクト ワークスペースを更新すると、TESTDB フォルダーが作成されます。
データベースが作成されました。Ok。
zip を作成します。
プロジェクトを右クリック > エクスポート
Plug-in Development > Deplyable plug-ins and fragment をクリックします。
宛先タブ
アーカイブ・ファイル
/derby_ui_plugin_1.1.4-fix.zip
オプション・タブ
個々の JAR アーカイブとしてのパッケージ・プラグインの選択を解除
終了をクリックします。
テスト インスタンスを閉じる/終了します。
Eclipse を終了します。
上記で作成した zip を解凍します。
その内容をプラグイン ディレクトリの Eclipse (Juno) プラグイン ディレクトリにコピーします。
エクリプスを再起動します。新しいプロジェクトを作成します。
プロジェクトに Apache Derby (10.9.1) ネイチャーをインストールできるはずです。
注: これを Java 7 でビルドした場合、それより古い JVM バージョンで動作するとは思わないでください。