2012-07-09 18 views
6

Editar: Según the Derby community, el complemento Eclipse no se mantendrá ni se generará automáticamente a lo largo del proyecto Derby.¿A dónde se dirigió el complemento Apache Derby Eclipse?

¿Pero hay alguien que todavía usa este complemento? Porque si es así, ¿hay algún lugar donde publique las compilaciones reales, que (con suerte) correría bajo Eclipse Juno?

O, si esto es un verdadero callejón sin salida, ¿cuáles son las alternativas?


El problema original

Usando

  • jdk1.7.0_03
  • Eclipse IDE para Java EE Desarrolladores (Win32) versión Juno (construir a partir de 2012/06/14)
  • derby-core-plugin 10.8.2 y -ui-plugin 1.1.3 (como no hay eclipse p Lugín para la última versión 10.9.1.0)

Problema
Cuando se trata de añadir una nueva naturaleza derby (haga clic derecho en el proyecto Java -> "Apache Derby" -> "Añadir Apache Derby naturaleza") Solo recibo el siguiente mensaje:

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 

¿Alguna idea?

Respuesta

4

El complemento UI de Derby para Eclipse no se ha mantenido durante varios años, creo, ya que ninguno de los desarrolladores regulares de Derby usa ese complemento, y no ha habido voluntarios de la comunidad para mantenerlo. Así que creo que solo funciona con versiones anteriores de Eclipse.

Sospecho que no es mucho trabajo actualizarlo para que funcione con el Eclipse actual. Si está interesado en esa funcionalidad, estoy seguro de que a la comunidad de Derby le encantaría saber de usted.

Consulte también: Is it possible to use derby from apache in Eclipse now that they stopped developing the derby plugin for Eclipse?

+1

Gracias por la pista con la comunidad de Derby, ahora encontré algo útil, aunque no es el resultado que esperaba ... [link] (https://issues.apache.org/jira/browse/DERBY-5272) – Trainbird

5

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

Algún tipo de solución. Necesita más investigación, pero esto funcionará.

Referencias:
db-derby-10.9.1.0-src/BUILDING.html
db-derby-10.8.1.2-src/plugins/eclipse/Readme.txt

Descargar la fuente zip Apache Derby .
Extraiga el cierre.
Cambie al directorio de origen.
db-derby-10.9.1.0-src

Realice los siguientes objetivos ant.
hormiga -quiet Clobber
hormiga -quiet buildsource
buildjars -QUIET hormigas

Construir el complemento del núcleo.
plugin de hormiga

Ahora debe tener un archivo derby_core_plugin_10.9.1.zip en el directorio db-derby-10.9.1.0-src/frascos/cuerdo.

Nota: Su Eclipse IDE no debería estar ejecutándose. Extraiga el plugin derby core creado por la tarea ant plugin anterior y copie los contenidos en su directorio de plugins Eclipse.

Ejecutar Eclipse.

Importe el org.apache.derby.ui del árbol de fuentes.
(Importar> General> Proyectos existentes en el espacio de trabajo)

Abrir el archivo plugin.xml

En la pestaña general, subir el número de versión que digamos 1.1.4.

Guarde el archivo.

El insecto (s) están en ...
1.) paquete org.apache.derby.ui.popup.actions.AddDerbyNature.java
2.) org.apache.derby.ui.popup paquete .actions.RemoveDerbyNature.java

Donde se llama al método .setStatus en estas dos unidades.


Nota: (desde el javadoc de ApplicationWindow)

vacío org.eclipse.jface.window.ApplicationWindow.setStatus (String mensaje)

Establece o borra el mensaje que aparece en este línea de estado de la ventana (si tiene> uno). Este método no tiene efecto si la ventana no tiene una línea de estado.

Parámetros:
mensaje el mensaje de estado, o nulos para desactivarla

Así que vamos a asumir el IDE no tiene una línea de estado, por lo que esta llamada no tiene ningún efecto de acuerdo con el documento de 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); 

prueba (s):
Aplicación Ejecutar como Eclipse.

Cree un proyecto. Tal vez llámalo "org.apache.derby.ui.test".

Haga clic derecho en el proyecto/Seleccione Agregar Apache Derby nature
Ningún error.

Haga clic derecho en el proyecto/Seleccione Eliminar Apache Derby nature
Ningún error.

Agregue la naturaleza de nuevo para probar los otros elementos del menú.
clic derecho sobre el proyecto/Seleccione Añadir Apache Derby naturaleza

Haga clic derecho en el proyecto/Seleccione Inicio servidor de red Derby
No hay error, se inició el servidor.

Desde el registro de la consola ... dom 27 ene 17:51:29 EST 2013: Administrador de seguridad instalado utilizando la política de seguridad del servidor básico. Dom Ene 27 de 2013 17:51:29 EST: Apache Derby Network Server - 10.9.1.0 - (sin directorios) comenzó y listo para aceptar conexiones en el puerto 1527

Nota: No estoy seguro de lo que significa el mensaje sin directorios de

Haga clic derecho en el proyecto/Seleccione Detener Servidor de red Derby
Ningún error, el servidor se detuvo.
dom 27 Ene 2013 17:53:32 EST: Apache Derby Network Server - 10.9.1.0 - (sin directorios) de cierre

de inicio del servidor de copia de seguridad ...
Haga clic derecho en el proyecto/Seleccione Inicio servidor de red Derby

crear una carpeta sql.
crear un archivo test.sql

my test sql file.

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; 

Haga clic derecho sobre el archivo> Apache Derby> Ejecutar secuencia de comandos SQL usando 'ij'

Refesh el espacio de trabajo de proyectos, ahora no debe ser una carpeta TESTDB.

Se creó la base de datos. De acuerdo.

Crea un zip.

Haga clic derecho sobre el proyecto> Exportar

Haga clic en Plug-in Desarrollo> Deplyable plug-ins y fragmentos.
Destino Tab archivo
Archivo
/derby_ui_plugin_1.1.4-fix.zip
Ficha Opciones
plugins Unselect paquete como archivos JAR individuales

clic en Finalizar.

Cerrar/Salir de la instancia de prueba.
Salir de Eclipse.

Extraiga el zip que acaba de crear desde arriba.

Copie sus contenidos en el directorio de complementos a su directorio de complementos Eclipse (Juno).

Reiniciar Eclipse. Crea un nuevo proyecto

Debe poder instalar una naturaleza de Apache Derby (10.9.1) en sus proyectos.

Nota: si compiló esto con Java 7, no espere que funcione con una versión de JVM menor.

+0

Ahora, ESO es una solución. Gracias por compartir esto conmigo, lo intentaré si alguna vez lo necesito de nuevo;) – Trainbird

+0

Gracias, esto también funcionó para mí en Derby 10.10.1.1 con Eclipse 4.3 y Java 7. Lo único con lo que tuve problemas fue que necesario para instalar PDE --Plug-in Development Environment para "ejecutar como aplicación Eclipse". Puede que sea algo que no hace falta decir, pero tardé un poco (y algo de frustración) en descubrirlo, así que pensé que podría añadir algo a tu publicación. – NigoroJr

Cuestiones relacionadas