<?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>jars.de - Java und Technologie &#187; Java</title>
	<atom:link href="http://jars.de/themen/java/feed" rel="self" type="application/rss+xml" />
	<link>http://jars.de</link>
	<description>Blog über Java, JEE, JSF, EJB 3.0, Tools, Ubuntu, Windows, Technologie</description>
	<lastBuildDate>Mon, 24 Oct 2011 09:33:05 +0000</lastBuildDate>
	<language>de</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>W-JAX 2010</title>
		<link>http://jars.de/java/w-jax-2010</link>
		<comments>http://jars.de/java/w-jax-2010#comments</comments>
		<pubDate>Tue, 24 Aug 2010 13:51:02 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JAX]]></category>
		<category><![CDATA[Konferenz]]></category>
		<category><![CDATA[München]]></category>
		<category><![CDATA[W-JAX]]></category>

		<guid isPermaLink="false">http://jars.de/?p=681</guid>
		<description><![CDATA[Die etablierte Konferenz W-JAX rund um Java Entwicklung und viele angrenzende Gebiete findet am 15.11.2010 in München statt. Das Programm ist umfangreich und abwechslungsreich. Wer bei der (kostenpflichtigen) Anmeldung schnell ist, erhält verschiedene Ermäßigungen. Ich plane bei der W-JAX dabei zu sein, wer sich treffen möchte kann gerne Kontakt aufnehmen.]]></description>
			<content:encoded><![CDATA[<p><a href="http://jax.de/wjax2010/"><img src="http://jars.de/wp-content/uploads/W-JAX_Fullsize-Mediapartner.gif" alt="" title="W-JAX 2010" width="468" height="60" class="alignnone size-full wp-image-690" /></a><br />
Die etablierte Konferenz <a href="http://jax.de/wjax2010/">W-JAX</a> rund um Java Entwicklung und viele angrenzende Gebiete findet am 15.11.2010 in München statt.</p>
<p>Das Programm ist <a href="http://jax.de/wjax2010/zeitplaner/">umfangreich und abwechslungsreich.</a> Wer bei der (kostenpflichtigen) <a href="https://www.entwickler.com/ssl/formtool/index.php?id=117&#038;lang=de">Anmeldung </a> schnell ist, erhält verschiedene Ermäßigungen.</p>
<p>Ich plane bei der W-JAX dabei zu sein, wer sich treffen möchte kann gerne <a href="http://jars.de/about">Kontakt</a> aufnehmen.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/w-jax-2010/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JAX 2010</title>
		<link>http://jars.de/java/jax-2010</link>
		<comments>http://jars.de/java/jax-2010#comments</comments>
		<pubDate>Thu, 11 Feb 2010 21:08:43 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://jars.de/?p=621</guid>
		<description><![CDATA[Die diesjährige JAX findet vom 3. bis 7. Mai (Montag-Freitag) in Mainz statt. Das Programm der Java Konferenz ist wieder sehr umfangreich; bei der großen Anzahl an Themen rund um Java kann hat man als Besucher fast schon die Qual der Wahl. Man hat einige parallele Tracks zum Auswählen so dass man seinen persönlichen Schwerpunkt [...]]]></description>
			<content:encoded><![CDATA[<p>Die <a href="http://it-republik.de/jaxenter/jax2010/">diesjährige JAX</a> findet vom 3. bis 7. Mai (Montag-Freitag) in Mainz statt. Das Programm der Java Konferenz ist wieder sehr umfangreich; bei der großen Anzahl an Themen rund um Java kann hat man als Besucher fast schon die Qual der Wahl. Man hat einige parallele Tracks zum Auswählen so dass man seinen persönlichen Schwerpunkt setzen kann. Bei der Zusammenstellung des persönliche Programms hilft der <a href="http://jax.de/zeitplaner">Zeitplaner</a>.</p>
<p>Die Hauptkonferenz mit <a href="http://it-republik.de/konferenzen/jax2010/session/">150 Sessions</a> geht von Dienstag bis Donnerstag. Am Montag und Freitag werden neben weiteren Themenschwerpunkten (Agile, Eclipse Modelling und JSF Extreme) zusätzlich <a href="http://it-republik.de/konferenzen/jax2010/workshops/">Workshops</a> angeboten.</p>
<p>Die <a href="https://www.entwickler.com/ssl/formtool/index.php?id=75&#038;lang=de">Preisgestaltung</a> ist flexibel, je nachdem was man besuchen möchte. Die vergünstigten Frühbucherpreise gibt es noch bis zum 25. Februar sowie 18. März.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/jax-2010/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subversion mit Eclipse 3.5 Galileo und Subversive</title>
		<link>http://jars.de/java/subversion-mit-eclipse-35-galileo-und-subversive</link>
		<comments>http://jars.de/java/subversion-mit-eclipse-35-galileo-und-subversive#comments</comments>
		<pubDate>Thu, 02 Jul 2009 23:05:22 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse 3.5]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[polarion]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Subversive]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://jars.de/?p=526</guid>
		<description><![CDATA[Überraschenderweise muss man auch bei Eclipse 3.5 Galileo die Subversion Unterstützung immer noch manuell nachinstallieren. Die Subversive Basis ist jetzt zwar in der Galileo Update Site integriert, aber für die SVN Konnektoren muss man wie schon bei Eclipse 3.4 eine Updatesite selber ergänzen: http://community.polarion.com/projects/subversive/download/eclipse/2.0/galileo-site/ Das ganze Schritt für Schritt: Menu &#8220;Help -> Install new software&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>Überraschenderweise muss man auch bei <a href="http://jars.de/java/eclipse-35-galileo-ist-fertig">Eclipse 3.5 Galileo</a> die Subversion Unterstützung immer noch manuell nachinstallieren. Die Subversive Basis ist jetzt zwar in der Galileo Update Site integriert, aber für die SVN Konnektoren muss man <a href="http://jars.de/java/eclipse-subversion-plugins-subclipse-vs-subversion">wie schon bei Eclipse 3.4</a> eine Updatesite selber ergänzen:<br />
<strong>http://community.polarion.com/projects/subversive/download/eclipse/2.0/galileo-site/</strong></p>
<p>Das ganze Schritt für Schritt:<br />
<span id="more-526"></span>
<ol>
<li>Menu &#8220;Help -> Install new software&#8221; auswählen</li>
<li>Galileo Update Site auswählen (&#8220;Work with&#8221;)</li>
<li>&#8220;Collaboration -> Subversive SVN Team Provider&#8221; auswählen und installieren</li>
<li>http://community.polarion.com/projects/subversive/download/eclipse/2.0/galileo-site/ als neue Update Site hinzufügen und auswählen (&#8220;Work with&#8221;)</li>
<li>Unter &#8220;Subversive SVN Connectors&#8221; die gewünschten Konnektoren auswählen (mindestens einen) und installieren (siehe Screenshot)</li>
<li>Hat man mehr als einen Konnektor ausgewählt, kann man den bevorzugten im Menu &#8220;Window -> Preferences&#8221; unter &#8220;Team -> SVN -> SVN Connector&#8221; auswählen</li>
</ol>
<p><img src="http://jars.de/wp-content/uploads/subversive-eclipse-35.png" alt="subversive-eclipse-35" title="subversive-eclipse-35" width="650" height="647" class="alignnone size-full wp-image-529" /></p>
<p>Siehe dazu auch <a href="http://www.eclipse.org/subversive/downloads.php">hier</a> und <a href="http://www.polarion.com/products/svn/subversive.php?src=jars.de">hier</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/subversion-mit-eclipse-35-galileo-und-subversive/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Eclipse 3.5 Galileo ist fertig</title>
		<link>http://jars.de/java/eclipse-35-galileo-ist-fertig</link>
		<comments>http://jars.de/java/eclipse-35-galileo-ist-fertig#comments</comments>
		<pubDate>Wed, 24 Jun 2009 14:42:01 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse 3.5]]></category>
		<category><![CDATA[Galileo]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://jars.de/?p=519</guid>
		<description><![CDATA[Eclipse 3.5 steht ab sofort zum Download bereit. Hier ein paar Beispiele der neuen Features von Eclipse Galileo: Memory Analyzer: Zum Profilen des Speicherverbrauchs und dem Finden von Memory-Leaks PHP Development Tools (PDT): Unterstützt in der neuen Version 2.1 jetzt PHP 5.3 mit Namespaces und Closures Mylyn: Unter anderem WikiText Support. (Mylyn New &#038; Noteworthy) [...]]]></description>
			<content:encoded><![CDATA[<p>Eclipse 3.5 steht ab sofort zum <a href="http://www.eclipse.org/downloads/">Download</a> bereit. Hier ein paar Beispiele der neuen Features von Eclipse Galileo:</p>
<ul>
<li><a href="http://eclipse.org/mat/">Memory Analyzer</a>: Zum Profilen des Speicherverbrauchs und dem Finden von Memory-Leaks</li>
<li><a href="http://eclipse.org/pdt/">PHP Development Tools (PDT)</a>: Unterstützt in der neuen Version 2.1 jetzt PHP 5.3 mit Namespaces und Closures</li>
<li><a href="http://eclipse.org/mylyn/">Mylyn</a>: Unter anderem WikiText Support. <a href="http://www.eclipse.org/mylyn/new/">(Mylyn New &#038; Noteworthy)</a></li>
<li><a href="http://eclipse.org/webtools/sse/">Web Tools</a>: Editieren und Debuggen von XSL <a href="http://www.eclipse.org/webtools/releases/3.1.0/newandnoteworthy/">(Web Tools New &#038; Noteworthy)</a></li>
<li><a href="http://eclipse.org/birt/phoenix/">BIRT</a>: Produktivität und Performance des Reporting Tools wurden verbessert</li>
<li>EclipseRT Runtime Technology: Aktualisierung auf OSGI 4 und weitere interne Verbesserungen, wie z.B. eine bessere Stabilität</li>
<li><a href="http://www.eclipse.org/Xtext/">Xtext</a>: Xtext ist ein neue Projekt, dass bei Domain specific languages (DSL) unterstützt und auch einen Editor für die DSL bietet</li>
<li><a href="http://www.eclipse.org/cdo/">Connected Data Objects (CDO)</a>: Ein Framework für verteilte und gemeinsam nutzbare EMF Modelle</li>
</ul>
<p>Mehr Infos gibt&#8217;s in den <a href="http://www.eclipse.org/org/press-release/20090624_galileo.php">Release Notes</a> und auf der <a href="http://download.eclipse.org/eclipse/downloads/drops/R-3.5-200906111540/eclipse-news-all.html">New &#038; Noteworthy Seite</a>.</p>
<p>Ich selbst habe Eclipse 3.5 final bereits am laufen und wenn es die Zeit zulässt, werde ich die nächsten Tagen von meinen ersten Erfahrungen berichten.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/eclipse-35-galileo-ist-fertig/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>wsimport: Web Service Client generieren</title>
		<link>http://jars.de/java/wsimport-web-service-client-generieren</link>
		<comments>http://jars.de/java/wsimport-web-service-client-generieren#comments</comments>
		<pubDate>Mon, 25 May 2009 14:58:07 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Java 6]]></category>
		<category><![CDATA[Web Services]]></category>
		<category><![CDATA[wsimport]]></category>

		<guid isPermaLink="false">http://jars.de/?p=256</guid>
		<description><![CDATA[Seit Java 6 ist das Tool wsimport mit im JDK dabei. Anhand einer bestehenden WSDL generiert es einen Java Client für den Web Service. Die Notwendigkeit eine weitere Library einzubinden entfällt (z.B. Apache Axis). Wie einfach das geht zeigt der folgende typische Aufruf: wsimport -d path/to/bin -keep -s path/to/src -p de.jars.example http://url.to/example.wsdl Häufig verwendete Optionen: [...]]]></description>
			<content:encoded><![CDATA[<p>Seit Java 6 ist das Tool <a href="http://java.sun.com/javase/6/docs/technotes/tools/share/wsimport.html">wsimport</a> mit im JDK dabei. Anhand einer bestehenden WSDL generiert es einen Java Client für den Web Service. Die Notwendigkeit eine weitere Library einzubinden entfällt (z.B. Apache Axis). Wie einfach das geht zeigt der folgende typische Aufruf:</p>
<blockquote><p>wsimport -d path/to/bin -keep -s path/to/src  -p de.jars.example http://url.to/example.wsdl</p></blockquote>
<p>Häufig verwendete Optionen:<br />
<strong>d:</strong> Pfad für die .class Dateien<br />
<strong>keep:</strong> Flag, dass die Source Dateien behalten werden sollen<br />
<strong>s:</strong> Pfad für die Source Dateien<br />
<strong>p:</strong> Das Java Package für die generierten Klassen</p>
<p>Neben den Optionen muss natürlich noch die URL der WSDL angegeben werden. Weitere Optionen finden sich in der <a href="http://java.sun.com/javase/6/docs/technotes/tools/share/wsimport.html">wsimport Beschreibung</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/wsimport-web-service-client-generieren/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Guice 2</title>
		<link>http://jars.de/java/guice-2</link>
		<comments>http://jars.de/java/guice-2#comments</comments>
		<pubDate>Wed, 20 May 2009 11:23:16 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Guice]]></category>
		<category><![CDATA[Guice 2]]></category>
		<category><![CDATA[Injection]]></category>

		<guid isPermaLink="false">http://jars.de/?p=492</guid>
		<description><![CDATA[Google Guice ist jetzt in der zweiten Version verfügbar. Das Dependency-Injection Framework ist wesentlich leichtgewichtiger als Spring und hat viele Anhänger. Google setzt Guice nach eigenen Angaben selbst ein: Beispiele dafür sind AdWords, Google Docs, Gmail und YouTube. Mehr im Google Code Blog.]]></description>
			<content:encoded><![CDATA[<p>Google Guice ist jetzt in der zweiten Version verfügbar. Das Dependency-Injection Framework ist wesentlich leichtgewichtiger als Spring und hat viele Anhänger. Google setzt Guice nach eigenen Angaben selbst ein: Beispiele dafür sind AdWords, Google Docs, Gmail und YouTube. Mehr im <a href="http://google-code-updates.blogspot.com/2009/05/guice-deuce.html">Google Code Blog</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/guice-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Java App Store</title>
		<link>http://jars.de/java/java-app-store</link>
		<comments>http://jars.de/java/java-app-store#comments</comments>
		<pubDate>Tue, 19 May 2009 18:31:54 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Apps]]></category>
		<category><![CDATA[iTunes]]></category>
		<category><![CDATA[Store]]></category>

		<guid isPermaLink="false">http://jars.de/?p=488</guid>
		<description><![CDATA[Java goes iTunes! Es hat zwar ein paar Jahre gebraucht, klingt aber vielversprechend:]]></description>
			<content:encoded><![CDATA[<p>Java goes iTunes! Es hat zwar ein paar Jahre gebraucht, klingt aber vielversprechend:<br />
<object id="flashObj" width="486" height="322" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,47,0"><param name="movie" value="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&#038;publisherID=1460825906" /><param name="bgcolor" value="#FFFFFF" /><param name="flashVars" value="videoId=23673850001&#038;playerID=1640183659&#038;domain=embed&#038;" /><param name="base" value="http://admin.brightcove.com" /><param name="seamlesstabbing" value="false" /><param name="allowFullScreen" value="true" /><param name="swLiveConnect" value="true" /><param name="allowScriptAccess" value="always" /><embed src="http://c.brightcove.com/services/viewer/federated_f9/1640183659?isVid=1&#038;publisherID=1460825906" bgcolor="#FFFFFF" flashVars="videoId=23673850001&#038;playerID=1640183659&#038;domain=embed&#038;" base="http://admin.brightcove.com" name="flashObj" width="486" height="322" seamlesstabbing="false" type="application/x-shockwave-flash" allowFullScreen="true" swLiveConnect="true" allowScriptAccess="always" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/java-app-store/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Oracle und die Sun Cloud</title>
		<link>http://jars.de/java/oracle-und-die-sun-cloud</link>
		<comments>http://jars.de/java/oracle-und-die-sun-cloud#comments</comments>
		<pubDate>Tue, 21 Apr 2009 04:06:46 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Cloud]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[Oracle]]></category>
		<category><![CDATA[Sun]]></category>
		<category><![CDATA[WebLogic]]></category>

		<guid isPermaLink="false">http://jars.de/?p=465</guid>
		<description><![CDATA[Dass Oracle Sun kauft hat mich zugegebenermaßen überrascht. Als IBM Sun kaufen wollte, war ich skeptisch ob da wirklich was draus wird. Und jetzt ist da auf einmal ORACLE und der Deal ist schon über die Bühne! Doch wie passen die Unternehmensmodelle zusammen? Ein Monat zuvor hat Sun eine wichtige Erweiterung des Businessmodells vorgestellt. Lange [...]]]></description>
			<content:encoded><![CDATA[<p>Dass <a href="http://www.oracle.com/sun/index.html">Oracle</a> <a href="http://www.sun.com/third-party/global/oracle/index.jsp">Sun</a> kauft hat mich zugegebenermaßen überrascht. Als IBM Sun kaufen wollte, war ich skeptisch ob da wirklich was draus wird. Und jetzt ist da auf einmal ORACLE und der Deal ist schon über die Bühne! Doch wie passen die Unternehmensmodelle zusammen?</p>
<p>Ein Monat zuvor hat Sun eine wichtige Erweiterung des Businessmodells vorgestellt. Lange Zeit fragte man sich wie Sun mit der Entwicklung freier Software Geld machen will. Jonathan Schwartz gab <a href="http://blogs.sun.com/jonathan/date/20090302">in</a> <a href="http://blogs.sun.com/jonathan/date/20090306">seinem</a> <a href="http://blogs.sun.com/jonathan/date/20090311">Blog</a> <a href="http://blogs.sun.com/jonathan/date/20090318">die Antwort</a>: <strong>Sun Cloud</strong>. And by the way, the network is the computer. Hat Sun ja <a href="http://en.wikipedia.org/wiki/John_Gage">schon immer</a> gesagt. Alles machte auf einmal Sinn: Hardware, Java, Glassfish, MySQL, VirtualBox, OpenOffice und vielleicht sogar Solaris. Das Portfolio für ein überzeugendes Cloud Angebot. Freie Software für die möglichst weite Verbreitung und die Cloud um damit auch Geld zu machen. Eine win-win Situation: freie Software für alle und eine Cloud für diejenigen, die gerne bereit sind Geld dafür zu zahlen um diese Software in einer gemanagten Infrastruktur einzusetzen.</p>
<p>Dann kam der Deal mit Oracle. Zunächst muten die Unternehmen grundverschieden an: <span id="more-465"></span>Während Sun inzwischen gnadenlos auf freie Software setzt, verkauft Oracle weiterhin hochpreisige Software. Zudem überlappt sich das technologische Portfolio stark: Oracle vs. MySQL, WebLogic vs. Glassfish, JDeveloper vs. Netbeans und JRockit vs. Sun&#8217;s Java VM. Würde Oracle den Cloud Gedanken weiterführen, wäre das vielleicht alles nicht so wichtig, denn in der Cloud könnte Oracle Alternativen für verschiedene Zielgruppen anbieten. Für etablierte Unternehmen mit entsprechendem IT Budget könnten eine Business App Cloud (Siebel&#038;Co) und eine Oracle Fusion Middleware Cloud jeweils mit einer Oracle Datenbank angeboten werden. Und kleinere Unternehmen und Startups, welche mehr auf die Kosten schauen, könnten sich für die schlanke Glassfish Cloud mit MySQL entscheiden. Beides macht Sinn um möglichst viele Kundenbedürfnisse bedienen zu können und auch Einstiegsangebote anzubieten, die mit ihren Kunden mitwachsen können.</p>
<p>Meine Wetterprognose lautet also eindeutig bewölkt und somit sollte es keinen dramatischen Sonnenuntergang geben: <a href="http://www.sun.com/solutions/cloudcomputing/index.jsp">Behind Every Cloud You&#8217;ll See the Sun</a>. </p>
<p>PS.: Auch aus Sicht des ewigen Zweikampfes zwischen SAP und Oracle ist der Deal spannend, da SAP in den letzten Jahren Java als zweite technologische Plattform im SAP Stack aufgebaut hat.<br />
PPS.: Hoffentlich übernimmt Oracle Glassfish 3 als neuen Application Server. Der WebLogic 10 mit Spring-inside, JEE Bugs und einer unreifen JPA Implementierung hat mich damals (noch zu BEA Zeiten) jedenfalls nicht überzeugt.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/oracle-und-die-sun-cloud/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>C# überholt Java, Objective C ist der neue Hype</title>
		<link>http://jars.de/java/c-ueberholt-java-objective-c-ist-der-neue-hype</link>
		<comments>http://jars.de/java/c-ueberholt-java-objective-c-ist-der-neue-hype#comments</comments>
		<pubDate>Fri, 27 Feb 2009 09:48:59 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C/C++]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Objective C]]></category>
		<category><![CDATA[Programmiersprachen]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://jars.de/?p=412</guid>
		<description><![CDATA[Ein Blick auf die Absatzzahlen von O&#8217;Reilly Büchern zu Programmiersprachen finde ich recht interessant: Im vergangenen Jahr 2008 hat der Absatz von Büchern zu C# das erste Mal die Nase vorn und überholt damit Bücher zu Java, die in den letzten Jahren vorne lagen. Bei Ruby scheint der Hype abzuflachen, dafür gibt es zwei klare [...]]]></description>
			<content:encoded><![CDATA[<p>Ein Blick auf die <a href="http://radar.oreilly.com/2009/02/state-of-the-computer-book-mar-22.html">Absatzzahlen von O&#8217;Reilly Büchern zu Programmiersprachen</a> finde ich recht interessant: Im vergangenen Jahr 2008 hat der Absatz von Büchern zu C# das erste Mal die Nase vorn und überholt damit Bücher zu Java, die in den letzten Jahren vorne lagen. Bei Ruby scheint der Hype abzuflachen, dafür gibt es zwei klare Gewinner: Objective C und ActionScript. Vergleicht man die Verkäufe zum Quartal des Vorjahr zeigt sich folgende Entwicklung:</p>
<table>
<tr>
<th>Platz</th>
<th>&nbsp;</th>
<th>Sprache</th>
<th>&nbsp;</th>
<th>Veränderung</th>
</tr>
<tr>
<td>1</td>
<td/>
<td>C#</td>
<td/>
<td>+ 1%</td>
</tr>
<tr>
<td>2</td>
<td/>
<td>Java</td>
<td/>
<td>- 12%</td>
</tr>
<tr>
<td>3</td>
<td/>
<td>PHP</td>
<td/>
<td>+ 3%</td>
</tr>
<tr>
<td>4</td>
<td/>
<td>JavaScript</td>
<td/>
<td>- 24%</td>
</tr>
<tr>
<td>5</td>
<td/>
<td>C/C++</td>
<td/>
<td>- 22%</td>
</tr>
<tr>
<td>6</td>
<td/>
<td><strong>Objective C</strong></td>
<td/>
<td><strong>+ 965%</strong></td>
</tr>
<tr>
<td>7</td>
<td/>
<td>ActionScript</td>
<td/>
<td>+ 33%</td>
</tr>
<tr>
<td>11</td>
<td/>
<td>SQL</td>
<td/>
<td>- 29%</td>
</tr>
</table>
<p>Ein Quercheck auf <a href="http://www.amazon.com/s/qid=1235726866/ref=sr_nr_n_15?ie=UTF8&#038;rs=5&#038;bbn=3839&#038;rnid=5&#038;rh=n%3A5%2Cn%3A3839">Amazon.com zu den Bestsellern bei Programmiersprachen</a> ergab Ende Februar 2009 folgende Treffer: <span id="more-412"></span></p>
<table>
<tr>
<th>Platz</th>
<th>&nbsp;</th>
<th>Sprache/Thema</th>
</tr>
<tr>
<td>1</td>
<td/>
<td>iPhone Entwicklung</td>
</tr>
<tr>
<td>4</td>
<td/>
<td>Objective C</td>
</tr>
<tr>
<td>8</td>
<td/>
<td>Objective C</td>
</tr>
<tr>
<td>19</td>
<td/>
<td>Java</td>
</tr>
<tr>
<td>35</td>
<td/>
<td>C#</td>
</tr>
</table>
<p>Hier bestätigt sich also der Hype um Objective C. Zudem lassen die Ergebnisse die Vermutung zu, dass das iPhone ein wesentlicher Grund für das Interesse ist. Der iPhone Boom wird sicherlich auch der Apple Mac Plattform weiteren Schub bringen.</p>
<p>Interessanterweise zeichnet sich am selben Tag bei <a href="http://www.amazon.de/Programmiersprachen-Programmierung-Webdesign-B%C3%BCcher/s/qid=1235727221/ref=sr_nr_n_1?ie=UTF8&#038;rs=166022031&#038;bbn=166024031&#038;rnid=166022031&#038;rh=n%3A186606%2Cn%3A124%2Cn%3A166022031%2Cn%3A166024031">Amazon Deutschland ein völlig anderes Bild</a> ab:</p>
<table>
<tr>
<th>Platz</th>
<th>&nbsp;</th>
<th>Sprache/Thema</th>
</tr>
<tr>
<td>1</td>
<td/>
<td>C</td>
</tr>
<tr>
<td>2</td>
<td/>
<td>C++</td>
</tr>
<tr>
<td>3</td>
<td/>
<td>Objective C</td>
</tr>
<tr>
<td>4</td>
<td/>
<td>C#</td>
</tr>
<tr>
<td>5</td>
<td/>
<td>Java</td>
</tr>
</table>
<p>Auch hier findet sich ein Objective C Buch vor Java und C#, aber hierzulande wird auf den ersten Blick noch wesentlich mehr in die C/C++ Bildung investiert als in den USA.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/c-ueberholt-java-objective-c-ist-der-neue-hype/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Glassfish 2.1</title>
		<link>http://jars.de/java/glassfish-21</link>
		<comments>http://jars.de/java/glassfish-21#comments</comments>
		<pubDate>Fri, 23 Jan 2009 22:08:32 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[Glassfish 2.1]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[JEE 5]]></category>
		<category><![CDATA[JMS]]></category>
		<category><![CDATA[OpenMQ]]></category>
		<category><![CDATA[UMS]]></category>

		<guid isPermaLink="false">http://jars.de/?p=197</guid>
		<description><![CDATA[Mit Glassfish 2.1 bekommt der beliebte JEE 5 Open Source Applikationsserver ein wohlverdientes Update. Glassfish 2 (Update Release 2) habe ich in den letzten Monaten regelmäßig genutzt und bin schon gespannt selbst die Verbesserungen in Version 2.1 auszuprobieren. Insgesamt fand ich GlassFish recht angenehm; nur hier und da gab es noch Kleinigkeiten, die mich gestört [...]]]></description>
			<content:encoded><![CDATA[<p>Mit <a href="https://glassfish.dev.java.net/downloads/v2.1-b60e.html">Glassfish 2.1</a> bekommt der beliebte JEE 5 Open Source Applikationsserver ein wohlverdientes Update. Glassfish 2 (Update Release 2) habe ich in den letzten Monaten regelmäßig genutzt und bin schon gespannt selbst die Verbesserungen in Version 2.1 auszuprobieren. Insgesamt fand ich GlassFish recht angenehm; nur hier und da gab es noch Kleinigkeiten, die mich gestört haben (um ein Beispiel rauszupicken: GlassFish startete nicht wenn der Message Broker noch lief). Seit der Version 2 UR2 sind inzwischen auch neun Monate ohne eine frei zugängliche Aktualisierung vergangen. Lediglich die zahlenden Sun Kunden hatten in dieser Zeit Fixes in Form von <a href="http://blogs.sun.com/GlassFishForBusiness/entry/sjs_as_9_1_u24">fünf Patches</a> erhalten. Sozusagen Bugs als Businessmodell&#8230; <img src='http://jars.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Jedenfalls hat Glassfish 2.1 &#8211; zusätzlich zu unzähligen Fixes &#8211; auch neue Features:<span id="more-197"></span></p>
<ul>
<li><a href="https://sailfin.dev.java.net/">SailFin</a> ist nicht nur der Grund dafür dass das 2.1er Release über einen Monat Verspätung hatte, sondern auch ein SIP Server. Damit kann GlassFish zum Beispiel zur VoIP-Zentrale ausgebaut werden.</li>
<li>Der JMS Provider <a href="https://mq.dev.java.net/">OpenMQ</a> springt von Version 4.1 auf 4.3. Neu sind unter anderem Performance Verbesserungen, Wildcard Topics, MySQL Support und Universal Message Service (UMS). Mit UMS kann man über REST oder SOAP auf den Message Broker zugreifen, womit alle HTTP fähigen Geräte Zugriff auf die JMS Queues bekommen. Weitere Details zu den Versionen: <a href="https://mq.dev.java.net/4.2.html">4.2</a> und <a href="https://mq.dev.java.net/4.3.html">4.3</a></li>
<li>Das Clustering mit <a href="https://shoal.dev.java.net/">Shoal</a> wurde verbessert</li>
<li>Auch andere Core Module wie der Web Service Stack <a href="https://metro.dev.java.net/">Metro</a>, der JPA Provider <a href="http://www.google.de/url?sa=t&#038;source=web&#038;ct=res&#038;cd=1&#038;url=https%3A%2F%2Fglassfish.dev.java.net%2Fjavaee5%2Fpersistence%2F&#038;ei=QlF2SeuYOIPQ0AXp-pHGCg&#038;usg=AFQjCNGDpIfGyMdP59HuvFQlP2E4tPZ2FQ&#038;sig2=63YAXFsTdFoVeifIXO2e2g">Toplink Essentials</a> und die HTTP Engine <a href="https://grizzly.dev.java.net/">Grizzly</a> wurde aktualisiert. Details zu neuen Features habe ich dazu aber noch nicht herausfinden können.</li>
</ul>
<p>In den nächsten Tagen werde ich verschiedene Applikationen auf Glassfish 2.1 testen. Mal sehen wie das läuft&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/glassfish-21/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>JUnit Max: Continuous Integration Light?</title>
		<link>http://jars.de/java/junit-max-continuous-integration-light</link>
		<comments>http://jars.de/java/junit-max-continuous-integration-light#comments</comments>
		<pubDate>Thu, 22 Jan 2009 12:44:02 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Erfahrungsbericht]]></category>
		<category><![CDATA[JUnit]]></category>
		<category><![CDATA[Unit Testing]]></category>

		<guid isPermaLink="false">http://jars.de/?p=245</guid>
		<description><![CDATA[Kent Beck&#8217;s neues Projekt JUnit Max ist ein Eclipse Plugin, das JUnit Tests automatisch nach dem Speichern einer Java Datei im Hintergrund ausführt. Somit bekommt man als Entwickler unmittelbar Feedback, wenn sich ein Fehler eingeschlichen hat. Fast schon eine Art von lokalem Continuous Integration. Eine simple aber interessante Idee. Ich hab es gleich mal ausprobiert. [...]]]></description>
			<content:encoded><![CDATA[<p>Kent Beck&#8217;s neues Projekt <a href="http://www.junitmax.com/junitmax/subscribe.html">JUnit Max</a> ist ein Eclipse Plugin, das JUnit Tests automatisch nach dem Speichern einer Java Datei im Hintergrund ausführt. Somit bekommt man als Entwickler unmittelbar Feedback, wenn sich ein Fehler eingeschlichen hat. Fast schon eine Art von lokalem Continuous Integration. Eine simple aber interessante Idee. Ich hab es gleich mal ausprobiert. So schaut es dann zum Beispiel aus wenn ein Fehler gefunden wird:</p>
<p><img src="http://jars.de/wp-content/uploads/junit-max.png" alt="junit-max" title="junit-max" width="556" height="187" class="alignnone size-full wp-image-246" /></p>
<p>Für die Nutzung fallen 2 US Dollar im Monat an. Nach der Zahlung erfährt man, dass die Update Site http://www.threeriversinstitute.org/junitmax/ ist und man kann das Plugin damit installieren &#8211; weitere Überprüfungen gibt es nicht. Kent Beck sieht es auch eher locker: &#8220;If you stop paying, please stop using it.&#8221;</p>
<p>Mein erster Test hat ganz gut funktioniert, auch wenn man merkt dass es noch eine frühe Version ist. Aufgefallen ist mir, dass man JUnit Max nicht für einzelne Projekte aktivieren oder deaktivieren kann. Auch bei fehlgeschlagenen Tests fehlen wichtige Informationen wie der Call-Stack. Die CPU Last ist natürlich auch nicht unerheblich wenn viele Tests vorhanden sind. Da werden sich in Zukunft sicher noch weitere Optimierungen finden.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/junit-max-continuous-integration-light/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>RichFaces 3.3 und GWT bei JBoss, ICEfaces bei Sun</title>
		<link>http://jars.de/java/richfaces-33-und-gwt-bei-jboss-icefaces-bei-sun</link>
		<comments>http://jars.de/java/richfaces-33-und-gwt-bei-jboss-icefaces-bei-sun#comments</comments>
		<pubDate>Fri, 16 Jan 2009 09:39:51 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[AJAX]]></category>
		<category><![CDATA[GWT]]></category>
		<category><![CDATA[ICEfaces]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[JSF]]></category>
		<category><![CDATA[RichFaces]]></category>

		<guid isPermaLink="false">http://jars.de/?p=206</guid>
		<description><![CDATA[JBoss hat diese Woche eine neue Version seiner AJAX JSF Komponenten RichFaces vorgestellt. Neu bei Richfaces 3.3 sind vorallem eine Rich Text Editor Komponente (basierend auf tinyMCE) und AJAX Queues, die für eine sequentielle Abarbeitung von AJAX Requests sorgen. Weitere Details zu RichFaces 3.3 gibt es z.B. auf javathreads.de oder im JBoss Community Wiki. Zum [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://jars.de/wp-content/uploads/richfaces-33-editor.png" alt="richfaces-33-editor" title="richfaces-33-editor" width="400" height="113" class="alignright size-full wp-image-207" />JBoss hat diese Woche eine neue Version seiner AJAX JSF Komponenten <a href="http://www.jboss.org/jbossrichfaces/">RichFaces</a> vorgestellt. Neu bei Richfaces 3.3 sind vorallem eine <a href="http://livedemo.exadel.com/richfaces-demo/richfaces/editor.jsf?c=editor&#038;tab=usage">Rich Text Editor Komponente</a> (basierend auf <a href="http://tinymce.moxiecode.com/">tinyMCE</a>) und <a href="http://livedemo.exadel.com/richfaces-demo/richfaces/queue.jsf?c=queue&#038;tab=usage">AJAX Queues</a>, die für eine sequentielle Abarbeitung von AJAX Requests sorgen. Weitere Details zu RichFaces 3.3 gibt es z.B. auf <a href="http://javathreads.de/2009/01/jboss-richfaces-330-ga-mit-einer-editor-komponente/">javathreads.de</a> oder im <a href="https://www.jboss.org/community/docs/DOC-13245">JBoss Community Wiki</a>. Zum Download geht&#8217;s <a href="http://www.jboss.org/jbossrichfaces/downloads/">hier</a>.</p>
<p>Interessant fand ich in diesem Kontext noch die <a href="http://www.businesswire.com/portal/site/google/?ndmViewId=news_view&#038;newsId=20081211005117&#038;newsLang=en">Ankündigung im Dezember 2008</a>, dass Red Hat neben JSF/RichFaces auch <a href="http://code.google.com/intl/de-DE/webtoolkit/">GWT</a> (Google Web Toolkit) als zweites Java AJAX Framework unterstützen möchte. Somit wird GWT Kernbestandteil der JBoss Middleware und Red Hat wird in Zukunft im Rahmen der JBoss Enterprise Application Platform auch Support für GWT anbieten. Nicht zu vergessen ist auch, dass JBoss Seam schon eine gewisse GWT Unterstützung anbietet. <a href="http://blog.softwhere.org/archives/567">Laut Rich Sharple</a> wird JBoss auch weiterhin JSF/RichFaces wie gehabt vorantreiben. Man fragt sich aber schon ob JBoss mit JSF/Exadel/RichFaces so richtig glücklich ist.</p>
<p>Auch bei Sun gab es im Dezember auch <a href="http://blog.icefaces.org/blojsom/blog/default/2008/12/16/ICEfaces-Becoming-Integral-To-Suns-RIA-Technology-Stack/">wesentliche Änderungen</a>: <a href="http://www.icefaces.org/main/home/index.jsp">ICEfaces</a> soll Woodstock als JSF AJAX Komponenten in Suns&#8217;s RIA Stack ersetzen. Es kristallisieren sich also immer deutlicher die wichtigsten AJAX Frameworks heraus, im Java Land&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/richfaces-33-und-gwt-bei-jboss-icefaces-bei-sun/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse 3.4 Plugin Problem: &#8220;No repository found containing&#8230;&#8221;</title>
		<link>http://jars.de/java/eclipse-34-plugin-problem-no-repository-found-containing</link>
		<comments>http://jars.de/java/eclipse-34-plugin-problem-no-repository-found-containing#comments</comments>
		<pubDate>Sun, 04 Jan 2009 18:08:25 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse 3.4]]></category>
		<category><![CDATA[Eclipse Update Site]]></category>
		<category><![CDATA[Equinox]]></category>
		<category><![CDATA[Workaround]]></category>

		<guid isPermaLink="false">http://jars.de/?p=193</guid>
		<description><![CDATA[Auf einmal konnte ich keine Eclipse Plugins mehr installieren oder updaten. Bei einem Installationsversuch kamen immer Repository Fehler (&#8220;No repository found containing: [...]&#8220;). Wie sich herausstellte handelt es sich um einen Equinox Bug der auch noch die aktuelle Eclipse Version 3.4.1 betrifft. Zum Glück gibt es einen Workaround zur Reparatur: Die Update Sites exportieren: Software [...]]]></description>
			<content:encoded><![CDATA[<p>Auf einmal konnte ich keine Eclipse Plugins mehr installieren oder updaten. Bei einem Installationsversuch kamen immer Repository Fehler (&#8220;No repository found containing: [...]&#8220;). Wie sich herausstellte handelt es sich um einen Equinox <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=236437">Bug</a> der auch noch die aktuelle Eclipse Version 3.4.1 betrifft.</p>
<p>Zum Glück gibt es einen Workaround zur Reparatur: <span id="more-193"></span></p>
<ol>
<li>Die Update Sites exportieren: Software Updates -> Manage sites -> Export (bookmarks.xml)</li>
<li>Eclipse beenden</li>
<li>Die beiden Dateien relativ zur Eclipse-Installation unter configuration/.settings/org.eclipse.equinox.p2.*.prefs löschen (nach Backup)</li>
<li>Eclipse wieder starten</li>
<li>Die zuvor exportierten Update Sites (bookmarks.xml) wieder importieren</li>
</ol>
<p>Das hat bei mir prima funktioniert: Danach konnte ich wieder wie gewohnt neue Plugins installieren und vorhandene updaten.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/eclipse-34-plugin-problem-no-repository-found-containing/feed</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Eclipse Subversion Plugins: Subclipse vs. Subversion</title>
		<link>http://jars.de/java/eclipse-subversion-plugins-subclipse-vs-subversion</link>
		<comments>http://jars.de/java/eclipse-subversion-plugins-subclipse-vs-subversion#comments</comments>
		<pubDate>Mon, 15 Dec 2008 08:46:31 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Eclipse 3.4]]></category>
		<category><![CDATA[Erfahrungsbericht]]></category>
		<category><![CDATA[Installation]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[polarion]]></category>
		<category><![CDATA[Revision Graph]]></category>
		<category><![CDATA[subclipse]]></category>
		<category><![CDATA[Subversion]]></category>
		<category><![CDATA[Subversive]]></category>
		<category><![CDATA[SVN]]></category>

		<guid isPermaLink="false">http://jars.de/?p=191</guid>
		<description><![CDATA[Eclipse User haben den Luxus zwischen zwei &#8220;SVN Team Provider&#8221; Plugins wählen zu können beziehungsweise zu müssen: Subclipse und Subversive. Mit Subclipse habe ich schon längere Zeit gute Erfahrungen gemacht. Aber nachdem Subversive mit Eclipse 3.4 das offizielle Subversion Plugin der Eclipse Foundation geworden ist, habe ich mir es die letzten Monate näher angeschaut. Es [...]]]></description>
			<content:encoded><![CDATA[<p>Eclipse User haben den Luxus zwischen zwei &#8220;SVN Team Provider&#8221; Plugins wählen zu können beziehungsweise zu müssen: <a href="http://subclipse.tigris.org/">Subclipse</a> und <a href="http://www.eclipse.org/subversive/">Subversive</a>. Mit Subclipse habe ich schon längere Zeit gute Erfahrungen gemacht. Aber nachdem Subversive mit Eclipse 3.4 das offizielle Subversion Plugin der Eclipse Foundation geworden ist, habe ich mir es die letzten Monate näher angeschaut. Es war sogar möglich beide Versionen parallel in Eclipse zu installieren. Das fand ich hilfreich, weil Subversive die zuvor mit Subclipse gemanagten Projekte nicht übernehmen konnte. So musste ich die vielen Projekte nicht nochmal mit Subversive auschecken, was sonst der übliche Weg ist. Inzwischen habe ich komplett auf Subversive umgestellt und Subclipse deinstalliert. <span id="more-191"></span></p>
<p>Der Hauptgrund warum ich mich für Subversive entschieden habe ist die Geschwindigkeit. Ich hatte den Eindruck, dass es einiges schneller als Subclipse ist. Ich nutze gerne die Team Synchronize Perspektive um auf einen Blick zu sehen bei welchen Projekten eingehende oder ausgehende Veränderungen vorhanden sind. Hier habe ich ca. 20 Projekte gepinnt, was mit Subversive gut machbar ist, während ich bei Subclipse schon mit weniger Projekten längere Wartezeiten hatte. Ein weiterer Vorteil von Subversive ist sicherlich, dass es unter dem Eclipse Dach einen wahrscheinlich langfristig gesicherten Platz gefunden hat.</p>
<p>Obwohl es direkt von der Eclipse Foundation kommt, ist die Installation noch nicht so einfach wie man sich wünschen würde. Im Wesentlichen muss man sicherstellen, dass folgende Update Sites vorhanden sind:</p>
<p>http://download.eclipse.org/technology/subversive/0.7/update-site/</p>
<p>http://www.polarion.org/projects/subversive/download/eclipse/2.0/update-site/</p>
<p>http://www.polarion.org/projects/subversive/download/integrations/update-site/ (optional?)</p>
<p>Details zur Installation findet man bei <a href="http://www.eclipse.org/subversive/downloads.php">Eclipse</a>, <a href="http://www.polarion.com/products/svn/subversive.php?src=jars.de">Polarion</a> oder bei <a href="http://javathreads.de/2008/07/subversion-unter-eclipse-ganymede-konfigurieren/">javathreads.de</a>.</p>
<p>So richtig etwas falsch machen kann man aber weder mit Subclipse noch mit Subversion, finde ich. Ich habe kaum Unterschiede bei den typischen Features oder der Bedienung entdecken können. Gefühlt hatte ich mit Subclipse einen Tick öfters SVN Locking Probleme, dafür hatte Subversive eher Probleme mit dem Verschieben von Verzeichnissen. Das kann aber alles Zufall gewesen sein. Lediglich hat Subclipse ein <a href="http://subclipse.tigris.org/graph.html">cooles Revision Graph Feature</a>, das ich beim ansonsten schnelleren Subversive vermisse.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/eclipse-subversion-plugins-subclipse-vs-subversion/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Parallel4: Parallelisierung einfach</title>
		<link>http://jars.de/java/parallel4-parallelisierung-einfach</link>
		<comments>http://jars.de/java/parallel4-parallelisierung-einfach#comments</comments>
		<pubDate>Mon, 28 Jul 2008 06:58:21 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Multithreading]]></category>
		<category><![CDATA[Parallel For]]></category>
		<category><![CDATA[Parallel4]]></category>
		<category><![CDATA[Parallelisierung]]></category>
		<category><![CDATA[Streams]]></category>
		<category><![CDATA[Threads]]></category>

		<guid isPermaLink="false">http://jars.de/?p=188</guid>
		<description><![CDATA[Parallel4 ist eine neue kleine Library, die Parallelisierung für Java und weitere Sprachen auf der JVM vereinfachen soll. Ein zentraler Bestandteil sind parallele for-Schleifen, die automatisch so viele Threads verwenden wie CPU Kerne verfügbar sind. Dazu gleich etwas Code aus dem mitgelieferten Mandelbrot-Beispiel (zum Starten einfach die Jar Datei ausführen). Konventionell, single-threaded: for &#40;int y [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://code.google.com/p/parallel4/">Parallel4</a> ist eine neue kleine Library, die Parallelisierung für Java und weitere Sprachen auf der JVM vereinfachen soll. Ein zentraler Bestandteil sind parallele for-Schleifen, die automatisch so viele Threads verwenden wie CPU Kerne verfügbar sind. Dazu gleich etwas Code aus dem mitgelieferten Mandelbrot-Beispiel (zum Starten einfach die Jar Datei ausführen).</p>
<p>Konventionell, single-threaded:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">	<span style="color: #000000; font-weight: bold;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> y <span style="color: #339933;">=</span> <span style="color: #cc66cc;">0</span><span style="color: #339933;">;</span> y <span style="color: #339933;">&lt;</span> height<span style="color: #339933;">;</span> y<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		calcLine<span style="color: #009900;">&#40;</span>y<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span></pre></div></div>

<p>Dasselbe in der multi-threaded Variante mit Parallel4, die alle vorhandenen CPUs nutzt:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">	<span style="color: #000000; font-weight: bold;">new</span> ParallelForInt<span style="color: #009900;">&#40;</span>height<span style="color: #009900;">&#41;</span>.<span style="color: #006633;">loop</span><span style="color: #009900;">&#40;</span><span style="color: #000000; font-weight: bold;">new</span> IterationInt<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
		<span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000066; font-weight: bold;">void</span> iteration<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">int</span> y<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
			calcLine<span style="color: #009900;">&#40;</span>y<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Auf einer Dual-/Quad-Core CPU verdoppelt/vervierfacht sich damit die Geschwindigkeit. Parallel4 versucht dabei den Mehraufwand minimal zu halten und gewohnte Ansätze beizubehalten. <span id="more-188"></span>Mit Closures, wie sie bei Groovy und hoffentlich in Java 7 zur Verfügung stehen werden, wird die Syntax weiter vereinfacht, da das Interface IterationInt weg fällt und damit mit der original For-Schleife vom der Ausdrucksweise gleichzieht. </p>
<p>Neben der parallelen For-Schleife hat die Version 0.1 auch eine ParallelInputStream Klasse, die asynchron im voraus einen Buffer befüllt. Bei CPU-intensiver Streamverarbeitung wie beispielsweise dem GZIPInputStream kann dies eine Beschleunigung von über 50% bringen. Dazu muss man einfach den ParallelInputStream dazwischenhängen:</p>

<div class="wp_syntax"><div class="code"><pre class="java" style="font-family:monospace;">in <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> ParallelInputStream<span style="color: #009900;">&#40;</span>in<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Im Gegensatz zur for-Schleife hängen hier die Resultate stark vom Einzelfall ab. Beispielsweise ist bei einfachen FileInputStream Objekten hier kaum eine Verbesserung zu erzielen, da hier bereits intern asynchron die Daten vorbereitet werden. Dennoch ist es schwer Fälle zu finden, die mit ParallelInputStream langsamer arbeiteten als ohne: ParallelInputStream hat schon ein paar <a href="http://jars.de/java/visualvm-profiler-jetzt-im-jdk">Profiler</a>- und Optimierungssessions hinter sich (wie auch ParallelForInt) und verzichtet beispielsweise zu 99,9% auf explizite Synchronisation mit synchronized und stellt die Synchronisation stattdessen algorithmisch sicher.</p>
<p>Für Interessierte gibt es neben den <a href="http://code.google.com/p/parallel4/downloads/list">Downloads</a> auch den <a href="http://code.google.com/p/parallel4/source/checkout">Source Code</a>. Die <a href="http://code.google.com/p/parallel4/">Parallel4 Open-Source Seite</a> wird auf Google Code gehostet; die <a href="http://parallel4.com/">Parallel4 Website</a> ist erst noch am Entstehen.</p>
<p>Auch wenn es sich um eine frühe Version handelt, würde mich Feedback zum Ansatz und zur Umsetzung sehr freuen.</p>
<p>P.S.: <a href="http://gestalt.monoid.net/">Michael</a> hatte letzen Monat mit einer <a href="http://gestalt.monoid.net/stuffu/ParallelArray.scala">parallelen for-Schleife für Scala</a> herumgespielt. Ein Vergleich zum Overhead wäre interessant&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/parallel4-parallelisierung-einfach/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>VisualVM &#8211; Profiler jetzt im JDK</title>
		<link>http://jars.de/java/visualvm-profiler-jetzt-im-jdk</link>
		<comments>http://jars.de/java/visualvm-profiler-jetzt-im-jdk#comments</comments>
		<pubDate>Thu, 10 Jul 2008 06:48:10 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[JDK]]></category>
		<category><![CDATA[JDK 6]]></category>
		<category><![CDATA[Netbeans]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[Profiling]]></category>
		<category><![CDATA[Speicher]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[VisualVM]]></category>

		<guid isPermaLink="false">http://jars.de/?p=184</guid>
		<description><![CDATA[Bei dem am 8. Juli veröffentlichen JDK 6 Update 7 ist erstmals VisualVM dabei. VisualVM ist ein Profiler für Java Applikationen mit einer intuitiven grafischen Oberfläche. Mit dem Tool lassen sich Performance Bottlenecks und Speicherleichen einfach auffinden. Der erste Eindruck überzeugte spontan: einfach jvisualvm aus dem JDK bin Verzeichnis auswählen, die einmalige Performance Kalibrierung durchführen [...]]]></description>
			<content:encoded><![CDATA[<p>Bei dem am 8. Juli veröffentlichen <a href="http://java.sun.com/javase/downloads/index.jsp">JDK</a> <a href="http://java.sun.com/javase/6/webnotes/ReleaseNotes.html">6 Update 7</a> ist erstmals <a href="https://visualvm.dev.java.net">VisualVM</a> dabei. VisualVM ist ein Profiler für Java Applikationen mit einer intuitiven grafischen Oberfläche. Mit dem Tool lassen sich Performance Bottlenecks und Speicherleichen einfach auffinden. Der erste Eindruck überzeugte spontan: einfach jvisualvm aus dem JDK bin Verzeichnis auswählen, die einmalige Performance Kalibrierung durchführen und schon kann man einen Java Prozess auswählen, den man untersuchen möchte. Wie das aussieht zeigen die folgenden Screenshots. Davor aber noch etwas Hintergrundinfo: VisualVM ist eine <a href="http://platform.netbeans.org/">Netbeans RCP</a> Anwendung, was es unter anderem ermöglicht, VisualVM mit Plugins zu erweitern. Durch die Aufnahme von VisualVM ist das JDK allerdings auch größer geworden: Der Download ist von 71 auf 77 MB gewachsen und nach der Installation braucht das neue Verzeichnis lib/visualvm gut 21 MB an zusätzlichen Festplattenplatz. Aber das stört heutzutage wohl niemanden mehr.</p>
<p>Und jetzt zu den Screenshots. Zuerst eine Übersichtsdarstellung:<br />
<img src="http://jars.de/wp-content/uploads/visualvm.png" alt="" title="visualvm" class="alignnone size-full wp-image-185" /></p>
<p>Der Profiler zeigt hier an welche Methoden am meisten CPU benötigen, und zwar immer live:<br />
 <span id="more-184"></span><img src="http://jars.de/wp-content/uploads/visualvm-profiler.gif" alt="" title="visualvm-profiler"  class="alignnone size-full wp-image-186" /></p>
<p>Auch für die Speicheranalyse gibt es die passenden Tools, wie zum Beispiel ein Heapdump:<br />
<img src="http://jars.de/wp-content/uploads/visualvm-heap-dump.gif" alt="" title="visualvm-heap-dump" class="alignnone size-full wp-image-187" /></p>
<p>Insgesamt macht VisualVM als Profiler einen sehr positiven und aufgeräumten Eindruck und ist damit eine sinnvolle Erweiterung für das JDK. Danke, <a href="http://profiler.netbeans.org/">Netbeans</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/visualvm-profiler-jetzt-im-jdk/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Glassfish: Deployment aus Eclipse beschleunigen</title>
		<link>http://jars.de/java/glassfish-deployment-aus-eclipse-beschleunigen</link>
		<comments>http://jars.de/java/glassfish-deployment-aus-eclipse-beschleunigen#comments</comments>
		<pubDate>Mon, 07 Jul 2008 06:20:43 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Ant]]></category>
		<category><![CDATA[Antivirus]]></category>
		<category><![CDATA[Deployment]]></category>
		<category><![CDATA[EAR]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[IDE]]></category>
		<category><![CDATA[JEE]]></category>
		<category><![CDATA[Kaspersky]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[WTP]]></category>

		<guid isPermaLink="false">http://jars.de/?p=182</guid>
		<description><![CDATA[Mein Artikel &#8220;Improving Glassfish Deployment Performance in Eclipse&#8221; aus der englischsprachigen Sektion von jars.de hat es in das Glassfish Aquarium &#8220;geschafft&#8221;. Zusammengefasst ließ sich die Deployment-Geschwindigkeit mit zwei einfachen Mitteln um 40% erhöhen: Zum einen hilft ein simpler Ant-Task für Verzeichnis-basiertes (exploded) Deployment und zum Anderen den Virenscanner feintunen. Das Directory-Deployment hilft auch bei der [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://jars.de/wp-content/uploads/glassfish-deploy-speed-up.png" alt="" title="glassfish-deploy-speed-up" width="400" height="289" class="alignright size-full wp-image-181" />Mein Artikel &#8220;<a href="http://jars.de/english/improving-glassfish-deployment-performance-in-eclipse">Improving Glassfish Deployment Performance in Eclipse</a>&#8221; aus der <a href="Improving Glassfish Deployment Performance in Eclipse">englischsprachigen Sektion von jars.de</a> hat es in das <a href="http://blogs.sun.com/theaquarium/entry/faster_deployment_of_glassfish_in">Glassfish Aquarium &#8220;geschafft&#8221;</a>. Zusammengefasst ließ sich die Deployment-Geschwindigkeit mit zwei einfachen Mitteln um 40% erhöhen: Zum einen hilft ein simpler Ant-Task für Verzeichnis-basiertes (exploded) Deployment und zum Anderen den Virenscanner feintunen. Das Directory-Deployment hilft auch bei der JSP/JSF Entwicklung, da Änderungen an JSPs ohne Redeployment sofort sichtbar werden. Die Details sind im <a href="http://jars.de/english/improving-glassfish-deployment-performance-in-eclipse">englischsprachigen Artikel</a> nachzulesen.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/glassfish-deployment-aus-eclipse-beschleunigen/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Parallelisierung mit Java</title>
		<link>http://jars.de/java/parallelisierung-mit-java</link>
		<comments>http://jars.de/java/parallelisierung-mit-java#comments</comments>
		<pubDate>Mon, 23 Jun 2008 06:29:07 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Cluster]]></category>
		<category><![CDATA[Concurrent]]></category>
		<category><![CDATA[CPU]]></category>
		<category><![CDATA[Garbage Collection]]></category>
		<category><![CDATA[Grid]]></category>
		<category><![CDATA[JMS]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[MOM]]></category>
		<category><![CDATA[Multithreading]]></category>
		<category><![CDATA[Parallelisierung]]></category>
		<category><![CDATA[Programmiersprachen]]></category>
		<category><![CDATA[Threads]]></category>

		<guid isPermaLink="false">http://jars.de/?p=175</guid>
		<description><![CDATA[Vor ein paar Jahren sich die Entwicklung von CPUs grundlegend verändert: Statt immer höhere Taktraten zu erzielen setzen Prozessorhersteller auf mehrere Prozessorkerne, die parallel arbeiten. Das volle Leistungspotential können damit auch nur noch Programme ausschöpfen, die parallel mit mehreren Prozessen oder Threads arbeiten. Klassische Programmiersprachen wie C, C++ und Java verlangen vom Programmierer, dass sie [...]]]></description>
			<content:encoded><![CDATA[<p>Vor ein paar Jahren sich die Entwicklung von CPUs grundlegend verändert: Statt immer höhere Taktraten zu erzielen setzen Prozessorhersteller auf mehrere Prozessorkerne, die parallel arbeiten. Das volle Leistungspotential können damit auch nur noch Programme ausschöpfen, die parallel mit mehreren Prozessen oder Threads arbeiten. Klassische Programmiersprachen wie C, C++ und Java verlangen vom Programmierer, dass sie selbst für die Parallelisierung Sorge tragen (explizite Parallelisierung). Einfacher zu handhaben sind Programmiersprachen die eine implizite Parallelisierung unterstützen, also keine weiteres Zutun seitens des Entwicklers bedürfen. Insbesondere funktionale Sprachen wie Haskell und Erlang sind besonders dafür geeignet, da sich die Programme hier naturgemäß in parallel abarbeitbar Einheiten unterteilen lassen.<br />
<span id="more-175"></span><br />
Dennoch hat Java gegenüber Compiler Sprachen, die direkt Maschinen-Code erzeugen, hier Vorteile. Zumindest theoretisch kann der Java Bytecode vor der Ausführung auf Parallelisierbarkeit analysiert und entsprechend der vorhandenen CPU kompiliert werden. Zum anderen kann der Garbage Collector nebenläufig arbeiten und parallel nicht mehr benötigten Speicher aufräumen. Wie gut das bereits 2006 skalierte, kann man <a href="http://dev2dev.bea.com/blog/hstahl/archive/2006/12/multicore_is_go.html">hier</a> nachlesen.</p>
<p>Neben diesen von der JVM gebotenen Mechanismen für Parallelisierung sind vor allem folgende Techniken in der Java Welt relevant:</p>
<ul>
<li><strong>Explizites Multi-Threading:</strong> Java SE bietet hierfür die Klasse Thread und den Concurrent Utilities ab Java 5. Für letzeres hat beispielsweise oio eine gute <a href="http://www.oio.de/public/java/concurrency/concurrency-utils.htm">Deutsche Einführung</a>.</li>
<li><strong>Parallelisierung von Client-Requests:</strong> Der typische Server verarbeitet die Anfragen parallel; so auch Servlet- und EJB-Container. Jede Anfrage wird für sich jedoch sequentiell abgearbeitet. Anwendung für J2EE/JEE Application Server sollten keine eigenen Threads starten.</li>
<li><strong>Nachrichten-basierte Parellelisierung:</strong> Nachrichten werden hier parallel von mehreren Cosumern verarbeitet. Meist mit einer JMS-basierten MOM beziehungsweise innerhalb eines J2EE/JEE Applikationsservers. Die völlig asynchrone Funktionsweise erfordert oft eigene Mechanismen für die Zusammenführung von Ergebnissen.</li>
<li><strong>Grid und Computing-Cluster:</strong> Hier wird die Bearbeitung nicht nur auf mehrere CPUs sondern auch mehrere Rechner aufgeteilt. Interessante Produkte sind hier <a href="http://www.oracle.com/technology/products/coherence/index.html">Oracle Coherence</a> (früher Tangosol) und <a href="http://www.terracottatech.com/">Terracota</a>.
</li>
</ul>
<p>Nach diesem grundlegenden Überblick über Parallelisierungstechniken, wird es im nächsten Teil um neue Möglichkeiten gehen, die Java 7, APIs für implizites Multithreading und Java EE 6 bieten beziehungsweise bieten werden.</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/parallelisierung-mit-java/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Eclipse WTP 2.0.2 NullPointerException</title>
		<link>http://jars.de/java/eclipse-wtp-202-nullpointerexception</link>
		<comments>http://jars.de/java/eclipse-wtp-202-nullpointerexception#comments</comments>
		<pubDate>Sun, 08 Jun 2008 09:35:32 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Bug]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Glassfish]]></category>
		<category><![CDATA[How-to]]></category>
		<category><![CDATA[JBoss]]></category>
		<category><![CDATA[JST]]></category>
		<category><![CDATA[Netbeans 6]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[WST]]></category>
		<category><![CDATA[WTP]]></category>

		<guid isPermaLink="false">http://jars.de/?p=173</guid>
		<description><![CDATA[Einen derartigen Show-Stopper Bug habe ich bei Eclipse selten erlebt: Mit der aktuellen WTP 2.0.2 ließen sich Webapplikationen wegen einer NullPointerException generell nicht mehr deployen. Zudem gab es auch Probleme beim Starten von Glassfish. Wie sich herausstellte ein seit Februar 2008 bekannter Bug, der es jedoch ganz knapp nicht in die Version WTP 2.0.2 geschafft [...]]]></description>
			<content:encoded><![CDATA[<p>Einen derartigen Show-Stopper Bug habe ich bei Eclipse selten erlebt: Mit der aktuellen WTP 2.0.2 ließen sich Webapplikationen wegen einer NullPointerException generell nicht mehr deployen. Zudem gab es auch Probleme beim Starten von Glassfish. Wie sich herausstellte ein <a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=219627">seit Februar 2008 bekannter Bug</a>, der es jedoch ganz knapp nicht in die Version WTP 2.0.2 geschafft hatte. WTP 2.0.2 ist auch noch im Juni 2008 aktuell und wird z.B. bei einer Aktualisierung installiert. Ob noch eine Version 2.0.3 kommt ist fraglich; im Bugreport ist Version 3.0 anvisiert. Der Bug scheint relativ Server-übergreifend zu sein; jedenfalls ist im Bugreport auch die Rede von Glassfish, JBoss 4.2, Jetty 6 und OC4J.</p>
<p>Es gibt seit längerem auch schon einen Fix den man sich allerdings manuell als Patches herunterladen muss. <span id="more-173"></span>Warum man nicht gleich eine neue Version gemacht hat, die nach der Installation einfach funktioniert, kann ich nicht nachvollziehen. Das hätte einigen Leuten Zeit gespart, wie man auch in Kommentaren des Bugreports sieht: &#8220;Trying to learn JBoss with Eclipse, I lost almost 2 days&#8221;. Wenn man den Bug kennt und von den Patches weiß, ist es aber ganz einfach. Bei Software Updates die &#8220;Web Tools Platform (WTP) Updates&#8221; auswählen und dann die Patches (WST und JST!) selektieren:<br />
<a href='http://jars.de/wp-content/uploads/eclipse-wtp-patches.png'><img src="http://jars.de/wp-content/uploads/eclipse-wtp-patches.png" alt="Eclipse WTP Patches" title="eclipse-wtp-patches" class="alignnone size-full wp-image-174" /></a></p>
<p>Nach einem Eclipse Neustart hatte ich dann keine Probleme mehr &#8211; mal sehen wie sich das auf Dauer verhält. Netbeans 6.1, das ich mir dann gleich installiert hatte als ich nicht mehr deployen konnte, steht jedenfalls schon bereit. <img src='http://jars.de/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Die Glassfish Integration war hier jedenfalls problemlos und machte auf den ersten Blick einen sehr guten Eindruck.</p>
<p>Hat man die Webapplikation in einem EAR deployt, ging es übrigens auch schon ohne Patch.</p>
<p>Hier schließlich noch die verursachende Exception aus dem Eclipse Logfile:<br />
<font size="1"></p>
<blockquote><p>
!MESSAGE Could not publish to the server.<br />
!STACK 0<br />
java.lang.NullPointerException<br />
	at org.eclipse.wst.common.componentcore.internal.util.ComponentUtilities.getDeployUriOfComponent(ComponentUtilities.java:327)<br />
	at org.eclipse.jst.j2ee.internal.deployables.J2EEFlexProjDeployable.getURI(J2EEFlexProjDeployable.java:429)<br />
	at org.eclipse.jst.server.generic.core.internal.publishers.AntPublisher.guessModuleName(AntPublisher.java:259)<br />
	at org.eclipse.jst.server.generic.core.internal.publishers.AntPublisher.getPublishProperties(AntPublisher.java:224)<br />
	at org.eclipse.jst.server.generic.core.internal.publishers.AntPublisher.publish(AntPublisher.java:110)<br />
	at org.eclipse.jst.server.generic.core.internal.GenericServerBehaviour.publishModule(GenericServerBehaviour.java:84)<br />
	at com.sun.enterprise.jst.server.sunappsrv.SunAppServerBehaviour.publishModule(SunAppServerBehaviour.java:106)<br />
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publishModule(ServerBehaviourDelegate.java:749)<br />
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publishModules(ServerBehaviourDelegate.java:835)<br />
	at org.eclipse.wst.server.core.model.ServerBehaviourDelegate.publish(ServerBehaviourDelegate.java:669)<br />
	at org.eclipse.wst.server.core.internal.Server.doPublish(Server.java:887)<br />
	at org.eclipse.wst.server.core.internal.Server.publish(Server.java:874)<br />
	at org.eclipse.wst.server.core.internal.PublishServerJob.run(PublishServerJob.java:72)<br />
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)</p></blockquote>
<p></font></p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/eclipse-wtp-202-nullpointerexception/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>LINQ für Java?</title>
		<link>http://jars.de/java/linq-fuer-java</link>
		<comments>http://jars.de/java/linq-fuer-java#comments</comments>
		<pubDate>Sun, 04 May 2008 20:33:12 +0000</pubDate>
		<dc:creator>Markus Junginger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[.NET]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[C# 3.0]]></category>
		<category><![CDATA[LINQ]]></category>
		<category><![CDATA[LINQ for Java]]></category>

		<guid isPermaLink="false">http://jars.de/?p=164</guid>
		<description><![CDATA[Derzeit beschäftige ich mich neben Java auch unter anderem mit C# und .NET. Die Sprache Java wird ja eher konservativ und evolutionär weiterentwickelt (es gibt ja eine große Zahl an Entwicklern und Applikationen). Anders bei C# das seit seiner Entstehung als Java Clone schon mal größere Sprünge gemacht hat. Eine solcher ist definitiv LINQ, eine [...]]]></description>
			<content:encoded><![CDATA[<p>Derzeit beschäftige ich mich neben Java auch unter anderem mit C# und .NET. Die Sprache Java wird ja eher konservativ und evolutionär weiterentwickelt (es gibt ja eine große Zahl an Entwicklern und Applikationen). Anders bei C# das seit seiner Entstehung als Java Clone schon mal größere Sprünge gemacht hat. Eine solcher ist definitiv LINQ, eine Spracherweiterung für Abfragen (Language-Integrated Query). Damit lassen SQL ähnliche Abfragen direkt in C# (ab Version 3.0) auszudrücken. OK, netter Syntax-Zucker für relationale Datenbanken, aber das wirklich spannende an LINQ ist, dass beispielsweise auch XML und Objektgraphen auf diese Weise angesprochen werden können. Tatsächlich hat man von der Implementierung abstrahiert, so dass man für praktisch alle Datenquellen einen LINQ Aufsatz bauen könnte (LDAP, SAP, Dateisystem, Webservices, etc.).<br />
<span id="more-164"></span><br />
Ein Beispiel für LINQ (aus <a href="http://msdn.microsoft.com/en-us/vcsharp/aa336746.aspx">101 LINQ Samples</a>):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
</pre></td><td class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF; font-weight: bold;">public</span> <span style="color: #6666cc; font-weight: bold;">void</span> Linq2<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
    List products <span style="color: #008000;">=</span> GetProductList<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
&nbsp;
    var soldOutProducts <span style="color: #008000;">=</span>
        <span style="color: #0600FF; font-weight: bold;">from</span> p <span style="color: #0600FF; font-weight: bold;">in</span> products
        <span style="color: #0600FF; font-weight: bold;">where</span> p<span style="color: #008000;">.</span><span style="color: #0000FF;">UnitsInStock</span> <span style="color: #008000;">==</span> <span style="color: #FF0000;">0</span>
        <span style="color: #0600FF; font-weight: bold;">select</span> p<span style="color: #008000;">;</span>
&nbsp;
    Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Sold out products:&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #0600FF; font-weight: bold;">foreach</span> <span style="color: #008000;">&#40;</span>var product <span style="color: #0600FF; font-weight: bold;">in</span> soldOutProducts<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span>
        Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;{0} is sold out!&quot;</span>, product<span style="color: #008000;">.</span><span style="color: #0000FF;">ProductName</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span>
    <span style="color: #008000;">&#125;</span>
<span style="color: #008000;">&#125;</span></pre></td></tr></table></div>

<p>Beeindruckt? Ich geb&#8217;s zu: LINQ hat mich spontan begeistert. Carl Rosenberger ging es wohl ähnlich, denn er möchte <a href="http://developer.db4o.com/blogs/carl/archive/2008/05/02/linq-for-java.aspx">LINQ für Java</a> portieren und hat auch schon eine <a href="http://groups.google.de/group/jlinq">Google Group</a> dazu eröffnet. Es ist geplant &#8220;LINQ for Java&#8221; als Open Source Projekt ins Leben zu rufen und für die Standardisierung zu sorgen. Der geplante JSR ist sicher ein tollkühnes Ziel, insbesondere wenn man sieht wie schwer sich Java schon mit Closures tut. Aber allemal ein interessantes Projekt!</p>
]]></content:encoded>
			<wfw:commentRss>http://jars.de/java/linq-fuer-java/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

