<?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>Shaun Abram &#187; Products</title>
	<atom:link href="http://www.shaunabram.com/category/products/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.shaunabram.com</link>
	<description>Java and Technology weblog</description>
	<lastBuildDate>Wed, 18 Jan 2012 00:39:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>JavaOne: Comparing Java Web Frameworks</title>
		<link>http://www.shaunabram.com/javaone-web-frameworks/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=javaone-web-frameworks</link>
		<comments>http://www.shaunabram.com/javaone-web-frameworks/#comments</comments>
		<pubDate>Tue, 04 Oct 2011 05:07:06 +0000</pubDate>
		<dc:creator>sabram</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[javaone]]></category>
		<category><![CDATA[javaone2011]]></category>
		<category><![CDATA[jsf]]></category>
		<category><![CDATA[tapestry]]></category>
		<category><![CDATA[webframework]]></category>
		<category><![CDATA[wicket]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=1398</guid>
		<description><![CDATA[The first talk I attended at this year&#8217;s JavaOne was &#8220;Choosing Your Java Web Framework&#8221; by Richard Pack from salesforce.com Overall, I found this a really interesting talk. It was lacking in any sales pitch, nor did it have the unquestioning devotion to one particular framework that I felt some of the Java FX talks [...]]]></description>
			<content:encoded><![CDATA[<p>The first talk I attended at this year&#8217;s <a href="http://www.oracle.com/javaone/index.html">JavaOne</a> was &#8220;Choosing Your Java Web Framework&#8221; by Richard Pack from salesforce.com</p>
<p>Overall, I found this a really interesting talk. It was lacking in any sales pitch, nor did it have the unquestioning devotion to one particular framework that I felt some of the Java FX talks had. Instead it seemed like an unbiased look at web frameworks in general and a handful of frameworks in more detail, based on Richard&#8217;s extensive and hands on experience and SalesForce and Hyperic.<br />
<span id="more-1398"></span></p>
<p>Richard started by listing some of the web frameworks that are out there today. He managed to list over 100 and there were still many missing (e.g. I couldn&#8217;t see <a href="http://liftweb.net/">Lift</a> or <a href="http://www.playframework.org/">Play</a> listed).</p>
<p>Given the abundance of choices, I think it was wise to start with a broad definition of what a web framework is. His definition included something that uses <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93presenter">MVP</a> or <a href="http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller">MVC</a> and provides an event model, resource management, data binding and that is ideally stateless.</p>
<p>He then talked about the evolution that has taken place from server side rendering to client side rendering (where you have a stateless server, with the component model living on the client side), and had a few interesting &#8216;Architecture Evolution&#8217; diagrams in <a href="http://bit.ly/jwf-2011">his slides</a>.</p>
<p>Next, Richard talked about the consequences of &#8216;choosing poorly&#8217;, i.e. picking a framework not best suited to your project&#8217;s needs (steep learning curves, excessive boilerplate code, unable to debug templates etc). I got the feeling Richard had learned many of these the hard way. He followed with a set of criteria to help better define your web framework requirements and selection criteria to avoid such issues, including usage scenarios, environment (intranet, mobile) and team competencies. On a side note, he pointed out that using forms for posting had become old hat (and those &#8216;Are you sure you wish to resend&#8217; popups are certainly annoying).</p>
<p>Then, on to the main event. Richard ran through 4 of the most popular web frameworks: <a href="http://grails.org/">Grails</a>, <a href="http://tapestry.apache.org/">Tapestry</a>, <a href="http://wicket.apache.org/">Wicket</a> and <a href="http://code.google.com/webtoolkit/">GWT</a>. In each case he compared them using criteria such as AJAX support, friendly URLs, open source license etc. I won&#8217;t try to recreate his findings (again, see <a href="http://bit.ly/jwf-2011">his slides</a>), but I did come away with a higher opinion of both Tapestry (its Form builder using POJOs sounds particularly cool) and Wicket and I am definitely keen to learn more on GWT (which Salesforce.com use extensively).</p>
<p>In some of the follow up questions, Richard was asked about <a href="http://www.oracle.com/technetwork/java/javaee/javaserverfaces-139869.html">JSF</a>, which he didn&#8217;t have very high opinion of (and he <a href="http://ptrthomas.wordpress.com/2009/05/15/jsf-sucks/">is</a> <a href="http://www.dzone.com/links/jsf_sucks_compendium_of_jsf_rantsreviews.html">not</a> <a href="http://blog.brunoborges.com.br/2010/12/top-10-reasons-why-i-dont-like-jsf.html">alone</a>). I was however disappointed to not hear some info (merits or otherwise) on <a href="http://javafx.com/">JavaFX</a>, especially considering its high visibility at this year&#8217;s conference, but I also understand no one can know all frameworks.</p>
<p>Finally, he finished with an interesting thought &#8211; that one of the main scalability issues with any web framework is people i.e. the competencies and preferences of the developers on the team.</p>
<p>Find Richard&#8217;s slides <a href="http://bit.ly/jwf-2011">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/javaone-web-frameworks/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Spring MVC Hello World</title>
		<link>http://www.shaunabram.com/springmvchelloworld/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=springmvchelloworld</link>
		<comments>http://www.shaunabram.com/springmvchelloworld/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 05:07:03 +0000</pubDate>
		<dc:creator>sabram</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[helloworld]]></category>
		<category><![CDATA[jsp]]></category>
		<category><![CDATA[servlet]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[springmvc]]></category>
		<category><![CDATA[webapp]]></category>
		<category><![CDATA[webframework]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=1376</guid>
		<description><![CDATA[There is a good Getting Started with Spring MVC blog post over on the Spring team blog. I have created several Spring MVC projects for both work and play, and am attaching my own simple version of the HelloWorld example here, based on the Spring blog example. Find my maven ready source here. Like my [...]]]></description>
			<content:encoded><![CDATA[<p>There is a good <a href="http://blog.springsource.com/2011/01/04/green-beans-getting-started-with-spring-mvc/">Getting Started with Spring MVC</a> blog post over on the Spring team <a href="http://blog.springsource.com/">blog</a>.</p>
<p>I have created several <a href="http://static.springsource.org/spring/docs/current/spring-framework-reference/html/mvc.html">Spring MVC</a> projects for both work and play, and am attaching my own simple version of the HelloWorld example here, based on the Spring blog example.<br />
Find <a href="http://www.shaunabram.com/attachments/SpringMVCHelloWorld.zip">my maven ready source here</a>.<br />
Like my previous <a href="http://www.shaunabram.com/helloworld-jsp-servlet/">JSP/Servlet example</a>, I find these templates useful for getting prototypes up and running.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/springmvchelloworld/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spring Enterprise Recipes</title>
		<link>http://www.shaunabram.com/spring-enterprise-recipes/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=spring-enterprise-recipes</link>
		<comments>http://www.shaunabram.com/spring-enterprise-recipes/#comments</comments>
		<pubDate>Fri, 04 Dec 2009 18:57:43 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=737</guid>
		<description><![CDATA[I recently found out that this book has just been published: &#8220;Spring Enterprise Recipes: A Problem-Solution Approach&#8221; It is written by Josh Long and Gary Mak. I have heard Josh speak at several conferences, followed his articles on TheServerSide (as well as on his blog) and recently got to hang out with him at the [...]]]></description>
			<content:encoded><![CDATA[<p>I recently found out that this book has just been published:<br />
&#8220;<a href="http://www.amazon.com/Spring-Enterprise-Recipes-Problem-Solution-Approach/dp/1430224975/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1259951733&#038;sr=8-1">Spring Enterprise Recipes: A Problem-Solution Approach</a>&#8221;<br />
It is written by Josh Long and Gary Mak. I have heard Josh speak at several conferences, followed his articles on TheServerSide (as well as on his <a href="http://www.joshlong.com">blog</a>) and recently got to hang out with him at the SoCal Code Camp. He is very knowledgeable about Spring and enterprise integration and since Gary is already an author of one of the leading Spring books (<a href="http://www.amazon.com/Spring-Recipes-Problem-Solution-Approach-Professionals/dp/1590599799/ref=sr_1_2?ie=UTF8&#038;s=books&#038;qid=1259951733&#038;sr=8-2">Spring recipes</a>), this should be a great book. I have just ordered my copy and will try to post a review when I am done with it.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/spring-enterprise-recipes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Data binding in Spring MVC</title>
		<link>http://www.shaunabram.com/data-binding-in-spring-mvc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=data-binding-in-spring-mvc</link>
		<comments>http://www.shaunabram.com/data-binding-in-spring-mvc/#comments</comments>
		<pubDate>Thu, 05 Nov 2009 08:35:08 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[spring]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=667</guid>
		<description><![CDATA[Two of the most important tasks carried out by Spring MVC when you submit a form are Data binding and validation. The following article discusses data binding, including the use of custom PropertyEditors, and some of the options available for registering such editors. Most of the information discussed applies to Spring in general, but its [...]]]></description>
			<content:encoded><![CDATA[<p>Two of the most important tasks carried out by Spring MVC when you submit a form are Data binding and validation.<br />
The following article discusses data binding, including the use of custom PropertyEditors, and some of the options available for registering such editors. Most of the information discussed applies to Spring in general, but its application in Spring MVC is my primary interest.</p>
<p>In a future article I would like to discuss validation including the use of custom error messages.</p>
<p>Note that these notes relate to version 2.5.6 of Spring, the latest production code at time of writing, and depend heavily on the corresponding <a href="http://static.springsource.org/spring/docs/2.5.x/reference/">Spring reference docs</a>.</p>
<p><span id="more-667"></span><br />
<script type="text/javascript"><!--
google_ad_client = "ca-pub-6044065224180784";
/* Midpage banner */
google_ad_slot = "3447137835";
google_ad_width = 468;
google_ad_height = 60;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></p>
<h2>Data Binding</h2>
<p>Spring MVC allows the use of command objects (aka form backing objects, model attributes, domain model objects &#8211; basically the objects used to transport data between your view and your controller) using just about any type. However, the Servlet API deals with form parameters as Strings. Spring uses a technique called data binding to covert between the String representation and the real underlying type. This enables user input to be bound to the objects you use to process user input. In other words, the values entered by a user in a form can be used to set the property values on a chosen object.<br />
As well as binding the values, Spring includes support for validation and binding result analysis. </p>
<p>The binding functionality is provided by Spring&#8217;s <a href="http://static.springsource.org/spring/docs/2.5.6/api/org/springframework/validation/DataBinder.html">org.springframework.validation.DataBinder</a> class.<br />
And when converting a String to some arbitrary type, DataBinders make use of ProperEditors. PropertyEditors are not Spring specific, but rather part of the <a href="http://java.sun.com/javase/7/docs/api/java/beans/PropertyEditor.html">JavaBeans API</a>.</p>
<h3>Using PropertyEditors</h3>
<p>Spring heavily uses the concept of PropertyEditors to effect the conversion between an Object and a String.<br />
Spring has a number of built-in PropertyEditors to make life easy (for a complete list, see <a href="http://static.springsource.org/spring/docs/2.5.x/reference/validation.html#beans-beans-conversion">here</a>).<br />
If you are using a custom type that Spring is unable to convert to and from a String, you will likely receive a lovely error such as this:</p>
<blockquote><p>org.springframework.web.bind.ServletRequestBindingException: Errors binding onto object &#8216;dependsOnExoticType&#8217;; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors<br />
Field error in object &#8216;dependsOnExoticType&#8217; on field &#8216;type&#8217;: rejected value [test]; codes [typeMismatch.dependsOnExoticType.type,typeMismatch.type,typeMismatch.example.ExoticType,typeMismatch]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [dependsOnExoticType.type,type]; arguments []; default message [type]]; default message [Failed to convert property value of type [java.lang.String] to required type [example.ExoticType] for property &#8216;type&#8217;; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [example.ExoticType] for property &#8216;type&#8217;: no matching editors or conversion strategy found]</p></blockquote>
<p>The solution is to create your own custom editor.</p>
<h4>Creating a custom property editor</h4>
<p>A custom property editor should be of type java.beans.PropertyEditor. It tells Spring how to convert to a String and back again. As an example, see the ExoticTypeEditor in the Spring reference docs <a href="http://static.springsource.org/spring/docs/2.5.x/reference/validation.html#beans-beans-conversion-customeditor-registration">here</a>. </p>
<p>The question is then how to register the custom editor. </p>
<h4>Registering your custom editor</h4>
<p>There are several ways to ensure you custom editor gets registered.</p>
<h5>1) Put Editor in same package</h5>
<p>The simplest way (by far!) is to put the Editor in the same package as the class it handles. This is because the standard JavaBeans infrastructure will automatically discover PropertyEditor classes (without you having to register them explicitly) if they are in the same package as the class they handle, and have the same name as that class, with&#8217;Editor&#8217; appended;</p>
<p>However, if putting the Editor in the same package as the class it handlers is not possible (If for example, you are using a custom type from a 3rd party library and hence you don&#8217;t have access to the source code), try one of the other options below&#8230;</p>
<h5>2) CustomEditorConfigurer </h5>
<p>Another approach to registering a custom PropertyEditor is to use a special bean factory post-processor called CustomEditorConfigurer.<br />
This is the approach used in the spring reference manual for the &#8216;ExoticType&#8217; example. Again, see<br />
section 5.4.2.1. Registering additional custom PropertyEditors, <a href="http://static.springsource.org/spring/docs/2.5.x/reference/validation.html#beans-beans-conversion-customeditor-registration">here</a>.</p>
<p>The CustomEditorConfigurer is used to register the new PropertyEditor with the ApplicationContext, which will then be able to use it as needed.</p>
<h6>Gotchas</h6>
<p><h7>i) Won&#8217;t work with BeanFactory &#8211; only ApplicationContext</h7><br />
The PropertyEditors defined in the &#8216;customEditorConfigurer&#8217; bean will only be automatically used if you are using an ApplicationContext implementation (i.e. will not work for BeanFactory). This is discussed <a href="http://forum.springsource.org/showthread.php?t=15951">here</a>.<br />
<h7>ii) Only works for ApplicationContext created beans &#8211; not data binding beans such as form objects</h7><br />
This approach only works for beans created by the ApplicationContext. The PropertyEditors that are registered via CustomEditorConfigurer are NOT available for use in the data binding infrastructure (this is discussed <a href="http://forum.springsource.org/showthread.php?t=30759">here</a> and <a href="http://jira.springframework.org/browse/SPR-1210">here</a>).<br />
I think this should be made more clear in the spring framework ref docs (although, in fairness, it is covered in the <a href="http://static.springsource.org/spring/docs/3.0.0.M1/javadoc-api/org/springframework/beans/factory/config/CustomEditorConfigurer.html">CustomEditorConfigure javadocs</a>).</p>
<p>
So, if you are using Spring MVC and dealing with form submission, the next option may be better&#8230;</p>
<h5>3) Explicitly register your editor in initBinder</h5>
<p>So, a better approach, as far as form data binding is concerned, is to explicitly register your editor within initBinder() in the relevant Controller. e.g.</p>
<pre>
<code>@Controller
@RequestMapping("/exoticView.htm")
public class TestController {

	//post and get handling methods etc...

	@InitBinder
	protected void initBinder(HttpServletRequest request, ServletRequestDataBinder binder) {
		binder.registerCustomEditor(ExoticType.class, new ExoticTypeEditor());
	}

}</code>
</pre>
<h5>4) Use a WebBindingInitializer</h5>
<p>If you find yourself using the above approach (registering your customer editor in initBinder) in many controllers, and you use a annotation based controller (Spring 2.5+), then you can use a WebBindingInitializer to register global property editors. </p>
<p>To do this, create a class that implements the WebBindingInitializer interface, for example</p>
<pre>
<code>public class GlobalBindingInitializer implements WebBindingInitializer {

    public void initBinder(WebDataBinder binder, WebRequest request) {
        binder.registerCustomEditor(ExoticType.class, new ExoticTypeEditor());
    }

}</code>
</pre>
<p>Then update your web application context file to contain:</p>
<pre>
<code>&lt;bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter"&gt;
    &lt;property name="webBindingInitializer"&gt;
        &lt;bean class="GlobalBindingInitializer"/&gt;
    &lt;/property&gt;
&lt;/bean&gt;</code>
</pre>
<p>I discovered this approach in a posting on <a href="http://stackoverflow.com/about">StackOverflow </a> about <a href="http://stackoverflow.com/questions/1416423/hidden-features-of-spring-framework">hidden features of Spring </a>. It means you can register an editor once and use it anywhere. <strong><em>This is now my preferred way to register custom property editors.</em></strong></p>
<h5>5) Use PropertyEditorRegistrar</h5>
<p>Another mechanism for registering property editors with the Spring container, and the final one in the Spring reference docs, is to create and use a PropertyEditorRegistrar. See section 5.4.2.1.1 <a href="http://static.springsource.org/spring/docs/2.5.x/reference/validation.html#beans-beans-conversion-customeditor-registration">here</a>. The docs say that this is a good approach &#8220;when you need to use the same set of property editors in several different situations&#8221;. I have used this approach successfully in the past, but to be honest, I don&#8217;t quite see the benefits beyond the GlobalBindingInitializer approach above and it seems to require a few more steps. (I also saw some confusing debate on exactly what steps are mandatory <a href="http://jira.springframework.org/browse/SPR-3512?focusedCommentId=28100&#038;page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#action_28100">here</a>)</p>
<h5>6) BeanInfo</h5>
<p>There is also a BeanInfo mechanism mentioned in the Spring docs which I admit I have never tried &#8211; or fully understood.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/data-binding-in-spring-mvc/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Apple&#8217;s MobileMe finally gets Killer App</title>
		<link>http://www.shaunabram.com/iphones-mobileme-finally-gets-killer-app/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=iphones-mobileme-finally-gets-killer-app</link>
		<comments>http://www.shaunabram.com/iphones-mobileme-finally-gets-killer-app/#comments</comments>
		<pubDate>Tue, 23 Jun 2009 13:48:17 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=333</guid>
		<description><![CDATA[It seems that Apple&#8217;s MobileMe has finally got it&#8217;s killer app in the form of its new &#8216;Find My iPhone&#8217; feature. I have never been tempted to subscribe to MobileMe so far as none of the features seemed too attractive. For example, is the automatic synchronization of contacts really a big deal when the contacts [...]]]></description>
			<content:encoded><![CDATA[<p>It seems that Apple&#8217;s <a href="http://www.apple.com/mobileme/">MobileMe</a> has finally got it&#8217;s killer app in the form of its <a href="http://www.apple.com/mobileme/whats-new/">new</a> &#8216;Find My iPhone&#8217; feature. I have never been tempted to subscribe to MobileMe so far as none of the features seemed too attractive. For example, is the automatic synchronization of contacts really a big deal when the contacts synch up just fine each time I connect to my MacBook anyway? However, as someone who has lost an iPhone before, the ability to track it down (at least to an approximate area) is very attractive. And although experiences like <a href="http://apple.slashdot.org/story/09/06/22/1412234/Tracking-Thieves-With-Find-my-iPhone">this</a> are probably somewhat ill advised, it is still a very cool story!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/iphones-mobileme-finally-gets-killer-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Eclipse/Clearcase plugin error</title>
		<link>http://www.shaunabram.com/eclipseclearcase-plugin-error/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=eclipseclearcase-plugin-error</link>
		<comments>http://www.shaunabram.com/eclipseclearcase-plugin-error/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 02:06:53 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[clearcase]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[sourcecontrol]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=314</guid>
		<description><![CDATA[I&#8217;m working with Eclipse and ClearCase at the moment, using the plugin from here: http://eclipse-ccase.sourceforge.net/ Unfortunately, Eclipse keeps throwing up an error saying: java.lang.IllegalArgumentException: Argument not valid: Could not get status information from view I think I have finally found the cause. It seems ClearCase doesn&#8217;t always start up properly on my local PC. When [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working with Eclipse and ClearCase at the moment, using the plugin from here:<br />
<a href="http://eclipse-ccase.sourceforge.net/">http://eclipse-ccase.sourceforge.net/</a></p>
<p>Unfortunately, Eclipse keeps throwing up an error saying:<br />
java.lang.IllegalArgumentException: Argument not valid: Could not get status information from view</p>
<p>I think I have finally found the cause. It seems ClearCase doesn&#8217;t always start up properly on my local PC. When that happens, I have found that manually starting it seems to stop the Eclipse errors. To manually start, go to<br />
C:\Program Files\Rational\ClearCase\Service.EXE (or your lcoal install location)<br />
And select the “Start ClearCase Service” option.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/eclipseclearcase-plugin-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TheServerSide Java Symposium &#8211; Day 2</title>
		<link>http://www.shaunabram.com/tss2009_day2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=tss2009_day2</link>
		<comments>http://www.shaunabram.com/tss2009_day2/#comments</comments>
		<pubDate>Tue, 24 Mar 2009 20:26:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[theserverside]]></category>
		<category><![CDATA[tss]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=268</guid>
		<description><![CDATA[Day 2 at TSS Java Symposium. The highlights of the second day at TSSJS2009 were a couple of interesting talks from Rod Johnson (Mr Spring) and a talk on Groovy from Scott Davis (Groovy.com). I have included links to some of my (limited) notes below, which includes links to the actual presentation slides (PDFs) where [...]]]></description>
			<content:encoded><![CDATA[<p>Day 2 at TSS Java Symposium.</p>
<p>The highlights of the second day at TSSJS2009 were a couple of interesting talks from Rod Johnson (Mr Spring) and a talk on Groovy from Scott Davis (Groovy.com).</p>
<p>I have included links to some of my (limited) notes below, which includes links to the actual presentation slides (PDFs) where available.</p>
<p><a href="http://www.shaunabram.com/tss2009-spring-keynote">Keynote: How Spring Fits into the Java Landscape</a> &#8211; Rod Johnson</p>
<p><a href="http://www.shaunabram.com/tss2009-advanced-spring">Spring for the advanced developer</a> &#8211; Rod Johnson</p>
<p><a href="http://www.shaunabram.com/tss2009-groovy">The Amazing Grrovy Weight Loss Plan</a> &#8211; Scott Davis</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/tss2009_day2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaFX Plugin for Eclipse &#8211; too buggy?</title>
		<link>http://www.shaunabram.com/javafx-eclipse/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=javafx-eclipse</link>
		<comments>http://www.shaunabram.com/javafx-eclipse/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 06:19:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Java]]></category>
		<category><![CDATA[OpenSource]]></category>
		<category><![CDATA[Products]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[JavaFX]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[Sun]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=58</guid>
		<description><![CDATA[After attending a meetup on JavaFX last month, I have been trying to get more familiar with the technology. I know that NetBeans is the &#8216;recommended&#8216; IDE for JavaFX, but I am an Eclipse devotee and thought that surely anything NetBeans can do Eclipse can do. Not in this case it seems. Some simple JavaFX [...]]]></description>
			<content:encoded><![CDATA[<p>After attending a <a href="http://www.shaunabram.com/javafx/">meetup on JavaFX</a> last month, I have been trying to get more familiar with the technology. I know that NetBeans is the &#8216;<a href="http://www.netbeans.org/features/javafx/index.html">recommended</a>&#8216; IDE for JavaFX, but I am an Eclipse devotee and thought that surely anything NetBeans can do Eclipse can do. Not in this case it seems.</p>
<p>Some simple JavaFX script just don&#8217;t seem to work with the <a href="http://kenai.com/projects/eplugin">Eclipse plugin</a>. For example, the following snippet:</p>
<pre>Stage {
    title: "Nodes"
    scene: Scene {
        fill: Color.LIGHTBLUE
        width: 220
        height: 170
    }
}</pre>
<p>Causes the following error:</p>
<p style="padding-left: 30px;">incompatible types found: integer required: com.sun.javafx.runtime.location.FloatVariable</p>
<p>The same snippet compiled and ran straight off when I tried it before in NetBeans.</p>
<p>The only posting on it I could find is <a href="http://kenai.com/projects/eplugin/forums/forum/topics/423-Incompatible-types-found-integer-required?">here</a>. I took the advice and downgraded to JavaFX 1.0, which seems to have done the trick for now. If anyone out there has any suggestions on better solutions/fixes, I would love to hear them.</p>
<p>This isn&#8217;t the first time I&#8217;ve spotted some better GUI related functionality in NetBeans than in Eclipse (e.g. I <a href="http://www.shaunabram.com/netbeans-ide/">briefly mentioned</a> the NetBeans GUI Builder tool a while ago). There is no chance of me stopping using Eclipse completely, but maybe I will start using both&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/javafx-eclipse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Oracle Coherence</title>
		<link>http://www.shaunabram.com/coherence/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=coherence</link>
		<comments>http://www.shaunabram.com/coherence/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 07:24:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=44</guid>
		<description><![CDATA[I had the chance today to attend a presentation at Oracle about their Coherence product. Basically, Coherence is a data caching tool. More specifically, it is an in-memory data grid solution that allows you to scale applications by partitioning data in memory across multiple servers. Servers can be easily added for better performance and can [...]]]></description>
			<content:encoded><![CDATA[<p>I had the chance today to attend a presentation at Oracle about their <a href="http://www.oracle.com/technology/products/coherence/index.html">Coherence</a> product. Basically, Coherence is a data caching tool. More specifically, it is an in-memory data grid solution that allows you to scale applications by <span class="bodycopy">partitioning data in memory across multiple servers. Servers can be easily added for better performance and can of course deal with servers going down (planned or unplanned) with no loss of data.</span></p>
<p>All in all, I have to say that it all looked like a very neat application. It is similar to <a href="http://www.gigaspaces.com/">Gigaspaces</a>, but I suspect that since it is backed by Oracle, it is better supported.</p>
<p>The big question is, would I actually use it in a project? The answer is, if the project required access to a large amount of data and response times, scalability, availability and reliability were all critical requirements, then it would certainly be on the list of possible components. I can think of several real-time, mission critical trading applications that I have worked on in the past where Coherence could have been a useful tool.</p>
<p>One question I had was whether or not Coherence could be used with Hibernate, and in particular if it could be introduced to an existing application. After all, most performance problems don&#8217;t arise until well into the development of an application; Often when too much design and coding has been done to do a fundamental redesign.</p>
<p>For example, I am working on a Java/Spring/Hibernate web based application with a small but rapidly growing user base. If, in the future, performance becomes an issue, could Coherence be introduced to provide all the benefits that the folks at Oracle were talking about today? Could we introduce Coherence in to the architecture without fundamentally changing the data access mechanism (which lets face it, is not really an option at any stage other than the design or very early development)?</p>
<p>I think the answer is yes, but with caveats. The solution lies in using Coherence as Hibernate Level 2 Cache. The caveat is that this approach does not bring the same benefits as using Coherence as the primary data source in an application, like you would if you were using Coherence as an original, founding member of your architecture.</p>
<p>However, as the <a href="http://wiki.tangosol.com/display/COH33UG/Using+Coherence+and+Hibernate#UsingCoherenceandHibernate-Overview">Oracle docs say</a>, Hibernate is &#8216;the optimal choice for accessing data held in a relational database where performance is not the dominant factor&#8217;. So I guess if performace is likely to be an issue, it is best to think about it as early as possible, i.e. before picking the database technologies&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/coherence/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Faster JVM: JRockit</title>
		<link>http://www.shaunabram.com/faster-jvm-jrockit/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=faster-jvm-jrockit</link>
		<comments>http://www.shaunabram.com/faster-jvm-jrockit/#comments</comments>
		<pubDate>Fri, 20 Feb 2009 01:11:34 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Products]]></category>
		<category><![CDATA[JVM]]></category>
		<category><![CDATA[Oracle]]></category>

		<guid isPermaLink="false">http://www.shaunabram.com/?p=43</guid>
		<description><![CDATA[At a training event I attended in Oracle today, they mentioned the JRockit JVM, which I hadn&#8217;t came across before. It is a JVM implementation from Oracle (BEA Systems) that provides improved performance and reduced, more consistent  garbage collections times. It also comes with a Management Console, which visualizes garbage-collection and allows you to monitor [...]]]></description>
			<content:encoded><![CDATA[<p>At a training event I attended in Oracle today, they mentioned the <a href="http://www.oracle.com/technology/products/jrockit/index.html">JRockit JVM</a>, which I hadn&#8217;t came across before. It is a JVM implementation from Oracle (BEA Systems) that provides improved performance and reduced, more consistent  garbage collections times. It also comes with a Management Console, which visualizes garbage-collection and allows you to monitor memory, heap and CPU usage and other metrics.</p>
<p>It does all this by overriding some of the Sun classes, in packages such as java.io and java.lang, with more preformant versions.</p>
<p>All very neat and I would really like to start using it &#8211; but a Mac version isn&#8217;t available. Eerrgh. Guess I&#8217;ll be sticking with Sun&#8217;s implementation.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.shaunabram.com/faster-jvm-jrockit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

