eclipse - Apache Derby Eclipse 插件去了哪里?

标签 eclipse eclipse-plugin derby eclipse-juno

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

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

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

<小时/>

原始问题

使用

  • jdk1.7.0_03
  • 面向 Java EE 开发人员的 Eclipse IDE (Win32) 版本 Juno(自 2012 年 6 月 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

有什么想法吗?

最佳答案

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 -安静的破坏者
ant -quiet 构建源
ant -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。

保存文件。

错误位于...
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)

Sets or clears the message displayed in this window's status line (if it has >one). This method has no effect if the window does not have a status line.

Parameters:
message the status message, or null to clear it

因此,我们假设 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 nature
没有错误。

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

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

右键单击项目/选择启动 Derby Network Server
没有错误,服务器已启动。

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

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

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

启动服务器备份...
右键单击项目/选择启动 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 文件夹。

数据库已创建。好的。

创建一个 zip。

右键单击项目>导出

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

单击“完成”。

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

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

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

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

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

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

关于eclipse - Apache Derby Eclipse 插件去了哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26666718/

相关文章:

java - 如何在 Eclipse 中使用 Maven 创建 Spring Web 项目?

sql - 连接2个表时出错

java - 通过Criteria api转义LIKE中的字符

Java处理ClassNotFoundException

java - eclipse 脚本 : one click, 将构造函数和 getter + setter 添加到 POJO

java - 仅为一种项目类型创建自定义 Eclipse 编辑器

hadoop - 从 Eclipse 发出在 Hadoop 上执行 MR 程序的问题

jdbc - 从 jdbc 调用 derby (java db) 'show tables'

java - HTTP 状态 404 Eclipse Tomcat 7

java - 从 Eclipse 中的多个包导出多个 JAR