Apache Derby Eclipse插件在哪里?

时间:2012-07-09 17:39:39

标签: eclipse-plugin derby eclipse-juno

编辑:根据the Derby community,Eclipse插件不会在Derby项目中自动维护或自动构建。

但是还有人还在使用这个插件吗?因为如果是这样,他/她是否有一个发布实际构建的地方 - 哪些(希望)会在Eclipse Juno下运行?

或者,如果这是一个真正的死胡同,还有什么选择?


原始问题

使用

  • jdk1.7.0_03
  • 适用于Java EE开发人员的Eclipse IDE(Win32)版本Juno(从2012/06/14开始构建)
  • derby-core-plugin 10.8.2和-ui-plugin 1.1.3(因为最新版本10.9.1.0没有eclipse插件)

问题
当尝试添加新的derby性质时(右键单击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

有什么想法吗?

2 个答案:

答案 0 :(得分:5)

Apache Derby db-derby-10.9.1.0-src / Eclipse 4.2.1(Juno)/ Java 7

某种修复。需要更多的研究,但这将有效。

参考文献:
DB-德比-10.9.1.0-SRC / BUILDING.html
db-derby-10.8.1.2-src / plugins / eclipse / Readme.txt

下载Apache Derby源zip。
提取拉链。
切换到源目录 db-derby-10.9.1.0-src

执行以下蚂蚁目标 ant -quiet clobber
ant -quiet constructource
ant -quiet buildjars

构建核心插件。
蚂蚁插件

您现在应该在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。

保存文件。

这些错误在...中 1.)包org.apache.derby.ui.popup.actions.AddDerbyNature.java
2.)包org.apache.derby.ui.popup.actions.RemoveDerbyNature.java

在这两个单元中调用.setStatus方法。


注意:(来自ApplicationWindow的javadoc)

  

void org.eclipse.jface.window.ApplicationWindow.setStatus(String message)

     

设置或清除此窗口状态行中显示的消息(如果它具有>)。如果窗口没有状态行,则此方法无效。

     

参数:
  消息状态消息,或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);  

测试(多个):
运行Eclipse应用程序。

创建一个项目。也许称之为“org.apache.derby.ui.test”。

右键单击项目/选择添加Apache Derby性质
没错。

右键单击项目/选择删除Apache Derby性质
没错。

再次添加自然以测试其他菜单项 右键单击项目/选择添加Apache Derby性质

右键单击项目/选择开始Derby网络服务器
没有错误,服务器已启动。

从控制台日志中... Sun Jan 27 17:51:29 EST 2013:使用基本服务器安全策略安装安全管理器。 Sun Jan 27 17:51:29 EST 2013:Apache Derby Network Server - 10.9.1.0 - (Unversioned目录)已启动并准备接受端口1527上的连接

注意:不确定Unversioned目录消息的含义是什么

右键单击项目/选择停止Derby网络服务器
没有错误,服务器已停止 Sun Jan 27 17:53:32 EST 2013:Apache Derby Network Server - 10.9.1.0 - (Unversioned directory)shutdown

启动服务器备份...
右键单击项目/选择开始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>使用'ij'

运行SQL脚本

Refesh项目工作区,现在应该有一个TESTDB文件夹。

数据库已创建。好。

创建一个zip。

右键点击项目>出口

点击插件开发>可深入的插件和碎片。
目的地标签
档案文件
/derby_ui_plugin_1.1.4-fix.zip
选项标签
取消选择Package插件作为单独的JAR存档

点击完成。

关闭/退出测试实例 退出Eclipse。

从上面提取您刚刚创建的zip。

将其内容复制到Eclipse(Juno)插件目录的plugins目录中。

重启Eclipse。创建一个新项目。

您应该能够在项目中安装Apache Derby(10.9.1)。

注意:如果您使用Java 7构建它,请不要指望它适用于任何较小的JVM版本。

答案 1 :(得分:4)

我相信Eclipse的Derby UI插件已经维护了好几年了,因为普通的Derby提交者都没有使用该插件,并且社区中没有任何志愿者来维护它。所以我认为它只适用于旧版本的Eclipse。

我怀疑使其与当前的Eclipse协同工作并不是很多工作。如果您对该功能感兴趣,我相信Derby社区很乐意听取您的意见!

另请参阅:Is it possible to use derby from apache in Eclipse now that they stopped developing the derby plugin for Eclipse?