Apache Derby Eclipse插件在哪里?

Tra*_*ird 6 eclipse eclipse-plugin derby eclipse-juno

编辑:根据Derby社区,Eclipse插件不会在Derby项目中自动维护或自动构建.

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

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


原来的问题

运用

  • jdk1.7.0_03
  • Eclipse IDE for Java EE Developers(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" - >"Add Apache Derby nature")我只收到以下消息:

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
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

Ric*_*ion 5

Apache Derby db-derby-10.9.1.0-src/Eclipse 4.2.1(Juno)/ 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.
提取拉链.
切换到源目录.
DB-德比-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文件

在Overview选项卡上,提高版本号,例如1.1.4.

保存文件.

这些bug在...
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)

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

参数:
消息状态消息,或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);  
Run Code Online (Sandbox Code Playgroud)

测试:
运行Eclipse应用程序.

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

右键单击项目/选择添加Apache Derby nature
无错误.

右键单击项目/选择删除Apache Derby nature
无错误.

再次添加自然以测试其他菜单项.
右键单击项目/选择添加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;  
Run Code Online (Sandbox Code Playgroud)

右键单击文件> Apache Derby>使用'ij'运行SQL脚本

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

数据库已创建.好.

创建一个zip.

右键单击项目>导出

单击Plug-in Development> Deplyable插件和片段.
目标选项卡
存档文件
/derby_ui_plugin_1.1.4-fix.zip
选项选项卡
取消选择包插件作为单独的JAR存档

点击完成.

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

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

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

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

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

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


Bry*_*ton 4

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

我怀疑将其更新到最新以使其与当前的 Eclipse 兼容并不需要太多工作。如果您对该功能感兴趣,我相信 Derby 社区很乐意听取您的意见!

另请参阅:既然他们停止为 Eclipse 开发 derby 插件,是否可以在 Eclipse 中使用 apache 的 derby?