<?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>Denver Dev Blog &#187; Maven</title>
	<atom:link href="http://ambientideas.com/blog/index.php/tag/maven/feed/" rel="self" type="application/rss+xml" />
	<link>http://ambientideas.com/blog</link>
	<description>Matthew McCullough&#039;s insights on software development as co-founder of Ambient Ideas, LLC</description>
	<lastBuildDate>Wed, 23 Nov 2011 17:42:26 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.4</generator>
		<item>
		<title>Presenting Encryption, Maven at Øredev in Malmö, Sweden</title>
		<link>http://ambientideas.com/blog/index.php/2010/11/presenting-at-oredev/</link>
		<comments>http://ambientideas.com/blog/index.php/2010/11/presenting-at-oredev/#comments</comments>
		<pubDate>Fri, 12 Nov 2010 15:50:15 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Presenting]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2010/11/presenting-encryption-maven-at-%c3%b8redev-in-malmo-sweden/</guid>
		<description><![CDATA[I had the pleasure of presenting two talks at Øredev this week. For those of you that asked, here are the slides and the code samples.]]></description>
			<content:encoded><![CDATA[<p><a href="http://oredev.org/2010" target="_blank"><img src="http://ambientideas.com/blog/wp-content/uploads/2010/08/Oredev-Logo.jpg"></img></a></p>
<p>I had the pleasure of <a href="http://oredev.org/2010/speakers/matthew-mccullough" target="_blank">presenting two talks</a> at <a href="http://oredev.org/2010" target="_blank">Øredev</a> this week. For those of you that asked, here are the slides and the code samples:</p>
<ul>
<li>Maven 3</li>
<ul>
<li><a href="http://www.slideshare.net/matthewmccullough/maven-30-at-oredev" target="_blank">Maven 3 Slides</a></li>
<li><a href="https://github.com/matthewmccullough/maven-training" target="_blank">Maven 3 Code Samples</a></li>
</ul>
<li>Encryption on the JVM</li>
<ul>
<li><a href="http://www.slideshare.net/matthewmccullough/encryption-boot-camp-at-redev" target="_blank">Encryption Slides</a></li>
<li><a href="https://github.com/matthewmccullough/encryption-jvm-bootcamp" target="_blank">Encryption Code Samples</a></li>
</ul>
</ul>
<p><a href="http://twitter.com/brush2000/status/3060970897285120">Comments</a> and feedback in both positive and constructive criticism formats are greatly valued. Drop me a line via <a href="mailto:matthewm@ambientideas.com">email</a> or <a href="http://twitter.com/matthewmccull">twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2010/11/presenting-at-oredev/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presenting at the Raleigh-Durham No Fluff Just Stuff Symposium</title>
		<link>http://ambientideas.com/blog/index.php/2010/08/presenting-at-the-raleigh-durham-no-fluff-just-stuff-symposium/</link>
		<comments>http://ambientideas.com/blog/index.php/2010/08/presenting-at-the-raleigh-durham-no-fluff-just-stuff-symposium/#comments</comments>
		<pubDate>Mon, 30 Aug 2010 03:10:19 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Clojure]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[NFJS]]></category>
		<category><![CDATA[Presenting]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2010/08/presenting-at-the-raleigh-durham-no-fluff-just-stuff-symposium/</guid>
		<description><![CDATA[This week, I made a four day journey to the very forested state of North Carolina. Joey knew a Coloradoan was coming and turned on the statewide AC to bring it down to a comfortable 72 degrees Fahrenheit when I landed. The food was great, the people were super, and the technology was awesome.]]></description>
			<content:encoded><![CDATA[<h2>North Carolina</h2>
<p>This week, I made a four day journey to the very forested state of North Carolina. <a href="http://twitter.com/joeyhalloway">Joey</a> knew a Coloradoan was coming and turned on the statewide AC to bring it down to a comfortable 72 degrees Fahrenheit when I landed. The food was great, the people were super, and the technology was awesome.</p>
<h2>Relevance</h2>
<p>I had an open invitation to come out and visit the team at <a href="http://thinkrelevance.com">Relevance</a>, which I&#8217;d been waiting to cash in. The <a href="http://nofluffjuststuff.com">Research Triangle NFJS Symposium</a> finally made that visit possible.</p>
<p>I had a great time meeting the entire Relevance team, working with <a href="http://thinkrelevance.com/the_team.html">Stu Halloway</a> on automating the <a href="http://clojure.org">Clojure</a> release scripts through some <a href="http://www.gnu.org/software/bash/manual/bashref.html">Bash scripting</a>, <a href="http://git-scm.com">Git calls</a> and <a href="http://maven.apache.org/ant-tasks/index.html">Maven Ant Tasks</a>.</p>
<p>At lunch, I gave a live demo of my workflow with the <a href="http://www.devon-technologies.com/products/devonthink/">DevonThink Pro</a> product, including capturing and aggregating multiple RSS streams alongside archived emails and snippets from web pages.</p>
<p>In the afternoon, I had the fun assignment of working with <a href="http://thinkrelevance.com/the_team.html">Aaron Bedra</a> on an implementation of JCE symmetric AES encryption on a Clojure project. He followed up a day later on <a href="http://thinkrelevance.com/open-source/">&#8220;Relevance Open Source Friday&#8221;</a> by beginning to move the implementations over to a standard library for upcoming public consumption.</p>
<h2>No Fluff, Just Stuff</h2>
<p>I had the pleasure of presenting Encryption, Open Source Debugging on the JVM (over 50 deliveries of that one now), Hadoop, <a href="http://maven.apache.org">Maven 3</a> and <a href="http://git-scm.com">Git</a> to the engaged audience in Raleigh on Friday and Saturday. The during-presentation questions were spot on, and even when the topics got heady, the students just leaned forward in their chairs and kept on making insightful inquiries. Attendees of that nature are pure candy to a <a href="http://presentationpatterns.com">passionate presenter</a> like myself. I especially want to thank <a href="https://twitter.com/darinpope">Darin Pope</a>, <a href="https://twitter.com/billysixstring">Billy Dupre</a>, <a href="https://twitter.com/technobuzznc">David Bloom</a>, <a href="https://twitter.com/deininger">David Deininger</a>, <a href="https://twitter.com/srisankaran">Sri Sankaran</a>, <a href="https://twitter.com/arashid">Asif Rashid</a>, and <a href="https://twitter.com/egsavage">Ed Savage</a> for providing much-desired <a href="https://twitter.com/deininger/status/22463597529">feedback on Twitter</a>.</p>
<p>I know I&#8217;ll be back for the <a href="http://nofluffjuststuff.com">NFJS</a> show next year, but I&#8217;ll make all efforts to put in a few more visits prior to that. A city with a technology culture of this strength demands that I do. Thanks for having me and perhaps I&#8217;ll see some of you at the <a href="http://therichwebexperience.com">Rich Web Experience in December</a> on the beaches of sunny Florida.</p>
<h2>Resources</h2>
<p>For the folks that attended my talks this weekend, here are some constantly updated supplemental materials to resources that are paired with the slides:</p>
<h3>Encryption</h3>
<ul>
<li><a href="http://www.delicious.com/matthew.mccullough/bundle:encryption">Encryption, Delicious Bookmarks</a></li>
<li><a href="http://github.com/matthewmccullough/encryption-jvm-bootcamp">Encryption, Source Code Samples</a></li>
</ul>
<h3>Open Source Debugging</h3>
<ul>
<li><a href="http://www.delicious.com/matthew.mccullough/opensource+debugging">Open Source Debugging on the JVM, Delicious Bookmarks</a></li>
<li><a href="http://github.com/matthewmccullough/opensourcedebuggingjava">Open Source Debugging on the JVM, Source Code Samples</a></li>
</ul>
<h3>Hadoop</h3>
<ul>
<li><a href="http://www.delicious.com/matthew.mccullough/hadoop">Hadoop, Delicious Bookmarks</a></li>
<li><a href="http://github.com/matthewmccullough/hadoop-intro">Hadoop, Source Code Samples</a></li>
</ul>
<h3>Maven 3</h3>
<ul>
<li><a href="http://www.delicious.com/matthew.mccullough/maven">Maven 3, Delicious Bookmarks</a></li>
<li><a href="http://github.com/matthewmccullough/maven-training">Maven 3, Source Code Samples</a></li>
</ul>
<h3>Git</h3>
<ul>
<li><a href="http://www.delicious.com/matthew.mccullough/git">Git, Delicious Bookmarks</a></li>
<li><a href="http://github.com/matthewmccullough/git-workshop">Git, Source Code Samples</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2010/08/presenting-at-the-raleigh-durham-no-fluff-just-stuff-symposium/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Presenting in Europe this Fall</title>
		<link>http://ambientideas.com/blog/index.php/2010/08/presenting-in-europe/</link>
		<comments>http://ambientideas.com/blog/index.php/2010/08/presenting-in-europe/#comments</comments>
		<pubDate>Mon, 09 Aug 2010 16:27:11 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Encryption]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Presenting]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2010/08/presenting-in-europe-at-javazone-%c3%b8redev-and-devoxx-this-fall/</guid>
		<description><![CDATA[The quality of materials &#216;redev has sent out to speakers has been amazing thus far, and literally table-discussion worthy for inclusion in our  Presentation Patterns book . ...  If you are in Europe, or are of a  traveling persuasion like I am , any one of these three venues would be a big enhancement to your knowledge and relevancy in the JVM development world in 2011. ]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m excited to announce that I&#8217;m presenting several informative talks in Europe and Scandinavia this Fall.</p>
<p>
<img src="http://ambientideas.com/blog/wp-content/uploads/2010/08/JavaZone-Logo.png" width="226" height="46" alt="JavaZone Logo.png" /><br/><br />
First up is <a href="http://javazone.no/incogito10/events/JavaZone%202010/sessions" target="_blank">JavaZone</a> in Oslo, Norway. I can&#8217;t believe this classy and large of a show is put on by a <a href="http://www.java.no/web/show.do?page=178" target="_blank">user group</a> (in a sports arena). Clearly, it has a great committee and a <a href="http://twitter.com/kristoffer79" target="_blank">great director</a> at the helm. This is where I first met the likes of <a href="http://olabini.com/" target="_blank">Ola Bini of JRuby</a> and <a href="http://kohsuke.org/" target="_blank">Kohsuke Kawaguchi</a> of Hudson fame.  If you are in reach of Norway, this is a must-see developer event with presenters gathered from all over the world.</p>
<p>
<img src="http://ambientideas.com/blog/wp-content/uploads/2010/08/Oredev-Logo.jpg" width="261" height="88" alt="Oredev Logo.jpg" /><br/><br />
Next up is the exciting <a href="http://oredev.org/2010/sessions/better-builds-with-maven-3-0" target="_blank">&Oslash;redev in Malmö, Sweden</a>. I&#8217;ve heard from my colleagues at <a href="http://www.nofluffjuststuff.com/home/main" target="_blank">No Fluff Just Stuff</a> that this is a stellar event. The quality of materials &Oslash;redev has sent out to speakers has been amazing thus far, and literally table-discussion worthy for inclusion in our <a href="http://www.presentationpatterns.com/" target="_blank">Presentation Patterns book</a>. I&#8217;m going to be in <a href="http://oredev.org/2010/speakers/evan-doll" target="_blank">every one of Evan Doll&#8217;s iOS sessions</a>.</p>
<p>
<img src="http://ambientideas.com/blog/wp-content/uploads/2010/08/Devoxx-Logo.jpg" width="300" height="112" alt="Devoxx Logo.jpeg" /><br/><br />
Finally, I&#8217;m presenting a nitro-enhanced version of <a href="http://www.slideshare.net/matthewmccullough/jvm-encryption-boot-camp-043" target="_blank">Encryption on the JVM</a> at <a href="http://www.devoxx.com/display/Devoxx2K10" target="_blank">Devoxx in Antwerpen, Belgium</a>. Another conference (<a href="http://jazoon.com/" target="_blank">like the awesome Jazoon</a>) in a movieplex? Anytime! No worrying about the size of code samples on the screen, that&#8217;s for sure. Is a 30 meter screen big enough for you? I hear that Devoxx is the JavaOne of Europe. The <a href="http://www.devoxx.com/display/Devoxx2K10/Conference" target="_blank">lineup of speakers is phenomenal</a>. I will be in a chair for every session besides mine.</p>
<p>
<img src="http://ambientideas.com/blog/wp-content/uploads/2010/08/TripIt-Logo.jpg" width="150" height="100" alt="TripIt Logo.jpg" /><br/><br />
If you are in Europe, or are of a <a href="http://www.tripit.com/people/matthewmccullough" target="_blank">traveling persuasion like I am</a>, any one of these three venues would be a big enhancement to your knowledge and relevancy in the JVM development world in 2011. I hope to meet many of you I&#8217;ve only spoken with digitally before. I&#8217;ve already received dozens of <a href="http://twitter.com/matthewmccull" target="_blank">&#8220;see you there messages.&#8221;</a> Add your name to that list.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2010/08/presenting-in-europe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updated Apache Tomcat Web Application Maven Archetypes via MuleSoft</title>
		<link>http://ambientideas.com/blog/index.php/2010/04/updated-apache-tomcat-web-application-maven-archetypes-via-mulesoft/</link>
		<comments>http://ambientideas.com/blog/index.php/2010/04/updated-apache-tomcat-web-application-maven-archetypes-via-mulesoft/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 04:39:13 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Tomcat]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2010/04/updated-apache-tomcat-web-application-maven-archetypes-via-mulesoft/</guid>
		<description><![CDATA[Previously, the file named archetype.xml lived in the src/main/resources/META-INF/ directory,  then it was relocated to src/main/resources/META-INF/maven , and finally, in full modern 2.0 form, has been additionally  renamed to src/main/resources/META-INF/maven/archetype-metadata.xml .  

... Lastly, for those of you that prefer a video walkthrough of the usage of these two archetypes,  check out our screencast demo  that takes you from start to finish of working with these valuable new tools in the Maven, Tomcat, Tcat, and web application development ecosystems.]]></description>
			<content:encoded><![CDATA[<h1>MuleSoft Tomcat Web App Maven Archetypes</h1>
<p>I&#8217;m pleased to announce that MuleSoft and I have collaborated to freshen the world&#8217;s two most commonly used <a href="http://maven.apache.org/archetype/maven-archetype-plugin/" title="Archetypes Definition">Maven Web Application Archetypes</a>, the <em>maven-archetype-webapp</em> and the <em>wicket-archetype-quickstart</em>.</p>
<h2>The Motivations</h2>
<p>These two archetypes had fallen out of date, both in terms of using the new Archetype 2.0 style metadata, as well as in the dependencies on the third-party libraries such as JUnit.  Due to limited volunteer developer time, when the Maven Archetype developers <a href="http://svn.apache.org/viewvc/maven/archetype/branches/archetype-1.0.x/maven-archetype-bundles/" title="1.0 Branch">moved from the 1.0</a> to the <a href="http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-samples/" title="2.0 Branch">2.0 branch</a> many of the existing archetypes did not successfully make the transition.  Thus, the public was having to make do by using old versions of these archetypes.</p>
<h2>The Update</h2>
<p>Given MuleSoft&#8217;s and my keen interest in the <a href="http://www.mulesoft.com/understanding-apache-tomcat">Apache Tomcat</a> ecosystem, including the enterprise-strength <a href="http://www.mulesoft.com/tcat-server-enterprise-tomcat-application-server">Tcat</a> product, we set out to bring these two aging archetypes up to date.  We found that easiest to do under the very open <a href="http://admin.muleforge.org/projects/maven2">MuleForge repository</a> &amp; <a href="http://github.com/mulesoft/mulesoft-maven-archetypes">GitHub source code hosting</a> for the near term, but we will be <a href="http://svn.apache.org/viewvc/maven/archetype/trunk/archetype-common/src/main/resources/archetype-catalog.xml?view=log">submitting a patch</a> to get these improvements back into the <a href="http://svn.apache.org/viewvc/maven/archetype/trunk/" title="Archetype 2.0 Source Code">core archetypes at Apache</a> too.</p>
<h2>Contributing back to community</h2>
<p>A week into the effort, the &#8220;update&#8221; turned into a complete &#8220;rewrite&#8221; of the archetypes to reap all the benefits of the Maven Archetype Plugin&#8217;s version 2.0 features.</p>
<p>The metadata has dramatically changed between the Maven Archetype 1.0 and 2.0 versions of the plugin.  Previously, the file named archetype.xml lived in the src/main/resources/META-INF/ directory, <a href="http://svn.apache.org/viewvc?view=revision&amp;revision=932937">then it was relocated to src/main/resources/META-INF/maven</a>, and finally, in full modern 2.0 form, has been additionally <a href="http://github.com/mulesoft/mulesoft-maven-archetypes/blob/master/maven-archetype-wicket/src/main/resources/META-INF/maven/archetype-metadata.xml">renamed to src/main/resources/META-INF/maven/archetype-metadata.xml</a>.</p>
<p>Similarly, variables inside source files were updated to use the ${} notation, with <a href="http://svn.apache.org/viewvc/maven/archetype/branches/archetype-1.0.x/maven-archetype-bundles/maven-archetype-quickstart/src/main/resources/archetype-resources/src/main/java/App.java?view=markup">legacy elements like $package</a> <a href="http://github.com/mulesoft/mulesoft-maven-archetypes/blob/master/maven-archetype-wicket/src/main/resources/archetype-resources/src/main/java/WicketApplication.java">updated to ${package}</a>.</p>
<p>The poms for the archetypes were updated from the <a href="http://github.com/mulesoft/mulesoft-maven-archetypes/blob/master/maven-archetype-wicket/pom.xml">old archetype plugin</a> type to <a href="http://github.com/mulesoft/mulesoft-maven-archetypes/blob/master/maven-archetype-wicket/pom.xml">use the new 2.0 lifecycle extensions</a></p>
<p>The <a href="http://github.com/mulesoft/mulesoft-maven-archetypes">resultant archetype code is hosted at GitHub</a> for easy viewing, consumption, technical review and forking.  We&#8217;d love to <a href="http://github.com/mulesoft/mulesoft-maven-archetypes/issues">get your input and improvements</a>!</p>
<p>These two archetypes now represent the most pristine use of the Maven Archetype Plugin v2.0 format.</p>
<h2>Integration Tests</h2>
<p>We didn&#8217;t want to stop at just updating the archetypes though.  We wanted to make them better.  So one of the most obvious ways to do that was through adding integration tests.  I can&#8217;t tell you how often I get asked for a good example of leveraging the <a href="http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html#Lifecycle_Reference">Maven pre-integration-test and post-integration-test lifecycle events</a>.  Up until now, I&#8217;ve been relatively empty handed to respond to this request, but finally we have some reference examples.</p>
<p>These lifecycles are now <a href="http://github.com/mulesoft/mulesoft-maven-archetypes/blob/master/maven-archetype-wicket/pom.xml">bound to the redeployment and undeployment of the web application artifact (WAR) and the execution of a JWebUnit integration test</a> that exercises and validates the home page on each of the JSP and Wicket flavors of web application.</p>
<h2>Instructions for Use</h2>
<p>We&#8217;ve built a wiki page showcasing the usage of this <a href="http://www.mulesoft.org/display/TCAT/MuleSoft+Tcat+Archetypes">archetype</a> which we also invite you to review and improve.  In short, you can inform Maven of the new archetype catalog via a quick execution of:</p>
<pre><code>mvn archetype:generate -DarchetypeCatalog=http://dist.muleforge.org/maven2/
</code></pre>
<p>Lastly, for those of you that prefer a video walkthrough of the usage of these two archetypes, <a href="http://www.youtube.com/watch?v=T7b4DgghZQ4">check out our screencast demo</a> that takes you from start to finish of working with these valuable new tools in the Maven, Tomcat, Tcat, and web application development ecosystems.</p>
<h2>Future Goals</h2>
<p>Like all good developers, we are always looking towards the next iteration, just as the current ones are drawing to successful close.  In the next release of these archetypes, or perhaps in supplemental sibling instances, we&#8217;re exploring:</p>
<ol>
<li>A zero-footprint, embedded <a href="http://www.mulesoft.com/download-tcat-server-enterprise-tomcat">Tcat installation</a> that can be retrieved from a Maven repository.</li>
<li>Profiles to allow for the integration tests to be selectively executed in a local or embedded Tomcat or Tcat installation, possibly auto-detected to activate the proper profile.</li>
<li>Support for Maven provisioning of completed artifacts into <a href="http://www.mulesoft.com/tcat-server-tomcat-administration-console">Tcat server groups</a>.</li>
</ol>
<h2>OSS Thanks</h2>
<p>In closing, we want to thank the <a href="http://tomcat.apache.org/">Tomcat community</a> for founding such a great product and the Maven community for planting the seeds of these new archetypes.  Java web application development is at its current fevered pitch, thanks, in large part, to these excellent tools and their communities.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2010/04/updated-apache-tomcat-web-application-maven-archetypes-via-mulesoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Encrypted SCM Passwords in Maven</title>
		<link>http://ambientideas.com/blog/index.php/2009/08/encrypted-scm-passwords-in-maven/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/08/encrypted-scm-passwords-in-maven/#comments</comments>
		<pubDate>Fri, 28 Aug 2009 15:54:04 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/08/encrypted-scm-passwords-in-maven/</guid>
		<description><![CDATA[<p>A little late night hacking and I was able to get encrypted passwords to work in the Maven SCM plugin with Maven 2.2 based on the prodding of Kurt Tometich , an NFJS attendee, and his JIRA bug# SCM-495 . ... The Maven Mojo Developer Cookbook did offer a bit of insight (though syntactically off a bit on the container.getLookupRealm() ) on how to get a handle to the container and look up the security provider , DefaultSecDispatcher.java. [java] SecDispatcher sd = null; try { sd = (SecDispatcher)container.lookup( SecDispatcher.... The only interesting finding was how, instead of putting the decryption on the accessor (getter) of password from the settings data structure, it is put in each place it is attempted to be used (e.g. the Wagon "dispatcher", and now the SCM "dispatcher").</p>
]]></description>
			<content:encoded><![CDATA[<p>A little late night hacking and I was able to get encrypted passwords to work in the Maven SCM plugin with <a href="http://maven.apache.org/" target="_blank">Maven 2.2</a> based on the <a href="http://www.nabble.com/SCM-plugin-password-encryption-td24967285.html" target="_blank">prodding of Kurt Tometich</a>, an NFJS attendee, and <a href="http://jira.codehaus.org/browse/SCM-495" target="_blank">his JIRA bug# SCM-495</a>. Previously, this <a href="http://maven.apache.org/guides/mini/guide-encryption.html" target="_blank">encryption feature</a> only worked for Wagon providers (the connectors for uploading artifacts), not for SCM providers, contrary to some blog comments.</p>
<p>It was quite the effort. After a few minutes, I found the code in <a href="http://svn.apache.org/viewvc/maven/maven-2/branches/maven-2.2.x/maven-core/src/main/java/org/apache/maven/DefaultMaven.java?revision=798706" target="_blank">DefaultMaven.java</a> that performed the decryption. Now, I thought, &#8220;just implement a similar call in <a href="http://svn.apache.org/viewvc/maven/scm/trunk/maven-scm-plugin/src/main/java/org/apache/maven/scm/plugin/AbstractScmMojo.java?revision=731240&amp;pathrev=731240jo.java?revision=731240&amp;pathrev=731240" target="_blank">AbstractScmMojo.java</a> right?&#8221; I harbor a bit of angst for the fact that the JIRA isn&#8217;t Fisheye-connected to the source code repository, so finding the files changed for a given defect is much harder than it should be.</p>
<p>The <a href="http://docs.codehaus.org/display/MAVENUSER/Mojo+Developer+Cookbook" target="_blank">Maven Mojo Developer Cookbook</a> did offer a bit of insight (though syntactically off a bit on the <code>container.getLookupRealm()</code>) on how to get a handle to the container and look up the <a href="http://svn.sonatype.org/spice/trunk/plexus-sec-dispatcher/src/main/java/org/sonatype/plexus/components/sec/dispatcher/DefaultSecDispatcher.java" target="_blank">security provider</a>, DefaultSecDispatcher.java.</p>
<p>
<pre class="brush: java; title: ;">
SecDispatcher sd = null;

try {
  sd = (SecDispatcher)container.lookup( SecDispatcher.ROLE, &amp;amp;amp;quot;maven&amp;amp;amp;quot; );
}
</pre>
</p>
<p>There was even the fabled &#8220;java.lang.ClassCastException: org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher cannot be cast to org.sonatype.plexus.components.sec.dispatcher.DefaultSecDispatcher&#8221; at one point. Oh nuts. Not the classloader scoping issue, please&#8230;</p>
<p>The trick on the classloader is that the <a href="http://svn.sonatype.org/spice/trunk/plexus-sec-dispatcher/src/main/java/org/sonatype/plexus/components/sec/dispatcher/DefaultSecDispatcher.java" target="_blank">DefaultSecDispatcher</a> class is available via a dependency to plexus-sec-dispatcher, but also included (repackaged) in the Maven core distribution maven-2.2.0-uber.jar. So the SCM provider project&#8217;s dependency on <a href="http://repo1.maven.org/maven2/org/sonatype/plexus/plexus-sec-dispatcher/" target="_blank">plexus-sec-dispatcher</a> has to be scoped as &lt;provided&gt; for compilation of the <a href="http://maven.apache.org/scm/plugins/index.html" target="_blank">maven-scm-plugin</a>.</p>
<p>Lots of learning about the Maven code base occurred. The only interesting finding was how, instead of putting the decryption on the accessor (getter) of password from the settings data structure, it is put in each place it is attempted to be used (e.g. the Wagon &#8220;dispatcher&#8221;, and now the SCM &#8220;dispatcher&#8221;). I&#8217;ll bring up a refactoring of that with the Maven IRC folks&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/08/encrypted-scm-passwords-in-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Script for finding a class inside a directory of JARs</title>
		<link>http://ambientideas.com/blog/index.php/2009/06/script-for-finding-a-class-inside-a-directory-of-jars/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/06/script-for-finding-a-class-inside-a-directory-of-jars/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 01:43:02 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Automation]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Productivity]]></category>
		<category><![CDATA[Scripting]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/06/script-for-finding-a-class-inside-a-directory-of-jars/</guid>
		<description><![CDATA[In the spirit of automating anything I've done more than twice manually, here's an incredibly simple yet useful little script to recursively search a tree of JARs for a class file.]]></description>
			<content:encoded><![CDATA[<p>In the spirit of automating anything I&#8217;ve done more than twice manually, here&#8217;s an incredibly simple yet useful little script to recursively search a tree of JARs for a class file.  I most often use this against a local Maven repository.</p>
<p><pre class="brush: bash; title: ;">
#!/bin/sh

#Example Usages:
# findjars com/ambientideas/SuperWidget
# findjars AnotherWidget

CLASSNAMETOFIND=&amp;amp;quot;$1&amp;amp;quot;

echo &amp;amp;quot;Searching all JARs recursively...&amp;amp;quot;
for eachjar in `find . -iname &amp;amp;quot;*.jar&amp;amp;quot;`
do
  #echo &amp;amp;quot;Searching in $eachjar ...&amp;amp;quot;
  jar tvf $eachjar | grep $CLASSNAMETOFIND &amp;amp;gt; /dev/null
  if [ $? == 0 ]
  then
    echo &amp;amp;quot;******* Located &amp;amp;quot;$CLASSNAMETOFIND&amp;amp;quot; in $eachjar *******&amp;amp;quot;
  fi
done
</pre></p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/06/script-for-finding-a-class-inside-a-directory-of-jars/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DZone Maven RefCard Released</title>
		<link>http://ambientideas.com/blog/index.php/2009/05/dzone-maven-refcard-released/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/05/dzone-maven-refcard-released/#comments</comments>
		<pubDate>Fri, 29 May 2009 15:56:08 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/05/dzone-maven-refcard-released/</guid>
		<description><![CDATA[<p>I'm very pleased to announce that my DZone Maven RefCard was released this week ahead of schedule, and JavaLobby did a little introductory interview for the launch. A handful of folks contributed to the early alpha reviews and I want to acknowledge their inputs: Ken Sipe , Tim O'Brien , Chris Maki , Tim Berglund , and Jason van Zyl . ... I'm always looking for ways to contribute to the Maven community , and this was by far the most fun I've had building materials to promote this unique Convention over Configuration build tool.</p>
]]></description>
			<content:encoded><![CDATA[<p><img src="http://farm3.static.flickr.com/2446/3576408234_42b1eb580d.jpg" width="325" height="421" alt="MavenRefCard.jpg" style="float:right;" />I&#8217;m very pleased to announce that my <a href="http://refcardz.dzone.com/refcardz/apache-maven-2" target="_blank">DZone Maven RefCard</a> was released this week ahead of schedule, and <a href="http://java.dzone.com/articles/maven-refcard-released-meet" target="_blank">JavaLobby did a little introductory interview</a> for the launch. A handful of folks contributed to the early alpha reviews and I want to acknowledge their inputs: <a href="http://kensipe.blogspot.com" target="_blank">Ken Sipe</a>, <a href="http://www.discursive.com/" target="_blank">Tim O&#8217;Brien</a>, <a href="http://cmaki.blogspot.com/" target="_blank">Chris Maki</a>, <a href="http://www.augusttechgroup.com/" target="_blank">Tim Berglund</a>, and <a href="http://www.sonatype.com/people/author/jason/" target="_blank">Jason van Zyl</a>.</p>
<p>The timing was great, as I did a <a href="http://www.slideshare.net/matthewmccullough/mastering-maven-20-in-1-hour-v13" target="_blank">Mastering Maven talk</a> at the <a href="http://www.sdjug.com/" target="_blank">San Diego Java Users Group (SDJUG)</a> on Tuesday night. A handful of the attendees came with printed copies of the RefCard in hand!</p>
<p>I&#8217;m always looking for ways to contribute to the <a href="http://maven.apache.org/" target="_blank">Maven community</a>, and this was by far the most fun I&#8217;ve had building materials to promote this unique Convention over Configuration build tool.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/05/dzone-maven-refcard-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git on Windows + Maven Gits on the Bleeding Edge</title>
		<link>http://ambientideas.com/blog/index.php/2009/04/git-on-windows-maven-gits-on-the-bleeding-edge/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/04/git-on-windows-maven-gits-on-the-bleeding-edge/#comments</comments>
		<pubDate>Sat, 25 Apr 2009 21:46:47 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Maven]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/04/git-on-windows-maven-gits-on-the-bleeding-edge/</guid>
		<description><![CDATA[<p>While the methods for putting Git on Windows have a slight variance from that of putting it on Mac or Linux, I have seen no real compatibility issues in my near daily use of it on all three aforementioned platforms. ... And if you are using IntelliJ, support is built right into v8.1 , Eclipse has eGit as an official Eclipse project now , and NetBeans has an issue open and some ongoing work for support which, awesomely consumes parts of eGit (JGit Libs) from Eclipse. And just to share the "Peanutbutter in my Chocolate" favorite story of the week, Maven is moving to Git in many directions at once: I asked Jukka Zitting of Apache to mirror the Maven SVN trunks to Git . 36 hours later, it was done .</p>
]]></description>
			<content:encoded><![CDATA[<p><a href="http://git-scm.com/">Git</a>, the oft-referred to as &#8220;Linux, Rubyists, and Cool Kids source code control system&#8221;, is gaining ground so fast that there&#8217;s not enough room in this post to mention all the traction and <a href="http://images.businessweek.com/ss/09/04/0421_best_young_entrepreneurs/17.htm">good press it is achieving</a>. Yet, a common comment I hear over lunches and cubicle walls is</p>
<blockquote>
<p>&#8220;<em>Git doesn&#8217;t have good support on Windows yet.</em>&#8220;</p>
</blockquote>
<p>I politely disagree.</p>
<p>While the <a href="http://nathanj.github.com/gitguide/" target="_blank">methods</a> for putting <a href="http://github.com/guides/using-git-and-github-for-the-windows-for-newbies" target="_blank">Git on Windows</a> have a slight variance from that of putting it on <a href="http://github.com/guides/compiling-and-installing-git-on-mac-os-x" target="_blank">Mac</a> or Linux, I have seen no real compatibility issues in my near daily use of it on all three aforementioned platforms. Is there still room for it to get better on Windows though? Definitely!</p>
<p>The next lament I hear is</p>
<blockquote>
<p>&#8220;<em>If only there were a Tortise-like UI for Git.</em>&#8220;</p>
</blockquote>
<p>Let me also put that to rest and <a href="http://code.google.com/p/tortoisegit/" target="_blank">direct you to the TortiseGit homepage</a>. While TortiseGit is still a work in progress, I&#8217;ve seen a handful of folks already putting it to productive daily use. And if you don&#8217;t like TortiseGit, then <a href="http://www.kodespace.com/gitSafe/" target="_blank">try GitSafe</a>. And if you are using <a href="http://www.jetbrains.com/idea/features/newfeatures.html" target="_blank">IntelliJ, support is built right into v8.1</a>, Eclipse has <a href="http://www.eclipse.org/proposals/egit/" target="_blank">eGit as an official Eclipse project now</a>, and NetBeans has <a href="http://www.netbeans.org/issues/show_bug.cgi?id=131531" target="_blank">an issue open</a> and <a href="http://groups.google.com/group/nbgit/" target="_blank">some ongoing work for support</a> which, awesomely consumes parts of eGit (JGit Libs) from Eclipse.</p>
<p style="font: 12.0px Helvetica"><img border="1" src="http://tortoisegit.googlecode.com/files/sendmail.jpg" width="483" height="262" /></p>
<p>And just to share the &#8220;Peanutbutter in my Chocolate&#8221; favorite story of the week, <a href="http://maven.apache.org" target="_blank">Maven</a> is moving to Git in many directions at once:</p>
<ol>
<li>I asked <a href="http://twitter.com/jukkaz" target="_blank">Jukka Zitting</a> of Apache to <a href="http://issues.apache.org/jira/browse/INFRA-2013" target="_blank">mirror the Maven SVN trunks to Git</a>. 36 hours later, <a href="http://git.apache.org" target="_blank">it was done</a>. What an amazing team player Jukka is.</li>
<li><a href="http://www.sonatype.com/books/maven-book/reference/" target="_blank">Maven: The Definitive Guide</a> has moved its <a href="http://github.com/sonatype/maven-guide/tree/master" target="_blank">canonical repository to GitHub</a>. Fork, contribute, and issue pull requests to Sonatype at will!</li>
<li><a href="http://twitter.com/jvanzyl" target="_blank">Jason van Zyl</a>, the founder of Maven, has sent out an inquiry to the <a href="http://www.nabble.com/Using-GIT-as-the-canonical-repository-for-Maven-3.x-td23201420.html" target="_blank">Maven Dev mailing list musing about moving Maven&#8217;s official source repo to Git</a>.</li>
</ol>
<p>If you have yet to explore or fully leverage the power of Git or Maven, now is a critical juncture of market acceptance for these tools, and accordingly, a perfect time to explore their benefits. For the latest news on Git, Maven, iPhone development, and Open Source, <a href="http://twitter.com/matthewmccull" target="_blank">join the conversation over at Twitter</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/04/git-on-windows-maven-gits-on-the-bleeding-edge/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Maven 3.0 Early Access</title>
		<link>http://ambientideas.com/blog/index.php/2009/04/maven-30-early-access/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/04/maven-30-early-access/#comments</comments>
		<pubDate>Sun, 19 Apr 2009 20:28:55 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/04/maven-30-early-access/</guid>
		<description><![CDATA[Jason van Zyl hosted a  Maven Meetup at their offices in Mountain View  in March of this year.    Lots of deep information about Maven 2.0 and 3.0 was shared , and videos of some of the sessions are now starting to be posted to the Vimeo web site. 

...Here are the takeaway points, highly distilled to 140 proof, for those without time to watch the video:   Improved overarching performance (tools, engine, resolution, downloads, builds)  Better tooling integration  Tie-ins with OSGi  Excellence in Eclipse integration  Possibility of non-XML POMs  Lifecycle extension points  High-performance artifact resolution engine  Documentation-hyperlinked error messages   If you want to get access to the Maven 3.0 code, you can  view the list of SVN checkout URLs here  ( or here for the hardcore Git lovers ), or  just view the source in your browser here . ]]></description>
			<content:encoded><![CDATA[<p><a href="http://docs.codehaus.org/display/MAVEN/Maven+3.0.x" target="_blank">Maven 3.0</a>, a mostly-backwards compatible, but significantly improved and extensible version of Maven is developing very quickly. Jason van Zyl hosted a <a href="https://docs.sonatype.org/display/COMM/Maven+Meetup+on+March+19th+and+20th+at+Sonatype" target="_blank">Maven Meetup at their offices in Mountain View</a> in March of this year. <a href="http://www.sonatype.com/people/2009/03/sonatype-maven-meetup-on-march-19th-20th/" target="_blank">Lots of deep information about Maven 2.0 and 3.0 was shared</a>, and videos of some of the sessions are now starting to be posted to the Vimeo web site. The Maven 3.0 video is especially insightful:</p>
<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=4156556&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=4156556&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300" /><br />
</object><br />
<a href="http://vimeo.com/4156556">Jason van Zyl on Maven 3</a> from <a href="http://vimeo.com/sonatype">Sonatype</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p>Here are the takeaway points, highly distilled to 140 proof, for those without time to watch the video:</p>
<ul>
<li>Improved overarching performance (tools, engine, resolution, downloads, builds)</li>
<li>Better tooling integration</li>
<li>Tie-ins with OSGi</li>
<li>Excellence in Eclipse integration</li>
<li>Possibility of non-XML POMs</li>
<li>Lifecycle extension points</li>
<li>High-performance artifact resolution engine</li>
<li>Documentation-hyperlinked error messages</li>
</ul>
<p>If you want to get access to the Maven 3.0 code, you can <a href="http://maven.apache.org/source-repository.html" target="_blank">view the list of SVN checkout URLs here</a> (<a href="http://git.apache.org/maven.git" target="_blank">or here for the hardcore Git lovers</a>), or <a href="http://svn.apache.org/viewvc/maven/components/trunk/" target="_blank">just view the source in your browser here</a>. If you want early access to the binaries, you can <a href="http://www.apache.org/dist/maven/binaries/" target="_blank">download them from Apache</a>.</p>
<p></p>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/04/maven-30-early-access/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Maven Unit Tests and Continuous Integration Servers</title>
		<link>http://ambientideas.com/blog/index.php/2009/03/maven-unit-tests-and-continuous-integration-servers/</link>
		<comments>http://ambientideas.com/blog/index.php/2009/03/maven-unit-tests-and-continuous-integration-servers/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 19:50:20 +0000</pubDate>
		<dc:creator>Matthew McCullough</dc:creator>
				<category><![CDATA[Maven]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[ContinuousIntegration]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://ambientideas.com/blog/index.php/2009/03/maven-unit-tests-and-continuous-integration-servers/</guid>
		<description><![CDATA[ If you are running a Continuous Integration server such as  Hudson , you'll want to consider routing your  SureFire  outputs to the console so that they'll appear in the build-report logs.   If you leave SureFire at its  default , it will output each test's success or failure  to an individual test XML and TXT file , but those are likely not in an exposed directory on your CI server.   If instead, you  route the output to the console , it will get reported in your failure emails that your CI server is capable of sending. ]]></description>
			<content:encoded><![CDATA[<p>If you are running a Continuous Integration server such as <a href="https://hudson.dev.java.net/" target="_blank">Hudson</a>, you&#8217;ll want to consider routing your <a href="http://maven.apache.org/plugins/maven-surefire-plugin/" target="_blank">SureFire</a> outputs to the console so that they&#8217;ll appear in the build-report logs. If you leave SureFire at its <strong>default</strong>, it will output each test&#8217;s success or failure <strong>to an individual test XML and TXT file</strong>, but those are likely not in an exposed directory on your CI server. If instead, you <a href="http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html#useFile" target="_blank">route the output to the console</a>, it will get reported in your failure emails that your CI server is capable of sending.</p>
<p>Just <a href="http://maven.apache.org/plugins/maven-surefire-plugin/test-mojo.html#useFile" target="_blank">pass the useFile=false parameter</a> on the command line or set it in the plugin config section of your pom.xml.</p>
<pre>
<code>mvn test -Dsurefire.useFile=false</code>
</pre>
<p></p>
<p>Before:</p>
<pre>
<code><span style="color: #6C1506;">-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.ambientideas.AppTest
Hello World! This is a JUnit test!
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.045 sec &lt;&lt;&lt; FAILURE!Results :Failed tests:testApp(com.ambientideas.AppTest)Tests run: 1, Failures: 1, Errors: 0, Skipped: 0</span></code>
</pre>
<p>After:</p>
<pre>
<code><span style="color: #3C7D00;">-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.ambientideas.AppTest
Hello World! This is a JUnit test!
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.045 sec &lt;&lt;&lt; FAILURE!
testApp(com.ambientideas.AppTest)  Time elapsed: 0.014 sec  &lt;&lt;&lt; FAILURE!
<span style="color: #0B0581;">junit.framework.AssertionFailedError
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.assertTrue(Assert.java:20)
at junit.framework.Assert.assertTrue(Assert.java:27)
at com.ambientideas.AppTest.testApp(AppTest.java:37)</span>

Results :Failed tests:testApp(com.ambientideas.AppTest)Tests run: 1, Failures: 1, Errors: 0, Skipped: 0</span></code>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://ambientideas.com/blog/index.php/2009/03/maven-unit-tests-and-continuous-integration-servers/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

