<?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/"
		xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"
	xmlns:media="http://search.yahoo.com/mrss/"
>

<channel>
	<title>Frank Carver&#039;s Punch Barrel &#187; stringtree</title>
	<atom:link href="http://blog.punchbarrel.com/category/stringtree/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.punchbarrel.com</link>
	<description>Frank Carver&#039;s musings about software and life</description>
	<lastBuildDate>Thu, 08 Dec 2011 22:58:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<copyright>Copyright &#xA9; Frank Carver&#039;s Punch Barrel 2010 </copyright>
	<managingEditor>frank.carver@googlemail.com (Frank Carver&#039;s Punch Barrel)</managingEditor>
	<webMaster>frank.carver@googlemail.com (Frank Carver&#039;s Punch Barrel)</webMaster>
	<ttl>1440</ttl>
	<image>
		<url>http://punchbarrel.com/images/punchbarrel-144.jpg</url>
		<title>Frank Carver&#039;s Punch Barrel</title>
		<link>http://blog.punchbarrel.com</link>
		<width>144</width>
		<height>144</height>
	</image>
	<itunes:subtitle></itunes:subtitle>
	<itunes:summary>Frank Carver&#039;s musings about software and life</itunes:summary>
	<itunes:keywords></itunes:keywords>
	<itunes:category text="Society &#38; Culture" />
	<itunes:author>Frank Carver&#039;s Punch Barrel</itunes:author>
	<itunes:owner>
		<itunes:name>Frank Carver&#039;s Punch Barrel</itunes:name>
		<itunes:email>frank.carver@googlemail.com</itunes:email>
	</itunes:owner>
	<itunes:block>no</itunes:block>
	<itunes:explicit>no</itunes:explicit>
	<itunes:image href="http://punchbarrel.com/images/punchbarrel-144.jpg" />
		<item>
		<title>Stringtree and Mojasef now on GitHub</title>
		<link>http://blog.punchbarrel.com/2011/03/08/stringtree-and-mojasef-now-on-github/</link>
		<comments>http://blog.punchbarrel.com/2011/03/08/stringtree-and-mojasef-now-on-github/#comments</comments>
		<pubDate>Tue, 08 Mar 2011 16:08:23 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[stringtree]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[mojasef]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1626</guid>
		<description><![CDATA[It&#8217;s been a long time coming, but I have finally decided that the master source code of the Stringtree and Mojasef Java libraries will now be hosted at GitHub rather than Sourceforge. I have been using git to manage the rest of my software for a long time now, but my two main projects have [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time coming, but I have finally decided that the master source code of the Stringtree and Mojasef Java libraries will now be hosted at <a href="https://github.com/efficacy">GitHub</a> rather than Sourceforge.  I have been using git to manage the rest of my software for a long time now, but my two main projects have kept their place in subversion at Sourceforge. From now on, if you want the latest source code for either of these projects, please get it from <a href="https://github.com/efficacy">github</a>.</p>
<p>This move has several major advantages. The first is that you can now use GitHub&#8217;s &#8220;social coding&#8221; features to fork and modify the Stringtree and Mojasef code (and I&#8217;m always happy to discuss changes and improvements). The second advantage, and the one which tipped me over, is the ability to use git&#8217;s clever &#8220;submodule&#8221; support to include up-to-date Stringtree and Mojasef source code in other projects.</p>
<p>In the short term I will also be keeping the svn repositories up to date with significant changes. For now they are also the best place to find example code which uses Stringtree and/or Mojasef, but I plan to move all the examples over to GitHub in time.</p>
<p>Please let me know if you have any issues or questions about this move.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2011/03/08/stringtree-and-mojasef-now-on-github/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sinatra on Java</title>
		<link>http://blog.punchbarrel.com/2010/04/09/sinatra-on-java/</link>
		<comments>http://blog.punchbarrel.com/2010/04/09/sinatra-on-java/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 08:20:49 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[stringtree]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[jruby]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[sinatra]]></category>
		<category><![CDATA[war]]></category>
		<category><![CDATA[warbler]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1436</guid>
		<description><![CDATA[I originally chose to work in Ruby for its ease of deployment to low-cost shared hosting services, but as time has progressed I have become more comfortable with the language and a selection of tools and libraries. One that I like a lot is the Sinatra web framework. Interestingly it now appears that if I [...]]]></description>
			<content:encoded><![CDATA[<p>I originally chose to work in Ruby for its ease of deployment to low-cost shared hosting services, but as time has progressed I have become more comfortable with the language and a selection of tools and libraries. One that I like a lot is the <a href="http://www.sinatrarb.org/">Sinatra web framework</a>. Interestingly it now appears that if I wanted, I could run Sinatra applications in a Java web container such as <a href="http://tomcat.apache.org/">Tomcat</a>, <a href="http://www.caucho.com/products/resin/">Resin</a>, or <a href="http://jetty.codehaus.org/jetty/">Jetty</a> using <a href="http://caldersphere.rubyforge.org/warbler/">Warbler</a>, which bundles <a href="http://jruby.org/">JRuby</a> and an application into a standard war file for drop-in deployment.</p>
<p>This is an interesting challenge to my own pure-Java <a href="http://mojasef.stringtree.org/">Mojasef</a> framework, which offers several similarities with the approach taken by Sinatra. Sinatra wins on documentation, though <img src='http://blog.punchbarrel.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>A good guide to getting started with Sinatra and Warbler can be found at <a href="http://www.coreguardian.org/2010/02/21/sinatra-on-java/">Sinatra on Java | Coreguardian</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2010/04/09/sinatra-on-java/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Does it make sense to build your own workflow engine?</title>
		<link>http://blog.punchbarrel.com/2009/07/22/does-it-make-sense-to-build-your-own-workflow-engine/</link>
		<comments>http://blog.punchbarrel.com/2009/07/22/does-it-make-sense-to-build-your-own-workflow-engine/#comments</comments>
		<pubDate>Wed, 22 Jul 2009 13:36:22 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[Information]]></category>
		<category><![CDATA[stringtree]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[enterprise]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[workflow]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1337</guid>
		<description><![CDATA[A &#8220;workflow engine&#8221; is becoming the new must-have for enterprise system development. In days gone by it might have been an automatic choice to go for an expert system, Enterprise Service Bus, messaging infrastructure or big-ticket database, but those now seem a little bit passé. There are several commercial workflow engines available, and a whole [...]]]></description>
			<content:encoded><![CDATA[<p>A &#8220;workflow engine&#8221; is becoming the new must-have for enterprise system development. In days gone by it might have been an automatic choice to go for an expert system, Enterprise Service Bus, messaging infrastructure or big-ticket database, but those now seem a little bit passé.</p>
<p>There are several commercial workflow engines available, and a whole bunch of open source ones. Here&#8217;s a list of <a href="http://www.manageability.org/blog/stuff/workflow_in_java">workflow engines written in Java</a>, for example.</p>
<p>Boris Lublinsky has written <a href="http://www.infoq.com/news/2009/07/WFEngine">an article at InfoQ expressing the strong opinion that writing your own workflow engine should not be an option</a>.</p>
<p>I&#8217;m not sure I completely agree. For me the most telling part of the article appears near the end:</p>
<blockquote><p>People today rarely implement their own database or O/R mapper or application server. Why is it often that people think that they should write their own workflow engine?</p></blockquote>
<p>As it happens, I <strong>have</strong> implemented my own database, O/R mapper and application server, and found the experience invaluable in understanding the challenges and important features of such software. Writing a workflow engine would presumably be a similarly valuable lesson.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2009/07/22/does-it-make-sense-to-build-your-own-workflow-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stringtree/Mojasef for Java 1.4 are now proper branches</title>
		<link>http://blog.punchbarrel.com/2009/05/15/stringtreemojasef-for-java-14-are-now-proper-branches/</link>
		<comments>http://blog.punchbarrel.com/2009/05/15/stringtreemojasef-for-java-14-are-now-proper-branches/#comments</comments>
		<pubDate>Fri, 15 May 2009 12:18:24 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[stringtree]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[java 1.4]]></category>
		<category><![CDATA[java 5]]></category>
		<category><![CDATA[mojasef]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=1321</guid>
		<description><![CDATA[A few months ago I made the decision to move the Stringtree and Mojasef code-bases on from their requirement to support older Java versions. I tagged a particular version of the code as &#8220;1.4 final&#8221; and proceeded to work through the trunk code in the repository to bring it in line with key Java 5 [...]]]></description>
			<content:encoded><![CDATA[<p>A few months ago I made the decision to move the Stringtree and Mojasef code-bases on from their requirement to support older Java versions. I tagged a particular version of the code as &#8220;1.4 final&#8221; and proceeded to work through the trunk code in the repository to bring it in line with key Java 5 features such as generics, varargs and the enhanced for loop.</p>
<p>Since then I have progressively realized that I may have been a bit optimistic. A few odd bugs have been found in the 1.4 code, and a few key improvements have been made to the Java 5 code which by rights should also be implemented for 1.4. So I have decided to try and fix the situation.</p>
<p>As of today, the tag &#8220;1.4-final&#8221; in both Stringtree and Mojasef should be considered as deprecated, and any code which used to use that tagged version should instead use the branches (&#8220;Stringtree for Java 1.4&#8243; and &#8220;Mojasef for Java 1.4&#8243;) I have just created. Initially, the code is identical, but the plan is to go through and apply known bug fixes and fully-backward-compatible internal improvements to the branched versions.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2009/05/15/stringtreemojasef-for-java-14-are-now-proper-branches/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JSON Schema Proposal</title>
		<link>http://blog.punchbarrel.com/2008/11/02/json-schema-proposal/</link>
		<comments>http://blog.punchbarrel.com/2008/11/02/json-schema-proposal/#comments</comments>
		<pubDate>Sun, 02 Nov 2008 00:49:10 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[stringtree]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[schema]]></category>
		<category><![CDATA[validation]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=750</guid>
		<description><![CDATA[What a great idea! a schema definition for JSON, in JSON. I&#8217;m really tempted to build a validator for this format using my Stringtree JSON code. JSON Schema Proposal]]></description>
			<content:encoded><![CDATA[<p>What a great idea! a schema definition for JSON, in JSON. I&#8217;m really tempted to build a validator for this format using my Stringtree JSON code.</p>
<p><a href="http://json-schema.org/">JSON Schema Proposal</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2008/11/02/json-schema-proposal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A kind of answer to &#8220;Is it time for Java 5?&#8221;</title>
		<link>http://blog.punchbarrel.com/2008/10/01/a-kind-of-answer-to-is-it-time-for-java-5/</link>
		<comments>http://blog.punchbarrel.com/2008/10/01/a-kind-of-answer-to-is-it-time-for-java-5/#comments</comments>
		<pubDate>Wed, 01 Oct 2008 13:24:43 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[stringtree]]></category>
		<category><![CDATA[eosl]]></category>
		<category><![CDATA[java 1.4]]></category>
		<category><![CDATA[java 5]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/?p=577</guid>
		<description><![CDATA[A week or two ago I wrote asking Is it time for Java 5?. I got a few answers, but nothing definitive. Today, however, I stumbled upon a blog post from Alex Miller which helped me decide. Apparently, Java 1.4 will officially reach its end of service life (EOSL) at the end of October 2008. [...]]]></description>
			<content:encoded><![CDATA[<p>A week or two ago I wrote asking <a href="http://blog.punchbarrel.com/2008/09/21/is-it-time-for-java-5/">Is it time for Java 5?</a>. I got a few answers, but nothing definitive. Today, however, I stumbled upon a <a href="http://tech.puredanger.com/2008/10/01/ripjdk-14/">blog post</a> from <a href="http://tech.puredanger.com/">Alex Miller</a> which helped me decide.</p>
<p>Apparently, Java 1.4 will officially reach its end of service life (EOSL) at the end of October 2008. That of itself does not imply that nobody will continue to use it, but it does help third-party providers such as myself decide when to stop active support.</p>
<p>So, this is my decision. Some time after the start of November I will make a branch of the final Java 1.4-compatible version of all my public projects. Any future changes will no longer guarantee Java 1.4 support.</p>
<p>This does not imply, of course, that all my public code will suddenly be rewritten; dripping with annotations and generics and so on. The process will be incremental and progressive. The main point is that I will no longer be ensuring Java 1.4 compatibility in future releases.</p>
<p>As an aside &#8211; if you <strong>are</strong> still using Java 1.4 and would like to suggest a change to any of my software, please ensure that you get in touch in time for me to include it before November!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2008/10/01/a-kind-of-answer-to-is-it-time-for-java-5/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java 6 breaks JDBC</title>
		<link>http://blog.punchbarrel.com/2008/09/23/java-6-breaks-jdbc/</link>
		<comments>http://blog.punchbarrel.com/2008/09/23/java-6-breaks-jdbc/#comments</comments>
		<pubDate>Tue, 23 Sep 2008 10:36:40 +0000</pubDate>
		<dc:creator>Frank</dc:creator>
				<category><![CDATA[stringtree]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[java 1.4]]></category>
		<category><![CDATA[java 5]]></category>
		<category><![CDATA[java 6]]></category>
		<category><![CDATA[JDBC]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/2008/09/23/java-6-breaks-jdbc/</guid>
		<description><![CDATA[I&#8217;m cross. Very cross. Cross with Sun for releasing a new version of Java which shatters both backward- and forward- compatibility. Cross enough that I cannot see any sensible way of moving my software to Java 6 in the near future. It all started with an innocuous question in a comment on my Punchbarrel blog. [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m cross. <strong>Very</strong> cross. Cross with Sun for releasing a new version of Java which <em>shatters</em> both backward- <em>and</em> forward- compatibility. Cross enough that I cannot see any sensible way of moving my software to Java 6 in the near future.</p>
<p>It all started with an innocuous question in a <a href="http://blog.punchbarrel.com/2008/09/21/is-it-time-for-java-5/#comment-196">comment on my Punchbarrel blog</a>. I had posted asking for opinions on a move to Java 5, potentially abandoning Java 1.4, for the core Stringtree codebase. The question in the comment was about skipping Java 5 and moving directly to Java 6. This would normally be too big a leap, but I replied that I would endeavour to continue my policy of ensuring my code works with as wide a range of Java versions as possible.</p>
<p>Then I actually tried to do it, and that&#8217;s what made me cross. The more I attempted to produce code which would compile and run on Java 1.4, Java 5 and Java 6, the more impossible it began to seem.</p>
<p>I was already aware of the first hurdle. Sun have <a href="http://weblogs.java.net/blog/lancea/archive/2006/02/jdbc_40_wrapper.html">added new methods to a lot of key JDBC interfaces</a> by tagging them with the new <a href="http://java.sun.com/javase/6/docs/api/java/sql/Wrapper.html">javax.sql.Wrapper</a> interface. This is actually relatively easy to fix in a compatible way. Just add two new methods to each class which implements one of the affected JDBC interfaces:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">boolean</span> isWrapperFor<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">Class</span> clz<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">return</span> <span style="color: #000066; font-weight: bold;">false</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span>
&nbsp;
    <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #003399;">Object</span> unwrap<span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">Class</span> clz<span style="color: #009900;">&#41;</span> <span style="color: #000000; font-weight: bold;">throws</span> <span style="color: #003399;">SQLException</span> <span style="color: #009900;">&#123;</span>
        <span style="color: #000000; font-weight: bold;">throw</span> <span style="color: #000000; font-weight: bold;">new</span> <span style="color: #003399;">SQLException</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;Not a Wrapper for &quot;</span> <span style="color: #339933;">+</span> clz<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
    <span style="color: #009900;">&#125;</span></pre></div></div>

<p>The actual method signatures in the Java 6 Wrapper interface are phrased in terms of Generics, but the above stripped version compiles fine using Java 1.4, Java 5 and Java 6 compiler and libraries.</p>
<p>However, even after adding these arguably pointless methods to all my concrete implementations of affected JDBC interfaces, I still had a bunch of compilation errors when using Java 6 libraries. And this is where Sun have really screwed up.</p>
<p>Several other key JDBC interfaces have also been extended. But this time it has not been done by anything as simple as tagging with a new interface. These interfaces have all gained extra method themselves. This should not be a deal-breaker. It should be feasible to just add implementations of these methods to the existing Java 1.4-compatible code. After all, any class is free to define any methods it likes, not just those from an interface.</p>
<p><strong>Nope.</strong></p>
<p>It is simply impossible to add these new methods to a class and have that class still compile in a Java 1.4 or Java 5 environment. </p>
<p>The reason is that these methods are themselves defined in terms of classes and interfaces which do not exist in earlier Java versions. For example, the <a href="http://java.sun.com/javase/6/docs/api/java/sql/Connection.html">java.sql.Connection interface</a> gains methods referring to new interfaces <a href="http://java.sun.com/javase/6/docs/api/java/sql/NClob.html">NClob</a> and <a href="http://java.sun.com/javase/6/docs/api/java/sql/SQLXML.html">SQLXML</a></p>
<p>There is no answer to this. Sun have broken backward and forward compatibility of JDBC in Java 6. It is no longer possible to write an implementation of several key JDBC interfaces in a way which compiles under all the most popular Java versions.</p>
<p>Once again, Sun completely misunderstands the real world. Not everyone is free to upgrade every deployment to the very latest Java version immediately it is released. Even within those who do manage to update all their machines in one go, not everyone can immediately drop real work to spend time messing with old code <strong>which should still work</strong> to bring it into line with a new fashion.</p>
<p>As I wrote at the start of this rant. I&#8217;m cross.  </p>
<p>Grrr.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2008/09/23/java-6-breaks-jdbc/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>Is it time for Java 5?</title>
		<link>http://blog.punchbarrel.com/2008/09/21/is-it-time-for-java-5/</link>
		<comments>http://blog.punchbarrel.com/2008/09/21/is-it-time-for-java-5/#comments</comments>
		<pubDate>Sun, 21 Sep 2008 00:18:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[stringtree]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[java 1.4]]></category>
		<category><![CDATA[java 5]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/2008/09/21/is-it-time-for-java-5/</guid>
		<description><![CDATA[A major goal of the Stringtree software project has always been to be as compatible as possible with all the software people are using for their Java development. Naturally that also includes whatever Java version is being used. For a long time I interpreted this goal as implying that all Stringtree code should run on [...]]]></description>
			<content:encoded><![CDATA[<p>A major goal of the Stringtree software project has always been to be as compatible as possible with all the software people are using for their Java development. Naturally that also includes whatever Java version is being used.</p>
<p>For a long time I interpreted this goal as implying that all Stringtree code should run on all Java versions from Java 1.2 onwards. Java 1.4, however, introduced some compelling new features including built-in regular-expression handling. For a few years I still tried to ensure that most code was still 1.2-compatible (for example by using Ant to swap in a third-party regular-expression library while building a jar file), while also providing a Java 1.4 version. Eventually, use of Java versions prior to 1.4 declined enough that I felt comfortable removing the complicated pre-1.4 version.</p>
<p>For the last few years I have been very careful to keep all my Stringtree code compatible with all versions of Java from 1.4 upwards. Now, however, the pressure is building again to move over to Java 5. In my day-to-day coding I develop with Java 5 and make increasing use of Java 5 features such as the enhanced for loop, the Iterable interface, enums, generics, autoboxing, varargs and so on. It would be very nice to be able to update the Stringtree codebase to use these features too.</p>
<p>Occasionally a Java 5-specific detail has crept in to a Stringtree library, and I have soon received comments or emails pointing this out. I haven&#8217;t noticed this for a while, which might indicate either that I have been especially careful, or that I there are no longer any/many people developing with Stringtree code who are still limited to Java 1.4.</p>
<p>If you are reading this and you still require Java 1.4 support, please let me know. Likewise, if you have thrown off the shackles of 1.4 within the last year or so or are desperately hoping for a Java 5 Stringtree that would be good to know too.</p>
<p>Is it time for Java 5 yet?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2008/09/21/is-it-time-for-java-5/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Slight Improvement to Stringtree XML Parser</title>
		<link>http://blog.punchbarrel.com/2008/01/31/slight-improvement-to-stringtree-xml-parser/</link>
		<comments>http://blog.punchbarrel.com/2008/01/31/slight-improvement-to-stringtree-xml-parser/#comments</comments>
		<pubDate>Thu, 31 Jan 2008 14:09:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[stringtree]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.punchbarrel.com/2008/09/05/slight-improvement-to-stringtree-xml-parser/</guid>
		<description><![CDATA[Someone just pointed out that the light-weight XML parser included in Stringtree did not handle explicit CDATA blocks. The version in SVN now has provisional support for this. If you need a simple and fast parser for textual data, then this should be all you need. For XML documents containing opaque binary data in a [...]]]></description>
			<content:encoded><![CDATA[<p>Someone just pointed out that the light-weight <a href="http://stringtree.svn.sourceforge.net/svnroot/stringtree/trunk/src/delivery/java/org/stringtree/xml/XMLReader.java">XML parser</a> included in Stringtree did not handle explicit CDATA blocks. The version in SVN now has provisional support for this.</p>
<p>If you need a simple and fast parser for textual data, then this should be all you need. For XML documents containing opaque binary data in a CDATA block, this may not be ideal. Currently CDATA blocks are loaded as String objects, and this can lead to incorrect data for bytes which do not represent valid characters in the current character set.</p>
<p>I am currently planning for the next version of the Stringtree XMLReader to offer the option of extracting a CDATA block as an unprocessed byte array.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2008/01/31/slight-improvement-to-stringtree-xml-parser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Stringtree Maven Repository</title>
		<link>http://blog.punchbarrel.com/2008/01/07/stringtree-maven-repository/</link>
		<comments>http://blog.punchbarrel.com/2008/01/07/stringtree-maven-repository/#comments</comments>
		<pubDate>Mon, 07 Jan 2008 14:09:12 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[stringtree]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[maven]]></category>

		<guid isPermaLink="false">http://1602481442</guid>
		<description><![CDATA[I have experimented with Maven a few times, but never been particularly impressed. Recently, however, one of my users has been bugging me to make the Stringtree and Mojasef classes and sources available in a Maven-style repository, for easier integration with Maven (or Maven-like) build tools and workflows. So I have done it. The current [...]]]></description>
			<content:encoded><![CDATA[<p>I have experimented with <a href="http://maven.apache.org/">Maven</a> a few times, but never been particularly impressed. </p>
<p>Recently, however, <a href="http://www.realsolve.co.uk/site/home.php">one of my users</a> has been bugging me to make the Stringtree and Mojasef classes and sources available in a Maven-style repository, for easier integration with Maven (or Maven-like) build tools and workflows. So I have done it. The current versions of key Stringtree and Mojasef files are now available from the <a href="http://stringtree.org/repository/">Stringtree repository</a> at the following URLs:</p>
<ul>
<li><a href="http://stringtree.org/repository/org/stringtree/stringtree/2.0.10/stringtree-2.0.10-sources.jar">http://stringtree.org/repository/org/stringtree/stringtree/2.0.10/stringtree-2.0.10-sources.jar</a></li>
<li><a href="http://stringtree.org/repository/org/stringtree/stringtree/2.0.10/stringtree-2.0.10.jar">http://stringtree.org/repository/org/stringtree/stringtree/2.0.10/stringtree-2.0.10.jar</a></li>
<li><a href="http://stringtree.org/repository/org/stringtree/stringtree/2.0.10/stringtree-httpclient-2.0.10.jar">http://stringtree.org/repository/org/stringtree/stringtree/2.0.10/stringtree-httpclient-2.0.10.jar</a></li>
<li><a href="http://stringtree.org/repository/org/stringtree/stringtree/2.0.10/stringtree-json-2.0.10.jar">http://stringtree.org/repository/org/stringtree/stringtree/2.0.10/stringtree-json-2.0.10.jar</a></li>
<li><a href="http://stringtree.org/repository/org/stringtree/mojasef/2.0.b1/mojasef-2.0.b1-sources.jar">http://stringtree.org/repository/org/stringtree/mojasef/2.0.b1/mojasef-2.0.b1-sources.jar</a></li>
<li><a href="http://stringtree.org/repository/org/stringtree/mojasef/2.0.b1/mojasef-2.0.b1-withdependencies-sources.jar">http://stringtree.org/repository/org/stringtree/mojasef/2.0.b1/mojasef-2.0.b1-withdependencies-sources.jar</a></li>
<li><a href="http://stringtree.org/repository/org/stringtree/mojasef/2.0.b1/mojasef-2.0.b1-withdependencies.jar">http://stringtree.org/repository/org/stringtree/mojasef/2.0.b1/mojasef-2.0.b1-withdependencies.jar</a></li>
<li><a href="http://stringtree.org/repository/org/stringtree/mojasef/2.0.b1/mojasef-2.0.b1.jar">http://stringtree.org/repository/org/stringtree/mojasef/2.0.b1/mojasef-2.0.b1.jar</a></li>
</ul>
<p>The Stringtree and Mojasef build scripts now include a &#8220;publish&#8221; target which uploads such artefacts to appropriate places in the repository, so future versions should continue to be available.</p>
<p>This is the first time I have done this, so I would welcome comments from any readers who actually use Maven (or buildr, or anything else which supports this repository format). In particular, I am interested in opinions on whether it is OK to simply replace artefacts with the same names and locations for minor tweaks and bug-fixes, or whether even the smallest change should result in the generation and upload of a new version with a new name and location.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.punchbarrel.com/2008/01/07/stringtree-maven-repository/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.262 seconds -->

