2012-07-09 129 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