2012-07-09 124 views
6

編輯:根據the Derby community的Eclipse插件將無法維持,也不沿着Derby項目自動生成。Apache Derby Eclipse插件去了哪裏?

但是有沒有人還在使用這個插件?因爲如果是這樣,是否有一個地方他/她發佈了實際的構建 - 哪些(希望)會在Eclipse Juno下運行?

或者,如果這是一個真正的死衚衕,有什麼辦法?


原來的問題

使用

  • jdk1.7.0_03
  • 的Eclipse IDE的Java EE開發的(Win32)版本朱諾(修建從2012/06/14)
  • derby-core-plugin 10.8.2和-ui-plugin 1.1.3(因爲沒有eclipse p lugin爲10.9.1.0的最新版本)

問題
當試圖添加一個新的德比性質(Java項目右擊 - > 「的Apache Derby」 - > 「添加Apache Derby的性質」 )我只收到以下消息:

Apache Derby Ui Plug-in 
Error adding Derby jars to the project: 
org.eclipse.ui.internal.WorkbenchWindow cannot be cast to 
org.eclipse.jface.window.ApplicationWindow 

任何想法?

回答

4

我相信Eclipse的Derby UI插件還沒有維護好幾年,因爲沒有任何常規的Derby提交者使用該插件,並且還沒有任何社區志願者來維護它。所以我認爲它只適用於舊版本的Eclipse。

我懷疑這是不是很多的工作,以使其最新,使其與當前的Eclipse工作。如果你對這個功能感興趣,我相信德比社區會很樂意聽到你的消息!

參見:Is it possible to use derby from apache in Eclipse now that they stopped developing the derby plugin for Eclipse?

+1

感謝Derby社區的提示,現在我發現了一些有用的東西 - 儘管它不是我期望的結果... [link](https://issues.apache.org/jira/browse/DERBY-5272 ) – Trainbird 2012-07-10 08:57:17

5

的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較小版本。

+0

現在,這是一些解決方法。感謝您與我分享,如果我再次需要它,會嘗試;) – Trainbird 2013-01-29 09:29:34

+0

謝謝,這對Derby 10.10.1.1 w/Eclipse 4.3和Java 7也有效。我遇到的唯一問題是我需要安裝PDE - 插件開發環境,以便「作爲Eclipse應用程序運行」。這可能是不言而喻的,但我花了一段時間(和一些沮喪)纔算出來,所以認爲我可能會添加到您的文章。 – NigoroJr 2013-10-15 03:22:13