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

<channel>
	<title>James Carr</title>
	<atom:link href="http://blog.james-carr.org/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.james-carr.org</link>
	<description>Rants and Musings of an Agile Developer</description>
	<pubDate>Sun, 07 Feb 2010 05:08:23 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.1</generator>
	<language>en</language>
			<item>
		<title>Sometimes It&#8217;s Good To Fail an Interview</title>
		<link>http://blog.james-carr.org/2010/02/07/sometimes-its-good-to-fail-an-interview/</link>
		<comments>http://blog.james-carr.org/2010/02/07/sometimes-its-good-to-fail-an-interview/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 05:04:47 +0000</pubDate>
		<dc:creator>James Carr</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.james-carr.org/?p=676</guid>
		<description><![CDATA[Wow&#8230; sometimes memories sprout up out of nowhere, and tonight while painting the kitchen I was reminded of my first programming job interview waaaay back in 2003. See I had picked up a few pamphlets at the university career fair and landed a job interview with one of the few (or was it only?) firms [...]]]></description>
			<content:encoded><![CDATA[<p>Wow&#8230; sometimes memories sprout up out of nowhere, and tonight while painting the kitchen I was reminded of my first programming job interview waaaay back in 2003. See I had picked up a few pamphlets at the university career fair and landed a job interview with one of the few (or was it only?) firms offering a computer science related job there. So I dressed up with a tie, made sure I made three copies of my resume on expensive ass paper, put them in a fancy leather folder and headed off to the interview with my fingers crossed.</p>
<p>As I sat through the interview, I went through the usual motions of answering their questions about my background, listened to their marketing talk about how great their company is, and I chatted a bit about my hobbyist programming I did in my free time. Then came the bad news&#8230;. the interviewer smiled as he mulled over my resume, and he said he noticed that I didn&#8217;t have any COBOL experience. He asked me if I had ever taken any COBOL classes at the college, and I told him no&#8230; as far as I know they don&#8217;t even have it in the curriculum anymore. </p>
<p>&#8220;Really?&#8221; he replied, with a slight look of shock on his face. &#8220;Well, all of our systems are written in COBOL here, so that&#8217;s what you&#8217;d be developing in. We really need someone with COBOL experience.&#8221; </p>
<p>&#8220;Well, I pick up languages pretty quick&#8230; I just learned python last week and was able to do all kinds of things with it&#8230; I probably wouldn&#8217;t have any problems learning COBOL and actually using it.&#8221; I replied. </p>
<p>He smiled. &#8220;Well, that&#8217;s great James. I&#8217;ll tell you what, I&#8217;ll talk with the rest of my staff and I&#8217;ll try and get back with you by the end of the week to let you know if you made it in.&#8221;</p>
<p>And I never ever heard from them again. Another guy at my university, who had made straight As in CompSci and double majored in Mathematics got hired out there the following week, so I guessed maybe I just didn&#8217;t have a high enough GPA to meet their standards. I remember wondering what was so special about the language&#8230; I looked around online and the examples I found were pretty ugly and I remember wondering if it was some kind of joke? But I did hear from the guy who got the job out there that yes&#8230; all they programmed in was COBOL.</p>
<p>Looking back, I&#8217;m damn happy I never got the job. A large part of my growth was working for a small start up firm and getting the chance to work with all kinds of languages as well as do a lot of reading online to self-teach myself (I didn&#8217;t have any senior developers to work with&#8230; just me at first) that led me to read books like Design Patterns, Patterns of Enterprise Application Architecture, Refactoring, and even Extreme Programming Explained as I searched for a methodology to manage our projects. With no one to turn to, I often sought help in online forums, mailing lists, and usergroups in St.Louis. I think all of that played a large part in growing as a developer and evolving my thinking. </p>
<p>If I had gotten that job, I probably would have done my best to excel at it&#8230; and perhaps by now I would have been promoted to the position Programmer Analyst II. <img src='http://blog.james-carr.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.james-carr.org/2010/02/07/sometimes-its-good-to-fail-an-interview/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Using Gradle For Your &#8220;Enterprise Java Project&#8221;</title>
		<link>http://blog.james-carr.org/2010/02/05/using-gradle-for-your-enterprise-java-project/</link>
		<comments>http://blog.james-carr.org/2010/02/05/using-gradle-for-your-enterprise-java-project/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 19:01:10 +0000</pubDate>
		<dc:creator>James Carr</dc:creator>
		
		<category><![CDATA[Java]]></category>

		<category><![CDATA[gradle]]></category>

		<category><![CDATA[groovy]]></category>

		<guid isPermaLink="false">http://blog.james-carr.org/?p=672</guid>
		<description><![CDATA[Yesterday evening I fooled around with gradle quite a bit, finally sitting down and taking some time to learn it as I&#8217;ve been hearing lots of good things about it. And man, I like it! 
I decided to use it to build the kind of project that enterprise architects go ga-ga over: a multi module [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday evening I fooled around with gradle quite a bit, finally sitting down and taking some time to learn it as I&#8217;ve been hearing lots of good things about it. And man, I like it! </p>
<p>I decided to use it to build the kind of project that enterprise architects go ga-ga over: a multi module project that contains a shared module with an interface (containing <a href="https://jax-ws.dev.java.net/">JAXWS</a> annotations), a services war module to create a service implementation, and a client implementation to call it. It was a breeze and I finished it in a couple hours. </p>
<p><span id="more-672"></span></p>
<p>For starters, I created a root directory and created the following build.gradle and settings.gradle file in it:<br />
build.gradle:</p>
<pre name="code" class="java">
subprojects {
        usePlugin 'java'

        repositories {
                mavenCentral()
        }
        dependencies {
                testCompile 'junit:junit:4.7'
        }

        group = 'org.jamescarr'
        version = '1.0'
        sourceCompatibility=1.6
}

dependsOnChildren()
</pre>
<p>settings.gradle:</p>
<pre name="code" class="java">
include "shared", "api", "services"
</pre>
<p>Running <code><strong>gradle build</strong></code> from this directory will auto-create your directories for you. I went ahead and created the source directories and build.gradle for each module myself, but there are ways to make your script do that too, more on that in another post. <img src='http://blog.james-carr.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>In our shared project, there&#8217;s really no dependencies, so the build.gradle file is left blank. We just create the following interface under <code><strong>src/main/java</strong></code>:</p>
<pre name="code" class="java">
package org.jamescarr;
import javax.jws.WebService;
import javax.jws.WebParam;
import javax.jws.WebMethod;

@WebService
public interface Greeter{
        String getGreetingFor(@WebParam(name="greetee") String greetee);
}
</pre>
<p>Nothing fancy. Now let&#8217;s make the service. Foremost, it&#8217;ll need to depend on shared since it&#8217;s going to have the actual implementation in it. We&#8217;ll also depend on <a href="http://cxf.apache.org/">CXF</a> to setup the cxf servlet as well as use the war and jetty plugins so we can produce a war artifact and the jetty plugin for running it locally.</p>
<p>services/build.gradle:</p>
<pre name="code" class="java">
usePlugin 'war'
usePlugin 'jetty'

dependencies {
        compile project(':shared')
        compile 'org.apache.cxf:cxf-bundle-minimal:2.2.6'
}
</pre>
<p>At this point, doing a <code><strong>gradle build</strong></code> will auto generate your src/main/webapp directory, and if you throw an index.html file in there and run <code><strong>gradle jettyRun</strong></code> your server will start up and you can navigate to http://localhost:8080 to see it. </p>
<p>Now let&#8217;s write our Greeter implementation.<br />
src/main/java/org/jamescarr/EnglishGreeter.java:</p>
<pre name="code" class="java">
package org.jamescarr;
import javax.jws.WebService;

@WebService(endpointInterface="org.jamescarr.Greeter", serviceName="GreetingService")
public class EnglishGreeter implements Greeter{
        @Override
        public String getGreetingFor(String greetee){
                return "Hello " + greetee;
        }
}
</pre>
<p>Next we need to add a web.xml to src/main/webapp/WEB-INF and an application-context.xml file under src/main/resource. Since this is the part where it get&#8217;s ugly, I&#8217;m simply going to link to them on github&#8230; you can see them <a href="http://github.com/jamescarr/gradle-cxf-example/blob/master/services/src/main/webapp/WEB-INF/web.xml">here</a> and <a href="http://github.com/jamescarr/gradle-cxf-example/blob/master/services/src/main/resources/org/jamescarr/application-context.xml">here</a>. <img src='http://blog.james-carr.org/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Now if we go the root of the services directory and run <code><strong>gradle jettyRun</strong></code> our server will be up and running and if you navigate to http://localhost:8080/services/services (if I had named the module something else it wouldn&#8217;t look so silly) you should see the generated CXF page listing the available services, and Greeter -> getGreetingFor will be listed. Now let&#8217;s create the client and start communicating with the service!</p>
<p>In the client, we&#8217;re just going to create a quick client using JaxWsProxyFactory directly, but in most projects you might configure this in spring and inject it using the service interface. So we&#8217;ll need to depend on our shared project for the interface and cxf for the proxy factory. We&#8217;ll also setup a task named &#8220;run&#8221; to simply run this from the commandline and see the output. </p>
<p>api/bild.gradle:</p>
<pre name="code" class="java">
dependencies {
        compile project(':shared')
        compile "org.apache.cxf:cxf-bundle-minimal:2.2.6"
}
task run(dependsOn:'build') <<{
        ant.java(classname: 'org.jamescarr.Main', fork: false,
        classpath: "${sourceSets.main.runtimeClasspath.asPath}")
}
</pre>
<p>The run task depends on the build task, so we can ensure it builds the project before trying to run it. We also set fork to false on the ant.java task so we can see the System.out.println I&#8217;ll put in the main class to print the result out. Okay, now let&#8217;s whip the java class real quick:</p>
<p>api/src/main/java/org/jamescarr/Main.java</p>
<pre name="code" class="java">
package org.jamescarr;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.jamescarr.Greeter;

public class Main{
        public static void main(String... args){
                JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
                factory.setAddress("http://localhost:8080/services/services/english");
                factory.setServiceClass(Greeter.class);

                Greeter client = (Greeter)factory.create();
                System.out.println(client.getGreetingFor("James"));
        }
}
</pre>
<p>I don&#8217;t want to get too deep into the intricacies of CXF, but all this does is create a proxy factory for our endpoint and generates a client object that we can use to call it. </p>
<p>Now to finally see all this work, drop down to the commandline in the api directory and type <strong><code>gradle -q run</code></strong>. If everything works well, you should see &#8220;Hello James&#8221; printed to the console. A perfect Hello World example bringing together SOA and the pure awesomeness of gradle. <img src='http://blog.james-carr.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Hope you enjoyed it, if you want to take a look at the code and tinker with it hands on, feel free to <a href="http://github.com/jamescarr/gradle-cxf-example">clone it from github</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.james-carr.org/2010/02/05/using-gradle-for-your-enterprise-java-project/feed/</wfw:commentRss>
		</item>
		<item>
		<title>links for 2010-02-05</title>
		<link>http://blog.james-carr.org/2010/02/05/links-for-2010-02-05/</link>
		<comments>http://blog.james-carr.org/2010/02/05/links-for-2010-02-05/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 13:01:19 +0000</pubDate>
		<dc:creator>James Carr</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.james-carr.org/2010/02/05/links-for-2010-02-05/</guid>
		<description><![CDATA[

Gradle
(tags: documentation groovy gradle)


Article: So You Think You Are Agile
&#34;For my manager Agile means using XPlanner as a time reporting tool.&#34; 
(tags: agile)


]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://www.gradle.org/0.8/docs/userguide/userguide.html">Gradle</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/officeOfTheLaw/documentation">documentation</a> <a href="http://delicious.com/officeOfTheLaw/groovy">groovy</a> <a href="http://delicious.com/officeOfTheLaw/gradle">gradle</a>)</div>
</li>
<li>
<div class="delicious-link"><a href="http://www.3pvantage.com/articles/so-you-think-you-are-agile.htm">Article: So You Think You Are Agile</a></div>
<div class="delicious-extended">&quot;For my manager Agile means using XPlanner as a time reporting tool.&quot; </div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/officeOfTheLaw/agile">agile</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.james-carr.org/2010/02/05/links-for-2010-02-05/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Running a Single Class From Gradle</title>
		<link>http://blog.james-carr.org/2010/02/05/running-a-single-class-from-gradle/</link>
		<comments>http://blog.james-carr.org/2010/02/05/running-a-single-class-from-gradle/#comments</comments>
		<pubDate>Fri, 05 Feb 2010 06:24:07 +0000</pubDate>
		<dc:creator>James Carr</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.james-carr.org/?p=669</guid>
		<description><![CDATA[Whew&#8230; been learning a lot about gradle this evening, and I definitely like it. I&#8217;ll expand further with an in depth example, but for now just wanted to post a quick solution to something I was attempting to do. See, I wanted to be able to just type gradle run and have it run a [...]]]></description>
			<content:encoded><![CDATA[<p>Whew&#8230; been learning a lot about gradle this evening, and I definitely like it. I&#8217;ll expand further with an in depth example, but for now just wanted to post a quick solution to something I was attempting to do. See, I wanted to be able to just type <code>gradle run</code> and have it run a single class from my project, but for some reason was having a difficult time figuring out how to make it work.</p>
<p>Luckily, gradle includes practically all the ant tasks so you can simply use ant.java: </p>
<pre class="java" name="code">
task run(dependsOn:'build') <<{
        ant.java(classname: 'org.jamescarr.Main', fork: true,
        classpath: "${sourceSets.main.runtimeClasspath.asPath}")
}
</pre>
<p>We want it to depend on the build task so it will compile our classes and dependencies, then it&#8217;ll work as expected. <img src='http://blog.james-carr.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.james-carr.org/2010/02/05/running-a-single-class-from-gradle/feed/</wfw:commentRss>
		</item>
		<item>
		<title>A Word About Forced &#8220;Agile&#8221;</title>
		<link>http://blog.james-carr.org/2010/02/03/a-word-about-forced-agile/</link>
		<comments>http://blog.james-carr.org/2010/02/03/a-word-about-forced-agile/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 03:37:46 +0000</pubDate>
		<dc:creator>James Carr</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.james-carr.org/?p=660</guid>
		<description><![CDATA[There&#8217;s something that&#8217;s been on mind lately from my experiences in the &#8220;enterprise&#8221; world while contracting&#8230; something that&#8217;s been really eating at me. And it&#8217;s something I&#8217;d like to call &#8220;Forced Agile&#8221; and how it&#8217;s possibly the most destructive beast in our industry right now. 
The symptoms are quite visible in any organization&#8230; different values, [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s something that&#8217;s been on mind lately from my experiences in the &#8220;enterprise&#8221; world while contracting&#8230; something that&#8217;s been really eating at me. And it&#8217;s something I&#8217;d like to call &#8220;Forced Agile&#8221; and how it&#8217;s possibly the most destructive beast in our industry right now. </p>
<p>The symptoms are quite visible in any organization&#8230; different values, practices, and concepts that we use in the agile world for improving our teams are bastardized and turned against the team in the form of forced metrics that are required to be met. This doesn&#8217;t help the team one bit and honestly will simply cause the team much grief and do diddly squat to improve anything.</p>
<p>Four years ago I listened to Dave Thomas give a pretty good presentation on <a href="http://en.wikipedia.org/wiki/Cargo_cult">Cargo Cults</a> and I&#8217;m now realizing something&#8230; most companies continue to use the cargo cult approach to adopting agile. They&#8217;ve bought into the silly idea that if you do X, Y and Z software will get released faster with zero defects. We&#8217;re better than that, and our industry deserves better than that. </p>
<p>Let&#8217;s drop this idea of agile being &#8220;a set of practices&#8221; to be strictly followed. If we really want to succeed at agile we first need to empower our teams to succeed. <img src='http://blog.james-carr.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.james-carr.org/2010/02/03/a-word-about-forced-agile/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Eclipse Buttons in Dialogs Not Working On Ubuntu</title>
		<link>http://blog.james-carr.org/2010/02/03/eclipse-buttons-in-dialogs-not-working-on-ubuntu/</link>
		<comments>http://blog.james-carr.org/2010/02/03/eclipse-buttons-in-dialogs-not-working-on-ubuntu/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 02:30:14 +0000</pubDate>
		<dc:creator>James Carr</dc:creator>
		
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://blog.james-carr.org/?p=657</guid>
		<description><![CDATA[Here&#8217;s a weird problem I&#8217;ve been having lately that I thought I&#8217;d blog the solution to so that other people can have better luck when googling. Essentially, I installed a brand new copy of Ubuntu on my work laptop and was having an odd issue with the buttons in dialog boxes not working when I [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a weird problem I&#8217;ve been having lately that I thought I&#8217;d blog the solution to so that other people can have better luck when googling. Essentially, I installed a brand new copy of Ubuntu on my work laptop and was having an odd issue with the buttons in dialog boxes not working when I clicked on them. </p>
<p>Luckily, after some searching, I found <a href="http://wiki.eclipse.org/IRC_FAQ#Eclipse_buttons_in_dialogs_and_other_places_are_not_working_for_me_if_I_click_them_with_the_mouse._I_also_cannot_see_anything_in_the_tree_when_I_try_to_install_updates._What.27s_going_on.3F">this solution in the FAQ</a>:</p>
<pre name="code" class="java">
$ export GDK_NATIVE_WINDOWS=true
$ ./eclipse
</pre>
<p>That seems to have fixed the problem for me&#8230; but according to the FAQ &#8220;Your Mileage May Vary&#8221;. Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.james-carr.org/2010/02/03/eclipse-buttons-in-dialogs-not-working-on-ubuntu/feed/</wfw:commentRss>
		</item>
		<item>
		<title>In The Wild: Mockito for Javascript</title>
		<link>http://blog.james-carr.org/2010/01/30/in-the-wild-mockito-for-javascript/</link>
		<comments>http://blog.james-carr.org/2010/01/30/in-the-wild-mockito-for-javascript/#comments</comments>
		<pubDate>Sat, 30 Jan 2010 19:01:04 +0000</pubDate>
		<dc:creator>James Carr</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.james-carr.org/?p=652</guid>
		<description><![CDATA[
Yes it&#8217;s true&#8230; there in is a framework that acts just like mockito for javascript: jsMockito!
The stubbing action looks pretty cool, and I&#8217;ll try in depth later when I&#8217;m home. But here&#8217;s a quick sample to whet your appetite:

    var mockedObject = mock(Array);

    when(mockedObject).get(1).thenReturn("hello world");

]]></description>
			<content:encoded><![CDATA[<p><img src="http://chrisleishman.github.com/jsmockito/jsmockito.png" style="float:left; margin: 5px;" height="120px"></p>
<p>Yes it&#8217;s true&#8230; there in is a framework that acts just like mockito for javascript: <a href="http://jsmockito.org/">jsMockito</a>!</p>
<p>The stubbing action looks pretty cool, and I&#8217;ll try in depth later when I&#8217;m home. But here&#8217;s a quick sample to whet your appetite:</p>
<pre name="code" class="jscript">
    var mockedObject = mock(Array);

    when(mockedObject).get(1).thenReturn("hello world");
</pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.james-carr.org/2010/01/30/in-the-wild-mockito-for-javascript/feed/</wfw:commentRss>
		</item>
		<item>
		<title>I&#8217;m a Stupid Moron</title>
		<link>http://blog.james-carr.org/2010/01/26/im-a-stupid-moron/</link>
		<comments>http://blog.james-carr.org/2010/01/26/im-a-stupid-moron/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 00:42:22 +0000</pubDate>
		<dc:creator>James Carr</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.james-carr.org/?p=644</guid>
		<description><![CDATA[
Or am I?  
Today I did something that made me step back and recall a time long long ago when I was working with SOAP on a project. See, I had to integrate a PHP application with a SOAP service and used a utility to generate all the client objects and stubs I needed, [...]]]></description>
			<content:encoded><![CDATA[<p><img alt="" src="http://skepticalteacher.files.wordpress.com/2009/10/facepalm.jpg" class="aligncenter" width="400" height="320" style="text-align: center;display:block;margin: 5px auto;" /><br />
Or am I? <img src='http://blog.james-carr.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Today I did something that made me step back and recall a time long long ago when I was working with SOAP on a project. See, I had to integrate a PHP application with a SOAP service and used a utility to generate all the client objects and stubs I needed, then ran into a weird problem. One of the fields in the response object contained a string&#8230; of xml. This meant I had to go and parse data manually out of that field by hand rather than having a nice object model created by the utility I used. </p>
<blockquote><p>
&#8220;Those stupid morons! Why can&#8217;t they learn to embrace the technology they&#8217;re using!&#8221;
</p></blockquote>
<p>Why did they have to go and embed xml inside a cdata tag!? Why couldn&#8217;t they just import the namespace for it (it was schema-less anyway) and include it in the SOAP body??</p>
<p>Anyway, what triggered this recollection? I was working on a SOAP service that returns, in addition to some information used by the application, a binary attachment that is read into a 3rd party library on the client side. Let&#8217;s say it&#8217;s a PNG or something. Anyway, we decided to try out some different image adapters on the server end and I discovered that I could change the format to SVG and not only would the 3rd party library used on the client be able to parse it&#8230; I wouldn&#8217;t even have to change ANYTHING on the client side because the 3rd party library automatically detected the type. So I switched the output to SVG and reran the client app&#8230; perfect! It worked fine. Then I looked at the raw soap packets it produced while testing it with SoapUI:</p>
<pre name="code" class="xml">
&lt;image&gt;&lt;!CDATA[[&lt;?xml version="1.0"&gt;
&lt;svg width="100%" height="100%" version="1.1"
xmlns="http://www.w3.org/2000/svg"&gt;
...]]&gt;&lt;/image&gt;
</pre>
<p>*Facepalm* <img src='http://blog.james-carr.org/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' /> </p>
<p>I suppose to my credit, it&#8217;s not as if the client app itself is meant to parse the SVG data itself anyway. <img src='http://blog.james-carr.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.james-carr.org/2010/01/26/im-a-stupid-moron/feed/</wfw:commentRss>
		</item>
		<item>
		<title>links for 2010-01-26</title>
		<link>http://blog.james-carr.org/2010/01/26/links-for-2010-01-26/</link>
		<comments>http://blog.james-carr.org/2010/01/26/links-for-2010-01-26/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 13:01:54 +0000</pubDate>
		<dc:creator>James Carr</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.james-carr.org/2010/01/26/links-for-2010-01-26/</guid>
		<description><![CDATA[

Best Presentation Tips &#124; Speaking about Presenting: Presentation Tips from Olivia Mitchell
(tags: presentation resources tips publicspeaking)


]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://www.speakingaboutpresenting.com/presentation-skills/best-presentation-tips/">Best Presentation Tips | Speaking about Presenting: Presentation Tips from Olivia Mitchell</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/officeOfTheLaw/presentation">presentation</a> <a href="http://delicious.com/officeOfTheLaw/resources">resources</a> <a href="http://delicious.com/officeOfTheLaw/tips">tips</a> <a href="http://delicious.com/officeOfTheLaw/publicspeaking">publicspeaking</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.james-carr.org/2010/01/26/links-for-2010-01-26/feed/</wfw:commentRss>
		</item>
		<item>
		<title>links for 2010-01-25</title>
		<link>http://blog.james-carr.org/2010/01/25/links-for-2010-01-25/</link>
		<comments>http://blog.james-carr.org/2010/01/25/links-for-2010-01-25/#comments</comments>
		<pubDate>Mon, 25 Jan 2010 13:01:49 +0000</pubDate>
		<dc:creator>James Carr</dc:creator>
		
		<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.james-carr.org/2010/01/25/links-for-2010-01-25/</guid>
		<description><![CDATA[

Eclipse Templates for Apache Camel
(tags: apache eclipse template)


]]></description>
			<content:encoded><![CDATA[<ul class="delicious">
<li>
<div class="delicious-link"><a href="http://janstey.blogspot.com/2008/08/eclipse-templates-for-apache-camel.html">Eclipse Templates for Apache Camel</a></div>
<div class="delicious-tags">(tags: <a href="http://delicious.com/officeOfTheLaw/apache">apache</a> <a href="http://delicious.com/officeOfTheLaw/eclipse">eclipse</a> <a href="http://delicious.com/officeOfTheLaw/template">template</a>)</div>
</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blog.james-carr.org/2010/01/25/links-for-2010-01-25/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
