<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Learning by Experience &#187; eclipse</title> <atom:link href="http://www.inze.be/andries/category/eclipse/feed/" rel="self" type="application/rss+xml" /><link>http://www.inze.be/andries</link> <description>Java, Project Management, Life and anything else.</description> <lastBuildDate>Mon, 09 Jan 2012 21:38:00 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=3.3.1</generator> <item><title>svn:needs-lock</title><link>http://www.inze.be/andries/2009/07/12/svnneeds-lock/</link> <comments>http://www.inze.be/andries/2009/07/12/svnneeds-lock/#comments</comments> <pubDate>Sun, 12 Jul 2009 17:37:35 +0000</pubDate> <dc:creator>Andries Inzé</dc:creator> <category><![CDATA[eclipse]]></category> <category><![CDATA[svn]]></category> <guid
isPermaLink="false">http://www.inze.be/andries/?p=183</guid> <description><![CDATA[Last week I learned all about svn properties. One of them is the svn:needs-lock property. This forces you to require a lock before you can make a commit. Very handy if you have binary files in your project, which is under version control. Binary files can&#8217;t be merged, so if multiple developers are editing this [...]]]></description> <content:encoded><![CDATA[<p>Last week I learned all about <a
href="http://en.wikipedia.org/wiki/Subversion_%28software%29">svn </a>properties. One of them is the <em>svn:needs-lock</em> property. This forces you to require a lock before you can make a commit.</p><p>Very handy if you have binary files in your project, which is under version control. Binary files can&#8217;t be merged, so if multiple developers are editing this file the slowest will have a problem.</p><p>I use it for enforcing the Excel sheets which contain the testdata for DBUnit. Subclipse show a nice icon which indicates you need a lock. Subversive does not show this, but, as does Subclipse, let&#8217;s you open the file in readonly.</p><p>KR,<br
/> Andries</p> ]]></content:encoded> <wfw:commentRss>http://www.inze.be/andries/2009/07/12/svnneeds-lock/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Access HSQL Databasemanager during a test</title><link>http://www.inze.be/andries/2009/06/29/access-hsql-databasemanager-during-a-test/</link> <comments>http://www.inze.be/andries/2009/06/29/access-hsql-databasemanager-during-a-test/#comments</comments> <pubDate>Sun, 28 Jun 2009 23:01:44 +0000</pubDate> <dc:creator>Andries Inzé</dc:creator> <category><![CDATA[eclipse]]></category> <category><![CDATA[testing]]></category> <guid
isPermaLink="false">http://www.inze.be/andries/?p=156</guid> <description><![CDATA[We all need it at some point or another when using HSQL. What&#8217;s in my database during a test? When your code reaches your breakpoint, you can run following command by pasting it, selecting and executing (alt+shift+X) following line: org.hsqldb.util.DatabaseManagerSwing.main(new String[]{}); Since you are starting the instance from the same thread, you&#8217;ll see what the [...]]]></description> <content:encoded><![CDATA[<p>We all need it at some point or another when using HSQL. What&#8217;s in my database during a test?</p><p>When your code reaches your breakpoint, you can run following command by pasting it, selecting and executing (<em>alt+shift+X) </em>following line:<br
/> <em>org.hsqldb.util.DatabaseManagerSwing.main(new String[]{});</em></p><pre class="brush: java; title: ; notranslate">org.hsqldb.util.DatabaseManagerSwing.main(new String[]{});</pre><p>Since you are starting the instance from the same thread, you&#8217;ll see what the thread sees, uncommitted read!</p><p>KR,<br
/> Andries</p> ]]></content:encoded> <wfw:commentRss>http://www.inze.be/andries/2009/06/29/access-hsql-databasemanager-during-a-test/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Pro eclipse keyboard navigation</title><link>http://www.inze.be/andries/2008/06/05/pro-eclipse-keyboard-navigation/</link> <comments>http://www.inze.be/andries/2008/06/05/pro-eclipse-keyboard-navigation/#comments</comments> <pubDate>Thu, 05 Jun 2008 20:21:20 +0000</pubDate> <dc:creator>Andries Inzé</dc:creator> <category><![CDATA[eclipse]]></category> <guid
isPermaLink="false">http://www.inze.be/andries/?p=34</guid> <description><![CDATA[Recently, I problably learned the last shortcut I needed for never using my mouse again for browsing code in eclipse. Say goodbye to the mouse! ctrl+h : start a workspace wide search for a given word. ctrl+shift+R : search by filename ctrl+shift+T : search by type ctrl+T : search hierarchy: very handy when programming against [...]]]></description> <content:encoded><![CDATA[<p>Recently, I problably learned the last shortcut I needed for never using my mouse again for browsing code in eclipse. Say goodbye to the mouse!</p><p><strong>ctrl+h </strong>: start a workspace wide search for a given word.<br
/> <strong>ctrl+shift+R</strong> : search by filename<br
/> <strong>ctrl+shift+T</strong> : search by type<br
/> <strong>ctrl+T</strong> : search hierarchy: very handy when programming against interfaces. Just put the cursor into a methodname and press ctrl+T. It will show you which classes are implementing the interface method.<br
/> <strong>ctrl+O</strong> : search by field/innerclass/method name. This was my last found treasure. It&#8217;s faster then pressing ctrl+F and searching for the word.<br
/> <strong>ctrl+F6</strong> navigate to open files.</p><p>Voila, these are the 6 shortcuts you need to learn to be a pro eclipse navigator. It&#8217;s pretty impressive when you see someone master this. Going from any method to another is just a matter of seconds.</p><p>Greets,</p><p>Andries</p> ]]></content:encoded> <wfw:commentRss>http://www.inze.be/andries/2008/06/05/pro-eclipse-keyboard-navigation/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>Optimize your development</title><link>http://www.inze.be/andries/2008/01/07/optimize-your-development/</link> <comments>http://www.inze.be/andries/2008/01/07/optimize-your-development/#comments</comments> <pubDate>Sun, 06 Jan 2008 22:35:30 +0000</pubDate> <dc:creator>Andries Inzé</dc:creator> <category><![CDATA[eclipse]]></category> <category><![CDATA[Java]]></category> <category><![CDATA[management]]></category> <guid
isPermaLink="false">http://www.inze.be/andries/?p=7</guid> <description><![CDATA[When you are not careful about how you develop your software, it&#8217;s easy to do this in an inefficient way. The last couple of weeks I&#8217;ve been streamlining the developers their workstation, to become as efficient as possible. I&#8217;ll talk about some of the measures I took, how it was done and what the final [...]]]></description> <content:encoded><![CDATA[<p>When you are not careful about how you develop your software, it&#8217;s easy to do this in an inefficient way. The last couple of weeks I&#8217;ve been streamlining the developers their workstation, to become as efficient as possible. I&#8217;ll talk about some of the measures I took, how it was done and what the final benefits were. Also, I&#8217;d like to talk about some of the possible drawbacks.</p><h1>Shorten the build cycle for developers</h1><p>The length of the build-cycle is critical for developers.</p><h2>Exploded development</h2><p>With the release of JBoss Tools for eclipse, I finally managed to get a very good exploded development going on. I tested the beta 3 as well as the beta 4. In both cases, exploded wars didn&#8217;t function as I wanted. Didn&#8217;t remember quite what didn&#8217;t work, but with the the GA release, everything worked out fine.</p><p>The main benefit of exploded development is the powerful option to edit JSP files live! This is a serious advantage. Our team started out without this, but as the project <em>exploded</em> in size, the start-up time was increasing drastically. Would not ever want to do another project without this ability!</p><p>Another great benefit is the possibility for incremental publishing (standard behavior with the plug-in). Packing a war is something that can take half a minute or longer using eclipse, with incremental publishing only the changed files are submitted, resulting in mere seconds.</p><p>The last benefit is a faster start-up, since the server doesn&#8217;t have to unpack the war. Our war is about 45Mb large, which took 10-15 seconds to unpack.</p><p>There is one setback! When using this, there is a bug when you have breakpoints in eclipse. The breakpoints sometimes (and this is rather frequent, say 1 in 5) cause the server to start up really slow. And slow is like 1h to start&#8230; The workaround here is to restart the server and disable the breakpoints on start-up, enabling them once the server is started. It&#8217;s a common bug when you Google for it, so I&#8217;m confident this will get resolved soon.</p><h2>Hot-code replacement</h2><p>Learning how to use hot-code replacement can save some restarts of the server. With hot code replacement, you can alter any Java code, as long as you stay within the method where your breakpoint currently <em>hangs</em>. This is perfect for adjusting 1 line of code, since most bugs are exactly one small thing that was wrong.</p><p>There is a little more to it. Sometimes eclipse complains about the failure of the hot code replace. What we do is following: we let the thread run until it&#8217;s finished. Then we start the code again (refresh the page, submit a form&#8230;) and let it stop on the same breakpoint. Then we add 1 space and save it. This never fails!</p><h2>No Hibernate Cache</h2><p>Another great way to speedup the start time during development, is to disable the Hibernate cache (second level cache, query cache) during development. With a maven profile, this is done very easy.</p><p>We have about 25 classes that are non-strict read/write cached. This takes about 12 seconds to start-up, every class that is cached has it&#8217;s own thread started by Hibernate (I think this is for timeout of the cache).</p><h2>No premature loading of cached items</h2><p>Many applications start by eager fetching some data this is cached then. I believe this is completely useless in a development environment. Again with Maven this ain&#8217;t hard to set up.</p><h2>A word about Spring configuration</h2><p>One could argue that the Spring configuration could also be completely lazy. Indeed, this would be a tremendous start-up gain, in our 100 beans large project, it takes 20 seconds to set up the beans. It&#8217;s the single most time consuming event in our application start-up.</p><p>We don&#8217;t do this, since it posses a real danger. With lazily initiated beans you lose the dependency checks at start-up</p><h1>Shorten the setup time</h1><p>Setting up eclipse is something we needed to do quite a lot of times. When switching branches, when added dependencies etc.</p><p>We used to use the maven eclipse plug-in. Lately I found out that this plug-in is absolutely unnecessary. With the proper maven setup, the simple command <em>mvn eclipse:eclipse</em> does the trick. Actually you need two things:</p><pre>            &lt;plugin&gt;
                &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;
                &lt;artifactId&gt;maven-eclipse-plugin&lt;/artifactId&gt;
                &lt;configuration&gt;
                    &lt;wtpversion&gt;1.5&lt;/wtpversion&gt;
                &lt;/configuration&gt;
            &lt;/plugin&gt;</pre><p>Above is a plugin in the web module (pom.xml).</p><pre>&lt;jboss-web&gt;
    &lt;context-root&gt;mistral&lt;/context-root&gt;
