<?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>The Kaptain on ... stuff &#187; Atlassian</title>
	<atom:link href="http://www.kellyrob99.com/blog/tag/atlassian/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.kellyrob99.com/blog</link>
	<description>Tales of development, life and the folly that goes along with both</description>
	<lastBuildDate>Sun, 04 Dec 2011 21:51:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Developing Faster with the Atlassian IntelliJ Connector</title>
		<link>http://www.kellyrob99.com/blog/2010/02/21/developing-faster-with-the-atlassian-intellij-connector/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=developing-faster-with-the-atlassian-intellij-connector</link>
		<comments>http://www.kellyrob99.com/blog/2010/02/21/developing-faster-with-the-atlassian-intellij-connector/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 19:53:38 +0000</pubDate>
		<dc:creator>TheKaptain</dc:creator>
				<category><![CDATA[Cool Toys]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Atlassian]]></category>
		<category><![CDATA[Atlassian IntelliJ Connector]]></category>
		<category><![CDATA[Bamboo]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Fisheye]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Integrated development environment]]></category>
		<category><![CDATA[JBoss Seam]]></category>
		<category><![CDATA[Jira]]></category>
		<category><![CDATA[Jira Studio]]></category>
		<category><![CDATA[kellyrob99]]></category>
		<category><![CDATA[theKaptain]]></category>

		<guid isPermaLink="false">http://www.kellyrob99.com/blog/?p=1051</guid>
		<description><![CDATA[Once upon a time I used Eclipse as a development environment. It had a lot of things going for it: free(as in beer), rich community involvement, a plethora of plugins and probably my favorite feature: Mylyn. The problem was that it seemed everytime I wanted to upgrade to a newer version, inevitably half of the [...]
Related posts:<ol>
<li><a href='http://www.kellyrob99.com/blog/2010/01/02/atlassian-here-be-dragons/' rel='bookmark' title='Atlassian: Here Be Dragons'>Atlassian: Here Be Dragons</a></li>
<li><a href='http://www.kellyrob99.com/blog/2009/08/14/griffon-support-in-latest-intellij-eap/' rel='bookmark' title='Griffon support in latest Intellij EAP'>Griffon support in latest Intellij EAP</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/01/27/thanks-for-the-shirt-atlassian/' rel='bookmark' title='Thanks for the shirt Atlassian!'>Thanks for the shirt Atlassian!</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Once upon a time I used <a class="zem_slink" href="http://www.eclipse.org/" title="Eclipse (software)" rel="homepage">Eclipse</a> as a development environment. It had a lot of things going for it: free(as in beer), rich community involvement, a plethora of plugins and probably my favorite feature: <a href="http://www.eclipse.org/mylyn/">Mylyn</a>. The problem was that it seemed everytime I wanted to upgrade to a newer version, inevitably half of the integrations broke.   Please don&#8217;t get me wrong, Eclipse is AMAZING software and I do still use it occasionally for specific tasks &#8211; but nevertheless I now spend most of my day in <a class="zem_slink" href="http://www.jetbrains.com/idea/" title="IntelliJ IDEA" rel="homepage">IntelliJ</a>. In particular it had better support for Groovy/Grails development and Maven integration &#8211; both of which were essential to my everyday work. Throw in default included support for <a class="zem_slink" href="http://www.seamframework.org" title="JBoss Seam" rel="homepage">JBoss Seam</a>, JSF/Facelets, html and css and I didn&#8217;t really need a lot of plugins anymore. One of the ones I have been using, and that I&#8217;ve watched mature over the course of the last year, is the <a href="http://www.atlassian.com/software/ideconnector/intellij.jsp">Atlassian IntelliJ Connector</a>. Between it and the greatly improved changeset functionality I finally feel like I have a solid replacement for Mylyn&#8217;s excellent task management facilities.</p>
<p>This plugin integrates the IDE with one or more components of the <a class="zem_slink" href="http://www.atlassian.com/" title="Atlassian" rel="homepage">Atlassian</a> application suite. Multiple instances of <a class="zem_slink" href="http://atlassian.com/software/jira" title="JIRA (software)" rel="homepage">Jira</a>, <a class="zem_slink" href="http://www.atlassian.com/software/fisheye" title="FishEye (software)" rel="homepage">Fisheye</a>, <a class="zem_slink" href="http://www.atlassian.com/software/bamboo" title="Bamboo (software)" rel="homepage">Bamboo</a> and <a href="http://www.atlassian.com/software/crucible/">Crucible</a> can all be configured and used to streamline the development workflow.</p>
<p></p>
<h2>Jira</h2>
<p>This is perhaps the most essential piece of the puzzle, and inevitably the part a developer is going to interact with the most &#8211; the issue tracker. From within the IDE Jira master view you can load filters(basically stored searches for issues), do ad hoc searches and start work on a particular issue. If you drill down to a particular issue you can comment on it, assign it to yourself or another user, log work against it and generally manage it in most of the ways you can from the Jira web interface. Granted it&#8217;s not quite as pretty as the web interface, but the essential information and interaction is all there, and if you&#8217;re missing something an action is provided to open any issue in a web browser.</p>
<p>What really works for me is how the interaction supports my general workflow so closely:</p>
<div style="padding-left: 10px;">
<ul>
<li>Look in Jira for an issue to work on</li>
<li>Assign it to myself(if it&#8217;s not already)</li>
<li>Start progress on the issue, which starts a timer and creates a corresponding changeset</li>
<li>Do whatever development work that is required to satisfy the issue, pausing and resuming as necessary for<br />
            the duration of the task
        </li>
<li>Commit the changeset, optionally logging time against the issue and creating a Crucible review for later
        </li>
<li>Rinse and repeat</li>
</ul>
</div>
<p>Granted, I&#8217;m not the best at remembering to pause the timer, but being confronted with the time when I commit forces me to honestly evaluate how much time it took to complete the task when it&#8217;s clearest in my mind. And incidentally, while we&#8217;re here, the option to automatically organize imports in the commit dialog, a built in IDE function, has saved my butt from maven dependency-analyze any number of times.</p>
<p>It&#8217;s also convenient that you can see all comments and attachments for issues &#8211; viewing a screenshot describing a UI issue is pretty much essential after all, don&#8217;t you think?<br />

<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/jiraissuedetailview.png" title="Jira detail view for an issue, including access to commentary and attachments." class="shutterset_singlepic53" >
	<img class="ngg-singlepic" src="http://www.kellyrob99.com/blog/wp-content/gallery/cache/53__x_jiraissuedetailview.png" alt="jiraissuedetailview" title="jiraissuedetailview" />
</a>
</p>
<h2>Bamboo</h2>
<p>So once your code is committed, a build is kicked off on Bamboo. Hopefully all goes well, but if any build you&#8217;re listening to fails the IDE will give you a message to that effect. You also have access to changes, tests and any associated build logs. And whether or not your build does fail, stacktraces from the log are immediately available and clickable in the IDE. In addition, you can manually trigger builds and label or comment them.<br />

<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/bamboologview.png" title="Linking Bamboo logs to code in the IDE." class="shutterset_singlepic46" >
	<img class="ngg-singlepic" src="http://www.kellyrob99.com/blog/wp-content/gallery/cache/46__x_bamboologview.png" alt="bamboologview" title="bamboologview" />
</a>
</p>
<h2>Fisheye</h2>
<p>Integration with Fisheye is bi-directional between the IDE and the Fisheye webview. Context menus are available on right clicks in the IDE that open a file in Fisheye. And in the Fisheye web app clicking an IntelliJ icon will open a file in the IDE. It should be noted that this feature only appears to be available with Fisheye 2. I know because I&#8217;ve been missing it in Jira Studio, which still uses the 1.6 version of Fisheye.<br />

<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/fisheyealtf1menu.png" title="Alt-F1 context menu for a file linked to Fisheye." class="shutterset_singlepic50" >
	<img class="ngg-singlepic" src="http://www.kellyrob99.com/blog/wp-content/gallery/cache/50__x_fisheyealtf1menu.png" alt="fisheyealtf1menu" title="fisheyealtf1menu" />
</a>
<br />

<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/fisheyerightclickmenu.png" title="Right click context menu for a file linked to Fisheye." class="shutterset_singlepic52" >
	<img class="ngg-singlepic" src="http://www.kellyrob99.com/blog/wp-content/gallery/cache/52__x_fisheyerightclickmenu.png" alt="fisheyerightclickmenu" title="fisheyerightclickmenu" />
</a>
</p>
<h2>Crucible</h2>
<p>This is the one integration I&#8217;ve used the least so far, primarily because I don&#8217;t have Crucible installed locally for testing and again it seems a lot of the power of the integration is only available with version 2. The documentation certainly seems to suggest more rich functionality than I&#8217;ve found available anyhow. Fisheye and Crucible are actually bundled together for installation, so the Jira Studio version appears also restricted to the 1.6 version &#8211; for the time being at least. Mostly the Crucible integration is convenient because it provides messaging when reviews are assigned or commented.</p>
<p></p>
<h2>Documentation</h2>
<p>To be perfectly honest, I didn&#8217;t even look for these until writing this blog post. Configuring and using the plugin is very straightforward, provided you&#8217;re familiar with using these Atlassian tools at least. Nevertheless, I did discover a few additional bonuses and as usual <a href="http://confluence.atlassian.com/display/IDEPLUGIN/Atlassian+Connector+for+IntelliJ+IDEA">the docs are both complete and up to date</a>.</p>
<p></p>
<h2>Overall</h2>
<p>Really the point of using this plugin is to significantly reduce context switching; as much as possible your work is concentrated in one interface, and for the vast majority of cases you only need one piece of software running to get the job done. Where context switching is inevitable, this software tries to make it as &#8220;one-click&#8221; as possible. The end result is to put the power of your Atlassian products front and center in the IDE, where us developer types spend most of our working lives. Now, if only Jira Studio gets updated to the latest available software versions, because I&#8217;m dying to try out side-by-side diffs for Crucible reviews in IntelliJ!</p>
<p>Anyhow, if you use Atlassian tools the Connector is well worth checking out. And you Eclipse users aren&#8217;t left in the dark either. I can&#8217;t vouch for it&#8217;s quality, but there is an equivalent plugin for Eclipse available as well. </p>

<div class="ngg-galleryoverview" id="ngg-gallery-10-1051">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://www.kellyrob99.com/blog/2010/02/21/developing-faster-with-the-atlassian-intellij-connector/?show=slide">
			[Show as slideshow]		</a>
	</div>

	<!-- Piclense link -->
	<div class="piclenselink">
		<a class="piclenselink" href="javascript:PicLensLite.start({feedUrl:'http://www.kellyrob99.com/blog/wp-content/plugins/nextgen-gallery/xml/media-rss.php?gid=10&amp;mode=gallery'});">
			[View with PicLens]		</a>
	</div>
	
	<!-- Thumbnails -->
		
	<div id="ngg-image-42" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/atlassianconnectorautoupdate.png" title="The plugin includes its own auto-update functionality, very handy!" class="shutterset_set_10" >
								<img title="atlassianconnectorautoupdate" alt="atlassianconnectorautoupdate" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_atlassianconnectorautoupdate.png" width="81" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-43" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/atlassianconnectorgeneralsettings.png" title="Preferences page of general settings for each application type." class="shutterset_set_10" >
								<img title="atlassianconnectorgeneralsettings" alt="atlassianconnectorgeneralsettings" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_atlassianconnectorgeneralsettings.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-44" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/bamboobuildcomment.png" title="Adding a comment to a completed Bamboo build." class="shutterset_set_10" >
								<img title="bamboobuildcomment" alt="bamboobuildcomment" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_bamboobuildcomment.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-45" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/bamboobuildpopup.png" title="This is the overview information presented when hovering over a build in the Bamboo view." class="shutterset_set_10" >
								<img title="bamboobuildpopup" alt="bamboobuildpopup" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_bamboobuildpopup.png" width="96" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-46" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/bamboologview.png" title="Linking Bamboo logs to code in the IDE." class="shutterset_set_10" >
								<img title="bamboologview" alt="bamboologview" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_bamboologview.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-47" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/bamboooverview.png" title="Overview of Bamboo builds you have configured." class="shutterset_set_10" >
								<img title="bamboooverview" alt="bamboooverview" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_bamboooverview.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-48" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/configuringnewapplications.png" title="Host specific configuration for each of the Atlassian applications." class="shutterset_set_10" >
								<img title="configuringnewapplications" alt="configuringnewapplications" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_configuringnewapplications.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-49" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/createajiraissue.png" title="Creating a new Jira issue from the IDE." class="shutterset_set_10" >
								<img title="createajiraissue" alt="createajiraissue" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_createajiraissue.png" width="77" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-50" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/fisheyealtf1menu.png" title="Alt-F1 context menu for a file linked to Fisheye." class="shutterset_set_10" >
								<img title="fisheyealtf1menu" alt="fisheyealtf1menu" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_fisheyealtf1menu.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-51" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/fisheyeexamplemacroview.png" title="Fisheye view, complete with IntelliJ button to open file directly in IDE." class="shutterset_set_10" >
								<img title="fisheyeexamplemacroview" alt="fisheyeexamplemacroview" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_fisheyeexamplemacroview.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-52" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/fisheyerightclickmenu.png" title="Right click context menu for a file linked to Fisheye." class="shutterset_set_10" >
								<img title="fisheyerightclickmenu" alt="fisheyerightclickmenu" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_fisheyerightclickmenu.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-53" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/jiraissuedetailview.png" title="Jira detail view for an issue, including access to commentary and attachments." class="shutterset_set_10" >
								<img title="jiraissuedetailview" alt="jiraissuedetailview" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_jiraissuedetailview.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-54" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/jiraissuepopup.png" title="This is the overview information presented when hovering over an issue in the Jira view." class="shutterset_set_10" >
								<img title="jiraissuepopup" alt="jiraissuepopup" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_jiraissuepopup.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-55" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/jiraissuesoverview.png" title="Overview of all Jira issues matching a filter or search." class="shutterset_set_10" >
								<img title="jiraissuesoverview" alt="jiraissuesoverview" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_jiraissuesoverview.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-56" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/jirastopwork.png" title="Dialog presented when 'stopping work' on a Jira issue; includes the ability to change the Jira state and log work against the issue." class="shutterset_set_10" >
								<img title="jirastopwork" alt="jirastopwork" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_jirastopwork.png" width="89" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-57" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/jiratoolbaradditions.png" title="Buttons the Connector adds to the top IDE button bar." class="shutterset_set_10" >
								<img title="jiratoolbaradditions" alt="jiratoolbaradditions" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian-intellij-connector/thumbs/thumbs_jiratoolbaradditions.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/51641feb-8bfa-4376-b1dc-c90be9a1987f/" title="Reblog this post [with Zemanta]"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_c.png?x-id=51641feb-8bfa-4376-b1dc-c90be9a1987f" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>
<!-- AdSense Now! V1.95 -->
<!-- Post[count: 2] -->
<div class="adsense adsense-leadout" style="float:right;margin: 12px;"><script type="text/javascript"><!--
google_ad_client = "pub-6955914197200080";
/* 728x90, created 8/3/09 */
google_ad_slot = "4051815125";
google_ad_width = 728;
google_ad_height = 90;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div><p>Related posts:<ol>
<li><a href='http://www.kellyrob99.com/blog/2010/01/02/atlassian-here-be-dragons/' rel='bookmark' title='Atlassian: Here Be Dragons'>Atlassian: Here Be Dragons</a></li>
<li><a href='http://www.kellyrob99.com/blog/2009/08/14/griffon-support-in-latest-intellij-eap/' rel='bookmark' title='Griffon support in latest Intellij EAP'>Griffon support in latest Intellij EAP</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/01/27/thanks-for-the-shirt-atlassian/' rel='bookmark' title='Thanks for the shirt Atlassian!'>Thanks for the shirt Atlassian!</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kellyrob99.com/blog/2010/02/21/developing-faster-with-the-atlassian-intellij-connector/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thanks for the shirt Atlassian!</title>
		<link>http://www.kellyrob99.com/blog/2010/01/27/thanks-for-the-shirt-atlassian/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=thanks-for-the-shirt-atlassian</link>
		<comments>http://www.kellyrob99.com/blog/2010/01/27/thanks-for-the-shirt-atlassian/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 04:12:43 +0000</pubDate>
		<dc:creator>TheKaptain</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Atlassian]]></category>
		<category><![CDATA[Balsamiq]]></category>
		<category><![CDATA[Bamboo]]></category>
		<category><![CDATA[Confluence]]></category>
		<category><![CDATA[Dragon]]></category>
		<category><![CDATA[Jira]]></category>
		<category><![CDATA[kellyrob]]></category>
		<category><![CDATA[OmniGraffle]]></category>
		<category><![CDATA[theKaptain]]></category>
		<category><![CDATA[Wiki]]></category>

		<guid isPermaLink="false">http://www.kellyrob99.com/blog/?p=1052</guid>
		<description><![CDATA[So my t-shirt arrived today in the mail compliments of Atlassian. Bright green and well earned when I slayed the dragon, I&#8217;ll wear it with pride.&#160; So far I&#8217;ve been getting the most mileage out of Bamboo and Jira, but I&#8217;ve also been tweaking Confluence to make it just right. Following right along with Atlassian&#8217;s [...]
Related posts:<ol>
<li><a href='http://www.kellyrob99.com/blog/2010/01/02/atlassian-here-be-dragons/' rel='bookmark' title='Atlassian: Here Be Dragons'>Atlassian: Here Be Dragons</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/02/21/developing-faster-with-the-atlassian-intellij-connector/' rel='bookmark' title='Developing Faster with the Atlassian IntelliJ Connector'>Developing Faster with the Atlassian IntelliJ Connector</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/01/07/bamboo-grails-and-git-for-continuous-integration/' rel='bookmark' title='Bamboo, Grails and Git for Continuous Integration'>Bamboo, Grails and Git for Continuous Integration</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>So my t-shirt arrived today in the mail compliments of <a class="zem_slink" href="http://www.atlassian.com/" title="Atlassian" rel="homepage">Atlassian</a>. Bright green and well earned <a href="http://www.kellyrob99.com/blog/2010/01/02/atlassian-here-be-dragons/">when I slayed the dragon</a>, I&#8217;ll wear it with pride.&nbsp; So far I&#8217;ve been getting the most mileage out of Bamboo and Jira, but I&#8217;ve also been tweaking Confluence to make it <em>just</em> right. Following right along with Atlassian&#8217;s lead, both <a href="https://plugins.atlassian.com/plugin/details/13744">TaskDock</a> and <a href="https://plugins.atlassian.com/plugin/details/254">Gliffy</a> are offering $10 donation licenses for less than ten user systems, so I&#8217;ve pretty much <strong>got</strong> to at least try them out right?</p>
<p>Actually I&#8217;ve used Gliffy in Confluence before, and it&#8217;s come in handy more than once or twice. But between <a href="http://www.balsamiq.com/products/mockups/desktop">Balsamiq</a> and <a href="http://www.omnigroup.com/applications/OmniGraffle/">OmniGraffle</a> I&#8217;m already well equipped to cover up the fact that my artistic abilities lie somewhere below drawing <a class="zem_slink" href="http://en.wikipedia.org/wiki/Stick_figure" title="Stick figure" rel="wikipedia">stick men</a>. TaskDock has however been installed and set up to nag me via email when I am getting behind schedule. Next will be Customware&#8217;s <a href="http://www.customware.net/repository/display/AtlassianPlugins/Scaffolding+Plugin">scaffolding</a> and <a href="http://www.customware.net/repository/display/AtlassianPlugins/Reporting+Plugin">reporting</a> plugins.  The scaffolding capabilities make dealing with tables in Confluence a breeze &#8211; almost(but not quite) enough to make me abandon the wiki editor completely. Why take my word for it when you can just <a href="http://www.customware.net/repository/download/attachments/2072/SCAFF101_Table.mov?version=1">watch the video</a>?</p>
<p>Anyhow, so far I&#8217;m very happy with the software and how it&#8217;s already helped me organize projects at home better. The t-shirt is just a nice bonus.</p>

<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian/img_1405.jpg" title="Well earned and bright green, I&amp;#039;ll wear it with pride." class="shutterset_singlepic34" >
	<img class="ngg-singlepic" src="http://www.kellyrob99.com/blog/wp-content/gallery/cache/34__770x_img_1405.jpg" alt="Here&#039;s the t-shirt" title="Here&#039;s the t-shirt" />
</a>

<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/d2e13ff0-ce55-4eb2-959f-765985ac709f/" title="Reblog this post [with Zemanta]"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_c.png?x-id=d2e13ff0-ce55-4eb2-959f-765985ac709f" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>
<p>Related posts:<ol>
<li><a href='http://www.kellyrob99.com/blog/2010/01/02/atlassian-here-be-dragons/' rel='bookmark' title='Atlassian: Here Be Dragons'>Atlassian: Here Be Dragons</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/02/21/developing-faster-with-the-atlassian-intellij-connector/' rel='bookmark' title='Developing Faster with the Atlassian IntelliJ Connector'>Developing Faster with the Atlassian IntelliJ Connector</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/01/07/bamboo-grails-and-git-for-continuous-integration/' rel='bookmark' title='Bamboo, Grails and Git for Continuous Integration'>Bamboo, Grails and Git for Continuous Integration</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kellyrob99.com/blog/2010/01/27/thanks-for-the-shirt-atlassian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bamboo, Grails and Git for Continuous Integration</title>
		<link>http://www.kellyrob99.com/blog/2010/01/07/bamboo-grails-and-git-for-continuous-integration/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=bamboo-grails-and-git-for-continuous-integration</link>
		<comments>http://www.kellyrob99.com/blog/2010/01/07/bamboo-grails-and-git-for-continuous-integration/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 05:13:53 +0000</pubDate>
		<dc:creator>TheKaptain</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Atlassian]]></category>
		<category><![CDATA[Bamboo]]></category>
		<category><![CDATA[Continuous integration]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Jira]]></category>
		<category><![CDATA[theKaptain]]></category>

		<guid isPermaLink="false">http://www.kellyrob99.com/blog/?p=1015</guid>
		<description><![CDATA[Following up on my recent installation of the Atlassian product suite at home, I had a really positive experience setting up Bamboo to work with several of my recent Grails projects. Bamboo has proven to be a powerful and essential tool at my day job and I&#8217;ve really been looking forward to putting it to [...]
Related posts:<ol>
<li><a href='http://www.kellyrob99.com/blog/2009/12/16/jira-grails-plugin/' rel='bookmark' title='Jira Grails Plugin'>Jira Grails Plugin</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/02/21/developing-faster-with-the-atlassian-intellij-connector/' rel='bookmark' title='Developing Faster with the Atlassian IntelliJ Connector'>Developing Faster with the Atlassian IntelliJ Connector</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/03/21/gource-visualizations-of-the-groovygrailsgriffon-projects/' rel='bookmark' title='Gource Visualizations of the Groovy/Grails/Griffon Projects'>Gource Visualizations of the Groovy/Grails/Griffon Projects</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Following up on my recent installation of the <a class="zem_slink" href="http://www.atlassian.com/" title="Atlassian" rel="homepage">Atlassian</a> product suite at home, I had a really positive experience setting up Bamboo to work with several of my recent Grails projects.  Bamboo has proven to be a powerful and essential tool at my day job and I&#8217;ve really been looking forward to putting it to work for my personal projects.   I&#8217;ve also been using <a class="zem_slink" href="http://git-scm.com/" title="Git (software)" rel="homepage">Git</a> for a repository lately, and while I have nothing but praise for my good friend svn, I have to say the ability to set up a new repository in 2 seconds flat is pretty damn convenient.</p>
<p>Since neither Grails nor Git are by default supported by Bamboo, I grabbed a couple of plugins to enable my home <a class="zem_slink" href="http://en.wikipedia.org/wiki/Continuous_integration" title="Continuous integration" rel="wikipedia">continuous integration</a> system. Bamboo has a very sensible plugin model that allows for adding new capabilites with only a jar file in the right place and a server restart, and a <a href="https://plugins.atlassian.com/plugin/home">fairly rich library of plugins</a>. It&#8217;s also encouraging to see a company that is committed to eating their own dog food &#8211; recently they&#8217;ve moved their plugin resources to <a class="zem_slink" href="http://www.atlassian.com/software/jira" title="JIRA" rel="homepage">Jira</a> studio as you can see on the <a href="https://labs.atlassian.com/wiki/display/GRAILS/Home">Grails plugin home page</a>. This gives you as the consumer of the software access to the wiki&#8217;d documentation, any open issues, and even visibility into when source code changes are committed. I&#8217;m assuming that last is subject to whether or not the plugin source code is open source or not, but still &#8211; pretty nifty.</p>
<p>The Grails plugin instructions speak for themselves in the 3 screen-shots on the one and only wiki page. Anything else you need to know is summarized in a one liner on the &#8220;Builder&#8221; tab when you select the Grails builder: &#8220;Use a new line to seperate Grails commands.&#8221; Gotta love clear, simple instructions. Drop the plugin jar into $BAMBOO_INSTALL_DIR/webapp/WEB-INF/lib, restart Bamboo and <a href="http://confluence.atlassian.com/display/BAMBOO/Configuring+a+new+Builder">configure a new builder for Grails</a>. Took a couple of minutes and knowing where my Grails install was located.</p>

<a href="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/addingbamboograilsbuilder.png" title="Adding the builder definition to Bamboo" class="shutterset_singlepic30" >
	<img class="ngg-singlepic" src="http://www.kellyrob99.com/blog/wp-content/gallery/cache/30__750x_addingbamboograilsbuilder.png" alt="Adding the builder definition to Bamboo" title="Adding the builder definition to Bamboo" />
</a>

<p>A quick Google for &#8220;Bamboo git plugin&#8221; led to a bit of a hypertext chase that <a href="http://github.com/krosenvold/bgit">eventually ended up here</a>.  Looks like this particular plugin has passed through the hands of <a href="http://jira.atlassian.com/browse/BAM-2875">at least a couple of maintainers</a>, but so far it&#8217;s worked exactly as advertised.  And again, loving the dog food analogy, it&#8217;s nice to see a project enabling Git hosted on github. Thanks very much to <a href="http://incodewetrustinc.blogspot.com/">Kristian Rosenvold</a> for running with the ball on this one! Again, drop the jar into $BAMBOO_INSTALL_DIR/webapp/WEB-INF/lib and restart Bamboo. When creating a plan you will now have Git as a choice for a Source Repository. In my case I&#8217;m just using a plain file repository that resides on the build box, but it should work just as well with a remote repository.</p>

<a href="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/bamboogitsetup.png" title="Select Git as the source repository for a Bamboo plan" class="shutterset_singlepic31" >
	<img class="ngg-singlepic" src="http://www.kellyrob99.com/blog/wp-content/gallery/cache/31__750x_bamboogitsetup.png" alt="Select Git as the source repository for a Bamboo plan" title="Select Git as the source repository for a Bamboo plan" />
</a>

<p>Setting up the Grails targets is similarly straightforward. Thanks to <a href="http://today.java.net/pub/a/today/2009/06/23/Grails-and-Continuous-Integration.html">this article</a>, which describes the Grails setup on Hudson, and reminded me about the &#8211;non-interactive flag since obviously the build server isn&#8217;t going to be able to interact with the console. I&#8217;m also using a couple of Grails plugins to provide static source code analysis so my parameters also include -coverage and a call to the codenarc script.</p>

<a href="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/bamboograilssetup.png" title="Select Grails as a builder and specify which scripts to call for a Bamboo plan" class="shutterset_singlepic32" >
	<img class="ngg-singlepic" src="http://www.kellyrob99.com/blog/wp-content/gallery/cache/32__750x_bamboograilssetup.png" alt="Select Grails as a builder and specifying which scripts to call for a Bamboo plan" title="Select Grails as a builder and specifying which scripts to call for a Bamboo plan" />
</a>

<p>I had a little trepidation about how this would all turn out after <a href="http://www.dish2dish.com/confluence/display/NPB/2009/12/26/Grails+and+Tools+In+A+Corporate+World">reading this blog post</a>, but I&#8217;ve had much better results so far in my personal experience. It&#8217;s entirely possible that the key differentiator is wrapping Grails with Maven. It&#8217;s definitely not perfect, but it is <a href="http://www.guntheranderson.com/v/data/gettingb.htm">getting better all the time</a>. Hopefully you have better luck in the future Neil!</p>

<div class="ngg-galleryoverview" id="ngg-gallery-8-1015">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://www.kellyrob99.com/blog/2010/01/07/bamboo-grails-and-git-for-continuous-integration/?show=slide">
			[Show as slideshow]		</a>
	</div>

	<!-- Piclense link -->
	<div class="piclenselink">
		<a class="piclenselink" href="javascript:PicLensLite.start({feedUrl:'http://www.kellyrob99.com/blog/wp-content/plugins/nextgen-gallery/xml/media-rss.php?gid=8&amp;mode=gallery'});">
			[View with PicLens]		</a>
	</div>
	
	<!-- Thumbnails -->
		
	<div id="ngg-image-30" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/addingbamboograilsbuilder.png" title="Adding the builder definition to Bamboo" class="shutterset_set_8" >
								<img title="Adding the builder definition to Bamboo" alt="Adding the builder definition to Bamboo" src="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/thumbs/thumbs_addingbamboograilsbuilder.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-31" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/bamboogitsetup.png" title="Select Git as the source repository for a Bamboo plan" class="shutterset_set_8" >
								<img title="Select Git as the source repository for a Bamboo plan" alt="Select Git as the source repository for a Bamboo plan" src="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/thumbs/thumbs_bamboogitsetup.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-32" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/bamboograilssetup.png" title="Select Grails as a builder and specify which scripts to call for a Bamboo plan" class="shutterset_set_8" >
								<img title="Select Grails as a builder and specifying which scripts to call for a Bamboo plan" alt="Select Grails as a builder and specifying which scripts to call for a Bamboo plan" src="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/thumbs/thumbs_bamboograilssetup.png" width="98" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-33" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/bamboorequirementssetup.png" title="All requirements satisfied to run a Bamboo plan!" class="shutterset_set_8" >
								<img title="All requirements satisfied to run a Bamboo plan!" alt="All requirements satisfied to run a Bamboo plan!" src="http://www.kellyrob99.com/blog/wp-content/gallery/bamboo-grails-and-git/thumbs/thumbs_bamboorequirementssetup.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/38734ac1-c6ec-4339-aaf2-b09678979e9b/" title="Reblog this post [with Zemanta]"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_c.png?x-id=38734ac1-c6ec-4339-aaf2-b09678979e9b" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>
<p>Related posts:<ol>
<li><a href='http://www.kellyrob99.com/blog/2009/12/16/jira-grails-plugin/' rel='bookmark' title='Jira Grails Plugin'>Jira Grails Plugin</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/02/21/developing-faster-with-the-atlassian-intellij-connector/' rel='bookmark' title='Developing Faster with the Atlassian IntelliJ Connector'>Developing Faster with the Atlassian IntelliJ Connector</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/03/21/gource-visualizations-of-the-groovygrailsgriffon-projects/' rel='bookmark' title='Gource Visualizations of the Groovy/Grails/Griffon Projects'>Gource Visualizations of the Groovy/Grails/Griffon Projects</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kellyrob99.com/blog/2010/01/07/bamboo-grails-and-git-for-continuous-integration/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Atlassian: Here Be Dragons</title>
		<link>http://www.kellyrob99.com/blog/2010/01/02/atlassian-here-be-dragons/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=atlassian-here-be-dragons</link>
		<comments>http://www.kellyrob99.com/blog/2010/01/02/atlassian-here-be-dragons/#comments</comments>
		<pubDate>Sat, 02 Jan 2010 18:16:12 +0000</pubDate>
		<dc:creator>TheKaptain</dc:creator>
				<category><![CDATA[Cool Toys]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Atlassian]]></category>
		<category><![CDATA[Bamboo]]></category>
		<category><![CDATA[Configuration Management]]></category>
		<category><![CDATA[Confluence]]></category>
		<category><![CDATA[Continuous integration]]></category>
		<category><![CDATA[Crowd]]></category>
		<category><![CDATA[Fisheye]]></category>
		<category><![CDATA[Jira]]></category>
		<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[theKaptain]]></category>
		<category><![CDATA[Wiki]]></category>

		<guid isPermaLink="false">http://www.kellyrob99.com/blog/?p=956</guid>
		<description><![CDATA[I&#8217;ve been using Atlassian tools at work for a few years now, and it&#8217;s hard to imagine how much different developing software would be without them. For those of you who aren&#8217;t familiar with Atlassian, here&#8217;s the 10,000 foot view. The Atlassian Toolbox Jira is the cornerstone of the stack and, with the addition of [...]
Related posts:<ol>
<li><a href='http://www.kellyrob99.com/blog/2010/01/27/thanks-for-the-shirt-atlassian/' rel='bookmark' title='Thanks for the shirt Atlassian!'>Thanks for the shirt Atlassian!</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/02/21/developing-faster-with-the-atlassian-intellij-connector/' rel='bookmark' title='Developing Faster with the Atlassian IntelliJ Connector'>Developing Faster with the Atlassian IntelliJ Connector</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/01/07/bamboo-grails-and-git-for-continuous-integration/' rel='bookmark' title='Bamboo, Grails and Git for Continuous Integration'>Bamboo, Grails and Git for Continuous Integration</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been using <a class="zem_slink" title="Atlassian" rel="homepage" href="http://www.atlassian.com/">Atlassian</a> tools at work for a few years now, and it&#8217;s hard to imagine how much different developing software would be without them.  For those of you who aren&#8217;t familiar with Atlassian, here&#8217;s the 10,000 foot view.</p>
<p></p>
<h2>The Atlassian Toolbox</h2>
<p><a class="zem_slink" title="JIRA" rel="homepage" href="http://www.atlassian.com/software/jira">Jira</a> is the cornerstone of the stack and, with the addition of the &#8216;Agile&#8217; <a href="http://www.atlassian.com/software/greenhopper/">GreenHopper</a> plugin, is an ideal tool for tying together issue tracking and project planning in one easy to work with bundle. <a href="http://www.atlassian.com/software/crucible/">Crucible</a> and <a class="zem_slink" title="FishEye (software)" rel="homepage" href="http://www.atlassian.com/software/fisheye">Fisheye</a> provide peer review and repository browsing. The <a class="zem_slink" title="Confluence (software)" rel="homepage" href="http://atlassian.com/confluence">Confluence</a> wiki provides a great framework for organizing and sharing knowledge. <a class="zem_slink" title="Bamboo (software)" rel="homepage" href="http://www.atlassian.com/software/bamboo">Bamboo</a> is an extremely versatile continuous integration platform. <a href="http://www.atlassian.com/software/crowd/">Crowd</a> provides SSO and identity management. And they all can link together nicely to provide consolidated views spanning the entire stack.</p>
<p></p>
<h2>Here Be Dragons</h2>
<p>Late in 2009 Atlassian started a <a href="http://www.atlassian.com/starter/all.jsp">new marketing campaign</a> geared towards smaller deployments: $60 to purchase 10 user licenses for the entire software stack, including 30 day trial licenses with support. Previously some of the applications were available for personal use(2 or 3 Users only) at no cost, and indeed I have a Confluence install I&#8217;ve been using for the last year, but this deal makes the entire stack available at what is really a very reasonable price. And they even include a <a href="http://confluence.atlassian.com/display/ATLAS/Here+Be+Dragons">fun, if slightly corny, tutorial</a> which guides you through installing and configuring all of the applications to link them together. So here&#8217;s my experience &#8216;Slaying the Dragon&#8217;.</p>

<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian/dragon_badge04.png" title="" class="shutterset_singlepic28" >
	<img class="ngg-singlepic" src="http://www.kellyrob99.com/blog/wp-content/gallery/cache/28__x_dragon_badge04.png" alt="dragon_badge04" title="dragon_badge04" />
</a>

<p>The very first thing I discovered was that my years old Intel iMac with 1GB of memory just wasn&#8217;t going to cut it. The recommendation is for 2GB of memory and &#8220;No other applications running — just the operating system, JAVA, <a class="zem_slink" href="http://www.postgresql.org/" title="PostgreSQL" rel="homepage">PostgreSQL</a> and the Atlassian applications&#8221; so I of course took that as an opportunity to ask Santa for a memory upgrade.</p>
<p>Ten days later, with 4GB of brand new RAM installed I got much further than the SLOW grind that was Crowd + Jira + Confluence + iTunes fighting with each other over 1 gig of memory(shudder). Aside from a couple of minor hiccups, everything installed without hassle and the instructions were nothing short of spectacular. I did have to make some tweaks to the postgres database configuration upping the number of allowed connections; apparently this setup is more than a little connection hungry, tsk tsk. Crowd is the one application I&#8217;m least familiar with, and integrating with it seemed to be the most actual &#8216;work&#8217; but hey &#8211; if manually copying around and modifying a couple of configuration files is the biggest hassle involved in providing SSO for 5 enterprise apps, I think I can live with it.&nbsp; I am probably going to have to bite the bullet and invest in a more practical server machine, but I&#8217;m pretty sure the 2010 budget can find room for at least one new computer. </p>
<p></p>
<h2>Been There, Done That, Where&#8217;s my T-shirt?</h2>
<p>I&#8217;ve already started to plan out milestones for the new year&#8217;s projects in Jira, so I guess I&#8217;m already committed to paying the $60 when my trial period expires. Especially when Atlassian is donating all proceeds to <a href="http://www.roomtoread.org/">Room to Read</a>. I get enterprise-ready software for cheap AND all the money goes to a good cause. Win-win in my books &#8211; and a great job by Atlassian(on both the software and the charitable good.) Did I mention they&#8217;re sending out free t-shirts to anyone who completes the challenge?<br />
 <img src='http://www.kellyrob99.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In the gallery below is a screen shot for the single Jira Dashboard view you end up with at the end of the exercise. It ties together activity from each of the applications into one homogeneous view, and each widget is color coded to represent where the data is being drawn from. If you&#8217;re looking for an affordable solution to help streamline your work at home or in a small development team, check it out!<br />

<div class="ngg-galleryoverview" id="ngg-gallery-7-956">

	<!-- Slideshow link -->
	<div class="slideshowlink">
		<a class="slideshowlink" href="http://www.kellyrob99.com/blog/2010/01/02/atlassian-here-be-dragons/?show=slide">
			[Show as slideshow]		</a>
	</div>

	<!-- Piclense link -->
	<div class="piclenselink">
		<a class="piclenselink" href="javascript:PicLensLite.start({feedUrl:'http://www.kellyrob99.com/blog/wp-content/plugins/nextgen-gallery/xml/media-rss.php?gid=7&amp;mode=gallery'});">
			[View with PicLens]		</a>
	</div>
	
	<!-- Thumbnails -->
		
	<div id="ngg-image-28" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian/dragon_badge04.png" title=" " class="shutterset_set_7" >
								<img title="dragon_badge04" alt="dragon_badge04" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian/thumbs/thumbs_dragon_badge04.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-29" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian/slayedthedragon.png" title=" " class="shutterset_set_7" >
								<img title="slayedthedragon" alt="slayedthedragon" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian/thumbs/thumbs_slayedthedragon.png" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-34" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian/img_1405.jpg" title="Well earned and bright green, I&amp;#039;ll wear it with pride." class="shutterset_set_7" >
								<img title="Here&amp;#039;s the t-shirt" alt="Here&amp;#039;s the t-shirt" src="http://www.kellyrob99.com/blog/wp-content/gallery/atlassian/thumbs/thumbs_img_1405.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>

</p>
<div class="zemanta-pixie"><a class="zemanta-pixie-a" title="Reblog this post [with Zemanta]" href="http://reblog.zemanta.com/zemified/c5c88f70-41dd-4e11-8a85-65f9707f5e09/"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_c.png?x-id=c5c88f70-41dd-4e11-8a85-65f9707f5e09" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script src="http://static.zemanta.com/readside/loader.js" type="text/javascript"></script></span></div>
<p>Related posts:<ol>
<li><a href='http://www.kellyrob99.com/blog/2010/01/27/thanks-for-the-shirt-atlassian/' rel='bookmark' title='Thanks for the shirt Atlassian!'>Thanks for the shirt Atlassian!</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/02/21/developing-faster-with-the-atlassian-intellij-connector/' rel='bookmark' title='Developing Faster with the Atlassian IntelliJ Connector'>Developing Faster with the Atlassian IntelliJ Connector</a></li>
<li><a href='http://www.kellyrob99.com/blog/2010/01/07/bamboo-grails-and-git-for-continuous-integration/' rel='bookmark' title='Bamboo, Grails and Git for Continuous Integration'>Bamboo, Grails and Git for Continuous Integration</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kellyrob99.com/blog/2010/01/02/atlassian-here-be-dragons/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Jira Grails Plugin</title>
		<link>http://www.kellyrob99.com/blog/2009/12/16/jira-grails-plugin/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=jira-grails-plugin</link>
		<comments>http://www.kellyrob99.com/blog/2009/12/16/jira-grails-plugin/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 08:31:16 +0000</pubDate>
		<dc:creator>TheKaptain</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Atlassian]]></category>
		<category><![CDATA[Grails]]></category>
		<category><![CDATA[Groovy]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Jira]]></category>
		<category><![CDATA[MOP]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[theKaptain]]></category>
		<category><![CDATA[XML-RPC]]></category>

		<guid isPermaLink="false">http://www.kellyrob99.com/blog/?p=958</guid>
		<description><![CDATA[I set out to explore some of the Atlassian API&#8217;s this week, along with a test drive of Jira 4, and ended up developing a simple XML-RPC plugin for Grails. Utilizing little more than the Groovy XMLRPC library I was able to implement a client service for the Jira XmlRpcService in minutes. Nothing terribly complicated [...]
Related posts:<ol>
<li><a href='http://www.kellyrob99.com/blog/2010/01/07/bamboo-grails-and-git-for-continuous-integration/' rel='bookmark' title='Bamboo, Grails and Git for Continuous Integration'>Bamboo, Grails and Git for Continuous Integration</a></li>
<li><a href='http://www.kellyrob99.com/blog/2011/04/03/a-groovygradle-jslint-plugin/' rel='bookmark' title='A Groovy/Gradle JSLint Plugin'>A Groovy/Gradle JSLint Plugin</a></li>
<li><a href='http://www.kellyrob99.com/blog/2009/10/25/grails-ui-datatable-using-xml-for-a-model/' rel='bookmark' title='Grails-UI DataTable using XML for a model'>Grails-UI DataTable using XML for a model</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>I set out to explore some of the Atlassian API&#8217;s this week, along with a test drive of <a href="http://www.atlassian.com/software/jira/">Jira 4</a>, and ended up developing a simple XML-RPC plugin for <a href="http://grails.org/">Grails</a>. Utilizing little more than the <a href="http://groovy.codehaus.org/XMLRPC">Groovy XMLRPC library</a> I was able to implement a client service for the Jira XmlRpcService in minutes.</p>
<p>Nothing terribly complicated going on for this plugin. Aside from the XMLRPC library and one more jar it depends upon there&#8217;s a service which implements calls for all of the methods on the XmlRpcService interface and a &#8216;helper&#8217; class that makes using it a little easier(removes the need to pass the host name into each method).  And any controller injected with the service gets a withJira(hostname, Closure) method which wraps the &#8216;helper&#8217; class. This might not be the optimal way to do things, but I was looking for some better experience with MOP&#8217;ing in Groovy along with this little project so it worked out perfectly for me.</p>
<p>The method added to Controller classes just creates a &#8216;helper&#8217; and sets it as the delegate for the closure.</p>
<pre class="brush: groovy; title: ; notranslate">
        cClass.metaClass.withJira = {String hostname, Closure closure -&gt;
            def helper = delegate.jiraXmlRpcService.createHelper(hostname)
            closure.setDelegate(helper)
            closure.setResolveStrategy(Closure.DELEGATE_FIRST)
            closure()
        }
</pre>
<p>Calling the withJira method looks like this, along with minimal exception handling:</p>
<pre class="brush: groovy; title: ; notranslate">
            try
            {
                def projects, priorities, serverInfo
                withJira(jiraInstance.baseUrl) {
                    def token = login(jiraInstance.userName, jiraInstance.password)
                    serverInfo = getServerInfo(token)
                    priorities = getPriorities(token)
                    projects = getProjectsNoSchemes(token)
                    logout(token)
                }
                [jiraInstance: jiraInstance, projects: projects, priorities: priorities, serverInfo: serverInfo]
            }
            catch (e)
            {
                flash.message = &quot;Failed to load data from ${jiraInstance.baseUrl}&quot;
                redirect(action: &quot;list&quot;)
            }
</pre>
<p>The &#8216;helper&#8217; class itself represents an experiment with the Groovy &#8216;methodMissing&#8217; behaviour. The idea is to store the &#8216;hostname&#8217; for a series of calls against the stateless service and add that as the first parameter for all wrapped methods. It was simple and quick, but right off the bat you lose the ability to use IDE syntax completion support on this object. I thought another possibility here would be to use the @Delegate annotation on the service and/or Closure currying to add the additional &#8216;hostname&#8217; parameter to methods.</p>
<pre class="brush: groovy; title: ; notranslate">
class JiraXmlRpcServiceHelper
{
    def hostname
    def JiraXmlRpcService service

    def methodMissing(String name, args)
    {
        assert hostname &amp;amp;&amp;amp; service
        def method = service.metaClass.methods.find {it.name == name}
        if(!method)
        {
            throw new NotImplementedException(&quot;The $name method is not implemented for ${this.getClass()}&quot;)
        }

        def newArgs = [hostname]
        args.each{newArgs &amp;lt;&amp;lt; it}
        return method.invoke(service, newArgs as Object[])
    }
}
</pre>
<p>This plugin works with Grails 1.2.0.RC1 and represents about 8 hours of work all told &#8211; and a lot of fun to make! Jira 4 is not too shappy either, especially with the GreenHopper plugin. But that&#8217;s a post for another day.</p>
<p>A special thank you to <a href="http://www.manning.com/gsmith/">Grails in Action</a> and <a href="http://naleid.com/blog/2009/06/25/groovy-closures-make-unit-testing-with-soft-asserts-simple/">this article by Ted Naleid</a> &#8211; both were extremely helpful putting this together. If you care to download it and take a spin here it is. Feedback is always welcome!</p>
<a class="downloadlink" href="http://www.kellyrob99.com/blog/wp-content/plugins/download-monitor/download.php?id=1" title="Version0.1 downloaded 261 times" >V0.1 of JiraGrailsPlugin (261)</a>
<div class="zemanta-pixie"><a class="zemanta-pixie-a" href="http://reblog.zemanta.com/zemified/3963a585-41c6-4cbb-a3b3-d2c006799a09/" title="Reblog this post [with Zemanta]"><img class="zemanta-pixie-img" src="http://img.zemanta.com/reblog_e.png?x-id=3963a585-41c6-4cbb-a3b3-d2c006799a09" alt="Reblog this post [with Zemanta]" /></a><span class="zem-script more-related pretty-attribution"><script type="text/javascript" src="http://static.zemanta.com/readside/loader.js" defer="defer"></script></span></div>
<p>Related posts:<ol>
<li><a href='http://www.kellyrob99.com/blog/2010/01/07/bamboo-grails-and-git-for-continuous-integration/' rel='bookmark' title='Bamboo, Grails and Git for Continuous Integration'>Bamboo, Grails and Git for Continuous Integration</a></li>
<li><a href='http://www.kellyrob99.com/blog/2011/04/03/a-groovygradle-jslint-plugin/' rel='bookmark' title='A Groovy/Gradle JSLint Plugin'>A Groovy/Gradle JSLint Plugin</a></li>
<li><a href='http://www.kellyrob99.com/blog/2009/10/25/grails-ui-datatable-using-xml-for-a-model/' rel='bookmark' title='Grails-UI DataTable using XML for a model'>Grails-UI DataTable using XML for a model</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.kellyrob99.com/blog/2009/12/16/jira-grails-plugin/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

