<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments for monsterzz.info</title>
	<atom:link href="http://monsterzz.info/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://monsterzz.info</link>
	<description>Making world happy</description>
	<lastBuildDate>Wed, 16 Mar 2011 15:20:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>Comment on Spring DSL by Alessio Stalla</title>
		<link>http://monsterzz.info/2010/11/18/spring-dsl/#comment-60</link>
		<dc:creator>Alessio Stalla</dc:creator>
		<pubDate>Wed, 16 Mar 2011 15:20:17 +0000</pubDate>
		<guid isPermaLink="false">http://monsterzz.info/?p=8#comment-60</guid>
		<description>Nice post. You can also find good documentation and examples for this feature in Spring&#039;s reference documentation (&lt;a href=&quot;http://static.springsource.org/spring/docs/3.0.x/reference/xsd-config.html&quot; rel=&quot;nofollow&quot;&gt;Appendix C&lt;/a&gt;).

For an alternative approach (and shameless plug!), you can have a look at my project, Dynaspring. It implements an extensible DSL for Spring which is based on Lisp rather than XML. Your example would be roughly translated to

&lt;code&gt;
(defun block (&amp;key ref class url)
  (if ref
    (ref ref)
    (bean class :properties (&quot;url&quot; url))))

(defmacro define-chain (name (&amp;key xsl (parent &quot;baseXmlService&quot;)) &amp;body blocks)
  `(defbean ,name &quot;com.example.blocks.ChainXmlService&quot;
     :parent ,parent
     :properties (,@(when xsl `(&quot;styleSheet&quot; ,xsl))
		  &quot;serviceChain&quot; (list ,@blocks))))
&lt;/code&gt;

and used like this:

&lt;code&gt;
(define-chain &quot;chainedService&quot; (:xsl &quot;xsl/sample.xsl&quot;)
  (block :class &quot;com.example.blocks.HttpProxyBlock&quot; :url &quot;http://example.com/some/url&quot;)
  (block :ref &quot;authBlock&quot;))
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>Nice post. You can also find good documentation and examples for this feature in Spring&#8217;s reference documentation (<a href="http://static.springsource.org/spring/docs/3.0.x/reference/xsd-config.html" rel="nofollow">Appendix C</a>).</p>
<p>For an alternative approach (and shameless plug!), you can have a look at my project, Dynaspring. It implements an extensible DSL for Spring which is based on Lisp rather than XML. Your example would be roughly translated to</p>
<p><code><br />
(defun block (&amp;key ref class url)<br />
  (if ref<br />
    (ref ref)<br />
    (bean class :properties ("url" url))))</p>
<p>(defmacro define-chain (name (&amp;key xsl (parent "baseXmlService")) &amp;body blocks)<br />
  `(defbean ,name "com.example.blocks.ChainXmlService"<br />
     :parent ,parent<br />
     :properties (,@(when xsl `("styleSheet" ,xsl))<br />
		  "serviceChain" (list ,@blocks))))<br />
</code></p>
<p>and used like this:</p>
<p><code><br />
(define-chain "chainedService" (:xsl "xsl/sample.xsl")<br />
  (block :class "com.example.blocks.HttpProxyBlock" :url "http://example.com/some/url")<br />
  (block :ref "authBlock"))<br />
</code></p>
]]></content:encoded>
	</item>
</channel>
</rss>

