<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Floehopper: Tag java</title>
    <link>http://blog.floehopper.org/articles/tag/java?tag=java</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>thoughts on the bergy bits of life</description>
    <item>
      <title>Java Rehabilitation Clinic</title>
      <description>&lt;p&gt;Not long after &lt;a href="http://www.techbelly.com"&gt;Ben&lt;/a&gt; persuaded me to join the fledgling &lt;a href="http://www.reevoo.com"&gt;Reevoo&lt;/a&gt;, we got our first big ReevooMark partners (&lt;a href="http://www.dixons.co.uk"&gt;Dixons&lt;/a&gt; &amp;#38; &lt;a href="http://www.currys.co.uk"&gt;Currys&lt;/a&gt;) live. To celebrate this event and my having left Java behind at &lt;a href="http://www.thoughtworks.co.uk"&gt;Thoughtworks&lt;/a&gt;, Ben bought me a &lt;a href="http://www.cafepress.com/javarehab.29832584"&gt;Java Rehabilitation Clinic mug&lt;/a&gt;. The mug has recently developed a crack. I wonder if it&amp;#8217;s trying to tell me it&amp;#8217;s time to learn another language&amp;#8230;&lt;/p&gt;


&lt;div style="" class="flickrplugin"&gt;&lt;a href="http://www.flickr.com/photos/jamesthecat/2329269226"&gt;&lt;img src="http://farm3.static.flickr.com/2213/2329269226_6fc5b864c1_s.jpg" width="75" height="75" alt="java-rehab-clinic-mug" title="java-rehab-clinic-mug"/&gt;&lt;/a&gt;&lt;p class="caption" style="width:75px"&gt;Java Rehabilitation Clinic mug&lt;/p&gt;&lt;/div&gt;</description>
      <pubDate>Mon, 17 Mar 2008 09:23:26 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:a40a74e5-5040-4345-951d-6f4a98be5e23</guid>
      <author>James Mead</author>
      <link>http://blog.floehopper.org/articles/2008/03/17/java-rehabilitation-clinic</link>
      <category>java</category>
      <category>rehab</category>
      <category>clinic</category>
      <category>ruby</category>
      <category>thoughtworks</category>
    </item>
    <item>
      <title>Mocking in Java using Mocha</title>
      <description>&lt;p&gt;&lt;a href="http://ola-bini.blogspot.com/"&gt;Ola Bini&lt;/a&gt; one of the &lt;a href="http://jruby.codehaus.org/"&gt;JRuby&lt;/a&gt; guys has released the &lt;a href="http://jtestr.codehaus.org/"&gt;JtestR&lt;/a&gt; tool which allows you to write tests for &lt;a href="http://java.sun.com/"&gt;Java&lt;/a&gt; code in &lt;a href="http://www.ruby-lang.org/"&gt;Ruby&lt;/a&gt;! Ola has bundled a number of Ruby libraries &amp;#8211; &lt;a href="http://mocha.rubyforge.org"&gt;Mocha&lt;/a&gt;, &lt;a href="http://rspec.info/"&gt;RSpec&lt;/a&gt;, &lt;a href="http://dust.rubyforge.org/"&gt;Dust&lt;/a&gt;, &lt;a href="http://www.ruby-doc.org/stdlib/libdoc/test/unit/rdoc/classes/Test/Unit.html"&gt;Test::Unit&lt;/a&gt; &amp;#38; &lt;a href="http://rubyforge.org/projects/activesupport/"&gt;ActiveSupport&lt;/a&gt; &amp;#8211; together with JRuby to allow you to write Ruby test cases that test Java code.&lt;/p&gt;


	&lt;p&gt;He has a couple of examples in the &lt;a href="http://jtestr.codehaus.org/Mocks"&gt;Mock documentation&lt;/a&gt; of how to use &lt;a href="http://mocha.rubyforge.org"&gt;Mocha&lt;/a&gt;...&lt;/p&gt;


	&lt;p&gt;The first one demonstrates using &lt;a href="http://mocha.rubyforge.org"&gt;Mocha&lt;/a&gt; to mock an interface (&lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/Map.html"&gt;Map&lt;/a&gt;).&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;  &lt;span class="ident"&gt;import&lt;/span&gt; &lt;span class="ident"&gt;java&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;util&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;Map&lt;/span&gt;
  &lt;span class="ident"&gt;import&lt;/span&gt; &lt;span class="ident"&gt;java&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;util&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;Iterator&lt;/span&gt;
  &lt;span class="ident"&gt;import&lt;/span&gt; &lt;span class="ident"&gt;java&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;util&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;Set&lt;/span&gt;
  &lt;span class="ident"&gt;import&lt;/span&gt; &lt;span class="ident"&gt;java&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;util&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;HashMap&lt;/span&gt;

  &lt;span class="ident"&gt;functional_tests&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; 
    &lt;span class="ident"&gt;test&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;that a new HashMap can be created based on another map&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; 
      &lt;span class="ident"&gt;map&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Map&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;

      &lt;span class="ident"&gt;map&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;expects&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:size&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;returns&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

      &lt;span class="ident"&gt;iter&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Iterator&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;
      &lt;span class="ident"&gt;iter&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;expects&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:hasNext&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;returns&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;false&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

      &lt;span class="ident"&gt;set&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Set&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;
      &lt;span class="ident"&gt;set&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;expects&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:iterator&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;returns&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;iter&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

      &lt;span class="ident"&gt;map&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;expects&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:entrySet&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;returns&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;set&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

      &lt;span class="ident"&gt;assert_equals&lt;/span&gt; &lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="constant"&gt;HashMap&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;map&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;size&lt;/span&gt;
    &lt;span class="keyword"&gt;end&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;The second example demonstrates using &lt;a href="http://mocha.rubyforge.org"&gt;Mocha&lt;/a&gt; to setup expectations on a real (non-mock) instance (&lt;a href="http://java.sun.com/j2se/1.4.2/docs/api/java/util/HashMap.html"&gt;HashMap&lt;/a&gt;)...&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;  &lt;span class="ident"&gt;import&lt;/span&gt; &lt;span class="ident"&gt;java&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;util&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;Iterator&lt;/span&gt;
  &lt;span class="ident"&gt;import&lt;/span&gt; &lt;span class="ident"&gt;java&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;util&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;Set&lt;/span&gt;
  &lt;span class="ident"&gt;import&lt;/span&gt; &lt;span class="ident"&gt;java&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;util&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;HashMap&lt;/span&gt;

  &lt;span class="ident"&gt;functional_tests&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; 
    &lt;span class="ident"&gt;test&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;that a new HashMap can be created based on another map&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; &lt;span class="keyword"&gt;do&lt;/span&gt; 
      &lt;span class="ident"&gt;map&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;mock&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;HashMap&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

      &lt;span class="ident"&gt;map&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;expects&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:size&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;returns&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

      &lt;span class="ident"&gt;iter&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Iterator&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;
      &lt;span class="ident"&gt;iter&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;expects&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:hasNext&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;returns&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="constant"&gt;false&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

      &lt;span class="ident"&gt;set&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;Set&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;
      &lt;span class="ident"&gt;set&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;expects&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:iterator&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;returns&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;iter&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

      &lt;span class="ident"&gt;map&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;expects&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="symbol"&gt;:entrySet&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;returns&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;set&lt;/span&gt;&lt;span class="punct"&gt;)&lt;/span&gt;

      &lt;span class="ident"&gt;assert_equals&lt;/span&gt; &lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="punct"&gt;,&lt;/span&gt; &lt;span class="constant"&gt;HashMap&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;new&lt;/span&gt;&lt;span class="punct"&gt;(&lt;/span&gt;&lt;span class="ident"&gt;map&lt;/span&gt;&lt;span class="punct"&gt;).&lt;/span&gt;&lt;span class="ident"&gt;size&lt;/span&gt;
    &lt;span class="keyword"&gt;end&lt;/span&gt;
  &lt;span class="keyword"&gt;end&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description>
      <pubDate>Sun, 17 Feb 2008 18:10:01 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:857791bb-b4ad-41c0-845d-69d0909d0b7c</guid>
      <author>James Mead</author>
      <link>http://blog.floehopper.org/articles/2008/02/17/mocking-in-java-using-mocha</link>
      <category>java</category>
      <category>ruby</category>
      <category>mocha</category>
      <category>test</category>
      <category>mock</category>
    </item>
    <item>
      <title>Escape from the Enterprise - London Rails Jobs</title>
      <description>&lt;p&gt;If you&amp;#8217;re looking to escape the &amp;#8220;Enterprise&amp;#8221; world of &lt;a href="http://www.java.com"&gt;Java&lt;/a&gt; and &lt;a href="http://www.gotdotnet.com/"&gt;.NET&lt;/a&gt; for the shiny new world of &lt;a href="http://www.rubyonrails.com/"&gt;Ruby on Rails&lt;/a&gt;, take a look at &lt;a href="http://www.reevoo.com/blogs/bengriffiths/2007/04/03/rails-developer-job/"&gt;Ben&amp;#8217;s blog post&lt;/a&gt; and &lt;a href="http://jobs.37signals.com/jobs/1349"&gt;37Signals job advert&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;Things are really starting to hot up here at &lt;a href="http://www.reevoo.com"&gt;Reevoo&lt;/a&gt;. When you&amp;#8217;re in the middle of it all, it&amp;#8217;s easy to forget the progress we&amp;#8217;ve been making. In recent months, we&amp;#8217;ve&amp;#8230;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.e-consultancy.com/news-blog/362376/reevoo-secures-first-round-funding.html"&gt;Secured funding&lt;/a&gt; from a &lt;a href="http://www.edenventures.co.uk/"&gt;very supportive VC&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;Passed the &lt;a href="http://www.reevoo.com/blogs/reevooblog/2007/03/29/60-million-reviews-and-ratings/"&gt;60 million mark&lt;/a&gt; on ratings and reviews served.&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://www.vecosys.com/2007/04/04/woolworths-signs-reevoocom-for-customer-reviews/"&gt;Added Woolworths&lt;/a&gt; among others to our already &lt;a href="http://www.reevoo.com/pages/about_partnering"&gt;impressive list of partners&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;Moved into a &lt;a href="http://www.reevoo.com/blogs/reevooblog/2007/04/17/reevoo-spirit/"&gt;plush new office&lt;/a&gt;.&lt;/li&gt;
		&lt;li&gt;We&amp;#8217;ve even hired a couple of &lt;a href="http://www.thoughtworks.co.uk"&gt;ThoughtWorks&lt;/a&gt; developers for a month-long project.&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;I work with a talented and friendly bunch of developers&amp;#8230;&lt;/p&gt;


	&lt;ul&gt;
	&lt;li&gt;&lt;a href="http://www.reevoo.com/blogs/bengriffiths"&gt;Ben Griffiths&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://blog.seagul.co.uk/"&gt;Chris Roos&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://po-ru.com/"&gt;Paul Battley&lt;/a&gt;&lt;/li&gt;
		&lt;li&gt;&lt;a href="http://everythingbehind.com/ruby/"&gt;Ben Sales&lt;/a&gt;&lt;/li&gt;
	&lt;/ul&gt;


	&lt;p&gt;We&amp;#8217;re heavily into &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;Test-Driven Development&lt;/a&gt;, &lt;a href="http://www.martinfowler.com/articles/continuousIntegration.html#AutomateDeployment"&gt;Continuous Integration/Deployment&lt;/a&gt; and &lt;a href="http://www.opensource.org/"&gt;Open Source&lt;/a&gt;. It&amp;#8217;s an exciting and fun place to work.&lt;/p&gt;


	&lt;p&gt;If you&amp;#8217;re interested, send Ben (ben_at_reevoo_dot_com) your CV and mention you saw the job here.&lt;/p&gt;</description>
      <pubDate>Wed, 25 Apr 2007 04:12:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:71f1d804-5eb9-4cd8-9e36-7b477c75b651</guid>
      <author>James Mead</author>
      <link>http://blog.floehopper.org/articles/2007/04/25/escape-from-the-enterprise-london-rails-jobs</link>
      <category>ruby</category>
      <category>rails</category>
      <category>job</category>
      <category>london</category>
      <category>reevoo</category>
      <category>enterprise</category>
      <category>java</category>
      <category>dotnet</category>
    </item>
    <item>
      <title>Hellish XML</title>
      <description>&lt;p&gt;So now you can write test cases for &lt;a href="http://ant.apache.org/"&gt;&lt;span class="caps"&gt;ANT&lt;/span&gt;&lt;/a&gt; &lt;em&gt;in &lt;span class="caps"&gt;XML&lt;/span&gt;&lt;/em&gt; using &lt;a href="http://ant.apache.org/antlibs/antunit/"&gt;AntUnit&lt;/a&gt;.&lt;/p&gt;


	&lt;p&gt;You can even write assertions in &lt;span class="caps"&gt;XML&lt;/span&gt; &amp;#8230;&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_xml "&gt;  &lt;span class="comment"&gt;&amp;lt;!-- the actual test case --&amp;gt;&lt;/span&gt;
  &lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;target&lt;/span&gt; &lt;span class="attribute"&gt;name&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;testTouchCreatesFile&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;
    &lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="namespace"&gt;au&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;&lt;span class="tag"&gt;assertFileDoesntExist&lt;/span&gt; &lt;span class="attribute"&gt;file&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;${foo}&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;/&amp;gt;&lt;/span&gt;
    &lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;touch&lt;/span&gt; &lt;span class="attribute"&gt;file&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;${foo}&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;/&amp;gt;&lt;/span&gt;
    &lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="namespace"&gt;au&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;&lt;span class="tag"&gt;assertFileExists&lt;/span&gt; &lt;span class="attribute"&gt;file&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;${foo}&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;/&amp;gt;&lt;/span&gt;
  &lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;target&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;... but why?&lt;/p&gt;


	&lt;p&gt;Perhaps the time is ripe for an &lt;span class="caps"&gt;XML&lt;/span&gt; mocking library ;-)&lt;/p&gt;</description>
      <pubDate>Tue, 17 Oct 2006 03:26:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:44d84990-d693-4654-b53e-d6c8d7e6807d</guid>
      <author>James Mead</author>
      <link>http://blog.floehopper.org/articles/2006/10/17/hellish-xml</link>
      <category>xml</category>
      <category>hell</category>
      <category>ant</category>
      <category>java</category>
      <category>build</category>
      <category>test</category>
      <category>mock</category>
      <category>xunit</category>
    </item>
    <item>
      <title>Mocha in Java using bytecode manipulation</title>
      <description>&lt;p&gt;My former colleague and &lt;a href="http://asm.objectweb.org/"&gt;bytecode&lt;/a&gt; maestro &lt;a href="http://digital-compulsion.blogspot.com/"&gt;Stacy Curl&lt;/a&gt; has an &lt;a href="http://digital-compulsion.blogspot.com/2006/09/java-mocking-without-injection-same.html"&gt;interesting article&lt;/a&gt; explaining how it would be possible to implement &lt;a href="http://mocha.rubyforge.org"&gt;Mocha&lt;/a&gt; in &lt;a href="http://java.sun.com/"&gt;Java&lt;/a&gt; using experience from his &lt;a href="http://picounit.codehaus.org/"&gt;PicoUnit&lt;/a&gt; project.&lt;/p&gt;


	&lt;p&gt;It&amp;#8217;s good to be reminded that meta-programming is possible in Java, but just a bit more effort.&lt;/p&gt;</description>
      <pubDate>Sat, 16 Sep 2006 14:43:00 +0000</pubDate>
      <guid isPermaLink="false">urn:uuid:afe10f9a-e930-4e80-9e10-d8c65f682f4e</guid>
      <author>James Mead</author>
      <link>http://blog.floehopper.org/articles/2006/09/16/mocha-in-java-using-bytecode-manipulation</link>
      <category>ruby</category>
      <category>java</category>
      <category>bytecode</category>
      <category>mocha</category>
      <category>mock</category>
      <category>pico</category>
      <category>unit</category>
      <category>dependency</category>
      <category>injection</category>
      <category>meta</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
