的Apache Derby DB-德比-10.9.1.0-SRC/Eclipse的4.2.1(麥浚龍)/ Java 7的
某種類型的修復。需要更多的研究,但這將起作用。
參考文獻:
DB-德比-10.9.1.0-SRC/BUILDING.html
DB-德比-10.8.1.2-SRC /插件/蝕/包含Readme.txt
下載Apache德比源拉鍊。
提取拉鍊。
更改爲源目錄。
db-derby-10.9.1.0-src
執行以下ant目標。
螞蟻-quiet揍
螞蟻-quiet buildsource
螞蟻-quiet buildjars
打造核心插件。
ant插件
您現在應該在db-derby-10.9.1.0-src/jars/sane目錄中有一個derby_core_plugin_10.9.1.zip文件。
注意:您的Eclipse IDE不應該在運行。 提取由上面的ant插件任務創建的derby核心插件,並將內容複製到Eclipse插件目錄。
運行Eclipse。
從源代碼樹導入org.apache.derby.ui。
(導入>常規>現有項目到工作區)
打開plugin.xml文件
在概述選項卡,撞了版本號,以讓我們說1.1.4。
保存文件。
該錯誤(S)是在...
1)包org.apache.derby.ui.popup.actions.AddDerbyNature.java
2.)封裝org.apache.derby.ui.popup .actions.RemoveDerbyNature.java
其中在這兩個單元中調用.setStatus方法。
注:(從ApplicationWindow的的Javadoc)
空隙org.eclipse.jface.window.ApplicationWindow.setStatus(字符串消息)
設置或清除在此顯示的消息窗口的狀態行(如果它>一個)。如果窗口沒有狀態行,則此方法無效。
參數:
消息的狀態信息,或者爲null以清除它
因此,讓我們假設,IDE不會有狀態行,所以此調用根據Java文檔沒有任何影響。
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);
測試(S):
運行作爲Eclipse的應用。
創建一個項目。也許稱它爲「org.apache.derby.ui.test」。
右鍵點擊項目/選擇添加Apache Derby nature
沒有錯誤。
右鍵點擊項目/選擇刪除Apache Derby nature
沒有錯誤。
再次添加性質以測試其他菜單項。
右鍵單擊項目/選擇添加Apache Derby的性質
右鍵單擊項目/選擇開始Derby網絡服務器
沒有錯誤,服務器啓動。
從控制檯日誌... 太陽1月27日17時51分29秒EST 2013:安全管理使用基本服務器安全策略設置。 太陽1月27日17時51分二十九秒EST 2013:Apache Derby的網絡服務器 - 10.9.1.0 - (版本目錄)開始,並準備接受端口連接1527
注:不知道該版本目錄消息意味着什麼
右鍵單擊項目/選擇停止Derby網絡服務器
沒有錯誤,服務器已停止。
太陽1月27日17點53分32秒EST 2013:Apache Derby的網絡服務器 - 10.9.1.0 - (版本目錄)關機
啓動服務器備份...
右鍵單擊項目/選擇開始Derby網絡服務器
創建一個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>運行SQL腳本使用 'IJ'
Refesh項目工作區,現在應該有一個TESTDB文件夾。
數據庫已創建。好。
創建一個zip文件。
右鍵單擊項目>導出的插件開發> Deplyable插件和片段
點擊。
目標選項卡
歸檔文件
/derby_ui_plugin_1.1.4-fix.zip
選項標籤
取消選擇包插件作爲單獨的JAR歸檔
單擊Finish。
關閉/退出測試實例。
退出Eclipse。
提取您剛剛從上面創建的拉鍊。
複製它的內容到插件目錄到Eclipse(麥浚龍)plugins目錄。
重新啓動Eclipse。創建一個新項目。
您應該能夠安裝的Apache Derby(10.9.1)自然到您的項目。
注意:如果建立了這個與Java 7,不要指望它爲任何JVM較小版本。
感謝Derby社區的提示,現在我發現了一些有用的東西 - 儘管它不是我期望的結果... [link](https://issues.apache.org/jira/browse/DERBY-5272 ) – Trainbird 2012-07-10 08:57:17