Apache Derby Eclipse 插件去哪儿了?

Posted

技术标签:

【中文标题】Apache Derby Eclipse 插件去哪儿了?【英文标题】:Where did the Apache Derby Eclipse plug-in go? 【发布时间】:2012-07-09 03:45:55 【问题描述】:

编辑:根据the Derby community,Eclipse 插件不会被维护,也不会随着 Derby 项目自动构建。

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

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


原来的问题

使用

jdk1.7.0_03 Eclipse IDE for Java EE Developers (Win32) 版本 Juno(从 2012 年 6 月 14 日开始构建) derby-core-plugin 10.8.2 和 -ui-plugin 1.1.3(因为没有最新版本 10.9.1.0 的 eclipse 插件)

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

有什么想法吗?

【问题讨论】:

【参考方案1】:

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-derby-10.9.1.0-src

执行以下 ant 目标。 蚂蚁 - 安静的破坏者 ant -quiet 构建源 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(字符串消息)

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

参数: 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 Network Server 没有错误,服务器已启动。

从控制台日志... Sun Jan 27 17:51:29 EST 2013:使用基本服务器安全策略安装的安全管理器。 2013 年 1 月 27 日星期日 17:51:29 EST:Apache Derby 网络服务器 - 10.9.1.0 -(未版本化目录)已启动并准备好接受端口 1527 上的连接

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

右键单击项目/选择停止 Derby 网络服务器 没有错误,服务器已停止。 2013 年 1 月 27 日星期日 17:53:32 EST:Apache Derby 网络服务器 - 10.9.1.0 -(未版本化目录)关闭

启动服务器备份…… 右键单击项目/选择 Start Derby Network Server

创建一个 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 脚本

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

数据库已创建。好的。

创建一个拉链。

右键项目>导出

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

点击完成。

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

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

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

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

您应该能够将 Apache Derby (10.9.1) 特性安装到您的项目中。

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

【讨论】:

现在,这是一些解决方法。感谢您与我分享这个,如果我再次需要它会尝试;) 谢谢,这在 Derby 10.10.1.1 w/Eclipse 4.3 和 Java 7 上也对我有用。我唯一遇到的问题是我需要安装 PDE --Plug-in Development Environment为了“作为 Eclipse 应用程序运行”。这可能是不言而喻的事情,但我花了一段时间(也有些沮丧)才弄明白,所以我想我可以添加到你的帖子中。【参考方案2】:

我相信,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?

【讨论】:

感谢 Derby 社区的提示,现在我发现了一些有用的东西 - 虽然这不是我预期的结果...link

以上是关于Apache Derby Eclipse 插件去哪儿了?的主要内容,如果未能解决你的问题,请参考以下文章

在 Eclipse 中开发 Apache Derby 应用程序

德比和日食。 “找不到主要”异常。如何将 Derby 添加到配置类路径?

apache derby是个啥东西

Apache Derby-02通过IJ简单操作DERBY

在独立 Java 应用程序中设置嵌入式 Derby 数据库

在 Eclipse 中为 Derby 10.9 更新 JDBC 驱动程序