venerdì 4 gennaio 2008

Trasloco

No, non ho cambiato casa, ho soltanto cambiato PC.
Stavo sviluppando la mia nuova applicazione con ZK sul notebook aziendale, ma dovendo cambiare azienda l'ho dovuto riconsegnare. Di conseguenza ho dovuto trasferire tutto sul PC fisso che ho a casa. Niente di problematico se non fosse che su quel PC c'è Linux. Ora sta funzionando tutto ma poichè ci ho messo un po' voglio raccontare la mia esperienza.

Fortunatamente stavo salvando tutto ciò che sviluppavo su un repository Subversion che tenevo in locale sul mio notebook. Dunque la prima cosa che ho fatto è stato un back-up di questo repository. Grazie all'ottimo libro "Pragmatic Version Control using Subversion" è stato facilissimo. Linea di comando e:

svadmin dump nomedir > dumpfile

dove nomedir è la directory contenente il repository e dumpfile è il nome del file che conterrà il back-up.

Poichè sono previdente, quando avevo installato Linux (Ubuntu 7) sul PC avevo scelto di installare anche Subversion, dunque ricostruire il repository è stata una bazzecola. Sempre seguendo "Pragmatic ...", ho aperto una shell e:

svnadmin create nomedir
svnadmin load nomedir < dumpfile

dove nomedir, come prima, è il nome della directory che conterrà il repository e dumpfile è il file di back-up.

Un po' di problemi me li ha dati, invece, Eclipse.
L'installazione dell'ambiente Eclipse in se non è stata complicata, ma i plugin...
Infatti ho la malsana abitudine di riempire Eclipse di numerosi plugin, dunque dovevo ripristinare la situazione sul nuovo PC.
Inizialmente pensavo di procedere manualmente. Sono andato sul notebook, ho aperto Eclipse, Help/Software Updates/Find and install... e poi, scelto "Search for new features ...", è comparso l'elenco dei siti da cui ho scaricato i vari plugin. Ho cominciato a copiarlo su un foglio di carta per poi riportarlo sul nuovo e scaricare così tutti i plugin ma stavo per arrendermi!
Finchè non ho visto il pulsante "Export sites" !
Con questa funzione Eclipse copia tutto su un file xml che poi può essere ricaricato tramite il pulsante gemello "Import sites". Fantastico!
E così anche l'installazione dei vari plugin è stata una passeggiata ... fino a Subversive.

Subversive è un plugin di Eclipse che permette di sincronizzare i progetti con un repository Subversion. Tra tutti era proprio il plugin fondamentale!
Ma, una volta installato, provo ad aprire la pagina di configurazione del plugin all'interno di Window/Preferences e... noto un bruttissimo errore. Sembra che il plugin non riesca a trovare la libreria JavaHL.

E adesso cos'è JavaHL?!

Dopo qualche ricerca su Internet l'ho capito. Per poter accedere ad un qualsiasi repository di un software di configuration management, un'applicazione ha bisogno di una qualche libreria. Al contrario di altri (es. CVS) Subversion possiede un proprio set di librerie che permettono di accedere ad un repository da vari linguaggi di programmazione. JavaHL è appunto la libreria standard per poter accedere ad un repository CVS da un'applicazione Java.

Ma perchè non la trova?

Presto detto! Mentre la distribuzione Windows di Subversion include JavaHL già bella e pronta, la distribuzione Linux di Subversion no (immagino per i soliti problemi di licenza, mah?!). Dunque bisognerebbe scaricarsi i sorgenti di Subversion e ricompilarli dicendogli di includere anche JavaHL.

Fortunatamente il plugin Subversive permette di accedere ai repository anche utilizzando un'altra libreria: SVNKit. Questa viene distribuita direttamente con il plugin perciò si può utilizzare tranquillamente anche se, rispetto a JavaHL, ha qualche limitazione.
La principale limitazione è che non è possibile utilizzare repository locali, quelli a cui si accede tramite un URL del tipo file://.... , ma solamente a repository svn server, quelli a cui si accede tramite un URL tipo svn://....
Ma anche qui non è stato difficile, sempre grazie a "Pragmatic...".
Basta infatti avviare svn server facendolo puntare alla directory contenente il nostro repository con la seguente istruzione:

svnserve --daemon --root nomedir

A questo punto basta far puntare Subversive a svn://localhost per accedere al repository locale.

Magari quando avrò un po' di tempo proverò anche a compilare JavaHL. Vi prometto un post sull'argomento!

A presto