<?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>Cake Solutions Team Blog</title>
	<atom:link href="http://www.cakesolutions.net/teamblogs/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cakesolutions.net/teamblogs</link>
	<description>void magic() { }</description>
	<lastBuildDate>Tue, 02 Mar 2010 17:00:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Domain driven design</title>
		<link>http://www.cakesolutions.net/teamblogs/2010/03/02/domain-driven-design/</link>
		<comments>http://www.cakesolutions.net/teamblogs/2010/03/02/domain-driven-design/#comments</comments>
		<pubDate>Tue, 02 Mar 2010 15:55:22 +0000</pubDate>
		<dc:creator>Jan Machacek</dc:creator>
				<category><![CDATA[Jan's Blog]]></category>
		<category><![CDATA[DDD]]></category>

		<guid isPermaLink="false">http://www.cakesolutions.net/teamblogs/?p=533</guid>
		<description><![CDATA[Almost every developer will agree that DDD is important. But what is DDD and why exactly is it so important? The best way of looking at this is to consider the conceptual differences between DDD and non-DDD scenarios.
But, you say, aren&#8217;t we are doing DDD simply by carefully separating our applications&#8217; tiers into domain, repository, [...]]]></description>
			<content:encoded><![CDATA[<p>Almost every developer will agree that DDD is important. But what is DDD and why exactly is it so important? The best way of looking at this is to consider the conceptual differences between DDD and non-DDD scenarios.<br />
But, you say, aren&#8217;t we are doing DDD simply by carefully separating our applications&#8217; tiers into domain, repository, services, web, and et cetera? I can <i>see</i> the domain tier in my application; the only things that live in the domain tier are the domain objects, therefore my application uses DDD. Right?<br />
Well, possibly. It is important to make clear distinction between domain objects as buckets for data and true objects, that is things with data and behaviour. A good indication of buckets of data situation is where your services contain a lot of non-transactional logic that shuffles data in your domain objects. A system implemented in this way is very similar to the old-school procedural programming approach. In procedural systems, there are no objects, there are only data structures and procedures that operate on those data structures. Keep term here is <i>data structure</i>; a data structure can be very rich:</p>
<pre>
typedef struct __INVOICE_T {
  int id;
  char invoice_number[100];
  supplier_t supplier;
  date_t invoice_date;
  invoice_line_t *invoice_lines;
} invoice_t;
</pre>
<p>in C is not that different from</p>
<pre>
public class Invoice {
  int id;
  String invoiceNumber;
  Supplier supplier;
  Date lastLogin;
  List<invoiceline> invoiceLines;
}
</invoiceline></pre>
<p>The similarity is striking. Both structures (the C structure and the Java class) are simply holders for data. Both objects hold enough information to calculate the sum of all net amounts on all invoice lines. This is where the difference between procedural and true DDD code becomes apparent. In procedural approach, you would write a procedure (by all means in a service-tier object, but ultimately a procedure) that takes the <code>Invoice</code> or (<code>invoice_t</code>) and returns the total.<br />
A DDD approach would be to have <code>BigDecimal getTotal()</code> method in the <code>Invoice</code> object. This is the simplest take of the DDD world; the methods in your domain objects could and <i>should</i> do as much work as possible. This is because the functionality of the domain objects is available to all tiers of your application.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cakesolutions.net/teamblogs/2010/03/02/domain-driven-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring MVC and iPhone</title>
		<link>http://www.cakesolutions.net/teamblogs/2010/02/23/spring-mvc-and-iphone/</link>
		<comments>http://www.cakesolutions.net/teamblogs/2010/02/23/spring-mvc-and-iphone/#comments</comments>
		<pubDate>Tue, 23 Feb 2010 20:21:54 +0000</pubDate>
		<dc:creator>Jan Machacek</dc:creator>
				<category><![CDATA[Jan's Blog]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[OSUG]]></category>
		<category><![CDATA[Spring Framework]]></category>
		<category><![CDATA[spring mvc]]></category>

		<guid isPermaLink="false">http://www.cakesolutions.net/teamblogs/?p=528</guid>
		<description><![CDATA[I have exciting new talk ready for the next open source user group meeting. We will implement a very friendly iPhone web application using Spring MVC 3.0 in about 30 minutes&#8217; time while keeping the controllers and models completely intact.
I don&#8217;t want to spoil the show; come along and don&#8217;t forget to bring your iPhones [...]]]></description>
			<content:encoded><![CDATA[<p>I have exciting new talk ready for the next open source user group meeting. We will implement a very friendly iPhone web application using Spring MVC 3.0 in about 30 minutes&#8217; time while keeping the controllers and models <i>completely</i> intact.<br />
I don&#8217;t want to spoil the show; come along and don&#8217;t forget to bring your iPhones for testing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cakesolutions.net/teamblogs/2010/02/23/spring-mvc-and-iphone/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Native-looking iPhone web applications</title>
		<link>http://www.cakesolutions.net/teamblogs/2010/02/22/native-looking-iphone-web-applications/</link>
		<comments>http://www.cakesolutions.net/teamblogs/2010/02/22/native-looking-iphone-web-applications/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 17:34:00 +0000</pubDate>
		<dc:creator>Jan Machacek</dc:creator>
				<category><![CDATA[Jan's Blog]]></category>
		<category><![CDATA['iPhone Spring']]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Java EE]]></category>
		<category><![CDATA[jQTouch]]></category>

		<guid isPermaLink="false">http://www.cakesolutions.net/teamblogs/?p=519</guid>
		<description><![CDATA[Say you have a [Spring] web application and you want to make it available on the iPhone with as little cost as possible. Naturally, you can just keep the application as is, after all, the iPhone is quite capable of displaying web pages. However, if you take a regular web page and show it on [...]]]></description>
			<content:encoded><![CDATA[<p>Say you have a [Spring] web application and you want to make it available on the iPhone with as little cost as possible. Naturally, you can just keep the application as is, after all, the iPhone is quite capable of displaying web pages. However, if you take a regular web page and show it on the iPhone, it does not always look its best. Another option is to create an iPhone native application (or use frameworks such as Appcelerator to turn HTML, CSS &#038; JavaScript into a native iPhone application). The native application gives you access to the iPhone hardware, but can take far too long to create.<br />
You can try out a third route. An iPhone web application that looks almost native, but is still a web application. We have taken an existing Spring Framework-based web application and &#8220;ported&#8221; it to the iPhone. Our objectives were simple: we do not want to change the structure of our controllers (or any other Java code, for that matter); all we were prepared to do is to prepare some iPhone-specific views. Now, because we said we did not want to touch our Java code, we implemented another <code>ViewResolver</code>, which we called <code>UserAgentViewResolver</code>. The <code>UserAgentViewResolver</code> is a view resolver that delegates to other view resolvers depending on the user agent of the request. This means that we can have different views with the same name for each user agent. In our case, we used plain old <code>InternalResourceViewResolver</code>s:</p>
<pre>
...
&lt;bean class="uk...servlet.view.UserAgentViewResolver"&gt;
  &lt;property name="viewResolvers"&gt;
    &lt;map&gt;
      &lt;entry key="*iPhone; U*"&gt;
        &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
                      p:prefix="/WEB-INF/views-iphone/en_GB/" p:suffix=".jsp" /&gt;
        &lt;/entry&gt;
     &lt;/map&gt;
  &lt;/property&gt;
  &lt;property name="defaultViewResolver"&gt;
    &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
                 p:prefix="/WEB-INF/views/en_GB/" p:suffix=".jsp" /&gt;
    &lt;/property&gt;
&lt;/bean&gt;
...
</pre>
<p>We used <a href="http://www.jqtouch.com/">jQTouch</a> in our iPhone views. The view itself is very simple, all we needed to do is to configure the jQTouch library and use standard HTML elements.</p>
<pre>
&lt;%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%&gt;
&lt;%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%&gt;
&lt;%@ taglib prefix="d" uri="http://uk.co.protomed/tags/display" %&gt;
&lt;%@ taglib prefix="buttons" tagdir="/WEB-INF/tags/buttons/" %&gt;
&lt;%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %&gt;
&lt;html&gt;
&lt;head&gt;
  &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /&gt;
  &lt;meta name="viewport" content="user-scalable=no, width=device-width" /&gt;
  &lt;meta name="apple-mobile-web-app-status-bar-style" content="black" /&gt;
  &lt;link type="text/css" rel="stylesheet"
    media="screen" href="/styles/jqtouch.css"&gt;
  &lt;link type="text/css" rel="stylesheet"
    media="screen" href="/styles/themes/apple/theme.css"&gt;
  &lt;script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"&gt;
  &lt;/script&gt;
  &lt;script src="/js/jqtouch.js" type="text/javascript"&gt;&lt;/script&gt;
  &lt;script type="text/javascript"&gt;
		var jQT = $.jQTouch({
			cacheGetRequests: false,
			statusBar: 'black'
		});
  &lt;/script&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="home" class="current"&gt;
  &lt;div class="toolbar"&gt;
    &lt;h1&gt;${patient.title} ${patient.firstName} ${patient.lastName}&lt;/h1&gt;
    &lt;a class="button back" href="#"&gt;Back&lt;/a&gt;
  &lt;/div&gt;
  &lt;div class="info"&gt;
    &lt;h1>Address&lt;/h1&gt;
    &lt;c:set var="address" value="${patient.address}"/&gt;
    ${address.address1} ${address.address2}&lt;br/&gt;${address.address3} ${address.postCode}&lt;br/&gt;
    &lt;a href="callto:${patient.phone}" rel="external"&gt;${patient.phone}&lt;/a&gt;
  &lt;/div&gt;
...
</pre>
<p>Using the <code>UserAgentViewResolver</code> and jQTouch, we got an iPhone web application with animations and other features that make it feel as if it were real web application, but <i>the server-side of our Java EE application remained unchanged!</i>.<br />
The end result is here:<br />
<a href="http://www.cakesolutions.net/teamblogs/wp-content/uploads/2010/02/Screen-shot-2010-02-22-at-17.36.221.png"><img src="http://www.cakesolutions.net/teamblogs/wp-content/uploads/2010/02/Screen-shot-2010-02-22-at-17.36.221.png" alt="iPhone application" title="iPhone application" width="407" height="756" class="aligncenter size-full wp-image-524" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.cakesolutions.net/teamblogs/2010/02/22/native-looking-iphone-web-applications/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HqlToken exception in dm Server</title>
		<link>http://www.cakesolutions.net/teamblogs/2010/02/21/hqltoken-exception-in-dm-server/</link>
		<comments>http://www.cakesolutions.net/teamblogs/2010/02/21/hqltoken-exception-in-dm-server/#comments</comments>
		<pubDate>Sun, 21 Feb 2010 19:17:41 +0000</pubDate>
		<dc:creator>Jan Machacek</dc:creator>
				<category><![CDATA[Jan's Blog]]></category>
		<category><![CDATA["ClassCastException HqlToken"]]></category>
		<category><![CDATA['ClassCastException HqlToken OSGi']]></category>
		<category><![CDATA[dm Server]]></category>
		<category><![CDATA[HqlToken]]></category>
		<category><![CDATA[OSGi]]></category>

		<guid isPermaLink="false">http://www.cakesolutions.net/teamblogs/?p=503</guid>
		<description><![CDATA[If you&#8217;re using Hibernate in WebLogic, some of you may have come across a class loading problem, because WebLogic includes Antlr 2.7 on its main classpath, and when you start application that requires antlr as well, you will end up with strange class loading and casting exceptions.
OSGi should really solve all this, shouldn&#8217;t it? We [...]]]></description>
			<content:encoded><![CDATA[<p>If you&#8217;re using Hibernate in WebLogic, some of you may have come across a class loading problem, because WebLogic includes Antlr 2.7 on its main classpath, and when you start application that requires antlr as well, you will end up with strange class loading and casting exceptions.<br />
OSGi should really solve all this, shouldn&#8217;t it? We no longer have monolithic classpaths, we have bundles with isolated classpaths and the OSGi runtime provides the lifecycle management and dependency resolution services. Well, in case of Hibernate, it is not that simple. Let&#8217;s say you have a typical web application with the <i>repository</i> tier implemented in Hibernate. The bundlified Hibernate distribution (courtesy of the <a href="http://www.springsource.com/repository/app">SpringSource Enterprise Bundle Repository</a>) correctly depends on Antlr 2.7; and so&#8211;to satisfy the dependency&#8211;you make your <i>repository</i> bundle depend on the appropriate Antlr bundle, and all seems to be working. Until you use more complex HQL query; that is one that does not begin with <code>select</code>, but with <code>delete</code> or <code>update</code>.<br />
You see, Hibernate uses Antlr to translate the HQL into an abstract syntax tree. The root of the problem is that it [Hibernate] passes a name of its internal class to Antlr. Antlr then tries to load the class using the provided name and use this class in the vertices of the AST. Naturally, in OSGi, this is a problem, because the Antlr bundle does not depend on Hibernate. The error message is then quite obvious <code>ClassNotFoundException: HqlToken</code>, but this exception is thrown from Antlr rather than from Hibernate or the rest your application.<br />
The dm Server&#8217;s extensions to the OSGi standard allow us to specify PAR-wide resolution context, which solves this problem.<br />
In practice, you have to place both your <i>repository</i> and <i>webapp</i> bundles in a PAR; in your <i>repository</i>&#8217;s <code>MANIFEST.MF</code>, you need to specify</p>
<pre>
...
Import-Bundle: ...,
 com.springsource.org.hibernate;version="[3.3.1.GA,3.3.1.GA]";
 <b>import-scope:=application</b>,
...
</pre>
<p>and finally, in your <i>webapp</i>, you need to include dependency on Hibernate in its <code>MANIFEST.MF</code>.<br />
In summary, you need to:</p>
<ul>
<li>Mark the Hibernate <code>Import-Bundle</code> entry with <code>import-scope:=application</code> in <i>repository</i>,</li>
<li>Include Hibernate in <code>Import-Bundle</code> in <i>webapp</i></li>
</ul>
<p>These two simple steps solve the <br /><code>ClassNotFoundException: org.hibernate.hql.ast.HqlToken</code> web applications that use Hibernate in dm Server 2.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cakesolutions.net/teamblogs/2010/02/21/hqltoken-exception-in-dm-server/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What&#8217;s cooking</title>
		<link>http://www.cakesolutions.net/teamblogs/2010/02/16/whats-cooking/</link>
		<comments>http://www.cakesolutions.net/teamblogs/2010/02/16/whats-cooking/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 21:31:17 +0000</pubDate>
		<dc:creator>Jan Machacek</dc:creator>
				<category><![CDATA[Jan's Blog]]></category>

		<guid isPermaLink="false">http://www.cakesolutions.net/teamblogs/?p=498</guid>
		<description><![CDATA[Let me give you my outlook on what Cake Solutions will be focusing over the next year.
I think that Java will continue being very important player. The two main reasons is that the language itself will quite likely go through some significant improvements in JDK 1.7 and, as consequence of the new JDK, we will [...]]]></description>
			<content:encoded><![CDATA[<p>Let me give you my outlook on what Cake Solutions will be focusing over the next year.<br />
I think that Java will continue being very important player. The two main reasons is that the language itself will quite likely go through some significant improvements in JDK 1.7 and, as consequence of the new JDK, we will also see easier adoption of dynamically-typed languages running on top of the JVM. This, in combination with the vast selection of open source libraries and frameworks, still makes Java our primary choice. Spring Frameworks remains important player in the Java server arena and will remain in the same position for the next year or two.<br />
Leaving development and compile-time tools aside, we need to improve our footing in the complex runtime environments. I see OSGi as a major influence in the next two years in the Java world.<br />
Specifically, our focus will be on:</p>
<ul>
<li>Ruby on Rails and Grails to offer rapid application development where Java EE is too much work (and until we become experts in expert systems, viz Roo!)</li>
<li>OSGi, which will bring new way of managing Java EE applications&#8217; runtime.</li>
<li>REST and dynamically typed systems. We need to be able to use at least one distributed application runtime platform. </li>
<li>HTML (5), CSS and jQuery. Most of our web user interface work is criminally out of date. We must use our RIA team&#8217;s expertise in modern web design and train all our old-school JEE code monkeys on contemporary web development standards.</li>
<li>Expert-system assisted development. Over the last 30 years, we have tried and failed to construct expert systems that can stand in place of human developers. We have failed because the expert systems tried to solve far too generic problems. With the new features in Java&#8217;s code, and with support from aspect-oriented programming, and in limited domains, it is now possible to use an expert system to construct a simple non-distributed, non parallelising, single VM Java EE application. I expect to see much more of the declarative programming concepts making their way into imperative programming, thus allowing us to implement more sophisticated expert systems.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.cakesolutions.net/teamblogs/2010/02/16/whats-cooking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring 3 training course</title>
		<link>http://www.cakesolutions.net/teamblogs/2009/11/30/spring-3-course/</link>
		<comments>http://www.cakesolutions.net/teamblogs/2009/11/30/spring-3-course/#comments</comments>
		<pubDate>Mon, 30 Nov 2009 15:45:22 +0000</pubDate>
		<dc:creator>Jan Machacek</dc:creator>
				<category><![CDATA[Jan's Blog]]></category>
		<category><![CDATA["Spring 3 course"]]></category>
		<category><![CDATA["Spring 3 training"]]></category>
		<category><![CDATA[course]]></category>
		<category><![CDATA[Spring 3]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://www.cakesolutions.net/teamblogs/?p=490</guid>
		<description><![CDATA[It is my pleasure to announce that we now have Practical Spring 3 training course. It is a four-day course aimed at beginner Spring developers.
So, if you&#8217;re experienced Java developer and want to learn about the Spring Framework, book the course and, in four days&#8217; time, you will be able to create three-tiered Spring 3 [...]]]></description>
			<content:encoded><![CDATA[<p>It is my pleasure to announce that we now have Practical Spring 3 training course. It is a four-day course aimed at beginner Spring developers.</p>
<p>So, if you&#8217;re experienced Java developer and want to learn about the Spring Framework, book the course and, in four days&#8217; time, you will be able to create three-tiered Spring 3 web application.</p>
<p>The course outline is</p>
<h3>Anatomy of Spring application</h3>
<p>Why Spring and how does Spring fit into your application.</p>
<h3>What does Spring do?</h3>
<p>Dependency injection and AOP; we explain the dependency injection concepts, bean lifecycle, we sprinkle it with the Spring annotations, including SPEL! We then press on with aspect-oriented programming, showing AOP support in the Spring Framework.</p>
<h3>The workers</h3>
<p>Understand how Spring fits into the data access and middle tiers. We go from JDBC to Hibernate and sprinkle it with a bit of Spring transaction management.</p>
<h3>The web</h3>
<p>Overview of modern web applications; understanding how Spring&#8217;s MVC support makes web programming really easy and efficient. We wrap up with REST support!</p>
<h3>The goodies</h3>
<p>If there is still some time left at the end of the course, we can include large-scale data processing (using JDBC batching and job monitoring); after which, we show that Spring Batch 2.0 offers the solution out of the box!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cakesolutions.net/teamblogs/2009/11/30/spring-3-course/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Custom arguments for @RequestMapping methods</title>
		<link>http://www.cakesolutions.net/teamblogs/2009/10/23/custom-arguments-for-requestmapping-methods/</link>
		<comments>http://www.cakesolutions.net/teamblogs/2009/10/23/custom-arguments-for-requestmapping-methods/#comments</comments>
		<pubDate>Fri, 23 Oct 2009 14:22:25 +0000</pubDate>
		<dc:creator>Jan Machacek</dc:creator>
				<category><![CDATA[Jan's Blog]]></category>
		<category><![CDATA[arguments for controller methods]]></category>
		<category><![CDATA[spring mvc]]></category>

		<guid isPermaLink="false">http://www.cakesolutions.net/teamblogs/?p=480</guid>
		<description><![CDATA[So, Spring MVC fans, let&#8217;s say you have a @RequestMapping-annotated method in your controller, but you would like to include a custom argument, in addition to the standard ones like Model, HttpServletRequest, and HttpServletResponse.
The solution is to implement a WebArgumentResolver. As an example, we&#8217;ll create a CurrentDateWebArgumentResolver; as its name suggests, this resolver will be [...]]]></description>
			<content:encoded><![CDATA[<p>So, Spring MVC fans, let&#8217;s say you have a <code>@RequestMapping</code>-annotated method in your controller, but you would like to include a custom argument, in addition to the standard ones like <code>Model</code>, <code>HttpServletRequest</code>, and <code>HttpServletResponse</code>.<br />
The solution is to implement a <code>WebArgumentResolver</code>. As an example, we&#8217;ll create a <code>CurrentDateWebArgumentResolver</code>; as its name suggests, this resolver will be able to set any <code>Date</code> argument in the controller method to current date.<br />
We have to write</p>
<pre>
public class ContextExtractingWebArgumentResolver
    implements WebArgumentResolver {

    @Override
    public Object resolveArgument(MethodParameter methodParameter,
        NativeWebRequest webRequest) throws Exception {
        if (Date.class == methodParameter.getParameterType()) {
            return new Date();
        }
        return UNRESOLVED;
    }
}
</pre>
<p>We then wire-in the argument resolver in our Spring application context configuration file:</p>
<pre>
&lt;bean class="org.springframework.web.servlet.mvc.annotation.
      AnnotationMethodHandlerAdapter"
    &lt;property name="customArgumentResolver"&gt;
        &lt;bean class="package.ContextExtractingWebArgumentResolver"/&gt;
    &lt;/property&gt;
&lt;/bean&gt;
</pre>
<p>Once done, we can create a <code>@RequestMapping</code>-annotated method in our controller and include the Date argument; that argument will now receive the current date. For example, we can have</p>
<pre>
@Controller
public class HomeController {
    @RequestMapping(value="/index", method=RequestMethod.GET)
    public void index(Date date, Model m) {
        m.addAttribute("now", date);
    }
}
</pre>
<p>The model that will be passed to the view after making a GET request to the <code>/index</code> URL will include attribute named <code>now</code>; the value of the attribute will be the current time.<br />
Naturally, this is just a simple example and injecting current date is not very enterprisey thing to do, but using the approach I have outlined, you can now set much more useful argument types. Do not forget that the implementation of the <code>WebArgumentResolver</code> is a Spring bean, thus having access to all features available in the Spring application context.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cakesolutions.net/teamblogs/2009/10/23/custom-arguments-for-requestmapping-methods/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring MVC Volume II</title>
		<link>http://www.cakesolutions.net/teamblogs/2009/10/21/spring-mvc-volume-ii-2/</link>
		<comments>http://www.cakesolutions.net/teamblogs/2009/10/21/spring-mvc-volume-ii-2/#comments</comments>
		<pubDate>Wed, 21 Oct 2009 12:18:38 +0000</pubDate>
		<dc:creator>Jan Machacek</dc:creator>
				<category><![CDATA[Jan's Blog]]></category>
		<category><![CDATA[Java User Group]]></category>
		<category><![CDATA[spring mvc]]></category>
		<category><![CDATA[Talk]]></category>

		<guid isPermaLink="false">http://www.cakesolutions.net/teamblogs/?p=478</guid>
		<description><![CDATA[It was my pleasure to deliver my Spring MVC talk at the Java User Group meeting in London yesterday. I loved the audience&#8211;they asked the right questions at the right time; at times they were paying too much attention and spotted a bug! Mea maxima culpa, all is corrected now.
The slides and the source  [...]]]></description>
			<content:encoded><![CDATA[<p>It was my pleasure to deliver my Spring MVC talk at the Java User Group meeting in London yesterday. I loved the audience&#8211;they asked the right questions at the right time; at times they were paying too much attention and spotted a bug! Mea maxima culpa, all is corrected now.</p>
<p>The slides and the source  code are available at <a href="http://github.com/janm399/smvc/tree/master">http://github.com/janm399/smvc/tree/master</a>. </p>
<p>I&#8217;d love to hear suggestions for the next talk&#8211;I am thinking about advanced Spring MVC, where we take a look under the hood of the <a href="http://static.springsource.org/spring/docs/3.0.0.RC1/javadoc-api/org/springframework/web/portlet/mvc/annotation/AnnotationMethodHandlerAdapter.html">AnnotationMethodHandlerAdapter</a> and its friends. Alternatively, we could leave the cushy OO world behind and dive into AOP, with focus on [Spring|Dynamic] AOP.</p>
<p>Please comment or tweet to <a href="http://twitter.com/honzam399">@honzam399</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cakesolutions.net/teamblogs/2009/10/21/spring-mvc-volume-ii-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>October North West Spring User Group Meeting</title>
		<link>http://www.cakesolutions.net/teamblogs/2009/10/19/october-sug-northwest/</link>
		<comments>http://www.cakesolutions.net/teamblogs/2009/10/19/october-sug-northwest/#comments</comments>
		<pubDate>Mon, 19 Oct 2009 08:36:16 +0000</pubDate>
		<dc:creator>Andrew Chalkley</dc:creator>
				<category><![CDATA[Andrew C's Blog]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Spring Integration]]></category>
		<category><![CDATA[Spring User Group]]></category>

		<guid isPermaLink="false">http://www.cakesolutions.net/teamblogs/?p=469</guid>
		<description><![CDATA[Last Tuesday was the North West Spring User Group. I was asked to deliver my jQuery talk that I gave to the South Spring User Group back in September last year.
It&#8217;s always good talking about jQuery as it&#8217;s relatively straight forward for the audience to read and has a shallow learning curve (if you know [...]]]></description>
			<content:encoded><![CDATA[<p>Last Tuesday was the North West Spring User Group. I was asked to deliver my jQuery talk that I gave to the South Spring User Group back in <a href="http://skillsmatter.com/podcast/java-jee/jquery">September</a> last year.</p>
<p>It&#8217;s always good talking about jQuery as it&#8217;s relatively straight forward for the audience to read and has a shallow learning curve (if you know CSS already). One of the other pleasures talking about jQuery, and other front end tech, is that you can always show interactive demos to &#8220;wow&#8221; the audience&#8230;</p>
<p>Here are my slides followed by a link to my demo code:</p>
<div style="width:425px;text-align:left" id="__ss_2273365"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/chalkley/jquery-sug-group-introduction" title="jQuery SUG Group Introduction">jQuery SUG Group Introduction</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jquery-091019025326-phpapp02&#038;stripped_title=jquery-sug-group-introduction" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=jquery-091019025326-phpapp02&#038;stripped_title=jquery-sug-group-introduction" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">presentations</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/chalkley">Andrew Chalkley</a>.</div>
</div>
<p>I brought some of my demo code up to date showing examples using the <a href="http://docs.jquery.com/Events/live">live</a>, event delegation functionality with jQuery. You can view my demo <a href="http://cakesolutions.net/jquery_demo/jquery.html">here</a> or download it zipped <a href="http://cakesolutions.net/jquery_demo/jquery.zip">here</a>.</p>
<p>If you have any queries about the above or want assist you in a jQuery, Javascript and AJAX project <a href="http://www.cakesolutions.net/contact.html">contact us</a>.</p>
<h2>Spring Integration</h2>
<p>Jonas Partner from OpenCredo also gave a presentation on the evening on Spring Integration. His slides are below:</p>
<div style="width:425px;text-align:left" id="__ss_2292034"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/chalkley/spring-integration-2292034" title="Spring Integration">Spring Integration &#8211; Jonas Partner</a><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=nwsugspringintegration-091020075822-phpapp01&#038;stripped_title=spring-integration-2292034" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=nwsugspringintegration-091020075822-phpapp01&#038;stripped_title=spring-integration-2292034" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object>
<div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;">View more <a style="text-decoration:underline;" href="http://www.slideshare.net/">documents</a> from <a style="text-decoration:underline;" href="http://www.slideshare.net/chalkley">Jonas Partner</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.cakesolutions.net/teamblogs/2009/10/19/october-sug-northwest/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring MVC volume II</title>
		<link>http://www.cakesolutions.net/teamblogs/2009/09/24/spring-mvc-volume-ii/</link>
		<comments>http://www.cakesolutions.net/teamblogs/2009/09/24/spring-mvc-volume-ii/#comments</comments>
		<pubDate>Thu, 24 Sep 2009 08:06:58 +0000</pubDate>
		<dc:creator>Jan Machacek</dc:creator>
				<category><![CDATA[Jan's Blog]]></category>

		<guid isPermaLink="false">http://www.cakesolutions.net/teamblogs/?p=466</guid>
		<description><![CDATA[I will be presenting my Spring MVC talk at the next Java User Group meet up on 20th October, this time at UCL. It won&#8217;t be just a repeat of the old talk, there will be some very interesting changes.
Oh, and one more thing!

Go to http://www.meetup.com/Londonjavacommunity/calendar/11439650 for the event details and registration form.
]]></description>
			<content:encoded><![CDATA[<p>I will be presenting my Spring MVC talk at the next Java User Group meet up on 20th October, this time at UCL. It won&#8217;t be just a repeat of the old talk, there will be some very interesting changes.</p>
<p>Oh, and one more thing!</p>
<p><a href="http://www.cakesolutions.net/teamblogs/wp-content/uploads/2009/09/frau-and-laser.png"><img src="http://www.cakesolutions.net/teamblogs/wp-content/uploads/2009/09/frau-and-laser.png" alt="frau and laser" title="frau and laser" width="509" height="316" class="alignleft size-full wp-image-467" /></a></p>
<p>Go to <a href="http://www.meetup.com/Londonjavacommunity/calendar/11439650/">http://www.meetup.com/Londonjavacommunity/calendar/11439650</a> for the event details and registration form.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.cakesolutions.net/teamblogs/2009/09/24/spring-mvc-volume-ii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
