<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Software Libero e non solo</title>
	<atom:link href="http://kaosktrl.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://kaosktrl.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<pubDate>Sun, 13 Jul 2008 20:28:41 +0000</pubDate>
	<generator>http://wordpress.org/?v=MU</generator>
	<language>it</language>
			<item>
		<title>Fare il debug di web services</title>
		<link>http://kaosktrl.wordpress.com/2008/07/13/fare-il-debug-di-web-services/</link>
		<comments>http://kaosktrl.wordpress.com/2008/07/13/fare-il-debug-di-web-services/#comments</comments>
		<pubDate>Sun, 13 Jul 2008 20:27:12 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
		
		<category><![CDATA[Software Libero]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[sviluppo]]></category>

		<category><![CDATA[axis2]]></category>

		<category><![CDATA[debug]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[monitor]]></category>

		<category><![CDATA[wsas]]></category>

		<category><![CDATA[wso2]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=85</guid>
		<description><![CDATA[Nel precedente articolo, vi ho accennato all&#8217;uso di Eclipse, Tomcat e Axis2 per la creazione di web services.
Vi sarete chiesti: come faccio a sapere che il tutto stia funzionando passo per passo oltre a vedere l&#8217;output da console ?
Potete usare 2 modi:
1) vedere i messaggi scambiati tra client e server
2) usare il debug remoto
Se non [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Nel precedente articolo, vi ho accennato all&#8217;uso di Eclipse, Tomcat e Axis2 per la creazione di web services.</p>
<p>Vi sarete chiesti: come faccio a sapere che il tutto stia funzionando passo per passo oltre a vedere l&#8217;output da console ?</p>
<p>Potete usare 2 modi:</p>
<p>1) vedere i messaggi scambiati tra client e server</p>
<p>2) usare il debug remoto</p>
<p>Se non usate Axis2, ma un semplice client server che comunicano tramite una porta, puo&#8217; esservi utile <a href="https://tcpmon.dev.java.net/" target="_blank">TCPMon </a>una applicazione java che si esegue da un unico jar file a cui dovete configurare come porta locale una porta che il vostro client deve chiamare e la server port la porta del vero server. In pratica esso funziona come proxy permettendovi di vedere i messaggi scambiati.</p>
<p>Se usate Axis2 potete usare il <a href="http://ws.apache.org/axis2/1_4/soapmonitor-module.html" target="_blank">SOAPMonitor</a> che, come TCPMon, è una sorta di proxy che si infrappone nella comunicazione. Non sono riuscito a farlo funzionare su Axis2 1.4, in rete ho trovato <a href="http://technicalmumbojumbo.wordpress.com/2008/06/26/getting-axiss-soapmonitor-working-and-fixing-appletclassloaders-noclassfoundexception/" target="_blank">un tipo che lo ha fatto funzionare</a> ma non voglio perderci tempo, mentre ci sono riuscito su Axis2 1.3 semplicemente estraendo dal file soapmonitor-1.3.jar (presente in Axis2) le classi in esso contenute e copiandole nella root directory di Axis2 (stiamo parlando della directory di Axis2 che sta dentro Tomcat).</p>
<p>Alternativamente al SOAPMonitor c&#8217;è il tracer di <a href="http://wso2.org/projects/wsas/java" target="_blank">WSO2 Web Services Application Server</a> o WSAS. Questo application server è formato da Tomcat e Axis più la serie di moduli che si appoggiano ad Axis come <a href="http://ws.apache.org/axis2/modules/rampart/1_0/security-module.html" target="_blank">Apache Rampart</a> per quanto riguarda la sicurezza (WS-Security) o <a href="http://ws.apache.org/sandesha/" target="_blank">Sandesha</a> per quanto riguarda l&#8217;affidabilità (WS-ReliableMessaging). Nell&#8217;interfaccia web di Axis2 avete sicuramente notato la sezione dedicata ai moduli che possono essere agganciati a tutti i web services o solo ad alcuni. Ebbene WSAS permette di averli già tutti installati (vi risparmia la fatica) offrendo dalla sua interfaccia web una serie di tool tra cui il tracer.</p>
<p>Per quanto riguarda il tracer ho trovato WSAS 2.1 più stabile di WSAS 2.2 e 2.3 (ultima versione al momento in cui scrivo). Quello di 2.2 mi geneva una eccezione mentre leggevo un messaggio quello di 2.3 funziona ma in WSAS esiste uno strumento che permette di provare un web service da interfaccia web (una volta selezionato il web service cliccate su Try it) che mi ha funzionato meglio su 2.1 che su 2.3. Poi ovviamente fate voi.</p>
<p>2) Come per le applicazioni stand alone potete inserire dei breakpoint nel codice e fare il debug potete fare lo stesso anche per i web services a patto che l&#8217;application server ve lo consente (Tomcat di sicuro) e che dal vostro IDE (di sicuro Eclipse) possiate lanciare l&#8217;applicazione in debug mode. In sostanza IDE e application server si accordano su una porta per il debug; Il tutto è dovuto alla <strong>Java Platform Debugger Architecture. </strong>Cercate &#8220;eclipse remote debug&#8221; in Google e troverete esempi come:</p>
<p><a href="http://www.eclipsezone.com/eclipse/forums/t53459.html" target="_blank">http://www.eclipsezone.com/eclipse/forums/t53459.html</a></p>
<p>o questo:</p>
<p><a href="http://www.onjava.com/pub/a/onjava/2005/08/31/eclipse-jboss-remote-debug.html?page=1" target="_blank">http://www.onjava.com/pub/a/onjava/2005/08/31/eclipse-jboss-remote-debug.html?page=1</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kaosktrl.wordpress.com/85/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kaosktrl.wordpress.com/85/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/85/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/85/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/85/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=85&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2008/07/13/fare-il-debug-di-web-services/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/kaosktrl-128.jpg" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Università di Pavia e il software libero</title>
		<link>http://kaosktrl.wordpress.com/2008/07/11/universita-di-pavia-e-il-software-libero/</link>
		<comments>http://kaosktrl.wordpress.com/2008/07/11/universita-di-pavia-e-il-software-libero/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 18:47:19 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
		
		<category><![CDATA[Software Libero]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=84</guid>
		<description><![CDATA[Il 16 luglio l&#8217;Univesità di Pavia, in occasione delle &#8220;Porte Aperte&#8221;, si propone di divulgare  il software libero a scopo didattico dove, in un ciclo di 3 incontri verrà distribuito e spiegato l&#8217;uso del sistema operativo Fedora 9.
Per ulteriori info:
http://www-1.unipv.it/webaule/porteAperte2008/index.html
       ]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p style="margin-bottom:0;">Il 16 luglio l&#8217;Univesità di Pavia, in occasione delle &#8220;Porte Aperte&#8221;, si propone di divulgare  il software libero a scopo didattico dove, in un ciclo di 3 incontri verrà distribuito e spiegato l&#8217;uso del sistema operativo Fedora 9.</p>
<p style="margin-bottom:0;">Per ulteriori info:</p>
<p style="margin-bottom:0;"><a href="http://www-1.unipv.it/webaule/porteAperte2008/index.html" target="_blank">http://www-1.unipv.it/webaule/porteAperte2008/index.html</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kaosktrl.wordpress.com/84/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kaosktrl.wordpress.com/84/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/84/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/84/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/84/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=84&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2008/07/11/universita-di-pavia-e-il-software-libero/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/kaosktrl-128.jpg" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Web Services con Eclipse 3.4, Tomcat 6.0.16 e Axis2 1.4</title>
		<link>http://kaosktrl.wordpress.com/2008/07/08/web-services-con-eclipse-34-tomcat-6016-e-axis2-14/</link>
		<comments>http://kaosktrl.wordpress.com/2008/07/08/web-services-con-eclipse-34-tomcat-6016-e-axis2-14/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 19:21:31 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
		
		<category><![CDATA[Software Libero]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[sviluppo]]></category>

		<category><![CDATA[axis2]]></category>

		<category><![CDATA[eclipse]]></category>

		<category><![CDATA[tomcat]]></category>

		<category><![CDATA[web services]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=81</guid>
		<description><![CDATA[Per un progetto in azienda sto lavorando con i web services, usiamo pero&#8217; vecchie versioni di eclipse e axis2 poichè il progetto è iniziato con quelle versioni e non si può cambiare strumento durante lo sviluppo, come è giusto che sia. Per i fatti miei però ho sperimentato la generazione di web services dapprima con [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Per un progetto in azienda sto lavorando con i web services, usiamo pero&#8217; vecchie versioni di eclipse e axis2 poichè il progetto è iniziato con quelle versioni e non si può cambiare strumento durante lo sviluppo, come è giusto che sia. Per i fatti miei però ho sperimentato la generazione di web services dapprima con Netbeans 6.1 e poi con Eclipse 3.4.</p>
<p><strong>Introduzione</strong></p>
<p>Come da titolo dovete scaricare Eclipse, Tomcat e Axis2. Io ho scaricato <a href="http://www.eclipse.org/downloads/" target="_blank">Eclipse 3.4 per Java EE</a>, <a href="http://tomcat.apache.org/download-60.cgi" target="_blank">Tomcat Core</a> e <a href="http://ws.apache.org/axis2/download/1_4/download.cgi" target="_blank">Axis2</a> il file <strong>war</strong> ma anche la <strong>standard binary distributition</strong> perchè essa contiene dei comandi che il war file non ha.</p>
<p>Tomcat è un application server e dovrà lanciare Axis2 che funge da contenitore per i vostri web services e vi permette anche di gestirli. Con Eclipse dovrete creare le classi java per il client e il server.</p>
<p><strong>Iniziamo</strong></p>
<p>Una volta estratta la standard binary distribution, create la variabile di ambiente<strong> AXIS2_HOME</strong> in modo che punti ad essa e poi copiate il file war nella cartella <strong>/webapps</strong> di Tomcat. Ora, se volete, potete far partire tomcat lanciandolo dalla sua cartella <strong>/bin</strong> e con il vostro browser andare all&#8217;url:</p>
<pre>http://localhost:8080</pre>
<p>8080 è in genere la porta su cui Tomcat gira. Dovreste vedere la pagina di Tomcat, se cliccate a sinistra su Tomcat manager vedete la lista di applicazioni tra cui c&#8217;è Axis2. Cliccateci sopra e vi compare la pagina di Axis2. Come primo link c&#8217;è &#8220;Services&#8221; che indica gli attuali web services che stanno girando tra cui ci sarà anche il nostro.</p>
<p>Come vi ho già detto nella standard binary distribution ci sono dei comandi che nel war non sono presenti e sono<strong> java2wsdl</strong> e <strong>wsdl2java</strong> (vedere <a href="http://ws.apache.org/axis2/1_4/reference.html" target="_blank">qui</a> per tutti i parametri)</p>
<p>Se siete nuovi nel mondo dei web services dovete sapere che i file <strong>wsdl</strong> sono dei file xml che descrivono i web services percio&#8217; prima di proseguire vi consiglio di studiarvi <strong>XML,</strong> i file <strong>xml schema</strong> e i file <strong>wsdl</strong> in generale (potete dare una occhiata al sito <a href="http://www.w3schools.com/" target="_blank">w3schools</a>). Occorre saperlo perchè grazie al comando wsdl2java potete creare, a partire dal file wsdl, ciò che sta sotto la comunicazione tra client e webservice ovvero <strong>stub</strong> e <strong>skeleton</strong>.</p>
<p>Stub e skeleton sono delle classi java che fungono da proxy ovvero <strong>il vostro client chiamerà lo stub</strong> per la comunicazione mentre <strong>il webservice userà lo skeleton</strong> per ricevere, ed eventualmente trasmettere, i dati.</p>
<p>In un precedente articolo ho spiegato come potete validare i vostri file wsdl in modo da diminuire i rischi di interoperabilità, pensate ad esempio ad un client (stub) realizzato in java ed un web service (skeleton) realizzato sotto .NET.</p>
<p>Il comando java2wsdl potete immaginare cosa fa.</p>
<p>Questi comandi, come descritto nella reference di Axis2 sono molto semplici da usare ma una interfaccia grafica non dispiace.</p>
<p>Il servizio andrà poi impacchettato in un archivio axis (<strong>file aar</strong>) e deployato  (in altre parole copiato e spacchettato, lasciatemi passare il termine) nella cartella di Axis2 sotto Tomcat.</p>
<p>Ho dapprima provato il plugin di Netbeans ma personalmente credo che andrebbe migliorato perchè è possibile selezionare poche cose e, inoltre, obbliga alla all&#8217;inserimento di parametri (<strong>-g</strong>) a linea di comando (da dentro l&#8217;interfaccia!) per la generazione del client, in quanto, in automatico, lui crea lo skeleton e l&#8217;unico modo per creare lo stub è aggiungere il parametro; per il resto il plugin si comporta bene. Il tutorial che ho seguito è <a href="http://www.netbeans.org/kb/61/websvc/gs-axis.html" target="_blank">questo</a>. Tuttavia ho poi proseguito per Eclipse anche se poi ho scoperto che il plugin è buggato ma ho trovato rimedio.</p>
<p>I plugin di Axis2 sono a mio avviso più completi e si scaricano dal <a href="http://ws.apache.org/axis2/tools/index.html" target="_blank">sito di Axis2 </a>e precisamente sono il <strong>Service Archive Wizard 1.4</strong> e il<strong> Code Generator Wizard 1.4</strong> che come vedete nella tabella richiedono Axis 1.4.</p>
<p>Il primo serve per creare l&#8217;archivio axis da copiare in Tomcat il secondo come interfaccia per i comandi java2wsdl e wsdl2java.</p>
<p>Non dovete fare altro che scaricare i plugin ed estrarli nella cartella plugins di Eclipse e correggere qualche bug <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>In pratica nella cartella del Code Generator c&#8217;è un file che si chiama <strong>plugin.xml</strong>, in questo file sono descritte le librerie di cui il plugin si serve, tra queste notate che c&#8217;è l&#8217;archivio jar <strong>stax-api-1.0.1.jar</strong> ma questo non si trova nella <strong>cartella lib del plugin</strong> e dovete scaricarlo dalla rete (vedete <a href="http://www.java2s.com/Code/Jar/Web-Services-AXIS2/CatalogWeb-Services-AXIS2.htm" target="_blank">qui</a>). C&#8217;è poi un pacchetto che manca proprio e che è <strong>backport-util-concurrent-3.1.jar</strong> (lo trovate nella cartella /lib di Axis2) che dovete aggiungere <strong>nella cartella lib e nel file plugin.xml</strong> (in pratica tutto cio&#8217; serve per risolvere l&#8217;eccezione java.lang.reflect.invocationTargetException che si manifesta all&#8217;ultimo passaggio del wizard).</p>
<p>Nel caso in futuro avete degli errori lanciate Eclipse in debug mode da console in questa maniera:</p>
<pre>eclipse -clean -debug</pre>
<p>L&#8217;opzione debug vi permette di vedere eventuali errori da console, clean pulisce una cache che Eclipse usa quando crea i vostri progetti (per altri parametri vedere <a href="http://help.eclipse.org/ganymede/index.jsp?topic=/org.eclipse.platform.doc.user/tasks/running_eclipse.htm" target="_blank">qui</a>). Se ancora avete problemi come ultima speranza rimuovete il plugin che vi da fastidio dalla cartella nascosta <strong>.metadata/.plugins</strong> che si trova nel vostro workspace.</p>
<p>Non fate partire ancora Eclipse perchè voglio segnalarvi un altro plugin che vi permette di lanciare/fermare Tomcat da Eclipse questo plugin lo trovate <a href="http://www.eclipsetotale.com/tomcatPlugin.html" target="_blank">qui</a> ed è semplice da installare come spiega il sito (in pratica va poi messo nella cartella <strong>dropins</strong> di Eclipse e occorre configurare il plugin indicando <strong>il path di tomcat</strong>).</p>
<p>Ok ora siete pronti per lanciare Eclipse, dovrete creare un progetto java e seguire <a href="http://wso2.org/library/1719" target="_blank">questa guida</a> suddivisa in 2 parti che vi spiega per filo e per segno tutto.</p>
<p>Durante la guida vi ritrovete a creare il codice java per lo stub dal file wsdl, il wizard vi chiede l&#8217;inclusione delle librerie del codegen ma questa non va e perciò dovrete farlo a mano agggiungendole direttamente nel vostro <strong>Build Path</strong> prendendole dalla <strong>cartella lib del plugin Codegen</strong>. Attenzione potrebbe essere un problema del Mac, ho notato che in debug mode, al momento della creazione del codice eclipse pensa di trovare il plugin nella cartella <strong>/eclipse/Contents/MacOS/plugins</strong> e non, come dovrebbe essere, in <strong>/eclipse/plugins</strong>, perciò se siete sotto Mac copiate i 2 plugin anche in quella cartella (da creare) e cosi al momento della generazione pesca correttemente i jar file della cartella lib.</p>
<p>Se non vedete il codige generato provate a fare un refresh del progetto. Volevo farvi notare che quando il wsdl viene caricato il plugin carica anche gli XML schema collegati (se ve ne sono) e quindi fa un controllo sulla validità, potete notare il caricamento se usate Eclipse in debug mode; tra l&#8217;altro una volta che avete creato il file wsdl potete validarlo selezionandolo e cliccando sulla voce di validazione dal menu contestuale aperto con il tasto destro del mouse.</p>
<p>Quando vi viene chiesto di compilare fatelo usando il file<strong> build.xml</strong> (tasto destro ed &#8220;esegui&#8221; dal menu contestuale) che viene automaticamente generato e conosce tutte le dipendenze.</p>
<p>Quando eseguirete il client avrete una eccezione riguardo il <strong>file jar woden API</strong> che è mancante questo perchè con Axis 2 1.4 questo package è richiesto; prendetelo dalla <strong>cartella lib di Axis2</strong> e aggiungetelo al vostro build path. Ho semplicemente aggiunto solo il jar delle woden API.</p>
<p>Non vi preoccupate del warning su log4j è perchè non trova il suo file di configurazione.</p>
<p>Quando andate a generare lo skeleton che dovete riempire fate caso al fatto che i parametri in ingresso del metodo terminano con un numero.</p>
<p>Notate anche che quando generate lo stub questo ha come sottoclassi le richieste e le risposte mentre quando generate lo skeleton queste sono messe nei rispettivi file.</p>
<p>Nella parte 2 del tutorial vi verrà chiesto di usare il file <strong>services.xml</strong> che è stato generato nella cartella resources, ebbene in teoria dovreste poterlo selezionare in pratica dovrete inserire il suo path a mano.</p>
<p>Tra l&#8217;altro vi faccio notare che, sempre nella parte 2, il file wsdl viene generato nuovamente nella cartella <strong>resources</strong>, il file è pressocchè identico a quello di partenza anche se è questo che viene usato per la generazione del servizio con il Service Archiver.</p>
<p>Nella parte 2 vi viene chiesto di inserire la parte del client ebbene inserite il codice usato nella parte 1 e non quello proposto.</p>
<p>Se siete arrivati fino alla fine del tutorial complimenti! La strada per connettere e dare più funzionalità ai web services è lunga ma ora avete la basi per poterne creare.</p>
<p><strong>Aggiornamento 1</strong></p>
<p>Se avete avuto occasione di creare da zero wsdl, avete visto la comoda possibilità di includere XML schema dentro in modo da separare la descrizione del servizio dai tipi usati nei messaggi.</p>
<p>In questo ambito ho scoperto che il plugin Service Archiver ha un bug, semplicemente non include l&#8217;XML schema usato dal file WSDL dentro l&#8217;archivio aar creato e dovete purtroppo farlo a mano, a meno che c&#8217;è qualcuno che vuole modificare il codice (dovrebbe essere semplice ma non ho voglia, considerate che c&#8217;è la libreria WSDL4J che puo&#8217; aiutarvi). Per modificarlo spacchettare il file aar (una volta rinominato in zip), aggiungete il file e rimpacchettate.</p>
<p>Alla prossima</p>
<p>P.S. Ho usato la java virtual machine 1.5.0_13</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kaosktrl.wordpress.com/81/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kaosktrl.wordpress.com/81/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/81/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/81/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/81/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=81&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2008/07/08/web-services-con-eclipse-34-tomcat-6016-e-axis2-14/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/kaosktrl-128.jpg" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
		<item>
		<title>GE, JUG and GWT</title>
		<link>http://kaosktrl.wordpress.com/2008/07/04/ge-jug-and-gwt/</link>
		<comments>http://kaosktrl.wordpress.com/2008/07/04/ge-jug-and-gwt/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 18:45:13 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
		
		<category><![CDATA[RIA]]></category>

		<category><![CDATA[Software Libero]]></category>

		<category><![CDATA[ajax]]></category>

		<category><![CDATA[eventi]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=79</guid>
		<description><![CDATA[Il 15 luglio, sempre sul versante ligure, verrà organizzato un incontro con tema Google Web Toolkit da parte del JUG di Genova.
Se siete in cerca di una tecnologia ajax e vi ritrovate da quelle parti, magari per fare una passeggiate sul litorale ligure, l&#8217;evento può fare per voi, l&#8217;incontro è di pomeriggio perciò per la [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Il <strong>15 luglio</strong>, sempre sul versante ligure, verrà organizzato un incontro con tema <strong>Google Web Toolkit</strong> da parte del<strong> JUG di Genova</strong>.</p>
<p>Se siete in cerca di una tecnologia ajax e vi ritrovate da quelle parti, magari per fare una passeggiate sul litorale ligure, l&#8217;evento può fare per voi, <strong>l&#8217;incontro è di pomeriggio</strong> perciò per la passeggiata prendetevela comoda.</p>
<p>La partecipazione è gratuita ma si richiede una registrazione on line:</p>
<p><a href="http://juggenova.net/" target="_blank">http://juggenova.net/</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kaosktrl.wordpress.com/79/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kaosktrl.wordpress.com/79/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/79/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/79/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/79/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=79&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2008/07/04/ge-jug-and-gwt/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/kaosktrl-128.jpg" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Ciclo di incontri a Finale Ligure</title>
		<link>http://kaosktrl.wordpress.com/2008/07/04/ciclo-di-incontri-a-finale-ligure/</link>
		<comments>http://kaosktrl.wordpress.com/2008/07/04/ciclo-di-incontri-a-finale-ligure/#comments</comments>
		<pubDate>Fri, 04 Jul 2008 18:27:26 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
		
		<category><![CDATA[Software Libero]]></category>

		<category><![CDATA[eventi]]></category>

		<category><![CDATA[linux]]></category>

		<category><![CDATA[finale ligure]]></category>

		<category><![CDATA[gimp]]></category>

		<category><![CDATA[lug]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=78</guid>
		<description><![CDATA[Se vi ritrovate dalle parti di Savona, dovete sapere che il LUG di Finale Ligure (borgo) sta organizzando un ciclo di incontri già iniziato il 23 giugno.
Il prossimo è il 7 luglio dove verrà spiegato Gimp e quelli dopo sono ancora più interessanti soprattutto per chi è alle prime armi.
Vi ricordo che la partecipazione è [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Se vi ritrovate dalle parti di Savona, dovete sapere che il <strong>LUG di Finale Ligure</strong> (borgo) sta organizzando un ciclo di incontri già iniziato il 23 giugno.</p>
<p>Il prossimo è il<strong> 7 luglio</strong> dove verrà spiegato <strong>Gimp</strong> e quelli dopo sono ancora più interessanti soprattutto per chi è alle prime armi.</p>
<p>Vi ricordo che la partecipazione è gratuita.</p>
<p>Riferimenti:</p>
<p><a href="http://www.govonis.org/index.php?option=com_content&amp;task=view&amp;id=57&amp;Itemid=2" target="_blank">Link al Lug di Finale Ligure</a></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kaosktrl.wordpress.com/78/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kaosktrl.wordpress.com/78/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/78/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/78/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/78/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=78&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2008/07/04/ciclo-di-incontri-a-finale-ligure/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/kaosktrl-128.jpg" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Web Services e interoperabilità</title>
		<link>http://kaosktrl.wordpress.com/2008/06/30/web-services-e-interoperabilita/</link>
		<comments>http://kaosktrl.wordpress.com/2008/06/30/web-services-e-interoperabilita/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 21:20:21 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
		
		<category><![CDATA[Software Libero]]></category>

		<category><![CDATA[internet]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[sviluppo]]></category>

		<category><![CDATA[basic profile]]></category>

		<category><![CDATA[interoperability]]></category>

		<category><![CDATA[web services]]></category>

		<category><![CDATA[WS-I]]></category>

		<category><![CDATA[wsdl]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=76</guid>
		<description><![CDATA[Lavorando con i web services sorge il problema dell&#8217;interoperabilità, magari qualcuno si chiede &#8220;ma come è possibile? I web services garantiscono l&#8217;interoperabilità grazie al fatto che espongono servizi sulla rete e poi ho li ho anche validati&#8230;&#8221;. Ebbene si questo è in parte vero in parte perchè spesse volte si riferiscono a xml schema e [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Lavorando con i <a href="https://secure.wikimedia.org/wikipedia/it/wiki/Web_Service" target="_blank">web services</a> sorge il problema dell&#8217;interoperabilità, magari qualcuno si chiede &#8220;ma come è possibile? I web services garantiscono l&#8217;interoperabilità grazie al fatto che espongono servizi sulla rete e poi ho li ho anche validati&#8230;&#8221;. Ebbene si questo è in parte vero in parte perchè spesse volte si riferiscono a <a href="https://secure.wikimedia.org/wikipedia/it/wiki/XML_Schema" target="_blank">xml schema</a> e quindi strumenti (come Eclipse) ne garantiscono la validità se questi schema vengono rispettati.</p>
<p>Ma ciò non basta. Non basta perchè il modo in cui sono scritti influenza il modo in cui le classi java o C# sono generate e ne sto qui a parlare proprio perchè in azienda abbiamo avuto questo problema. Un&#8217;altra azienda ha scritto dei file <a href="https://secure.wikimedia.org/wikipedia/it/wiki/Web_Services_Description_Language" target="_blank">wsdl</a> da cui ha generato classi java (tramite lo strumento di <a href="http://ws.apache.org/axis2/1_3/userguide-creatingclients.html" target="_blank">Axis2 wsdl2java</a>) e su cui poi ha lavorato per un progetto. Questo progetto dovrà poi essere realizzato in C# con piattaforma .NET.</p>
<p>Fatto sta che gli strumenti che generano le classi C# non riescono perchè non trovano valido il file wsdl utilizzato!!! Vi domanderete &#8220;come faccio a sapere quali sono gli accorgimenti che devo prendere?&#8221;</p>
<p>Attualmente la bibbia di riferimento è il <a href="https://secure.wikimedia.org/wikipedia/en/wiki/WS-I_Basic_Profile" target="_blank">Basic Profile</a>, una sorta di studio che ha portato a definire delle regole per ridurre i rischi derivanti dall&#8217;interoperabilità. Il BP è stato realizzato dal <a href="http://www.ws-i.org/about/leadership.aspx" target="_blank">Web Service Organisation WS-I</a> una specie di consorzio guidato da SAP, Fujitsu, Microsoft, HP, Sun, IBM, Intel, Oracle ecc</p>
<p>In questo BP si fa cenno a diverse tecnologie per usate per i web services SOAP, WSDL UDDI, XML schema, HTTP e HTTPS vi invito quindi a <a href="http://www.ws-i.org/deliverables/workinggroup.aspx?wg=basicprofile" target="_blank">dare uno sguardo</a>.</p>
<p>Al di là della sola lettura occorrono strumenti di verifica e che ho trovato grazie a questo <a href="http://www.javaworld.com/community/?q=node/828" target="_blank">articolo</a>. In pratica il WS-I ha rilasciato uno strumento chiamato <a href="http://www.ws-i.org/deliverables/workinggroup.aspx?wg=testingtools" target="_blank">Interoperability Testing Tools</a> (su un accenno a come si usa vedere <a href="http://samir.kherzi.free.fr/publications/How%20to%20check%20that%20a%20WSDL%20is%20WS-I%20BP.pdf" target="_blank">qui</a>) che è stato poi integrato in altri strumenti come <a href="http://www.soapui.org/" target="_blank">soapUI</a> un software in parte rilasciato open source con licenza GNU Library o <a href="http://it.wikipedia.org/wiki/GNU_Lesser_General_Public_License" target="_blank">Lesser General Public License</a> (LGPL) in parte, la versione Pro, in via commerciale. soapUI è stato realizzato come applicazione stand-alone ma anche come plugin per Eclipse, Netbeans, IntelliJ e Maven.</p>
<p>Esistono altri strumenti che troverete nell&#8217;articolo che vi ho indicato e che da oggi ho cominciato a valutare.</p>
<p>Benvenuti nel meraviglioso mondo dell&#8217;interoperabilità <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kaosktrl.wordpress.com/76/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kaosktrl.wordpress.com/76/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/76/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/76/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/76/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=76&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2008/06/30/web-services-e-interoperabilita/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/kaosktrl-128.jpg" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Ant e le espressioni regolari</title>
		<link>http://kaosktrl.wordpress.com/2008/06/27/ant-e-le-espressioni-regolari/</link>
		<comments>http://kaosktrl.wordpress.com/2008/06/27/ant-e-le-espressioni-regolari/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 19:01:08 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
		
		<category><![CDATA[Software Libero]]></category>

		<category><![CDATA[java]]></category>

		<category><![CDATA[portabilità]]></category>

		<category><![CDATA[sviluppo]]></category>

		<category><![CDATA[regular expression]]></category>

		<category><![CDATA[espressioni regolari]]></category>

		<category><![CDATA[ant]]></category>

		<category><![CDATA[sostituire stringa]]></category>

		<category><![CDATA[file xml]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=74</guid>
		<description><![CDATA[Mentre oggi ero intento a generare un po&#8217; di web services tramite axis2 il mio capo mi chiede di fare un lavoretto per conto di altre persone in azienda.
In pratica chiedono di modificare all&#8217;incirca 100.000 file di testo in formato XML, di 2kb, modificando il testo all&#8217;interno di un tag. La modifica è uguale per [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Mentre oggi ero intento a generare un po&#8217; di web services tramite axis2 il mio capo mi chiede di fare un lavoretto per conto di altre persone in azienda.</p>
<p>In pratica chiedono di modificare all&#8217;incirca 100.000 file di testo in formato XML, di 2kb, modificando il testo all&#8217;interno di un tag. La modifica è uguale per tutti: il testo da modificare in pratica contiene un path ad un file pdf e si  tratta aggiungere alla fine del path l&#8217;estensione &#8220;.pdf&#8221;.</p>
<p>Mi sono detto, siccome sto studiando Ant, perchè non farlo con questo ?</p>
<p>La cosa buona di Ant è che si puo&#8217; installare ovunque ci sia una java virtual machine, fino ad ora avevo usato i miei script bash ma il mio capo mi disse sarebbe bello poterli far girare su Windows cosi&#8217; ho preso a studiarmi Ant che non credo (fino ad ora) sia potente come la bash ma scopro di giorno in giorno le sue potenzialità. Qualcuno dirà che anche il perl e il python possono essere usati ma ho preferito questo.</p>
<p>In realtà Ant è una applicazione java e i suoi script sono file xml. I tag di questi file corrispondono a relative classi java permettendo quindi la loro estensione.</p>
<p>Ant può copiare e spostare file e directory, creare jar e war file per il deploy, calcolare l&#8217;md5 dei file, agire su variabili da usare come condizioni, collegarsi ad un CVS, creare test con Junit e tra le altre cose lavorare con le espressioni regolari.</p>
<p>Se vi serve una introduzione ad Ant, che vi collega al mio precedente <a href="http://kaosktrl.wordpress.com/2008/06/20/integrazione-continua-con-apache-continuum/" target="_blank">articolo sull&#8217;integrazione continua</a>, la redazione di Mokabyte ne scrisse una interessante:  <a href="http://www2.mokabyte.it/cms/article.run?articleId=U6E-KYB-TJQ-R9J_7f000001_30520983_cef94360" target="_blank">eccovela</a> !</p>
<p>Una volta installato (estratto) Ant ho configurato le variabili di ambiente <strong>ANT_HOME</strong> che punta alla cartella estratta e <strong>PATH</strong> che punta alla sottocartella bin.</p>
<p>Ho poi creato il file &#8220;<strong>build.xml</strong>&#8221; e l&#8217;ho messo insieme a file da modificare; il fatto di metterlo nella stessa cartella non è strettamente necessario perchè poi gli do la cartella di lavoro come parametro.</p>
<p>Ed eccovi il file:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project name="program" default="convert" basedir="."&gt;
&lt;property name="folder" value="." /&gt;
&lt;property name="backup_folder" value="backup" /&gt;
&lt;property name="file_extension" value="inf" /&gt;
&lt;property name="tag" value="PrintFileName" /&gt;
&lt;property name="extension" value="pdf" /&gt;

&lt;target name="backup" description="backup folder"&gt;
&lt;mkdir dir="${folder}/${backup_folder}" /&gt;
&lt;copy todir="${folder}/${backup_folder}" &gt;
&lt;fileset file="${folder}"/**.*${file_extension}" /&gt;
&lt;/copy&gt;
&lt;/target&gt;

&lt;target name="del_extension"&gt;
&lt;replaceregexp
  match="&lt;${tag}&gt;(.*).${extension}&lt;\/${tag}&gt;"
  replace="&lt;${tag}&gt;\1&lt;\/${tag}&gt;"&gt;
&lt;fileset dir="${folder}" includes="**/*.${file_extension}" /&gt;
&lt;/replaceregexp&gt;
&lt;/target&gt;

&lt;target name="add_extension"&gt;
&lt;replaceregexp
  match="&lt;${tag}&gt;[^(\.${extension})]&lt;\/${tag}&gt;"
  replace="&lt;${tag}&gt;\1.${extension}&lt;\/${tag}&gt;"&gt;
&lt;fileset dir="${folder}" includes="**/*.${file_extension}" /&gt;
&lt;/replaceregexp&gt;
&lt;/target&gt;

&lt;target name="convert" description="open files and add an extension to the text inside the selected tag"&gt;
&lt;antcall target="backup" /&gt;
&lt;antcall target="add_extension" /&gt;
&lt;/target&gt;

&lt;/project&gt;</pre>
<p>Intestazione XML a parte, nella seconda riga dichiaro che il target (funzione o metodo) da richiamare di default è <strong>convert</strong>. All&#8217;interno di questo target richiamo dapprima il target <strong>backup</strong> che realizza il backup della directory di lavoro e poi richiamo <strong>add_extension</strong> per modificare i file xml.</p>
<p>I parametri di default quali la cartella di lavoro (<strong>folder</strong>), la cartella di backup (<strong>backup_folder</strong>), l&#8217;estensione dei file che vado a modificare (<strong>file_extension</strong>), il tag xml che seleziono (<strong>tag</strong>) e l&#8217;estensione che aggiungo nel path (<strong>extension</strong>) sono definiti all&#8217;inizio del file e possono anche essere passati come parametro ad Ant.</p>
<p>Ad esempio se do:</p>
<pre>ant -Dfolder=./test</pre>
<p>Indico che la cartella dei file da modificare è la sottodirectory <strong>test</strong>, attenzione che se nel path ci sono degli spazi dovete usare le virgolette &#8221; &#8221; prima e dopo il path.</p>
<p>Il target backup crea quindi una cartella (<strong>mkdir</strong>) di backup dentro alla cartella di lavoro e copia in essa (<strong>copy</strong>) i file dalla cartella di lavoro con l&#8217;estensione che ho indicato (<strong>fileset</strong>). Se non volete fare il backup potete semplicemente rimuovere il suo richiamo nel target convert.</p>
<p>Andiamo alla parte delicata, come avete notato il target <strong>del_extension</strong> non viene richiamato, me lo sono lasciato per convienenza e vi permette di capire più facilmente il target <strong>add_extension</strong>.</p>
<p>Con il target del_extension si vuole selezionare tutti i path con il tag selezionato che già contengono la stringa &#8220;<strong>.pdf&#8221;</strong> e rimuoverla. Per fare ciò usiamo il task <strong>replaceregexp</strong> che ha 2 attributi: <strong>match</strong> e <strong>replace</strong>.</p>
<p>Con l&#8217;attributo match selezionamo il tag XML, di default <strong>PrintFileName</strong>, che contiene la stringa mentre con il tag replace sostituiamo la stringa trovata. I caratteri <strong>&lt;</strong> e <strong>&gt;</strong> mi servono per sostituire <strong>&lt;</strong> e <strong>&gt;</strong> in quanto non vengono accettati direttamente, poi vedete la variabile <strong>${tag}</strong> che viene aperta e chiusa (usando \/ in quanto il simbolo / è particolare) e all&#8217;interno l&#8217;espressione <strong>(.*)</strong> che indica tutti i caratteri con a seguire l&#8217;estensione <strong>.${extension}</strong>.</p>
<p>Quello che vogliamo fare è sostituire tutti i caratteri trovati nel mezzo togliendo l&#8217;estensione, il risultato della stringa trovata in match con i caratteri <strong>(.*)</strong> è indicata con <strong>\1</strong>.</p>
<p>Applico infine questa trasformazione all&#8217;insieme di file tramite il task <strong>fileset</strong>.</p>
<p>Il target add_extension dovrebbe funzionare al contrario se non che può capitare che alcuni path finiscano già per &#8220;<strong>.pdf</strong>&#8221; e quindi corriamo il rischio di aggiungerli nuovamente perciò nel mezzo è stato aggiunta l&#8217;espressione <strong>[^(\.${extension})]</strong> che indica di escludere tali path.</p>
<p>Semplice no ?</p>
<p>Ora non sono un esperto di espressioni regolari, me le sono giuste viste un pò, ma la cosa mi ha fatto apprezzare di più Ant.</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kaosktrl.wordpress.com/74/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kaosktrl.wordpress.com/74/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/74/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/74/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/74/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=74&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2008/06/27/ant-e-le-espressioni-regolari/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/kaosktrl-128.jpg" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Torrentflux: client torrent PHP</title>
		<link>http://kaosktrl.wordpress.com/2008/06/21/torrentflux-client-torrent-php/</link>
		<comments>http://kaosktrl.wordpress.com/2008/06/21/torrentflux-client-torrent-php/#comments</comments>
		<pubDate>Sat, 21 Jun 2008 10:06:37 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
		
		<category><![CDATA[Software Libero]]></category>

		<category><![CDATA[php]]></category>

		<category><![CDATA[torrent]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=71</guid>
		<description><![CDATA[Sono sempre alla ricerca di nuovi software liberi possibilmente multipiattaforma.
Di client torrent ce ne sono a bizzeffe ed io fino ad ora mi sono accontentato di usare Transmission sotto Ubuntu e Mac OS X e mi va bene cosi&#8217; in quanto è leggero e posso anche impostare upload a 0 (la mia connessione è a [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Sono sempre alla ricerca di nuovi software liberi possibilmente multipiattaforma.</p>
<p>Di client torrent ce ne sono a <a href="https://secure.wikimedia.org/wikipedia/en/wiki/BitTorrent_client" target="_blank">bizzeffe</a> ed io fino ad ora mi sono accontentato di usare Transmission sotto Ubuntu e Mac OS X e mi va bene cosi&#8217; in quanto è leggero e posso anche impostare upload a 0 (la mia connessione è a banda limitata sul totale in ingresso e uscita).</p>
<p>Oggi ha destato mio interesse<a href="http://www.torrentflux.com/" target="_blank"> Torrentflux</a>, un client web da poco giunto alla versione 2.4, scritto in PHP e rilasciato con licenza GPL. L&#8217;installazione su Xampp si rilevata semplice, ho estratto il file compresso (1.5 MB) nella cartella htdocs, creato il database <strong>torrentflux</strong> da PhpMyAdmin e caricato il file sql che si trova all&#8217;interno della cartella di Torrentflux.</p>
<p>All&#8217;avvio chiede username e password di amministratore e poi si presenta una interfaccia web, semplice e intuitiva, che vi chiede per prima cosa che la cartella di download sia settata con permessi 777.</p>
<p>La cosa interessante è che è basata su utenti che dispongono di una propria cartella, si può dire quindi che se messo su pc che fa da server può riverlarsi utile.</p>
<p>Potete poi fare ricerche su server torrent, caricare un torrent da url e da disco e monitorare lo stato dei download con una barra di progressione usata anche per mostrare lo spazio del disco rimanente (non si sa mai che state scaricando troppo e non vi accorgete che lo spazio sta per finire <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )</p>
<p>Per ulteriori dettagli vi rimando alla pagina del wiki di Ubuntu-it che è ben dettagliata:</p>
<p><a href="http://wiki.ubuntu-it.org/InternetRete/Condivisione/TorrentFlux" target="_blank">http://wiki.ubuntu-it.org/InternetRete/Condivisione/TorrentFlux</a></p>
<p>Buon download !</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kaosktrl.wordpress.com/71/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kaosktrl.wordpress.com/71/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/71/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/71/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/71/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=71&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2008/06/21/torrentflux-client-torrent-php/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/kaosktrl-128.jpg" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
		<item>
		<title>Integrazione continua con Apache Continuum</title>
		<link>http://kaosktrl.wordpress.com/2008/06/20/integrazione-continua-con-apache-continuum/</link>
		<comments>http://kaosktrl.wordpress.com/2008/06/20/integrazione-continua-con-apache-continuum/#comments</comments>
		<pubDate>Fri, 20 Jun 2008 18:20:05 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
		
		<category><![CDATA[Software Libero]]></category>

		<category><![CDATA[sviluppo]]></category>

		<category><![CDATA[continuous integration server]]></category>

		<category><![CDATA[Continuum]]></category>

		<category><![CDATA[integrazione continua]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=69</guid>
		<description><![CDATA[Attualmente sto dietro ad un progetto realizzato in java per creare una infrastruttura di web services che si scambiano messaggi e, nel campo del software libero, in azienda usiamo svariati software:

WSO2 esb come bus per connettere i web services fra di loro
Intalio per la generazione di workflow che viene trasformato in web services
Ant per la [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Attualmente sto dietro ad un progetto realizzato in java per creare una infrastruttura di web services che si scambiano messaggi e, nel campo del software libero, in azienda usiamo svariati software:</p>
<ul>
<li><a href="http://wso2.org/projects/esb/java" target="_blank">WSO2 esb</a> come bus per connettere i web services fra di loro</li>
<li><a href="http://www.intalio.com/" target="_blank">Intalio</a> per la generazione di workflow che viene trasformato in web services</li>
<li><a href="http://ant.apache.org/" target="_blank">Ant</a> per la generazione di script per automatizzare procedure di compilazione e deploy</li>
<li><a href="http://tomcat.apache.org/" target="_blank">Tomcat</a> &amp; <a href="http://ws.apache.org/axis2/" target="_blank">Axis2</a> per il deploy dei webservices e anche per la generazione automatica degli stessi a partire da file wsdl</li>
<li><a href="http://www.squid-cache.org/" target="_blank">Squid</a> come url rewriter</li>
<li><a href="http://www.eclipse.org/" target="_blank">Eclipse</a> per lo sviluppo</li>
<li><a href="http://subversion.tigris.org/" target="_blank">SubVersion</a> come CVS e <a href="http://subclipse.tigris.org/" target="_blank">Subclipse</a> come client installato su Eclipse</li>
<li><a href="http://www.openlaszlo.org/" target="_blank">Openlaszlo</a> per un paio di applicazioni che fanno da viewer</li>
<li><a href="http://ws.apache.org/commons/axiom/" target="_blank">Axiom</a>/Stax e <a href="http://xmlbeans.apache.org/" target="_blank">Xmlbeans</a> come librerie per il parsing di file XML e la generazione di file java da xml schema</li>
<li>ecc.</li>
</ul>
<p>L&#8217;ultimo di questi è <a href="http://continuum.apache.org/index.html" target="_blank">Apache Continuum </a>che, arrivato alla versione 1.1, è uno dei tanti prodotti della Apache Software Foundation rilasciato con licenza <a href="http://continuum.apache.org/license.html" target="_blank">Apache Licence 2.0</a></p>
<p>Continuum in sostanza lo usiamo per prendere i file immagazzinati del repository di SubVersion e fargli fare la compilazione dell&#8217;intero progetto alle 23.00 di ogni notte. La gestione di questa attività avviene tramite una semplice interfaccia web e inoltre il risultato della compilazione puo&#8217; essere mandato per email agli sviluppatori (nota noi non l&#8217;abbiamo fatto in quanto siamo in pochi pero&#8217; ovviamente è una cosa utile).</p>
<p>Via interfaccia web gli forniamo quindi il link del repository di SubVersion, il file ant che usa per la compilazione con i vari target e il tempo di schedulazione come in cron. La configurazione del server di posta va fatta editando il file apposito.</p>
<p>Continuum si puo&#8217; installare in 2 principali modi: come standalone application o come applicazione che necessita un application server come Tomcat ad esempio. Noi l&#8217;abbiamo installato come standalone  perchè è messo su un server (per mia sfortuna Windows 2003 Server) e non volevamo installare un application server e abbiamo seguito <a href="http://code.google.com/p/objectserver/wiki/Continuum" target="_blank">questa guida</a> (dove pero&#8217; non abbiamo patchato Ant).</p>
<p>Per avere idea di come funziona vi consiglio di vedere la <a href="http://vmbuild.apache.org/continuum/groupSummary.action" target="_blank">demo</a>, un <a href="http://blog.cokee.org/?p=747" target="_blank">articolo collegato</a> e un <a href="http://today.java.net/pub/a/today/2006/05/30/continuous-integration-with-continuum.html">vecchio articolo</a> che ho trovato in rete.</p>
<p>Alternativa a Continuum puo&#8217; essere Cruise Control ed altri pochi software che vedete <a href="https://secure.wikimedia.org/wikipedia/en/wiki/Category:Continuous_integration" target="_blank">qui</a>.</p>
<p>Nota: nell&#8217;interfaccia web Continuum chiede di mettere il path per la cartella di lavoro e destinazione, cercate di mettere un path corto perchè su Windows <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> si incazza.</p>
<p>Buona integrazione!</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kaosktrl.wordpress.com/69/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kaosktrl.wordpress.com/69/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/69/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/69/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/69/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=69&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2008/06/20/integrazione-continua-con-apache-continuum/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/kaosktrl-128.jpg" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
		<item>
		<title>ConfSL: Conferenza Italiana sul Software Libero</title>
		<link>http://kaosktrl.wordpress.com/2008/05/11/confsl-conferenza-italiana-sul-software-libero/</link>
		<comments>http://kaosktrl.wordpress.com/2008/05/11/confsl-conferenza-italiana-sul-software-libero/#comments</comments>
		<pubDate>Sun, 11 May 2008 07:09:38 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
		
		<category><![CDATA[Software Libero]]></category>

		<category><![CDATA[eventi]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=68</guid>
		<description><![CDATA[Pronti per la prossima conferenza di ben 3 giorni sul Software Libero ?
Se la risposta è si sappiate che l&#8217;Univesità di Trento, precisamente la Facoltà di Economia, ospiterà la conferenza che avrà luogo dal 16 al 18 Maggio (per come arrivare vedete qui).
Sponsorizzata anche da SUN e IBM, la conferenza vedrà diversi partecipanti attivi nel [...]]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>Pronti per la prossima conferenza di ben <strong>3 giorni</strong> sul Software Libero ?</p>
<p>Se la risposta è si sappiate che l&#8217;Univesità di Trento, precisamente la Facoltà di Economia, ospiterà la conferenza che avrà luogo dal 16 al 18 Maggio (per come arrivare vedete <a href="http://www.confsl.org/index.php?option=com_content&amp;task=view&amp;id=36&amp;Itemid=63" target="_blank">qui</a>).</p>
<p>Sponsorizzata anche da SUN e IBM, la conferenza vedrà diversi partecipanti attivi nel panorama del software libero come la <a href="http://www.softwarelibero.it/node" target="_blank">Assoli</a>, i comuni di Trento e Bolzano, il <a href="http://centros.fbk.eu/" target="_blank">Centros</a>, <a href="http://www.wikimedia.it/index.php/Pagina_principale" target="_blank">Wikimedia Italia</a>, Cristian Biasco autore del <a href="http://www.biasco.ch/videoblog/index.html" target="_blank">video blog</a> sulla proprietà intellettuale ed anche l&#8217;IDABC, che è la sezione della Commissione Europea coinvolta nella realizzazione di un <a href="http://ec.europa.eu/idabc/en/chapter/452" target="_blank">Osservatorio Open Source</a>.</p>
<p>Le tematiche quindi spazieranno dalla proprietà intellettuale del cittadino all&#8217;interesse delle scuole e del comuni fino al Commissione Europea passando per il <a href="http://it.wikipedia.org/wiki/Trashware" target="_blank">trashware</a>.</p>
<p>Partecipate numerosi e siate attivi! Mi raccomando pero&#8217; <a href="http://www.confsl.org/index.php?option=com_content&amp;task=view&amp;id=18&amp;Itemid=62" target="_blank">registratevi</a> prima !</p>
<img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/kaosktrl.wordpress.com/68/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/kaosktrl.wordpress.com/68/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/68/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/68/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/68/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=68&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2008/05/11/confsl-conferenza-italiana-sul-software-libero/feed/</wfw:commentRss>
	
		<media:content url="http://a.wordpress.com/avatar/kaosktrl-128.jpg" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
	</channel>
</rss>