<?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>javathreads.de &#187; Eclipse</title>
	<atom:link href="http://javathreads.de/tag/eclipse/feed/" rel="self" type="application/rss+xml" />
	<link>http://javathreads.de</link>
	<description>Blog rund um Java und Web Entwicklung</description>
	<lastBuildDate>Fri, 20 Aug 2010 08:10:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>JAXenter Umfrage – Welche Java IDE benutzt du?</title>
		<link>http://javathreads.de/2010/01/jaxenter-umfrage-welche-java-ide-benutzt-du/</link>
		<comments>http://javathreads.de/2010/01/jaxenter-umfrage-welche-java-ide-benutzt-du/#comments</comments>
		<pubDate>Wed, 27 Jan 2010 05:00:08 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[NetBeans]]></category>
		<category><![CDATA[Umfrage]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=2269</guid>
		<description><![CDATA[Eine ganz interessante QuickVote Umfrage von JAXenter mit dem Titel 2 &#8220;Welche ist Ihre bevorzugte Java IDE?&#8220;. Bei dem Ergebnis ist vor allem erstaunlich bzw. unerwartet, dass NetBeans doch so nah an Eclipse liegt.



In einem Kommentar bei dem Hinweis von Adam Bien auf dieses Quickvote verweist jemand auf die Entwicklung bei Google. Schaut man sich [...]]]></description>
			<content:encoded><![CDATA[<p>Eine ganz interessante QuickVote Umfrage von JAXenter mit dem Titel 2 &#8220;<a href="http://it-republik.de/jaxenter/quickvote/results/1/poll/72">Welche ist Ihre bevorzugte Java IDE?</a>&#8220;. Bei dem Ergebnis ist vor allem erstaunlich bzw. unerwartet, dass <a href="http://netbeans.org/">NetBeans</a> doch so nah an <a href="http://www.eclipse.org/">Eclipse</a> liegt.</p>
<div class="singleImgDiv">
<a href="http://it-republik.de/jaxenter/quickvote/results/1/poll/72"><img src="http://javathreads.de/data/uploads/2010/01/JavaMagazinQuickvoteIDE2.jpg" alt="JAXenter Quickvote- Welche ist Ihre bevorzugte Java IDE?" title="JAXenter Quickvote- Welche ist Ihre bevorzugte Java IDE?" width="525" height="238" class="alignnone size-full wp-image-2272" /></a>
</div>
<p>In einem Kommentar bei dem Hinweis von <a href="http://www.adam-bien.com/roller/abien/entry/netbeans_is_very_poplular_in">Adam Bien</a> auf dieses Quickvote verweist jemand auf die Entwicklung bei Google. Schaut man sich also diese <a href="http://www.google.com/insights/search/#cat=5&#038;q=eclipse%2Cnetbeans&#038;geo=DE&#038;cmpt=q">Entwicklung bei Google</a> innerhalb Deutschlands an so erh&#228;lt man noch einen deutlicheren Vorsprung von Eclipse, der allerdings &#252;ber die letzten Jahre deutlich weniger geworden ist:</p>
<div class="singleImgDiv">
<a href="http://www.google.com/insights/search/#cat=5&#038;q=eclipse%2Cnetbeans&#038;geo=DE&#038;cmpt=q"><img src="http://javathreads.de/data/uploads/2010/01/GoogleInsightsForSearchEclipseNetbeans.jpg" alt="Google Insights for Search - Eclipse NetBeans" title="Google Insights for Search - Eclipse NetBeans" width="600" height="371" class="alignnone size-full wp-image-2275" /></a>
</div>
<p>Die Charts auf Google Insights for Search kann man auch einbetten, was ich doch direkt mal ausprobieren musste:</p>
<div style="text-align:center">
<script type="text/javascript" src="http://www.gmodules.com/ig/ifr?url=http%3A%2F%2Fwww.google.com%2Fig%2Fmodules%2Fgoogle_insightsforsearch_interestovertime_searchterms.xml&amp;up__property=empty&amp;up__search_terms=eclipse%7Cnetbeans&amp;up__location=DE&amp;up__category=5&amp;up__time_range=empty&amp;up__compare_to_category=false&amp;synd=ig&amp;w=600&amp;h=350&amp;lang=de&amp;title=Google+Insights+for+Search&amp;border=%23ffffff%7C3px%2C1px+solid+%23999999&amp;output=js"></script>
</div>
<p>Insgesamt kann man an der Umfrage und dem Chart gut erkennen, dass Eclipse nicht mehr ganz die alleinige Herrschaft hat bzw. sie langsam verliert. Ich hatte vor Jahren mal NetBeans ausprobiert, war damals aber nicht so begeistert und bin deswegen auf Eclipse umgestiegen. Auch in meinen bisherigen Projekten wurde eigentlich ausschlie&#223;lich Eclipse verwendet. Vielleicht sollte man sich aber dennoch mal wieder NetBeans anschauen. Aktuell habe ich davon gelesen, dass die JSF 2 Unterst&#252;tzung darin schon sehr gut sein soll. Ich werde wohl dennoch erst einmal weiterhin ein Unterst&#252;tzer von Eclipse sein =).</p>
<p>(via <a href="http://www.adam-bien.com/roller/abien/entry/netbeans_is_very_poplular_in">Adam Bien</a>)</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2010/01/jaxenter-umfrage-welche-java-ide-benutzt-du/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Java Trendbarometer Sommer 2009</title>
		<link>http://javathreads.de/2009/07/java-trendbarometer-sommer-2009/</link>
		<comments>http://javathreads.de/2009/07/java-trendbarometer-sommer-2009/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 20:00:29 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[Trendbarometer]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=1910</guid>
		<description><![CDATA[Das Problem ist, dass zu oft in Projekten herumgewurschtelt wird,
Doku Mangelware und ein Modell oftmals gar nicht oder nur aus der
Anfangsphase vorhanden ist.
Und das wird dann vom Projektleiter stolz als &#8220;agile Entwicklung&#8221;
verkauft.
Der Java Trendbarometer, bzw die Kommentare bei der Erhebung, nennt diese Entwicklung &#8220;Chaos-driven&#8221; und &#8220;pseudeagli&#8221; und hat damit wohl nicht ganz unrecht. Der Java [...]]]></description>
			<content:encoded><![CDATA[<blockquote><p>Das Problem ist, dass zu oft in Projekten herumgewurschtelt wird,<br />
Doku Mangelware und ein Modell oftmals gar nicht oder nur aus der<br />
Anfangsphase vorhanden ist.</p>
<p>Und das wird dann vom Projektleiter stolz als &#8220;agile Entwicklung&#8221;<br />
verkauft.</p></blockquote>
<p>Der <a href="http://www.expeso.de/java-trendbarometer.html">Java Trendbarometer</a>, bzw die Kommentare bei der Erhebung, nennt diese Entwicklung &#8220;Chaos-driven&#8221; und &#8220;pseudeagli&#8221; und hat damit wohl nicht ganz unrecht. Der Java Trendbarometer wird von der Firma <a href="http://www.expeso.de/java-trendbarometer.html">expeso</a> erhoben und zwei mal j&#228;hrlich ver&#246;ffentlicht und im Juli ist der aktuellste nun ver&#246;ffentlicht worden.</p>
<p>Zur&#252;ck zum agilen Vorgehen. Es wurde nach der typischen vorgehensweise im Entwicklungsprozess gefragt und wie selbstverst&#228;ndlich hat &#8220;agil&#8221; gewonnen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/JavaTrendVorgehenEntwicklunsprozess.png" alt="Java Trendbaromenter - Vorgehen Entwicklunsprozess" title="Java Trendbaromenter - Vorgehen Entwicklunsprozess" width="500" height="252" class="alignnone size-full wp-image-1914" />
</div>
<p>Das Thema der Vorgehensweisen ist auch das am h&#228;ufigsten und wohl konroversesten diskutierte Thema.</p>
<p>Nun aber ein paar interessante Grafiken rund um Java. Die Frage nach der H&#228;ufigkeit der verwendeten Java Versionen zeigt, dass JDK 1.4 doch so langsam immer weniger wird.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/JavaTrendJavaSprache.png" alt="Java Trendbarometer - H&#228;ufigkeit Java Sprache" title="Java Trendbarometer - H&#228;ufigkeit Java Sprache" width="500" height="283" class="alignnone size-full wp-image-1915" />
</div>
<p>In der JavaEE Welt bestimmen allerdings immer noch die Altlasten bzw. die in den letzten Jahren mit J2EE erstellten Enterprise Anwendungen den verwendeten Standard. Hier ist die Migration oder Neuentwicklung deutlich teurer als das Beibehalten der funktionierenden Anwendung.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/JavaTrendJavaEE.png" alt="Java Trendbaromenter - JavaEE" title="Java Trendbaromenter - JavaEE" width="500" height="257" class="alignnone size-full wp-image-1916" />
</div>
<p>Pers&#246;nlich glaube ich allerdings, dass in den n&#228;chsten Jahren die Kurve f&#252;r JEE, gerade mit der JEE 6 Spezifikation, deutlich nach oben gehen wird.</p>
<p>Die Frage nach der Entwicklungsumgebung finde ich auch sehr interessant. So ist Eclipse deutlicher Favorit unter den IDEs. Ich h&#228;tte allerdings gedacht, dass Netbeans einen Schritt nach vorne macht aber es hat in punkte &#8220;h&#228;ufig&#8221; zur letzten Erhebung sogar abgenommen.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/JavaTrendEntwicklungsumgebung.png" alt="Java Trendbarometer - Entwicklungsumgebung" title="Java Trendbarometer - Entwicklungsumgebung" width="500" height="276" class="alignnone size-full wp-image-1918" />
</div>
<p>Jetzt kommt der Chart f&#252;r die Frameworks f&#252;r Web-Anwendungen. Hier hat Spring immer noch die Nase vorn und das Resultiert wohl aus der allgemeinen JEE Entwicklung. Interessant ist auch, dass die Menge der Eigenentwicklungen deutlich vertreten ist. Das Ajax hier als Framework mit aufgef&#252;hrt scheint mir ein wenig Fragw&#252;rdig allerdings ist sch&#246;n zu erkennen, dass ohne Ajax wohl keine Web-Anwendung mehr entwickelt wird.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/JavaTrendFrameworkWebentwicklung.png" alt="Java Trendbarometer - Frameworks Webentwicklung" title="Java Trendbarometer - Frameworks Webentwicklung" width="500" height="467" class="alignnone size-full wp-image-1919" />
</div>
<p>Im der Frage nach der Entwicklung von Rich Internet Applications (RIA) ist Ajax allerdings wieder richtig angesiedelt und im Gegensatz zur letzten Erhebung Ende letzten Jahres hat Ajax und Webstart an H&#228;ufigkeit zugenommen.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/JavaTrendRIA.png" alt="Java Trendbarometer - Rich Internet Applications" title="Java Trendbarometer - Rich Internet Applications" width="500" height="281" class="alignnone size-full wp-image-1920" />
</div>
<p>Diese sechs Charts sind nur ein kleiner Auszug aus dem Trendbarometer und zeigen die f&#252;r diesen Blog wichtigsten Themen. Die hier aufgelisteten Themen k&#246;nnen auch direkt mit dem <a href="http://javathreads.de/2009/01/trends-in-java-projekten/">Artikel &#252;ber den letzten Trenbarometer</a> verglichen werden.<br />
Weitere Themen unter den &#220;berschriften &#8220;Aktuelle Themen (SOA)&#8221;, &#8220;Open Source&#8221;, &#8220;Software-Entwicklungsprozess&#8221; und &#8220;Inovation und Weiterbildung&#8221; werden auch in dem Trendbarometer besprochen und auch sehr interessant. Der <a href="http://www.expeso.de/java-trendbarometer.html">Trendbarometer</a> kann kostenlos bei der Firma expeso <a href="http://www.expeso.de/newsletter.html">kostenlos angefordert</a> werden.</p>
<p>Das einleitende Zitat stammt &#252;brigens aus dem <a href="http://www.heise.de/developer/news/foren/S-Java-Entwicklung-zwischen-chaos-driven-und-pseudo-agil/forum-163108/list/">Heise Forum</a> zum entsprechenden <a href="http://www.heise.de/newsticker/Java-Entwicklung-zwischen-chaos-driven-und-pseudo-agil--/meldung/142735">Artikel</a> &#252;ber den Java Trendbarometer . Die Diskussionen in dem Form gehen von interessant bis am&#252;sant und es lohnt sich daher einen Blick reinzuwerfen.</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/07/java-trendbarometer-sommer-2009/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Subversion unter Eclipse Galileo konfigurieren</title>
		<link>http://javathreads.de/2009/07/subversion-unter-eclipse-galileo-konfigurieren/</link>
		<comments>http://javathreads.de/2009/07/subversion-unter-eclipse-galileo-konfigurieren/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 16:38:40 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse Galielo]]></category>
		<category><![CDATA[Galileo]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Subversive]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=1857</guid>
		<description><![CDATA[Nachdem es schon mit Eclipse Ganymede den Aufwand gab SVN (Subversion) zum laufen zu bringen h&#228;tte man drauf hoffen k&#246;nnen, dass diesmal bei Eclipse Galileo eine direkte SVN Unterst&#252;tzung schon mit dabei ist. Aber leider muss man auch hier ein wenig nachhelfen.
In dem Eclipse JEE Package muss man wie auch unter Ganymede erst das Subversive [...]]]></description>
			<content:encoded><![CDATA[<p>Nachdem es schon mit Eclipse Ganymede den Aufwand gab SVN (Subversion) zum laufen zu bringen h&#228;tte man drauf hoffen k&#246;nnen, dass diesmal bei Eclipse Galileo eine direkte SVN Unterst&#252;tzung schon mit dabei ist. Aber leider muss man auch hier ein wenig nachhelfen.</p>
<p>In dem <a href="http://eclipse.org/downloads/packages/eclipse-ide-java-ee-developers/galileor">Eclipse JEE Package</a> muss man wie auch unter <a href="http://javathreads.de/2008/07/subversion-unter-eclipse-ganymede-konfigurieren/">Ganymede</a> erst das <strong>Subversive Plugin</strong> und anschlie&#223;end einen <strong>Subversive Connector</strong> installieren. Man muss also zwei verschiedene Update Sites f&#252;r die Installation ansprechen.</p>
<h4>Subversive Plugin Installation</h4>
<p>Das Subersive Plugin selbst steht unter der Eclipse Lizenz und ist somit direkt &#252;ber die Eclipse Galielo Update Site <a href="http://download.eclipse.org/releases/galileo">http://download.eclipse.org/releases/galileo</a> zu finden. Diese Update Site muss nicht neu hinzugef&#252;gt werden sondern ist schon im &#8220;Install new Software&#8221; Dialog (Hauptmen&#252;->Help->Install new Software&#8230;) unter &#8220;Work with&#8221; bereits zu finden:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/eclipse35svnconnectorupdatesiteselection.png" alt="Eclipse Galileo - SVN Subversive Plugin Update Site" title="Eclipse Galileo - SVN Subversive Plugin Update Site" width="610" height="254" class="alignnone size-full wp-image-1858" />
</div>
<p>Wenn die Update Site ausgew&#228;hlt wurde muss unter dem Punkt &#8220;Collaboration&#8221; der &#8220;Subversive SVN Team Provider (Incubation)&#8221; selektiert werden. Das ist das von Eclipse bereitgestelte Subversive Plugin:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/eclipse35svnplugins.png" alt="Eclipse Galileo - SVN Subversive Plugin" title="Eclipse Galileo - SVN Subversive Plugin" width="610" height="333" class="alignnone size-full wp-image-1877" />
</div>
<p>Anschlie&#223;end die Installation mit dem Button &#8220;Next&#8221; starten und den Dialog Angaben folgen.</p>
<p>Da noch eine weitere Installation der Subversive Connectors folgt muss Eclipse nicht dringend wie empfohlen neu gestartet werden.</p>
<h4>Subversive Connector Installation</h4>
<p>Nachdem das Subversive Plugin als Basis installiert wurde muss als Subversive Connector eine externe Bibliothek installiert werden. Dazu bietet Polarion wie auch schon zu Eclipse Ganymede verschiedene Connectoren an. Die ben&#246;tigte Update Site URL ist <a href="http://community.polarion.com/projects/subversive/download/eclipse/2.0/galileo-site/">http://community.polarion.com/projects/subversive/download/eclipse/2.0/galileo-site/</a>. Diese muss im &#8220;Install new Software&#8221; Dialog (Hauptmen&#252;->Help->Install new Software&#8230;) noch hinzugef&#252;gt werden.</p>
<p>Dazu die URL einfach in das &#8220;Work with&#8221; Eingabefeld kopieren und Enter dr&#252;cken. Als Connectoren kann man entweder einen reinen Windows Connector (JavaHL) oder reinen Java Connector (SVNKit) verwenden. Welchen man verwenden m&#246;chte kann man selbst entscheiden. Es ist kein Problem alle angebotenen zu installieren da man diesen sp&#228;ter noch konfigurieren kann:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/eclipse35svnconnectorauswahl.png" alt="Eclipse Galileo SVN Connector Auswahl" title="Eclipse Galileo SVN Connector Auswahl" width="610" height="403" class="alignnone size-full wp-image-1865" />
</div>
<p>Anschlie&#223;end die Installation mit dem Button &#8220;Next&#8221; starten und den Dialog Angaben folgen. Eclipse nach der Installtion wie aufgefordert neu starten.</p>
<h4>Subversive Konfiguration</h4>
<p>Einmal installiert kann man im &#8220;Eclipse Installation Details&#8221; Dialog (Hauptmen&#252;->Help->About Eclipse->Installation Details) die installierte Subversive Software aufgelistet sehen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/eclipse35subversiveinstalltion.png" alt="Eclipse Galileo Subversive Software" title="Eclipse Galileo Subversive Software" width="610" height="211" class="alignnone size-full wp-image-1867" />
</div>
<p>Welcher Subversive Connector verwendet werden soll kann in den Eclipse Preferences (Hauptmen&#252;->Window->Preferences) unter Team->SVN im Reiter SVN Connector konfiguriert werden:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/07/eclipse35subversiveconnectorkonfiguration.png" alt="Eclipse Galileo Subversive Connector Preferences Konfiguration" title="Eclipse Galileo Subversive Connector Preferences Konfiguration" width="610" height="225" class="alignnone size-full wp-image-1868" />
</div>
<p>Einmal alles installiert und konfiguriert kann man in der SVN Perspektive nun einen SVN Repository einrichten und seine Projekte wieder mit dem SVN Repository synchronisieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/07/subversion-unter-eclipse-galileo-konfigurieren/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Eclipse Galileo ver&#246;ffentlicht</title>
		<link>http://javathreads.de/2009/06/eclipse-galileo-veroeffentlicht/</link>
		<comments>http://javathreads.de/2009/06/eclipse-galileo-veroeffentlicht/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 07:00:43 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse Galileo]]></category>
		<category><![CDATA[JBoss Tools]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=1777</guid>
		<description><![CDATA[Es ist knapp ein Jahr her, dass Eclipse Ganymede (3.4) ver&#246;ffentlicht wurde und viele Erneuerungen gegen&#252;ber seinem Vorg&#228;nger mitgebracht hat &#8211; ich berichtete dar&#252;ber. In vielen Firmen wird erst so langsam auf Eclipse Ganymede umgestiegen und nun erscheint auch schon der Nachfolger: Eclipse Galileo.



Eclipse Galileo entspricht der Version 3.5 und bringt seinerseits auch wieder viele [...]]]></description>
			<content:encoded><![CDATA[<p>Es ist knapp ein Jahr her, dass Eclipse Ganymede (3.4) ver&#246;ffentlicht wurde und viele Erneuerungen gegen&#252;ber seinem Vorg&#228;nger mitgebracht hat &#8211; <a href="http://javathreads.de/2008/07/eclipse-ganymede-als-jee-entwicklungsumgebung/">ich berichtete dar&#252;ber</a>. In vielen Firmen wird erst so langsam auf Eclipse Ganymede umgestiegen und nun erscheint auch schon der Nachfolger: <a href="http://eclipse.org/downloads/">Eclipse Galileo</a>.</p>
<div class="singleImgDiv">
<a href="http://eclipse.org/downloads/"><img src="http://javathreads.de/data/uploads/2009/06/eclipsegalileo.png" alt="Eclipse Galileo" title="Eclipse Galileo" width="620" height="91" class="alignnone size-full wp-image-1778" /></a>
</div>
<p>Eclipse Galileo entspricht der Version 3.5 und bringt seinerseits auch wieder viele neue Dinge mit. Neben den bisher schon bekannten Projekte wie z.B. WebTools, Data Tools oder C/C++ Tools bringt Galileo f&#252;nf neue Projekte mit an den Start. Pers&#246;nlich finde ich das <a href="http://eclipse.org/mat/">Memory Analyzer Projekt</a> (MAT) am interessantesten. Wer einen Einblick in MAT bekommen m&#246;chte sollte sich mal das dazugeh&#246;rige <a href="http://dev.eclipse.org/blogs/memoryanalyzer/">Blog</a> und auch das <a href="http://live.eclipse.org/node/520">Webinar</a> aus dem letzten Jahr ansehen.</p>
<p>Nebem dem MAT sind auch noch die <a href="http://eclipse.org/pdt/">PHP Developer Tools</a>, eine <a href="http://eclipse.org/mylyn/">Mylyn</a> WikiText Unterst&#252;tzung, eine Unterst&#252;tzung um <a href="http://eclipse.org/webtools/sse/">XSL Tooling</a> um XSL zu bearbeiten und zu debuggen und Verbesserungen f&#252;r die <a href="http://eclipse.org/birt/phoenix/">Business Intelligence Reporting Tools</a> (BIRT) mit Galileo ver&#246;ffentlicht worden (siehe auch <a href="http://www.eclipse.org/org/press-release/20090624_galileo.php">Release Notes</a>).</p>
<div class="subHeadline">Eclipse 3.5 &#8211; New and Noteworthy</div>
<p>Das sch&#246;ne an Ver&#246;ffentlichungen von Eclipse und deren Plugins sind die &#8220;<a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540/eclipse-news-all.html">New and Noteworthy</a>&#8221; Seiten auf denen die interessantesten Erneuerungen mit einem Screenshot erl&#228;utert werden. F&#252;r Eclipse Galileo ist die Seite entsprechend der vielen Erneuerungen auch wirklich lang. Im folgenden ein paar Erneuerungen die ich auf Anhieb ganz interessant fand:</p>
<ul>
<li><b>Platform &#8211; Compare Editor enhancements</b><br/>Wirklich brauchbare Erneuerungen wie Go to line oder Open Resource und Type sowie die M&#246;glichkeit den Encoding Type auf jeder Seite des Editors neu zu setzen.
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/gotoline.png" alt="Eclipse Ganymede - Compare Editor - Go to line" title="Eclipse Ganymede - Compare Editor - Go to line" width="466" height="345" class="alignnone size-full wp-image-1780" />
</div>
</li>
<li><b>Platform &#8211; Open Resource dialog allows choice of editor</b><br/>Man kann nun den Editor f&#252;r die zu &#246;ffnende Datei direkt im Open Resource Dialog ausw&#228;hlen, falls gew&#252;nscht:
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/open-resource-dialog.png" alt="Eclipse Galileo - Open Resource Dialog - Editor ausw&#228;hlen" title="Eclipse Galileo - Open Resource Dialog - Editor ausw&#228;hlen" width="369" height="406" class="alignnone size-full wp-image-1782" />
</div>
</li>
<li><b>Install/Update Changes</b><br/>Wie auch bei der letzten Version wurde einiges an dem Install und Update Management gearbeitet und verbessert. Um nur eine Sache herauszugreifen im folgenden der Screenshot des vereinfachten Hinzuf&#252;gen neuer Update Sites:
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/p2install.png" alt="Eclipse Galileo - Install and Update Dialog - Installing software from a new site" title="Eclipse Galileo - Install and Update Dialog - Installing software from a new site" width="452" height="573" class="alignnone size-full wp-image-1783" />
</div>
</li>
<li><b>Java Editor &#8211; Constructor completion</b><br/>Der Content Assistent bietet nun die verf&#252;gbaren Konstruktoren der Klasse zur Auswahl an:
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/constructor-completion.png" alt="Eclipse Galileo - Java Editor - Constructor completion" title="Eclipse Galileo - Java Editor - Constructor completion" width="466" height="201" class="alignnone size-full wp-image-1785" />
</div>
</li>
<li><b>Java Editor &#8211; Open Implementation hyperlink</b><br/>Ein Feature auf das wohl s&#228;mtliche Entwickler lange gewartet haben. Von einem Interface direkt in die Implementierung via Hyperlink springen sofern nur eine Implementierung vorhanden ist. Sind mehre da werden diese in der type hierarchy  aufgelistet und man kann dann direkt w&#228;hlen. Den Hyperlink erh&#228;lt man indem man die Taste STRG gedr&#252;ckt h&#228;lt und mit der Maus &#252;ber die Methode f&#228;hrt. Der Dialog sieht dann wie folgt aus:
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/open-implementation.png" alt="Eclipse Galileo - Java Editor - Open Implementation" title="Eclipse Galileo - Java Editor - Open Implementation" width="466" height="102" class="alignnone size-full wp-image-1786" />
</div>
</li>
<li><b>Java Editor &#8211; Quick Fix to start Rename refactoring</b><br/>M&#246;chte man eine Methode mit Quick Fix (Strg-1) umbennen besteht nun die M&#246;glichkeit auch ein Refactoring &#252;ber das Projekt zu starten:
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/rename-in-workspace.png" alt="Java Editor - Quick Fix to start Rename refactoring" title="Java Editor - Quick Fix to start Rename refactoring" width="466" height="76" class="alignnone size-full wp-image-1792" />
</div>
</li>
<li><b>Java Editor &#8211; Formatter option to preserve user line breaks</b><br/>Eine der bisher sehr nervigen Details am Formatter war, dass ich meine selbstdefinierten Zeilenumbr&#252;che nicht behalten durfte. Das soll jetzt vorbei sein:
<div class="singleImgDiv" style="text-align:left;">
<img src="http://javathreads.de/data/uploads/2009/06/formatter-join-lines-before.png" alt="Java Editor - Formatter option to preserve user line breaks - Vorher" title="Java Editor - Formatter option to preserve user line breaks - Vorher" width="115" height="97" class="alignnone size-full wp-image-1787" style="border:none;" />
</div>
<p>Und nach dem formatieren:</p>
<div class="singleImgDiv" style="text-align:left;">
<img src="http://javathreads.de/data/uploads/2009/06/formatter-join-lines-after.png" alt="Java Editor - Formatter option to preserve user line breaks - nacher" title="Java Editor - Formatter option to preserve user line breaks - nacher" width="154" height="98" class="alignnone size-full wp-image-1788" style="border:none;"/>
</div>
</li>
<li><b>Java Refactoring and Source Actions &#8211; Generate toString()</b><br/>Ein ziemlich cooles Feature ist die Unterst&#252;tzung f&#252;r die toString() Methode. Man erh&#228;lt diesen Dialog aus dem Context Men&#252; unter &#8220;Source->Generate toString()&#8230;&#8221; und dieser sieht wie folgt aus:
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/generate-tostring-dialog.png" alt="Eclipse Galileo - Java Refactoring and Source Actions - Generate toString()" title="Eclipse Galileo - Java Refactoring and Source Actions - Generate toString()" width="428" height="574" class="alignnone size-full wp-image-1793" />
</div>
</li>
<li><b>Java Refactoring and Source Actions &#8211; Comparing identical values</b><br/>Wenn zwei gleiche Variablen verglichen werden wird das nun als Warning angegeben:
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/comparing-identical-values-example.png" alt="Eclipse Galileo - Java Refactoring and Source Actions - Comparing identical values" title="Eclipse Galileo - Java Refactoring and Source Actions - Comparing identical values" width="466" height="113" class="alignnone size-full wp-image-1790" />
</div>
</li>
<li><b>Java Refactoring and Source Actions &#8211; Missing hashCode() method</b><br/>Der Compiler kann nun fehlende hashCode() Methoden finden auch wenn equals() schon vorhanden ist. Dieses Feature ist per Default ausgeschalten &#8211; einschalten kann man es unter  &#8220;Preferences > Java > Compiler > Errors/Warnings in the Potential programming problems&#8221;.
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/compiler-hashcode-diagnosis.png" alt="Java Refactoring and Source Actions - Missing hashCode() method" title="Java Refactoring and Source Actions - Missing hashCode() method" width="440" height="196" class="alignnone size-full wp-image-1796" />
</div>
</li>
</ul>
<p>Es gibt noch einige mehr Erweiterungen die man sich auf der &#8220;<a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540/eclipse-news-all.html">New and Noteworthy</a>&#8221; Seite ansehen kann.</p>
<div class="subHeadline">Eclipse Galileo Packages</div>
<p>Neben den neuen Projekten werden nat&#252;rlich auch wieder fertige <a href="http://www.eclipse.org/downloads/">Projekt Packages </a>angeboten &#8211; darunter auch wieder das JEE Package mit den Web Tools und Data Tools:</p>
<div class="singleImgDiv">
<a href="http://www.eclipse.org/downloads/"><img src="http://javathreads.de/data/uploads/2009/06/eclipsegalileoprojektpackages.jpg" alt="Eclipse Galileo Packages" title="Eclipse Galileo Packages" width="620" height="321" class="alignnone size-full wp-image-1802" /></a>
</div>
<p>Startet man das Eclipse Galileo JEE Package sieht man auch an der Welcome Page eine deutlichen &#196;nderung:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/eclipsegalileowelcomepage.jpg" alt="Eclipse Galileo JEE Package Welcome Page" title="Eclipse Galileo JEE Package Welcome Page" width="620" height="419" class="alignnone size-full wp-image-1820" />
</div>
<p>Auf dieser Welcome Page sind unter anderem die sieben wichtigsten im JEE Package durch die Web Tools Platform mitgebrachten Unterst&#252;tzungen aufgelistet: Web Services, Web, XML Tools, Server Tools, Java EE, JSF, JPA. Die Web Tools Platform 3.1, welche auch erst im Juni ver&#246;ffentlicht wurde, hat auch einige Erneuerungen mitgebracht die unter &#8220;<a href="http://www.eclipse.org/webtools/releases/3.1.0/newandnoteworthy/">Eclipse Web Tools Platform 3.1 &#8211; New and Noteworthy</a>&#8221; im Detail angesehen werden k&#246;nnen.</p>
<div class="subHeadline">JBoss Tools unter Eclipse Galileo</div>
<p>Nat&#252;rlich steht auch wieder das leidige Thema Plugin Update auf der Liste und diesmal haben die JBoss Tools schon ein wenig vorgearbeitet. Schon am Anfang des Monats wurde auf dem offiziellen Blog <a href="http://in.relation.to/Bloggers/JBossTools31MilestoneReleased">verk&#252;ndet</a>, dass man den JBoss Tools 3.1 Milestone 1 f&#252;r Eclipse Galileo installieren und testen kann. Der Update Site Link f&#252;r die Developer Version ist: <a href="http://download.jboss.org/jbosstools/updates/development">http://download.jboss.org/jbosstools/updates/development</a>.</p>
<div class="singleImgDiv">
<a href="http://in.relation.to/Bloggers/JBossTools31MilestoneReleased"><img src="http://javathreads.de/data/uploads/2009/06/jbosstoolsgalileo2.jpg" alt="JBoss Tools 3.1 M1 f&#252;r Eclipse Galileo" title="JBoss Tools 3.1 M1 f&#252;r Eclipse Galileo" width="450" height="101" class="alignnone size-full wp-image-1827" /></a>
</div>
<p>Ich habe die JBoss Tools 3.1 M1 unter Eclipse Galileo installieren und auch ohne erkennbare Probleme verwenden k&#246;nnen. In einem ersten Versuch hat das Umbennenen ohne Probleme funktioniert. Den Rename Dialog erh&#228;lt man am einfachsten aus der Seam Component View heraus. Insgesamt ein wirklich sehr n&#252;tzliches Feature!<br />
In ersten Tests mit einem bestehenden Projekt lies sich insgesamt problemlos arbeiten. Im About Dialog von Eclipse werden die entsprechenden Plugins auch korrekt angezeigt:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/06/jbosstoolseclipsegalileo.png" alt="Eclipse Galileo - JBoss Tools 3.1 M1 installiert" title="Eclipse Galileo - JBoss Tools 3.1 M1 installiert" width="548" height="331" class="alignnone size-full wp-image-1798" />
</div>
<p>Auch zu den JBoss Tools 3.1 M1 gibt es eine &#8220;<a href="http://docs.jboss.org/tools/whatsnew/index.html">News and Noteworthy</a>&#8221; Seite auf der die einzelnen nennenswerten Erneuerungen zu finden sind. Ich m&#246;chte nur kurz eins hervorherben welche ich ziemlich praktisch finde und zwar ist das der &#8220;Rename Seam Component&#8221; Dialog, der verf&#252;gbar ist wenn man in einer Klasse die mit @Name annotiert ist, sich in der components.xml oder in der Seam components view befindet. Verwendet man diesen Dialog wird der Name auch in den xhtml Dateien gefunden und dort refactored:</p>
<div class="singleImgDiv">
<a href="http://in.relation.to/Bloggers/JBossTools31MilestoneReleased"><img src="http://javathreads.de/data/uploads/2009/06/renameseamcomponent.png" alt="JBoss Tools 3.1 M1 - Seam Tools - Rename Seam Component Dialog" title="JBoss Tools 3.1 M1 - Seam Tools - Rename Seam Component Dialog" width="485" height="494" class="alignnone size-full wp-image-1797" /></a>
</div>
<p>Der &#220;bergang von Eclipse 3.4 auf Eclipse 3.5 mit den JBoss Tools scheint also vorerst problemlos zu funktioniern (im Gegensatz zu dem Umstieg von 3.3 auf 3.4).</p>
<p>Somit w&#252;nsche ich viel Spass beim ausprobieren!</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/06/eclipse-galileo-veroeffentlicht/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eclipse QuickFix Tipp: instanceof Class Cast erstellen</title>
		<link>http://javathreads.de/2009/04/exlipse-quickfix-tipp-instanceof-class-cast-erstellen/</link>
		<comments>http://javathreads.de/2009/04/exlipse-quickfix-tipp-instanceof-class-cast-erstellen/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 07:00:53 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[QuickFix]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=1372</guid>
		<description><![CDATA[Hat man ein Objekt und m&#246;chte &#252;berpr&#252;fen von welcher Klasse dieses Objekt eine Instanz ist wird der Operator instanceof verwendet. Ergibt diese Pr&#252;fung true erfolgt in der Regel ein Cast auf diese Klasse. So sieht der Code oft wie folgt aus:

if(unknownObj instanceof&#160;Integer) {
  Integer myCastedIntObj = (Integer)unknownObj;
  // do sth with casted object
}

Um [...]]]></description>
			<content:encoded><![CDATA[<p>Hat man ein Objekt und m&#246;chte &#252;berpr&#252;fen von welcher Klasse dieses Objekt eine Instanz ist wird der Operator <code>instanceof</code> verwendet. Ergibt diese Pr&#252;fung <code>true</code> erfolgt in der Regel ein Cast auf diese Klasse. So sieht der Code oft wie folgt aus:</p>
<div class="codebox">
<pre style="margin:0;padding:0">if(unknownObj <span style="color:#7F0074;"><b>instanceof</b></span>&#160;Integer) {
  Integer myCastedIntObj = (Integer)unknownObj;
  <span style="color:#3F7F5F">// do sth with casted object</span>
}</pre>
</div>
<p>Um diesen &#8220;instance of&#8221; Code mit anschlie&#223;endem Class Cast zu erstellen besteht in Eclipse die M&#246;glichkeit einen Quickfix zu verwenden und so die Tipparbeit deutlich zu vereinfachen. Dazu einfach das Schl&#252;sselwort <code>instanceof</code> anfangen zu schreiben und <code>Strg-Space</code> dr&#252;cken. Es &#246;ffnet sich der QuickFix Panel mit Vorschl&#228;gen wobei instanceof direkt an erster Stelle steht:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/eclipsequickfix_instanceof1.png" alt="Eclipse QuickFix Panel" title="Eclipse QuickFix Panel" width="600" height="163" class="borderGray alignnone size-full wp-image-1439" />
</div>
<p>Selektiert man diesen QuickFix und dr&#252;ckt Enter wird das Code Template im Editor erstellt um die restlichen notwendigen Angaben wie z.B. die Variable die gepr&#252;ft oder die Klasse auf die gecastet werden soll. Was viele nicht wissen ist, dass wenn im Eclipse Editor ein blauer Rahmen um ein Wort steht kann man einfach mit Tab durch das Template navigieren:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/eclipsequickfix_eingabe.png" alt="Eclipse QuickFix instanceof Eingabe" title="Eclipse QuickFix instanceof Eingabe" width="600" height="84" class="borderGray alignnone size-full wp-image-1441" />
</div>
<p>Gibt man die Klasse an auf die gepr&#252;ft werden soll wird sie auch direkt in der Zeile mit dem Cast eingesetzt:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/eclipsequickfix_instanceof3.png" alt="Eclipse QuickFix instanceof - Klassenangabe" title="Eclipse QuickFix instanceof - Klassenangabe" width="600" height="77" class="borderGray alignnone size-full wp-image-1443" />
</div>
<p>Anschlie&#223;end nur noch den Namen der neuen internen Variable anpassen und mit Enter den QuickFix und somit das Bearbeiten des Templates beenden. Der Cursor postiert sich nun direkt in die Zeile unter der Class cast Zeile und es kann somit direkt weitergearbeitet werden.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/eclipsequickfix_instanceof4.png" alt="Eclipse QuickFix instanceof Cursor nach beenden" title="Eclipse QuickFix instanceof Cursor nach beenden" width="600" height="70" class="borderGray alignnone size-full wp-image-1444" />
</div>
<p>Man wird diesen QuickFix wahrscheinlich seltener brauchen aber wenn man ihn kennt und wei&#223; wie sich Eclipse verh&#228;lt kann man einen solchen <code>instanceof</code> Ausdruck binnen Sekunden und ohne gro&#223;e M&#252;he erstellen. Man sollte es also mal ausprobiert haben und wissen, dass es diese Unterst&#252;tzung gibt.</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/04/exlipse-quickfix-tipp-instanceof-class-cast-erstellen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>DB Schema aus JPA Entit&#228;ten mit Hilfe von Eclipse WTP und den Hibernate Tools generieren lassen</title>
		<link>http://javathreads.de/2009/04/db-schema-aus-jpa-entitaeten-mit-hilfe-von-eclipse-wtp-und-den-hibernate-tools-generieren-lassen/</link>
		<comments>http://javathreads.de/2009/04/db-schema-aus-jpa-entitaeten-mit-hilfe-von-eclipse-wtp-und-den-hibernate-tools-generieren-lassen/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 06:00:20 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[DDL]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclpse Ganymede]]></category>
		<category><![CDATA[Hibernate]]></category>
		<category><![CDATA[Hibernate Tools]]></category>
		<category><![CDATA[JBoss Tools]]></category>
		<category><![CDATA[JPA]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=1384</guid>
		<description><![CDATA[Arbeitet man mit JPA (Java Persistence API) und konfiguriert die Entity Beans mit Hilfe von javax.persistence Annotationen stellt sich immer die Frage wie man von den modellierten Entity Beans an das Datenbankschema f&#252;r die entsprechende Zieldatenbeank gelangt.



Entity Bean mit JPA Annotationen


Dazugeh&#246;riges SQL Schema f&#252;r diese Entity Bean











Meistens bringen die verschiedenen JPA Implementierungen eigene Tools mit. [...]]]></description>
			<content:encoded><![CDATA[<p>Arbeitet man mit JPA (Java Persistence API) und konfiguriert die Entity Beans mit Hilfe von <code>javax.persistence</code> Annotationen stellt sich immer die Frage wie man von den modellierten Entity Beans an das Datenbankschema f&#252;r die entsprechende Zieldatenbeank gelangt.</p>
<table style="width:100%">
<tr>
<td style="width:50%">
Entity Bean mit JPA Annotationen
</td>
<td style="width:50%">
Dazugeh&#246;riges SQL Schema f&#252;r diese Entity Bean
</td>
</tr>
<tr>
<td style="width:50%">
<img src="http://javathreads.de/data/uploads/2009/04/jpaddlsnippetentity2.png" alt="Entity Bean mit JPA Annotationen" title="Entity Bean mit JPA Annotationen" width="300" height="332" class="borderGray alignnone size-full wp-image-1414" />
</td>
<td style="width:50%">
<img src="http://javathreads.de/data/uploads/2009/04/jpaddlsnippetsql.png" alt="Entity Schema" title="Entity Schema" width="300" height="332" class="borderGray alignnone size-full wp-image-1412" />
</td>
</tr>
</table>
<p>Meistens bringen die verschiedenen JPA Implementierungen eigene Tools mit. Verwendet man z.B. Hibernate kann man zum Beispiel die von <a href="http://www.hibernate.org/hib_docs/reference/en/html/toolsetguide.html">Konsole Tools</a> in Form eines ANT Tasks verwenden. Arbeitet man mit der Eclipse Ganymede IDE hat man mit dem Web Tools Subprojekt &#8220;Dali&#8221; (<a href="http://www.eclipse.org/webtools/dali/main.php">Dali JPA Tools</a>) die M&#246;glichkeit sich das DB Schema mit Hilfe eines Eclipse Dialogs generieren zu lassen.  Ich habe schon mal bei der Vorstellung der JBoss Tools 3 Alpha Version <a href="http://javathreads.de/2008/08/jboss-tools-300-alpha1-langsam-geht-es-vorwaerts/">darauf hingewiesen</a>, dass das WTP Dali Projekt ab Version 3 unterst&#252;tzt wird.</p>
<div class="subHeadline">Kurze Anleitung</div>
<p>Nachdem ich diesen Artikel in der ausf&#252;hrlichen Version erstellt hatte kam mir dieser mehr doch sehr lang vor obwohl das Konfigurieren an sich relativ schnell geht. Dahier hier die wenigen Schritte in absoluter Kurzform:</p>
<ul>
<li>Projekt Facet &#8220;JPA Persistence&#8221; dem EJB Projekt hinzuf&#252;gen (Projekt Properties)</li>
<li>JPA Plattform und DB Verbindung konfigurieren (Projekt Properties)</li>
<li>Im Cotextmen&#252; auf dem EJB-Projekt &#8220;JPA-Tools->Generate DDL&#8230;&#8221; w&#228;hlen</li>
<li>Im DDL Generation Dialog das Zielverzeichnis, die Ausgabedatei und Hibernate Console- (konfigurierbar &#252;ber die Hibernate Perspektive) oder DB-Konfiguration angeben. Dialog mit &#8220;Finish&#8221; beenden -> DDL Datei wird erstellt.</li>
</ul>
<div class="subHeadline">Ausf&#252;hrliche Anleitung</div>
<p>Im Folgenden wird anhand meines kleinen <a href="http://java-schnipsel.de">Java Schnipsel</a> Projektes gezeigt wie das Datenbankschema, genauer gesagt die DDL (Data Definition Language) Datei, mit Eclipse generiert werden kann. Dieses Projekt verwendet Hibernate und somit werden aus den JBoss Tools Plugins das Hibernate Tools Eclipse Plugin ben&#246;tigt. Nun sind die JBoss Tools 3.0.0 endlich <a href="http://javathreads.de/2009/03/jboss-tools-300-ga-fuer-eclipse-ganymede-verfuegbar/">offiziell Stable erschienen</a> und da ist es an der Zeit dieses Feature mal auszuprobieren.</p>
<p>Im ersten Schritt sollte &#252;berpr&#252;ft werden ob die Hibernate Tools installiert sind. Aus den JBoss Tools Eclipse Plugins wird f&#252;r das Generieren der DDL Datei die Hibernate Tools ben&#246;tigt. F&#252;r eine Installationsanleitung der JBoss Tools siehe <a href="http://javathreads.de/2009/03/jboss-tools-300-ga-fuer-eclipse-ganymede-verfuegbar/">hier</a>.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/jpaddlhibernatetoolsaddon.png" alt="JBoss Tools Eclipse Plugins - Hibernate Tools" title="JBoss Tools Eclipse Plugins - Hibernate Tools" width="600" height="88" class="borderGray alignnone size-full wp-image-1389" />
</div>
<p>Mein Beispielprojekt ist in der f&#252;r Eclipse normalen JEE Projektstruktur erstellt worden (mit dem <a href="http://javathreads.de/2008/09/tutorial-mit-jboss-seam-und-jee5-unter-eclipse-starten/">Seam Web Project Wizzard</a>):</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/jpaddlhibernatetoolsprojektstruktur.png" alt="Eclipse JEE Projektstruktur" title="Eclipse JEE Projektstruktur" width="600" height="131" class="borderGray alignnone size-full wp-image-1388" />
</div>
<p>Hat man eine solche Projektstruktur muss man nun das JPA Project Facet hinzuf&#252;gen. Dazu auf dem EJB Projekt aus dem Context Men&#252; (recht Maustaste) &#8220;Properties&#8221; aufrufen. Im Properties Dialog &#8220;Project Facets&#8221; selektieren und dort das Facet &#8220;Java Persistence&#8221; ausw&#228;hlen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/jpaddlprojectfacets3.png" alt="Project Facet &quot;Java Persistence&quot;" title="Project Facet &quot;Java Persistence&quot;" width="600" height="402" class="borderGray alignnone size-full wp-image-1402" />
</div>
<p>Wenn das Facet &#8220;Java Persistence&#8221; selektiert wurde erscheint unten im gelben Hintergrund der Hinweis, dass weitere Konfigurationsm&#246;glichkeiten bestehen (&#8220;Further configuration available&#8221;). Am einfachsten ist es diese Konfiguration direkt auszuw&#228;hlen. Hat man die Einstellung mit &#8220;Apply&#8221; best&#228;tigt einfach das Facet noch einmal deslektieren, Apply dr&#252;cken und das Facet wieder selektieren.<br />
In dem Dialog &#8220;Modify Facet Project -> JPA Facet&#8221; muss nun die verwendete JPA Platform und die DB Verbindung konfiguriert werden. Ich verwende Hibernate und habe meine MySQL Verbindung konfiguriert. Man kann direkt von diesem Dialog aus eine neue DB Verbindung konfigurieren, sofern man das noch nicht getan hat.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/jpaddlprojectfacetjpa.png" alt="JPA Facet Konfiguration" title="JPA Facet Konfiguration" width="525" height="229" class="borderGray alignnone size-full wp-image-1396" />
</div>
<p>Die zwei weiteren dort m&#246;glichen Einstellungen habe ich bei mir auf &#8220;Use implementation provided by server Runtime&#8221; (Die Server Runtime kann in den Properties unter dem Punkt &#8220;Targeted Runtimes&#8221; konfiguriert werden &#8211; verwendet man keinen Server wie den JBoss kann man die JPA Jars auch direkt angeben) und &#8220;Discover annotated classes automatically&#8221; gesetzt. Anschlie&#223;end den JPA Facet Dialog und anschlie&#223;end den Properties Dialog mit &#8220;Ok&#8221; beenden.</p>
<p>Hat man allerdings den Properties Dialog schon vor den zus&#228;tzlichen JPA Einstellungen mit &#8220;Ok&#8221; beendet muss man noch einmal die Properties f&#252;r das EJB Projekt aufrufen und kann dann aber den Men&#252;punkt &#8220;JPA&#8221; direkt selektieren und somit konfigurieren:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/jpaddlprojectfacetjpadirekt2.png" alt="JPA Facet Konfiguration im Properties Men&#252;" title="JPA Facet Konfiguration im Properties Men&#252;" width="600" height="254" class="borderGray alignnone size-full wp-image-1404" />
</div>
<p>Nachdem die Java Persistence Project Facets dem JEE Projekt hinzugef&#252;gt wurden ist im Context Men&#252;, sofern man dieses auf dem EJB Projekt aufruft, der Eintrag &#8220;JPA Tools&#8221; zu finden. Darin findet sich der Men&#252;punkt &#8220;Generate DDL&#8221;.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/jpaddljpatoolscontextmenu2.png" alt="Context Men&#252; JPA Tools -&gt; Generate DDL" title="Context Men&#252; JPA Tools -&gt; Generate DDL" width="600" height="325" class="borderGray alignnone size-full wp-image-1416" />
</div>
<p>Erh&#228;lt man nach dem Ausw&#228;hlen dieses Men&#252;punktes den Fehler &#8220;DDL Generation is not supported by the Generic Platform&#8221; hat man vergessen seinen JPA Platform (Hibernate, Toplink, ..) zu konfigurieren. Dazu einfach wieder in die EJB Projekt Properties und den Men&#252;punkt &#8220;JPA&#8221; selektieren und konfigurieren. Mehr Informantionen zu dieser Fehlermeldung auch <a href="http://dev.eclipse.org/newslists/news.eclipse.technology.dali/msg00324.html">hier</a>.<br />
Ist alles soweit korrekt konfiguriert &#246;ffnet sich der DDL Generation Dialog. Darin gibt man zuerst das Zielverzeichnis sowie den Namen der DDL Datei an. Die zweite wichtige Konfiguration ist der Hibernate Dialekt der verwendet werden soll. Dazu kann man entweder eine bereits durch die Hibernate Perspektive erstellte <a href="http://javathreads.de/2008/03/unterstuetzung-fuer-jpa-hibernate-tools-in-eclipse/">Hibernate Console Konfiguration</a> verwenden und diese mit der Checkbox &#8220;Use Console Konfiguration&#8221; verwenden oder wie in meinem Fall die bereits konfigurierte Datenbankverbindung. Der Dialekt kann dabei automatisch erkannt werden (<a href="http://javathreads.de/2009/02/zwingend-den-hibernate-dialekt-konfigurieren/">ich berichtete dar&#252;ber</a>) oder direkt angeben:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/jpaddlgenerationdialog.png" alt="DDL Generation Dialog" title="DDL Generation Dialog" width="600" height="466" class="alignnone size-full wp-image-1407" />
</div>
<p>Ist alles korrekt konfiguriert wird durch den Button &#8220;Finish&#8221; das Generieren der DDL in der gew&#252;nschten Zieldatei gestartet. Das kann einen kleinen Moment dauern und anschlie&#223;end ist diese Schemadatei auch unter der gew&#252;nschten Position (bei mir im EJB-Projekt im Ordner ejbModule) zu finden:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/jpaddldatei.png" alt="DDL Datei: schema.ddl" title="DDL Datei: schema.ddl" width="600" height="276" class="borderGray alignnone size-full wp-image-1408" />
</div>
<p>Gerade f&#252;r die erste Entwicklungszeit und dem Erstellen der Entit&#228;ten ist diese einfach DDL Generierung sehr n&#252;tzlich. Sieht man doch direkt was f&#252;r Datenbanktypen aus den Java Attributen erstellt werden.</p>
<p>Alternativ kann man mit den Hibernate Tools &#252;ber die Hibernate Perspektive das Schema auch direkt in der DB erstellen. Vor gut einem Jahr habe ich dazu einen <a href="http://javathreads.de/2008/03/unterstuetzung-fuer-jpa-hibernate-tools-in-eclipse/">kleinen Artikel erstellt</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/04/db-schema-aus-jpa-entitaeten-mit-hilfe-von-eclipse-wtp-und-den-hibernate-tools-generieren-lassen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse QuickFix Tipp: Getter &amp; Setter generieren</title>
		<link>http://javathreads.de/2009/04/eclipse-quickfix-tipp-getter-setter-generieren/</link>
		<comments>http://javathreads.de/2009/04/eclipse-quickfix-tipp-getter-setter-generieren/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 19:00:00 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[QuickFix]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=1347</guid>
		<description><![CDATA[Eines der m&#228;chtigsten Features von Eclipse ist das sogenannte &#8220;QuickFix&#8220;. Immer wenn ein Error oder Warning im Editor angezeigt wird besteht die M&#246;glichkeit sich von Eclipse helfen zu lassen. Um an die QuickFix Vorschl&#228;ge von Eclipse zu gelangen kann man entweder einfach nur mit der Maus &#252;ber die entsprechende unterringelte Stelle fahren oder links auf [...]]]></description>
			<content:encoded><![CDATA[<p>Eines der m&#228;chtigsten Features von Eclipse ist das sogenannte &#8220;<strong>QuickFix</strong>&#8220;. Immer wenn ein Error oder Warning im Editor angezeigt wird besteht die M&#246;glichkeit sich von Eclipse helfen zu lassen. Um an die QuickFix Vorschl&#228;ge von Eclipse zu gelangen kann man entweder einfach nur mit der Maus &#252;ber die entsprechende unterringelte Stelle fahren oder links auf das Error oder Warning Icon klicken.</p>
<div class="subHeadline">QuickFix Dialog</div>
<p>Um das QuickFix Verhalten zu verdeutlichen habe ich den Namen der Klasse ge&#228;ndert, so dass dieser nicht mehr mit dem Namen der Datei (QuickFixTests.java) &#252;bereinstimmt. In Java ist das nicht erlaubt und somit bietet mir Eclipse mit dem QuickFix Dialog L&#246;sungen an. Hier der Screenshot des Maus Hovers:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/quickfixclassnamehover.png" alt="Quickfix Vorschl&#228;ge mit Maus-Hover" title="QuickFix Vorschl&#228;ge mit Maus-Hover" width="600" height="129" class="borderGray alignnone size-full wp-image-1348" />
</div>
<p>Hier der Screenshot des Klicks auf das Warning oder Error Icons links. Ist der Cursor in dieser Zeile kann man auch einfach <b>Strg-1</b> dr&#252;cken um diesen Dialog zu erhalten:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/quickfixclassnameclick.png" alt="QuickFix Vorschl&#228;ge mit Maus-Klick" title="QuickFix Vorschl&#228;ge mit Maus-Klick" width="600" height="95" class="borderGray alignnone size-full wp-image-1349" />
</div>
<div class="subHeadline">QuickFix Tipp: Getter und Setter generieren lassen</div>
<p>Einer der Features &#252;berhaupt ist das Generieren von Getter und Setter zu einem Attribut. So spart man sich deutlich Tipparbeit in dem man direkt nach dem Schreiben des Attributes Strg-1 dr&#252;ckt, &#8220;Generate getter and setter for &#8216;attributeName&#8217;&#8221; selektiert und Enter dr&#252;ckt:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/quickfixgettersettergeneration.png" alt="Eclipse QuickFix - Generate getter and setter" title="Eclipse QuickFix - Generate getter and setter" width="600" height="166" class="borderGray alignnone size-full wp-image-1353" />
</div>
<p>Anschlie&#223;end erscheint der Dialog f&#252;r die Getter und Setter Konfiguration, welcher auch &#252;ber das Context Men&#252; &#8220;Source->Generate Getters and Setters..&#8221; ge&#246;ffnet werden kann:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/eclipsegenerategetterandsetterdialog2.png" alt="Eclipse Generate Getter and Setter Dialog" title="Eclipse Generate Getter and Setter Dialog" width="422" height="285" class="alignnone size-full wp-image-1358" />
</div>
<p>Vor allem die Einstellung an welche Position der Setter und Getter erstellt werden soll ist interessant: sollen die neuen Methoden an die erste oder letzte Stelle in der Klasse oder direkt hinter einer schon bestehenden Methode erstellt werden? Sind die Einstellungen erst einmal gesetzt worden werden sie f&#252;r die n&#228;chste Generieren &#252;bernommen. So kann man anschlie&#223;end die weiteren Getter und Setter ohne gro&#223;es Konfigurieren schnell generieren.</p>
<p>Ist das Generieren durchgelaufen sind die Getter und Setter nat&#252;rlich vorhanden:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/quickfixgettersettergenerated.png" alt="Eclipse QuickFix - Generierte Getter und Setter" title="Eclipse QuickFix - Generierte Getter und Setter" width="600" height="197" class="borderGray alignnone size-full wp-image-1359" />
</div>
<div class="subHeadline">Toggle Mark Occurrences</div>
<p>Interessant an dieser Stelle zu erw&#228;hnen ist noch die farbliche Hervorhebung des Attributes. Hat man ein in der Eclipse Men&#252;leiste den Button &#8220;Toggle Mark Occurrences&#8221; (Alt-Strg-O) eingeschaltet wie im folgenden Screenshot rot hervorgehoben zu sehen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/04/eclipsetogglemarkoccurrences.png" alt="&quot;Toggle Mark Occurrences&quot; (Alt-Strg-O) " title="&quot;Toggle Mark Occurrences&quot; (Alt-Strg-O) " width="600" height="137" class="borderGray alignnone size-full wp-image-1360" />
</div>
<p>Dann die Verwendung des gerade mit dem Cursor selektierten Attributes farblich hervorgehoben. Dabei wird farblich zwischen lesenden und schreibenden Aktionen unterschieden. Dieses Verhalten ist im Screenshot davor mit den generierten Getter und Setter sch&#246;n zu sehen.</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/04/eclipse-quickfix-tipp-getter-setter-generieren/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JBoss Tools 3.0.0 GA f&#252;r Eclipse Ganymede verf&#252;gbar</title>
		<link>http://javathreads.de/2009/03/jboss-tools-300-ga-fuer-eclipse-ganymede-verfuegbar/</link>
		<comments>http://javathreads.de/2009/03/jboss-tools-300-ga-fuer-eclipse-ganymede-verfuegbar/#comments</comments>
		<pubDate>Tue, 17 Mar 2009 22:00:33 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse Ganymede]]></category>
		<category><![CDATA[JBoss Tools]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=1242</guid>
		<description><![CDATA[Nach l&#228;ngerem warten und den verschiedensten Versuchen die JBoss Tools unter Ganymede, als Nightly Build oder 3.0.0 Alpha Version f&#252;r Eclipse Ganymede zu installieren ist nun endlich die offizielle JBoss Tools 3.0.0 GA Version ver&#246;ffentlicht worden. Schon seit letzter Woche konnte man die JBoss Tools 3.0.0 GA &#252;ber den Eclipse Update Manager installieren &#8211; nur [...]]]></description>
			<content:encoded><![CDATA[<p>Nach l&#228;ngerem warten und den verschiedensten Versuchen die JBoss Tools unter <a href="http://javathreads.de/2008/07/jboss-tools-unter-eclipse-ganymede-verwenden/">Ganymede</a>, als <a href="http://javathreads.de/2008/10/jboss-tools-nightly-build-update-seite/">Nightly Build</a> oder <a href="http://javathreads.de/2008/08/jboss-tools-300-alpha1-langsam-geht-es-vorwaerts/">3.0.0 Alpha Version</a> f&#252;r Eclipse Ganymede zu installieren ist nun endlich die offizielle <a href="http://in.relation.to/Bloggers/JBossTools3IsHere">JBoss Tools 3.0.0 GA</a> Version ver&#246;ffentlicht worden. Schon seit letzter Woche konnte man die JBoss Tools 3.0.0 GA &#252;ber den Eclipse Update Manager installieren &#8211; nur die offizielle Nachricht fehlte. Die JBoss Tools kommen auch gleich mit einem neuen Logo daher, welches aus <a href="https://jira.jboss.org/jira/browse/JBIDE-2739">vielen verschiedenen Vorschl&#228;gen</a> ausgew&#228;hlt wurde.</p>
<div class="singleImgDiv">
<a href="http://in.relation.to/Bloggers/JBossTools3IsHere"><img src="http://javathreads.de/data/uploads/2009/03/jbosstools3logo.png" alt="JBoss Tools 3 Logo" title="JBoss Tools 3 Logo" width="600" height="145" class="borderGray alignnone size-full wp-image-1244" /></a>
</div>
<div class="subHeadline">JBoss Tools unter Eclipse Ganymede (3.4) installieren</div>
<p>M&#246;chte man mit den JBoss Tools 3 arbeiten ben&#246;tigt man Eclipse Ganymede. Es wird nicht empfohlen von Eclipse 3.3 auf Eclipse 3.4 via Update Manager zu wechseln. Viel praktischer ist es eine frische Eclipse Installation vorzunehmen und somit auch potentielle Fehlerquellen aus dem Weg zu gehen. Am einfachsten ist es wenn man die <a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-jee-ganymede-SR2-win32.zip">Eclipse 3.4 IDE for Java EE Developers</a> herunterl&#228;dt. Auch hier gibt es mittlerweile das Release 2 Bundle, welches ca 170 MB gro&#223; ist.</p>
<div class="singleImgDiv">
<a href="http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/ganymede/SR2/eclipse-jee-ganymede-SR2-win32.zip"><img src="http://javathreads.de/data/uploads/2009/03/eclipseideforjavaeedevelopersjpg.png" alt="Eclipse 3.4 IDE for Java EE Developers SR2" title="Eclipse 3.4 IDE for Java EE Developers SR2" width="600" height="74" class="borderGray alignnone size-full wp-image-1245" /></a>
</div>
<p>Nachdem Eclipse heruntergeladen, entpackt und gestartet wurde einfach die JBoss Tools Update URL (<a href="http://download.jboss.org/jbosstools/updates/stable">http://download.jboss.org/jbosstools/updates/stable</a>) im Eclipse Update Manager hinzuf&#252;gen. Den Update Manager findet man im Hauptmen&#252; unter Help->Software Updates. Dort den Reiter &#8220;Available Software&#8221; selektieren und rechts den Button &#8220;Add Site&#8230;&#8221; dr&#252;cken:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/03/eclipse34jbosstoolsupdatesite.png" alt="JBoss Tools Update Site" title="JBoss Tools Update Site" width="600" height="346" class="borderGray alignnone size-full wp-image-1248" />
</div>
<p>Ist die Update Site hinzugef&#252;gt kann man nach dem Aufklappen alle angebotenen JBoss Tools sehen. F&#252;r meine Seam Entwicklung mit Hibernate, RichFaces auf dem JBoss AS installiere ich immer die folgende Tools (hervorgehobene Selektion):</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/03/eclipse34jbosstoolsselektion.png" alt="JBoss Tools Selektion" title="JBoss Tools Selektion" width="600" height="487" class="borderGray alignnone size-full wp-image-1249" />
</div>
<p>Um die Installation fertigzustellen den Button &#8220;Install&#8221; dr&#252;cken und den Anweisungen folgen.</p>
<p>Erstellt man &#252;ber die JBoss Tools ein Seam Web Projekt sieht man schon die erste Erneuerung denn es wird jetzt auch Seam 2.1 direkt unterst&#252;tzt, wie man auch bei der Konfiguration der Seam Runtime sehen kann:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/03/jbosstools3seam21support.png" alt="Seam 2.1 Support" title="Seam 2.1 Support" width="525" height="191" class="borderGray alignnone size-full wp-image-1250" />
</div>
<div class="subHeadline">N&#252;tzliche neue Features f&#252;r die Entwicklung von XHTML Seiten mit Seam</div>
<p>Wer mit der Nightly Build oder 3.0.0 Alpha Version gearbeitet hat wird die neuen wirklich n&#252;tzlichen Features wahrscheinlich schon gesehen und ausprobiert haben. Vor allem bei der Entwicklung von Facelets XHTML Seiten in Verbindung mit Seam Komponenten sind sehr sch&#246;ne Features in die neue Version reingekommen. Ein paar davon, die ich pers&#246;nlich absolut praktisch finde, sind im folgenden kurz aufgelistet.</p>
<p><strong>Autocompletion:</strong><br />
Es werden alle mit <code>@Name</code> annotierten Seam Komponenten direkt im XHTML Editor gefunden und durch Autocomplete angeboten:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/03/jbosstools3codecompletion.png" alt="JBoss Toosl - XHTML Code Completion" title="JBoss Toosl - XHTML Code Completion" width="374" height="204" class="borderGray alignnone size-full wp-image-1252" />
</div>
<p><strong>EL Warning:</strong><br />
Hat man eine Fehler in der Expression Language gemacht wie der typische &#8220;rechte-Klammer-fehlt&#8221; Fehler findet man diesen nun nicht mehr erst nach dem Deployment sondern direkt im Editor durch ein Warning:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/03/jbosstools3elwarning.png" alt="JBoss Tools - EL Warning" title="JBoss Tools - EL Warning" width="397" height="338" class="borderGray alignnone size-full wp-image-1253" />
</div>
<p><strong>Seam Komponenten und Links direkt aus dem Editor heraus &#246;ffnen:</strong><br />
Man kann nun direkt aus dem XHMTL Editor heraus durch halten von STRG und der Maus direkt in die Java Klassen der Seam Komponenten oder direkt in andere .xhtml Seiten springen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/03/jbosstools3openon.png" alt="JBoss Tools - OpenOn" title="JBoss Tools - OpenOn" width="389" height="61" class="borderGray alignnone size-full wp-image-1255" />
</div>
<p><strong>Visueller Editor f&#252;r die pages.xml:</strong><br />
Es gibt nun eine wirklich gute Unterst&#252;tzung f&#252;r die pages.xml. Darunter auch eine visuelle Ansicht f&#252;r die Navigationsregeln, die in der pages.xml definiert werden:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/03/jbosstools3pages1.png" alt="JBoss Tools - pages.xml visueller Editor" title="JBoss Tools - pages.xml visueller Editor" width="600" height="191" class="borderGray alignnone size-full wp-image-1254" />
</div>
<p>Mehr Bilder zu den neuen Features findet man auch wie gewohnt im Kapitel &#8220;<a href="http://docs.jboss.org/tools/whatsnew/">News and Noteworthy</a>&#8220;.<br />
Alles in allem ist es wirklich sch&#246;n endlich eine funktionierende und offizielle Version der JBoss Tools f&#252;r Eclipse Ganymede zu haben. Nun steht der Entwicklung von vielen sch&#246;nen neuen Seam Projekten nichts mehr im Wege =).</p>
<p>Die offizielle Meldung f&#252;r die JBoss Tools 3.0 findet man auch noch mal <a href="http://in.relation.to/Bloggers/JBossTools3IsHere">hier</a> zum nachlesen.</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/03/jboss-tools-300-ga-fuer-eclipse-ganymede-verfuegbar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Einf&#252;hrung in Unit Tests mit TestNG unter Eclipse</title>
		<link>http://javathreads.de/2009/02/einfuehrung-in-unit-tests-mit-testng-unter-eclipse/</link>
		<comments>http://javathreads.de/2009/02/einfuehrung-in-unit-tests-mit-testng-unter-eclipse/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 08:00:34 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse Plugins]]></category>
		<category><![CDATA[TestNG]]></category>
		<category><![CDATA[Tutorial]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=169</guid>
		<description><![CDATA[
Unit Tests sind vielen Entwicklern ein Begriff und in der Java Welt verbindet man diesen Begriff fast automatisch mit dem Testframework JUnit. Dabei steht als genereller Gedanke hinter Unit Tests einzelne kleine Teilbereiche (Units, Methoden, Funktionen) atomar und unabh&#228;ngig von einer Umgebung und Abh&#228;ngigkeiten zu testen. Man geht davon aus, dass wenn die einzelnen kleinen [...]]]></description>
			<content:encoded><![CDATA[<div style="float:left; margin: 5px;"><a href="http://www.amazon.de/Next-Generation-Java-Testing-Advanced/dp/0321503104/ref=sr_1_1?ie=UTF8&#038;s=books-intl-de&#038;qid=1234856702&#038;sr=8-1"><img src="http://javathreads.de/data/uploads/2008/07/testngbuchcover.jpg" alt="" title="Buch: Next Generation Java Testing" width="240" height="240" class="alignnone size-full wp-image-170" /></a></div>
<p>Unit Tests sind vielen Entwicklern ein Begriff und in der Java Welt verbindet man diesen Begriff fast automatisch mit dem Testframework <a href="http://junit.sourceforge.net/">JUnit</a>. Dabei steht als genereller Gedanke hinter Unit Tests einzelne kleine Teilbereiche (Units, Methoden, Funktionen) atomar und unabh&#228;ngig von einer Umgebung und Abh&#228;ngigkeiten zu testen. Man geht davon aus, dass wenn die einzelnen kleinen Teile eines Systems in Ihrerer Aufgabe funktionieren und diese korrekt tun das gro&#223;e Ganze auch Bestand hat. Dabei gelten nur die Zust&#228;nde: Erfolg oder Fehler.</p>
<p>In diesem und folgenden Artikeln soll es um den JUnit Konkurrenten <a href="http://testng.org">TestNG</a> gehen. Das Testframework TestNG ist laut seinem Entwickler Cédric Beust aus der JUnit Frustration entstanden und das NG in TestNG bezieht sich auf <strong>N</strong>ext <strong>G</strong>eneration.</p>
<p>Wer diese Frustration nachlesen m&#246;chte kann dies <a href="http://www.beust.com/weblog/archives/000173.html">hier</a> und <a href="http://www.beust.com/weblog/archives/000082.html">hier</a> tun.</p>
<p>Nicht nur wegen dieser Aussage soll TestNG ein wenig n&#228;her begutachtet werden. Wer z.B. mit <a href="http://seamframework.org/">JBoss Seam</a> arbeitet wird sehr schnell merken, dass Seam von Haus aus eine TestNG Unterst&#252;tzung mitbringt. Auch andere Frameworks setzen auf TestNG. Aber auch ohne diese Frameworks bietet TestNG eine sehr gute Alternative zu dem schon genannten JUnit.</p>
<p>Das Ziel dieses ersten TestNG Artikels ist einfache TestNG Unit-Tests zu erstellen und aus Eclipse heraus ausf&#252;hren zu k&#246;nnen. In folgenden Artikeln wird es mehr in die M&#246;glichkeiten von TestNG und in die Konfiguration von Tests und Testsuites gehen.</p>
<div class="subHeadline">TestNG Bibliothek und Eclipse Plugin</div>
<p>Um TestNG zu verwenden muss die aktuelle Version <a href="http://testng.org/doc/download.html">heruntergeladen</a> werden. Zur Zeit ist die aktuellste Version 5.8 und kann <a href="http://testng.org/testng-5.8.zip">hier direkt</a> heruntergeladen werden.</p>
<p>Es besteht auch eine Eclipse Unterst&#252;tzung f&#252;r TestNG, die &#252;ber eine Update Seite installiert werden kann. Dazu unter Eclipse 3.4 (Ganymede) &#252;ber &#8220;Help->Software Updates&#8230;->Available Software Tab->Add Site&#8230;&#8221; klicken, die TestNG Update Site URL <a href="http://beust.com/eclipse">http://beust.com/eclipse</a> angeben und mit &#8220;OK&#8221; best&#228;tigen. Anschlie&#223;end das neu hinzugef&#252;gte Element aufklappen, das Plugin TestNG selektieren und den Button &#8220;Install&#8221; dr&#252;cken.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/07/testng_eclipsepluginupdateseite.png" alt="" title="Test NG - Eclipse Plugin Update Seite" class="borderGray alignnone size-full wp-image-173" />
</div>
<p>Bei der Installation den Anweisungen folgen. Es kam bei mir ab und an vor, dass bei der Best&#228;tigung f&#252;r die zu installierende Software nur ein leeres Fenster auftrat &#8211; da einfach mit &#8220;OK&#8221; weiter klicken.<br />
Nach dem Neustart von Eclipse steht eine TestNG View zur Verf&#252;gung und kann ge&#246;ffnet werden.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/07/testng_eclipseview.png" alt="" title="TestNG - Eclipse View" width="257" height="110" class="borderGray alignnone size-full wp-image-174" />
</div>
<div class="subHeadline">TestNG Bibliothek im Classpath angeben</div>
<p>Um TestNG aus Eclipse heraus verwenden zu k&#246;nnen m&#252;ss die TestNG Bibliothek noch im Classpath referenziert werden. TestNG liefert zwei jars aus: eine f&#252;r Java 1.4 (<span class="code">testng-5.8-jdk14.jar</span>) und eine f&#252;r Java 5 (<span class="code">testng-5.8-jdk15.jar</span>). Beide liegen im heruntergeladenen TestNG.zip im Root Verzeichnis oder alternativ im TestNG Eclipse Plugin Ordner (<span class="code">eclipse\plugins\org.testng.eclipse_5.8.0.2\lib</span>). In meinem Fall kopiere ich mir das <span class="code">testng-5.8-jdk15.jar</span> in meinen im Projekt erstellten <span class="code">lib</span> Ordner und gebe dieses im Projekt Classpath an (Rechte Maustaste auf den Projekt Ordner->Properties->Java Build Path).</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/07/testng_buildpath.png" alt="" title="TestNG - Java Build Path" class="borderGray alignnone size-full wp-image-176" />
</div>
<div class="subHeadline">Java Klasse und TestNG Testklasse erstellen</div>
<p>Als Beispielprojekt bzw. Beispiel Source Code der getestet werden soll habe ich ein Java Projekt mit zwei Source Ordnern erstellt. Ich pers&#246;nlich mag es lieber, wenn die Testklassen in einem getrennten Source Ordner liegen. So besteht bei mir der Source Ordner: <span class="code">src</span> und <span class="code">test</span> sowie ein normaler Ordner f&#252;r die ben&#246;tigten Java Bibliotheken <span class="code">lib</span>. Unterhalb der zwei Source Ordern erstelle ich zweimal das gleiche Package. Anschlie&#223;end in dem Ordner <span class="code">src</span> die Klasse <span class="code">de.javathreads.util.Calc</span> und in den Ordner <span class="code">test</span> die Klasse <span class="code">de.javathreads.util.CalcTest</span>. Nach getaner Arbeit sieht die Projektstruktur wie folgt aus:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/07/testng_javaprojektstruktur.png" alt="" title="TestNG - Java Projektstruktur" class="borderGray alignnone size-full wp-image-175" />
</div>
<p>Nun schauen wir uns den Source Code der zwei Klassen etwas genauer an. Die Klasse <span class="code">de.javathreads.util.Calc</span> beinhaltete die einfachen Methoden <span class="code">add()</span> und <span class="code">divide()</span>:</p>
<div class="codebox">
<pre style="margin:0;padding:0"><span style="color:#7F0074;"><b>package</b></span>&#160;de.javathreads.util;

<span style="color:#7F0074;"><b>public</b></span>&#160;<span style="color:#7F0074;"><b>class</b></span>&#160;Calc {

  <span style="color:#7F0074;"><b>public</b></span>&#160;<span style="color:#7F0074;"><b>int</b></span>&#160;add(<span style="color:#7F0074;"><b>int</b></span>&#160;first, <span style="color:#7F0074;"><b>int</b></span>&#160;second) {
    <span style="color:#7F0074;"><b>return</b></span>&#160;fist + second;
  }

  <span style="color:#7F0074;"><b>public</b></span>&#160;<span style="color:#7F0074;"><b>double</b></span>&#160;divide(<span style="color:#7F0074;"><b>int</b></span>&#160;first, <span style="color:#7F0074;"><b>int</b></span>&#160;second) {
    <span style="color:#7F0074;"><b>if</b></span>&#160;(second == 0) {
      <span style="color:#7F0074;"><b>throw</b></span>&#160;<span style="color:#7F0074;"><b>new</b></span>&#160;ArithmeticException();
    }
    <span style="color:#7F0074;"><b>return</b></span>&#160;first / second;
  }
}</pre>
</div>
<p>Um mit TestNG eine Methode zu definieren die den eigentlichen Unit-Test enth&#228;lt wird diese mit der Annotation <span class="code">org.testng.annotations.Test</span> versehen. Um abzupr&#252;fen ob das Ergebnis dem erwarteten Ergebnis entspricht arbeitet TestNG mit Java Assertions und dem Schl&#252;sselwort <span class="code">assert</span>. Das sieht dann in meiner <span class="code">CalcTest</span> Klasse, welche die Methode <span class="code">Calc.divide()</span> testen soll, wie folgt aus:</p>
<div class="codebox">
<pre style="margin:0;padding:0"><span style="color:#7F0074;"><b>package</b></span>&#160;de.javathreads.util;

<span style="color:#7F0074;"><b>import</b></span>&#160;org.testng.annotations.Test;

<span style="color:#7F0074;"><b>public</b></span>&#160;<span style="color:#7F0074;"><b>class</b></span>&#160;CalcTest {

  <span style="color:#3F5FBF">/**
   * Test f&#252;r simples dividieren.
   */</span>
  <span style="color:#646464">@Test</span>
  <span style="color:#7F0074;"><b>public</b></span>&#160;<span style="color:#7F0074;"><b>void</b></span>&#160;divideSimple() {
    Calc c = <span style="color:#7F0074;"><b>new</b></span>&#160;Calc();
    <span style="color:#7F0074;"><b>double</b></span>&#160;sum = c.divide(4, 2);
    <span style="color:#7F0074;"><b>assert</b></span>&#160;(sum == 2);
  }

  <span style="color:#3F5FBF">/**
   * Test f&#252;r Division durch 0.
   */</span>
  <span style="color:#646464">@Test</span>
  <span style="color:#7F0074;"><b>public</b></span>&#160;<span style="color:#7F0074;"><b>void</b></span>&#160;divideByZero() {
    Calc c = <span style="color:#7F0074;"><b>new</b></span>&#160;Calc();
    <span style="color:#7F0074;"><b>try</b></span>&#160;{
      c.divide(4, 0);
    } <span style="color:#7F0074;"><b>catch</b></span>&#160;(ArithmeticException ex) {
      <span style="color:#7F0074;"><b>assert</b></span>&#160;(true);
      return;
    }
    <span style="color:#7F0074;"><b>assert</b></span>&#160;(false);
  }
}</pre>
</div>
<p>Bei einer Pr&#252;fung mit dem Schl&#252;sselwort <span class="code">assert</span> muss der Ausdruck immer <span class="code">true</span> ergeben. Mehr zu Java Assertions kann auch in dem javathreads Artikel &#8220;<a href="http://javathreads.de/2009/01/reservierte-schluesselwoerter-in-java-assertions/">Reservierte Schl&#252;sselw&#246;rter in Java &#8211; Assertions</a>&#8221; sowie im <a href="http://www.java-blog-buch.de/0609-assertions/">Java Blog Buch</a> gefunden werden.</p>
<div class="subHeadline">Tests ausf&#252;hren</div>
<p>Durch das TestNG Eclipse Plugin ist ein Unit Test sehr einfach durch das Context-Men&#252; direkt aus dem Package Explorer heraus zu starten. Dazu mit der rechten Maustaste direkt auf die Klasse klicken welche die mit <span class="code">@Test</span> annotierten Methoden enth&#228;lt und anschlie&#223;end unterhalb des Men&#252;punkts &#8220;Run As&#8221; den Punkt &#8220;TestNG Test&#8221; anklicken:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/02/testngcontextmenurunas.jpg" alt="TestNG - Context Men&#252; -&gt; Run As -&gt; TestNG Test" title="TestNG - Context Men&#252; -&gt; Run As -&gt; TestNG Test" width="600" height="222" class="borderGray alignnone size-full wp-image-1112" />
</div>
<p>Es ist auch m&#246;glich auf ein Package zu klicken und somit alle darin liegenden Testklassen zu starten.<br />
Nach einem oder mehreren durchlaufenen Unit-Tests wird das Ergebnis in der TestNG View farblich hervorgehoben. Dabei wird farblich gezeigt ob generell alle Test positiv waren (gr&#252;n) oder mindestens einer fehlgeschlagen ist (rot). Im folgenden ein Screenshot f&#252;r den Fall das alle Tests positiv waren:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/02/testngresult.png" alt="TestNG - Ergebnisview positiv" title="TestNG - Ergebnisview positiv" width="600" height="177" class="borderGray alignnone size-full wp-image-1113" />
</div>
<p>Ist mindestens ein Test fehlgeschlagen wird der Balken sch&#246;n rot und man die fehlgeschlagene Methode erkennt man durch das rote Kreuz. Selektiert man diesen Test erh&#228;lt man im rechten Fenster die Exception zu dem Fehler. Bei TestNG sind das immer <span class="code">java.lang.AssertionError</span>, wie man im folgenden Screenshot sehen kann:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/02/testngresultnegative.png" alt="TestNG - Ergebnisview negativ" title="TestNG - Ergebnisview negativ" width="600" height="192" class="borderGray alignnone size-full wp-image-1115" />
</div>
<p>Mit einem Doppelklick auf die Methode gelangt man direkt in den Java Editor an die gew&#252;nschte Stelle der Testklasse. Es w&#228;re nun auch m&#246;glich den Test im Debug Modus zu starten. Dazu anstatt &#8220;Run As&#8221; einfach den Test mit &#8220;Debug As&#8221; starten. Dabei nat&#252;rlich nicht vergessen einen Breakpoint zu setzen ;).</p>
<p>In der Console k&#246;nnen noch die Logausgaben und auch das Gesamtergebnis begutachtet werden. Treten Exceptions in der zu testenden Klasse auf sind diese auch in der Konsole sichtbar. Im folgenden die Konsolenausgabe des Positiven Tests:</p>
<div class="codebox">
[Parser] Running:<br />
  D:\Projekte\Ganymede\02_src\01_trunk\JavaTestNGProject\temp-testng-customsuite.xml</p>
<p>PASSED: divideSimple<br />
PASSED: divideByZero</p>
<p>===============================================<br />
    de.javathreads.util.CalcTest<br />
    Tests run: 2, Failures: 0, Skips: 0<br />
===============================================
</p></div>
<p>Als letzte Information zu dieser kleinen Einf&#252;hrung noch der Hinweis, dass TestNG immer mit XML Konfigurationsdateien arbeitet. Der Vorteil wenn das TestNG Eclipse Plugin verwendet wird liegt darin, dass dieses Plugin die XML Datei generiert. Aktualisiert man im Package View das Projekt (Projekt selektieren und F5 dr&#252;cken) erscheint die Datei <span class="code">temp-testng-customsuite.xml</span>:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2009/02/testngxmlconfigfile.png" alt="TestNG - XML generiert Konfigurationsdatei im Projekt" title="TestNG - XML generiert Konfigurationsdatei im Projekt" width="278" height="282" class="borderGray alignnone size-full wp-image-1116" />
</div>
<p>Schaut man in diese Konfigurationsdatei rein sieht man wie der einfachste Fall eines TestNG Tests vie XML konfiguriert werden kann. Die Testklasse wird direkt angegeben:</p>
<div class="codebox">
<pre>&lt;!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd"&gt;
&lt;suite name="JavaTestNGProject"&gt;
  &lt;test verbose="2" name="de.javathreads.util.CalcTest" annotations="JDK"&gt;
    &lt;classes&gt;
      &lt;class name="de.javathreads.util.CalcTest"/&gt;
    &lt;/classes&gt;
  &lt;/test&gt;
&lt;/suite&gt;</pre>
</div>
<p>Man kann nat&#252;rlich auch eine solche XML Konfigurationsdatei manuell erstellen und via Eclipse Kontextmen&#252; als TestNG Test ausf&#252;hren. Dazu legt man sie einfach mit im Test-Source Verzeichnis ab.</p>
<div class="subHeadline">Fazit und Ausblick</div>
<p>In diesem Artikel wurde gezeigt wie man TestNG in Eclipse einbindet und das Eclipse Plugin verwenden kann. Zudem wurde ein sehr einfacher Test geschrieben und ausgef&#252;hrt. Grunds&#228;tzlich ist man nun also in der Lage Tests zu schreiben und diese auch auszuf&#252;hren, was den ein oder anderen schon deutlich weiter bringen d&#252;rfte ;).<br />
Im n&#228;chsten Artikel &#252;ber TestNG wird mehr auf die M&#246;glichkeiten mit TestNG eingegangen. Welche Annotationen gibt es und wie kann man sie einsetzen bzw. wo liegen die Vorteile.</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2009/02/einfuehrung-in-unit-tests-mit-testng-unter-eclipse/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Einstieg in Eclipse 3.4 &#8211; Scrapbook Pages</title>
		<link>http://javathreads.de/2008/11/einstieg-in-eclipse-34-scrapbook-pages/</link>
		<comments>http://javathreads.de/2008/11/einstieg-in-eclipse-34-scrapbook-pages/#comments</comments>
		<pubDate>Tue, 04 Nov 2008 11:30:30 +0000</pubDate>
		<dc:creator>Markus Kühle</dc:creator>
				<category><![CDATA[Tools]]></category>
		<category><![CDATA[Buch]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Scrapbook Pages]]></category>

		<guid isPermaLink="false">http://javathreads.de/?p=373</guid>
		<description><![CDATA[Wer mit der Eclipse IDE noch nicht vertraut ist und gerade Eclipse zum ersten mal startet f&#252;r den bietet das freie Probekapitel &#8220;Arbeiten mit Eclipse&#8221; aus dem Buch &#8220;Einstieg in Eclipse 3.4&#8221; genau das Richtige: Es macht einem mit der Umgebung bekannt.



Das Kapitel ist &#252;ber 60 Seiten lang und behandelt die Themen &#8220;Perspektiven, Sichten, Editoren&#8221;, [...]]]></description>
			<content:encoded><![CDATA[<p>Wer mit der Eclipse IDE noch nicht vertraut ist und gerade Eclipse zum ersten mal startet f&#252;r den bietet das freie <a href="http://www.galileocomputing.de/download/dateien/1616/galileocomputing_einstieg_in_eclipse.pdf">Probekapitel &#8220;Arbeiten mit Eclipse&#8221;</a> aus dem Buch &#8220;<a href="http://www.galileocomputing.de/katalog/buecher/titel/gp/titelID-1961">Einstieg in Eclipse 3.4</a>&#8221; genau das Richtige: Es macht einem mit der Umgebung bekannt.</p>
<div class="singleImgDiv">
<a href="http://www.galileocomputing.de/download/dateien/1616/galileocomputing_einstieg_in_eclipse.pdf"><img src="http://javathreads.de/data/uploads/2008/11/galileobuch_einstiegineclipse34.jpg" alt="" title="Probekapitel: Einstieg in Eclipse 3.4 - Arbeiten mit Eclipse" class="borderGray alignnone size-full wp-image-749" /></a>
</div>
<p>Das Kapitel ist &#252;ber 60 Seiten lang und behandelt die Themen &#8220;Perspektiven, Sichten, Editoren&#8221;, &#8220;Java Programme eingeben und bearbeiten&#8221;, &#8220;Suchen, Ersetzen und Refactoring&#8221;.</p>
<p>Alles drei sind Themen die man st&#228;ndig w&#228;hrend der Entwicklung ben&#246;tigt. Vor allem zwischen den Perspektiven und Editoren springt man oft hin und her aber auch das Refactoring ist in Eclipse sehr ausgereift.</p>
<h2>Scrapbook Pages</h2>
<p>Ich weise auf dieses Probekapitel vor allem deswegen hin, weil es mir beim Durchbl&#228;ttern tats&#228;chlich auch etwas Neues gebracht hat: die Scrapbook Pages (Seite 94). Bisher kannte ich die M&#246;glichkeit der &#8220;Scrapbook Pages&#8221; in Eclipse nicht.</p>
<p>Der Autor Thomas K&#252;nneth beschreibt die Scrapbook Pages wie folgt:</p>
<blockquote><p>
Mit dessen Hilfe k&#246;nnen Sie Java-Anweisungen eingeben und sofort ausf&#252;hren. Ihnen steht hierbei sogar der Debugger zur Verf&#252;gung. Sie k&#246;nnen beispielsweise problemlos Variablen inspizieren.
</p></blockquote>
<p>Es besteht also die M&#246;glichkeit Java Code &#8220;eben mal schnell&#8221; zu testen, sogar zu debuggen.<br />
Eine solche Scrapbook Page erstellt man durch das Hauptmen&#252;: &#8220;File->New->Other&#8230;->Java->Java Run/Debug->Scrapbook Page&#8221;</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/11/eclipsenewscrapbookpage1.png" alt="" title="Eclipse New Scrapbook Page" width="500" height="203" class="borderGray alignnone size-full wp-image-764" />
</div>
<p>Anschlie&#223;end muss man noch ein Verzeichnis in der die Scrapbook Page Datei abgelegt werden soll selektieren und einen Namen vergeben. Die Endung einer solchen Scrapbook Page Datei ist <span class="code">.jpage</span> und wird automatisch angeh&#228;ngt.</p>
<p>Auf der Scrapbook Page kann man beliebige Java Ausdr&#252;cke platzieren und hat die M&#246;glichkeit diese zu pr&#252;fen (<span class="code"><strong>inspect</strong></span>), anzuzeigen (<span class="code"><strong>display</strong></span>) oder auszuf&#252;hren (<span class="code"><strong>execute</strong></span>). Eine solche Aktion f&#252;hrt man aus indem man den entsprechenden Ausdruck selektiert und aus dem Kontextmen&#252; die Aktion w&#228;hlt:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/11/eclipsescrapbookcontextmenu1.png" alt="" title="Eclipse Scrapbook Kontextmen&#252;" class="borderGray alignnone size-full wp-image-752" />
</div>
<p>W&#228;hlt man die M&#246;glichkeit &#8220;<span class="code"><strong>display</strong></span>&#8221; so wird der Ausdruck ausgewertet und das Ergebnis direkt in das Scrapbook geschrieben. F&#252;r das Random Beispiel sieht es wie folgt aus:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/11/eclipsescrapbookdisplay.png" alt="" title="Scrapbook display Kommando" class="alignnone size-full wp-image-753" />
</div>
<p>M&#246;chte man mehr Details wie in einem Debug Zustand zu einem Objekt erfahren bietet sich das Kommando &#8220;<span class="code"><strong>inspect</strong></span>&#8221; an. Man bekommt alle f&#252;r diese Objekt zum Zeitpunkt der Instanziierung zug&#228;nglichen Attribute zu sehen:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/11/eclipsescrapbookinspect.png" alt="" title="Scrapbook inspect Kommando" class="borderGray alignnone size-full wp-image-754" />
</div>
<p>Das letzte Kommando ist &#8220;<span class="code"><strong>execute</strong></span>&#8220;. Mit diesem ist es m&#246;glich einen Ausdruck oder ganze Bl&#246;cke auszuf&#252;hren und das Ergebnis zu sehen. Damit kann man z.B. Schleifen oder Abfragen schnell testen. Das Ergebnis wird in der Console ausgegeben:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/11/eclipsescrapbookexecute2.png" alt="" title="Eclipse Scrapbook execute Kommando" class="borderGray alignnone size-full wp-image-761" />
</div>
<p>Java Klassen in einer Scrapbook Page m&#252;ssen allerdings voll qualifiziert angegeben werden. So reicht es nicht einfach nur aus &#8220;<span class="code">new Random()</span>&#8221; zu schreiben sondern man muss vollen Packagepfad mit angeben: &#8220;<span class="code">new java.util.Random()</span>&#8220;. Weil aber das Scrapbook Page Editor Auto Completion unterst&#252;tzt sollte das weniger ein Problem sein:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/11/eclipsescrapbookautocomplete.png" alt="" title="Eclipse Scrapbook Auto Completion" class="borderGray alignnone size-full wp-image-756" />
</div>
<p>Hat man eine bestimmte Umgebung in der man immer wieder mit dieser Scrapbook Page arbeitet bietet es sich an die Imports generell zu konfigurieren. Die Imports kann durch das Kontextmen&#252; auf den Editor unter &#8220;Set Imports&#8221; konfigurieren. Es erscheint ein Dialog indem man einzelne Klassen aber auch ganze Packages angeben kann:</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/11/eclipsescrapbookimportmanagement.png" alt="" title="Eclipse Scrapbook Import Management" class="borderGray alignnone size-full wp-image-757" />
</div>
<p>Somit erspart man sich die voll qualifizierten langen Klassennamen.</p>
<div class="singleImgDiv">
<img src="http://javathreads.de/data/uploads/2008/11/eclipsescrapbookdisplayimports1.png" alt="" title="Eclipse Scrapbook Import Management" class="borderGray alignnone size-full wp-image-762" />
</div>
<p>Als kleinen Nachteil k&#246;nnte man das zwingende Erstellen solcher Scrapbook Pages Dateien notieren. Es muss eine solche Datei im Projekt erstellt werden damit man Java Code Schnipsel in dieser Umgebung ausf&#252;hren kann. Der Vorteil der sich aber daraus ergibt ist, dass dadurch auch alle f&#252;r dieses Projekt im Classpath verf&#252;gbaren Bibliotheken verf&#252;gbar sind.</p>
<p>Insgesamt sind Scrapbook Pages wohl ein bisher sehr unbekanntes aber durchaus n&#252;tzliches Feature.</p>
]]></content:encoded>
			<wfw:commentRss>http://javathreads.de/2008/11/einstieg-in-eclipse-34-scrapbook-pages/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
