<?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>Better Software and beyond... &#187; Unit</title>
	<atom:link href="http://www.thorsten-kamann.de/tag/unit/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thorsten-kamann.de</link>
	<description>About architecture, development, quality and more</description>
	<lastBuildDate>Tue, 25 Oct 2011 20:16:06 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Dynamic Groovy Pt. 1</title>
		<link>http://www.thorsten-kamann.de/2009/06/03/dynamic-groovy-part1/</link>
		<comments>http://www.thorsten-kamann.de/2009/06/03/dynamic-groovy-part1/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 22:34:03 +0000</pubDate>
		<dc:creator>thorque</dc:creator>
				<category><![CDATA[Posts]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[MetaObjectProtocol]]></category>
		<category><![CDATA[MOP]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Unit]]></category>
		<category><![CDATA[Unittest]]></category>

		<guid isPermaLink="false">http://www.thorsten-kamann.de/wordpress/?p=181</guid>
		<description><![CDATA[<a href="http://www.thorsten-kamann.de/2009/06/03/dynamic-groovy-part1/" title="Dynamic Groovy Pt. 1"></a>Certainly you know that Groovy is one of the dynamic languages published in the last years. There are some languages with this approach: Ruby, JRuby, Python, PHP, JavaScript and many more. Groovy is a little bit special if you are &#8230;<p class="read-more"><a href="http://www.thorsten-kamann.de/2009/06/03/dynamic-groovy-part1/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.thorsten-kamann.de/2009/06/03/dynamic-groovy-part1/" title="Dynamic Groovy Pt. 1"></a><p>Certainly you know that <a title="Groovy" href="http://groovy.codehaus.org" target="_blank">Groovy</a> is one of the dynamic languages published in the last years. There are some languages with this approach: <a title="Ruby" href="http://www.ruby-lang.org" target="_blank">Ruby</a>, <a title="JRuby" href="http://jruby.codehaus.org/" target="_blank">JRuby</a>, <a title="Python" href="http://www.python.org/" target="_blank">Python</a>, <a title="PHP" href="http://www.php.net/" target="_blank">PHP</a>, <a title="JavaScript" href="https://developer.mozilla.org/en/JavaScript" target="_blank">JavaScript</a> and many more.</p>
<p>Groovy is a little bit special if you are a Java-Developer. Groovy is built on the top of the <a title="Java" href="http://www.java.net" target="_blank">Java-Platform</a>. So it is easy to learn the concepts and syntax of this nice language. Aside of powerful syntax enhancements there are the dynamic approach. With the Meta Object Protocol (MOP) you are able to analyze and change every Object.</p>
<h3>Getting all properties of an Object</h3>
<p>Properties in Groovy are a little bit special. In difference to fields a property always have a Getter-/Setter-Method. It is very easy to get all of such properties:</p>
<pre lang="groovy">def someObject = new SomeJavaObject()
someObject.metaClass.getProperties().each{
    println it.name
}</pre>
<p>With this codefragment you get a list of all properties of the Object <span style="font-family: andale mono,times;">someObject</span>. The content of this list are <span style="font-family: andale mono,times;">groovy.lang.MetaBeanProperty</span>. With this class you can</p>
<ul>
<li>get and set the field</li>
<li>get and set the Getter and Setter separately</li>
<li>query for a special property</li>
</ul>
<p>You can see in Picture 1 the Classdiagram of the MetabeanProperty class. With the help of this class you can easily analyze and change existing Groovy classes.</p>
<div class="img alignnone size-full wp-image-194" style="width:434px;">
	<img src="http://www.bobdveloper.de/wp-content/uploads/2009/06/groovy_lang_metabeanproperty3.png" alt="groovy.lang.MetaBeanProperty" width="434" height="353" />
	<div>groovy.lang.MetaBeanProperty</div>
</div><br />
<strong>Picture 1: Classdiagram of <span style="font-family: andale mono,times;">groovy.lang.MetaBeanProperty</span></strong></p>
<h3>What is a MetaClass?</h3>
<p>Every Class has some meta informations. This are informations about fields, properties and methods. Additionally it exists an invokeMethod. This method is used to call dynamically methods of Groovy Classes. The behaviour of this method is similar to the Reflection mechnism of Java (you know the package <span style="font-family: andale mono,times;">java.lang.reflect</span>?).</p>
<p><strong><div class="img alignnone size-full wp-image-197" style="width:472px;">
	<img src="http://www.bobdveloper.de/wp-content/uploads/2009/06/groovy_lang_metaclass.png" alt="groovy.lang.MetaClass" width="472" height="373" />
	<div>groovy.lang.MetaClass</div>
</div><br />
</strong><strong>Picture 2: Classstructure of <span style="font-family: andale mono,times;">groovy.lang.MetaClass</span></strong></p>
<h3>Dynamically adding method to classes</h3>
<p>With the help of this class you are able to add new methods to an existing class. Even final (and immutable) classes could be extended:</p>
<pre lang="groovy" escaped="true">String.metaClass.toFirstUpper &lt;&lt; {
	delegate[0].toUpperCase() + delegate.substring(1)
}</pre>
<p>This little fragment adds one method to the final class java.lang.String. After this code is executed you can access this from your¬† Groovy Code. Please attend that this only works if you are calling the additional methods from Groovy. You cannot call it from your Java Code, because the Compiler doesn&#8217;t know anything of this additonally method. But you can use reflection with a simple invokeMethod to use the dynamically added method.</p>
<p>In Groovy you can use the new method directly:</p>
<pre lang="groovy">def myString = "thisIsASimpleString"
assert "ThisIsASimpleString" == myString.toFirstUpper()</pre>
<p>If you use Java you need to use Reflection</p>
<pre lang="java">String myString = "thisIsASimpleString";
Method m = String.class.getMethod("toFirstUpper", new Class[]{});
assert "ThisIsASimpleString" == m.invokeMethod(myString, new Object[]{});</pre>
<h3>Adding static methods</h3>
<p>This works for static methods, too.</p>
<pre escaped="true" lang="groovy">public class Customer{
   String firstName
   String lastName
}

Customer.metaClass.static.create &lt;&lt; { String first, String last -&gt;
    new Customer(firstName: first, lastName: last)
}

assert "Thorsten" == Customer.create("Thorsten", "Kamann").firstNam</pre>
<h3>Conclusion</h3>
<p>This was Part 1 of Dynamic Groovy. In the next part we see how to add dynamically add constructors, properties, and adding methods to interfaces.</p>
<h3>Links</h3>
<ul>
<li><a href="http://groovy.codehaus.org/ExpandoMetaClass+-+Methods" target="_blank">http://groovy.codehaus.org/ExpandoMetaClass</a></li>
<li><a href="http://groovy.codehaus.org/ExpandoMetaClass+-+Methods" target="_blank">http://groovy.codehaus.org/ExpandoMetaClass+-+Methods</a></li>
<li><a href="http://groovy.codehaus.org/ExpandoMetaClass+-+Static+Methods" target="_blank">http://groovy.codehaus.org/ExpandoMetaClass+-+Static+Methods</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.thorsten-kamann.de/2009/06/03/dynamic-groovy-part1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Modularizing of Software with Spring dm</title>
		<link>http://www.thorsten-kamann.de/2009/03/23/geschnitten-oder-am-stuck-modularisierung-von-software-mir-spring-dynamic-modules/</link>
		<comments>http://www.thorsten-kamann.de/2009/03/23/geschnitten-oder-am-stuck-modularisierung-von-software-mir-spring-dynamic-modules/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 19:37:27 +0000</pubDate>
		<dc:creator>thorque</dc:creator>
				<category><![CDATA[Publications]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[OSGi]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Spring dm]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Unit]]></category>
		<category><![CDATA[Unittest]]></category>

		<guid isPermaLink="false">http://www.thorsten-kamann.de/wordpress/?p=120</guid>
		<description><![CDATA[<a href="http://www.thorsten-kamann.de/2009/03/23/geschnitten-oder-am-stuck-modularisierung-von-software-mir-spring-dynamic-modules/" title="Modularizing of Software with Spring dm"></a>EclipseMagazin 03.09 with Dmytro Mayster, itemis AG This article shows how to modularize existing software in different ways. The first one use pure OSGi. With the second try the modularization will be done with Spring dm. This article is written &#8230;<p class="read-more"><a href="http://www.thorsten-kamann.de/2009/03/23/geschnitten-oder-am-stuck-modularisierung-von-software-mir-spring-dynamic-modules/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.thorsten-kamann.de/2009/03/23/geschnitten-oder-am-stuck-modularisierung-von-software-mir-spring-dynamic-modules/" title="Modularizing of Software with Spring dm"></a><div class="entry">
<h6>EclipseMagazin 03.09 with <a href="https://www.xing.com/profile/Dmytro_Mayster">Dmytro Mayster</a>,<a href="http://www.itemis.de/"> itemis AG</a></h6>
<p>This article shows how to modularize existing software in different ways. The first one use pure OSGi. With the second try the modularization will be done with Spring dm.</p>
<p>This article is written german. If you can read german here is the original abstract:</p>
<h3>Geschnitten oder am Stück? &#8211; Modularisierung von Software mir Spring Dynamic-Modules</h3>
<p>Bob D. Veloper schlägt die Hände über dem Kopf zusammen. Schon wieder ist der Build fehlgeschlagen. Und schon wieder wurden interne Klassen der Adresskomponente von der Customerkomponente verwendet. Dieser Vorfall bewegt Bob dazu dieses Thema genauer anzugehen und zu lösen.<br />
Dieser Artikel beschreibt den Weg von Bob D. Veloper, den er nimmt, um seine Software zu OSGI-fien.</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.thorsten-kamann.de/2009/03/23/geschnitten-oder-am-stuck-modularisierung-von-software-mir-spring-dynamic-modules/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vortragsreihe Dortmund 09.02.2009: Webtests reloaded &#8211; Webtests mit Selenium, TestNG, Groovy und Maven</title>
		<link>http://www.thorsten-kamann.de/2009/01/28/vortragsreihe-dortmund-09022009-webtests-reloaded-webtests-mit-selenium-testng-groovy-und-maven/</link>
		<comments>http://www.thorsten-kamann.de/2009/01/28/vortragsreihe-dortmund-09022009-webtests-reloaded-webtests-mit-selenium-testng-groovy-und-maven/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 21:19:46 +0000</pubDate>
		<dc:creator>thorque</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Firefox]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[TestNG]]></category>
		<category><![CDATA[Unit]]></category>
		<category><![CDATA[Unittest]]></category>

		<guid isPermaLink="false">http://www.thorsten-kamann.de/wordpress/?p=93</guid>
		<description><![CDATA[<a href="http://www.thorsten-kamann.de/2009/01/28/vortragsreihe-dortmund-09022009-webtests-reloaded-webtests-mit-selenium-testng-groovy-und-maven/" title="Vortragsreihe Dortmund 09.02.2009: Webtests reloaded - Webtests mit Selenium, TestNG, Groovy und Maven"></a>Testgetriebene Entwicklung ist ein Muss, um die Qualität von Software-Produkten zu sichern. Der wohl am schwierigsten zu testenden Teil einer Anwendung ist die Weboberfläche. Oftmals ist es so, dass Oberflächen lediglich manuell getestet werden &#8211; mit allen Nachteilen, die manuelle &#8230;<p class="read-more"><a href="http://www.thorsten-kamann.de/2009/01/28/vortragsreihe-dortmund-09022009-webtests-reloaded-webtests-mit-selenium-testng-groovy-und-maven/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.thorsten-kamann.de/2009/01/28/vortragsreihe-dortmund-09022009-webtests-reloaded-webtests-mit-selenium-testng-groovy-und-maven/" title="Vortragsreihe Dortmund 09.02.2009: Webtests reloaded - Webtests mit Selenium, TestNG, Groovy und Maven"></a><p>Testgetriebene Entwicklung ist ein Muss, um die Qualität von Software-Produkten zu sichern. Der wohl am schwierigsten zu testenden Teil einer Anwendung ist die Weboberfläche. Oftmals ist es so, dass Oberflächen lediglich manuell getestet werden &#8211; mit allen Nachteilen, die manuelle Test mit sich bringen. Das Gespann Selenium, TestNG, Groovy und Maven bietet Ihnen einen Lösungsansatz, mit dem Sie in vertretbarer Zeit automatisierte Tests für Weboberflächen erstellen können. Dieser Vortrag führt Sie anhand einer Webanwendung Schritt für Schritt durch den Prozess, sodass Sie danach mit eigenen Experimenten beginnen können.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thorsten-kamann.de/2009/01/28/vortragsreihe-dortmund-09022009-webtests-reloaded-webtests-mit-selenium-testng-groovy-und-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webtests reloaded &#8211; Webtests with Selenium, TestNG, Groovy and Maven</title>
		<link>http://www.thorsten-kamann.de/2008/08/14/webtests-reloaded-webtests-with-selenium-testng-groovy-and-maven/</link>
		<comments>http://www.thorsten-kamann.de/2008/08/14/webtests-reloaded-webtests-with-selenium-testng-groovy-and-maven/#comments</comments>
		<pubDate>Thu, 14 Aug 2008 20:14:20 +0000</pubDate>
		<dc:creator>thorque</dc:creator>
				<category><![CDATA[Publications]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Selenium]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[TestNG]]></category>
		<category><![CDATA[Unit]]></category>
		<category><![CDATA[Unittest]]></category>

		<guid isPermaLink="false">http://www.thorsten-kamann.de/wordpress/?p=139</guid>
		<description><![CDATA[<a href="http://www.thorsten-kamann.de/2008/08/14/webtests-reloaded-webtests-with-selenium-testng-groovy-and-maven/" title="Webtests reloaded - Webtests with Selenium, TestNG, Groovy and Maven"></a>JavaMagazin 08.2008 und 09.2008 with Martin Groh, corporate quality PDF-File Webtests reloaded &#8211; Pt. 1 PDF-File Webtests reloaded &#8211; Pt. 2 The most difficult part to test is the WebUI. This part of an application only manually tested. With Selenium &#8230;<p class="read-more"><a href="http://www.thorsten-kamann.de/2008/08/14/webtests-reloaded-webtests-with-selenium-testng-groovy-and-maven/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.thorsten-kamann.de/2008/08/14/webtests-reloaded-webtests-with-selenium-testng-groovy-and-maven/" title="Webtests reloaded - Webtests with Selenium, TestNG, Groovy and Maven"></a><div class="entry">
<h6>JavaMagazin 08.2008 und 09.2008 with <a title="Martin Groh" href="https://www.xing.com/profile/Martin_Groh" target="_blank">Martin Groh</a>, <a title="corporate quality" href="http://www.corporatequality.de/" target="_blank">corporate quality</a></h6>
<p><a href="../../weblog/wp-content/uploads/2008/12/jm_808.pdf" target="_blank"><strong><span style="font-family: Segoe UI;"><div class="img alignnone size-full wp-image-136" style="width:34px;">
	<img src="http://www.bobdveloper.de/wp-content/uploads/2009/05/pdf.gif" alt="PDF-File" width="34" height="34" />
	<div>PDF-File</div>
</div>Webtests reloaded &#8211; Pt. 1</span></strong></a></p>
<p><strong><div class="img alignnone size-full wp-image-136" style="width:34px;">
	<a href="../../weblog/wp-content/uploads/2008/12/jm_908.pdf" target="_blank"><img src="http://www.bobdveloper.de/wp-content/uploads/2009/05/pdf.gif" alt="PDF-File" width="34" height="34" /></a>
	<div>PDF-File</div>
</div>Webtests reloaded &#8211; Pt. 2</a></strong></p>
<div class="entry">The most difficult part to test is the WebUI. This part of an application only manually tested. With Selenium you are able to test WebUIs on a simple way. In this article we shows you how to automating the test process. This article is writte in german. If you can read this, here is the original abstract:</div>
<div class="entry"></div>
<div class="entry">
<h3 id="post-250">Webtests reloaded &#8211; Webtests mit Selenium, TestNG, Groovy und Maven</h3>
</div>
<p><span style="font-family: Segoe UI;"><a id="amzn_cl_link_3" style="border-bottom: 1px solid; color: #aa3511; text-decoration: underline; padding-bottom: 1px;" name="3898642208" href="http://amazon.de/gp/product/3898642208?ie=UTF8&amp;tag=thorskaman-21&amp;link_code=em1&amp;camp=2510&amp;creative=11146&amp;creativeASIN=3898642208&amp;adid=6da725c3-c07a-4b65-9c41-c4b6f70e035a" target="_blank">Testgetriebene Entwicklung</a> ist ein Muss, um die Qualität von Software-Produkten zu sichern. Der wohl am schwierigsten zu testenden Teil einer Anwendung ist die¬† Weboberfläche. Oftmals ist es so, dass Oberflächen lediglich manuell getestet werden &#8211; mit allen Nachteilen, die manuelle Test mit sich bringen.<br />
Das Gespann Selenium, TestNG, Groovy und Maven bietet Ihnen einen Lösungsansatz, mit dem Sie in vertretbarer Zeit automatisierte Tests für Weboberflächen erstellen können. Dieser Artikel führt Sie anhand einer Webanwendung Schritt für Schritt durch den Prozess, sodass Sie danach mit eigenen Experimenten beginnen können.</span></div>
<h2 id="post-250"><a title="Permanent Link zu Webtests reloaded - Webtests mit Selenium, TestNG, Groovy und Maven" rel="bookmark" href="../../weblog/http:/www.thorsten-kamann.de/weblog/publications/webtests-reloaded-webtests-mit-selenium-testng-groovy-und-maven"><br />
</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://www.thorsten-kamann.de/2008/08/14/webtests-reloaded-webtests-with-selenium-testng-groovy-and-maven/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vortragsreihe Bonn 18.07.2008: My daily Spring &#8211; Best Practices mit Spring</title>
		<link>http://www.thorsten-kamann.de/2008/07/18/vortragsreihe-bonn-my-daily-spring-best-practices-mit-spring/</link>
		<comments>http://www.thorsten-kamann.de/2008/07/18/vortragsreihe-bonn-my-daily-spring-best-practices-mit-spring/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 20:44:31 +0000</pubDate>
		<dc:creator>thorque</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[Unit]]></category>

		<guid isPermaLink="false">http://www.thorsten-kamann.de/wordpress/?p=83</guid>
		<description><![CDATA[<a href="http://www.thorsten-kamann.de/2008/07/18/vortragsreihe-bonn-my-daily-spring-best-practices-mit-spring/" title="Vortragsreihe Bonn 18.07.2008: My daily Spring - Best Practices mit Spring"></a>In vielen Projekten ist das Spring-Framework das Mittel der Wahl. Zusätzlich werden in vielen Produkten Spring intern eingesetzt. Damit die Arbeit mit Spring uneingeschränkt Spass macht ist es wichtig einige Tricks und Kniffe zu kennen. In diesem Vortrag zeigt Ihnen &#8230;<p class="read-more"><a href="http://www.thorsten-kamann.de/2008/07/18/vortragsreihe-bonn-my-daily-spring-best-practices-mit-spring/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.thorsten-kamann.de/2008/07/18/vortragsreihe-bonn-my-daily-spring-best-practices-mit-spring/" title="Vortragsreihe Bonn 18.07.2008: My daily Spring - Best Practices mit Spring"></a><p>In vielen Projekten ist das <a id="amzn_cl_link_0" style="border-bottom: 1px solid; color: #aa3511; text-decoration: underline; padding-bottom: 1px;" name="0764574833" href="http://amazon.de/gp/product/0764574833?ie=UTF8&amp;tag=thorskaman-21&amp;link_code=em1&amp;camp=2510&amp;creative=11146&amp;creativeASIN=0764574833&amp;adid=0f832feb-cf5f-4e31-badb-c1927afb0c4d" target="_blank">Spring-Framework</a> das Mittel der Wahl. Zusätzlich werden in vielen Produkten Spring intern eingesetzt. Damit die Arbeit mit Spring uneingeschränkt Spass macht ist es wichtig einige Tricks und Kniffe zu kennen. In diesem Vortrag zeigt Ihnen der Referent, wie Sie effektiv Spring in Ihren Projekten einsetzen können. Die Themenbandbreite reicht dabei vom Tooling über Architekturthemen bis hin zum Testing:</p>
<ul>
<li>Spring-IDE: Features und Verwendung
<ul>
<li>Navigation zwischen Beandefinitionen und Code</li>
<li>Aspekte</li>
</ul>
</li>
<li>Architekturen unabhängig von Spring
<ul>
<li>keine HibernateTemplates</li>
<li>mein Code kennt nur Standards</li>
<li>eigene Annotations anstatt Spring-Annotations</li>
</ul>
</li>
<li>Testen mit Spring
<ul>
<li>Spring für Unittests</li>
<li>Dependency Injection</li>
<li>Angepasste Spring-Konfigurationen</li>
<li>DAO-Test</li>
</ul>
</li>
</ul>
<p><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=id=532860&amp;doc=mydailyspring-1217328085126960-9" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=id=532860&amp;doc=mydailyspring-1217328085126960-9" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355" wmode="transparent"></embed></object></p>
<p><img id="kosa-target-image" style="position: absolute; visibility: hidden; z-index: 2147483647; left: 434px; top: 302px;" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAUCAYAAACJfM0wAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAAB90RVh0U29mdHdhcmUATWFjcm9tZWRpYSBGaXJld29ya3MgOLVo0ngAAAAWdEVYdENyZWF0aW9uIFRpbWUAMDQvMDQvMDhrK9wWAAACA0lEQVQ4jbXVz0sUYRjA8e+u6xqlKJUaBZuUh6AfhyCEpUN/QIR0skMh6iHwsKe6lFu4HjpJhy5BS1CsZtDSrYMYdPHUZauDbhcpi7bEH2DOtjvP83aY3dFxxi1hfeAd3nlhPu/zPjPvOyHgKnsQEQDz60kaaKuTuRpqHxqMAKBWvVCoJOjAxqqj60Q1Y3fg05dWki/OMjt3+L+A+KklRvs+cia2VhtOTsYpN5wgl4nReTCM6s7o96UyA6kFkpNK9tZMEFx0B2bnO8hlYky/L5N9V2TDsinbgohi207fFqGxwZDoO0T67nEu9FseAyAMODWuNqC9LczUTBGrKIgqqgYRQdSgqogovy2b8YkCxzqiBBlOxuJ/earqIqqKbMfVsLYuGGMIMnb8KkTUk60HNwapTOqGCYLVDzdGDH9Km1mKiDOBMe4qmqJbl+g1wu5gtQGFZWHw8gFam/GXoILubwpxf+go336WCDJ8pYh35xkYayZ9J8aVi52+lZgt18VCif7RBeLd+X+XItX7nJHXyvkb6wD8eHOOqekVEuNffZM4icyR6s34SuGDTx/Jk715D4CTIy959XaFB0/n+Tw2TMu+jUDcMby3vg2yPW4/WuTxtYe0RJd9D9eKmodQT1eOxKVn9HR9qJZ1l3DABgGYuD7sdGR36CZsrFXqeNADhNijX9NfAyI+Sz1Sug0AAAAASUVORK5CYII=" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thorsten-kamann.de/2008/07/18/vortragsreihe-bonn-my-daily-spring-best-practices-mit-spring/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vortragsreihe Dortmund 17.09.2007: Leichtgewichtige Architekturen mit Spring, JPA, Maven und Groovy</title>
		<link>http://www.thorsten-kamann.de/2007/09/17/vortragsreihe-dortmund-17092007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/</link>
		<comments>http://www.thorsten-kamann.de/2007/09/17/vortragsreihe-dortmund-17092007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/#comments</comments>
		<pubDate>Mon, 17 Sep 2007 21:39:42 +0000</pubDate>
		<dc:creator>thorque</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[TestNG]]></category>
		<category><![CDATA[Unit]]></category>
		<category><![CDATA[Unittest]]></category>

		<guid isPermaLink="false">http://www.thorsten-kamann.de/wordpress/?p=104</guid>
		<description><![CDATA[<a href="http://www.thorsten-kamann.de/2007/09/17/vortragsreihe-dortmund-17092007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/" title="Vortragsreihe Dortmund 17.09.2007: Leichtgewichtige Architekturen mit Spring, JPA, Maven und Groovy"></a>Gute Software sollte sich an der entsprechenden Fachdomäne orientieren und nicht an der zugrundeliegenden Technologie. Um dies zu erreichen, wird allerdings eine Basis benötigt, die technisch ausgereift ist ohne Einschränkungen für die Entwicklung. Eine solche Basis kann mit dem Springframework &#8230;<p class="read-more"><a href="http://www.thorsten-kamann.de/2007/09/17/vortragsreihe-dortmund-17092007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.thorsten-kamann.de/2007/09/17/vortragsreihe-dortmund-17092007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/" title="Vortragsreihe Dortmund 17.09.2007: Leichtgewichtige Architekturen mit Spring, JPA, Maven und Groovy"></a><p>Gute Software sollte sich an der entsprechenden Fachdomäne orientieren und nicht an der zugrundeliegenden Technologie. Um dies zu erreichen, wird allerdings eine Basis benötigt, die technisch ausgereift ist ohne Einschränkungen für die Entwicklung. Eine solche Basis kann mit dem Springframework geschaffen werden. Die Kombination von Spring, Annotations, <a id="amzn_cl_link_1" style="border-bottom: 1px solid; color: #aa3511; text-decoration: underline; padding-bottom: 1px;" name="3446409416" href="http://amazon.de/gp/product/3446409416?ie=UTF8&amp;tag=thorskaman-21&amp;link_code=em1&amp;camp=2510&amp;creative=11146&amp;creativeASIN=3446409416&amp;adid=f166a279-fb31-4ef0-8e63-1332eac5f630" target="_blank">Java Persistence</a> (JPA) und Unit-Testing erlaubt eine flexible und modulare Architektur und könnte eine mögliche technische Basis für ein solches Softwaresystem sein.</p>
<p>Dieser Vortrag stellt einen Lösungsansatz anhand eines einfachen Beispiels vor. Die Aufbereitung der Inhalte orientiert sich dabei an einem typischen test-zentrierten Entwicklungsprozess. Folgende Themen werden angesprochen:</p>
<ul>
<li>Einleitung Spring und JPA, Maven, <a id="amzn_cl_link_4" style="border-bottom: 1px solid; color: #aa3511; text-decoration: underline; padding-bottom: 1px;" name="3897478544" href="http://amazon.de/gp/product/3897478544?ie=UTF8&amp;tag=thorskaman-21&amp;link_code=em1&amp;camp=2510&amp;creative=11146&amp;creativeASIN=3897478544&amp;adid=d8dd601f-46f5-4125-9730-1a217cf87d28" target="_blank">Groovy</a></li>
<li>Projektstruktur</li>
<li>Entwicklung der API (der Schnittstellen)</li>
<li>Test-getriebene Entwicklung der Implementierung</li>
<li>Spring-unterstützte Integrationstests</li>
</ul>
<p>Ausblick:</p>
<ul>
<li>Spring 2.5 &#8211; mehr Annotations; Verwaltung von Entities mit Spring</li>
<li>Webschicht &#8211; Anbindung einer Webanwendung mit <a id="amzn_cl_link_5" style="border-bottom: 1px solid; color: #aa3511; text-decoration: underline; padding-bottom: 1px;" name="3827321271" href="http://amazon.de/gp/product/3827321271?ie=UTF8&amp;tag=thorskaman-21&amp;link_code=em1&amp;camp=2510&amp;creative=11146&amp;creativeASIN=3827321271&amp;adid=5df766c5-929f-4ee9-8a16-845e8c067508" target="_blank">Java Server Faces</a> (JSF)</li>
<li>Spring-Webservices &#8211; Contract-First Webservices mit Spring-WS 1.0</li>
</ul>
<p><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=id=408896&amp;doc=lwabonn280108-1210887213630253-9" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=id=408896&amp;doc=lwabonn280108-1210887213630253-9" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355" wmode="transparent"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thorsten-kamann.de/2007/09/17/vortragsreihe-dortmund-17092007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vortragsreihe Bonn 28.01.2007: Leichtgewichtige Architekturen mit Spring, JPA, Maven und Groovy</title>
		<link>http://www.thorsten-kamann.de/2007/01/28/vortragsreihe-bonn-28012007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/</link>
		<comments>http://www.thorsten-kamann.de/2007/01/28/vortragsreihe-bonn-28012007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/#comments</comments>
		<pubDate>Sun, 28 Jan 2007 21:34:44 +0000</pubDate>
		<dc:creator>thorque</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[Maven]]></category>
		<category><![CDATA[Spring]]></category>
		<category><![CDATA[Test]]></category>
		<category><![CDATA[TestNG]]></category>
		<category><![CDATA[Unit]]></category>
		<category><![CDATA[Unittest]]></category>

		<guid isPermaLink="false">http://www.thorsten-kamann.de/wordpress/?p=101</guid>
		<description><![CDATA[<a href="http://www.thorsten-kamann.de/2007/01/28/vortragsreihe-bonn-28012007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/" title="Vortragsreihe Bonn 28.01.2007: Leichtgewichtige Architekturen mit Spring, JPA, Maven und Groovy"></a>Gute Software sollte sich an der entsprechenden Fachdomäne orientieren und nicht an der zugrundeliegenden Technologie. Um dies zu erreichen, wird allerdings eine Basis benötigt, die technisch ausgereift ist ohne Einschränkungen für die Entwicklung. Eine solche Basis kann mit dem Springframework &#8230;<p class="read-more"><a href="http://www.thorsten-kamann.de/2007/01/28/vortragsreihe-bonn-28012007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/">Read more &#187;</a></p>]]></description>
			<content:encoded><![CDATA[<a href="http://www.thorsten-kamann.de/2007/01/28/vortragsreihe-bonn-28012007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/" title="Vortragsreihe Bonn 28.01.2007: Leichtgewichtige Architekturen mit Spring, JPA, Maven und Groovy"></a><p>Gute Software sollte sich an der entsprechenden Fachdomäne orientieren und nicht an der zugrundeliegenden Technologie. Um dies zu erreichen, wird allerdings eine Basis benötigt, die technisch ausgereift ist ohne Einschränkungen für die Entwicklung. Eine solche Basis kann mit dem Springframework geschaffen werden. Die Kombination von Spring, Annotations, <a id="amzn_cl_link_1" style="border-bottom: 1px solid; color: #aa3511; text-decoration: underline; padding-bottom: 1px;" name="3446409416" href="http://amazon.de/gp/product/3446409416?ie=UTF8&amp;tag=thorskaman-21&amp;link_code=em1&amp;camp=2510&amp;creative=11146&amp;creativeASIN=3446409416&amp;adid=f166a279-fb31-4ef0-8e63-1332eac5f630" target="_blank">Java Persistence</a> (JPA) und Unit-Testing erlaubt eine flexible und modulare Architektur und könnte eine mögliche technische Basis für ein solches Softwaresystem sein.</p>
<p>Dieser Vortrag stellt einen Lösungsansatz anhand eines einfachen Beispiels vor. Die Aufbereitung der Inhalte orientiert sich dabei an einem typischen test-zentrierten Entwicklungsprozess. Folgende Themen werden angesprochen:</p>
<ul>
<li>Einleitung Spring und JPA, Maven, <a id="amzn_cl_link_4" style="border-bottom: 1px solid; color: #aa3511; text-decoration: underline; padding-bottom: 1px;" name="3897478544" href="http://amazon.de/gp/product/3897478544?ie=UTF8&amp;tag=thorskaman-21&amp;link_code=em1&amp;camp=2510&amp;creative=11146&amp;creativeASIN=3897478544&amp;adid=d8dd601f-46f5-4125-9730-1a217cf87d28" target="_blank">Groovy</a></li>
<li>Projektstruktur</li>
<li>Entwicklung der API (der Schnittstellen)</li>
<li>Test-getriebene Entwicklung der Implementierung</li>
<li>Spring-unterstützte Integrationstests</li>
</ul>
<p>Ausblick:</p>
<ul>
<li>Spring 2.5 &#8211; mehr Annotations; Verwaltung von Entities mit Spring</li>
<li>Webschicht &#8211; Anbindung einer Webanwendung mit <a id="amzn_cl_link_5" style="border-bottom: 1px solid; color: #aa3511; text-decoration: underline; padding-bottom: 1px;" name="3827321271" href="http://amazon.de/gp/product/3827321271?ie=UTF8&amp;tag=thorskaman-21&amp;link_code=em1&amp;camp=2510&amp;creative=11146&amp;creativeASIN=3827321271&amp;adid=5df766c5-929f-4ee9-8a16-845e8c067508" target="_blank">Java Server Faces</a> (JSF)</li>
<li>Spring-Webservices &#8211; Contract-First Webservices mit Spring-WS 1.0</li>
</ul>
<p><object style="margin:0px" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=id=408896&amp;doc=lwabonn280108-1210887213630253-9" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><param name="wmode" value="transparent" /><embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=id=408896&amp;doc=lwabonn280108-1210887213630253-9" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355" wmode="transparent"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://www.thorsten-kamann.de/2007/01/28/vortragsreihe-bonn-28012007-leichtgewichtige-architekturen-mit-spring-jpa-maven-und-groovy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

