<?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/"
	>

<channel>
	<title>Centrum Systems</title>
	<atom:link href="http://www.centrumsystems.com.au/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.centrumsystems.com.au</link>
	<description>consulting services and bespoke solutions</description>
	<lastBuildDate>Tue, 10 Apr 2012 02:05:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Centrum Systems Announces Partnership with Appian</title>
		<link>http://www.centrumsystems.com.au/2012/03/centrum-systems-announces-partnership-with-appian/</link>
		<comments>http://www.centrumsystems.com.au/2012/03/centrum-systems-announces-partnership-with-appian/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 00:48:24 +0000</pubDate>
		<dc:creator>HelenM@centrumsystems.com.au</dc:creator>
				<category><![CDATA[BPM]]></category>

		<guid isPermaLink="false">http://www.centrumsystems.com.au/?p=1159</guid>
		<description><![CDATA[We at Centrum are committed to providing independent, specialist end to end  Business Process Management consulting and implementation services across Australia and New Zealand. We think our holistic approach combined with real, hands-on experience supports customers to achieve incremental and sustainable improvement outcomes no matter what the size or complexity of their business. &#160; We mix expertise and [...]]]></description>
			<content:encoded><![CDATA[<p>We at Centrum are committed to providing independent, specialist end to end <a title="Business Process Management" href="http://www.centrumsystems.com.au/what-we-do/business-process-management/"> Business Process Management</a> consulting and implementation services across Australia and New Zealand. We think our holistic approach combined with real, hands-on experience supports customers to achieve incremental and sustainable improvement outcomes no matter what the size or complexity of their business.</p>
<p>&nbsp;</p>
<p>We mix expertise and a passion for continuous process improvement practices with in-depth technical know-how. We drive, implement and guide optimal, measureable change within businesses. This is what we are best at.</p>
<p>&nbsp;</p>
<p>We are pleased to offer these services to support customers of <a href="http://www.appian.com/bpm-software/bpm-suite.jsp">Appian&#8217;s leading enterprise, mobile and cloud-based BPM solutions</a>. Centrum and Appian will work together to deliver the right people, practices, operational framework and technology in a pragmatic and collaborative partnership with our customers.</p>
<p>&nbsp;</p>
<p><a title="Appian Centrum Press Release" href="http://www.centrumsystems.com.au/wp-content/uploads/2012/03/Appian-Centrum-Press-Release.pdf">View Press Release</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.centrumsystems.com.au/2012/03/centrum-systems-announces-partnership-with-appian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Centrum Systems Announces Partnership with Neo Technology</title>
		<link>http://www.centrumsystems.com.au/2012/02/centrum-systems-announces-partnership-with-neo-technology/</link>
		<comments>http://www.centrumsystems.com.au/2012/02/centrum-systems-announces-partnership-with-neo-technology/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 01:09:01 +0000</pubDate>
		<dc:creator>HelenM@centrumsystems.com.au</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Partnerships]]></category>

		<guid isPermaLink="false">http://centrumsystems.com.au/?p=933</guid>
		<description><![CDATA[Centrum Systems is pleased to announce we are partnering with leading NOSQL database supplier Neo Technology (http://neotechnology.com) to provide services to support the implementation of the Neo4j product for customers in Australia and New Zealand. Centrum will provide a range of services including training, implementation support, POC, architecture and integration services for customers of Neo4j. &#160; Neo Technology [...]]]></description>
			<content:encoded><![CDATA[<p>Centrum Systems is pleased to announce we are partnering with leading NOSQL database supplier Neo Technology (<a href="http://neotechnology.com/" target="_blank">http://neotechnology.com</a>) to provide services to support the implementation of the Neo4j product for customers in Australia and New Zealand. Centrum will provide a range of services including training, implementation support, POC, architecture and integration services for customers of Neo4j.</p>
<p>&nbsp;</p>
<p>Neo Technology delivers the world&#8217;s leading high performance, scalable graph database and Centrum is excited to be supporting businesses that are leveraging this technology in the Australian marketplace. We can see that master data management issues, the strategic importance of social networking and the increasing complexity of enterprise networks all call for a re-think of how customers handle their growing volumes of inter-connected, ever-changing data.</p>
<p>&nbsp;</p>
<p>We will bring our experience implementing enterprise systems solutions combined with our deep, Java-based technical know-how and passion for achieving quality business outcomes to a wider group of customers to help address these challenges in partnership with Neo Technology.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.centrumsystems.com.au/2012/02/centrum-systems-announces-partnership-with-neo-technology/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build Pipeline Plugin Release 1.2.2</title>
		<link>http://www.centrumsystems.com.au/2011/06/build-pipeline-plugin-release-1-2-2/</link>
		<comments>http://www.centrumsystems.com.au/2011/06/build-pipeline-plugin-release-1-2-2/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 02:14:52 +0000</pubDate>
		<dc:creator>Kevin Velovski</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[BPM]]></category>

		<guid isPermaLink="false">http://www.centrumsystems.com.au/?p=325</guid>
		<description><![CDATA[We are pleased to announce the availability of version 1.2.2. The release addressed bugs. Bug Fixes The following defects have been resolved. Remaining defects are visible from the google code issue tracker (http://code.google.com/p/build-pipeline-plugin/issues/list). Defect ID Summary 42 Renaming pipeline jobs breaks pipeline 47 Build Pipeline View cannot display full downstream projects 48 Downstream parameterized job [...]]]></description>
			<content:encoded><![CDATA[<p>We are pleased to announce the availability of version 1.2.2.<br />
The release addressed bugs.</p>
<h2>Bug Fixes</h2>
<p>The following defects have been resolved. Remaining defects are visible from the google code issue tracker (<a href="http://code.google.com/p/build-pipeline-plugin/issues/list">http://code.google.com/p/build-pipeline-plugin/issues/list</a>).</p>
<table>
<tbody>
<tr>
<th>Defect ID</th>
<th>Summary</th>
</tr>
<tr>
<td>42</td>
<td>Renaming pipeline jobs breaks pipeline</td>
</tr>
<tr>
<td>47</td>
<td>Build Pipeline View cannot display full downstream projects</td>
</tr>
<tr>
<td>48</td>
<td>Downstream parameterized job picking up upstream settings</td>
</tr>
</tbody>
</table>
<h2>Documentation</h2>
<p>The documentation is available from the <a href="http://wiki.hudson-ci.org/display/HUDSON/Build+Pipeline+Plugin">Hudson</a> and <a href="https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin">Jenkins</a> wikis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.centrumsystems.com.au/2011/06/build-pipeline-plugin-release-1-2-2/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>BRIEFING: Delivering Better Software (Tests as a Communication Tool)</title>
		<link>http://www.centrumsystems.com.au/2011/06/briefing-delivering-better-software-tests-as-a-communication-tool/</link>
		<comments>http://www.centrumsystems.com.au/2011/06/briefing-delivering-better-software-tests-as-a-communication-tool/#comments</comments>
		<pubDate>Mon, 06 Jun 2011 01:40:45 +0000</pubDate>
		<dc:creator>Kevin Velovski</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[continual improvement]]></category>
		<category><![CDATA[coverage]]></category>
		<category><![CDATA[dashboards]]></category>
		<category><![CDATA[legacy code]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[Software Delivery Mastery]]></category>
		<category><![CDATA[ATDD]]></category>
		<category><![CDATA[BDD]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.centrumsystems.com.au/?p=306</guid>
		<description><![CDATA[Come and join us for drinks, socialising and a special presentation This will be a really informal session, with plenty of opportunities to ask questions and interact. If that doesn&#8217;t sell it to you, how about the FREE DRINKS?? The Talk Completing the circle: Automated web tests, ATDD and Acceptance Tests as a team communication [...]]]></description>
			<content:encoded><![CDATA[<p>Come and join us for drinks, socialising and a special presentation<br />
This will be a really informal session, with plenty of opportunities to ask questions and interact. If that doesn&#8217;t sell it to you, how about the FREE DRINKS??</p>
<h2>The Talk</h2>
<h3>Completing the circle: Automated web tests, ATDD and Acceptance Tests as a team communication tool</h3>
<p><em>Acceptance Test Driven Development, or ATDD, has proven to be a very effective technique, both for driving and guiding development, and for enhancing communication between developers and other project stakeholders. But why stop there? Well designed Acceptance Tests can also act as a formidable documentation source and communication tool. Indeed, when written in a narrative, BDD-type style, Acceptance Tests have the potential to document in detail how the user interacts with the application.<br />
In this talk we will look at the role of automated Acceptance Tests not only for testing, but also as part of the whole development lifecycle, from writing the user stories right through to deploying the application. We will also look at ways to make your automated acceptance tests more expressive and how to use them more effectively as a communication, reporting and documentation tool.<br />
Finally, we will present and demonstrate a new open source library that helps developers and testers write automated acceptance tests for web applications using WebDriver/Selenium 2. This library also produces clean, narrative-style reports illustrated with screenshots that effectively describe the application&#8217;s functionality and behaviour, as well as any regressions or pending features.</em></p>
<h2>The Speaker</h2>
<p>CEO of <a href="http://www.wakaleo.com/">Wakaleo Consulting</a>, John is an experienced consultant and trainer specialising in Enterprise Java, Web Development, and Open Source technologies. John is well known in the Java community for his many published articles, and as author of Java Power Tools, and Jenkins: The Definitive Guide.<br />
John helps organisations around the world to improve their Java development processes and infrastructures and provides training and mentoring in open source technologies, Test Driven Development (TDD, BDD and ATDD), Automated Web Testing, SDLC tools, and agile development processes in general.</p>
<h2>The Begging</h2>
<p>A fascinating subject that should give you some great ideas and techniques to take back to your team.<br />
This is our first joint event and we&#8217;d really appreciate your support. We&#8217;ve booked a big room and need to fill it! PLEASE BRING YOUR FRIENDS&#8230;</p>
<h2>When</h2>
<p>Thursday, June 23, 2011 from 5:00 PM &#8211; 8:00 PM (GMT+1000)</p>
<h2>Where</h2>
<p><a href="http://www.eventbrite.com/googlemap?eid=1767995121" rel="nofollow">Combined Services Club (upstairs)</a><br />
5-7 Barrack Street<br />
(Cnr of Clarence, next to Officeworks)<br />
Sydney, New South Wales 2000<br />
Australia</p>
<h2>Registration</h2>
<p>So complete the free registration at: <a href="http://bettersoftwarebriefing-esli.eventbrite.com/" rel="nofollow">http://bettersoftwarebriefing.eventbrite.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.centrumsystems.com.au/2011/06/briefing-delivering-better-software-tests-as-a-communication-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BUILD PIPELINE PLUGIN RELEASE 1.2.1</title>
		<link>http://www.centrumsystems.com.au/2011/06/build-pipeline-plugin-release-1-2-1/</link>
		<comments>http://www.centrumsystems.com.au/2011/06/build-pipeline-plugin-release-1-2-1/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 04:39:41 +0000</pubDate>
		<dc:creator>Kevin Velovski</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[BPM]]></category>

		<guid isPermaLink="false">http://www.centrumsystems.com.au/?p=287</guid>
		<description><![CDATA[We are pleased to announce the availability of version 1.2.1. The release addressed bugs and enhancements. NEW FEATURES Retry Failed Jobs If a job in the pipeline fails, the job will now display a &#8220;Retry&#8221; button. This allows the user to retry this job, with the parent build remaining as the trigger and continue the [...]]]></description>
			<content:encoded><![CDATA[<p>We are pleased to announce the availability of version 1.2.1.<br />
The release addressed bugs and enhancements.</p>
<h2>NEW FEATURES</h2>
<ol>
<li>
<h3>Retry Failed Jobs</h3>
</li>
<p>If a job in the pipeline fails, the job will now display a &#8220;Retry&#8221; button. This allows the user to retry this job, with the parent build remaining as the trigger and continue the build pipeline.
<li>
<h3>Restrict the Trigger Button to the Latest Build</h3>
</li>
<p>When configuring a build pipeline view a new option &#8220;Restrict Trigger to the Most Recent Build&#8221; has been added.<br />
If set to &#8220;Yes&#8221; it will only allow the most recent build pipeline to display a &#8220;Trigger&#8221; button.<br />
If set to &#8220;No&#8221; all builds displayed on the view will have a manual trigger button.
</ol>
<h2>BUG FIXES</h2>
<p>The following defects have been resolved. Remaining defects are visible from the google code issue tracker (<a href="http://code.google.com/p/build-pipeline-plugin/issues/list">http://code.google.com/p/build-pipeline-plugin/issues/list</a>).</p>
<table>
<tbody>
<tr>
<th>Defect ID</th>
<th>Summary</th>
</tr>
<tr>
<td>33</td>
<td>plugin interfering with job renames/deletes</td>
</tr>
</tbody>
</table>
<h2>DOCUMENTATION</h2>
<p>The documentation is available from the <a href="http://wiki.hudson-ci.org/display/HUDSON/Build+Pipeline+Plugin">Hudson</a> and <a href="https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin">Jenkins</a> wikis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.centrumsystems.com.au/2011/06/build-pipeline-plugin-release-1-2-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Build Pipeline Plugin Release 1.2</title>
		<link>http://www.centrumsystems.com.au/2011/05/build-pipeline-plugin-release-1-2/</link>
		<comments>http://www.centrumsystems.com.au/2011/05/build-pipeline-plugin-release-1-2/#comments</comments>
		<pubDate>Mon, 30 May 2011 04:49:27 +0000</pubDate>
		<dc:creator>Kevin Velovski</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[BPM]]></category>

		<guid isPermaLink="false">http://www.centrumsystems.com.au/?p=281</guid>
		<description><![CDATA[We are pleased to announce the availability of version 1.2. The release addressed a few bugs and enhancements. New Features Build Parameters Inherited by Downstream Jobs If the parent job has parameters defined, those parameters are passed down to all subsequent child jobs for manual jobs.  Note: an automatically triggered downstream job should use the [...]]]></description>
			<content:encoded><![CDATA[<p>We are pleased to announce the availability of version 1.2.<br />
The release addressed a few bugs and enhancements.</p>
<h2><strong>New Features</strong></h2>
<ol>
<li>
<h3>Build Parameters Inherited by Downstream Jobs</h3>
</li>
<p>If the parent job has parameters defined, those parameters are passed down to all subsequent child jobs for manual jobs.  <strong>Note: </strong>an automatically triggered downstream job should use the parameterised trigger plugin to achieve the same&#8230;</ol>
<h2><strong>Bug Fixes</strong></h2>
<p>The following defects have been resolved. Remaining defects are visible from the google code issue tracker (<a rel="nofollow" href="http://code.google.com/p/build-pipeline-plugin/issues/list">http://code.google.com/p/build-pipeline-plugin/issues/list</a>).</p>
<table>
<tbody>
<tr>
<th>Defect ID</th>
<th>Summary</th>
</tr>
<tr>
<td>15</td>
<td>parametrized build jobs parameters are not inherited in downstream jobs from the same pipeline / parameters are expected to be passed through the whole pipeline</td>
</tr>
<tr>
<td>28</td>
<td>No support for views when running jenkins with JRE / JDK 1.5.</td>
</tr>
<tr>
<td>29</td>
<td>Exception getting git revision number.</td>
</tr>
<tr>
<td>30</td>
<td>Cannot view pipeline</td>
</tr>
<tr>
<td>32</td>
<td>Pipeline plugin not working with SVN either</td>
</tr>
<tr>
<td>37</td>
<td>Cannot view pipeline when using security</td>
</tr>
</tbody>
</table>
<h2>Documentation</h2>
<p>The documentation is available from the <a href="http://wiki.hudson-ci.org/display/HUDSON/Build+Pipeline+Plugin">Hudson</a> and <a href="https://wiki.jenkins-ci.org/display/JENKINS/Build+Pipeline+Plugin">Jenkins</a> wikis.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.centrumsystems.com.au/2011/05/build-pipeline-plugin-release-1-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Centrum Systems at Agile Australia 2011</title>
		<link>http://www.centrumsystems.com.au/2011/05/centrum-systems-at-agile-australia-2011/</link>
		<comments>http://www.centrumsystems.com.au/2011/05/centrum-systems-at-agile-australia-2011/#comments</comments>
		<pubDate>Fri, 27 May 2011 05:46:14 +0000</pubDate>
		<dc:creator>Kevin Velovski</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[continual improvement]]></category>
		<category><![CDATA[scrum]]></category>
		<category><![CDATA[Software Delivery Mastery]]></category>
		<category><![CDATA[Agile]]></category>
		<category><![CDATA[Continual Improvement]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Jenkins]]></category>
		<category><![CDATA[software delivery mastery]]></category>

		<guid isPermaLink="false">http://www.centrumsystems.com.au/?p=275</guid>
		<description><![CDATA[Centrum Systems will be sponsering Agile Australia 2011. Agile Australia is going to be packed with case-studies of how leading businesses are adopting an Agile approach to stay ahead!   As well as Agile dignitaries Alistair Cockburn and Martin Fowler, international Agile guru Jean Tabaka, and celebrated Australian industry author Rob Thomsett Learn how to respond quickly [...]]]></description>
			<content:encoded><![CDATA[<p>Centrum Systems will be sponsering <a href="http://www.agileaustralia.com.au/">Agile Australia 2011</a>.</p>
<p>Agile Australia is going to be packed with case-studies of how leading businesses are adopting an Agile approach to stay ahead!   As well as Agile dignitaries Alistair Cockburn and Martin Fowler, international Agile guru Jean Tabaka, and celebrated Australian industry author Rob Thomsett</p>
<ul>
<li>Learn how to respond quickly to change, minimise overall risk, improve quality, and enhance project outcomes</li>
<li>Discover compelling examples of innovation and business value achieved through Agile</li>
</ul>
<p>Please come to our stand and say hello&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.centrumsystems.com.au/2011/05/centrum-systems-at-agile-australia-2011/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Coding standards harmony</title>
		<link>http://www.centrumsystems.com.au/2011/05/coding-standards-harmony/</link>
		<comments>http://www.centrumsystems.com.au/2011/05/coding-standards-harmony/#comments</comments>
		<pubDate>Fri, 06 May 2011 06:59:47 +0000</pubDate>
		<dc:creator>Marcin Popielarz</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[continual improvement]]></category>
		<category><![CDATA[legacy code]]></category>
		<category><![CDATA[Software Delivery Mastery]]></category>

		<guid isPermaLink="false">http://www.centrumsystems.com.au/?p=232</guid>
		<description><![CDATA[Coding standards Most mature software development companies or departments define their coding standards.  The intentions is simple; ensure all code looks alike to ease reading, writing, maintaining and communicating code.  As a first effort, these coding conventions may be expressed in some form of standalone document, but conventions that are not being enforced are simply [...]]]></description>
			<content:encoded><![CDATA[<h1>Coding standards</h1>
<p>Most mature software development companies or departments define their coding standards.  The intentions is simple; ensure all code looks alike to ease reading, writing, maintaining and communicating code.  As a first effort, these coding conventions may be expressed in some form of standalone document, but conventions that are not being enforced are simply a waste of time.  In the Java world, various tools have existed for some time now, helping us to enforce and adhere to coding standards; Checkstyle, Eclipse and Sonar.   Until fairly recently, it has been laborious to make those tool work together and help us achieve code consistency.  Thankfully, as the mentioned tools matured, it is now possible to define and enforce coding standards effortlessly and the synergy between these tools may even be surprising.</p>
<h2>Recap</h2>
<p>Lets quickly state the purpose of each tool before we move on.</p>
<h3><a rel="nofollow" href="http://checkstyle.sourceforge.net/" target="_blank">Checkstyle</a></h3>
<blockquote><p>Checkstyle is a development tool to help programmers write Java code that adheres to a coding standard. It automates the process of checking Java code to spare humans of this boring (but important) task. This makes it ideal for projects that want to enforce a coding standard.</p></blockquote>
<h3>Eclipse formatter</h3>
<p>The Eclipse formatter is a set of rules that defines how code will be formatted.</p>
<h3>Eclipse clean up</h3>
<p>The clean up utility helps to apply formatting rules and coding conventions to a single file or to a set of files in one go.</p>
<h3>Eclipse save actions</h3>
<p>Save actions are similar to clean up and they define what should happen to the code when a file is saved.  For example, save actions can ensure code is formatted, unused imports are removed and arguments are set to &#8220;final&#8221; right before the file is saved.</p>
<h3><a rel="nofollow" href="http://www.sonarsource.org/" target="_blank">Sonar</a></h3>
<blockquote><p>Sonar is an open platform to manage code quality.</p></blockquote>
<h2>A common situation</h2>
<p>It would be quite common to define coding standards using Checkstyle and including it as part of a project.  Then Eclipse formatter, clean up and save actions would be configured manually to match the Checkstyle rules.  In addition, Checkstyle would run as part of a build to publish the code violations report to a file or to Sonar.  Some better integrated teams would also use the <a rel="nofollow" href="http://eclipse-cs.sourceforge.net/" target="_blank">Checkstyle Eclipse plugin</a> in order to see the violations in their code and as code would change and adhere to standards, the Checkstyle Eclipse plugin would reflect that.</p>
<h2>Shortcomings</h2>
<p>The common situation outlined above is a decent setup but it has some shortcomings.  If the coding standard rules change, that sends a ripple through all the tools.  The Eclipse formatter needs to reflect the new coding standard rules, as well as the clean up and the save actions.  Furthermore, Sonar needs to be updated with the new rules.  In addition, sharing the Checkstyle file between projects and teams can become a choir.  There are ways to define a remote coding standard file used between teams but that does not address the lack of synchronisation between all the tools &#8230; until recently.</p>
<h2>Harmony</h2>
<p>Checkstyle, Sonar and Eclipse have been around for a long time and as these tools matured they developed great integration between them.  By aligning these tools it is possible to establish one central coding standard rule set and reflect those in the development environment automatically.  Furthermore, once configured, changes to coding standards are propagated automatically and developers are always informed about up to date coding standards and apply them as they code.</p>
<h2>Example</h2>
<p>Lets look at an example on how to best utilise Checkstyle, Eclipse and Sonar.  In addition, to give the example more relevance, lets start with an existing &#8220;legacy&#8221; project where coding standards have not necessarily been respected.</p>
<h3>Assumptions</h3>
<p>The example assumes the following:</p>
<ul>
<li>Java project</li>
<li>Maven build</li>
<li>Checkstyle file expressing the coding standards</li>
<li>Sonar</li>
<li>Eclipse</li>
<li>Eclipse checkstyle plugin</li>
<li>Eclipse sonar plugin</li>
</ul>
<h3>Initial coding standard report</h3>
<p>We&#8217;ll start from the point where an initial Checkstyle configuration has been uploaded to Sonar and a Sonar report has been produced for our existing project.</p>
<p><img class="size-full wp-image-233 alignnone" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/sonar-violations.png" alt="Reduce violations in IDE" title="Reduce violations in IDE" width="584" height="403" /></p>
<h3>View and reduce violations in the IDE</h3>
<p>Next, we&#8217;ll configure Eclipse to see those violations closer to the code.  In order to do so, we&#8217;ll need to configure the Eclipse Checkstyle plugin with the same rules as Sonar and apply the configuration to the projects.</p>
<ol>
<li>A link to the Checkstyle configuration<br />
<img class="alignnone size-full wp-image-234" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/sonar-config.png" alt="A link to the Checkstyle configuration" title="A link to the Checkstyle configuration" width="544" height="398" /><br />
<img class="alignnone size-full wp-image-236" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/sonar-quality-profile.png" alt="A link to the Checkstyle configuration 2" title="A link to the Checkstyle configuration 2" width="544" height="398" /><br />
<img class="alignnone size-full wp-image-235" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/sonar-permalinks.png" alt="Permalinks" title="Permalinks" width="544" height="398" /><br />
<img class="alignnone size-full wp-image-237" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/sonar-permalink-checkstyle.png" alt="Checkstyle" title="Checkstyle" width="576" height="398" /></li>
<li>Reference to the Checkstyle rules in eclipse (Window &gt; Preferences &gt; Checkstyle &gt; New)<br />
<img class="alignnone size-full wp-image-238" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/eclipse-cs-config.png" width="507" height="441" /></li>
<li>Configure Checkstyle for a project (right click project &gt; Properties &gt; Checkstyle).  Please note the Write formatter/cleanup config checkbox.  This is the part that synchronises the coding standards with the Eclipse formatter and clean up.  You can also right click on your project &gt; Checkstyle &gt; Create Formatter-Profile to achieve the same thing.  This kind of synchronisation alleviates the painful manual synchronisation between Checkstyle and Eclipse; brilliant!<br />
<img class="alignnone size-full wp-image-239" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/eclipse-cs-project-config.png" width="522" height="377" /></li>
<li>Once Checkstyle has been configured and enabled for a project, notice that violations are annotated by the code<br />
<img class="alignnone size-full wp-image-240" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/eclipse-cs-violations.png" alt=width="602" height="489" /></li>
<li>Now that Eclipse has been configured with the coding standard rules and formatting profiles have been updated, we can bulk clean up existing code and go a long way to ensure the code adheres to standards.  After pressing Next &gt; (to review upcoming changes) or Finish, Eclipse would do what it can to help the code to adhere to standards.<br />
<img class="alignnone size-full wp-image-241" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/eclipse-cs-cleanup.png" width="602" height="489" /><br />
<img class="alignnone size-full wp-image-242" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/eclipse-cs-cleanup-config.png" alt=width="602" height="489" /></li>
<li> After republishing a code standard report to Sonar, we can see a reduction in violations<br />
<img class="alignnone size-full wp-image-243" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/sonar-violations-after.png" alt=width="584" height="403" /></li>
</ol>
<h2>Save actions</h2>
<p>Once the Eclipse formatter and clean up profiles have been updated, don&#8217;t forget to update save actions so that as many coding standards are automatically applied as soon as possible (before every save).</p>
<h2>Eclipse Sonar integration</h2>
<p>Similarly to the Checkstyle Eclipse  plugin, there is a <a rel="nofollow" href="http://docs.codehaus.org/display/SONAR/Sonar+Eclipse" target="_blank">Sonar Eclipse plugin</a> that will annotate code with the violations as seen in Sonar.  In addition to showing Checkstyle violations, the Sonar Eclipse plugin would show <a href="http://findbugs.sourceforge.net/" target="_blank">Findbugs</a> and <a rel="nofollow" href="http://pmd.sourceforge.net/" target="_blank">PMD</a> violations (all static code analysis tools configured).  The integration is quite simple.</p>
<ol>
<li> <a rel="nofollow" href="http://docs.codehaus.org/display/SONAR/Installing+Sonar+Eclipse" target="_blank">Install the Sonar Eclipse plugin</a></li>
<li>Identify your Sonar installation<br />
<img class="alignnone size-full wp-image-245" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/eclipse-sonar-setup.png" alt=width="602" height="489" /></li>
<li>Associate your Eclipse  projects with their Sonar equivalents (notice that your project has to have at least one Sonar report published)<br />
<img class="alignnone size-full wp-image-246" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/eclipse-sonar-project-config.png" alt=width="601" height="468" /></li>
<li>Once the configuration is complete, you can see the violations as published to Sonar annotated in your code<br />
<img class="alignnone size-full wp-image-247" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/eclipse-sonar-violations.png" alt=width="545" height="371" /></li>
<li>Please note that the code has been annotated with the violations as it was found in Sonar.  If code changes are made, those violations will remain and get out of sync.  Alternatively, you can choose to rerun the checks locally and refresh the violations view.<br />
<img class="alignnone size-full wp-image-248" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/05/eclipse-sonar-analyse-locally.png" alt=width="547" height="606" /></li>
</ol>
<h2>The usefulness of the Checkstyle Eclipse plugin</h2>
<p>Although the Sonar Eclipse plugin may make the Checkstyle Eclipse plugin look superfluous, remember that it is the latter that updates the Eclipse formatting rules as well as the clean up profiles.  If or until the Sonar Eclipse plugin fulfils the same duty, the Checkstyle Eclipse plugin remains very useful.</p>
<h2>Not everything can be automated</h2>
<p>Please note that although a lot of coding standards can be applied retroactively and automatically, some violations cannot be automatically eradicated.  Nonetheless, Checkstyle, Eclipse and Sonar can identify the problematic code and guide developers towards coding standard compliance.</p>
<h2>Conclusion</h2>
<p>Coding standards are a preoccupation for most software development teams.  Defining coding standards is one things but enforcing them effectively is another.  Thankfully as Checkstyle, Eclipse and Sonar matured, coding standard definition and enforcement can be a straightforward and a sustainable activity.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.centrumsystems.com.au/2011/05/coding-standards-harmony/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Publishing to Jenkins and Hudson – ease versus control</title>
		<link>http://www.centrumsystems.com.au/2011/05/publishing-to-jenkins-and-hudson-ease-versus-control/</link>
		<comments>http://www.centrumsystems.com.au/2011/05/publishing-to-jenkins-and-hudson-ease-versus-control/#comments</comments>
		<pubDate>Tue, 03 May 2011 03:40:24 +0000</pubDate>
		<dc:creator>Marcin Popielarz</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Software Delivery Mastery]]></category>
		<category><![CDATA[Build Pipeline]]></category>
		<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Jenkins]]></category>

		<guid isPermaLink="false">http://www.centrumsystems.com.au/?p=216</guid>
		<description><![CDATA[The split The popular open source continuous integration server, Hudson, forked a few months ago.  Its creator, Kohsuke Kawaguchi, along with a larger part of the open source community forked Hudson and created Jenkins. As for Hudson, it is now under the Oracle and Sonatype umbrella. In the meantime, we at Centrum Systems were writing [...]]]></description>
			<content:encoded><![CDATA[<h1>The split</h1>
<p>The popular open source <a href="http://www.centrumsystems.com.au" title="continuous integration">continuous integration</a> server, Hudson, forked a few months ago.  Its creator, Kohsuke Kawaguchi, along with a larger part of the open source community forked <a rel="nofollow" href="http://hudson-ci.org" target="_blank">Hudson</a> and created <a rel="nofollow" href="http://jenkins-ci.org" target="_blank">Jenkins</a>. As for Hudson, it is now under the Oracle and Sonatype umbrella.</p>
<p>In the meantime, we at Centrum Systems were writing the <a rel="nofollow" href="http://code.google.com/p/build-pipeline-plugin/" target="_blank">build pipeline plugin</a>.  Not wanting to take sides, we decided to release the plugin to both Hudson and Jenkins.  Having released version 1.0.0 of the plugin and receiving a lot of positive and constructive feedback, we wanted to correct some problems with the plugin, while adding some requested features.  I&#8217;ll try and summarize our experience of releasing the plugin to either platform.</p>
<h2>Hudson</h2>
<ol>
<li>Publish the plugin using the same mechanism we used to publish 1.0.0</li>
<li>Realize the old process changed since the plugin was deployed to the same repository but it would not appear in Hudson&#8217;s update center</li>
<li>Read the <a rel="nofollow" href="http://wiki.hudson-ci.org/display/HUDSON/Releasing+Hudson+Plugin" target="_blank">new release process</a> and comply to it</li>
<li>Create a JIRA user</li>
<li>Miss a few points and ask Oracle for some help</li>
<li>Create a JIRA ticket expressing our willingness to publish the plugin</li>
<li>Wait for someone to address the ticket and give us rights to publish to the staging repository</li>
<li>Change the build to ensure the artifacts were signed as per the <a rel="nofollow" href="https://docs.sonatype.org/display/Repository/How+To+Generate+PGP+Signatures+With+Maven" target="_blank">following instructions</a></li>
<li>Publish the plugin using release:prepare, release:perform (and the corresponding deployment management configuration as described in step 3)</li>
<li>Log on to Sonatype&#8217;s Nexus instance and &#8220;close&#8221; the deployment (some verifications were performed on the plugin)</li>
<li>The verification failed and I needed to publish our public key to a keys server (actually, the error message was really clear and helpful)</li>
<li>&#8220;Release&#8221; our plugin within Sonatype&#8217;s Nexus workflow (a single click, similar to step 10)</li>
<li>Comment on the original JIRA ticket to ask them to release the plugin for real (to the maven 2 repo)</li>
<li>Wait a while for the JSON file listing all Hudson plugins to be updated and show the availability of a new version</li>
</ol>
<p>Elapsed time: About 6 working days</p>
<h2>Jenkins</h2>
<ol>
<li>Publish the plugin using the same mechanism we used to publish 1.0.0 (create an account, add the distribution management information in the pom file, update the settings.xml file with the server information)</li>
<li>Wait a few hours for the JSON file listing all Jenkins plugins to be updated  and show the availability of a new version</li>
</ol>
<p>Elapsed time: A few hours</p>
<h1>Conclusion</h1>
<p>I can certainly appreciate the steps to sign the plugin and the extra validations ensuring the plugin has all the right elements, but the Hudson process felt a bit heavy.  Hopefully the next release will not be as tedious since we learned quite a bit during the exercise.  Finally, I would like to thank Winston from Oracle since he was helpful and responsive and all other people involved in the process.  I would also like to thank the Jenkins people since the publishing process was nice, streamlined and uneventful (in a good way).</p>
<p>The fact that Jenkins has had 11 new versions whilst Hudson has had only 2 since the fork is indicative of the different approaches.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.centrumsystems.com.au/2011/05/publishing-to-jenkins-and-hudson-ease-versus-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BUILD PIPELINE PLUGIN RELEASE 1.1.2</title>
		<link>http://www.centrumsystems.com.au/2011/05/build-pipeline-plugin-release-1-1-2/</link>
		<comments>http://www.centrumsystems.com.au/2011/05/build-pipeline-plugin-release-1-1-2/#comments</comments>
		<pubDate>Tue, 03 May 2011 03:36:14 +0000</pubDate>
		<dc:creator>Marcin Popielarz</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Software Delivery Mastery]]></category>
		<category><![CDATA[Build Pipeline]]></category>
		<category><![CDATA[Hudson]]></category>
		<category><![CDATA[Jenkins]]></category>

		<guid isPermaLink="false">http://www.centrumsystems.com.au/?p=200</guid>
		<description><![CDATA[Following great community feedback about the Build Pipeline Plugin 1.1.1, we are pleased to announce the availability of version 1.1.2.  The release addressed a few bugs and expanded its SCM support (namely Git and Mercurial). BUG FIXES The following defects have been resolved. Remaining defects are visible from the google code issue tracker (http://code.google.com/p/build-pipeline-plugin/issues/list). Defect [...]]]></description>
			<content:encoded><![CDATA[<p>Following great community feedback about the Build Pipeline Plugin 1.1.1, we are pleased to announce the availability of version 1.1.2.  The release addressed a few bugs and expanded its <a href="http://www.centrumsystems.com.au" title="SCM">SCM</a> support (namely Git and Mercurial).</p>
<h2><strong>BUG FIXES</strong></h2>
<p>The following defects have been resolved. Remaining defects are visible from the google code issue tracker (<a rel="nofollow" href="http://code.google.com/p/build-pipeline-plugin/issues/list">http://code.google.com/p/build-pipeline-plugin/issues/list</a>).</p>
<table>
<tbody>
<tr>
<th>Defect ID</th>
<th>Summary</th>
</tr>
<tr>
<td>2</td>
<td>Support Git SHA1 for &#8220;revision&#8221;</td>
</tr>
<tr>
<td>16</td>
<td>Add date/time of execution</td>
</tr>
<tr>
<td>19</td>
<td>Build view empty, NPE in the log</td>
</tr>
<tr>
<td>22</td>
<td>Support for mercurial revision number</td>
</tr>
<tr>
<td>27</td>
<td>Build Pipeline and Copy Artifact plugin combination causes NPE</td>
</tr>
</tbody>
</table>
<p><img class="alignnone size-large wp-image-204" src="http://www.centrumsystems.com.au/wp-content/uploads/2011/04/bpp-1.1.2-1024x527.png" alt="Build Pipeline Plugin" title="Build Pipeline Plugin" width="512" height="264" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.centrumsystems.com.au/2011/05/build-pipeline-plugin-release-1-1-2/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

