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

标签 eclipse eclipse-plugin derby eclipse-juno

编辑:根据the Derby community 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”->“添加 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-quiet clobber
    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 性质
    没有错误。

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

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

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

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

    注意:不确定 Unversioned 目录消息是什么意思

    右键单击项目/选择停止 Derby 网络服务器
    没有错误,服务器已停止。
    Sun Jan 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 > 使用“ij”运行 SQL 脚本

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

    数据库已创建。好的。

    创建一个 zipper 。

    右键单击项目>导出

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

    单击完成。

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

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

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

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

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

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

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

    相关文章:

    eclipse-plugin - 如何在 eclipse 插件中引用 jar 文件中的文件

    java - 如果表不存在,如何使用 Derby Db 创建表

    java - 运行 Android 项目时发生错误 - 不支持的 major.minor 版本

    php - 在 Eclipse 中打开文件资源管理器的键盘快捷键是什么?

    java - 是否有一个插件或工具可以用来在没有测试用例的情况下从运行的应用程序生成覆盖率?

    java.lang.NoClassDefFoundError : org/apache/poi/xssf/usermodel/XSSFWorkbook

    hibernate - 使用DerbyDB进行一对多双向关系的Hibernate注释映射

    java - 在 Eclipse 上通过 Java 创建 Derby 数据库时出错;没有 'service.properties' 文件

    java - 无法将程序作为 Silk4J 测试运行

    eclipse - 合并/聚合 eclipse p2 存储库/可扩展的 p2 存储库