<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://www.zeroturnaround.com/wp-atom.php">
	<title type="text">ZeroTurnaround.com</title>
	<subtitle type="text">Improving Java Development</subtitle>

	<updated>2009-10-28T12:10:44Z</updated>
	<generator uri="http://wordpress.org/" version="2.8.4">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://www.zeroturnaround.com" />
	<id>http://www.zeroturnaround.com/feed/atom/</id>
	

			<link rel="self" href="http://feeds.feedburner.com/zeroturnaround" type="application/atom+xml" /><feedburner:emailServiceId>zeroturnaround</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
		<author>
			<name>Sander Sõnajalg</name>
						<uri>http://www.zeroturnaround.com</uri>
					</author>
		<title type="html"><![CDATA[Screencast: Speedy Struts 1 and Struts2 with JRebel]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/zeroturnaround/~3/uzyORfaq6FI/" />
		<id>http://www.zeroturnaround.com/?p=1869</id>
		<updated>2009-10-28T12:10:44Z</updated>
		<published>2009-10-27T13:23:22Z</published>
		<category scheme="http://www.zeroturnaround.com" term="blog" /><category scheme="http://www.zeroturnaround.com" term="news" />		<summary type="html"><![CDATA[On September 30th, 2009, Apache released Struts 2.1.8 for general availability.  Though we couldn&#8217;t find much info on the differences between 2.1.6 and 2.1.8, here&#8217;s what Musachy Barroso said about &#8220;Why web developers should choose Struts 2&#8243;, in his interview on InfoQ.
&#8220;Struts 2 is probably the most loosely-coupled framework available. Out of the box, many [...]]]></summary>
		<content type="html" xml:base="http://www.zeroturnaround.com/blog/screencast-speedy-struts-1-and-struts2-with-jrebel/">&lt;p&gt;On September 30th, 2009, &lt;a href="http://struts.apache.org/"&gt;Apache released Struts 2.1.8&lt;/a&gt; for general availability.  Though we couldn&amp;#8217;t find much info on the differences between 2.1.6 and 2.1.8, here&amp;#8217;s what Musachy Barroso said about &amp;#8220;Why web developers should choose Struts 2&amp;#8243;, in his &lt;a href="http://www.infoq.com/news/2009/02/Struts2-1"&gt;interview on InfoQ&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote class="pretty"&gt;&lt;p&gt;&amp;#8220;Struts 2 is probably the most loosely-coupled framework available. Out of the box, many features are usable with little or no customization and it is easy to learn. The same knowledge can then be applied to add plugins to override default behaviors. The loose coupling also allows business logic to be written with no knowledge of the existence of Struts. Despite this, Struts scales up really well and is currently powering some very high-traffic sites.&amp;#8221;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;We like the evolution of Struts, and wanted to do our part to help minimize the time between writing Struts code &amp;amp; seeing the changes, so with the release of JRebel 2.1, we are proud to present extended support for Struts 1.x &amp;amp; 2.x, with full support for reloading action mappings. Combined with JRebel&amp;#8217;s previously released features (&lt;a href="http://www.zeroturnaround.com/blog/java-ee-container-redeploy-restart-turnaround-report/"&gt;skipping redeploys&lt;/a&gt; by reloading changes to Java classes in the running application, and &lt;a href="http://www.zeroturnaround.com/blog/the-build-tool-report-turnaround-times-using-ant-maven-eclipse-intellij-and-netbeans/"&gt;skipping builds&lt;/a&gt; by mapping the project workspace to the deployed WARs or EARs), JRebel is now an even more potent time-saving tool for Struts 1 and Struts 2 users.&lt;/p&gt;
&lt;p&gt;See the screencast for a demonstration of coding with Struts 2 and JRebel:&lt;/p&gt;
&lt;p&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="570" height="457" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="src" value="http://www.youtube.com/v/90Q6K0xtD1w&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;embed type="application/x-shockwave-flash" width="570" height="457" src="http://www.youtube.com/v/90Q6K0xtD1w&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;re not familiar with JRebel, catch up in under 3 mins with this screencast, which shows other JRebel features, including support for the Spring framework (or take a look at the &lt;a href="http://www.zeroturnaround.com/jrebel/comparison/"&gt;feature list&lt;/a&gt;):&lt;/p&gt;
&lt;p&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="570" height="457" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="src" value="http://www.youtube.com/v/4JGGFCzspaY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;embed type="application/x-shockwave-flash" width="570" height="457" src="http://www.youtube.com/v/4JGGFCzspaY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;We&amp;#8217;re glad to see the success of the Struts 2 framework, and happy to support the community.  Did you know that on average there are more than 2 million project downloads of Struts per month, &lt;a href="http://people.apache.org/~vgritsenko/stats/projects/struts#Downloads-N1008F"&gt;since March of 2008&lt;/a&gt;?&lt;/p&gt;
&lt;img src="http://www.zeroturnaround.com/?ak_action=api_record_view&amp;id=1869&amp;type=feed" alt="" /&gt;&lt;img src="http://feeds.feedburner.com/~r/zeroturnaround/~4/uzyORfaq6FI" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.zeroturnaround.com/blog/screencast-speedy-struts-1-and-struts2-with-jrebel/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.zeroturnaround.com/blog/screencast-speedy-struts-1-and-struts2-with-jrebel/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.zeroturnaround.com/blog/screencast-speedy-struts-1-and-struts2-with-jrebel/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Jevgeni Kabanov</name>
						<uri>http://www.ekabanov.net</uri>
					</author>
		<title type="html"><![CDATA[The Build Tool Report: Turnaround Times using Ant, Maven, Eclipse, IntelliJ, and NetBeans]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/zeroturnaround/~3/JvrnUVpoDI4/" />
		<id>http://www.zeroturnaround.com/?p=1837</id>
		<updated>2009-10-21T16:05:29Z</updated>
		<published>2009-10-21T11:30:18Z</published>
		<category scheme="http://www.zeroturnaround.com" term="blog" /><category scheme="http://www.zeroturnaround.com" term="news" /><category scheme="http://www.zeroturnaround.com" term="Ant" /><category scheme="http://www.zeroturnaround.com" term="Build Tool" /><category scheme="http://www.zeroturnaround.com" term="eclipse" /><category scheme="http://www.zeroturnaround.com" term="IntelliJ" /><category scheme="http://www.zeroturnaround.com" term="JRebel" /><category scheme="http://www.zeroturnaround.com" term="Maven" /><category scheme="http://www.zeroturnaround.com" term="NetBeans" />		<summary type="html"><![CDATA[// // // 
The Build Tool Report: Turnaround Times using Ant, Maven, Eclipse, IntelliJ, and NetBeans
Some time ago we ran a survey asking a few questions about the build process, specifically the tools that are used to do incremental builds and how much time those builds take. We had over 600 responses, so now it’s [...]]]></summary>
		<content type="html" xml:base="http://www.zeroturnaround.com/blog/the-build-tool-report-turnaround-times-using-ant-maven-eclipse-intellij-and-netbeans/">&lt;p&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[
 var dzone_url = 'http://www.zeroturnaround.com/blog/the-build-tool-report-turnaround-times-using-ant-maven-eclipse-intellij-and-netbeans/';
// ]]&amp;gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[
 var dzone_title = 'The Build Tool Report: Comparing Ant, Maven, Eclipse, IntelliJ, and NetBeans wrt Incremental Builds';
// ]]&amp;gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[
 var dzone_style = '2';
// ]]&amp;gt;&lt;/script&gt;&lt;script src="http://widgets.dzone.com/links/widgets/zoneit.js"&gt;&lt;/script&gt;&lt;/p&gt;
&lt;h2&gt;The Build Tool Report: Turnaround Times using Ant, Maven, Eclipse, IntelliJ, and NetBeans&lt;/h2&gt;
&lt;p&gt;Some time ago we ran a survey asking a few questions about the build process, specifically the tools that are used to do incremental builds and how much time those builds take. We had over 600 responses, so now it’s time to count the results.&lt;/p&gt;
&lt;p&gt;This is the first time that we’ve published results on the incremental build process, so the information is more likely to serve as a guide than an authoritative information source.  That being said, the information is still quite interesting, and if it serves to start a conversation that improves the process of even one team, then we’re proud to have helped out. If you haven’t answered the 3-question survey yet, take two minutes and &lt;a href="https://spreadsheets.google.com:443/a/zeroturnaround.com/viewform?hl=en&amp;amp;formkey=dHlRT1dCb2xnUldpUzRUZ3hNNlBOdkE6MA.."&gt;go for it&lt;/a&gt; – and do let your community know about it &amp;#8211; as more answers trickle in we’ll update this post with the new data. If you’d like to play with the results on your own we‘ve provided all the data and our calculations in a handy Excel sheet that you can download &lt;a href="http://www.zeroturnaround.com/wp-content/uploads/2009/10/build-tools-report-updated.xlsx"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;The first question in the survey was “What build tool do you use for incremental builds on your largest current project?” The breakdown follows:&lt;/p&gt;
&lt;h3&gt;Chart 1: “Which build tool is used most often for incremental builds?”&lt;/h3&gt;
&lt;p&gt;&lt;img style="border: 0px initial initial;" title="chart1" src="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart1.png" alt="chart1" width="553" height="476" /&gt;&lt;br /&gt;
This does not include tools that scored less than 10 answers in the survey. Those are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Buildr&lt;/li&gt;
&lt;li&gt;Shell scripts&lt;/li&gt;
&lt;li&gt;javac&lt;/li&gt;
&lt;li&gt;Make&lt;/li&gt;
&lt;li&gt;NAnt&lt;/li&gt;
&lt;li&gt;Savant&lt;/li&gt;
&lt;li&gt;Hudson&lt;/li&gt;
&lt;li&gt;PHP&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Maven and Ant are responsible for over half of the incremental builds in the wild. It also seems that Maven has overtaken Ant by popularity, although you should take it with a grain of salt as the questions were not phrased for this purpose. Unfortunately I couldn’t find any external data to confirm or contradict these results. Please do let us know if you know of other surveys on this topic.&lt;/p&gt;
&lt;p&gt;The other half of incremental builds are done inside IDEs. Although some of those are just driving Ant or Maven inside the IDE, there is also a large number of developers that use the IDE as the primary build tool during development (we’ll analyze this in detail in the end of the report).&lt;/p&gt;
&lt;p&gt;It might be valuable to reiterate here that this is a poll where respondents are self-selecting, and therefore it may not accurately reflect the actual marketplace when it comes to determining market share.  Since we’re more interested in the incremental build process itself, that’s something we can live with.  That being said, there is a chance that people who have fast (or slow) builds may be more likely to complete a poll like this.  Since we’re not sure if this is serious enough to sway any results, we’ll just display the data, and let you decide.  So, while 53% of developers are using Ant or Maven for their incremental builds, everyone else uses their IDEs: Eclipse is dominating the IDE landscape with 32% , followed by IntelliJ IDEA at 10% and NetBeans at 5%.&lt;/p&gt;
&lt;p&gt;With that in mind, we asked, “How long does an incremental build take?”&lt;/p&gt;
&lt;h3&gt;Chart 2: “How long does an incremental build take?”&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart2.png"&gt;&lt;img class="alignnone size-full wp-image-1846" title="chart2" src="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart2.png" alt="chart2" width="553" height="494" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This is relatively good news. Nearly half of our respondents (44%) indicated that their incremental build process takes less than 30 seconds. 40% of respondents have incremental builds lasting from 1 to 3 minutes. Only 16% of incremental builds last over 4 minutes.&lt;/p&gt;
&lt;p&gt;The average length of a build is &lt;strong&gt;1.9 minutes&lt;/strong&gt; with the standard deviation of 2.8.&lt;/p&gt;
&lt;p&gt;To finish up, we asked, “In an hour of coding, how many times do you run an incremental build?”&lt;/p&gt;
&lt;h3&gt;Chart 3: “How often do Java developers run incremental builds?”&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart3.png"&gt;&lt;img class="alignnone size-full wp-image-1847" title="chart3" src="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart3.png" alt="chart3" width="553" height="494" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;A healthy 31% of respondents don’t have to run the build at all (e.g. it’s run automatically on save). The rest of the numbers are all over the place, so we’ll wait with the analysis until we can put them in context.&lt;/p&gt;
&lt;p&gt;The average number of incremental builds an hour is &lt;strong&gt;3.9 times&lt;/strong&gt;, with a standard deviation of 4.1.&lt;/p&gt;
&lt;p&gt;It’s time to crunch some data. We assigned numeric values to each of the intervals (e.g. “2.5″ for the “2-3″ interval) and multiplied the number of incremental builds an hour by the amount of time one incremental build takes (basically, Chart 2 times Chart 3), thus finding the approximate amount of time respondents spend building in each hour of development. This was done per respondent, so if someone said that their build takes 4-5 minutes and they build twice an hour, we’d see a result of 9 minutes per hour. We broke down the data into the following intervals:&lt;/p&gt;
&lt;h3&gt;Chart 4: “Time spent on incremental builds during an hour of coding”&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart4.png"&gt;&lt;img class="alignnone size-full wp-image-1848" title="chart4" src="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart4.png" alt="chart4" width="553" height="494" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;The average total time taken by incremental builds in an hour is exactly &lt;strong&gt;6 minutes&lt;/strong&gt;, but the standard deviation is 10.1, rendering this number unreliable. We can, however, divide the respondents in three quite well defined groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Less than 1 minute an hour. &lt;/strong&gt;34% of respondents basically &lt;strong&gt;don’t spend any time &lt;/strong&gt;on the incremental build process.&lt;strong&gt; &lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;1 to 5 minutes an hour. &lt;/strong&gt;34% of respondents spend a “reasonable” amount of time on incremental builds &amp;#8211; under 5 minutes an hour. This group spends an average of &lt;strong&gt;3 minutes an hour&lt;/strong&gt; on incremental builds, which corresponds to about &lt;strong&gt;5% of total development time&lt;/strong&gt;.&lt;strong&gt; &lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Over 5 minutes an hour.&lt;/strong&gt; 32% of respondents spend over 5 minutes an hour on incremental builds. The weighted average in this group is over &lt;strong&gt;13 minutes an hour&lt;/strong&gt;. This group of developers is spending about &lt;strong&gt;22% of their development time on incremental builds.&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Chart 5: “Time spent on incremental builds, per hour, by build tool”&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart5.png"&gt;&lt;img class="alignnone size-full wp-image-1849" title="chart5" src="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart5.png" alt="chart5" width="553" height="494" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;It is clear from this chart that Ant and Maven take significantly more time than IDE builds. Both take about&lt;strong&gt; 8 minutes an hour&lt;/strong&gt;, which corresponds to &lt;strong&gt;13% of total development time&lt;/strong&gt;. There seems to be little difference between the two, perhaps because the projects where you have to use Ant or Maven for incremental builds are large and complex.&lt;/p&gt;
&lt;p&gt;Eclipse is definitely the fastest with &lt;strong&gt;2.9 minutes an hour&lt;/strong&gt;, which corresponds to about &lt;strong&gt;5% of total development time&lt;/strong&gt;. Eclipse is the only IDE supporting true incremental build on save using a fast embedded compiler, so these results are expected. It is likely that the true number is even lower, as some of the respondents use Eclipse to launch the Ant or Maven builds (we’ll return to this with the next chart).&lt;/p&gt;
&lt;p&gt;IntelliJ IDEA falls in between with &lt;strong&gt;5.7 minutes an hour&lt;/strong&gt; and about &lt;strong&gt;10% of total development time&lt;/strong&gt;. It does not have true background compilation and often the IDE builds just launch Ant or Maven behind the scenes.&lt;/p&gt;
&lt;h3&gt;Chart 6: “Incremental build length breakdown per build tool”&lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart6.png"&gt;&lt;img class="alignnone size-full wp-image-1850" title="chart6" src="http://www.zeroturnaround.com/wp-content/uploads/2009/10/chart6.png" alt="chart6" width="553" height="594" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This final chart shows the proportion of respondents in one of the three groups we defined with Chart 4 broken down per build tool.&lt;/p&gt;
&lt;p&gt;Finally some things become clear. About 61% of Eclipse builds happen instantly (taking less than 1 minute per hour). We can assume that those are the respondents using compile-on-save, whereas the rest use Eclipse to launch Ant or Maven builds. Considering that 32% of respondents are using Eclipse (see Chart 1), this means that about &lt;strong&gt;20% of all of the respondents use Eclipse with compile-on-save &lt;/strong&gt;and thus benefit from the instant incremental builds.&lt;/p&gt;
&lt;p&gt;The breakdowns of Ant and Maven times are quite similar, with Maven being slightly slower. Moreover the breakdown for IntelliJ IDEA is also similar, supporting the hypotheses that IntelliJ IDEA builds launch Ant or Maven in the background. The proportion itself likely corresponds to the size and complexity of projects, with smaller ones building quickly and larger ones taking build time of over 5 minutes and hour.&lt;/p&gt;
&lt;p&gt;It is hard to draw any simple conclusions from this survey, as different groups have different problems, so instead let’s put together the most interesting and reliable numbers we got:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;56% of respondents&lt;/strong&gt; have builds that last over half a minute, each.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;20% of respondents &lt;/strong&gt;use Eclipse with compile-on-save&lt;strong&gt; &lt;/strong&gt;and thus benefit from the instant incremental builds.&lt;/li&gt;
&lt;li&gt;34% of respondents spend an average of &lt;strong&gt;3 minutes an hour&lt;/strong&gt; on incremental builds, which corresponds to about &lt;strong&gt;5% of total development time, or 1.5 weeks per year (40-hour weeks)&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;32% of respondents spend more than 5 minutes per hour on incremental builds.  Of the developers spending more than 5 mins per hour, &lt;strong&gt;13 minutes per hour&lt;/strong&gt; is the average amount of time spent.  13 mins per hour equals &lt;strong&gt;22% of total development time, or 6.5 weeks per year (40 hour workweeks).&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Weeks spent on incremental builds are calculated by assuming 48 work weeks per year (minus vacation) and an average of 5 hours of development time per day.&lt;/li&gt;
&lt;li&gt;Java developers spend &lt;strong&gt;1.5 to 6.5 work weeks a year&lt;/strong&gt; (with an average of &lt;strong&gt;3.8&lt;/strong&gt; &lt;strong&gt;work weeks,  or 152 hours, annually&lt;/strong&gt;) waiting for builds, &lt;strong&gt;unless&lt;/strong&gt; they are using Eclipse with compile-on-save.&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://www.zeroturnaround.com/?ak_action=api_record_view&amp;id=1837&amp;type=feed" alt="" /&gt;&lt;img src="http://feeds.feedburner.com/~r/zeroturnaround/~4/JvrnUVpoDI4" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.zeroturnaround.com/blog/the-build-tool-report-turnaround-times-using-ant-maven-eclipse-intellij-and-netbeans/#comments" thr:count="27" />
		<link rel="replies" type="application/atom+xml" href="http://www.zeroturnaround.com/blog/the-build-tool-report-turnaround-times-using-ant-maven-eclipse-intellij-and-netbeans/feed/atom/" thr:count="27" />
		<thr:total>27</thr:total>
	<feedburner:origLink>http://www.zeroturnaround.com/blog/the-build-tool-report-turnaround-times-using-ant-maven-eclipse-intellij-and-netbeans/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Jevgeni Kabanov</name>
						<uri>http://www.ekabanov.net</uri>
					</author>
		<title type="html"><![CDATA[Announcing JRebel 3.0 M1 &#8212; The Next Generation]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/zeroturnaround/~3/tVPOwJ9C_y4/" />
		<id>http://www.zeroturnaround.com/?p=1785</id>
		<updated>2009-10-15T14:34:02Z</updated>
		<published>2009-10-15T14:14:33Z</published>
		<category scheme="http://www.zeroturnaround.com" term="articles" /><category scheme="http://www.zeroturnaround.com" term="blog" /><category scheme="http://www.zeroturnaround.com" term="news" />		<summary type="html"><![CDATA[While finishing the polish on the 2.1 release we were also preparing for you a glance at what&#8217;s to come in the longer term. Without further ado, allow us to introduce the JRebel 3.0 M1 release features:

Support for adding static fields and changing enums. Previously when you added a static field to your class you&#8217;d [...]]]></summary>
		<content type="html" xml:base="http://www.zeroturnaround.com/blog/announcing-jrebel-3-0-m1-the-next-generation/">&lt;p&gt;While finishing the polish on the 2.1 release we were also preparing for you a glance at what&amp;#8217;s to come in the longer term. Without further ado, allow us to introduce the JRebel 3.0 M1 release features:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Support for adding static fields and changing enums.&lt;/strong&gt; Previously when you added a static field to your class you&amp;#8217;d see a discouraging warning in the console and get an exception when trying to access the field. Now JRebel will happily print &amp;#8220;Reinitialized class&amp;#8221; and your application will continue working as if nothing happened. To top it off you can also now change Java 1.5 enums in any way you like and they should just continue working. This feature is still a tad experimental, so please help us out to smooth it out!&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Full JSP &amp;lt;scriptlet&amp;gt; support.&lt;/strong&gt; Now when you change your Java code (e.g. add a method) it can be immediately used in the Java code snippets in the JSP.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;25%-30% less memory use.&lt;/strong&gt; It is not uncommon to need a lot of PermGen heap with JRebel enabled. Now we optimized the memory use and will continue to drive it down in the upcoming milestones.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No more classloader leaks.&lt;/strong&gt; JRebel no longer holds any references to class loaders a second longer than necessary. This should help to get less OutOfMemoryErrors on application redeploys with JRebel enabled.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There are also quite a few changes to the API that will enabled more features in the upcoming milestones. &lt;/p&gt;
&lt;p&gt;Note that since we don&amp;#8217;t charge for upgrades, it is not our goal to put all the cool features in the 3.0 release. Rather we&amp;#8217;ll continue to add features to the 2.x branch (expect at least a 2.2 release this year) and only put large or risky changes that require a lot of testing or feedback in the 3.x branch.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.zeroturnaround.com/jrebel/download/"&gt;Download&lt;/a&gt; the release&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://www.zeroturnaround.com/?ak_action=api_record_view&amp;id=1785&amp;type=feed" alt="" /&gt;&lt;img src="http://feeds.feedburner.com/~r/zeroturnaround/~4/tVPOwJ9C_y4" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.zeroturnaround.com/blog/announcing-jrebel-3-0-m1-the-next-generation/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://www.zeroturnaround.com/blog/announcing-jrebel-3-0-m1-the-next-generation/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://www.zeroturnaround.com/blog/announcing-jrebel-3-0-m1-the-next-generation/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Toomas Römer</name>
						<uri>http://www.zeroturnaround.com</uri>
					</author>
		<title type="html"><![CDATA[ZeroTurnaround&#8217;s OSS projects overview]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/zeroturnaround/~3/AqKHrzHW9zc/" />
		<id>http://www.zeroturnaround.com/?p=1433</id>
		<updated>2009-10-14T10:08:50Z</updated>
		<published>2009-10-14T10:08:50Z</published>
		<category scheme="http://www.zeroturnaround.com" term="blog" /><category scheme="http://www.zeroturnaround.com" term="news" />		<summary type="html"><![CDATA[This post serves as a quick introduction to the open source projects that we develop and host on our site. They are either accompanying QA software, integrations with different frameworks or our IDE plugins. All described projects are hosted at http://repos.zeroturnaround.com/svn/.
If you&#8217;ve written plugins that you would like us to host just contact support@zeroturnaround.com. If [...]]]></summary>
		<content type="html" xml:base="http://www.zeroturnaround.com/blog/zeroturnarounds-oss-projects-overview/">&lt;p&gt;This post serves as a quick introduction to the open source projects that we develop and host on our site. They are either accompanying QA software, integrations with different frameworks or our IDE plugins. All described projects are hosted at &lt;a href="http://repos.zeroturnaround.com/svn/"&gt;http://repos.zeroturnaround.com/svn/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;ve written plugins that you would like us to host just contact &lt;em&gt;support@zeroturnaround.com&lt;/em&gt;. If you have patches to current projects just let us know and we&amp;#8217;ll take a look and try to get them integrated.&lt;/p&gt;
&lt;h3&gt;jr-autotest/&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://files.zeroturnaround.com/wp-content/themes/zeroturnaround2.0/gfx/dot03.gif" alt="" /&gt; JRebel testing is not that simple. For example, say we want to test changing a protected field to a private static. We need to have a test that first compiles a source file with a protected field and then lets a JVM load it. Then we need to make the changes to the source, compile and make JRebel reload it. Then asserts follow :) It sounds easier said than done. This sub project hosts all the tests and a groovy script to control them all.&lt;/p&gt;
&lt;h3&gt;jr-servlettest/&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://files.zeroturnaround.com/wp-content/themes/zeroturnaround2.0/gfx/dot03.gif" alt="" /&gt; See jr-autotest and think of servlets. These tests run on arbitary containers and besides testing JRebel functionality it tests the integration with different containers. The control script this time makes requests to URLs and compares the output to some predefined output.&lt;/p&gt;
&lt;h3&gt;jr-autotest-hudsonplugin/&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://files.zeroturnaround.com/wp-content/themes/zeroturnaround2.0/gfx/dot03.gif" alt="" /&gt; Legacy. A year ago we were so dumb that we wrote a Hudson plugin that was able to read the output of the ANT script of the autotest and produce nice red/green buttons about which test failed/passed. Now this is quite obsolete as we have moved on to JUnit output instead.&lt;/p&gt;
&lt;h3&gt;jr-ide-support/&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://files.zeroturnaround.com/wp-content/themes/zeroturnaround2.0/gfx/dot03.gif" alt="" /&gt; &lt;strong&gt;idea-old-plugin&lt;/strong&gt; &amp;#8211; source code for the &lt;a href="http://plugins.intellij.net/plugin/?id=1699"&gt;Intellij debugger plugin for IDEA ver &amp;lt; 8&lt;/a&gt;&lt;br /&gt;
&lt;img src="http://files.zeroturnaround.com/wp-content/themes/zeroturnaround2.0/gfx/dot03.gif" alt="" /&gt; &lt;strong&gt;idea-plugin&lt;/strong&gt; &amp;#8211; our current up-to date &lt;a href="http://plugins.intellij.net/plugin/?id=4441"&gt;plugin for IDEA 8+&lt;/a&gt;&lt;br /&gt;
&lt;img src="http://files.zeroturnaround.com/wp-content/themes/zeroturnaround2.0/gfx/dot03.gif" alt="" /&gt; &lt;strong&gt;eclipse&lt;/strong&gt; &amp;#8211; all eclipse plugins/features&lt;br /&gt;
&lt;img src="http://files.zeroturnaround.com/wp-content/themes/zeroturnaround2.0/gfx/dot03.gif" alt="" /&gt; &lt;strong&gt;nb-6.5-plugin&lt;/strong&gt; &amp;#8211; NetBeans 6.5 specific plugin&lt;br /&gt;
&lt;img src="http://files.zeroturnaround.com/wp-content/themes/zeroturnaround2.0/gfx/dot03.gif" alt="" /&gt; &lt;strong&gt;nb-6.7-plugin&lt;/strong&gt; &amp;#8211; NetBeans 6.7 specific plugin&lt;/p&gt;
&lt;h3&gt;jr-javassist/&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://files.zeroturnaround.com/wp-content/themes/zeroturnaround2.0/gfx/dot03.gif" alt="" /&gt; We bundle &lt;a href="http://www.csg.is.titech.ac.jp/~chiba/javassist/"&gt;javassist&lt;/a&gt; to javarebel.jar. This is so that we don&amp;#8217;t have it in the classpath as an external dependency. This project generates a javassist archive for us where all the classes are in packages with a predefined prefix.&lt;/p&gt;
&lt;h3&gt;jr-root/&lt;/h3&gt;
&lt;p&gt;&lt;img src="http://files.zeroturnaround.com/wp-content/themes/zeroturnaround2.0/gfx/dot03.gif" alt="" /&gt; Here are all our integrations with different frameworks and our plugin architecture. You can see the whole list under &lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/"&gt;trunk&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;As of this post, we have integrations with:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/aspectj-jr-plugin/"&gt;aspectj-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/guice-jr-plugin/"&gt;guice-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/jboss-jr-plugin/"&gt;jboss-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/jr-integration/"&gt;jr-integration/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/jr-sdk/"&gt;jr-sdk/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/jr-servlet-integration/"&gt;jr-servlet-integration/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/jr-utils/"&gt;jr-utils/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/jsf-jr-plugin/"&gt;jsf-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/spring-jr-plugin/"&gt;spring-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/spring-mvc-jr-plugin/"&gt;spring-mvc-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/struts1-jr-plugin/"&gt;struts1-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/struts2-jr-plugin/"&gt;struts2-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/tapestry4-jr-plugin/"&gt;tapestry4-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/velocity-jr-plugin/"&gt;velocity-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://repos.zeroturnaround.com/svn/jr-root/trunk/wicket-jr-plugin/"&gt;wicket-jr-plugin/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://www.zeroturnaround.com/?ak_action=api_record_view&amp;id=1433&amp;type=feed" alt="" /&gt;&lt;img src="http://feeds.feedburner.com/~r/zeroturnaround/~4/AqKHrzHW9zc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.zeroturnaround.com/blog/zeroturnarounds-oss-projects-overview/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://www.zeroturnaround.com/blog/zeroturnarounds-oss-projects-overview/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://www.zeroturnaround.com/blog/zeroturnarounds-oss-projects-overview/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Jevgeni Kabanov</name>
						<uri>http://www.ekabanov.net</uri>
					</author>
		<title type="html"><![CDATA[JRebel 2.1 Released &#8211; Strolling with Struts]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/zeroturnaround/~3/keqsM58oOr0/" />
		<id>http://www.zeroturnaround.com/?p=1715</id>
		<updated>2009-10-06T11:46:49Z</updated>
		<published>2009-10-06T11:35:12Z</published>
		<category scheme="http://www.zeroturnaround.com" term="blog" />		<summary type="html"><![CDATA[We are proud to present JRebel 2.1, the &#8220;Struts&#8221; edition. The main features of this release are the reworked Struts 2.x plugin and the brand new Struts 1.x plugin that reload changes to Struts action mappings on-the-fly both from XML and Java 5 annotations. Developing Struts applications with JRebel is now easier than ever, as [...]]]></summary>
		<content type="html" xml:base="http://www.zeroturnaround.com/blog/jrebel-2-1-released-strolling-with-struts/">&lt;p&gt;We are proud to present JRebel 2.1, the &amp;#8220;Struts&amp;#8221; edition. The main features of this release are the reworked Struts 2.x plugin and the brand new Struts 1.x plugin that reload changes to Struts action mappings on-the-fly both from XML and Java 5 annotations. Developing Struts applications with JRebel is now easier than ever, as no restarts are necessary anymore.&lt;/p&gt;
&lt;p&gt;This release also includes support for GlassFish v3 and the Felix OSGi container it is based on. According to this survey developers spend 13% of development time or 4.3 full-time weeks every year redeploying on the GlassFish v2 container. GlassFish v3 boasts improved startup time, but with JRebel you can take the cost of making a change down to zero.&lt;/p&gt;
&lt;p&gt;Starting with this release JRebel will report some anonymous usage statistics to our servers (including jvm name and version, container name and version, frameworks you use and redeploy stats). You can see all of the data in the jrebel.info text file created next to jrebel.jar This data will be used to help us prioritize development, but if you wouldn&amp;#8217;t like to send it please add -Drebel.usage_reporting=false to the JVM command line.&lt;/p&gt;
&lt;p&gt;Finally this release includes a multitude of fixes that were found since the 2.0.3 release. A lot of them concern the Spring plugin, though a few bugs were also found in the JRebel core.&lt;/p&gt;
&lt;p&gt;BIG NOTE: We have renamed &amp;#8220;javarebel.jar&amp;#8221; to &amp;#8220;jrebel.jar&amp;#8221; and you&amp;#8217;ll have to update your installation command line accordingly.&lt;/p&gt;
&lt;p&gt;Proceed to &lt;a href="/jrebel/download/"&gt;download&lt;/a&gt; or view the &lt;a href="/javarebel-20x-changelog/"&gt;full changelog&lt;/a&gt;.&lt;/p&gt;
&lt;img src="http://www.zeroturnaround.com/?ak_action=api_record_view&amp;id=1715&amp;type=feed" alt="" /&gt;&lt;img src="http://feeds.feedburner.com/~r/zeroturnaround/~4/keqsM58oOr0" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.zeroturnaround.com/blog/jrebel-2-1-released-strolling-with-struts/#comments" thr:count="3" />
		<link rel="replies" type="application/atom+xml" href="http://www.zeroturnaround.com/blog/jrebel-2-1-released-strolling-with-struts/feed/atom/" thr:count="3" />
		<thr:total>3</thr:total>
	<feedburner:origLink>http://www.zeroturnaround.com/blog/jrebel-2-1-released-strolling-with-struts/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Booth</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[How to install and use JRebel with Glassfish and Eclipse IDE]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/zeroturnaround/~3/g1UxWaajLwU/" />
		<id>http://www.zeroturnaround.com/?p=1710</id>
		<updated>2009-10-06T10:58:27Z</updated>
		<published>2009-10-06T10:57:26Z</published>
		<category scheme="http://www.zeroturnaround.com" term="blog" /><category scheme="http://www.zeroturnaround.com" term="eclipse" /><category scheme="http://www.zeroturnaround.com" term="Glassfish" /><category scheme="http://www.zeroturnaround.com" term="install" /><category scheme="http://www.zeroturnaround.com" term="javarebel" /><category scheme="http://www.zeroturnaround.com" term="JRebel" />		<summary type="html"><![CDATA[How to install and use JRebel (formerly JavaRebel) in GlassFish with Eclipse IDE
In the recently published Java EE Container Restart &#38; Redeploy Report, the GlassFish v2 application container was the best of the fully fledged Java EE containers in the terms of time spent redeploying. That&#8217;s the good news. The not so good news is [...]]]></summary>
		<content type="html" xml:base="http://www.zeroturnaround.com/blog/how-to-install-and-use-jrebel-with-glassfish-and-eclipse-ide/">&lt;h2&gt;How to install and use JRebel (formerly JavaRebel) in GlassFish with Eclipse IDE&lt;/h2&gt;
&lt;p&gt;In the recently published &lt;a href="http://www.zeroturnaround.com/blog/java-ee-container-heaven-hell-survey-results/"&gt;Java EE Container Restart &amp;amp; Redeploy Report,&lt;/a&gt; the GlassFish v2 application container was the best of the fully fledged Java EE containers in the terms of time spent redeploying. That&amp;#8217;s the good news. The not so good news is that on average respondents report spending 14% of their coding time waiting for server redeploys/restarts. That&amp;#8217;s just over 170 hours annually, per developer &amp;#8211; approximately 4.3 full weeks of development time. JRebel eliminates the need to redeploy in about 80% of redeploy situations &amp;#8211; and it&amp;#8217;s easy to get started.  This tutorial explains how to install and use it step-by-step.&lt;/p&gt;
&lt;p&gt;Here we assume that you are using Eclipse 3.x with GlassFish v2. Most of the steps will be applicable to other versions as well, but it may look different from the screenshots included.&lt;/p&gt;
&lt;p&gt;NOTE: Although GlassFish is tightly integrated with NetBeans, the JRebel support for that IDE is in Beta at the moment &amp;#8211; for now, we recommend using Eclipse or IntelliJ IDEA instead. We&amp;#8217;ll make sure to announce when better NetBeans support is available (it&amp;#8217;s coming soon).&lt;/p&gt;
&lt;p&gt;First, take a quick look at how coding looks when using JRebel (&lt;a href="http://www.zeroturnaround.com/blog/community-renames-javarebel-to-jrebel/"&gt;formerly JavaRebel&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="570" height="457" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="src" value="http://www.youtube.com/v/4JGGFCzspaY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;embed type="application/x-shockwave-flash" width="570" height="457" src="http://www.youtube.com/v/4JGGFCzspaY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;Contents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1"&gt;STEP 1: Install JRebel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2"&gt;STEP 2: Installing JRebel Eclipse IDE plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3"&gt;STEP 3: Make a rebel.xml for your application&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#4"&gt;STEP 4: Configuring the Eclipse WTP IDE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#5"&gt;STEP 5: Configuring Eclipse IDE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#6"&gt;STEP 6: Configuring GlassFish&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#7"&gt;STEP 7: Success!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a name="1"&gt;&lt;/a&gt;STEP 1: Install JRebel&lt;/h3&gt;
&lt;p&gt;The latest stable version of JRebel can be downloaded &lt;a href="http://zeroturnaround.com/releases/standard"&gt;here&lt;/a&gt;. Unpack it to a directory of your choice.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1001" title="2009-07-03_124429" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_124429.png" alt="2009-07-03_124429" width="455" height="354" /&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a name="2"&gt;&lt;/a&gt;STEP 2: Installing JRebel Eclipse IDE plugin&lt;/h3&gt;
&lt;p&gt;The JRebel Eclipse IDE plugin was introduced with JRebel 2.0 and makes configuring and using JRebel considerably easier. You can install the plugin by going to &lt;strong&gt;Help » Software updates » Available software » Add site&lt;/strong&gt; and use the &lt;a href="http://www.zeroturnaround.com/update-site/"&gt;http://www.zeroturnaround.com/update-site/&lt;/a&gt; URL as the update site.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1152" title="2009-07-15_142449" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_142449.png" alt="2009-07-15_142449" width="512" height="375" /&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a name="3"&gt;&lt;/a&gt;STEP 3: Make a rebel.xml for your application&lt;/h3&gt;
&lt;p&gt;In order to do it’s magic, JRebel needs to know where your classes and resources are. We’ll use a rebel.xml configuration file to tell it. This is mandatory when you deploy your app as a WAR/EAR. You’ll need to have one rebel.xml file &lt;strong&gt;per module&lt;/strong&gt;. This includes both web and EJB modules. The rebel.xml configuration file should be placed in your WEB-INF/classes directory in the case of a web module and in the jar root in the case of an ejb module. &lt;span style="color: #000000;"&gt;Put it&lt;/span&gt; in the root of a source or resource folder in your project (the same place where the .properties files are).&lt;/p&gt;
&lt;p&gt;If you use Maven you can use the JRebel Maven plugin that will generate the rebel.xml in accordance with the module pom.xml as described in the &lt;a href="../jrebel/configuration/maven/"&gt;Maven Plugin configuration manual&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In 99% of cases, people tend to use one module per project. In these cases, the JRebel Eclipse IDE plugin can generate the rebel.xml file for you, on a per project basis. If your project is one of the exceptions, edit the file manually as described in the &lt;a href="../blog/javarebel/installation/#2"&gt;Installation manual&lt;/a&gt;, otherwise generate the rebel.xml like this:&lt;/p&gt;
&lt;p&gt;Click on your project and pick &lt;strong&gt;Generate rebel.xml&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1159" title="2009-07-15_143501" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_143501.png" alt="2009-07-15_143501" width="390" height="430" /&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a name="4"&gt;&lt;/a&gt;STEP 4: Configuring the Eclipse WTP IDE&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;You may skip this step if you run GlassFish outside of the Eclipse IDE.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Open the &lt;strong&gt;Servers View&lt;/strong&gt; and double click the &lt;strong&gt;GlassFish v2&lt;/strong&gt; that your application is deployed to (if you don&amp;#8217;t see the Servers View go to &lt;strong&gt;Window » Show View » Server&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1146" title="2009-07-15_140106" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_140106.png" alt="2009-07-15_140106" width="486" height="237" /&gt;&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;Publishing &lt;/strong&gt;and choose &lt;strong&gt;Never publish automatically&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1145" title="2009-07-15_135824" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_135824.png" alt="2009-07-15_135824" width="436" height="124" /&gt;&lt;/p&gt;
&lt;p&gt;It may seem wrong to disable automatic publishing, but as JRebel will take care of updates from now on it will just slow you down.&lt;/p&gt;
&lt;h3 style="font-size: 1.17em;"&gt;&lt;a name="5"&gt;&lt;/a&gt;STEP 5: Configuring Eclipse IDE&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Window » Preferences &lt;/strong&gt;and from there to &lt;strong&gt;Java » Debug » Step Filtering&lt;/strong&gt;. Check &lt;strong&gt;Use Step Filters&lt;/strong&gt; and &lt;strong&gt;Filter synthetic methods &lt;/strong&gt;and &lt;strong&gt;Step through filters&lt;/strong&gt;. Now check all the default filters and use the &lt;strong&gt;Add Filter&lt;/strong&gt; button to add &lt;strong&gt;com.zeroturnaround.*&lt;/strong&gt; and &lt;strong&gt;org.zeroturnaround.*&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1022" title="2009-07-03_143321" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_143321.png" alt="2009-07-03_143321" width="440" height="508" /&gt;&lt;/p&gt;
&lt;p&gt;Now go to &lt;strong&gt;Project » Build&lt;/strong&gt; automatically and make sure it is checked.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1034" title="2009-07-03_144612" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_144612.png" alt="2009-07-03_144612" width="368" height="273" /&gt;&lt;/p&gt;
&lt;h3 style="font-size: 1.17em;"&gt;&lt;a name="6"&gt;&lt;/a&gt;STEP 6: Configuring GlassFish&lt;/h3&gt;
&lt;p&gt;Start the GlassFish server and open the &lt;strong&gt;Admin Console&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1147" title="2009-07-15_140432" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_140432.png" alt="2009-07-15_140432" width="610" height="157" /&gt;&lt;/p&gt;
&lt;p&gt;In the &lt;strong&gt;Administration Console &lt;span style="font-weight: normal;"&gt;o&lt;/span&gt;&lt;span style="font-weight: normal; "&gt;pen &lt;/span&gt;Application Server » JVM Settings » JVM Options &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1148" title="2009-07-15_140933" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_140933.png" alt="2009-07-15_140933" width="550" height="434" /&gt;&lt;/p&gt;
&lt;p&gt;Use the &lt;strong&gt;Add JVM Option&lt;/strong&gt; button to insert the following two new options:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;-noverify&lt;/li&gt;
&lt;li&gt;-javaagent:%REBEL_HOME%\javarebel.jar&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;NB! &lt;/strong&gt;Unfortunately GlassFish will not expand the environment variable (even if you define it) so you have to substitute %REBEL_HOME% with the &lt;strong&gt;actual path&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1149" title="2009-07-15_141946" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_141946.png" alt="2009-07-15_141946" width="474" height="129" /&gt;&lt;/p&gt;
&lt;p&gt;Press  &lt;strong&gt;Save &lt;/strong&gt;and &lt;strong&gt;restart &lt;/strong&gt;the server.&lt;/p&gt;
&lt;h3&gt;&lt;a name="7"&gt;&lt;/a&gt;STEP 7:  Success!&lt;/h3&gt;
&lt;p&gt;To check that the installation was successful access a page that uses a class, change that class in the IDE, press &lt;strong&gt;Save&lt;/strong&gt;, access the page again and look for the following message in the console:&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1150" title="2009-07-15_142301" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_142301.png" alt="2009-07-15_142301" width="536" height="203" /&gt;&lt;/p&gt;
&lt;p&gt;Now that you’re up and running, it’s time to enjoy coding without the need to redeploy. If you have any specific questions JRebel, the &lt;a href="../forum/"&gt;Forum&lt;/a&gt; is the best place to ask, so that other people get to hear the answer as well. Otherwise, you can contact us at support@zeroturnaround.com.&lt;/p&gt;
&lt;p&gt;If you like what you see, please give us a quick mention on your blog or twitter (you can even &lt;a href="http://twitter.com/javarebel"&gt;follow us&lt;/a&gt; here).&lt;/p&gt;
&lt;p&gt;Have a great day!&lt;/p&gt;
&lt;p&gt;Find out more:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="../blog/blog/eclipse-plugin-tutorial/"&gt;Eclipse Plugin Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../blog/javarebel/installation/"&gt;Installation manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../blog/javarebel/configuration/"&gt;Configuration manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../jrebel/configuration/maven/"&gt;&lt;span style="text-decoration: none;"&gt;Maven Plugin configuration manual&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://www.zeroturnaround.com/?ak_action=api_record_view&amp;id=1710&amp;type=feed" alt="" /&gt;&lt;img src="http://feeds.feedburner.com/~r/zeroturnaround/~4/g1UxWaajLwU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.zeroturnaround.com/blog/how-to-install-and-use-jrebel-with-glassfish-and-eclipse-ide/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://www.zeroturnaround.com/blog/how-to-install-and-use-jrebel-with-glassfish-and-eclipse-ide/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://www.zeroturnaround.com/blog/how-to-install-and-use-jrebel-with-glassfish-and-eclipse-ide/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Booth</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[How to Install and Use JRebel with WebLogic and Eclipse]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/zeroturnaround/~3/Bv35b_sLQsQ/" />
		<id>http://www.zeroturnaround.com/?p=1684</id>
		<updated>2009-09-30T10:07:24Z</updated>
		<published>2009-09-30T10:07:24Z</published>
		<category scheme="http://www.zeroturnaround.com" term="blog" />		<summary type="html"><![CDATA[How to install and use JRebel in WebLogic with Eclipse IDE
In a recently conducted survey (with 1100+ respondents),  WebLogic users estimated spending approximately 21% of all their coding time on the redeployment process.  To extrapolate a bit, that&#8217;s ~13 minutes per hour of coding, adding up to ~256 hours or 6.4 full work weeks annually.  [...]]]></summary>
		<content type="html" xml:base="http://www.zeroturnaround.com/blog/how-to-install-and-use-jrebel-with-weblogic-and-eclipse/">&lt;h2 style="font-size: 1.5em;"&gt;How to install and use JRebel in WebLogic with Eclipse IDE&lt;/h2&gt;
&lt;p&gt;In a &lt;a href="http://www.zeroturnaround.com/blog/java-ee-container-redeploy-restart-turnaround-report/"&gt;recently conducted survey&lt;/a&gt; (with 1100+ respondents),  WebLogic users estimated spending approximately 21% of all their coding time on the redeployment process.  To extrapolate a bit, that&amp;#8217;s ~13 minutes per hour of coding, adding up to ~256 hours or 6.4 full work weeks annually.  JRebel reduces this time by 80%, so it&amp;#8217;s worth taking a few minutes to try it out.  In this tutorial we explain how to install and use it step-by-step.&lt;/p&gt;
&lt;p&gt;First, take a quick look at how coding looks when using JRebel (&lt;a href="http://www.zeroturnaround.com/blog/community-renames-javarebel-to-jrebel/"&gt;formerly JavaRebel&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="570" height="457" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="src" value="http://www.youtube.com/v/4JGGFCzspaY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;embed type="application/x-shockwave-flash" width="570" height="457" src="http://www.youtube.com/v/4JGGFCzspaY&amp;amp;hl=en&amp;amp;fs=1&amp;amp;color1=0x234900&amp;amp;color2=0x4e9e00" allowscriptaccess="always" allowfullscreen="true"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;This tutorial assumes that you are using Eclipse 3.x (with &lt;a href="http://www.oracle.com/tools/enterprise-eclipse-pack.html"&gt;Oracle Enterprise Pack for Eclipse installed&lt;/a&gt;) with WebLogic 9.x or later. Most of the steps will be applicable to other versions as well, but it may look different from the screenshots included.&lt;/p&gt;
&lt;p&gt;Contents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1"&gt;STEP 1: Install JRebel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2"&gt;STEP 2: Installing JRebel Eclipse IDE plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3"&gt;STEP 3: Make a rebel.xml for your application&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#4"&gt;STEP 4: Configuring the Eclipse WTP IDE&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#4a"&gt;Configuring the Eclipse WTP IDE workaround&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="#5"&gt;STEP 5: Configuring Eclipse IDE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#6"&gt;STEP 6: Success!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a name="1"&gt;&lt;/a&gt;STEP 1: Install JRebel&lt;/h3&gt;
&lt;p&gt;The latest stable version of JRebel can be downloaded &lt;a href="http://zeroturnaround.com/releases/standard"&gt;here&lt;/a&gt;. Unpack it to a directory of your choice.&lt;/p&gt;
&lt;p&gt;&lt;img style="border: 0px initial initial;" title="2009-07-03_124429" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_124429.png" alt="2009-07-03_124429" width="455" height="354" /&gt;&lt;/p&gt;
&lt;h3 style="font-size: 1.17em;"&gt;&lt;a name="2"&gt;&lt;/a&gt;STEP 2: Installing JRebel Eclipse IDE plugin&lt;/h3&gt;
&lt;p&gt;The JRebel Eclipse IDE plugin was introduced with JRebel 2.0 and makes configuring and using JRebel considerably easier. You can install the plugin by going to &lt;strong&gt;Help » Software updates » Available software » Add site&lt;/strong&gt; and use the &lt;a href="http://www.zeroturnaround.com/update-site/"&gt;http://www.zeroturnaround.com/update-site/&lt;/a&gt; URL as the update site.&lt;/p&gt;
&lt;p&gt;&lt;img style="border: 0px initial initial;" title="2009-07-15_142449" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_142449.png" alt="2009-07-15_142449" width="512" height="375" /&gt;&lt;/p&gt;
&lt;h3 style="font-size: 1.17em;"&gt;&lt;a name="3"&gt;&lt;/a&gt;STEP 3: Make a rebel.xml for your application&lt;/h3&gt;
&lt;p&gt;In order to do it’s magic, JRebel needs to know where your classes and resources are. We’ll use a rebel.xml configuration file to tell it. This is mandatory when you deploy your app as a WAR/EAR. You’ll need to have one rebel.xml file &lt;strong&gt;per module&lt;/strong&gt;. This includes both web and EJB modules. The rebel.xml configuration file should be placed in your WEB-INF/classes directory in the case of a web module and in the jar root in the case of an ejb module. &lt;span style="color: #000000;"&gt;Put it&lt;/span&gt; in the root of a source or resource folder in your project (the same place where the .properties files are).&lt;/p&gt;
&lt;p&gt;If you use Maven you can use the JRebel Maven plugin that will generate the rebel.xml in accordance with the module pom.xml as described in the &lt;a href="http://www.zeroturnaround.com/jrebel/configuration/maven/"&gt;Maven Plugin configuration manual&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In 99% of cases, people tend to use one module per project. In these cases, the JRebel Eclipse IDE plugin can generate the rebel.xml file for you, on a per project basis. If your project is one of the exceptions, edit the file manually as described in the &lt;a href="../javarebel/installation/#2"&gt;Installation manual&lt;/a&gt;, otherwise generate the rebel.xml like this:&lt;/p&gt;
&lt;p&gt;Click on your project and pick &lt;strong&gt;Generate rebel.xml&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img style="border: 0px initial initial;" title="2009-07-15_143501" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_143501.png" alt="2009-07-15_143501" width="390" height="430" /&gt;&lt;/p&gt;
&lt;h3 style="font-size: 1.17em;"&gt;&lt;a name="4"&gt;&lt;/a&gt;STEP 4: Configuring the Eclipse WTP IDE&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;You may skip this step if you run Weblogic outside of the Eclipse IDE.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Open the &lt;strong&gt;Servers View&lt;/strong&gt; and double click the &lt;strong&gt;BEA WebLogic Server&lt;/strong&gt; that your application is deployed to (if you don&amp;#8217;t see the Servers View go to &lt;strong&gt;Window » Show View » Server&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1186" title="Eclipse Weblogic Server" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/eclipseServersWeblogic.png" alt="Eclipse Weblogic Server" width="420" height="149" /&gt;&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;Publishing &lt;/strong&gt;and choose &lt;strong&gt;Never publish automatically&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1162" title="2009-07-15_144654" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_144654.png" alt="2009-07-15_144654" width="467" height="253" /&gt;&lt;/p&gt;
&lt;p&gt;It may seem wrong to disable automatic publishing, but as JRebel will take care of updates from now on, it would just slow you down.&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;JRebel Integration&lt;/strong&gt; and check &lt;strong&gt;Enable JRebel agent&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1164" title="2009-07-15_145028" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-15_145028.png" alt="2009-07-15_145028" width="464" height="111" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;NB! With the current version of the Eclipse JRebel plugin checking the checkbox does NOT WORK. See the workaround in the next step. &lt;/strong&gt;&lt;/p&gt;
&lt;h3 style="font-size: 1.17em;"&gt;&lt;a name="4a"&gt;&lt;/a&gt;&lt;strong&gt;STEP 4a: Configuring the Eclipse WTP IDE workaround&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;Until we update our JRebel Eclipse plugin you have to manually enable JRebel for the Weblogic Server. You would need to manually edit the startup script of the server. Luckily it is quite easy and the startup script can be opened for editing from the server view from the last step.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1187" title="Eclipse Weblogic edit server startup-script" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/eclipseWeblogicEdit.png" alt="Eclipse Weblogic edit server startup-script" width="580" height="146" /&gt;&lt;/p&gt;
&lt;p&gt;A text file will open. You will need to copy the following line as the first line of the file&lt;/p&gt;
&lt;div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 2653px; width: 1px; height: 1px;"&gt;set JAVA_OPTIONS=-noverify -javaagent:C:\javarebel.jar %JAVA_OPTIONS%&lt;/div&gt;
&lt;p&gt;set JAVA_OPTIONS=-noverify -javaagent:C:\javarebel.jar %JAVA_OPTIONS%&lt;/p&gt;
&lt;p&gt;Make sure to change the C:\javarebel.jar to the correct location.&lt;/p&gt;
&lt;h3&gt;&lt;a name="5"&gt;&lt;/a&gt;STEP 5: Configuring Eclipse IDE&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Window » Preferences &lt;/strong&gt;and from there to &lt;strong&gt;Java » Debug » Step Filtering&lt;/strong&gt;. Check &lt;strong&gt;Use Step Filters&lt;/strong&gt; and &lt;strong&gt;Filter synthetic methods&lt;/strong&gt;and &lt;strong&gt;Step through filters&lt;/strong&gt;. Now check all the default filters and use the &lt;strong&gt;Add Filter&lt;/strong&gt; button to add &lt;strong&gt;com.zeroturnaround.*&lt;/strong&gt; and&lt;strong&gt;org.zeroturnaround.*&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img style="border: 0px initial initial;" title="2009-07-03_143321" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_143321.png" alt="2009-07-03_143321" width="440" height="508" /&gt;&lt;/p&gt;
&lt;p&gt;Now go to &lt;strong&gt;Project » Build&lt;/strong&gt; automatically and make sure it is checked.&lt;/p&gt;
&lt;p&gt;&lt;img style="border: 0px initial initial;" title="2009-07-03_144612" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_144612.png" alt="2009-07-03_144612" width="368" height="273" /&gt;&lt;/p&gt;
&lt;h3 style="font-size: 1.17em;"&gt;&lt;a name="6"&gt;&lt;/a&gt;STEP 6: Success!&lt;/h3&gt;
&lt;p&gt;To check that the installation was successful access a page that uses a class, change that class in the IDE, press &lt;strong&gt;Save&lt;/strong&gt;, access the page again and look for the following message in the console:&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1190" title="Eclipse Weblogic Success" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/eclipseWeblogicSuccess1.png" alt="Eclipse Weblogic Success" width="650" height="166" /&gt;&lt;/p&gt;
&lt;p&gt;Now that you’re up and running, it’s time to enjoy coding without the need to redeploy. If you have any specific questions JRebel, the &lt;a href="http://www.zeroturnaround.com/forum/"&gt;Forum&lt;/a&gt; is the best place to ask, so that other people get to hear the answer as well. Otherwise, you can contact us at support@zeroturnaround.com.&lt;/p&gt;
&lt;p&gt;If you like what you see, please give us a quick mention on your blog or twitter (you can even &lt;a href="http://twitter.com/javarebel"&gt;follow us&lt;/a&gt; here).&lt;/p&gt;
&lt;p&gt;Have a great day!&lt;/p&gt;
&lt;p&gt;Find out more:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="../blog/eclipse-plugin-tutorial/"&gt;Eclipse Plugin Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../javarebel/installation/"&gt;Installation manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="../javarebel/configuration/"&gt;Configuration manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.zeroturnaround.com/jrebel/configuration/maven/"&gt;&lt;span style="text-decoration: none;"&gt;Maven Plugin configuration manual&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://www.zeroturnaround.com/?ak_action=api_record_view&amp;id=1684&amp;type=feed" alt="" /&gt;&lt;img src="http://feeds.feedburner.com/~r/zeroturnaround/~4/Bv35b_sLQsQ" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.zeroturnaround.com/blog/how-to-install-and-use-jrebel-with-weblogic-and-eclipse/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://www.zeroturnaround.com/blog/how-to-install-and-use-jrebel-with-weblogic-and-eclipse/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://www.zeroturnaround.com/blog/how-to-install-and-use-jrebel-with-weblogic-and-eclipse/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Toomas Römer</name>
						<uri>http://www.zeroturnaround.com</uri>
					</author>
		<title type="html"><![CDATA[How to install and use JRebel in IBM WebSphere with Rational Application Developer or Eclipse]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/zeroturnaround/~3/5TbtEL8XZDI/" />
		<id>http://www.zeroturnaround.com/?p=1643</id>
		<updated>2009-09-24T09:22:09Z</updated>
		<published>2009-09-23T09:11:03Z</published>
		<category scheme="http://www.zeroturnaround.com" term="articles" /><category scheme="http://www.zeroturnaround.com" term="blog" /><category scheme="http://www.zeroturnaround.com" term="news" />		<summary type="html"><![CDATA[The IBM WebSphere application container features one of the longest startup and redeploy times in J2EE development. In a survey we conducted (with 1100+ developer-respondents), WebSphere users estimated spending approximately 23% of their coding time (approximately 276 hours per year &#8212; or 6.9 full, 40-hour workweeks) waiting for applications to redeploy. JRebel eliminates 80% of [...]]]></summary>
		<content type="html" xml:base="http://www.zeroturnaround.com/blog/how-to-install-and-use-javarebel-in-ibm-websphere-with-rational-application-developer-or-eclipse/">&lt;p&gt;The IBM WebSphere application container features one of the longest startup and redeploy times in J2EE development. In a &lt;a href="http://www.zeroturnaround.com/blog/java-ee-container-redeploy-restart-turnaround-report/"&gt;survey we conducted&lt;/a&gt; (with 1100+ developer-respondents), WebSphere users estimated spending approximately 23% of their coding time (approximately 276 hours per year &amp;#8212; or 6.9 full, 40-hour workweeks) waiting for applications to redeploy. JRebel eliminates 80% of redeploy situations, and it&amp;#8217;s easy to get started. In the embedded video you can take a quick look at how coding looks when using JRebel (formerly JavaRebel).&lt;/p&gt;
&lt;p&gt;&lt;object width="570" height="457"&gt;&lt;param name="movie" value="http://www.youtube.com/v/4JGGFCzspaY&amp;#038;hl=en&amp;#038;fs=1&amp;#038;color1=0x234900&amp;#038;color2=0x4e9e00"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/4JGGFCzspaY&amp;#038;hl=en&amp;#038;fs=1&amp;#038;color1=0x234900&amp;#038;color2=0x4e9e00" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="570" height="457"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;
&lt;p&gt;This guide assumes that you are using Eclipse 3.x or Rational Application Developer 7.x with WebSphere 6.x or later. Most of the steps will be applicable to other versions as well, but it may look different from the screenshots included.&lt;/p&gt;
&lt;p&gt;Contents:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="#1"&gt;STEP 1: Install JRebel&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#2"&gt;STEP 2: Installing JRebel Eclipse/RAD IDE plugin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#3"&gt;STEP 3: Make a rebel.xml for your application&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#4"&gt;STEP 4: Configuring IBM Rational Application Developer&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#5"&gt;STEP 5: Configuring Eclipse/RAD IDE&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#6"&gt;STEP 6: Configuring IBM WebSphere&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="#7"&gt;STEP 7: Success!&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;&lt;a name="1"&gt;&lt;/a&gt;STEP 1: Install JRebel&lt;/h3&gt;
&lt;p&gt;The latest stable version of JRebel can be downloaded &lt;a href="http://zeroturnaround.com/releases/standard"&gt;here&lt;/a&gt;. Unpack it to a directory of your choice.&lt;/p&gt;
&lt;p&gt;&lt;img class="size-full wp-image-1001" title="2009-07-03_124429" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_124429.png" alt="2009-07-03_124429" width="455" height="354" /&gt;&lt;/p&gt;
&lt;p&gt;It is useful to define an environment variable called &lt;strong&gt;REBEL_HOME&lt;/strong&gt; pointing to the directory you choose. In Windows you can do this by going to &lt;strong&gt;Control Panel » System » Advanced » Environment Variables » System Variable » New.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1019" title="2009-07-03_134354" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_134354.png" alt="2009-07-03_134354" width="503" height="554" /&gt;&lt;/p&gt;
&lt;p&gt;Now navigate to the directory&lt;span style="color: #000000;"&gt; where Java is bundled with IBM WebSphere.&lt;/span&gt; If you have a standalone installation it&amp;#8217;s &lt;strong&gt;%IBM_HOME%\WebSphere\AppServer\java\bin&lt;/strong&gt;. If you have it installed as part of RAD7 it should be &lt;strong&gt;%IBM_HOME%\SDP\runtimes\base_v61\java\bin. &lt;/strong&gt;Run the following line in the console:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre&gt;java -jar %REBEL_HOME%\javarebel.jar&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1020" title="2009-07-03_140819" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_140819.png" alt="2009-07-03_140819" width="550" height="278" /&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a name="2"&gt;&lt;/a&gt;STEP 2: Installing JRebel Eclipse/RAD IDE plugin&lt;/h3&gt;
&lt;p&gt;The JRebel Eclipse IDE plugin was introduced with JRebel 2.0 and makes configuring and using JRebel considerably easier. You can install the plugin by going to &lt;strong&gt;Help » Software updates » Available software » Add site&lt;/strong&gt; and use the &lt;a href="http://www.zeroturnaround.com/update-site/"&gt;http://www.zeroturnaround.com/update-site/&lt;/a&gt; URL as the update site.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1006" title="2009-07-03_130819" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_130819.png" alt="2009-07-03_130819" width="512" height="396" /&gt;&lt;/p&gt;
&lt;h3&gt;&lt;a name="3"&gt;&lt;/a&gt;STEP 3: Make a rebel.xml for your application&lt;/h3&gt;
&lt;p&gt;In order to do it&amp;#8217;s magic, JRebel needs to know where your classes and resources are.  We&amp;#8217;ll use a rebel.xml configuration file to tell it.  This is mandatory when you deploy your app as a WAR/EAR. You&amp;#8217;ll need to have one rebel.xml file &lt;strong&gt;per module&lt;/strong&gt;. This includes both web and EJB modules. The rebel.xml configuration file should be placed in your WEB-INF/classes directory in the case of a web module and in the jar root in the case of an ejb module. &lt;span style="color: #000000;"&gt;Put it&lt;/span&gt; in the root of a source or resource folder in your project (the same place where the .properties files are).&lt;/p&gt;
&lt;p&gt;If you use Maven you can use the JRebel Maven plugin that will generate the rebel.xml in accordance with the module pom.xml as described in the &lt;a href="../javarebel/configuration/maven/"&gt;Maven Plugin configuration manual&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;In 99% of cases, people tend to use one module per project.  In these cases, the JRebel Eclipse IDE plugin can generate the rebel.xml file for you, on a per project basis. If your project is one of the exceptions, edit the file manually as described in the &lt;a href="http://www.zeroturnaround.com/javarebel/installation/#2"&gt;Installation manual&lt;/a&gt;, otherwise generate the rebel.xml like this:&lt;/p&gt;
&lt;p&gt;Click on your project and pick &lt;strong&gt;Generate rebel.xml&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1003" title="2009-07-03_125934" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_125934.png" alt="2009-07-03_125934" width="436" height="466" /&gt;&lt;/p&gt;
&lt;p&gt;Done.&lt;/p&gt;
&lt;p&gt;Repeat this for all projects that you&amp;#8217;d like to update with JRebel.&lt;/p&gt;
&lt;p&gt;If you&amp;#8217;d like to use one rebel.xml for your whole team, start with the generated rebel.xml, then replace the absolute paths to your workspace with a system property.  JRebel will expand expressions like &amp;#8220;${myProject.root}&amp;#8221; in &lt;code&gt;rebel.xml&lt;/code&gt; to a system property        that you can pass to the application container as &lt;code&gt;-DmyProject.root=c:/myWorkspace/myProject&lt;/code&gt;. This allows        to you to use a single configuration for everyone and then customize it when starting the server.&lt;/p&gt;
&lt;h3&gt;&lt;a name="4"&gt;&lt;/a&gt;STEP 4: Configuring IBM Rational Application Developer&lt;/h3&gt;
&lt;p&gt;&lt;em&gt;You may skip this step if you use the Eclipse IDE or run IBM WebSphere outside the RAD IDE.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Open the &lt;strong&gt;Servers View&lt;/strong&gt; and double click the &lt;strong&gt;WebSphere Application Server&lt;/strong&gt; that your application is deployed to (if you don&amp;#8217;t see the Servers View go to &lt;strong&gt;Window » Show View » Server&lt;/strong&gt;&lt;strong&gt;s&lt;/strong&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1009" title="2009-07-03_131413" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_131413.png" alt="2009-07-03_131413" width="521" height="265" /&gt;&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;Publishing &lt;/strong&gt;and choose &lt;strong&gt;Never publish automatically&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1010" title="2009-07-03_131724" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_131724.png" alt="2009-07-03_131724" width="384" height="259" /&gt;&lt;/p&gt;
&lt;p&gt;Open &lt;strong&gt;Publishing settings for WebSphere Application Serve&lt;/strong&gt;&lt;strong&gt;r&lt;/strong&gt; and choose &lt;strong&gt;Run server with resources on server&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;It may seem wrong to disable automatic publishing, but as JRebel will take care of updates from now on it would just slow you down.&lt;/p&gt;
&lt;h3 style="font-size: 1.17em;"&gt;&lt;a name="5"&gt;&lt;/a&gt;STEP 5: Configuring Eclipse/RAD IDE&lt;/h3&gt;
&lt;p&gt;Go to &lt;strong&gt;Window » Preferences &lt;/strong&gt;and from there to &lt;strong&gt;Java » Debug » Step Filtering&lt;/strong&gt;. Check &lt;strong&gt;Use Step Filters&lt;/strong&gt; and &lt;strong&gt;Filter synthetic methods &lt;/strong&gt;and &lt;strong&gt;Step through filters&lt;/strong&gt;. Now check all the default filters and use the &lt;strong&gt;Add Filter&lt;/strong&gt; button to add &lt;strong&gt;com.zeroturnaround.*&lt;/strong&gt; and &lt;strong&gt;org.zeroturnaround.*&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1022" title="2009-07-03_143321" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_143321.png" alt="2009-07-03_143321" width="440" height="508" /&gt;&lt;/p&gt;
&lt;p&gt;Now go to &lt;strong&gt;Project » Build Automatically&lt;/strong&gt; and make sure it is checked.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1034" title="2009-07-03_144612" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_144612.png" alt="2009-07-03_144612" width="368" height="273" /&gt;&lt;/p&gt;
&lt;h3 style="font-size: 1.17em;"&gt;&lt;a name="6"&gt;&lt;/a&gt;STEP 6: Configuring IBM WebSphere&lt;/h3&gt;
&lt;p&gt;Start the IBM WebSphere server and run the &lt;strong&gt;Administrative Console&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1011" title="2009-07-03_132313" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_132313.png" alt="2009-07-03_132313" width="550" height="118" /&gt;&lt;/p&gt;
&lt;p&gt;In the &lt;strong&gt;Administration Console &lt;span style="font-weight: normal;"&gt;o&lt;/span&gt;&lt;span style="font-weight: normal; "&gt;pen &lt;/span&gt;Servers » Application Servers&lt;span style="font-weight: normal; "&gt; and select the server your app is deployed to.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-weight: normal; "&gt;&lt;img class="alignnone size-full wp-image-1012" title="2009-07-03_132842" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_132842.png" alt="2009-07-03_132842" width="550" height="422" /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-weight: normal; "&gt;Select &lt;/span&gt;Java and Process Management&lt;/strong&gt;&lt;strong&gt; » Process Definition&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1014" title="2009-07-03_133200" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_133200.png" alt="2009-07-03_133200" width="550" height="422" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-weight: normal; "&gt;Select &lt;/span&gt;Java Virtual Machine&lt;span style="font-weight: normal; "&gt;.&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1015" title="2009-07-03_133350" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_133350.png" alt="2009-07-03_133350" width="550" height="422" /&gt;&lt;/p&gt;
&lt;p&gt;Insert the following line into &lt;strong&gt;Generic JVM arguments&lt;/strong&gt;:&lt;/p&gt;
&lt;blockquote&gt;
&lt;pre style="font-size: x-small"&gt;-noverify -Xshareclasses:none -Xbootclasspath/p:%REBEL_HOME%\javarebel-bootstrap.jar;%REBEL_HOME%\javarebel.jar&lt;/pre&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;NB! &lt;/strong&gt;Unfortunately WebSphere will not expand the environment variable so you have to substitute %REBEL_HOME% with the &lt;strong&gt;actual path&lt;/strong&gt;!&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1018" title="2009-07-03_133601" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_133601.png" alt="2009-07-03_133601" width="550" height="422" /&gt;&lt;/p&gt;
&lt;p&gt;Press &lt;strong&gt;OK&lt;/strong&gt;, when asked, &lt;strong&gt;Save &lt;/strong&gt;the master configuration and &lt;strong&gt;restart &lt;/strong&gt;the server.&lt;/p&gt;
&lt;h3&gt;&lt;a name="7"&gt;&lt;/a&gt;STEP 7:  Success!&lt;/h3&gt;
&lt;p&gt;To check that the installation was successful access a page that uses a class, change that class in the IDE, press &lt;strong&gt;Save&lt;/strong&gt;, access the page again and look for the following message in the console:&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1021" title="2009-07-03_142228" src="http://www.zeroturnaround.com/wp-content/uploads/2009/07/2009-07-03_142228.png" alt="2009-07-03_142228" width="552" height="228" /&gt;&lt;/p&gt;
&lt;p&gt;Now that you’re up and running, it’s time to enjoy coding without the need to redeploy. If you have any specific questions JRebel, the &lt;a href="../forum/"&gt;Forum&lt;/a&gt; is the best place to ask, so that other people get to hear the answer as well. Otherwise, you can contact us at support@zeroturnaround.com.&lt;/p&gt;
&lt;p&gt;If you like what you see, please give us a quick mention on your blog or twitter (you can even &lt;a href="http://twitter.com/javarebel"&gt;follow us&lt;/a&gt; here).&lt;/p&gt;
&lt;p&gt;Have a great day!&lt;/p&gt;
&lt;p&gt;Find out more:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="http://www.zeroturnaround.com/blog/eclipse-plugin-tutorial/"&gt;Eclipse Plugin Tutorial&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.zeroturnaround.com/javarebel/installation/"&gt;Installation manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.zeroturnaround.com/javarebel/configuration/"&gt;Configuration manual&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a style="text-decoration: none;" href="http://www.zeroturnaround.com/javarebel/configuration/maven/"&gt;Maven Plugin configuration manual&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="http://www.zeroturnaround.com/?ak_action=api_record_view&amp;id=1643&amp;type=feed" alt="" /&gt;&lt;img src="http://feeds.feedburner.com/~r/zeroturnaround/~4/5TbtEL8XZDI" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.zeroturnaround.com/blog/how-to-install-and-use-javarebel-in-ibm-websphere-with-rational-application-developer-or-eclipse/#comments" thr:count="5" />
		<link rel="replies" type="application/atom+xml" href="http://www.zeroturnaround.com/blog/how-to-install-and-use-javarebel-in-ibm-websphere-with-rational-application-developer-or-eclipse/feed/atom/" thr:count="5" />
		<thr:total>5</thr:total>
	<feedburner:origLink>http://www.zeroturnaround.com/blog/how-to-install-and-use-javarebel-in-ibm-websphere-with-rational-application-developer-or-eclipse/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Jevgeni Kabanov</name>
						<uri>http://www.ekabanov.net</uri>
					</author>
		<title type="html"><![CDATA[Survey Results: The Java EE Container Redeploy &amp; Restart Report &#8211; measuring Turnaround Time]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/zeroturnaround/~3/BnbmXHLMi70/" />
		<id>http://www.zeroturnaround.com/?p=1447</id>
		<updated>2009-09-28T12:50:01Z</updated>
		<published>2009-09-22T13:21:54Z</published>
		<category scheme="http://www.zeroturnaround.com" term="blog" />		<summary type="html"><![CDATA[// // // A couple of months ago we ran a survey asking a few questions about Java EE development, containers and redeploy times. Now that over 1100 people have responded it’s time to update the results. Since we’ve had more time to analyze them we also hope to provide a few insights into the [...]]]></summary>
		<content type="html" xml:base="http://www.zeroturnaround.com/blog/java-ee-container-redeploy-restart-turnaround-report/">&lt;p&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[
 var dzone_url = 'http://www.zeroturnaround.com/blog/java-ee-container-redeploy-restart-turnaround-report/';
// ]]&amp;gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[
 var dzone_title = 'Survey Results: The Java EE Container Redeploy &amp;#038; Restart Report - measuring Turnaround Time';
// ]]&amp;gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[
 var dzone_style = '2';
// ]]&amp;gt;&lt;/script&gt;&lt;script src="http://widgets.dzone.com/links/widgets/zoneit.js"&gt;&lt;/script&gt;&lt;script type="text/javascript" src="http://www.reddit.com/button.js?url=http://www.zeroturnaround.com/blog/java-ee-container-redeploy-restart-turnaround-report/"&gt;&lt;/script&gt;A couple of months ago we &lt;a href="http://www.zeroturnaround.com/blog/java-ee-container-heavenhell/"&gt;ran a survey&lt;/a&gt; asking a few questions about Java EE development, containers and redeploy times. Now that over 1100 people have responded it’s time to update the results. Since we’ve had more time to analyze them we also hope to provide a few insights into the data including a more detailed container breakdown.&lt;/p&gt;
&lt;p&gt;If you’d like to play with the results on your own we‘ve provided all the data and our calculations in a handy Excel sheet that you can download &lt;a href="http://www.zeroturnaround.com/wp-content/uploads/2009/09/survey-xlsx.zip"&gt;here&lt;/a&gt;. As a note, if you haven’t answered the 3-question survey yet, take two minutes and &lt;a href="http://spreadsheets.google.com/viewform?hl=en&amp;amp;formkey=cm1rMHVOZEZBMjdSSUZ2eFJCTXFCT1E6MA.."&gt;go for it&lt;/a&gt;. As more answers trickle in we’ll update this post with the new data.&lt;/p&gt;
&lt;p&gt;The first question in the survey was “What container do you use on your largest current project?”. The breakdown follows:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chart 1: Which Container is used most often?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-1598" title="chart1" src="http://www.zeroturnaround.com/wp-content/uploads/2009/09/chart1.png" alt="chart1" width="553" height="417" /&gt;&lt;/p&gt;
&lt;p&gt;We didn’t include the containers that scored less than 10 answers in the survey. These included:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; (2) Adobe JRun&lt;/li&gt;
&lt;li&gt; (1) Geronimo&lt;/li&gt;
&lt;li&gt; (1) Iona&lt;/li&gt;
&lt;li&gt; (7) TmaxSoft JEUS&lt;/li&gt;
&lt;li&gt; (5) JONAS&lt;/li&gt;
&lt;li&gt; (1) Pramati Server&lt;/li&gt;
&lt;li&gt; (4) SAP NetWeaver&lt;/li&gt;
&lt;li&gt; (2) Sybase EAServer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Unsurprisingly Apache Tomcat holds the lead, closely followed by JBoss. Together the OSS servers total over 70% of the responses. Although I wouldn’t go as far as to translate these numbers directly into market share, we did find studies that found similar results, courtesy of &lt;a href="http://www.sdtimes.com/link/31882"&gt;SD Times&lt;/a&gt; – Slight differences though: we asked which ONE container you use for your largest projects, and theirs appear to allow people to choose multiple containers.&lt;/p&gt;
&lt;p&gt;The 2nd question we asked was, “How long does it take to restart your container and redeploy your app?”. The breakdown follows (the horizontal axis is in minutes):&lt;/p&gt;
&lt;p&gt;&lt;strong&gt; Chart 2: “How long does it take to restart your container and redeploy your app?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img class="alignnone size-full wp-image-1603" title="chart2" src="http://www.zeroturnaround.com/wp-content/uploads/2009/09/chart2.png" alt="chart2" width="553" height="417" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name="avg_redeploy_time"&gt;&lt;/a&gt;We previously assumed that the redeploy/restart phase lasted approximately 1 minute.  Though 38% of respondents agreed or said it was quicker than 1 minute, 62% suggested that this process lasts around 2 or more minutes.  The calculated &lt;strong&gt;average is approximately 2.5 minutes&lt;/strong&gt; –indicating that we underestimated the amount of time spent on the redeploy phase.&lt;/p&gt;
&lt;p&gt;Moving along, we asked, “In an hour of coding, how many times do you redeploy?”. The breakdown follows:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chart 3: “How Many Times do you Redeploy in an Hour of Coding?”&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img class="alignnone size-full wp-image-1604" title="chart3" src="http://www.zeroturnaround.com/wp-content/uploads/2009/09/chart3.png" alt="chart3" width="553" height="417" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name="avg_redeploy_no"&gt;&lt;/a&gt;The distribution seems to be close to &lt;a href="http://en.wikipedia.org/wiki/Normal_distribution"&gt;normal&lt;/a&gt;, excepting the jump in the end. The average is slightly over &lt;strong&gt;five times an hour&lt;/strong&gt;, which coincides with the measurements we did &lt;a href="http://www.zeroturnaround.com/blog/java-ee-container-heaven-hell-survey-results/"&gt;before&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For those who answered, “I never redeploy”, we asked some of them how they did this. Responses were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; “I’m not the guy that does the redeploys”&lt;/li&gt;
&lt;li&gt; “We develop on embedded jetty &amp;amp; activemq &amp;amp; atomikos in debug mode instead of nearly unusable target OracleAS. So of course we need redeploy or restart jetty as usual, but not the OAS.”&lt;/li&gt;
&lt;li&gt; “I’m in the very early stages of a project so a lot of out time is spent coding and testing without redeploying – typically I redeploy 3-4 times per hour”&lt;/li&gt;
&lt;li&gt; “We use JavaRebel and it’s awesome” (this obviously came from someone trying to charm our development team – who are still blushing. Note – it’s now called JRebel.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Next we did some data crunching. We assigned numeric values to each of the intervals (e.g. “3.5″ for the “3-4″ interval) and multiplied the number of redeploys an hour by the amount of time one redeploy takes (basically, Chart 2 times Chart 3), thus finding the approximate amount of time respondents spend redeploying in each hour of development. We broke down the data into five minute intervals:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chart 4: How Much Time Does a Java Developer Spend Redeploying in an Hour of Coding? (using raw data before improving accuracy)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img class="alignnone size-full wp-image-1605" title="chart4" src="http://www.zeroturnaround.com/wp-content/uploads/2009/09/chart4.png" alt="chart4" width="553" height="417" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The average is about &lt;strong&gt;twelve and a half minutes per hour&lt;/strong&gt;, accounting for more than &lt;strong&gt;20% of total development time&lt;/strong&gt;. However, the standard deviation is over 14, which means that the actual per cent varies greatly. We wanted to show more accurate data, so by looking closely and grouping results, we found this:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Less than 5 minutes an hour. Looking into this group we see that it is slightly skewed by the respondents who indicated that they never redeploy. We asked the people who “never redeploy” how they do it (see comments above), and they indicated that their responses were often not effective for tracking the actual redeploy time that we are trying to measure. Therefore, it makes sense to remove that data from the chart.&lt;/li&gt;
&lt;li&gt;5 to 15 minutes an hour. 45% of respondents fall into this category.&lt;/li&gt;
&lt;li&gt;20 to 25 minutes an hour.&lt;/li&gt;
&lt;li&gt;Over 30 minutes an hour. Looking closer at the data we see that some of the respondents indicated that they redeploy over 60 minutes an hour (choosing both “More than 10 redeploys per hour” and “More than 5 minutes per redeploy” for Charts 2 and 3). This is quite impossible.  In fact, we believe any number over 40 minutes per hour seems to be against reason. It makes sense to remove all this data from the chart too.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The chart with the updated data looks as follows:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chart 5: How Much Time Does a Java Developer Spend Redeploying in an Hour of Coding? (more accurate data)&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img class="alignnone size-full wp-image-1606" title="chart5" src="http://www.zeroturnaround.com/wp-content/uploads/2009/09/chart5.png" alt="chart5" width="553" height="417" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name="avg_all_coding_time"&gt;&lt;/a&gt;The average is now &lt;strong&gt;ten and a half minutes per hour&lt;/strong&gt; with a standard deviation of 8, which is more trustworthy. This translates to about &lt;strong&gt;17.5% of total development time&lt;/strong&gt;, which is considerably more than we expected. We will use this “cleaned up data” for the rest of the post.&lt;/p&gt;
&lt;p&gt;Later we’ll describe how to calculate this over a year, but here are some quick figures:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; 5 mins per coding hour becomes 6000 minutes annually (2.5, 40-hour workweeks)&lt;/li&gt;
&lt;li&gt; 9 mins per coding hour becomes 10800 minutes annually (4.5 weeks)&lt;/li&gt;
&lt;li&gt; 14 mins per coding hour becomes 16800 mins annually (7 weeks)&lt;/li&gt;
&lt;li&gt; 21% of respondents report spending more than 14 mins per hour on redeploys&lt;/li&gt;
&lt;li&gt; 71% of respondents report spending more than 2.5 full weeks per year, redeploying.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;After looking at this issue in general, we investigated the data on a per-container basis.  This is what we found:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chart 6: Organized By Container, How Much Time is Spent Redeploying?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img class="alignnone size-full wp-image-1607" title="chart6" src="http://www.zeroturnaround.com/wp-content/uploads/2009/09/chart6.png" alt="chart6" width="553" height="476" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;There are few surprises here. Jetty is leading the pack with only &lt;strong&gt;5.8 minutes per hour&lt;/strong&gt; spent redeploying and IBM WebSphere is trailing with more than twice more — &lt;strong&gt;13.8 minutes per hour&lt;/strong&gt;. One thing to note is that although Jetty startup is undoubtedly faster than IBM WebSphere it is likely that most of the difference is due to the size of the applications deployed and the technologies used in them.&lt;/p&gt;
&lt;p&gt;Next we have the same chart, but numbers displayed as a percent of development time (time spent per hour divided by 60).  Perhaps it’s useful to describe how we define “Development Time”.  For us, Development time is what you spend actually writing code, with an IDE, running your server and the Java language. This doesn’t include meetings, gathering requirements, smoking or any other activities that don’t involve a compiler. We&amp;#8217;ve asked around, and it sounds like the industry assumes that 5 hours per day are spent coding.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chart 7: Organized by Container, What Percent of Development Time is Spent Redeploying?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img class="alignnone size-full wp-image-1608" title="chart7" src="http://www.zeroturnaround.com/wp-content/uploads/2009/09/chart7.png" alt="chart7" width="553" height="476" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To put those numbers in perspective we can also calculate the amount of time spent redeploying a year. To do that, we’ll make some assumptions:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;We assume 48 work weeks  per year.  If you’re lucky enough to get more than 4 weeks of vacation, don’t rub it in.&lt;/li&gt;
&lt;li&gt;We assume that 5 hours per day is spent doing development. The other 3 hours are reserved for non-development activities.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The following chart displays the number of 40-hour work weeks a year spent redeploying:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chart 8: How many 40-hour work weeks are spent on the redeploy phase, over a year?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img class="alignnone size-full wp-image-1609" title="chart8" src="http://www.zeroturnaround.com/wp-content/uploads/2009/09/chart8.png" alt="chart8" width="553" height="476" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a name="redeploy_consumes"&gt;&lt;/a&gt;Depending on the container, we&amp;#8217;re looking at &lt;strong&gt;3 to 7 work weeks per year&lt;/strong&gt;, spent exclusively on the redeploy phase. The average over all of the data is slightly over &lt;strong&gt;5 work weeks a year&lt;/strong&gt;, but the standard deviation of 4 makes the range of 3-7 more reliable.&lt;/p&gt;
&lt;p&gt;Our final graph shows the amount of time spent redeploying per container in more detail. Instead of using averages, we break down the proportion of respondents that redeploy into groups: less than 5 minutes an hour, 5 to 14 minutes and hour, 15 to 29 minutes and hour and over 30 minutes an hour.  We expect that this may show the size of projects that use different containers, and potentially shed light on the time your project spends redeploying.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Chart 9: Java EE container market penetration.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;img class="alignnone size-full wp-image-1610" title="chart9" src="http://www.zeroturnaround.com/wp-content/uploads/2009/09/chart9.png" alt="chart9" width="553" height="459" /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;We interpret this chart as:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; Jetty is only used in projects that redeploy quickly. This makes all kind of sense, considering that Jetty doesn’t even support redeployment and instead has extremely fast container startup.&lt;/li&gt;
&lt;li&gt; Apache Tomcat and GlassFish are used in same types of project. Both are posed as fully functional yet lightweight alternatives to the classic heavy application servers. Although Tomcat is much more popular today, GlassFish is growing in popularity in the same market share.&lt;/li&gt;
&lt;li&gt; JBoss, Oracle Weblogic and IBM WebSphere compete for pretty much the same market segment. The majority of their projects are large and complex, and the redeploy times reflect that.&lt;/li&gt;
&lt;li&gt; Another interesting fact is that the proportion of projects in the 5-14 group is pretty stable for all containers. This likely corresponds to medium-sized projects that are not actively contested by either lightweight or classical application servers. The only exception is Jetty, which is heavily skewed to the lightweight side.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Coming up next: We&amp;#8217;re taking a look at incremental build times and comparing Ant, Maven, Eclipse, IntelliJ, and NetBeans.  If you&amp;#8217;re interested, take a minute to participate &lt;a href="http://www.zeroturnaround.com/blog/ant-vs-maven-vs-eclipse-intellij-netbeans-exploring-incremental-builds/"&gt;here&lt;/a&gt;. Thanks!&lt;/p&gt;
&lt;img src="http://www.zeroturnaround.com/?ak_action=api_record_view&amp;id=1447&amp;type=feed" alt="" /&gt;&lt;img src="http://feeds.feedburner.com/~r/zeroturnaround/~4/BnbmXHLMi70" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.zeroturnaround.com/blog/java-ee-container-redeploy-restart-turnaround-report/#comments" thr:count="130" />
		<link rel="replies" type="application/atom+xml" href="http://www.zeroturnaround.com/blog/java-ee-container-redeploy-restart-turnaround-report/feed/atom/" thr:count="130" />
		<thr:total>130</thr:total>
	<feedburner:origLink>http://www.zeroturnaround.com/blog/java-ee-container-redeploy-restart-turnaround-report/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>David Booth</name>
						<uri>http://</uri>
					</author>
		<title type="html"><![CDATA[Ant vs Maven vs Eclipse, IntelliJ, NetBeans &#8211; Exploring Incremental Builds]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/zeroturnaround/~3/1UDfrnc_DiM/" />
		<id>http://www.zeroturnaround.com/?p=1534</id>
		<updated>2009-09-21T11:49:58Z</updated>
		<published>2009-09-16T14:06:40Z</published>
		<category scheme="http://www.zeroturnaround.com" term="blog" /><category scheme="http://www.zeroturnaround.com" term="news" /><category scheme="http://www.zeroturnaround.com" term="Ant" /><category scheme="http://www.zeroturnaround.com" term="eclipse" /><category scheme="http://www.zeroturnaround.com" term="incremental build" /><category scheme="http://www.zeroturnaround.com" term="IntelliJ" /><category scheme="http://www.zeroturnaround.com" term="Maven" /><category scheme="http://www.zeroturnaround.com" term="NetBeans" />		<summary type="html"><![CDATA[// // // We’re looking into incremental builds &#8212; trying to document the differences in popularity &#38; productivity between using tools like Ant and Maven versus IDEs.  We haven’t seen a study like this before, so thanks for taking a minute to fill this out.  If you’re interested in winning a free license of JRebel [...]]]></summary>
		<content type="html" xml:base="http://www.zeroturnaround.com/blog/ant-vs-maven-vs-eclipse-intellij-netbeans-exploring-incremental-builds/">&lt;p&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[
var dzone_url = 'http://www.zeroturnaround.com/blog/ant-vs-maven-vs-eclipse-intellij-netbeans-exploring-incremental-builds/';
// ]]&amp;gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[
var dzone_title = 'Ant vs Maven vs Eclipse, IntelliJ, NetBeans – Exploring Incremental Builds';
// ]]&amp;gt;&lt;/script&gt;&lt;script type="text/javascript"&gt;// &lt;![CDATA[
var dzone_style = '2';
// ]]&amp;gt;&lt;/script&gt;&lt;script src="http://widgets.dzone.com/links/widgets/zoneit.js"&gt;&lt;/script&gt;We’re looking into incremental builds &amp;#8212; trying to document the differences in popularity &amp;amp; productivity between using tools like Ant and Maven versus IDEs.  We haven’t seen a study like this before, so thanks for taking a minute to fill this out.  If you’re interested in winning a free license of JRebel (formerly JavaRebel), include your email address in the optional email section.&lt;/p&gt;
&lt;p&gt;For the study, &lt;a href="https://spreadsheets.google.com/viewform?formkey=dHlRT1dCb2xnUldpUzRUZ3hNNlBOdkE6MA.."&gt;click here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Thanks,&lt;/p&gt;
&lt;p&gt;Dave&lt;/p&gt;
&lt;img src="http://www.zeroturnaround.com/?ak_action=api_record_view&amp;id=1534&amp;type=feed" alt="" /&gt;&lt;img src="http://feeds.feedburner.com/~r/zeroturnaround/~4/1UDfrnc_DiM" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://www.zeroturnaround.com/blog/ant-vs-maven-vs-eclipse-intellij-netbeans-exploring-incremental-builds/#comments" thr:count="5" />
		<link rel="replies" type="application/atom+xml" href="http://www.zeroturnaround.com/blog/ant-vs-maven-vs-eclipse-intellij-netbeans-exploring-incremental-builds/feed/atom/" thr:count="5" />
		<thr:total>5</thr:total>
	<feedburner:origLink>http://www.zeroturnaround.com/blog/ant-vs-maven-vs-eclipse-intellij-netbeans-exploring-incremental-builds/</feedburner:origLink></entry>
	</feed><!-- Dynamic page generated in 0.810 seconds. --><!-- Cached page generated by WP-Super-Cache on 2009-11-10 06:30:37 -->
