V minulém dílu našeho seriálu jsme
se seznámili s použitím Caché anotací. Jenom krátká
poznámka k minulému dílu; není nutno definovat anotace
ke každé vlastnosti nebo ke třídě jako celku, stačí je
definovat pouze tam, kde potřebujeme jít nad rámec
čistých objektů (např. anotace pro indexy apod.), nebo
tam kde chceme systému vnutit jiné nežli výchozí
hodnoty.

Dnes si předvedeme, jak přeneseme informace o
třídách do Caché.

K vytvoření tříd v Caché můžeme jednak použít
průvodce, jednak spustit tvůrce schémat pomocí
příkazového řádku. Některá IDE, jako například
NetBeans obsahují přímo Jalapeno plugin, takže
nemusíme používat příkazový řádek vůbec.

Začněme nejdříve průvodcem. Ten se spouští z
príkazové řádky příkazem


java -classpath <cesta ke CacheDB.jar>
com.intersys.pojo.tools.SchemaBuilderWizard
.

Po spuštění se otevře GUI formulář, do kterého se
zadají přihlašovací údaje pro databázi Caché. Těmito
údaji jsou IP adresa, port, uživatelský účet a heslo.
Stisknutím tlačítka ShowNamespaces se
přihlásíme a vybereme příslušný názvový prostor Caché,
ve kterém budeme pracovat.

Schema Builder Screenshot

Na následující stránce průvodce zvolíme jako
způsob mapování tříd do Caché „Use
annotations"
, ostatní volby ponecháme beze
změny a přejdeme na další stránku. Poznámka na okraj,
všimněte si ze Caché podporuje též anotace mapovacího
nástroje Hibernace, přesněji řečeno, Caché anotace
jsou certifikovány jako dialekt Hibernate.

Dále zvolíme, odkud budeme číst třídy, zda z jar
či zip archivů nebo zda budeme číst jednotlivé
(zkompilované) třídy.

Na další, již poslední stránce průvodce, vybereme
příslušné archívy nebo jednotlivé třídy a tlačítkem
Generate spustíme vytváření definic
tříd v Caché.

Hodnota každého vstupního pole v průvodci se
ukládá, s výjimkou hesla, do souboru SchemaBuilder.properties. Odtud jsou hodnoty
při spuštění načteny. Při prvním spuštění se tento
soubor vytvoří s výchozími hodnotami. Tento textový
soubor lze editovat libovolným editorem. Vzorový
obsah souboru je zde:

SchemaBuilder.properties


#Thu Oct 26 10:08:31 CEST 2006


com.intersys.schemabuilder.defaultjavaprojectionpackage=



com.intersys.schemabuilder.defaultaccesstype=getters
and setters


com.intersys.schemabuilder.classpath=C\:\\Software\\Projects\\Java\\netbeans
projects\\ucto\\build\\classes\\


com.intersys.schemabuilder.merge=false


com.intersys.schemabuilder.classes=C\:\\Software\\Projects\\Java\\netbeans
projects\\ucto\\build\\classes\\ucto\\polozka.class;C\:\\Software\\Projects\\Java\\netbeans
projects\\ucto\\build\\classes\\ucto\\faktura.class



com.intersys.schemabuilder.projectiondir=C\:\\Software\\CacheSys\\Dev\\java\\lib\\JDK15\\.



com.intersys.schemabuilder.source=classes


com.intersys.schemabuilder.exclude=


com.intersys.schemabuilder.rootdir=


com.intersys.schemabuilder.port=1972


com.intersys.schemabuilder.host=localhost


com.intersys.schemabuilder.namespace=USER


com.intersys.schemabuilder.metadata=annotations


com.intersys.schemabuilder.logfile=


com.intersys.schemabuilder.defaultaccesslevel=protected



com.intersys.schemabuilder.user=_SYSTEM


com.intersys.schemabuilder.generationtype=0

Spuštění tvůrce schémat z příkazové řádky se
provede takto:

java.exe -classpath <cesta k
CacheDB.jar> com.intersys.pojo.tools.SchemaBuilder
-f <cesta k souboru s definicemi parametrů>

Nyní si ještě ozřejmíme význam nejdůležitějších
parametrů.

Defaultjavaprojectionpackage

Určuje, do jakého balíčku se budou tvořit
nové třídy v Caché, výchozí hodnota je „“

Generationtype

Bitmapa určující, zda a jaké typy projekcí
se budou z Caché tříd tvořit, výchozí hodnota
je 0 – netvoří se žádné projekce z Caché

Projectiondir

V případě, že generationtype parametr
specifikuje tvorbu některého z typů projekcí,
obsahuje cestu k vygenerovaným souborům

Metadata

Specifikuje, jaký typ metadat se má z
definic java tříd použít (default,
annotations, hibernate)

Host

IP adresa nebo název serveru Caché

Port

Port na kterém naslouchá Caché

Source

Určuje, z jakého zdroje se mají generovat
Caché třídy (classes, jars)

Merge

Určuje, zda ma kompilátor Caché vytvořit
novou definici třídy, nebo jen přidat
informace k již dříve vytvořené třídě (true,
false)

Logfile

Určuje název logovacího souboru pro
případné ladění

Pokud do souboru s parametry vložíme řádek com.intersys.schemabuilder.password=<heslo>, nebude se nás pro příště tvůrce ptát na heslo a
rovnou se připojí k databázi. Samozřejmě musíme dobře
zvážit riziko umístění hesla v otevřené textové
podobě do souboru v počítači!

V příštím díle se seznámíme s API Jalapeno
knihovny a dokončíme příklad z druhého dílu toto
seriálu.