Mi is az a Liquiface?

Posted by | · · · · | Liquiface | 1 hozzászólás a(z) Mi is az a Liquiface? bejegyzéshez

Pár éve egy FedEx napi projekten gondolkoztunk, ekkor jött az ötlet: A cégnél már egy ideje használjuk a Liquibase-t, de eddig a changelog fájlokat mindenki manuálisan szerkesztette. Jó lenne a changelog fájlok karbantartását grafikus felülettel is támogatni. Ha pedig úgyis NetBeans-t használunk, akkor kézenfekvő, hogy ezt a felületet a NetBeans-en belül érjük el.

Mi az a Liquibase?

A Liquibase egy adatbázis verziókövető eszköz. Alapelve: „Sosem fejlesztünk kódot verziókövetés nélkül. Akkor adatbázist miért fejlesztenénk nélküle?” A Liquibase-t Java-ban írták, nyílt forrású. Az adatbázis változásokat xml (changelog) fájlokban tartja nyilván. Maga az adatbázis tárolja, hogy melyik változások futottak már rajta. A Liquibase egyrészt egy futtatható program, ami egy kiválasztott adatbázison alkalmazni tudja a változásokat, másrészt Java API-t is nyújt az adatbázis változások kezeléséhez. Grafikus felület jelenleg nem tartozik hozzá, ezt a hiányt igyekszünk most orvosolni.

Mi az a NetBeans?

A NetBeans egy integrált fejlesztői környezet (IDE) elsősorban Java, HTML5, PHP, C/C++ fejlesztéshez. Moduláris felépítésű, ezért könnyű plugin-ekkel bővíteni, ami módot ad nekünk arra, hogy egy Liquibase GUI-t plugin-ként illesszünk bele.

Miért neveztük Liquiface-nek?

Ha ez egy grafikus felhasználói felület (GUI – Graphical User InterFace) a Liquibase-hez, azaz a „Liquibase arca”, akkor hogyan is adhatnánk neki más nevet, mint Liquiface?

Milyen akadályokkal kellett megküzdenünk?

Liquibase Java API

Korábban a Liquibase-t elsősorban, mint futtatható programot használtuk. Most meg kellett ismerkednünk vele az API oldaláról is:

  • Hogyan lehet kódból changelog-ot futtatni?
  • Hogyan tudjuk programból egy adatbázis szerkezetét (DDL) changelog-ba menteni?
  • Hogyan lehet különféle Change-eket építeni kódból?
  • Hogyan szervezzük a Change-eket ChangeSet-ekbe?

NetBeans modul fejlesztés Maven-nel

Korábban még egyikünk sem készített NetBeans modul-t. Újdonság volt számunkra, hogy

  • Hogyan készíthetünk NetBeans modul-t NetBeans-ben, ráadásul Maven-nel?
  • Mi az a nbm fájl?
  • Hogyan és mire használhatjuk a NetBeans API-t?
  • Hogyan érhetjük el a NetBeans adatbázis kapcsolatait?

A Maven-es NetBeans modul összerakásánál például sokat segített ez a leírás.

Grafikus megjelenítés

A NetBeans felületek jól együttműködnek a Java Swing komponensekkel. Például egy varázsló paneljeit könnyen össze lehet dobni Swing építőelemekből. Eddig csekély Swing-es tapasztalattal rendelkeztünk, most itt volt a lehetőség, hogy ebbe is mélyebben beleássuk magunkat. Az adatbázis táblákat és kapcsolataikat szerettük volna grafikusan is ábrázolni, így kapóra jött, amikor Tamás megtalálta ezt a példát, amelyben éppen valami hasonlót mutatnak be a NetBeans Visual Library segítségével. Akkor még nem sejtettük, hogy a Visual Library mennyi nehézséget rejteget előlünk, amelyekről majd egy későbbi bejegyzésben részletesen olvashattok.

FedEx napon elkészült a prototípus

A rendelkezésre álló 24 óra alatt összeraktunk egy NetBeans modult, amely alkalmas volt CREATE TABLE-nek megfelelő Liquibase Change-ek összekattintására. A szerkesztő felület egy ilyen Swing ablakban jelent meg:
liquiface_table_editor_fedexes

Az ebből generált changelog-ot el lehetett menteni fájlba:
liquiface_save_changelog_fedexes

Mi lett a Liquiface sorsa a FedEx nap után?

Éreztük, hogy a projektben több lehetőség rejlik, mint amit 24 óra alatt ki tudtunk hozni belőle. Szerencsére a cégvezetés is látott fantáziát a projektben, ezért kaptunk a megvalósításra további erőforrásokat. Így jutottunk el az 1.0-ás verzióig, ami már tényleg sok hasznos funkcióval bír:

  • Legtöbb általunk használt Change típus támogatása
  • Wizard-os kezelőfelület
  • NetBeans adatbázis kapcsolatainak használata
  • ChangeSet-ek futtatása kiválasztott adatbázison
  • Adatbázis táblák és kapcsolataik megjelenítése
  • Funkciók elérhetők felugró (context) menüből
  • Többfajta szűrési lehetőség az adatbázis táblákhoz
  • Modell betöltése adatbázisból vagy changelog fájlból
  • Változások mentése új changelog fájlba
  • Változások hozzáfűzése létező changelog fájlhoz

A program használatáról illetve a technológiai kérdésekről további bejegyzéseket készítettünk.
Most csak egy kis ízelítő a jelenlegi felületekből:
liquiface_model_graph
liquiface_create_table

Share on FacebookShare on Google+Email this to someoneTweet about this on TwitterShare on RedditShare on LinkedIn

One Comment

Webstar Blog | Liquiface felület fejlesztése says:

2013. július 25. at 15:49

[…] már írtunk róla, hogy készült nálunk egy Liquiface nevű NetBeans plugin. Amellett, hogy kifejezetten […]

Reply

Leave a comment