<?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:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Software Libero e non solo &#187; integrazione continua</title>
	<atom:link href="http://kaosktrl.wordpress.com/tag/integrazione-continua/feed/" rel="self" type="application/rss+xml" />
	<link>http://kaosktrl.wordpress.com</link>
	<description>Just another WordPress.com weblog</description>
	<lastBuildDate>Tue, 08 Dec 2009 09:17:31 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<language>it</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<cloud domain='kaosktrl.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/e7bfd236201816f675e84cd6dd211349?s=96&#038;d=http://s.wordpress.com/i/buttonw-com.png</url>
		<title>Software Libero e non solo &#187; integrazione continua</title>
		<link>http://kaosktrl.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://kaosktrl.wordpress.com/osd.xml" title="Software Libero e non solo" />
		<item>
		<title>Note su Hudson e CruiseControl</title>
		<link>http://kaosktrl.wordpress.com/2009/03/23/note-su-hudson-e-cruisecontrol/</link>
		<comments>http://kaosktrl.wordpress.com/2009/03/23/note-su-hudson-e-cruisecontrol/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 17:17:25 +0000</pubDate>
		<dc:creator>kaosktrl</dc:creator>
				<category><![CDATA[Software Libero]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[integrazione continua]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[hudson]]></category>
		<category><![CDATA[CruiseControl]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[continuous integration]]></category>
		<category><![CDATA[c++]]></category>
		<category><![CDATA[gforge]]></category>
		<category><![CDATA[trac]]></category>

		<guid isPermaLink="false">http://kaosktrl.wordpress.com/?p=229</guid>
		<description><![CDATA[In uno dei recenti progetti sto valutando con un mio collega la possibilità di fornire come servizio l&#8217;uso di uno strumento di Continuous Integration.
Attualmente stiamo hostando diversi progetti Java (30), PHP (10), Python (6) e Javascript(6), C++ (4) più altri minimi progetti; di conseguenza ho cominciato a valutare strumenti Java tra cui Hudson, CruiseControl e [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=229&subd=kaosktrl&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<div class='snap_preview'><br /><p>In uno dei recenti progetti sto valutando con un mio collega la possibilità di fornire come servizio l&#8217;uso di uno strumento di <a href="http://en.wikipedia.org/wiki/Continuous_integration" target="_blank">Continuous Integration</a>.</p>
<p>Attualmente stiamo hostando diversi progetti Java (30), PHP (10), Python (6) e Javascript(6), C++ (4) più altri minimi progetti; di conseguenza ho cominciato a valutare strumenti Java tra cui Hudson, CruiseControl e Apache Continuum per poi vedere quale è il più indicato per progetti in PHP e Python.</p>
<p>Nota: Avevo già provato<a href="http://continuum.apache.org/" target="_blank"> Apache Continuum</a> ma non mi aveva dato una grande impressione.</p>
<p>Guardando sul sito <a href="http://javapowertools.wikidot.com/continuous-integration" target="_blank">JavaPowerTools</a> , <a href="http://www.wakaleo.com/resources/polls" target="_blank">Wakkaleo</a>, <a href="http://soa.sys-con.com/general/readerschoice.htm" target="_blank">SOA World Magazin</a>e, <a href="http://www.eclipse.org/org/press-release/20090527_survey09.php" target="_blank">Eclipse Community Survey 2009</a> e partecipando al <a href="http://devoxx.com/display/JV08/Whiteboards" target="_blank">Devoxx</a> si nota come <a href="https://hudson.dev.java.net/" target="_blank"><strong>Hudson</strong></a> e <a href="http://cruisecontrol.sourceforge.net/" target="_blank"><strong>CruiseControl</strong></a> sono i preferiti.</p>
<p>Se diamo uno sguardo a strumenti di continuous integration per PHP ritroviamo in pratica <a href="http://code.google.com/p/xinc/" target="_blank"><strong>Xinc</strong></a> e <a href="http://phpundercontrol.org/about.html" target="_blank"><strong>PHPUnderControl</strong></a>, quest&#8217;ultimo si basa su CruiseControl e include strumenti come PHPUnit, PhpDocumentor e PHP_CodeSniffer.</p>
<p>Se quindi consideriamo CruiseControl + PHPUnderControl si copre una grossa percentuale di progetti. CruiseControl e Hudson hanno comunque il supporto a <a href="http://phing.info/trac/" target="_blank">Phing</a> per progetti in PHP ma PHPUnderControl è alettante.</p>
<p>Vediamo quali strumenti esistono per Python:</p>
<table style="height:463px;" border="1" cellspacing="0" cellpadding="4" width="433">
<col width="124"></col>
<col width="132"></col>
<tbody>
<tr valign="top">
<td width="48%">
<p align="center"><strong>Development in Python</strong></p>
</td>
<td width="52%">
<p align="center"><strong>Link</strong></p>
</td>
</tr>
<tr valign="top">
<td width="48%">Buildbot, a python continuous integration tool</td>
<td width="52%"><a href="http://buildbot.net/trac">http://buildbot.net/trac</a></td>
</tr>
<tr valign="top">
<td width="48%">It explains how to integrate Hudson and Python (but an 				internal link explains the same thing with CruiseControl with 				PyUnit). For Hudson there is a plugin that uses Pylint</td>
<td width="52%"><a href="http://redsolo.blogspot.com/2007/11/hudson-embraces-python.html">http://redsolo.blogspot.com/2007/11/hudson-embraces-python.html</a></td>
</tr>
<tr valign="top">
<td width="48%">Python Ant task (Pydoc generation)</td>
<td width="52%"><a href="http://www.rpstechnologies.net/PyAntTasks.html">http://www.rpstechnologies.net/PyAntTasks.html</a><a href="http://www.ibm.com/developerworks/opensource/library/os-ecant/"></a></p>
<p><a href="http://www.ibm.com/developerworks/opensource/library/os-ecant/">http://www.ibm.com/developerworks/opensource/l</a><a href="http://www.ibm.com/developerworks/opensource/library/os-ecant/">ibrary/os-ecant/</a></td>
</tr>
<tr valign="top">
<td width="48%">Python Doxygen integration</td>
<td width="52%"><a href="http://internetducttape.com/2007/03/20/automatic_documentation_python_doxygen/">http://internetducttape.com/2007/03/20/automatic_documentation_python_doxygen/</a></td>
</tr>
<tr valign="top">
<td width="48%">Pylint (errors in python code – command line)</td>
<td width="52%"><a href="http://www.logilab.org/857">http://www.logilab.org/857</a></p>
<p>It claims to be more advanced of PyChecker, also Netbeans Python Early Access seems to use it, see:</p>
<p><a href="http://www.netbeans.org/kb/docs/python/temperature-converter.html#08" target="_blank">http://www.netbeans.org/kb/docs/python/temperature-converter.html#08</a></p>
<p>Also PyDev (Eclipse plugin) has a support for PyLint, see</p>
<p><a href="http://pydev.sourceforge.net/pylint.html" target="_blank">http://pydev.sourceforge.net/pylint.html</a></p>
<p>Eric Python IDE has a plugin for Pylint, see:</p>
<p><a href="http://eric-ide.python-projects.org/index.html" target="_blank">http://eric-ide.python-projects.org/index.html</a></td>
</tr>
<tr valign="top">
<td width="48%">PyChecker (error in python code – command line)</td>
<td width="52%"><a href="http://pychecker.sourceforge.net/">http://pychecker.sourceforge.net/</a></p>
<p>Used by Stani Python Editor, see:</p>
<p><a href="http://pythonide.blogspot.com/" target="_blank">http://pythonide.blogspot.com/</a></td>
</tr>
<tr valign="top">
<td width="48%">PyFlakes (error in python code – command line)</td>
<td width="52%"><a href="http://divmod.org/trac/wiki/DivmodPyflakes">http://divmod.org/trac/wiki/DivmodPyflakes</a></td>
</tr>
<tr valign="top">
<td width="48%">Figleaf (code coverage – command line)</td>
<td width="52%"><a href="http://darcs.idyll.org/~t/projects/figleaf/doc">http://darcs.idyll.org/~t/projects/figleaf/doc</a></td>
</tr>
<tr valign="top">
<td width="48%">General notes</td>
<td width="52%"><a href="http://www.doughellmann.com/articles/CompletelyDifferent-2008-03-linters/index.html">http://www.doughellmann.com/articles/CompletelyDifferent-2008-03-linters/index.html</a></td>
</tr>
</tbody>
</table>
<p>Sfortunatamente vediamo che esiste in pratica solo Buildbot che non puo&#8217; essere integrato con CruiseControl o Hudson ma esiste un plugin, più per Hudson che per CruiseControl, che aiuta ad integrare Python con gli altri tools.</p>
<p>Dall&#8217;altro lato abbiamo un Python Ant Task e qualche strumento a linea di comando che possono essere usati con Ant e quindi una facile integrazione con CruiseControl e Hudson.</p>
<p>Riguardo Javascript al momento l&#8217;unico Javascript unit test che sembra integrabile con Ant per eseguire unit test è <strong><a href="http://jsunit.berlios.de/ant.html" target="_blank">JsUnit</a></strong>.</p>
<p>Riguardo a C++ notiamo che in Hudson ci sono 2 plugin (<a href="http://wiki.hudson-ci.org/display/HUDSON/CCCC+Plugin" target="_blank">CCCC</a> e <a href="http://wiki.hudson-ci.org/display/HUDSON/CppUnit+Plugin" target="_blank">CppUnit</a>) mentre su CruiseControl sembra che non ci sia niente (solo questo <a href="http://confluence.public.thoughtworks.org/display/CC/UsingCruiseControlWithCplusPlus" target="_blank">link</a>). Tuttavia ho trovato un <a href="http://ant-contrib.sourceforge.net/cpptasks/antdocs/CompilerDef.html" target="_blank">Ant task per C++</a> che permette di scegliere tra diversi compilatori.</p>
<p>Per quanto riguarda i generatori di documentazione ritroviamo:</p>
<table style="height:122px;" border="1" cellspacing="0" cellpadding="4" width="441">
<col width="97"></col>
<col width="159"></col>
<tbody>
<tr valign="top">
<td width="38%">
<p style="text-align:center;"><strong>Document generator</strong></p>
</td>
<td width="62%">
<p align="center"><strong>Link</strong></p>
</td>
</tr>
<tr valign="top">
<td width="38%">
<p align="center">Javadoc</p>
</td>
<td width="62%">
<p align="center"><a href="http://java.sun.com/j2se/javadoc/">http://java.sun.com/j2se/javadoc/</a></p>
</td>
</tr>
<tr valign="top">
<td width="38%">
<p align="center">Doxygen</p>
</td>
<td width="62%">
<p align="center"><a href="http://www.stack.nl/~dimitri/doxygen/">http://www.stack.nl/~dimitri/doxygen/</a></p>
</td>
</tr>
<tr valign="top">
<td width="38%">
<p align="center">PhpDocumentor</p>
</td>
<td width="62%">
<p align="center"><a href="http://www.phpdoc.org/">http://www.phpdoc.org/</a></p>
</td>
</tr>
<tr valign="top">
<td width="38%">
<p align="center">Pydoc</p>
</td>
<td width="62%">
<p align="center"><a href="http://docs.python.org/library/pydoc">http://docs.python.org/library/pydo</a></p>
</td>
</tr>
<tr valign="top">
<td width="38%">
<p align="center">JsDoc Toolkit</p>
</td>
<td width="62%">
<p align="center"><a href="http://code.google.com/p/jsdoc-toolkit-ant-task/">http://code.google.com/p/jsdoc-toolkit-ant-task</a></p>
</td>
</tr>
</tbody>
</table>
<p>Per C++ di solito viene usato Doxygen. Per Javascript potete notare JsDoc Toolkit per cui esiste il rispettivo Ant task.</p>
<p>Sarebbe bene anche includere software che fanno analisi statica del codice per fare debug del codice tra questi ritroviamo dal sito <a href="http://javapowertools.wikidot.com/code-quality" target="_blank">JavaPowerTools</a>:</p>
<table style="height:98px;" border="1" cellspacing="0" cellpadding="4" width="352">
<col width="128"></col>
<col width="128"></col>
<tbody>
<tr valign="top">
<td width="50%">
<p align="center"><strong>Java Analyzer Code Style</strong></p>
</td>
<td width="50%">
<p align="center"><strong>Vote &#8211; Number of votes</strong></p>
</td>
</tr>
<tr valign="top">
<td width="50%">
<p align="center">Checkstyle</p>
</td>
<td width="50%">
<p align="center">3,37/5  &#8211;    90</p>
</td>
</tr>
<tr valign="top">
<td width="50%">
<p align="center">PMD</p>
</td>
<td width="50%">
<p align="center">3,63/5   &#8211;   84</p>
</td>
</tr>
<tr valign="top">
<td width="50%">
<p align="center">Findbugs</p>
</td>
<td width="50%">
<p align="center">3,69/5  &#8211;  83</p>
</td>
</tr>
</tbody>
</table>
<p>Dobbiamo dire che Doxygen e questi strumenti (più Cobertura) sono integrati come plugin su Hudson tuttavia essi sono disponibili come Ant task e quindi integrabili con CruiseControl:</p>
<table style="height:146px;" border="1" cellspacing="0" cellpadding="4" width="447">
<col width="53"></col>
<col width="203"></col>
<tbody>
<tr valign="top">
<td width="21%">
<p align="center"><strong>Plugins</strong></p>
</td>
<td width="79%">
<p align="center"><strong>Link</strong></p>
</td>
</tr>
<tr valign="top">
<td width="21%">
<p align="center">Checkstyle</p>
</td>
<td width="79%">
<p align="center"><a href="http://checkstyle.sourceforge.net/anttask.html">http://checkstyle.sourceforge.net/anttask.html</a></p>
</td>
</tr>
<tr valign="top">
<td width="21%">
<p align="center">Findbugs</p>
</td>
<td width="79%">
<p align="center"><a href="http://findbugs.sourceforge.net/manual/anttask.html">http://findbugs.sourceforge.net/manual/anttask.html</a></p>
</td>
</tr>
<tr valign="top">
<td width="21%">
<p align="center">Cobertura</p>
</td>
<td width="79%">
<p align="center"><a href="http://cobertura.sourceforge.net/anttaskreference.html">http://cobertura.sourceforge.net/anttaskreference.html</a></p>
</td>
</tr>
<tr valign="top">
<td width="21%">
<p align="center">PMD</p>
</td>
<td width="79%">
<p align="center"><a href="http://pmd.sourceforge.net/ant-task.html">http://pmd.sourceforge.net/ant-task.html</a></p>
</td>
</tr>
<tr valign="top">
<td width="21%">
<p align="center">Doxygen</p>
</td>
<td width="79%">
<p align="center"><a href="http://ant-doxygen.blogspot.com/">http://ant-doxygen.blogspot.com/</a></p>
</td>
</tr>
</tbody>
</table>
<p>Per C++ ho notato che esiste <a href="http://cppcheck.wiki.sourceforge.net/" target="_blank">Cppcheck</a> to do static code analysis. <a href="http://apps.sourceforge.net/phpbb/winmerge/viewtopic.php?f=6&amp;t=7" target="_blank">Qui</a> ho trovato come usarlo, in pratica è un eseguibile (esiste exe e deb)  che si puo&#8217; facilmente integrare.</p>
<p>Per Javascript ho notato che esiste <a href="http://en.wikipedia.org/wiki/Yasca" target="_blank">Yasca</a> strumento a linea di comando che si integra con diversi strumenti visti prima (tra questi Javascript Lint e CppCheck) e genera diversi report.</p>
<p>Ultime note:</p>
<ul>
<li>abbiamo notato che Gforge AS (quindi non la nostra versione community), ha un <a href="http://gforgegroup.com/es/#Cruisecontrol" target="_blank">plugin per CruiseControl.</a></li>
<li>Gforge ha poi un sistema di gestione delle richieste di supporto (ticket) non tanto carino e sarebbe possible rimpiazzarlo con Trac che ha tra i suoi plugin proprio il <a href="http://trac.edgewall.org/wiki/PluginList" target="_blank">supporto per CruiseControl e Hudson</a>.</li>
<li>Abbiamo notato che <a href="http://jboss-qa.blogspot.com/2007/10/taking-continuous-integration-to.html" target="_blank">Jboss</a> e <a href="http://www.slideshare.net/linkedin/linkedins-communication-architecture" target="_blank">Linkedin</a> fanno uso di Hudson (stiamo parlando di soli progetti Java).</li>
<li>Quelli di Apache usano sia <a href="http://hudson.zones.apache.org/hudson/" target="_blank">Hudson</a> che <a href="http://vmbuild.apache.org/continuum/groupSummary.action" target="_blank">Continuum</a> <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </li>
<li><a href="http://blogs.nuxeo.com/sections/blogs/fermigier" target="_blank">Stefane Fermigier</a>, CEO di Nuxeo, <a href="http://www.redmonk.com/jgovernor/2008/11/26/what-should-sun-do/#comment-503251" target="_blank">afferma di usare Hudson</a> e Glassfish come application server.</li>
<li>Installando Hudson per prova si vede subito la possibilità di usarlo su più nodi per scalabilità o semplicemente perchè alcuni progetti richiedono sistemi operativi diversi mentre sembra per CruiseControl non esiste una perfetta integrazione. Entrambi comunque propongono JNLP come connessione.</li>
<li>Occorre considerare l&#8217;integrazione con LDAP. Per Hudson un post interessante è <a href="http://crashingdaily.wordpress.com/2008/11/16/hudson-ldap-group-authorization/" target="_blank">qui</a>.</li>
<li>Trovata una <a href="http://confluence.public.thoughtworks.org/display/CC/CI+Feature+Matrix" target="_blank">tabella comparativa</a>.</li>
<li>Trovato un <a href="http://appl.fontysvenlo.org/results/2008/GF/index.html" target="_blank">documento comparativo</a> pubblicato il 2 gennaio 2009</li>
</ul>
<p>Ora credo ci sia da scegliere anche perchè ho notato in rete che la gente lamenta il fatto che CruiseControl vada opportunatamente configurato tramite file XML mentre Hudson tramire interfaccia grafica e gli sviluppatori migrano nel tempo a Hudson.</p>
<p><span> </span></p>
<div id="leoHighlights_iframe_modal_div_container" style="border:1px solid black;position:absolute;visibility:hidden;display:none;width:394px;height:40px;z-index:32768;background-color:white;">
<div id="leo_iFrame_closebar" style="position:absolute;top:0;left:0;width:394px;height:40px;z-index:32768;background-image:url('//shim/content/highlightsFilter-1/header.gif');"><a href="leoHighlightsIFrameClose();"></a></div>
</div>
<p><span></p>
<div id="leoHighlights_iframe_modal_div_container" style="border:1px solid black;position:absolute;visibility:hidden;display:none;width:394px;height:40px;z-index:32768;background-color:white;">
<div id="leo_iFrame_closebar" style="position:absolute;top:0;left:0;width:394px;height:40px;z-index:32768;background-image:url('//shim/content/highlightsFilter-1/header.gif');"><a href="leoHighlightsIFrameClose();"></p>
<div id="leo_iFrame_close" style="position:absolute;top:10px;left:360px;width:20px;height:20px;"></div>
<p></a></div>
</div>
<p>// </span></p>
  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/kaosktrl.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/kaosktrl.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/kaosktrl.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/kaosktrl.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/kaosktrl.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/kaosktrl.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/kaosktrl.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/kaosktrl.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/kaosktrl.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/kaosktrl.wordpress.com/229/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=229&subd=kaosktrl&ref=&feed=1" /></div>]]></content:encoded>
			<wfw:commentRss>http://kaosktrl.wordpress.com/2009/03/23/note-su-hudson-e-cruisecontrol/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/198117fcd7a30f63eba2e694b88a0b1d?s=96&#38;d=identicon&#38;r=G" 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 [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=kaosktrl.wordpress.com&blog=1930934&post=69&subd=kaosktrl&ref=&feed=1" />]]></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>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/198117fcd7a30f63eba2e694b88a0b1d?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">kaosktrl</media:title>
		</media:content>
	</item>
	</channel>
</rss>