&lt;/jboss-web&gt;</pre><p>Above is the content of the file webapp/WEB-INF/jboss-web.xml , which sets the context-root with jboss. If you don&#8217;t do this, it&#8217;ll default to the war filename.</p><h1>Other optimizations</h1><p>In order to have the best possible environment, other optimizations are in order. But I&#8217;ll keep those for my follow-up. Things that can be improved:</p><ul><li>Use of the continuous integration.</li><li>A (good) project wiki</li><li>How to manage multiple databases <span
style="text-decoration: underline;">efficiently</span>(database independence per developer)</li><li>Office instant messaging</li></ul><h1>Conclusion</h1><p>Pretty long post. There is a lot to say about development optimizations. My experience in it is that there is a lot to gain. There are some key concerns however:</p><ul><li>KISS, Keep It Simple Stupid.  An optimization should never be something that has to be explained. Optimizations are only good optimizations when they feel natural, they should also make things simpler almost never more complex.</li><li>A very important one: a team should work all in the same manner. It&#8217;s too hard when multiple ways of developing have to be supported.</li><li>Don&#8217;t be afraid to change your development manners. Sometimes a change can be a little investment, but large gains on longer terms.</li></ul><p>As always, I&#8217;m open for debate and questions.</p><p>Regards,<br
/> Andries</p> ]]></content:encoded> <wfw:commentRss>http://www.inze.be/andries/2008/01/07/optimize-your-development/feed/</wfw:commentRss> <slash:comments>5</slash:comments> </item> <item><title>Eclipse Europe released</title><link>http://www.inze.be/andries/2007/06/29/eclipse-europe-released/</link> <comments>http://www.inze.be/andries/2007/06/29/eclipse-europe-released/#comments</comments> <pubDate>Fri, 29 Jun 2007 20:17:15 +0000</pubDate> <dc:creator>Andries Inzé</dc:creator> <category><![CDATA[eclipse]]></category> <guid
isPermaLink="false">http://www.inze.be/andries/?p=11</guid> <description><![CDATA[As promised, Eclipse Europe has again been released on nearly the last day in June. The full stack of the Europe Project contains an astonishing 17 million lines of code! Wauw! As we might expect from Eclipse, this release is packed again with some great features. About Europe The biggest change in Eclipse Europe is [...]]]></description> <content:encoded><![CDATA[<p>As promised, Eclipse Europe has again been released on nearly the last day in June. The full stack of the Europe Project contains an astonishing 17 million lines of code! Wauw! As we might expect from Eclipse, this release is packed again with some great features.</p><p><strong>About Europe</strong></p><p>The biggest change in Eclipse Europe is the further evolution of the Callisto project: delivering a coordinated release with numerous eclipse projects, reducing version incompatibilities and make the entire platform better then ever. This year, Eclipse releases an amazing 21 projects.</p><p><strong>What else</strong></p><p>After installing, which took 2min to extract, the first thing you notice is the new eyecandy. More colors, more icons and some changes to the default perspectives show that we are working with the brand new version. It feels still like Eclipse though.</p><p>A visual change you really need to get used to, is the new tree animation. When entering subfolders, the tree automatically shift to the left, to let you see more of the tree on the right. It&#8217;s rather annoying at first, but helps keeping a cleared view.</p><p>Another strange feature, is the spell checker in comments. While spell checking is great, since you haven&#8217;t got the option to ignore certain words, it becomes irritating fast. I&#8217;m missing the option to right click on certain words and having the option to ignore the spelling of the word.</p><p>Some new refactoring stuff has been added. (add parameterobject, Fix Deprecation, Replace Invocation). Always good to have.</p><p>More shortcuts (Ctrl+1 for instance).</p><p>WTP 2.0. This provides following features:</p><ul><li>Better support for JSP tag files.</li><li>Better HTML and JSP formatting when requesting a &#8220;format everything&#8221; (CTRL-SHIFT-F)</li><li>Better publishing performance.</li><li>Supports Axis2 out of the box</li></ul><p>You can now search on package name aswell. For instance <em>*springframework*Listener </em>would return all listeners within the springframework.</p><p>You can now let Eclipse use Firefox as default rendering of webpages.</p><p>Text Drag&amp;Drop! Now this seems stupid, but eliminates a lot of the cut and past for small stuff. Reorder the parameter list? Drag and Drop them!</p><p>Maximizing windows work a lot better. Creates nice sidebars.</p><p><strong>Final Thought</strong></p><p>As you can tell, Eclipse 3.3 is another great tool. In this small review I scratched only the top of what this new release holds. All the features I mentioned are just what we developers are likely to see right away. But the real power of Eclipse Europe is the work that went into making the platform easier to expand. We will see some great new plugins really soon, that will work a lot better with each other.</p><p>So to keep it short and simple: Eclipse Rox!</p> ]]></content:encoded> <wfw:commentRss>http://www.inze.be/andries/2007/06/29/eclipse-europe-released/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> </channel> </rss>
