<?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>Service Geist &#187; Java</title>
	<atom:link href="http://www.service-geist.de/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.service-geist.de</link>
	<description>Tom's Blog &#38; Home of iPlode</description>
	<lastBuildDate>Sun, 02 May 2010 16:05:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Java ist doch was Feines &#8211; iPlode für Linux</title>
		<link>http://www.service-geist.de/2009/02/20/java-ist-doch-was-feines-iplode-fur-linux/</link>
		<comments>http://www.service-geist.de/2009/02/20/java-ist-doch-was-feines-iplode-fur-linux/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 22:06:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Aktuell]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software-Entwicklung]]></category>
		<category><![CDATA[iPlode]]></category>
		<category><![CDATA[SWT]]></category>
		<category><![CDATA[VMWare Fusion]]></category>

		<guid isPermaLink="false">http://www.service-geist.de/?p=802</guid>
		<description><![CDATA[Yepp, ja, ich weiss, ich sollte endlich mal eine fertige Version rausbringen und dann anfangen auf jedes (exotische *duck_und_weg*) Betriebssystem zu portieren. Aber ich habe irgendwie so ein wenig rumgedaddelt vorm Rechner und dachte mir ich könnte ja mal Ubuntu runterladen für VMWare Fusion. Gesagt, getan! Naja, Eclipse war fix installiert und iPlode lief &#8211; [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.service-geist.de/wp-content/uploads/2009/02/screenshot_iplode_linux.png"><img src="http://www.service-geist.de/wp-content/uploads/2009/02/screenshot_iplode_linux-266x300.png" alt="" title="screenshot_iplode_linux" width="266" height="300" class="alignleft size-medium wp-image-803" /></a></p>
<p>Yepp, ja, ich weiss, ich sollte endlich mal eine fertige Version rausbringen und dann anfangen auf jedes (exotische *duck_und_weg*) Betriebssystem zu portieren. Aber ich habe irgendwie so ein wenig rumgedaddelt vorm Rechner und dachte mir ich könnte ja mal <a href="http://jars.de/linux/ubuntu-804-vmware-image-download/comment-page-1">Ubuntu runterladen für VMWare Fusion</a>. Gesagt, getan!</p>
<p>Naja, Eclipse war fix installiert und iPlode lief &#8211; nach anpassen der SWT-Libraries &#8211; out of-the-box, was mich wieder zu meiner Überschrift bringt: Java ist doch was Feines.</p>
<p>Der Plan ist aber immer noch am Wochenende ein wenig Zeit zu investieren, um die ersten <a href="http://www.service-geist.de/en/iplode/download/">Downloads</a> klar zu machen. Ok, jeder der Software entwickelt weiss ja wie das so ist mit den Plänen, aber noch steht der Plan :-).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.service-geist.de/2009/02/20/java-ist-doch-was-feines-iplode-fur-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Robot Test Framework</title>
		<link>http://www.service-geist.de/2009/01/22/robot-test-framework/</link>
		<comments>http://www.service-geist.de/2009/01/22/robot-test-framework/#comments</comments>
		<pubDate>Thu, 22 Jan 2009 18:58:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Agile Methoden]]></category>
		<category><![CDATA[Software-Entwicklung]]></category>
		<category><![CDATA[Tech Talk]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.service-geist.de/?p=466</guid>
		<description><![CDATA[Durch eine Mail in der Firma bin ich heute darauf gestossen, dass ein Test Framework, welches wir in einem grossen Projekt genutzt haben, mittlerweile (vielleicht auch schon länger) frei verfügbar ist. Dabei bin ich zunächst mal über Google Code gestolpert. Das hatte ich zwar schonmal in Zusammenhang mit Android gesehen, aber mir war gar nicht [...]]]></description>
			<content:encoded><![CDATA[<p>Durch eine Mail in der Firma bin ich heute darauf gestossen, dass ein Test Framework, welches wir in einem grossen Projekt genutzt haben, mittlerweile (vielleicht auch schon länger) frei verfügbar ist. Dabei bin ich zunächst mal über <a href="http://code.google.com/">Google Code</a> gestolpert. Das hatte ich zwar schonmal in Zusammenhang mit <a href="http://code.google.com/android/">Android</a> gesehen, aber mir war gar nicht bewusst, dass Google auch Project Hosting betreibt.</p>
<blockquote><p>
Project Hosting on Google Code is a free service to the open source community. Featuring a Subversion back-end, wiki support, file downloads, issue tracking and a clean, Google-style interface, our project hosting service is the world&#8217;s second largest open source hosting site after <a href="http://sourceforge.net/index.php">SourceForge.net</a>.</p></blockquote>
<p>Aber zurück zum Test Framework mit dem einprägsamen Namen <a href="http://code.google.com/p/robotframework/">Robot</a>. Das Projekt bei dem ich Robot genutzt habe liegt etwas mehr als ein Jahr zurück, aber ich glaube ich kann mich an die wichtigsten <em>Features</em> noch ganz gut erinnern. </p>
<p>Also, wofür ein &#8230; dieses &#8230; Test Framework? Es geht darum einen automatisierten Blackbox-Test für eine Software aufzubauen. Automatische Tests sind ein Herzstück <a href="http://de.wikipedia.org/wiki/Agile_Softwareentwicklung">agiler Softwareprojekte</a>, denn nur mit (guten!) automatisierten Tests lässt sich innerhalb einer Iteration sicherstellen, dass alle bereits fertigen Teile der Software immer noch wie erwartet funktionieren &#8211; und die neuen Teile natürlich auch. Hierbei gilt es die von der Software zur Verfügung gestellten Interfaces abzutesten (&#8220;Gutfälle&#8221; und &#8220;Schlechtfälle&#8221; gleichermassen). Natürlich hängt die Qualität der Tests stark vom Test-Entwickler ab, und das beste Framework kann keine schlechten Tests vermeiden, aber es kann die Implementierung guter Tests unterstützen. Und das tut das Robot Framework ganz gut wie ich finde.</p>
<p><a href="http://www.service-geist.de/wp-content/uploads/2009/01/_robot_screenshot.png"><img src="http://www.service-geist.de/wp-content/uploads/2009/01/_robot_screenshot.png" alt="" title="_robot_screenshot" width="500" height="206" class="alignnone size-full wp-image-474" /></a></p>
<p>Die Einarbeitungszeit in das Tool war relativ gering. Die Tests lassen sich in einzelnen Modulen implementieren. Dies kann entweder in Java passieren, oder in jeder Sprache, die sich per Shell aufrufen lässt, z.B. Perl. Ein Test erwartet einen gewissen Satz von Parametern, die dann an die Testmethode übergeben werden. Diese Methode implementiert dann den Test und liefert OK oder NOK zurück. Ein Testcase lässt sich aus mehreren solcher Methoden zusammensetzen. Auch kann man die Testcases <em>taggen</em>, um sich in den generierten Reports einen besseren Überblick über die getesteten Teile der Software zu verschaffen &#8230; Achtung &#8230; die benutzten Keywords müssen gut abgestimmt werden, sonst benutzt jeder leichte Abwandlungen. </p>
<p>Testmethoden lassen sich in einer Art Projekt zusammenfassen, wobei es natürlich sinnvoll ist ähnliche &#8211; und vor allen Dingen generische &#8211; Testmethoden einmal für mehrere Projekte zu schreiben. Solche Tests könnten z.B. sein: &#8220;Existiert eine Datei (Parameter Pfad zur Datei)&#8221; oder &#8220;Existiert ein Directory (Pfad zum Directory)&#8221;. Komplizierte Testcases können so aus einer Vielzahl (idealerweise bereits existierender) Testmethoden zusammengesetzt werden. Die generierten Reports zeigen übersichtlich die Anzahl der erfolgreichen/fehlgeschlagenen Tests an und es lässt sich auch anzeigen welche Tests wo fehlgeschlagen sind.</p>
<p>Was ist sonst noch zu beachten? Die eigentlichen Testcases werden in einer simplen HTML-Datei geschrieben, was die Ganze Sache recht einfach macht. Hier werden nur noch vorhandene Testmethoden genutzt und die Parameter übergeben. Zum eigentlichen schreiben der Testmethoden ist aber im Prinzip eher das Wissen eines Entwicklers als das eines Testers gefragt, denn die Entwicklung der Testmethoden kann sich leicht zu einem eigenen kleinen Software-Projekt entwickeln. Auf der anderen Seite ist es gefährlich wenn der Entwickler die Testmethoden für seine eigenen Komponenten entwickelt. D.h. hier sind Tester mit Programmiererfahrung gefragt oder aber die Testmethoden müssen von verschienden Team-Mitgliedern entwickelt werden. Es ist eh fraglich ob &#8220;reine Tester&#8221; in agilen Teams sinnvoll sind, insbesondere wenn diese auch noch in externe Teams ausgelagert sind. Ich denke es macht deutlich mehr Sinn Testkompentenz &#8211; zusätzlich &#8211; im agilen Team aufzubauen und zu nutzen. Dadurch bekommen die &#8220;Tester&#8221; auch direkt mehr Produktkompentenz und wissen besser welche Schnittstellen es zu testen gilt.</p>
<p>Testen von &#8220;Backend-Prozessen&#8221; und GUI &#8230; das werde ich hier nicht vertiefen, zumal ich nur bei Tests im Backend-Bereich involviert war. Aber zumindest schien es einige Probleme mit den Libraries zu geben, die für das GUI-Testen benutzt werden mussten. Aber da das über ein Jahr zurück liegt wird es sicherlich Fortschritte in dem Bereich gegeben haben.</p>
<p>In diesem Sinne &#8220;happy testing and roboting&#8221; &#8230; :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.service-geist.de/2009/01/22/robot-test-framework/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse Runnable JAR File &#8211; SWT Applikation langsam unter Mac OS</title>
		<link>http://www.service-geist.de/2009/01/13/eclipse-runnable-jar-file-swt-applikation-langsam-unter-mac-os/</link>
		<comments>http://www.service-geist.de/2009/01/13/eclipse-runnable-jar-file-swt-applikation-langsam-unter-mac-os/#comments</comments>
		<pubDate>Tue, 13 Jan 2009 21:14:39 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software-Entwicklung]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[SWT]]></category>

		<guid isPermaLink="false">http://www.service-geist.de/?p=358</guid>
		<description><![CDATA[Bei dem Versuch unter Mac OS mit Eclipse ein Runnable JAR File zu exportieren bin ich heute auf ein Problem gestossen. Der Export an sich klappt problemlos, doch wenn man das JAR dann gestartet hat &#8211; eine SWT Applikation &#8211; war die Applikation langsam bis hin zur Unbrauchbarkeit. Da dieses Problem nicht auftritt wenn die [...]]]></description>
			<content:encoded><![CDATA[<p>Bei dem Versuch unter Mac OS mit Eclipse ein <em>Runnable JAR File</em> zu exportieren bin ich heute auf ein Problem gestossen. Der Export an sich klappt problemlos, doch wenn man das JAR dann gestartet hat &#8211; eine <a href="http://www.eclipse.org/swt/">SWT</a> Applikation &#8211; war die Applikation langsam bis hin zur Unbrauchbarkeit. </p>
<p>Da dieses Problem nicht auftritt wenn die Applikation aus Eclipse heraus gestartet wird, habe ich im Terminal ein wenig mit <a href="http://de.wikipedia.org/wiki/Ps_(Unix)">ps</a> gespielt und herausgefunden, dass Eclipse per default die folgenden Java Option setzt <em>-XstartOnFirstThread</em>. Startet man das Runnable JAR direkt (per Doppelklick) fehlt diese Option.</p>
<p>Dieses Problem wird auch im <a href="http://www.eclipse.org/swt/faq.php#carbonapp">SWT FAQ</a> behandelt, aber das habe ich erst hinterher gefunden ;):</p>
<blockquote><p>
Q: On Mac Carbon, how do I run an SWT application from the command line?<br />
A: If you run a Java application that uses Carbon via JNI, the application is not registered with the OS as a &#8216;normal&#8217; UI application. As a consequence, it has no entry in the dock and it cannot be activated. AWT (or Swing) based applications don&#8217;t have this problem because they seem to use undocumented SPI to register themselves.<br />
To work around this problem you&#8217;ll have to pass the -XstartOnFirstThread option to the java executable as follows:</p>
<p>         java -XstartOnFirstThread -cp swt.jar:. ControlExample</p>
<p>If you want to run a bundled application, take a look at this article.
</p></blockquote>
<p>Zum Glück führt das FAQ dann auch direkt zu diesem <a href="http://www.eclipse.org/swt/macosx/">Artikel</a>, der beschreibt wie man aus einem Runnable JAR ein Mac OS Bundle machen kann. Das ist genau die Information, die mir noch gefehlt hat und das werde ich natürlich vorm Release von <a href="http://www.service-geist.de/iplode/">iPlode</a> noch ausprobieren und dann berichten; ich hoffe vielmehr man kann das Ergebnis dann hier bewundern :).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.service-geist.de/2009/01/13/eclipse-runnable-jar-file-swt-applikation-langsam-unter-mac-os/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>UML-Diagramme erstellen mit Visual Paradigm</title>
		<link>http://www.service-geist.de/2008/12/21/uml-diagramme-erstellen-mit-visual-paradigm/</link>
		<comments>http://www.service-geist.de/2008/12/21/uml-diagramme-erstellen-mit-visual-paradigm/#comments</comments>
		<pubDate>Sun, 21 Dec 2008 22:08:14 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Erfahrungsberichte]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software-Entwicklung]]></category>
		<category><![CDATA[UML]]></category>

		<guid isPermaLink="false">http://www.service-geist.de/?p=284</guid>
		<description><![CDATA[Vor einiger Zeit &#8211; genau genommen in einer Zeit vor diesem Blog ;) &#8211; habe ich mich mal intensiv nach frei verfügbaren UML-Editoren umgeschaut. Nachdem ich durch die Arbeit Rational Rose kennen und &#8220;hassen&#8221; gelernt hatte, war ich auf der Suche nach einer besseren Alternative. Idealerweise sollte diese für Freizeit-Projekte frei verfügbar sein. Nach einigem [...]]]></description>
			<content:encoded><![CDATA[<p>Vor einiger Zeit &#8211; genau genommen in einer Zeit vor diesem Blog ;) &#8211; habe ich mich mal intensiv nach frei verfügbaren UML-Editoren umgeschaut. Nachdem ich durch die Arbeit <a href="http://www-142.ibm.com/software/dre/ecatalog/detail.wss?locale=de_DE&#038;synkey=M221280M46834Z27">Rational Rose</a> kennen und &#8220;hassen&#8221; gelernt hatte, war ich auf der Suche nach einer besseren Alternative. Idealerweise sollte diese für Freizeit-Projekte frei verfügbar sein. Nach einigem Stöbern bin ich schliesslich auf <a href="http://www.visual-paradigm.com/">Visual Paradigm</a> gestossen.</p>
<p>Wenn man sich von der etwas überfrachteten Webseite nicht abschrecken lässt und auch nicht von dem nötigen Account für den <a href="http://www.visual-paradigm.com/download/">Download</a> bekommt man ein auf Eclipse basiertes UML-Tool, welches einen sehr guten Eindruck macht. Für nicht-kommerzielle Projekte gibt es eine Community-Version mit eingeschränkter Funktionalität. Die <a herf="http://www.visual-paradigm.com/product/vpuml/vpumlpricelist.jsp"> folgende Übersicht</a> zeigt alle möglichen Editionen und Preise. Einen Feature-Vergleich der verschiedenen Editionen findet man <a href="http://www.visual-paradigm.com/product/vpuml/editioncomparison.jsp">hier</a>.</p>
<p>Um ein paar Gedanken (UML-technisch) zu ordnen oder auch einfach nur zum Ausprobieren ist Visual Paradigm schon in der Community-Version gut zu gebrauchen. Wer täglich mit <a herf="http://www.eclipse.org/">Eclipse</a> arbeitet wird den Einstieg als noch einfacher (intuitiver) empfinden.</p>
<p>Leider finden sich die richtig geilen Features, die auch einen eher <a href="http://de.wikipedia.org/wiki/Agile_Methoden">agilen Entwicklungsansatz</a> unterstützen würden, erst ab der Professional Edition. Diese ist mit knapp $840 dann doch etwas teuer für den privaten Gebrauch. Ab dieser Version gibt es dann das &#8220;Java Round-trip&#8221; Feature. Damit lässt sich sowohl Java-Code aus dem Model generieren, als auch das Model aus dem Java-Code. Somit würde sich zumindest der aktuelle Stand dokumentieren lassen. Manchmal ist ja dann der Blick auf ein UML-Diagramm schon hilfreich, um die Klassenstruktur besser zu verstehen. Wenn im neuen Jahr ein wenig mehr Zeit am Stück ist, werde ich dieses Features mit Hilfe einer Evaluierungs-Lizenz nochmal näher unter die Lupe nehmen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.service-geist.de/2008/12/21/uml-diagramme-erstellen-mit-visual-paradigm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java SWT API Documentation offline verfügbar machen</title>
		<link>http://www.service-geist.de/2008/12/20/java-swt-api-documentation-offline-verfugbar-machen/</link>
		<comments>http://www.service-geist.de/2008/12/20/java-swt-api-documentation-offline-verfugbar-machen/#comments</comments>
		<pubDate>Sat, 20 Dec 2008 18:05:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://www.service-geist.de/?p=279</guid>
		<description><![CDATA[Von Java war bisher in diesem Blog noch nichts zu lesen, aber irgendwann ist immer das erste Mal :). Der Weihnachtsurlaub ist da und damit auch mal wieder Zeit kleinere private Projekte weiter voran zu treiben. Eines dieser Projekte ist &#8211; neben diesem Blog &#8211; ein Strategiespiel. Dieses entwickle ich in Java und für das [...]]]></description>
			<content:encoded><![CDATA[<p>Von Java war bisher in diesem Blog noch nichts zu lesen, aber irgendwann ist immer das erste Mal :). Der Weihnachtsurlaub ist da und damit auch mal wieder Zeit kleinere private Projekte weiter voran zu treiben. Eines dieser Projekte ist &#8211; neben diesem Blog &#8211; ein Strategiespiel. Dieses entwickle ich in Java und für das GUI habe ich mich &#8211; nach einigen Recherchen &#8211; für das <a href="http://www.eclipse.org/swt/">Standard Widget Toolkit (SWT)</a> von <a href="http://www.eclipse.org/">Eclipse</a> entschieden. Nicht ganz so portabel wie Swing/AWT, aber dafür haben die Applikationen wirklich das native <em>Look &#038; Feel</em> des jeweiligen Betriebssystems. Mit Mac OS, Windows und Linux als unterstützte Plattformen habe ich auch nicht wirklich ein Problem mit der Portabilität.</p>
<p>Mein Problem ist eher, dass ich im Urlaub nicht immer Online sein kann und deswegen eine Offline-Version der entsprechenden SWT API-Documentation gesucht habe. Vielleicht habe ich falsch gesucht, aber ich bin nicht fündig geworden (google war hier mal nicht mein Freund ;)). Und auch die Version, die Eclipse bereit stellt beinhaltet keine Sourcen und daher auch kein <a href="http://java.sun.com/j2se/javadoc/index.jsp">JavaDoc</a>.</p>
<p>Die Suche nach den passenden SWT-Sourcen auf der Eclipse Homepage gestaltet sich dabei etwas schwieriger, aber am Ende bin ich dann doch <a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.4.1-200809111700/index.php#PlatformRuntime">fündig geworden</a> (passenden Download-Link am Ende der Seite auswählen). Dieses Package beinhaltet die kompletten Sourcen in einem File <em>src.zip</em>. Von hier an habe ich einen recht klassischen Weg gewählt, um an die Offline-Version der API-Doku zu kommen. Nach dem Auspacken des <em>src.zip</em> Files findet man unter <em>org/eclipse/swt</em> alle Quelldateien.  </p>
<p>Nach ein wenig Kramen im Gedächtnis und Ausprobieren war das passende <em>javadoc</em>-Kommando zusammengebaut. Vorher noch ein <em>javadoc</em>-Verzeichnis anlegen und es kann los gehen. Das folgende Kommando läuft so unter Unix (in diesem Fall Mac OS), sollte aber mit leichten Anpassungen auch problemlos unter Windows laufen. Die Pfade müssen natürlich in jedem Fall angepasst werden.</p>
<blockquote><p>javadoc -d /Users/thomasjaspers/Java/Lib/swt-3.4.1-carbon-macosx/javadoc -sourcepath /Users/thomasjaspers/Java/Lib/swt-3.4.1-carbon-macosx/src/ org.eclipse.swt.accessibility org.eclipse.swt.awt org.eclipse.swt.browser org.eclipse.swt.custom org.eclipse.swt.dnd org.eclipse.swt.events org.eclipse.swt.graphics org.eclipse.swt.internal org.eclipse.swt.layout org.eclipse.swt.opengl org.eclipse.swt.printing org.eclipse.swt.program org.eclipse.swt.widgets org.eclipse.swt</p></blockquote>
<p>Danach ist die API-Documentation im <em>javadoc</em>-Verzeichnis verfügbar und kann mit einem Klick auf <em>index.html</em> lokal gestartet werden. Das Ganze ist zumindest ein Weg an die passenden Dokumentation zu kommen. Für Tips wenn es noch einfachere Möglichkeiten gibt (z.B. direkt in Eclipse) bin ich auf jeden Fall dankbar. Aber für den Urlaub reicht erstmal die LowTech Lösung :). </p>
]]></content:encoded>
			<wfw:commentRss>http://www.service-geist.de/2008/12/20/java-swt-api-documentation-offline-verfugbar-machen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
