<?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>teamzone.ch &#187; Java</title>
	<atom:link href="http://teamzone.ch/tag/java/feed/" rel="self" type="application/rss+xml" />
	<link>http://teamzone.ch</link>
	<description>Welcome to the Joint-Venture Blog from Fabio Cortesi and Stefan Jäger.</description>
	<lastBuildDate>Sat, 05 Jun 2010 13:23:27 +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>Luke &#8211; The Lucene Index Toolbox</title>
		<link>http://teamzone.ch/2009/06/13/luke-the-lucene-index-toolbox/</link>
		<comments>http://teamzone.ch/2009/06/13/luke-the-lucene-index-toolbox/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 09:13:32 +0000</pubDate>
		<dc:creator>Stefan Jäger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Lucene]]></category>

		<guid isPermaLink="false">http://teamzone.ch/2009/06/13/luke-the-lucene-index-toolbox/</guid>
		<description><![CDATA[Lucene offers great full text search capabilities. It is based on an index, which is maintained by Lucene. With Luke, the Lucene Index Toolbox (http://www.getopt.org/luke/) you can analyze your index and let explain queries.
After startup, you have to select your index. For this example, I created a test index with one file. It’s content is [...]]]></description>
			<content:encoded><![CDATA[<p>Lucene offers great full text search capabilities. It is based on an index, which is maintained by Lucene. With Luke, the Lucene Index Toolbox (<a title="http://www.getopt.org/luke/" href="http://www.getopt.org/luke/">http://www.getopt.org/luke/</a>) you can analyze your index and let explain queries.</p>
<p>After startup, you have to select your index. For this example, I created a test index with one file. It’s content is “this is a lucene test”. I used the StandardAnalyzer, which uses the WhitespaceTokenizer and filters out all tokens less than 3 characters and stop words. This will result in an index of the terms “lucene” and “test”.</p>
<p><a href="http://teamzone.ch/wp-content/uploads/2009/06/image.png"  rel="lightbox" rel="lightbox[roadtrip]"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://teamzone.ch/wp-content/uploads/2009/06/image-thumb.png" width="500" height="392" /></a>&#160;</p>
<p> <span id="more-400"></span>
<p>&#160;</p>
<p>In the register Documents, you can browse through all documents. Because we only have one file in our test index, we can directly jump to document 0. In the “Brows by term:” panel, we can browse through all terms, which are “lucene” and “test”. Very useful, to analyze the index for a specific document.</p>
<p><a href="http://teamzone.ch/wp-content/uploads/2009/06/image1.png"  rel="lightbox" rel="lightbox[roadtrip]"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://teamzone.ch/wp-content/uploads/2009/06/image-thumb1.png" width="500" height="392" /></a> </p>
<p>&#160;</p>
<p>Also very interesting is the register Search. I typed in the phrase “this is a lucene test”. In the “Query Details” panel, we can see, that the query will be “lucene test”. The reason is simple. Every query get’s also analyzed by the same analyzer, which is used for building the index.</p>
<p><a href="http://teamzone.ch/wp-content/uploads/2009/06/image2.png"  rel="lightbox" rel="lightbox[roadtrip]"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://teamzone.ch/wp-content/uploads/2009/06/image-thumb2.png" width="500" height="392" /></a> </p>
<p>&#160;</p>
<p>If you are using Lucene, just try Luke out. You can start it with Java Web Start from <a href="http://www.getopt.org/luke/luke.jnlp">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://teamzone.ch/2009/06/13/luke-the-lucene-index-toolbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>GC Viewer</title>
		<link>http://teamzone.ch/2009/05/15/gc-viewer/</link>
		<comments>http://teamzone.ch/2009/05/15/gc-viewer/#comments</comments>
		<pubDate>Fri, 15 May 2009 16:46:45 +0000</pubDate>
		<dc:creator>Stefan Jäger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[GC]]></category>

		<guid isPermaLink="false">http://teamzone.ch/2009/05/15/gc-viewer/</guid>
		<description><![CDATA[Wrong use of the memory options can cause serious performance problems. To optimize the right memory size of the JVM or to find some critical memory issues, the GC log of the JVM can be very useful. Simply start the Java application with the option -Xloggc:&#60;file&#62;. Every GC action gets logged into this file. 
&#160;
To [...]]]></description>
			<content:encoded><![CDATA[<p>Wrong use of the memory options can cause serious performance problems. To optimize the right memory size of the JVM or to find some critical memory issues, the GC log of the JVM can be very useful. Simply start the Java application with the option <strong>-Xloggc:&lt;file&gt;</strong>. Every GC action gets logged into this file. </p>
<p>&#160;</p>
<p>To analyse this log file, there is a nice tool called GCViewer, which can be downloaded from <a href="http://www.tagtraum.com/gcviewer-download.html">http://www.tagtraum.com/gcviewer-download.html</a>. GCViewer is able to display the memory usage of the application based on time and old/young generation heap space.</p>
<p><a href="http://teamzone.ch/wp-content/uploads/2009/05/clip-image002.jpg"  rel="lightbox" rel="lightbox[roadtrip]"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://teamzone.ch/wp-content/uploads/2009/05/clip-image002-thumb.jpg" width="434" height="296" /></a></p>
<p> <span id="more-376"></span>
<p>First of all, the GCViewer displays the GC log from the time on where the JVM has started. This is mostly not very useful. Just right click on the top of the diagram and enable the start time of the log. </p>
<p><a href="http://teamzone.ch/wp-content/uploads/2009/05/clip-image004.jpg"  rel="lightbox" rel="lightbox[roadtrip]"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://teamzone.ch/wp-content/uploads/2009/05/clip-image004-thumb.jpg" width="437" height="298" /></a></p>
<p>What kind of GC exists and how to optimize them, can be read from <a href="http://www.javaperformancetuning.com/tools/gcviewer/index.shtml">http://www.javaperformancetuning.com/tools/gcviewer/index.shtml</a>. In this post, I will just tell you something about the GCViewer itself.</p>
<p>&#160;</p>
<p>GCViewer creates two parts in the diagram. These parts are just logical and shows, how big the young and old generation heap space of your JVM are. </p>
<ul>
<li>The orange part is the young generation heap size. </li>
<li>The purple part is the old generation heap size. </li>
</ul>
<p><a href="http://teamzone.ch/wp-content/uploads/2009/05/clip-image006.jpg"  rel="lightbox" rel="lightbox[roadtrip]"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://teamzone.ch/wp-content/uploads/2009/05/clip-image006-thumb.jpg" width="457" height="312" /></a></p>
<p>Every time the old generation heap size reaches it&#8217;s maximum, a full GC gets performed. A full GC is a vertical, black line in the diagram. (Remember: a full GC stops for a short time all activities of the JVM and cleans the old generation heap space. It&#8217;s very important to know that the bigger the heap size the longer the duration of a full GC!)    <br />The duration of the GC is displayed as the green line at the bottom. You can see in the picture above, that the full GC consumes much more time than the young generation GCs.     </p>
<p>I can recommend to log in critical environments your GC activities. If you run into som performance issues or response problems you can easily search for the reasons. It is a completion to the usual log file.</p>
]]></content:encoded>
			<wfw:commentRss>http://teamzone.ch/2009/05/15/gc-viewer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Code City</title>
		<link>http://teamzone.ch/2009/03/11/code-city/</link>
		<comments>http://teamzone.ch/2009/03/11/code-city/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 20:56:30 +0000</pubDate>
		<dc:creator>Stefan Jäger</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Code City]]></category>
		<category><![CDATA[Software Engineering]]></category>

		<guid isPermaLink="false">http://teamzone.ch/2009/03/11/code-city/</guid>
		<description><![CDATA[Yesterday, I visited an interesting presentation from Tudor Girba. He showed us several ways for visualize code. One of the most interesting visualization was Code City.
&#160;
 
(ArgoUML from http://moose.unibe.ch/tools/codecity)
&#160;
 
I couldn’t wait to visualize our current software project. First of all, you have to create a MSE file of your code. The MSE file as [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday, I visited an interesting presentation from Tudor Girba. He showed us several ways for visualize code. One of the most interesting visualization was Code City.</p>
<p>&#160;</p>
<p><a href="http://teamzone.ch/wp-content/uploads/2009/03/image3.png"  rel="lightbox" rel="lightbox[roadtrip]"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://teamzone.ch/wp-content/uploads/2009/03/image-thumb3.png" width="558" height="351" /></a> </p>
<p>(ArgoUML from <a title="http://moose.unibe.ch/tools/codecity" href="http://moose.unibe.ch/tools/codecity">http://moose.unibe.ch/tools/codecity</a>)</p>
<p>&#160;</p>
<p> <span id="more-331"></span>
<p>I couldn’t wait to visualize our current software project. First of all, you have to create a MSE file of your code. The MSE file as a generic file of your source code. This is done with iPlasma, as described here <a title="http://moose.unibe.ch/news/iplasma-to-moose-screencast" href="http://moose.unibe.ch/news/iplasma-to-moose-screencast">http://moose.unibe.ch/news/iplasma-to-moose-screencast</a>.</p>
<p>&#160;</p>
<p>After you have created an MSE file, you can now visualize your code with Code City. Just download it from <a title="http://www.inf.unisi.ch/phd/wettel/codecity.html" href="http://www.inf.unisi.ch/phd/wettel/codecity.html">http://www.inf.unisi.ch/phd/wettel/codecity.html</a>, run it, import the MSE file and create your city. Enjoy!</p>
<p>&#160;</p>
<p>For better code analysis, I changed the configuration of the “buildings” in my city. I changed the width and length of class element …</p>
<p><a href="http://teamzone.ch/wp-content/uploads/2009/03/image1.png"  rel="lightbox" rel="lightbox[roadtrip]"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://teamzone.ch/wp-content/uploads/2009/03/image-thumb1.png" width="561" height="252" /></a> </p>
<p>… to a linear mapper based on the lines of code.</p>
<p><a href="http://teamzone.ch/wp-content/uploads/2009/03/image2.png"  rel="lightbox" rel="lightbox[roadtrip]"><img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://teamzone.ch/wp-content/uploads/2009/03/image-thumb2.png" width="244" height="204" /></a> </p>
<p>&#160;</p>
<p>Code City is very helpful to compare different parts of the application and to just visualize the software!</p>
]]></content:encoded>
			<wfw:commentRss>http://teamzone.ch/2009/03/11/code-city/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Schedule CVS Synchronization in Eclipse</title>
		<link>http://teamzone.ch/2009/02/03/schedule-cvs-synchronization-in-eclipse-2/</link>
		<comments>http://teamzone.ch/2009/02/03/schedule-cvs-synchronization-in-eclipse-2/#comments</comments>
		<pubDate>Tue, 03 Feb 2009 20:28:07 +0000</pubDate>
		<dc:creator>Stefan Jäger</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>

		<guid isPermaLink="false">http://teamzone.ch/2009/02/03/schedule-cvs-synchronization-in-eclipse-2/</guid>
		<description><![CDATA[Source Control like CVS or Subversion is used almost in every software project. As a developer, it&#8217;s your responsibility to be up to date with the current version from the source control system. In Eclipse there is a nice feature to schedule such synchronizations. This means, you get regularly informed about all updates and you [...]]]></description>
			<content:encoded><![CDATA[<p>Source Control like CVS or Subversion is used almost in every software project. As a developer, it&#8217;s your responsibility to be up to date with the current version from the source control system. In Eclipse there is a nice feature to schedule such synchronizations. This means, you get regularly informed about all updates and you have less merging problems!</p>
<p>&nbsp;</p>
<p><span id="more-311"></span></p>
<p>Just open the Team Synchronization Perspective, open the View’s menu and choose Schedule…</p>
<p><a rel="lightbox" href="http://teamzone.ch/wp-content/uploads/2009/02/image.png"  rel="lightbox[roadtrip]"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" src="http://teamzone.ch/wp-content/uploads/2009/02/image-thumb.png" border="0" alt="image" width="554" height="222" /></a></p>
<p>Define the time schedule and press okay. That’s it.</p>
<p><a rel="lightbox" href="http://teamzone.ch/wp-content/uploads/2009/02/clip-image004.jpg"  rel="lightbox[roadtrip]"><img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="clip_image004" src="http://teamzone.ch/wp-content/uploads/2009/02/clip-image004-thumb.jpg" border="0" alt="clip_image004" width="336" height="181" /></a></p>
<p>Now, you’re almost always up to date!</p>
]]></content:encoded>
			<wfw:commentRss>http://teamzone.ch/2009/02/03/schedule-cvs-synchronization-in-eclipse-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
