Dov’è finito il plug-in Apache Derby Eclipse?

Modifica : secondo la comunità Derby il plug-in Eclipse non verrà mantenuto né costruito automaticamente lungo il progetto Derby.

Ma c’è ancora qualcuno che usa questo plug-in? Perché se è così, c’è un posto che pubblica le build reali – che (si spera) potrebbero essere eseguite con Eclipse Juno?

Oppure, se questo è un vero vicolo cieco, quali sono le alternative?


Il problema originale

utilizzando

  • jdk1.7.0_03
  • Eclipse IDE per Java EE Developers (Win32) versione Juno (build dal 2012/06/14)
  • derby-core-plugin 10.8.2 e -ui-plugin 1.1.3 (dato che non esiste un plugin eclipse per l’ultima versione 10.9.1.0)

Problema
Quando si tenta di aggiungere una nuova natura derby (fare clic con il tasto destro del mouse sul progetto java -> “Apache Derby” -> “Aggiungi Apache Derby nature”) viene visualizzato solo il seguente messaggio:

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 

Qualche idea?

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

Una specie di correzione. Ha bisogno di più ricerche ma questo funzionerà.

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

Scarica il zip sorgente Apache Derby.
Estrai lo zip.
Passare alla directory di origine.
db-derby-10.9.1.0-src

Esegui i seguenti bersagli delle formiche.
cibber antireligioso
ant -quiet buildsource
buildjars antichissimi

Costruisci il plugin principale.
plug-in ant

Ora dovresti avere un file derby_core_plugin_10.9.1.zip nella directory db-derby-10.9.1.0-src / jars / sane.

Nota: il tuo IDE Eclipse non dovrebbe essere in esecuzione. Estrai il plug-in derby core creato dall’attività plug-in ant antispam e copia il contenuto nella directory dei plugin di Eclipse.

Esegui Eclipse.

Importare org.apache.derby.ui dall’albero dei sorgenti.
(Importa> Generale> Progetti esistenti nello spazio di lavoro)

Apri il file plugin.xml

Nella scheda Panoramica, fai comparire il numero di versione per dire 1.1.4.

Salva il file.

I bug sono in …
1.) pacchetto org.apache.derby.ui.popup.actions.AddDerbyNature.java
2.) pacchetto org.apache.derby.ui.popup.actions.RemoveDerbyNature.java

Dove il metodo .setStatus viene chiamato in queste due unità.


Nota: (dalla javadoc di ApplicationWindow)

void org.eclipse.jface.window.ApplicationWindow.setStatus (String message)

Imposta o cancella il messaggio visualizzato nella riga di stato di questa finestra (se ha> uno). Questo metodo non ha effetto se la finestra non ha una riga di stato.

parametri:
invia il messaggio di stato o null per cancellarlo

Quindi supponiamo che l’IDE non abbia una riga di stato, quindi questa chiamata non ha alcun effetto in base al documento 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); 

Test (s):
Esegui come applicazione Eclipse.

Crea un progetto. Forse chiamalo “org.apache.derby.ui.test”.

Fare clic destro sul progetto / Selezionare Aggiungi natura Apache Derby
Nessun errore.

Fare clic destro sul progetto / selezionare Rimuovi Apache Derby nature
Nessun errore.

Aggiungi di nuovo la natura per testare le altre voci del menu.
Fare clic destro sul progetto / Selezionare Aggiungi natura Apache Derby

Fare clic con il tasto destro sul progetto / Selezionare Avvia server di rete Derby
Nessun errore, il server è stato avviato.

Dal log della console … Dom Jan 27 17:51:29 EST 2013: Security manager installato utilizzando la politica di sicurezza del server di base. Dom Jan 27 17:51:29 EST 2013: Apache Derby Network Server – 10.9.1.0 – (Directory non declassata) avviato e pronto ad accettare connessioni sulla porta 1527

Nota: non sono sicuro che cosa significhi il messaggio della directory di non sottostimato

Fare clic con il tasto destro sul progetto / Selezionare Arresta il server di rete Derby
Nessun errore, il server è stato fermato.
Dom Jan 27 17:53:32 EST 2013: Apache Derby Network Server – 10.9.1.0 – Arresto (directory non controllata)

Avvia il server di backup …
Fare clic con il tasto destro sul progetto / Selezionare Avvia server di rete Derby

crea una cartella sql.
creare un file test.sql

il mio file sql di prova.

 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; 

Fai clic destro su file> Apache Derby> Esegui script SQL usando ‘ij’

Ritriggers l’area di lavoro dei progetti, ora dovrebbe esserci una cartella TESTDB.

Il database è stato creato. Ok.

Crea un file zip.

Fare clic con il tasto destro del mouse su progetto> Esporta

Fare clic su Sviluppo plug-in> Plug-in e frammenti dettagliabili.
Scheda Destinazione
File di archivio
/derby_ui_plugin_1.1.4-fix.zip
Scheda Opzioni
Deseleziona i plugin del pacchetto come singoli archivi JAR

Fare clic su Fine.

Chiudi / Esci dall’istanza di test.
Esci da Eclipse.

Estrai lo zip che hai appena creato dall’alto.

Copia il suo contenuto nella directory plugins nella directory dei plugin Eclipse (Juno).

Riavvia Eclipse. Crea un nuovo progetto.

Dovresti essere in grado di installare una natura Apache Derby (10.9.1) sui tuoi progetti.

Nota: se lo hai creato con Java 7, non aspettarti che funzioni per una versione JVM minore.

Il plug-in Derby UI per Eclipse non è stato mantenuto per diversi anni, credo, poiché nessuno dei normali committer Derby utilizza quel plugin e non ci sono stati volontari dalla comunità per mantenerlo. Quindi penso che funzioni solo con le versioni precedenti di Eclipse.

Sospetto che non sia molto lavoro aggiornarlo per farlo funzionare con l’attuale Eclipse. Se sei interessato a questa funzionalità, sono sicuro che la comunità Derby amerebbe sentirti!

Vedi anche: E ‘ansible usare derby da apache in Eclipse ora che hanno smesso di sviluppare il plugin derby per Eclipse?