<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>The Blog</title>
	
	<link>http://support.codehaus.org</link>
	<description>... behind the curtain ...</description>
	<lastBuildDate>Mon, 11 Jan 2010 05:36:40 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/CodehausSupport" /><feedburner:info uri="codehaussupport" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>The spam… oh the spam…</title>
		<link>http://feedproxy.google.com/~r/CodehausSupport/~3/2_UmRomchsU/</link>
		<comments>http://support.codehaus.org/2010/01/11/the-spam-oh-the-spam/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 05:14:31 +0000</pubDate>
		<dc:creator>Ben Walding</dc:creator>
				<category><![CDATA[Infrastructure]]></category>

		<guid isPermaLink="false">http://support.codehaus.org/?p=56</guid>
		<description><![CDATA[Overview
Running a site like Codehaus presents many challenges; some are solved easily; some are not.
One of the recurring themes is the necessity of dealing with spam.  Since I doubt that any of the moronic spammers that hit our site read our tech articles, this article shouldn&#8217;t open us up to additional risk.
Spam hits almost every [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Overview</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Running a site like Codehaus presents many challenges; some are solved easily; some are not.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">One of the recurring themes is the necessity of dealing with spam.  Since I doubt that any of the moronic spammers that hit our site read our tech articles, this article shouldn&#8217;t open us up to additional risk.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Spam hits almost every one of our services</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">* email &#8211; 100k spam per day</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">* web &#8211; referrer spam</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">* confluence &#8211; profile spam; comment spam</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Today we&#8217;ll look at Confluence spam and how we deal with it; and how YOU as a Confluence user can help ensure that the site remains spam free.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Defence 1: User name</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Our first line of defence is a trigger on the USERS table in the PostgreSQL database.  This trigger prevents the most obvious of spam accounts from even registering.  It does cause an ungainly error 500 in the front-end &#8211; but most spam bots won&#8217;t be put off by that.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">{code}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">{code}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Defence 2: Profile check</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Watch out for things like cialis matching &#8220;specialist&#8221; &#8211; if the user has authored content, then it doesn&#8217;t really matter though (as they won&#8217;t be removed in the script below)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">This will take a while as it scans all the profile content</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">{code}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">SELECT DISTINCT C.username</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">FROM CONTENT C, BODYCONTENT BC</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">WHERE content_status = &#8216;current&#8217;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">AND contenttype = &#8216;USERINFO&#8217;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">AND C.username NOT IN (&#8216;good-user&#8217;)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">AND bc.contentid = c.contentid</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">AND LENGTH(bc.body) &gt; 100</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">AND (</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">body LIKE &#8216;%porn%&#8217; OR</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">body LIKE &#8216;%cialis%&#8217; OR</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">body LIKE &#8216;%incest%&#8217; OR</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">body LIKE &#8216;%viagra%&#8217;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">);</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">{code}</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">The result is a list of users who may / may not be spammers (but on the balance of probabilities they are)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">doctormexico</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">parishiltonsuck</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">from-paris-hilton-bff-naked</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">paris-hilton-sextape-clips</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">paris-hilton-video</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">wild-things-clip-denise-richards</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Dealing with the users</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">We then use an automated script with all the user IDs that have been gathered in our previous layers and</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">do a basic user removal.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">This works well because only users that have not authored content will have their accounts removed.  This is generally not</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">especially bad for users who have accidentally matched the ruleset, but are useful users who have authored content.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Defence 5: Whitelist group</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Within Confluence we have a group CAPTCHA-FREE &#8211; they are not subjected to a captcha when adding comments. All users registered by Xircles are added to this group; and there is an interface inside Xircles to add extra users.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">and a group codehaus-whitelist; users in the codehaus-whitelist are not affected by various anti-spam activities. This is required for the odd occasion where a user matches a rule; but is not a spammer. We can quickly add these users to the whitelist so that our process remains clean and thoughtfree.</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">Defence X: Atlassian</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">SELECT C.contentid, C.username, length(BC.body), body</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">FROM CONTENT C, BODYCONTENT BC</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">WHERE content_status = &#8216;current&#8217; AND</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">contenttype = &#8216;USERINFO&#8217;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">and c.username in (&#8216;yecarrillo&#8217;)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">AND bc.contentid = c.contentid</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">AND (</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">body LIKE &#8216;%porn%&#8217; OR</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">body LIKE &#8216;%viagra%&#8217; OR</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">body LIKE &#8216;%incest%&#8217;</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">)</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">limit 1</div>
<div id="_mcePaste" style="position: absolute; left: -10000px; top: 0px; width: 1px; height: 1px; overflow-x: hidden; overflow-y: hidden;">;</div>
<p>Running a site like Codehaus presents many challenges; some are solved easily; some are not.</p>
<p>One of the recurring themes is the necessity of dealing with spam.  Since I doubt that any of the moronic spammers that hit our site read our tech articles, this article shouldn&#8217;t open us up to additional risk.</p>
<p>Spam hits almost every one of our services</p>
<p>* email &#8211; 100k spam per day &#8211; we block with a variety of techniques</p>
<p>* web &#8211; referrer spam &#8211; we ignore / block prolific spiders</p>
<p>* confluence &#8211; profile spam; comment spam</p>
<p>In this post we&#8217;ll look at Confluence spam and how we deal with it; and how YOU as a Confluence user can help ensure that the site remains spam free.</p>
<p>Like most internet systems we use defence in depth against spam.</p>
<p>The techniques shown below can be applied to almost any 3rd party (or inhouse application) without modification to the core product.</p>
<h1>Defence 1: IP addresses</h1>
<p>As per the Atlassian guidelines for JIRA &#8211; <a href="http://svn.atlassian.com/svn/public/contrib/jira/spamfighting/spammers/blockspammers.rc" target="_blank">http://svn.atlassian.com/svn/public/contrib/jira/spamfighting/spammers/blockspammers.rc</a> &#8211; we reprocess the block file using a basic Ruby script to convert the IP tables blocklist into an HTTPD blocklist.</p>
<p>The spammers.conf is then &#8220;included&#8221; in any of our sites that needs to be protected from spam &#8211; which is most of them.</p>
<p>See <a title="update-blocklist" href="http://support.codehaus.org/wp-content/uploads/2010/01/update-blocklist.rb" target="_blank">update-blocklist</a></p>
<p>We also have a second list of spammers that have harassed our sites. We also include comments as to when and why a block is added, in case we unintentionally block legitimate users when we block Class A/B/C networks.</p>
<pre>order allow,deny
deny from 91.212.226.0/24 #spammed ActiveIO 20070105
deny from 89.120.0.0/16
...
allow from all</pre>
<h1>Defence 2: Prevent spam user names</h1>
<p>Since prevention is far better than a cure, we then prevent zombie machines from creating users with typical spam names. This is a never ending battle of course &#8211; but since we are not a high priority target (we hope) &#8211; we can get away with pretty simple defences.</p>
<p>Since Confluence does not support a blacklist for names, we use an insert trigger on the &#8220;USERS&#8221; table in the <a href="http://postgresql.org/" target="_blank">PostgreSQL</a> database.  This trigger prevents the most obvious of spam accounts from even registering.  It does cause an ungainly error 500 in the web interface &#8211; but most spam bots won&#8217;t be put off by that.</p>
<p><a href="http://support.codehaus.org/wp-content/uploads/2009/09/user_insert_trigger.txt">user_insert_trigger</a></p>
<p>The above trigger has been pruned to keep it brief &#8211; we have more rules in our live triggers.</p>
<h1>Defence 3: Destroy spam user names</h1>
<p>As with all things; a static defence is usually defeated over time. We supplement our user name trigger with a script to lookup usernames that match a variety of more vague rules.</p>
<p>The use of broader rules in this phase is intentional &#8211; removing accounts is less problematic than blocking users who may trigger a spam rule by accident.</p>
<p>e.g. we need to watch out for things like &#8220;cialis&#8221; matching &#8220;specialist&#8221; &#8211; if the user has authored content, then it doesn&#8217;t really matter though (as they won&#8217;t be removed in the script below)</p>
<p>This will take a while as it scans all the profile content</p>
<pre>SELECT DISTINCT C.username
  FROM CONTENT C, BODYCONTENT BC
 WHERE C.content_status = 'current'
   AND C.contenttype = 'USERINFO'
   AND C.username NOT IN ('good-user') -- the whitelist
   AND BC.contentid = C.contentid
   AND LENGTH(BC.body) &gt; 100
   AND (
     BC.body LIKE '%porn%' OR
     BC.body LIKE '%cialis%' OR
     BC.body LIKE '%incest%' OR
     BC.body LIKE '%viagra%'
    );</pre>
<p>The result is a list of users who may / may not be spammers (but on the balance of probabilities they are):</p>
<ul>
<li>doctormexico</li>
<li>parishiltonsuck</li>
<li>from-paris-hilton-bff-naked</li>
<li>paris-hilton-video</li>
<li>wild-things-clip-denise-richards</li>
</ul>
<h1>Defence 4: Dealing with the junk users</h1>
<p>We then use an automated script with all the user IDs that have been gathered in our previous layers and do a top level user removal.</p>
<p>This works well because only users that have not authored content will have their accounts removed.  This can inconvenience the occasional user with an odd name that hasn&#8217;t authored content, but on the balance of probabilities it achieves the end-goal.</p>
<p>The script can be found at <a title="remove-users" href="https://svn.rubyhaus.org/confluence4r/trunk/examples/remove-users" target="_blank">https://svn.rubyhaus.org/confluence4r/trunk/examples/remove-users</a>.</p>
<p>The script is coded in Ruby (because that&#8217;s how we roll); and uses our opensource confluence4r library for interfacing with Confluence.</p>
<p>Simply feed it a set of parameters like:</p>
<pre>./examples/remove-users http://confluence.example.com admin password spammerlist.txt</pre>
<p>The script will connect to Confluence, authenticate, and then attempt to remove all the listed users.</p>
<p>It would be trivial to write an XML-RPC client that does the same thing in fewer lines of code; but the script shown above is similar to a lot of other internal management scripts.</p>
<h1>Defence 5: Whitelist group</h1>
<p>Within Confluence we have a group CAPTCHA-FREE &#8211; they are not subjected to a CAPTCHA when adding comments. All users registered by Xircles are added to this group; and there is an interface inside Xircles to add extra users.</p>
<p>We also have a group &#8220;codehaus-whitelist&#8221;; users in the codehaus-whitelist are not affected by various anti-spam activities. This is required for the odd occasion where a user matches a rule; but is not a spammer. We can quickly add these users to the whitelist so that our process remains clean and thoughtfree.</p>
<h1>Defence 6: Proactive Users</h1>
<p>If you see spam in Confluence / JIRA, please let support know as we can&#8217;t be everywhere at once.</p>
<p>Just send the offending URL and any other information as required.</p>
<h1>Defence 7: The Future</h1>
<p>We frequently have to revisit our approaches &#8211; spammers are persistent lot &#8211; and Confluence / JIRA are likely to attract specialised attention from them in the future.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=The+spam%26%238230%3B+oh+the+spam%26%238230%3B+http://tinyurl.com/yagm669" title="Post to Twitter"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=The+spam%26%238230%3B+oh+the+spam%26%238230%3B+http://tinyurl.com/yagm669" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2010/01/11/the-spam-oh-the-spam/&amp;title=The+spam%26%238230%3B+oh+the+spam%26%238230%3B" title="Post to Delicious"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-delicious.png" alt="Post to Delicious" /></a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2010/01/11/the-spam-oh-the-spam/&amp;title=The+spam%26%238230%3B+oh+the+spam%26%238230%3B" title="Post to Delicious">Delicious</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/9Ei0ySR_PzHIA-r6TD-22YN3Yy0/0/da"><img src="http://feedads.g.doubleclick.net/~a/9Ei0ySR_PzHIA-r6TD-22YN3Yy0/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/9Ei0ySR_PzHIA-r6TD-22YN3Yy0/1/da"><img src="http://feedads.g.doubleclick.net/~a/9Ei0ySR_PzHIA-r6TD-22YN3Yy0/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/CodehausSupport/~4/2_UmRomchsU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://support.codehaus.org/2010/01/11/the-spam-oh-the-spam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://support.codehaus.org/2010/01/11/the-spam-oh-the-spam/</feedburner:origLink></item>
		<item>
		<title>Confluence 3 deployed</title>
		<link>http://feedproxy.google.com/~r/CodehausSupport/~3/IG8oKJJici8/</link>
		<comments>http://support.codehaus.org/2009/09/27/confluence-3-deployed/#comments</comments>
		<pubDate>Sun, 27 Sep 2009 04:42:51 +0000</pubDate>
		<dc:creator>Ben Walding</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://support.codehaus.org/?p=65</guid>
		<description><![CDATA[Upgrade
Just a quick post today (as opposed to no post at all!)
Yesterday we deployed the latest version of Confluence to http://docs.codehaus.org/ (this was preceded by an upgrade to the latest stable PostgreSQL as well).
The result of this is that we are now running the latest and greatest Confluence (3.0.1) &#8211; and you now have access [...]]]></description>
			<content:encoded><![CDATA[<h1>Upgrade</h1>
<p>Just a quick post today (as opposed to no post at all!)</p>
<p>Yesterday we deployed the latest version of Confluence to <a title="Codehaus Confluence " href="http://docs.codehaus.org/" target="_blank">http://docs.codehaus.org/</a> (this was preceded by an upgrade to the latest stable <a title="PostgreSQL" href="http://postgresql.org/" target="_blank">PostgreSQL</a> as well).</p>
<p>The result of this is that we are now running the latest and greatest Confluence (3.0.1) &#8211; and you now have access to the features contained within.</p>
<h1>New Features</h1>
<p>If you&#8217;re interested in the new features in Confluence 3; then head on over to <a title="Atlassian" href="http://www.atlassian.com/">Atlassian</a>&#8217;s documentation.</p>
<ul>
<li>What&#8217;s new &#8211; <a title="What's new" href="http://www.atlassian.com/software/confluence/whats-new.jsp" target="_blank">http://www.atlassian.com/software/confluence/whats-new.jsp</a></li>
<li>Learn more &#8211; <a title="Learn more" href="http://www.atlassian.com/software/confluence/learn.jsp" target="_blank">http://www.atlassian.com/software/confluence/learn.jsp</a></li>
<li>Documentation &#8211; <a title="Confluence documentation" href="http://confluence.atlassian.com/display/DOC/Confluence+Documentation+Home" target="_blank">http://confluence.atlassian.com/display/DOC/Confluence+Documentation+Home</a></li>
</ul>
<h2>Activity Streams</h2>
<p>Activity streams are only partially enabled at present. We are looking at ways of integrating activity streams across the Codehaus platform (i.e. covering all our platform &#8211; and not just the Atlassian parts).</p>
<h1>Support</h1>
<p>The usual story applies to support &#8211; head on over to http://codehaus.org/support/ for more information on support channels.</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Confluence+3+deployed+http://tinyurl.com/ydbfajr" title="Post to Twitter"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Confluence+3+deployed+http://tinyurl.com/ydbfajr" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/09/27/confluence-3-deployed/&amp;title=Confluence+3+deployed" title="Post to Delicious"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-delicious.png" alt="Post to Delicious" /></a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/09/27/confluence-3-deployed/&amp;title=Confluence+3+deployed" title="Post to Delicious">Delicious</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/eYoGHztyAvQDYu43auj2F7y6o1U/0/da"><img src="http://feedads.g.doubleclick.net/~a/eYoGHztyAvQDYu43auj2F7y6o1U/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/eYoGHztyAvQDYu43auj2F7y6o1U/1/da"><img src="http://feedads.g.doubleclick.net/~a/eYoGHztyAvQDYu43auj2F7y6o1U/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/CodehausSupport/~4/IG8oKJJici8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://support.codehaus.org/2009/09/27/confluence-3-deployed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://support.codehaus.org/2009/09/27/confluence-3-deployed/</feedburner:origLink></item>
		<item>
		<title>Continuous Integration</title>
		<link>http://feedproxy.google.com/~r/CodehausSupport/~3/gOw5GT4sw40/</link>
		<comments>http://support.codehaus.org/2009/08/01/continuous-integration/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 12:47:30 +0000</pubDate>
		<dc:creator>Ben Walding</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[bamboo]]></category>
		<category><![CDATA[codehaus]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://support.codehaus.org/?p=48</guid>
		<description><![CDATA[You may or may not know, but Codehaus has had a continuous integration server running for quite some time now.
If you&#8217;re just looking for the URL, here it is &#8211; http://bamboo.ci.codehaus.org/
History
In the very early days (pre 2004), there was a server hogshead (in fact there still is). Hogshead provided all services for Codehaus; although there [...]]]></description>
			<content:encoded><![CDATA[<p>You may or may not know, but Codehaus has had a continuous integration server running for quite some time now.</p>
<p>If you&#8217;re just looking for the URL, here it is &#8211; <a href="http://bamboo.ci.codehaus.org/" target="_blank">http://bamboo.ci.codehaus.org/</a></p>
<h2>History</h2>
<p>In the very early days (pre 2004), there was a server hogshead (in fact there still is). Hogshead provided all services for Codehaus; although there were only a handful of projects and none of them had a core requirement for continuous integration.</p>
<p>In the 2005-2006 era, beaver (at Sentex) was provisioned, and a handful of projects did unauthorised CI style builds on the machine.  As this took out core services, the users doing builds were summarily executed.</p>
<p>Let us not speak of the hard drive crash of May 2006.</p>
<p>With the migration to managed hosting at Contegix, we no longer had infrastructure that could safely run end-user jobs. SimulaLabs provided a machine called cheddar to perform CI builds. A variety of CI tools were used on this machine continuum, the Andy Pols precursor to Bamboo (whose name eludes me at present) and finally early versions of Bamboo.</p>
<p>Then cheddar was relocated to a new data centre without warning; and ultimately switched off without warning.</p>
<p>This was untenable and Contegix came to our aid and helped us with codehaus04 (finally we have sensible names!).</p>
<h2>codehaus04</h2>
<p>codehaus04 is a 4 core machine (Intel(R) Xeon(R) CPU @ 1.86GHz) with 4G of physical memory, 130G of disk and access to the Codehaus internal network for moving data around.</p>
<h2>Bamboo</h2>
<p>Bamboo can be viewed at <a href="http://bamboo.ci.codehaus.org/" target="_blank">http://bamboo.ci.codehaus.org/</a></p>
<p>We can&#8217;t keep up with the Bamboo documentation, so it is recommended that you take a look at the <a href="http://www.atlassian.com/software/bamboo/" target="_blank">Atlassian Bamboo documentation</a>.</p>
<h3>Access</h3>
<p>If you require access to create a plan; and you are a project despot; simply raise a JIRA requesting access for your project. All despots are typically granted rights to create new plans.</p>
<p>If you are not a despot; contact one of your despots to get the plan created. They can then grant you management rights for the plan.</p>
<h3>Configuring Bamboo for Codehaus eccentricities</h3>
<p>Please see the following related articles for more information on configuring Bamboo to work with Codehaus infrastructure:</p>
<ul>
<li><a href="/2009/06/25/continuous-snapshots/" target="_blank">Continuous snapshots</a></li>
<li><a href="http://support.codehaus.org/2009/06/21/sonar-at-the-haus/" target="_blank">Sonar at the Haus</a></li>
</ul>
<h3>Git Support</h3>
<p>If you have an existing build you wish to switch to Git; then clone the build or create a new build. Do not change the source repository &#8211; there is something odd inside Bamboo / Git that will cause your build to go haywire and repeatedly build (and email).</p>
<p>.<a href="http://support.codehaus.org/wp-content/uploads/2009/08/git-repository-configuration.png"><img class="alignnone size-thumbnail wp-image-50" title="Git repository configuration" src="http://support.codehaus.org/wp-content/uploads/2009/08/git-repository-configuration-150x150.png" alt="Git repository configuration" width="150" height="150" /></a></p>
<p>The default configuration for Bamboo is pretty straightforward; just follow the prompts and ping support if you have any questions.</p>
<h2>Hudson</h2>
<p>Hudson will likely be viewed at <a href="http://hudson.ci.codehaus.org/" target="_blank">http://hudson.ci.codehaus.org/</a> (HOWEVER IT IS NOT AVAILABLE YET!!!)</p>
<p>Hudson support will be coming soon. Stay tuned for more information!</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Continuous+Integration+http://tinyurl.com/lt8jdr" title="Post to Twitter"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Continuous+Integration+http://tinyurl.com/lt8jdr" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/08/01/continuous-integration/&amp;title=Continuous+Integration" title="Post to Delicious"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-delicious.png" alt="Post to Delicious" /></a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/08/01/continuous-integration/&amp;title=Continuous+Integration" title="Post to Delicious">Delicious</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/ncNzKVdak-mZPBopgNc2kwlVBzs/0/da"><img src="http://feedads.g.doubleclick.net/~a/ncNzKVdak-mZPBopgNc2kwlVBzs/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/ncNzKVdak-mZPBopgNc2kwlVBzs/1/da"><img src="http://feedads.g.doubleclick.net/~a/ncNzKVdak-mZPBopgNc2kwlVBzs/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/CodehausSupport/~4/gOw5GT4sw40" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://support.codehaus.org/2009/08/01/continuous-integration/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://support.codehaus.org/2009/08/01/continuous-integration/</feedburner:origLink></item>
		<item>
		<title>Codehaus SSL refresh</title>
		<link>http://feedproxy.google.com/~r/CodehausSupport/~3/dHWcV8j-eTk/</link>
		<comments>http://support.codehaus.org/2009/07/01/codehaus-ssl-refresh/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 12:01:40 +0000</pubDate>
		<dc:creator>Ben Walding</dc:creator>
				<category><![CDATA[Infrastructure]]></category>
		<category><![CDATA[Services]]></category>
		<category><![CDATA[codehaus infrastructure SSL svn]]></category>

		<guid isPermaLink="false">http://support.codehaus.org/?p=39</guid>
		<description><![CDATA[The SSL renewal time of year has come around again; we have purchased a new RapidSSL wildcard certificate (*.codehaus.org).
The only people who are likely to have issue are the Subversion users (previously Maven users had issues, but the CA for this certificate has existed in the JDK since at least 1.4)
Cert Fingerprint: bb:2b:d4:07:3f:d1:d0:f3:3e:ac:e3:53:cb:04:0c:b2:e5:d0:6a:9a
CA SHA1 Fingerprint: [...]]]></description>
			<content:encoded><![CDATA[<p>The SSL renewal time of year has come around again; we have purchased a new <a href="http://rapidssl.com/" target="_blank">RapidSSL</a> wildcard certificate (*.codehaus.org).</p>
<p>The only people who are likely to have issue are the Subversion users (previously Maven users had issues, but the CA for this certificate has existed in the JDK since at least 1.4)</p>
<p>Cert Fingerprint: bb:2b:d4:07:3f:d1:d0:f3:3e:ac:e3:53:cb:04:0c:b2:e5:d0:6a:9a<br />
CA SHA1 Fingerprint: D2 32 09 AD 23 D3 14 23 21 74 E4 0D 7F 9D 62 13 97 86 63 3A<br />
CA MD5 Fingerprint: 67 CB 9D C0 13 24 8A 82 9B B2 17 1E D1 1B EC D4</p>
<h1>OpenSSL</h1>
<p>The primary issue with some certificates is that they use <em>newer</em> root authorities that are sometimes not present in OpenSSL. We did attempt to finagle a reduced cost deal with <strong>a particularly large existing CA</strong> but they weren&#8217;t even interested enough to reply to our emails. C&#8217;est la vie.</p>
<p>As the CA we use (Equifax) isn&#8217;t in the default OpenSSL libraries on Mac OSX Leopard; it is safe to assume it won&#8217;t exist on some other systems either (it does exist on RHEL 4+ though).  </p>
<h1>Subversion</h1>
<p>The following is a conversation you will have with <code>svn</code> when you first attempt to connect to our <a href="https://svn.codehaus.org/">Subversion services</a> (these are the live fingerprints for the new certificates; you can verify this using your browser to https://svn.codehaus.org/)</p>
<pre># svn co https://ssltest.codehaus.org/...

Error validating server certificate for 'https://svn.codehaus.org':
- The certificate is not issued by a trusted authority. Use the
fingerprint to validate the certificate manually!
Certificate information:
- Hostname: *.codehaus.org
- Valid: from Tue, 30 Jun 2009 16:51:47 GMT until Fri, 02 Jul 2010 02:52:13 GMT
- Issuer: Equifax Secure Certificate Authority, Equifax, US
- Fingerprint: bb:2b:d4:07:3f:d1:d0:f3:3e:ac:e3:53:cb:04:0c:b2:e5:d0:6a:9a

(R)eject, accept (t)emporarily or accept (p)ermanently? p</pre>
<h1>Maven / Java</h1>
<p>This CA has been available since JDK 1.4; so should pose no significant issue to Maven / Java users.</p>
<p>You can check your JDK / JRE using the following commands:</p>
<pre>keytool -list -keystore $JRE_HOME/lib/security/cacerts | grep -i 67:CB:9D:C0:13:24:8A:82:9B:B2:17:1E:D1:1B:EC:D4
Enter keystore password:  changeit
Certificate fingerprint (MD5): 67:CB:9D:C0:13:24:8A:82:9B:B2:17:1E:D1:1B:EC:D4</pre>
<h1>Migration</h1>
<p>The migration will be starting tonight; and be progressively rolled out across all services.</p>
<p>We are standardising our internal SSL configuration files at the same time; so if you notice a service running expired SSL certificates; shoot us an email and we&#8217;ll get it sorted!</p>
<p>The systems that will be affected include:</p>
<ul>
<li><a href="https://jira.codehaus.org/" target="_blank">https://jira.codehaus.org/</a></li>
<li><a href="https://svn.codehaus.org/" target="_blank">https://svn.codehaus.org/</a></li>
<li><a href="https://docs.codehaus.org/" target="_blank">https://docs.codehaus.org/</a></li>
<li><a href="https://xircles.codehaus.org/" target="_blank">https://xircles.codehaus.org/</a></li>
<li><a href="https://dav.codehaus.org/" target="_blank">https://dav.codehaus.org/</a></li>
</ul>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Codehaus+SSL+refresh+http://tinyurl.com/npeyye" title="Post to Twitter"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Codehaus+SSL+refresh+http://tinyurl.com/npeyye" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/07/01/codehaus-ssl-refresh/&amp;title=Codehaus+SSL+refresh" title="Post to Delicious"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-delicious.png" alt="Post to Delicious" /></a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/07/01/codehaus-ssl-refresh/&amp;title=Codehaus+SSL+refresh" title="Post to Delicious">Delicious</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/o27yfgS535cA2kgEwBv2JXkJmZc/0/da"><img src="http://feedads.g.doubleclick.net/~a/o27yfgS535cA2kgEwBv2JXkJmZc/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/o27yfgS535cA2kgEwBv2JXkJmZc/1/da"><img src="http://feedads.g.doubleclick.net/~a/o27yfgS535cA2kgEwBv2JXkJmZc/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/CodehausSupport/~4/dHWcV8j-eTk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://support.codehaus.org/2009/07/01/codehaus-ssl-refresh/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://support.codehaus.org/2009/07/01/codehaus-ssl-refresh/</feedburner:origLink></item>
		<item>
		<title>Continuous Snapshots</title>
		<link>http://feedproxy.google.com/~r/CodehausSupport/~3/_566Yhi3Qrc/</link>
		<comments>http://support.codehaus.org/2009/06/25/continuous-snapshots/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 01:43:05 +0000</pubDate>
		<dc:creator>Ben Walding</dc:creator>
				<category><![CDATA[Services]]></category>
		<category><![CDATA[codehaus support ci bamboo maven repository]]></category>

		<guid isPermaLink="false">http://support.codehaus.org/?p=28</guid>
		<description><![CDATA[For those of you who are new to Codehaus, or are wondering what capabilities are out there, we will be slowly covering the documented and (sadly too frequent) undocumented features of Codehaus.
If you have configured  a build in Bamboo, then you would know that using continuous integration (CI) can be a great way to build [...]]]></description>
			<content:encoded><![CDATA[<p>For those of you who are new to <a href="http://codehaus.org/" target="_blank">Codehaus</a>, or are wondering what capabilities are out there, we will be slowly covering the <a href="http://docs.codehaus.org/" target="_blank">documented</a> and (sadly too frequent) undocumented features of Codehaus.</p>
<p>If you have configured  a build in <a title="Codehaus Bambbo" href="http://bamboo.ci.codehaus.org" target="_blank">Bamboo</a>, then you would know that using continuous integration (CI) can be a great way to build packages for users who want to use the latest and greatest, but don&#8217;t have the time nor the patience to build these packages.</p>
<h2>Maven Configuration</h2>
<p>In order to make <a href="http://maven.apache.org" target="_blank">Maven</a> deploy your <a href="http://ci.repository.codehaus.org/" target="_blank">snapshots</a> to the appropriate area on the Bamboo server, you will need to configure the snapshot repository using your pom.xml</p>
<p>Please review the pom.xml fragment found at <a href="http://support.codehaus.org/wp-content/uploads/2009/06/profile.txt">profile.xml</a></p>
<p>Please note that any process is free to write / remove files under /opt/snapshot.ci.codehaus.org/ &#8211; so please be respectfui of other projects. If there is too much contention we will be forced down the totalitarian path &#8211; and we don&#8217;t want this.</p>
<h1>Deploy</h1>
<p>You can then deploy your artifacts using the <a href="http://maven.apache.org/plugins/maven-deploy-plugin/usage.html" target="_blank">deploy plugin</a>.</p>
<pre style="padding-left: 30px;">maven deploy:deploy</pre>
<h1>Cleanup</h1>
<p>At some point; the archive will become fat and unwieldy. We will implement a pruning mechanism to remove old artifacts at that point.</p>
<p>The upshot of this &#8211; don&#8217;t rely on versioned SNAPSHOTS being this repository for ever.  Also note that this applies as a general rule to artifacts help in the main snapshot repository &#8211; http://snapshots.repository.codehaus.org/</p>
<h1>Issues?</h1>
<p>As always contact <a href="http://codehaus.org/support/" target="_blank">support</a> with any issues.</p>
<p>(We&#8217;ve just pieced this altogether from the support requests we&#8217;ve handled. If there is any nuance we&#8217;ve messed up, let us know!)</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 360px; width: 1px; height: 1px;">
<pre>distributionManagement</pre>
</div>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Continuous+Snapshots+http://tinyurl.com/lnzq4a" title="Post to Twitter"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Continuous+Snapshots+http://tinyurl.com/lnzq4a" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/06/25/continuous-snapshots/&amp;title=Continuous+Snapshots" title="Post to Delicious"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-delicious.png" alt="Post to Delicious" /></a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/06/25/continuous-snapshots/&amp;title=Continuous+Snapshots" title="Post to Delicious">Delicious</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/oHgkQmAh0bZV-V5Hb950RZOlA5A/0/da"><img src="http://feedads.g.doubleclick.net/~a/oHgkQmAh0bZV-V5Hb950RZOlA5A/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/oHgkQmAh0bZV-V5Hb950RZOlA5A/1/da"><img src="http://feedads.g.doubleclick.net/~a/oHgkQmAh0bZV-V5Hb950RZOlA5A/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/CodehausSupport/~4/_566Yhi3Qrc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://support.codehaus.org/2009/06/25/continuous-snapshots/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://support.codehaus.org/2009/06/25/continuous-snapshots/</feedburner:origLink></item>
		<item>
		<title>Sonar at the Haus</title>
		<link>http://feedproxy.google.com/~r/CodehausSupport/~3/-tmfRW3cuJE/</link>
		<comments>http://support.codehaus.org/2009/06/21/sonar-at-the-haus/#comments</comments>
		<pubDate>Sun, 21 Jun 2009 01:25:24 +0000</pubDate>
		<dc:creator>Ben Walding</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[codehaus]]></category>
		<category><![CDATA[sonar]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://support.codehaus.org/?p=8</guid>
		<description><![CDATA[If you&#8217;ve been following the twitter stream then you&#8217;d know we&#8217;ve been setting up a Sonar instance at Codehaus.
Sonar is a &#8220;code quality management platform&#8221; &#8211; it draws together a variety of code quality metrics into a consolidated portal.
Sonar enables you to collect, analyze and report metrics on source code. Sonar not only offers consolidated [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;ve been following the <a href="http://twitter.com/codehaus/" target="_blank">twitter</a> stream then you&#8217;d know we&#8217;ve been setting up a Sonar instance at Codehaus.</p>
<p>Sonar is a &#8220;code quality management platform&#8221; &#8211; it draws together a variety of code quality metrics into a consolidated portal.</p>
<p style="text-align: justify; padding-left: 60px;"><em>Sonar enables you to collect, analyze and report metrics on source code. Sonar not only offers consolidated reporting on and across projects throughout time, but it becomes the central place to manage code quality.</em></p>
<p style="text-align: justify;">At present this is only accessible to projects building on the <a href="http://bamboo.ci.codehaus.org/">Bamboo</a> server (<a href="http://hudson.dev.java.net">Hudson</a> will be established soon).</p>
<p>Our friends at <a href="http://sonarsource.com/" target="_blank">SonarSource</a> are managing the Sonar instance for us; but you should still raise all service requests through our <a href="http://codehaus.org/support/">normal channels</a> &#8211; we will delegate and monitor the requests over to SonarSource.</p>
<h1>Sonar Reports</h1>
<p>
<a href='http://support.codehaus.org/2009/06/21/sonar-at-the-haus/sonar-dashboard/' title='sonar-dashboard'><img width="150" height="150" src="http://support.codehaus.org/wp-content/uploads/2009/06/sonar-dashboard-150x150.png" class="attachment-thumbnail" alt="" title="sonar-dashboard" /></a>
<a href='http://support.codehaus.org/2009/06/21/sonar-at-the-haus/sonar-violations/' title='sonar-violations'><img width="150" height="150" src="http://support.codehaus.org/wp-content/uploads/2009/06/sonar-violations-150x150.png" class="attachment-thumbnail" alt="" title="sonar-violations" /></a>
<a href='http://support.codehaus.org/2009/06/21/sonar-at-the-haus/sonar-hotspots/' title='sonar-hotspots'><img width="150" height="150" src="http://support.codehaus.org/wp-content/uploads/2009/06/sonar-hotspots-150x150.png" class="attachment-thumbnail" alt="" title="sonar-hotspots" /></a>
<a href='http://support.codehaus.org/2009/06/21/sonar-at-the-haus/bamboo_builder2/' title='bamboo_builder2'><img width="150" height="150" src="http://support.codehaus.org/wp-content/uploads/2009/06/bamboo_builder2-150x150.png" class="attachment-thumbnail" alt="" title="bamboo_builder2" /></a>
<a href='http://support.codehaus.org/2009/06/21/sonar-at-the-haus/bamboo_builder_light/' title='bamboo_builder_light'><img width="150" height="150" src="http://support.codehaus.org/wp-content/uploads/2009/06/bamboo_builder_light-150x150.png" class="attachment-thumbnail" alt="" title="bamboo_builder_light" /></a>
<br />
(the bottom two images are the maven images shown below &#8211; ignore them; my Wordpress-fu is too weak and I&#8217;m too lazy to manually script only the images I want at the moment)</p>
<h1>Accessing Sonar</h1>
<p>Head on over to the Codehaus Sonar at <a href="http://sonar.ci.codehaus.org/" target="_blank">http://sonar.ci.codehaus.org/</a></p>
<h1>Getting Started</h1>
<p>To manage the quality of your project with Sonar, create a new plan in bamboo, fill plan details and source repository tabs.<br />
Refer to <a style="color: #1c51a8;" title="Analyzing Java Projects" href="http://docs.codehaus.org/display/SONAR/Analyzing+Java+Projects" target="_blank">Analyzing Java Projects</a> section to setup an analysis, but here is some guidance : on the builder tab, choose maven as a builder in all cases.</p>
<p>If your project is a maven project use the following goal to run the analysis:</p>
<pre style="padding-left: 30px;"><span style="color: #0000ff;">clean install sonar:sonar -Dmaven.test.failure.ignore=true</span></pre>
<pre><span style="color: #0000ff; "><img style="border: 0px initial initial;" title="bamboo_builder2" src="http://support.codehaus.org/wp-content/uploads/2009/06/bamboo_builder2.png" alt="bamboo_builder2" width="514" height="155" /></span></pre>
<p>If your project is a non-maven, you should create a small pom.xml file as described <a style="color: #1c51a8;" href="http://docs.codehaus.org/display/SONAR/Collect+data#Collectdata-NonMavenprojects%28sonarlightmode%29" target="_blank">here</a>. Then use the goal &#8220;sonar:sonar&#8221; to run the analysis :</p>
<p><img style="border: 0px initial initial;" title="bamboo_builder_light" src="http://support.codehaus.org/wp-content/uploads/2009/06/bamboo_builder_light.png" alt="bamboo_builder_light" width="427" height="156" /></p>
<p>Save the plan and run it.</p>
<p>Go to <a style="color: #1c51a8;" href="http://sonar.ci.codehaus.org/" target="_blank">http://sonar.ci.codehaus.org/</a> to see the result of the analysis.</p>
<h1>FAQ</h1>
<h2>How can I get assistance in running a Sonar analysis on my project ?</h2>
<p>Please create a <a style="color: #1c51a8;" href="http://jira.codehaus.org/browse/HAUS" target="_blank">ticket in Jira</a>, using Sonar as a component.</p>
<h2>Who can I ask questions about Sonar ?</h2>
<p>You can ask questions on the <a style="color: #1c51a8;" href="http://sonar.codehaus.org/support/" target="_blank">user mailing list</a>.</p>
<h2>How can I use my own quality rules (profiles) and setup alerts on my project ?</h2>
<p>At present this capability can only be managed by our Sonar administrator.</p>
<p>Please create a <a href="http://jira.codehaus.org/secure/CreateIssue.jspa?pid=10104&amp;issuetype=3" target="_blank">ticket in Jira</a>, using Sonar as a component.</p>
<h2>Where do I find more information about Sonar ?</h2>
<ul>
<li>Sonar web site : <a href="http://sonar.codehaus.org/" target="_blank">http://sonar.codehaus.org</a></li>
<li>Sonar wiki : <a href="http://docs.codehaus.org/display/SONAR/Documentation" target="_blank">http://docs.codehaus.org/display/SONAR/Documentation</a></li>
<li>Sonar plugin library : <a href="http://docs.codehaus.org/display/SONAR/Sonar+Plugin+Library/" target="_blank">http://docs.codehaus.org/display/SONAR/Sonar+Plugin+Library/</a></li>
</ul>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Sonar+at+the+Haus+http://tinyurl.com/lnnyrr" title="Post to Twitter"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Sonar+at+the+Haus+http://tinyurl.com/lnnyrr" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/06/21/sonar-at-the-haus/&amp;title=Sonar+at+the+Haus" title="Post to Delicious"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-delicious.png" alt="Post to Delicious" /></a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/06/21/sonar-at-the-haus/&amp;title=Sonar+at+the+Haus" title="Post to Delicious">Delicious</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/wSiJygj5ZxDhORvgHc3FsOb71iY/0/da"><img src="http://feedads.g.doubleclick.net/~a/wSiJygj5ZxDhORvgHc3FsOb71iY/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/wSiJygj5ZxDhORvgHc3FsOb71iY/1/da"><img src="http://feedads.g.doubleclick.net/~a/wSiJygj5ZxDhORvgHc3FsOb71iY/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/CodehausSupport/~4/-tmfRW3cuJE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://support.codehaus.org/2009/06/21/sonar-at-the-haus/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://support.codehaus.org/2009/06/21/sonar-at-the-haus/</feedburner:origLink></item>
		<item>
		<title>Welcome</title>
		<link>http://feedproxy.google.com/~r/CodehausSupport/~3/T8rNZyHinJc/</link>
		<comments>http://support.codehaus.org/2009/06/18/welcome/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 11:32:42 +0000</pubDate>
		<dc:creator>Ben Walding</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[codehaus]]></category>
		<category><![CDATA[support]]></category>

		<guid isPermaLink="false">http://support.codehaus.org/?p=3</guid>
		<description><![CDATA[Welcome to the all-new Codehaus blog.
What&#8217;s the plan?
Well the theory goes that we will have all manner of blogging on here; but realistically it will be mostly written by me with a smattering of third party articles.
Is this an ego blog?
I hope not; I hope to have this primarily as the focal point for ongoing [...]]]></description>
			<content:encoded><![CDATA[<p>Welcome to the all-new Codehaus blog.</p>
<p><strong>What&#8217;s the plan?</strong></p>
<p>Well the theory goes that we will have all manner of blogging on here; but realistically it will be mostly written by me with a smattering of third party articles.</p>
<p><strong>Is this an ego blog?</strong></p>
<p>I hope not; I hope to have this primarily as the focal point for ongoing discussion with the Codehaus community; and in an ancillary role as a place to make notes about all the weird and wonderful things we discover in our travels.</p>
<p><strong>How is this different to all the other communications channels?</strong></p>
<p>So we&#8217;ve got <a title="Codehaus System News" href="http://xircles.codehaus.org/news/rss" target="_blank">RSS feeds</a>, <a title="Codehaus Twitter" href="http://twitter.com/codehaus" target="_blank">twitter</a>, an unused <a title="Get Satisfaction - The Codehaus" href="http://getsatisfaction.com/thecodehaus/" target="_blank">&#8220;Get Satisfaction&#8221;</a> account, <a title="JIRA - Raise Chore" href="http://jira.codehaus.org/secure/CreateIssue.jspa?pid=10104" target="_blank">JIRA</a>, <a title="Haus Confluence Space" href="http://docs.codehaus.org/display/HAUS/Home" target="_blank">Confluence</a> and a variety of other informal means of disseminating information.</p>
<p>While each of those have their own special focus, the longer (and more detailed) articles will end up here.</p>
<p><strong>Will you put non-tech stuff on here?</strong></p>
<p>No, you won&#8217;t be exposed to stories about cycling, chocolate eating or photos of cats doing stupid things. Unless of course these items have a direct impact on Codehaus / technology.  If I break my arm (again) riding my bike &#8211; that will be relevant as it impacts support. If I end up in a diabetic coma from eating chocolate &#8211; relevant to support. If a cat gets into the servers &#8211; relevant (and I&#8217;ll be asking them to lock the cage to the servers too).</p>
<p>So stay tuned!</p>
<p align="left"><a class="tt" href="http://twitter.com/home/?status=Welcome+http://tinyurl.com/m4rtua" title="Post to Twitter"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-twitter.png" alt="Post to Twitter" /></a> <a class="tt" href="http://twitter.com/home/?status=Welcome+http://tinyurl.com/m4rtua" title="Post to Twitter">Tweet This Post</a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/06/18/welcome/&amp;title=Welcome" title="Post to Delicious"><img class="nothumb" src="http://support.codehaus.org/wp-content/plugins/tweet-this/icons/tt-delicious.png" alt="Post to Delicious" /></a> <a class="tt" href="http://delicious.com/post?url=http://support.codehaus.org/2009/06/18/welcome/&amp;title=Welcome" title="Post to Delicious">Delicious</a></p>
<p><a href="http://feedads.g.doubleclick.net/~a/TK0pGIjsgOKqmysml6Heoai7xOE/0/da"><img src="http://feedads.g.doubleclick.net/~a/TK0pGIjsgOKqmysml6Heoai7xOE/0/di" border="0" ismap="true"></img></a><br/>
<a href="http://feedads.g.doubleclick.net/~a/TK0pGIjsgOKqmysml6Heoai7xOE/1/da"><img src="http://feedads.g.doubleclick.net/~a/TK0pGIjsgOKqmysml6Heoai7xOE/1/di" border="0" ismap="true"></img></a></p><img src="http://feeds.feedburner.com/~r/CodehausSupport/~4/T8rNZyHinJc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://support.codehaus.org/2009/06/18/welcome/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://support.codehaus.org/2009/06/18/welcome/</feedburner:origLink></item>
	</channel>
</rss>

