<?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>Soapbox Rants and Raves &#187; Eclipse</title>
	<atom:link href="http://www.beilers.com/category/eclipse/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.beilers.com</link>
	<description>Crazy Thoughts on Software Development and Life in General</description>
	<lastBuildDate>Tue, 20 Jul 2010 12:11:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Eclipse Project Configurations &#8211;  Shared or Personal?</title>
		<link>http://www.beilers.com/2010/07/eclipse-project-configurations-shared-or-personal/</link>
		<comments>http://www.beilers.com/2010/07/eclipse-project-configurations-shared-or-personal/#comments</comments>
		<pubDate>Tue, 20 Jul 2010 04:01:07 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.beilers.com/?p=755</guid>
		<description><![CDATA[To be honest, this was not a topic I was actually planning to write about. However, because I received a couple of interesting comments on a recent blog entry, Unfriendly Developer Practices, I thought I should clarify my position. Question of the Day Should your IDE (Eclipse) configuration files be checked in as part of [...]]]></description>
			<content:encoded><![CDATA[<p>To be honest, this was not a topic I was actually planning to write about. However, because I received a couple of interesting comments on a recent blog entry, <a href="http://www.beilers.com/2010/07/unfriendly-developer-pactices-adding-uncessary-environmental-complexities/" target="_blank">Unfriendly Developer Practices</a>, I thought I should clarify my position.</p>
<table style="border-collapse: collapse;" border="1" width="90%" align="center">
<tbody>
<tr align="center" bgcolor="lightgrey">
<td><strong>Question of the Day</strong></td>
</tr>
<tr align="center">
<td>Should your IDE (Eclipse) configuration files be checked in as part of your project?</td>
</tr>
</tbody>
</table>
<p>One of the comments suggested that there should be should be <strong>no</strong> dependency between the build system and the IDE. Another person suggested the disconnect between the IDE and the build system creates a convenient place for dependency inconsistencies to develop unchecked.</p>
<p>I completely agree with <em>both </em>of those statements and have seen <em>both </em>problems manifested several times. However, there are two simple tools can make this a non-issue: Continuous Integration and Dependency Management.</p>
<ul>
<li><a href="http://martinfowler.com/articles/continuousIntegration.html" target="_blank">Continuous Integration</a> is obvious; if that <em>lazy </em>developer forgets to check in a dependency or update the build scripts, the build fails. Not perfect, but the problem is immediately detected and the relevant people are notified of the situation. The problem can be resolved within minutes.</li>
<li>The <a href="http://en.wikipedia.org/wiki/Silver_bullet#Idiomatic_usage" target="_blank">Silver Bullet</a> for me, was the addition of the <a href="http://ant.apache.org/ivy/" target="_blank">Ivy Dependency Management</a> tool into our build process. Because the build system and IDE share the same dependency configuration, the project&#8217;s dependencies were now managed in single place. Using the <a href="http://ant.apache.org/ivy/ivyde/" target="_blank">IvyDE</a> plug-in, Eclipse simply worked, with no additional configuration. Using the externalized dependencies and basic Ant targets, the project could create a robust, change resilient build system. To achieve this level of robustness, I took advantage of the <a href="http://ant.apache.org/ivy/history/2.0.0/use/postresolvetask.html" target="_blank">Ivy post resolve tasks</a>. It was not until I discovered how easily they could isolate the build scripts from the actual dependencies, did it all come together. The real beauty of this approach is that no files (dependencies) are directly referenced. The post resolve tasks create variables which contain all of the <em>appropriate</em> files; the build script can then treat these variables generically, without concern. Nice and clean!</li>
</ul>
<p>It was an unstated, fundamental requirement to have no &#8220;direct&#8221; dependency on Eclipse; such that we could all revert back to the wonderful world of Emacs tomorrow, should the need arise. I don&#8217;t think <em>which </em>IDE a project chooses to use, is really that important. I am apparently an Eclipse snob; but all I <em>really </em>care about is having Emacs key-bindings! If a majority of the team works on the same platform, I do believe there is <strong>real value</strong> around this <strong>continuity</strong>; that just happens to be Eclipse for me!</p>
<p>I have several other reasons for checking in configuration files:</p>
<ul>
<li>It quickly highlights wrong doing! If a developer checks in something specific to their environment, they will break everyone on the team. My goal is for complete project neutrality: check out on any machine, in any directory, and the project is guaranteed to build and deploy.  Additionally, check the project out in Eclipse and it should build with no issues, within minutes.</li>
<li>Not all developer&#8217;s actually care about tools. Some developers simply want their environment setup for them. They have no desire to figure out how Eclipse formats code when you save a file or how to configure and run quality checks after each build; implementing business solutions is their primary concern.</li>
<li>Enhanced team productivity. If everyone&#8217;s world (environment) is the same, it is so much easier to spin up a new developer or help a teammate with a problem. Would you really want each developer to go through the discovery process of setting up the project? In the big picture, isn&#8217;t this really just wasted time?</li>
<li>Helping to ensuring quality coding practices and standards. We also check in the Checkstyle, PMD, and Findbugs configuration and rule sets. Taking advantage of the sharable configuration files, both the Eclipse plug-ins and Ant tasks work from the same rule sets, ensuring complete consistency across the team, no matter where the rules are executed.</li>
</ul>
<p>I appreciate all of the recent comments; thanks for taking the time to reply. They enable me think about and reconsider the decisions I have made, giving me yet another opportunity to learn from my mistakes!  As far as Eclipse configuration files are concerned, I strongly believe there is far <strong>more project value</strong> gained by including them, as compared to <em>requiring </em>each developer manage their own environment. One final note, I have no issue with developers <em>wanting </em>to manage their own world, more power to them!  I would hope that these efforts would be to make the overall, shared environment a little better; after all, everyone should be contributing to all aspects of the project! The real point is that everyone <em>should not be required</em> to configure a project, unless they really want or need to.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beilers.com/2010/07/eclipse-project-configurations-shared-or-personal/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unfriendly Developer Pactices &#8211; Adding uncessary environmental complexities</title>
		<link>http://www.beilers.com/2010/07/unfriendly-developer-pactices-adding-uncessary-environmental-complexities/</link>
		<comments>http://www.beilers.com/2010/07/unfriendly-developer-pactices-adding-uncessary-environmental-complexities/#comments</comments>
		<pubDate>Sun, 11 Jul 2010 19:10:51 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.beilers.com/?p=744</guid>
		<description><![CDATA[A couple of years ago, I began focusing on construction and deployment complexities. I had just joined a new team and began looking for the commonalities between their architectures and environments. Needless to say, they were all different. The most disturbing issue was the amount of effort required for a new developer to start working [...]]]></description>
			<content:encoded><![CDATA[<p>A couple of years ago, I began focusing on construction and deployment complexities. I had just joined a new team and began looking for the commonalities between their architectures and environments. Needless to say, they were all different. The most disturbing issue was the amount of effort required for a new developer to start working with an application. If there was any project documentation, it was probably out of date; resulting in hours or even days of trial and error to actually build and deploy the system. In this post, I&#8217;m talking about is building and deploying J2EE applications.  The following list represents the top developer <i>unfriendly</i> practices I have observed.</p>
<table style="border-collapse: collapse;" align="center" border="1" width="90%">
<tbody>
<tr align="center" bgcolor="lightgrey">
<td><b>Developer Unfriendly Practices</b></td>
</tr>
<tr>
<td>
<ol>
<li><img style="max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2010/07/black-box.png" />Without first running a <i>setup </i>task in <a target="_blank" href="http://ant.apache.org/">Ant</a>, the project does not build in <a target="_blank" href="http://www.eclipse.org/">Eclipse</a>.</li>
<li>The Eclipse .project and .classpath files are not checked into version control system with the source.</li>
<li>The project&#8217;s Ant scripts are generic and non-deterministic; they have to be edited for your individual environment before building the project. </li>
<li>The project requires specific libraries or packages to be installed on your machine before it can be built.</li>
<li>Eclipse project not configured as an <a target="_blank" href="http://www.eclipse.org/webtools/">WTP</a> project.</li>
<li>Minimal <a target="_blank" href="http://www.junit.org/">jUnits</a> and no <a target="_blank" href="http://martinfowler.com/articles/continuousIntegration.html">continuous integration</a>.</li>
<li><a target="_blank" href="http://docs.sun.com/source/819-0215/containers.html">J2EE container</a> dependencies built into the project.</li>
</ol>
</td>
</tr>
</tbody>
</table>
<p>After experiencing these challenges, I began a quest of environmental simplification. I understand there are numerous reasons why projects end up with these unfriendly  characteristics,&nbsp; but leaving them unaddressed was just not in my character! I made it my personal mission to ensure that each project that I worked on, I would try to leave it in a <i>little </i>better shape than when I arrived. This is a never ending activity; I hope that those that come after me will have a similar philosophy and continue my quest. It is amazing how easy and fast an application can atrophy, eliminating all of the positive changes that had been previously applied. To keep things simple, I came up with following three project requirements. I try to weave some aspect of them into the development process and architecture of each project that I work on.</p>
<table style="border-collapse: collapse;" align="center" border="1" width="60%">
<tbody>
<tr align="center" bgcolor="lightgrey">
<td><b>Project Principles</b></td>
</tr>
<tr>
<td><img style="max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2010/07/ruler.png" />
<ol>
<li>Self-Containment, No External Configuration.</li>
<li>Environmental Awareness</li>
<li>Change Resilient</li>
</ol>
</td>
</tr>
</tbody>
</table>
<p>I hope that most of these principles seem like common sense and are nothing new. Much like many of the <a target="_blank" href="http://martinfowler.com/bliki/PrinciplesOfXP.html">XP principals</a>, they are <i>not </i>new or revolutionary, just good reminders of often overlooked practices. I will try to elaborate on each principal in a future post, hopefully, in the near future!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beilers.com/2010/07/unfriendly-developer-pactices-adding-uncessary-environmental-complexities/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Eclipse 3.6 Helios: WTP + Ivy and Deployment Assembly&#8230; Working reliably at last?</title>
		<link>http://www.beilers.com/2010/07/eclipse-3-6-helios-wtp-ivy-and-deployment-assembly-working-reliably-at-last/</link>
		<comments>http://www.beilers.com/2010/07/eclipse-3-6-helios-wtp-ivy-and-deployment-assembly-working-reliably-at-last/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 05:01:33 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Software Development]]></category>

		<guid isPermaLink="false">http://www.beilers.com/?p=711</guid>
		<description><![CDATA[I have a love/hate relationship with the IvyDE plug-in when it comes to WTP project types. I have literally wasted hours of time trying to get IvyDE to publish into my web application. It is very strange, no pattern at all; it works fine for days at a time and then decides to stop working&#8230; [...]]]></description>
			<content:encoded><![CDATA[<div><img style="max-width: 800px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" src="http://www.beilers.com/wp-content/uploads/2010/06/ivydelogo.png" alt="" width="89" height="62" />I have a love/hate relationship with the <a href="http://ant.apache.org/ivy/ivyde/index.html" target="_blank">IvyDE</a> plug-in when it comes to <a href="http://www.eclipse.org/webtools/" target="_blank">WTP</a> project types. I have literally wasted hours of time trying to get IvyDE to publish into my web application. It is very strange, no pattern at all; it works fine for days at a time and then decides to stop working&#8230; I don&#8217;t believe that the team has actually developed a &#8220;reproducible pattern&#8221; of forcing WTP to publish the Ivy dependencies; it is a continual &#8220;trial and error&#8221; of the following steps, clean the project, Ivy resolve, clean Tomcat, un-deploy the application, redeploy the application; one of these will eventually cause WTP to push the dependencies over. Can you say, frustrating?<img style="max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2010/06/WebDeploy.png" alt="" /></div>
<p>Some developers just give up and use Ivy retrieve to dump the dependencies into the WEB-INF/lib directory; this will work, but is not a very elegant solution. To make this work, you are required to refresh the workspace after the Ivy resolve/retrieve completes, which pushes the dependencies into the web application; nasty.</p>
<p><img class="alignleft" style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" title="Reference Type" src="http://www.beilers.com/wp-content/uploads/2010/06/ReferenceType.png" alt="" width="368" height="298" />This problem may have been answered in Eclipse 3.6 (Helios). I tested some of the 3.6 milestone releases, but was fooled into thinking that the IvyDE and WTP integration was broken; the J2EE module dependency option was no longer visible on the project properties. I was too busy to investigate (or look at other menu options!), I just assumed that it was just broken. To make a long story short, there is a new menu option called Deployment Assembly. The new option is a much simpler concept to comprehend; it is more flexible and actually seems to work consistently with Ivy. The most obvious change is the presentation; it gives a better picture of how the web application will be assembled. The old J2EE Module Dependency manager allowed you to choose components, but might have been more tailored for building an EAR file, rather than a WAR. Another issues is the inability to exclude any of the &#8220;source&#8221; folders. If you manage your unit test classes in a separate source folder, they would also be included in the application (WAR). Not necessarily a problem, but not very clean and could possibly hide unintended dependencies between the two source trees.</p>
<p><img style="max-width: 800px; float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2010/06/Ivy.png" alt="" />When using IvyDE, the first step is to add an Ivy classpath container. This will add Ivy dependencies to the classpath of your Eclipse project. If you have a WTP project, you will also need these dependencies copied to the WEB-INF/lib directory. This is easily accomplished by clicking the Add button under Deployment Assembly (under project properties). You can add other projects and external jars as well. Here is where it gets interesting, there appears to be two different options. If you have already added the Ivy classpath container to your build path, click the “Referenced Classpath Entries”  option and select the ivy.xml file from your project. There might be a little display problem, as the &#8220;Deploy Path&#8221; for the classpath container does not appear correct, but it does put the libraries in the correct directory location.</p>
<p>The second option is to remove the Ivy classpath container from the build path, and re-add it under the new Deployment Assembly properties. This option displays properly and copies the dependencies to the WEB-INF/lib directory.  I actually prefer this option, but there is a significant problem; there is no way to  re-resolve the dependencies; it appears you need to delete the container and re-add it, if you change your ivy.xml file.  Rather annoying!</p>
<p>I started writing this blog a couple of weeks ago and was under the impression that the new version was working perfectly. However, I&#8217;m currently back to where I started, with inconsistent, unexplainable behavior. Time to submit a question to the Ivy support list. Hopefully, I will have something to report back soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beilers.com/2010/07/eclipse-3-6-helios-wtp-ivy-and-deployment-assembly-working-reliably-at-last/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>NetBeans Unit Test Creation better than Eclipse? And where should unit test live?</title>
		<link>http://www.beilers.com/2009/11/netbeans-unit-test-creation-better-than-eclipse-and-where-should-unit-test-live/</link>
		<comments>http://www.beilers.com/2009/11/netbeans-unit-test-creation-better-than-eclipse-and-where-should-unit-test-live/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 10:00:17 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.beilers.com/?p=579</guid>
		<description><![CDATA[I seem to work on a variety of Java applications and find that unit testing is one of the most varied (implementation-wise) pieces of the development process. These applications, created by different development staffs, many which have evolved over the pass few years are all very unique&#8230; kind of makes me wonder why? That is [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://netbeans.org/" target="_blank"><img style="float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/11/netbeans-logo.png" alt="" /></a>I seem to work on a variety of Java applications and find that unit testing is one of the most varied (implementation-wise) pieces of the development process. These applications, created by different development staffs, many which have evolved over the pass few years are all very unique&#8230; kind of makes me wonder why? That is a topic for another post!</p>
<p>One debate I always seem to encounter is around  where to actually save the unit tests? Should we do in-package testing or rely on the public API. My preferences are pretty simple:</p>
<ul>
<li>Unit test should not be stored with the code, but rather created under a secondary source root. On my early projects, I created a sub-package under each package, called <em>test,</em> to manage the relevant files (tests and data). I later realized that I could simplify the Ant build process and enable in-package testing by creating a separate source tree. I have seen projects commingle the actual source code, unit tests, and even the test data files, all within the single source tree. This defaults the testing strategy to in-package testing, and discourages (or even prevents) API testing. I find this approach rather messy and unclear. This approach also complicates the Ant build process; at some point during the process, the unit tests, supporting classes and files should be separated from the actual deployable content.</li>
<li>I like to name my secondary source root <a href="http://www.google.com/search?q=test+driven+development&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=com.ubuntu:en-US:official&amp;client=firefox-a" target="_blank"><em>tdd</em></a>. I know it is not widely practiced, but my hope is that if the developers see that TDD directory every time the open up their IDE, the concept might actually wear off! Maybe someday, one developer (hopefully more) will actually be challenged to write their unit tests first. With Eclipse and jUnit 4.x annotations, I seem to always start with my unit test, and sometimes even refactor code from the unit test into the actual class; kind of a high-bread TDD process, but the thought is always there!</li>
<li>I also prefer the public API testing strategy verses in-package testing. This line of thinking always takes me back to the <a href="http://code.google.com/p/testability-explorer/" target="_blank">Testability Explorer</a>. The concepts behind this metric enforce the idea public API testing and is worth a quick read. Add the Spring Framework to the mix, enabling dependency injection and I see little need for in-package testing. This is typically accomplished by creating a &#8220;test&#8221; package as the root of the secondary source tree, with sub-packages reflecting the package hierarchy of your classes to be tested. <em>I truly believe that defaulting to in-package testing allows the developers to be very sloppy and even unaware that they are testing a specific internal implementation, rather than externalized behavior presented by the API&#8230; This is VERY bad practice in my opinion. </em></li>
<li>If there is a need for in-package testing, then the sub-package structure of the classes to be tested can be recreated under the secondary source tree, maintaining a clean separation between the source and test cases. These test should be considered an <em>exception</em> to the norm, rather than common practice. I would hope for a 90-10 or 80-20 ratio, with a majority of the test falling under the <em>test</em> package root (in-package is the minority).</li>
</ul>
<p><img style="max-width: 800px; float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/11/NetBeansProject1.png" border="1" alt="" />I am kind of tied to Eclipse as my IDE, but do play with NetBeans every so often. I think I could switch to NetBeans, my only <em>real</em> requirement is that the IDE must have Emacs key bindings; some habits are just too hard to break! NetBeans looks like an pretty good tool and seems to be very responsive on my Ubuntu box; I especially like the way it manages plug-ins.  One interesting thing that NetBeans does (maybe a little better than Eclipse), is manage unit testing. NetBeans will automatically create the secondary source tree, but seems to default to in-package testing. It is very easy to add the additional <em>test</em> package into the package structure to enable API testing. I also like the way that NetBeans separates the Test Libraries from the regular Libraries. I&#8217;m not sure how well this would work when you use a tool like <a href="http://ant.apache.org/ivy/" target="_blank">Ivy</a>, but does make it more obvious, as to which libraries are used for execution verses unit testing&#8230; If you do happen to generate a unit test from an existing class, NetBeans will generate more code than Eclipse. I&#8217;m not sure how useful this code is, but it does try to create the object under test, invoke the get() methods and perform assertions on the returned values. Might be more noise that it is worth, and anyway, you should be writing the unit test first!</p>
<p>The bottom line is that Unit testing should be easy and valuable. If it becomes too hard or complicated, it might be time to re-address how the unit test strategy is being implemented.</p>
<p><img style="float: none;" src="http://www.beilers.com/wp-content/uploads/2009/11/NetBeansJunit.png" border="1" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.beilers.com/2009/11/netbeans-unit-test-creation-better-than-eclipse-and-where-should-unit-test-live/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Eclipse &#8211; Ubuntu 9.1 Button Issue&#8230;</title>
		<link>http://www.beilers.com/2009/11/eclipse-ubuntu-9-1-button-issue/</link>
		<comments>http://www.beilers.com/2009/11/eclipse-ubuntu-9-1-button-issue/#comments</comments>
		<pubDate>Sun, 08 Nov 2009 22:18:36 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.beilers.com/2009/11/eclipse-ubuntu-9-1-button-issue/</guid>
		<description><![CDATA[This was making me crazy the other night&#8230; I did not spend too much time on it, thinking is was just me. But, after upgrading my laptop and encountering the exact same problem, I knew there was more too it. It seemed like only the cancel buttons actually worked; all of the next and finish [...]]]></description>
			<content:encoded><![CDATA[<div align="left"><img style="float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/11/GTK.svg.png" alt="" /><img style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/11/Eclipse.jpeg" alt="" />This was making me crazy the other night&#8230; I did not spend too much time on it, thinking is was just me. But, after upgrading my laptop and encountering the exact same problem, I knew there was more too it. It seemed like only the <i>cancel</i> buttons actually worked; all of the <i>next</i> and <i>finish</i> buttons did absolutely nothing, other then beep!&nbsp; I soon realized that I could use the tab key and press enter to move to the next screen; but that did not make me very happy.</div>
<p>A quick Google search turned up several people with the same exact problem. It was kind of interesting. The Ubuntu developers did not want to take responsibility for the problem and said it was an Eclipse issue. The Eclipse community said they never had to do anything special for Eclipse to run on Ubuntu; it was looking like a stand off! I did find the official bug report filed with <a target="_blank" href="https://bugs.launchpad.net/ubuntu/+source/eclipse/+bug/443004">Launchpad.net</a>, it says the problem is resolved. However, without overriding the following variable, Eclipse is not very usable.
<p style="border: thin solid black; padding: 1mm; background: lavender none repeat scroll 0% 50%; -moz-background-clip: border; -moz-background-origin: padding; -moz-background-inline-policy: continuous;"><code>export GDK_NATIVE_WINDOWS=1</code></p>
<p> <img style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/11/images.jpeg" alt="" />It also <a target="_blank" href="http://www.google.com/search?q=export+GDK_NATIVE_WINDOWS%3D1&amp;ie=utf-8&amp;oe=utf-8&amp;aq=t&amp;rls=com.ubuntu:en-US:official&amp;client=firefox-a">appears</a> that this problem is affecting many other tools on the new 9.1 release as well. This simple fix will get you back into action, without having to wait for the real fix.</p>
<div class="zemanta-pixie"><img class="zemanta-pixie-img" alt="" src="http://img.zemanta.com/pixy.gif?x-id=aa64b901-de4c-8727-90d7-cb60dc1ece85" /></div>
]]></content:encoded>
			<wfw:commentRss>http://www.beilers.com/2009/11/eclipse-ubuntu-9-1-button-issue/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Overview of the Eclipse Galileo Plug-in Manager</title>
		<link>http://www.beilers.com/2009/07/overview-of-the-eclipse-galileo-plug-in-manager/</link>
		<comments>http://www.beilers.com/2009/07/overview-of-the-eclipse-galileo-plug-in-manager/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 01:56:22 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://www.beilers.com/?p=487</guid>
		<description><![CDATA[The Eclipse developers did a really nice upgrade to the Plug-in manager in the new Galileo release. Managing plug-in sites seems much easier and cleaner with the new Available Software Sites menu option in the main preferences area. Not really a new feature, but seemingly more obvious, is the ability to import and export update [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.beilers.com/wp-content/uploads/2009/07/UpdateSites.xml" target="_blank"><img style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/07/moz-screenshot-9.jpg" alt="" /></a><img style="float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/07/moz-screenshot-4.jpg" alt="" />The Eclipse developers did a really nice upgrade to the Plug-in manager in the new Galileo release. Managing plug-in sites seems much easier and cleaner with the new <strong><em>Available Software Sites</em></strong> menu option in the main preferences area. Not really a new feature, but seemingly more obvious, is the ability to import and export update sites to and from your team mates. I have exported my settings and linked them to the XML file icon on the left. Simply download the XML file and import them into Eclipse and you are ready to go. I can&#8217;t believe I never used this feature in the previous versions!</p>
<p>Also, don&#8217;t forget that you can also have Eclipse automatically find new updates for you. <img style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/07/moz-screenshot-5.jpg" alt="" />This is not a new feature either, but one that I always seem to forget! I just hit the <strong><em>Check for updates</em></strong> option every so often; not nearly as convenient! You can find this option under the <strong><em>Install/Update</em></strong> preferences panel as well.</p>
<p>Once you have your software sites configured, it is time to install or update your configuration.  Under the main <strong><em>Help</em></strong> option, select <strong><em>Install New Software</em></strong>.  You can select multiple plug-ins for installation  or use the new <em><strong>Work with:</strong></em> option. You can filter your plug-ins based on a specific site&#8217;s configuration file. I&#8217;m not exactly sure why I like this better, but the old multi-tab Ganymede version was just too busy. I think the new screens are much cleaner and easier to work with.<img style="float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/07/moz-screenshot-10.jpg" alt="" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.beilers.com/2009/07/overview-of-the-eclipse-galileo-plug-in-manager/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse Launch Tip</title>
		<link>http://www.beilers.com/2009/07/eclipse-launch-tip/</link>
		<comments>http://www.beilers.com/2009/07/eclipse-launch-tip/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 00:40:29 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://www.beilers.com/2009/07/eclipse-launch-tip/</guid>
		<description><![CDATA[I have to give credit to a co-worker who overheard me complaining about Eclipse one day&#8230; Ever since upgrading to the Ganymede version of Eclipse, the launch buttons for executing and debugging applications and unit tests were tied to the currently active editor. This was so annoying, I could not believe the Eclipse developers changed [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/07/moz-screenshot-63.jpg" alt="" /><img style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/07/moz-screenshot-71.jpg" alt="" />I have to give credit to a co-worker who overheard me complaining about Eclipse one day&#8230; Ever since upgrading to the Ganymede version of Eclipse, the launch buttons for executing and debugging applications and unit tests were tied to the currently active editor. This was so annoying, I could not believe the Eclipse developers changed this behavior. Every time I clicked on the button, Eclipse would ask me what I wanted to do&#8230;. No, I don&#8217;t want to execute the XML file I was looking! No, I don&#8217;t want to execute the random Java file that I just fixed; I want to run the last unit test! </p>
<p>Pre-Ganymede versions of Eclipse simply ran the previously launched application or unit test. It was so convenient to just click the button and rerun the test. Apparently, I was not smart enough to look at all of the available options in the preferences menu; I conditioned myself to click on the little arrow next to the launch buttons and select the test I wanted to run from the menu. To my surprise, there was a new menu option that controlled the behavior of these buttons! Unfortunately, the default behavior is the un-desirable one, in my opinion; but with a quick click of the mouse, the world is right again! Hopefully, this little tip will make your Eclipse usage a little happier and smoother too. Thanks Jason!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beilers.com/2009/07/eclipse-launch-tip/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Galileo Eclipse Update</title>
		<link>http://www.beilers.com/2009/06/galileo-eclipse-update/</link>
		<comments>http://www.beilers.com/2009/06/galileo-eclipse-update/#comments</comments>
		<pubDate>Mon, 15 Jun 2009 23:27:50 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://www.beilers.com/2009/06/galileo-eclipse-update/</guid>
		<description><![CDATA[I might be in the minority, but I&#8217;m just not that excited by this release of Eclipse. I started using the RC3 version for real last week, and have had no issues at all; it seems very solid.  I attempted to use with the first couple release candidates, but they did not seem to play [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/06/EclipseEE.png" alt="" /><img style="float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/06/moz-screenshot-7.jpg" alt="" />I might be in the minority, but I&#8217;m just not that excited by this release of Eclipse. I started using the RC3 version for real last week, and have had no issues at all; it seems very solid.  I attempted to use with the first couple release candidates, but they did not seem to play well with the Subversion plug-ins. I&#8217;m sure it was user error; it could not have been that messed up! For whatever reason, Eclipse completely toasted my work area (multiple attempts) after every commit. Needless to say, I did not even bother using them.  I have Eclipse integrated with the Spring IDE, Checkstyle, PMD, and Ivy plug-ins. I heavily use the Web Tools Platform for deploying web applications to Tomcat.  At least for what I have been doing lately, there is nothing to get me really excited. I think the best part is, that everything still just works! I notice a new little feature every so often, but nothing that says that&#8217;s a keeper! I have been using the <a href="http://eclipse-tools.sourceforge.net/implementors/" target="_blank">Implementors</a> plug-in for many<img style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/06/Eclipse-url-hover.png" alt="" /> years and was glad to see they finally implemented this feature within Eclipse. It works pretty well,  but they only implemented half of the functionality! With the Implementors plug-in, you can click on the interface method and ask to see all of the concrete implementations.  You can, sort of, get the same functionality through the type hierarchy view, but not as nicely. After seeing the Open Implementation feature, I thought this was a new feature too; I did not know that you could just click on a URL and have it open up in the browser, kind of handy!<img style="float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/06/moz-screenshot-6.jpg" alt="" /></p>
<p>One other thing that seems new, is the ability to search using partial camel-case entries. If you are really lazy or can not spell worth a crap, then you will probably use this feature a lot. Simple type in mixed case letters in the entry field, and Eclipse will automatically match to those classes. I thought the bold-ing of the matched letters was a nice touch.</p>
<p>There are two features that need some work, especially when you are moving between (upgrading) Eclipse versions.</p>
<ol>
<li> I thought  the <strong>Clean Up</strong> and <strong>Save Actions</strong> functionality were excellent additions to the Ganymede release. I still can not figure out why I have to enter my configurations on both option panels. You can import/export the configuration on the <strong>Clean Up</strong> panel, but not on the <strong>Save Actions</strong> panel; you have to re-enter everything. I understand that some people might want different behaviors, but you should at least be able to import/export your settings on the <strong>Save Actions</strong> panel too; allowing us to reuse the other panel&#8217;s settings. I thought for sure this would have been fixed, small  bummer.</li>
<li> The Content Assist Favorites drives me crazy, especially because I&#8217;m a big jUnit believer/implementer. Because I only use jUnit 4.x annotations and static import assertions in my unit tests, Eclipse is not smart enough to add the imports when I hit <em>&lt;CTRL&gt;&lt;SHIFT&gt;o</em> or ask for the content assist. Maybe I learned something new tonight, from this <a href="http://priyanshugoyal.wordpress.com/2008/11/02/eclipse-tip-static-import-help/" target="_blank">blog</a>.  I typically enter all of the jUnit assertion signatures (method names only) that I typically use. It looks like their might be an easier way, just by specifying the Type, I will have to try this tomorrow! Personally, I think jUnit assertions should be added by default, but that is just me!</li>
</ol>
<p>If I&#8217;m missing out on a new killer Eclipse feature that was added to Galileo, please let me know! I don&#8217;t want to take away any of the great work that was done on this release, unfortunately, I don&#8217;t use any of those new additions! But I don&#8217;t think you can go wrong with this upgrade.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beilers.com/2009/06/galileo-eclipse-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hudson Continuous Integration and Eclipse Update Sites</title>
		<link>http://www.beilers.com/2009/06/hudson-continuous-integration-and-eclipse-update-sites/</link>
		<comments>http://www.beilers.com/2009/06/hudson-continuous-integration-and-eclipse-update-sites/#comments</comments>
		<pubDate>Thu, 11 Jun 2009 00:23:24 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Continuous Integration]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://www.beilers.com/2009/06/cool-hudson-integration-with-eclipse-update-sites/</guid>
		<description><![CDATA[I was looking for a development build of the IvyDE plug-in for Eclipse tonight and I stumbled across the Apache Hudson server. You have to check this out. Pretty cool, Hudson running over 150 jobs!  Their build farm consist of both Solaris and Ubuntu servers. What I found most interesting was how they used Hudson [...]]]></description>
			<content:encoded><![CDATA[<p><img style="float: left; margin-top: 10px; margin-bottom: 10px; margin-right: 10px;" src="http://www.beilers.com/wp-content/uploads/2009/06/moz-screenshot-5.jpg" alt="" />I was looking for a development build of the IvyDE plug-in for Eclipse tonight and I stumbled across the <a href="http://hudson.zones.apache.org/hudson/" target="_blank">Apache Hudson server</a>. You have to check this out. Pretty cool, Hudson running over 150 jobs!  Their build farm consist of both Solaris and Ubuntu servers. What I found most interesting was how they used Hudson for creating an Eclipse update site. I subscribe to the Hudson mailing list, <a href="http://www.nabble.com/Hudson-users-f16872.html" target="_blank">summarized here</a>, to follow what is going on with the project. People seem to use Hudson for a variety of different purposes, such as a cross platform testing tool and even as a deployment tool. I have only been able to get people interested in Hudson as a &#8220;Cruise Control&#8221; replacement&#8230;. but at least it is a good start!</p>
<p>This site also demonstrates how multiple projects can be linked together, triggering builds of dependent downstream projects.  I&#8217;m not exactly sure how these jobs were assembled, but at a high-level, Ivy and IvyDE each have its own build loop (job). Each job is responsible for creating build artifacts. After a successful build of either job, a third job is triggered which creates/updates and <a href="http://hudson.zones.apache.org/hudson/view/Ant/job/IvyDE-updatesite/lastSuccessfulBuild/artifact/trunk/build" target="_blank">Eclipse update site</a>.  Pretty slick. (As any FYI, the dev plug-in looks better, new presentation and several new new options)</p>
<p>Another small plug for Continuous Integration. We recently set up something kind of cool (trivial, but cool)! As we continue trying to convince the powers that be, to move away from Weblogic towards Tomcat (or even JBoss), we found a really nice little feature. Since Tomcat and JBoss can hot deploy a new version of the WAR file, just by noticing a difference on the file system, combined with the fact that we can spin up a Tomcat instance in about 2 minutes, we actually created an auto deployment mechanism.  Our Weblogic environment seems so cumbersome in comparison&#8230;. We could have built the WAR and deployed in in our build loop, but that would have minimally added another 25 minutes to the loop (let&#8217;s just say we have an interesting deployment process). With Tomcat, we did a one time deployment to the location of the WAR file inside the Hudson workspace. Now, with each series of check-ins, we build the WAR as normal and Tomcat instantly deploys it, in seconds! If we were a little more sophisticated, we would write some jUnits to bang against it, making sure we did not break anything or create any new dependencies.  Maybe I will throw that in during my next project!!! I know this integration was possible before (with Weblogic), but no way as simple!  Even better Continuous Integration&#8230; on my last project I had Ant spin up an embedded Jetty web server, ran my jUnits against the Clover instrumented code, and finally had Ant shut down Jetty&#8230;. Pretty slick, from a code coverage collection perspective&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beilers.com/2009/06/hudson-continuous-integration-and-eclipse-update-sites/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Best Eclipse Plug-ins</title>
		<link>http://www.beilers.com/2009/06/the-best-eclipse-plug-ins/</link>
		<comments>http://www.beilers.com/2009/06/the-best-eclipse-plug-ins/#comments</comments>
		<pubDate>Wed, 03 Jun 2009 01:50:17 +0000</pubDate>
		<dc:creator>Phil</dc:creator>
				<category><![CDATA[Eclipse]]></category>

		<guid isPermaLink="false">http://www.beilers.com/?p=424</guid>
		<description><![CDATA[I’ve ran across several blogs that listed their favorite Eclipse plug-ins.&#160; Since I am such a huge Eclipse fan and am always preaching about the power and benefits, it seemed like a good idea for me to document my preferences and experiences. First, you need to start with the Eclipse Java EE version, probably the [...]]]></description>
			<content:encoded><![CDATA[<p>I’ve ran across several blogs that listed their favorite Eclipse plug-ins.&#160; Since I am such a huge Eclipse fan and am always preaching about the power and benefits, it seemed like a good idea for me to document my preferences and experiences. First, you need to start with the Eclipse Java EE version, probably the Ganymede version (3.4), but Galileo (3.5) will be released next week. This Eclipse bundle will give you more than you need, but is the best starting point. Out of the box, Eclipse has many useful features: </p>
<ul>
<li>Mylyn &#8211; Task focused development support; here is some background <a href="http://www.beilers.com/2009/03/mylyn-%e2%80%93-task-focused-development/">information</a>. </li>
<li>Web Standard Tools – Gives you all of the nice editors for XML, HTML, JSP, etc. </li>
<li>J2EE Standard Tools – Provides support for J2EE projects, such was the Servlet and EJB. </li>
<li>Remote System Explorer – Excellent plug-in for accessing remote systems. It enables you to remotely edit files and provides shell access, including SSH. </li>
</ul>
<p>Here is my personal Top 10+ list of Eclipse Plug-ins:</p>
<table border="1" cellspacing="0" cellpadding="2" width="90%">
<tbody>
<tr bgcolor="#000000">
<td valign="top" width="102"><font color="#ffffff">Category</font></td>
<td valign="top" width="100"><font color="#ffffff">Plug-in</font></td>
<td valign="top" width="707"><font color="#ffffff">Overview</font></td>
</tr>
<tr>
<td valign="top" width="102">Code Quality</td>
<td valign="top" width="100"><a href="http://checkstyle.sourceforge.net/">Checkstyle</a></td>
<td valign="top" width="707">Simple to use. Great for keeping the code consistent and helps enforce many good coding standards. My only dislike of this tool is the suppression implementation. Hopefully they will move to the PMD annotation style. A major new version (5.0) was just released, I have not tested it yet.</td>
</tr>
<tr>
<td valign="top" width="102">Code Quality</td>
<td valign="top" width="100"><a href="http://pmd.sourceforge.net/">PMD</a></td>
<td valign="top" width="707">Little more complex to setup than Checkstyle, but is probably my favorite plug-in. It looks at the structure of your code, evaluating cyclomatic complexity, jUnit usage, and attribute scoping. It has some overlap with Checkstyle, but both tools together give you a complete solution.</td>
</tr>
<tr>
<td valign="top" width="102">Build Support</td>
<td valign="top" width="100"><a href="http://ant.apache.org/ivy/ivyde/">Ivy</a></td>
<td valign="top" width="707">I have blogged about Ivy in the past. Not my favorite plug-in, but required when using Ivy within Eclipse. If you work on multiple projects or do a lot of prototyping, Ivy is an awesome time saver. </td>
</tr>
<tr>
<td valign="top" width="102">Construction</td>
<td valign="top" width="100"><a href="http://springide.org/blog/">Spring IDE</a></td>
<td valign="top" width="707">If you develop Spring-based applications, you will want to install this plug-in; it is a must have! The plug-in has numerous helpful views; and makes creating and managing your context files much simpler.</td>
</tr>
<tr>
<td valign="top" width="102">Construction</td>
<td valign="top" width="100"><a href="http://log4e.jayefem.de/">Log4E</a></td>
<td valign="top" width="707">Log4E make Java logging significantly easier, no more cutting and pasting from other classes. The free version supports the common logging frameworks, but unfortunately not the current open-source community favorite, <a href="http://www.slf4j.org/">SLF4J</a>. </td>
</tr>
<tr>
<td valign="top" width="102">Construction</td>
<td valign="top" width="100"><a href="http://www.eclipse.org/subversive/">Subversive</a><a href="http://www.sqlexplorer.org/"></a></td>
<td valign="top" width="707">This plug-in is used to integrate Subversion into the Team Perspective/View. It also appears to no longer be required with Eclipse 3.5. </td>
</tr>
<tr>
<td valign="top" width="102">Construction</td>
<td valign="top" width="100"><a href="http://community.polarion.com/index.php?page=download&amp;project=subversive">Subversive Team Provider</a></td>
<td valign="top" width="707">There are two options for integrating Subversion into Eclipse, you can choose either the Tigris or Polarion implementation. The Tigris plug-in seemed easier to get working, but has less features than the Polarion implementation. I started with Tigris, but have settled on the Polarion version about a year ago.</td>
</tr>
<tr>
<td valign="top" width="102">Construction</td>
<td valign="top" width="100"><a href="http://eclipse-tools.sourceforge.net/implementors/">Implementors</a></td>
<td valign="top" width="707">This plug-in allows you to navigate from any interface to an implementation of that interface. Especially helpful when you are programming with the Spring Framework. This feature is finally part of Eclipse 3.5, so you might not needs this one any more.</td>
</tr>
<tr>
<td valign="top" width="102">Testing</td>
<td valign="top" width="100"><a href="http://www.atlassian.com/software/clover/">Clover</a></td>
<td valign="top" width="707">Clover is my only commercial plug-in; Clover is used to collect code coverage metrics. You have to be a little careful when using this plug-in. Never let Clover instrument the entire project, Eclipse will most likely become completely unresponsive and unusable. If you have a large project, I highly recommend using Eclipse <em>Working Sets</em> to selectively control which files you collect coverage data on. </td>
</tr>
<tr>
<td valign="top" width="102">Testing</td>
<td valign="top" width="100"><a href="http://findbugs.sourceforge.net/downloads.html">Findbugs</a></td>
<td valign="top" width="707">This is actually on my to do; I have been very happy using Findbugs thru Ant, but have not had a chance to try out the plug-in. </td>
</tr>
<tr>
<td valign="top" width="102">Database</td>
<td valign="top" width="100"><a href="http://www.sqlexplorer.org/">SQL Explorer</a></td>
<td valign="top" width="707">A database explorer tool is included with the Java EE Eclipse bundle, but it seems to have some usability issues. Most developers seem to be very dissatisfied with the included version and prefer the SQL Explorer plug-in. Probably not perfect, but it works good enough for us Java guys. </td>
</tr>
</tbody>
</table>
<p>Just a random link of several more plug-ins, <a title="http://www.plentyofcode.com/2007/07/most-useful-top-50-eclipse-plug-ins.html" href="http://www.plentyofcode.com/2007/07/most-useful-top-50-eclipse-plug-ins.h6tml">http://www.plentyofcode.com/2007/07/most-useful-top-50-eclipse-plug-ins.h6tml</a> There were a few plug-ins on the list that looked interesting, maybe you will think so too. Make sure you read the comments!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.beilers.com/2009/06/the-best-eclipse-plug-ins/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
