<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://j2ee.ulitzer.com"  xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Latest News from Java EE Journal</title>
 <link>http://j2ee.ulitzer.com/</link>
 <description>Latest News from Java EE Journal</description>
 <language>en</language>
 <copyright>Copyright 2010 Ulitzer.com</copyright>
 <generator>Ulitzer.com</generator>
 <lastBuildDate>Thu, 18 Mar 2010 13:35:38 EDT</lastBuildDate>
 <docs>http://backend.userland.com/rss</docs>
 <ttl>360</ttl>
<item>
 <title>Cloud Computing Bootcamp Returns to Cloud Expo in New York April 20, 2010</title>
 <link>http://j2ee.ulitzer.com/node/1302723</link>
 <description>No one can properly understand anything related to enterprise-level Cloud Computing without having first gained a deep understanding of the capabilities of different Cloud players. SYS-CON&#039;s pioneering Cloud Computing Bootcamp is designed with that in mind. It is a one-day, fully immersive deep-dive into the Cloud, in which the sessions during the day seek to give delegates a deep understanding of the capabilities of different Cloud players and how they address rapidly changing market demands.
The ever-popular Bootcamp, which is now held regularly around the world, is being held next in conjunction the 5th Cloud Expo in New York, NY (April 20, 2010). It is led by our 2010 Bootcamp Instructor Larry Carvalho.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1302723&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 18 Mar 2010 07:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1302723</guid>
 <comments>http://j2ee.ulitzer.com/node/1302723#feedback</comments>
</item>
<item>
 <title>SpringSource Unveils TomcatExpert.com</title>
 <link>http://j2ee.ulitzer.com/node/1321316</link>
 <description>SpringSource, a division of VMware, Inc. and a provider of Java application infrastructure and management, has unveiled a new website, TomcatExpert.com, a professionally managed Apache Tomcat resource library and community. Developers, system administrators and web operations professionals that develop and operate Apache Tomcat can now obtain information from both committers and recognized leaders of Apache Tomcat.
TomcatExpert.com was created by SpringSource, the leading provider of support, training and services for Apache technologies, including Apache Tomcat. The website is operated by development operations experts inside SpringSource and includes content from various experts across multiple industries. TomcatExpert.com is expected to be the single best resource for developers and operators who are running Apache Tomcat in large scale production environments. In addition to a deep knowledgebase of articles, this site includes discussions surrounding best practices, troubleshooting and the technology applications of the Apache Tomcat application server.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1321316&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 16 Mar 2010 08:11:00 EDT</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1321316</guid>
 <comments>http://j2ee.ulitzer.com/node/1321316#feedback</comments>
</item>
<item>
 <title>Is This the End of Enterprise Software?</title>
 <link>http://j2ee.ulitzer.com/node/1318882</link>
 <description>The future of enterprise software is the platform. No software company has all the smart people in the world on its payroll. Apple recognized this and created the App Store. Google are now doing the same. These new cloud platforms will unleash unprecedented innovation and creativity throughout all areas of business and the web, with thousands of new apps being created that will revolutionize IT.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1318882&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 15 Mar 2010 10:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1318882</guid>
 <comments>http://j2ee.ulitzer.com/node/1318882#feedback</comments>
</item>
<item>
 <title>Hunting Lost Treasures: Understanding and Finding Memory Leaks</title>
 <link>http://j2ee.ulitzer.com/node/1317342</link>
 <description>Searching for memory leaks can easily become an adventure – fighting through a jungle of objects and references. When the leak occurs in production time is short and you have to act fast. Like in a treasure hunt, we have to interpret signs, unravel mysteries to finally find the “lost” memory.
Memory leaks – together with inefficient object creation and incorrect garbage collector configuration – are the top memory problems. While they are a typical runtime problem, their analysis and resolution worries developers. Therefore I will focus in this post on how to analyze memory problems by covering how to find those problems and providing some insights into the anatomy of memory leaks.
What do we need for effective memory diagnosis? We need a heap analyzer for analyzing heap content and a console to collect and visualize runtime performance metrics. Then we are well-equipped for our expedition. Which tools you are going to choose depends on the platform you are using, the money you want to spend and your personal preferences. The range goes from JVM tools, to open source tools to professional performance management solutions.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1317342&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 13 Mar 2010 07:15:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1317342</guid>
 <comments>http://j2ee.ulitzer.com/node/1317342#feedback</comments>
</item>
<item>
 <title>JDev 11gPS1 – Java Editor &#039;Declaration Insight&#039;</title>
 <link>http://j2ee.ulitzer.com/node/1310315</link>
 <description>The JDev11gPS1 New Features page lists a large amount of improvements, including something called the &quot;Declaration Insight&quot;. The New Features blurb lists this feature as &quot;When declaring local variables from method calls, declaration insight can automatically add the declaration and assignment code as well as completing the method call.&quot;

Like us, if you&#039;re using JDev11gPS1 you&#039;ve probably already stumbled upon this feature and not realized it.

You&#039;ll be familiar with the traditional Completion Insight. Say in an EntityImpl you&#039;re implementing a method and within you want to call the super class method to get the database transaction. However you&#039;ve forgotten the function name, is it getDBTransaction or getDatabaseTransaction? This is easily solvable by starting to type the function name &quot;getD&quot; then activating Completion Insight, either via pressing Ctrl-Space or the Source menu&#039;s same named option. The editor will show the Completion Insight popup in blue with all the functions starting with &quot;getD&quot; in the super class stack, including the method we’re interested in getDBTransaction.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1310315&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 07 Mar 2010 06:54:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1310315</guid>
 <comments>http://j2ee.ulitzer.com/node/1310315#feedback</comments>
</item>
<item>
 <title>Browsing Database Artifacts Using Data Source Explorer</title>
 <link>http://j2ee.ulitzer.com/node/1308612</link>
 <description>In Part 1 of this tutorial, I showed how to set up a web project and connect to a database. In this step, you will use the Data Source Explorer to browse database artifacts. You may need to re-open the JPA perspective.
In the Data Source Explorer, expand the nodes inside the New Oracle Database Connection node. You can view the individual tables and columns. Observe that the Data Source Explorer denotes which columns have been designated as primary keys. Note that the tables shown below are stored in the JPATUTORIAL schema. 
While browsing database artifacts, simply expand the tree to view columns, constraints, dependencies, indexes, triggers, and other relevant properties of the selected component.
While browsing database artifacts, navigate up the tree to view columns, constraints, dependencies, indexes, triggers, and other relevant properties of the selected component.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1308612&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 05 Mar 2010 09:45:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1308612</guid>
 <comments>http://j2ee.ulitzer.com/node/1308612#feedback</comments>
</item>
<item>
 <title>New Beginnings: It&#039;s Time for the Yearly ‘State of the JCP’ Review</title>
 <link>http://j2ee.ulitzer.com/node/1302499</link>
 <description>By now I&#039;m sure you&#039;re aware that Oracle&#039;s acquisition of Sun Microsystems is complete, and that Oracle is therefore the new steward of Java and the sponsor of the Java Community Process. It&#039;s too soon to say what changes this may bring, but for an overview of Oracle&#039;s Java strategy see the Software Strategy webcast from Thomas Kurian, Oracle&#039;s Executive Vice President of Product Development. (The Java portion of his presentation starts at the 3-minute mark and lasts for about 10 minutes.) 
In the meantime, since the New Year is upon us it&#039;s time for my yearly &quot;state of the JCP&quot; review. 
Our total membership grew by 4% in 2009 to a total of about 1,500. However, since individuals can join at no cost, and there&#039;s no formal renewal process for them, we suspect that many have &quot;lapsed.&quot; During the next year we will clean up our individual membership records, and it&#039;s quite likely that the 2010 numbers will show a reduction as we remove the people who have moved on from the rolls.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1302499&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 01 Mar 2010 22:15:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1302499</guid>
 <comments>http://j2ee.ulitzer.com/node/1302499#feedback</comments>
</item>
<item>
 <title>Scalable HTTP Session Management with WebSphere Extreme Scale (WXS)</title>
 <link>http://j2ee.ulitzer.com/node/1299059</link>
 <description>This paper will attempt to discuss the usage scenario and demonstrate the use of WXS as a separate in memory data grid to store http sessions. This paper will discuss history and existing technology and introduces WXS as a technology that differentiates itself, by addressing existing scalability challenges in a cost effective manner. We will also discuss the simplification of technical implementation of WXS grid, which makes WXS a compelling yet simple solution to store HTTP session.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1299059&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 26 Feb 2010 13:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1299059</guid>
 <comments>http://j2ee.ulitzer.com/node/1299059#feedback</comments>
</item>
<item>
 <title>Software Trial: InstallAnywhere for Building Java-Based Installers</title>
 <link>http://j2ee.ulitzer.com/node/1299222</link>
 <description>Want an easy way to build installers for Linux, Solaris, HP-UX, AIX, UNIX, IBM i, Mac OS X, and more? Try InstallAnywhere! From the makers of InstallShield, InstallAnywhere is the most popular installation tool for Java developers. Create professional, bulletproof installers for any platform in minutes – no expertise needed. Try it now! &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1299222&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 26 Feb 2010 04:30:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1299222</guid>
 <comments>http://j2ee.ulitzer.com/node/1299222#feedback</comments>
</item>
<item>
 <title>Developing a Master-Detail View</title>
 <link>http://j2ee.ulitzer.com/node/1297479</link>
 <description>This tutorial provides step-by-step instructions for creating a Web application that uses the Java Persistence API (JPA) version 2.0 with Oracle WebLogic Server 11g Release 1, Spring, EclipseLink, JavaServer Faces (JSF), and Oracle Database, Express Edition. You will develop this application using Oracle Enterprise Pack for Eclipse 11g Release 1, Patchset 1 (11.1.1.3). During the process of creating this application, you’ll also get a sneak peek at planned enhancements to the Eclipse Web Tools Platform.
Application Description
The Web application you will develop in this tutorial is designed for a company that sells a variety of products. The application will maintain a list of products for sale as well as a list of customers who placed orders (see Figure 1) &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1297479&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 25 Feb 2010 05:30:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1297479</guid>
 <comments>http://j2ee.ulitzer.com/node/1297479#feedback</comments>
</item>
<item>
 <title>101 on jQuery Selector Performance</title>
 <link>http://j2ee.ulitzer.com/node/1179088</link>
 <description>Last week I got to analyze a web page that spent 4.8 seconds in the onLoad event handler of a custom script file. It turned out that 2.8 seconds were consumed by applying a dynamic menu library (will blog about this one separately). The remaining 2 seconds were spent in jQuery selectors. The analysis showed that most of the selectors didn’t return any object and those that returned objects can be improved by using different selectors.

About jQuery Selectors
There are some great blog articles about jQuery Selectors and their Performance Impact. As you can see you can select elements by ID, TagName or ClassName. Depending on the select jQuery can use the native browser methods to query elements by id or tag or needs to manually iterate through the DOM in case of class names (as there is not getElementsByClassName in IE).&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1179088&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 24 Feb 2010 06:15:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1179088</guid>
 <comments>http://j2ee.ulitzer.com/node/1179088#feedback</comments>
</item>
<item>
 <title>JDev 11gPS1 – Text Editor Enhancements</title>
 <link>http://j2ee.ulitzer.com/node/1287711</link>
 <description>I noted in the last 11gPS1 release of JDev (well, at least I didn&#039;t see it in any earlier releases) that the text editor has a few additional facilities available under the Source menu:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_5hhNK2aXwp8/S3tsC46-Y-I/AAAAAAAAA8E/bX0tyEdnVjM/s1600-h/pic1.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 384px; height: 400px;&quot; src=&quot;http://3.bp.blogspot.com/_5hhNK2aXwp8/S3tsC46-Y-I/AAAAAAAAA8E/bX0tyEdnVjM/s400/pic1.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5439059771875288034&quot; /&gt;&lt;/a&gt;&lt;br /&gt;Of particular note there are now entries to Trim Trailing Whitespace, and Convert Leading Tabs to Spaces, which for me have always been important text editor feature, as both of them make editing source code easier beyond their application.  Some of these features such as the Macro playback options have been available for a longtime in JDev as revealed by looking through the Shortcut Keys options under Tools -&gt; Preferences.  However the point is they now get a menu option!&lt;br /&gt;&lt;br /&gt;As a side note, some of the Source menu features can be applied automatically when saving a file.  This option is accessible via the Tools -&gt; Preferences -&gt; Code Editor -&gt; Save Actions options:&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_5hhNK2aXwp8/S3tr5s1H-II/AAAAAAAAA78/m7Hz1c2xPqo/s1600-h/pic2.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 334px;&quot; src=&quot;http://3.bp.blogspot.com/_5hhNK2aXwp8/S3tr5s1H-II/AAAAAAAAA78/m7Hz1c2xPqo/s400/pic2.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5439059614010701954&quot; /&gt;&lt;/a&gt;&lt;br /&gt;The Save Actions facility was available in earlier releases of JDev, well, at least 11.1.1.1.0 where I could test it on my local machine.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/38586079-1518240967232356248?l=one-size-doesnt-fit-all.blogspot.com&#039; alt=&#039;&#039; /&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OneSizeDoesntFitAll/~4/ZI4YkVo6Gtg&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1287711&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 16 Feb 2010 23:07:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1287711</guid>
 <comments>http://j2ee.ulitzer.com/node/1287711#feedback</comments>
</item>
<item>
 <title>ADF BC Groovy – Showing Old Values Along with New, Part 2</title>
 <link>http://j2ee.ulitzer.com/node/1279449</link>
 <description>A while back I posted about using Groovy within our ADF BC EOs to expose the &lt;a href=&quot;http://one-size-doesnt-fit-all.blogspot.com/2009/11/adf-bc-groovy-showing-old-values-along.html&quot;&gt;new and old values&lt;/a&gt; of a particular attribute.  This method described in that post works fine if you&#039;ve access to the EOs in the same project.  However in our current project EOs are segmented in another application workspace project for reuse and ADF Library JARed into our existing &quot;master&quot; ADF BC workspace project.  The external EOs are intended to be shared by multiple other sub-systems, and it really didn&#039;t seem ideal to include additional transient attributes on all the attributes in the shared EOs just in case some other application needs them, mostly they wont want this specific requirement.&lt;br /&gt;&lt;br /&gt;This lead to the requirement to include the same functionality, namely transient attributes based on a Groovy expression to return the old value of the attributes, from our project&#039;s VOs instead.  In other words, if a VO needs them, it includes &#039;em.&lt;br /&gt;&lt;br /&gt;We immediately hit a problem on implementing this requirement.  The EntityImpl.getPostedAttribute(index) method is a protected method, and there is no equivalent ViewRowImpl method.  Arguably it should be provided at the ViewRowImpl level, and a search of the JDev OTN forums shows it&#039;s an &lt;a href=&quot;http://forums.oracle.com/forums/thread.jspa?messageID=736950&amp;#736950&quot;&gt;old issue&lt;/a&gt; and I guess not likely to change anytime soon.&lt;br /&gt;&lt;br /&gt;Without an immediate change to the ADF BC framework, we needed to find another solution.  What we came up with:&lt;br /&gt;&lt;br /&gt;(As per the original post we&#039;ll assume we&#039;re looking at the Employees EO and Position attribute)&lt;br /&gt;&lt;br /&gt;1) By default extend the ADF Business Components Framework as per section &lt;a href=&quot;http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/bcadvgen.htm#BABCGFIE&quot;&gt;37.1 Globally Extending ADF Business Components Functionality&lt;/a&gt; of the Fusion Guide. &lt;br /&gt;&lt;br /&gt;2) In the extended EntityImpl class, say common.model.CommonEntityImpl, create a public exposed version of the getPostedAttribute method&lt;br /&gt;&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;public Object getPostedAttribute(int index) {&lt;br /&gt;  return super.getPostedAttribute(index);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;3) For the specific VO interested in showing the old values of an  attribute, create the associated ViewRowImpl (say EmployeesViewRowImpl).  Ensure in the generated class an accessor method to access the underlying EntityImpl has been created, ie:&lt;pre name=&quot;code&quot; class=&quot;java&quot;&gt;public EntityImpl getEmployees() {&lt;br /&gt;  return (EntityImpl)getEntity(0);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;4) In the local project&#039;s VO transient attributes to show the old values base it on the following Groovy expression:&lt;br /&gt;&lt;br /&gt;adf.object.getEmployees().getPostedAttribute(model.entities.EmployeesImpl.POSITION)&lt;br /&gt;&lt;br /&gt;What it does:&lt;br /&gt;&lt;br /&gt;a) adf.object.getEmployees() calls the EmployeesViewRowImpl.getEmployees() method we checked existed in step 3, to retrieve the associated EntityImpl for the current ViewRowImpl&lt;br /&gt;&lt;br /&gt;Note if you haven&#039;t undertaken step 3 to generate the associated ViewRowImpl, alternatively you could just call getEntity(0) instead in your Groovy expression.  However I&#039;d be cautious on doing this as you&#039;re relying on future upgrades of the framework not changing what&#039;s at position zero.&lt;br /&gt;&lt;br /&gt;b) .getPostedAttribute() calls the now publically exposed getPostedAttribute method we created in the common.model.CommonEntityImpl that gives us the ability to get at old attribute values in the EO&lt;br /&gt;&lt;br /&gt;c) The parameter model.entities.EmployeesImpl.POSITION grabs the index position of the Surname field in the EO.  Note we need to use the EntityImpl field position rather than the ViewRowImpl field positions, as the order of the fields can be different.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Of interest to this post, an &lt;a href=&quot;http://groups.google.com/group/adf-methodology/browse_thread/thread/e38f0d46e77341ea?hl=en#&quot;&gt;old discussion&lt;/a&gt; on the ADF Enterprise Methodology Group, was do most projects extend the ADF framework as per section &lt;a href=&quot;http://download.oracle.com/docs/cd/E15523_01/web.1111/b31974/bcadvgen.htm#BABCGFIE&quot;&gt;37.1 Globally Extending ADF Business Components Functionality&lt;/a&gt;?  As can be seen from this specific blog post this shows another reason to include the extended classes from day 1 of any ADF development.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Final caveat: Please note this post is mostly for self documentation purposes, posted here so others can make use of it, but is not guaranteed to work; honestly I haven&#039;t tested this thoroughly nor has it been placed in a production environment yet.  As such be careful to check it works for you, your mileage may vary.  If you find any problems it would be appreciated if you could post your findings here to assist other readers.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/38586079-8388401367762664520?l=one-size-doesnt-fit-all.blogspot.com&#039; alt=&#039;&#039; /&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OneSizeDoesntFitAll/~4/5G4aYNXeCy8&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1279449&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 10 Feb 2010 20:45:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1279449</guid>
 <comments>http://j2ee.ulitzer.com/node/1279449#feedback</comments>
</item>
<item>
 <title>Reflections on Java Command Line Options</title>
 <link>http://j2ee.ulitzer.com/node/1211759</link>
 <description>&lt;p&gt; &lt;/p&gt;
&lt;h1&gt;Abstract&lt;/h1&gt;
&lt;p&gt;There are many different types of command line options that programs need to recognize.  Many languages (e.g.: bash and perl) has built-in processing of command line options; Java does not.  The Java Command Line Options (JCLO) package performs this task for a variety of option styles.  It also uses Java&#039;s reflection capability to automatically assign values to variables in a specified class.&lt;/p&gt;&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1211759&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 07 Feb 2010 21:15:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1211759</guid>
 <comments>http://j2ee.ulitzer.com/node/1211759#feedback</comments>
</item>
<item>
 <title>Java vs C++? Really?</title>
 <link>http://j2ee.ulitzer.com/node/1269783</link>
 <description>Every industry has head to head comparisons between popular products and they make great headlines but is the question really being explored? I say no. In fact, I think these comparisons are meant to throw meat to one side or the other and to stir the pot of controversy for one purpose: to sell copy (or get readers for free publications). I will spend some time exploring the question of selecting or using Java vs. C/C++.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1269783&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 05 Feb 2010 15:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1269783</guid>
 <comments>http://j2ee.ulitzer.com/node/1269783#feedback</comments>
</item>
<item>
 <title>Sun Finally Belongs to Oracle</title>
 <link>http://j2ee.ulitzer.com/node/1265517</link>
 <description>Oracle finally closed on its delayed acquisition of Sun Tuesday, leaving local entities to shift for themselves according to local laws and sidestepping MySQL creator Monty Widenius’ hopes of Russian and Chinese regulators stalling the merger. Widenius will now presumably revert to his quixotic Plan B and appeal the European Commission’s clearance last week, a green light that looked really iffy there for a while. &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1265517&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 29 Jan 2010 12:45:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1265517</guid>
 <comments>http://j2ee.ulitzer.com/node/1265517#feedback</comments>
</item>
<item>
 <title>ZIP and UNZIP with Passwords in Java</title>
 <link>http://j2ee.ulitzer.com/node/1258827</link>
 <description>Zip and Unzip are a very common activities for a computer user. A user normally uses the zip utility to compress a directory to create a zip file. There are many ready-made software such as winzip,7zip, and winrar that are available to achieve this. However, it is also possible to protect the zip file with a password so that the end user has to provide the password to unzip the zip file. This is the very common scenario that can be achieved by a zip utility tool. The significant part of my article is to provide you with the solution to achieve this using a Java program. While developing the project you may encounter a scenario in which you have to create a password-protected zip file that can be unzipped by any zip tool like winzip. Let me provide a complete scenario for your understanding.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1258827&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 25 Jan 2010 11:45:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1258827</guid>
 <comments>http://j2ee.ulitzer.com/node/1258827#feedback</comments>
</item>
<item>
 <title>eXtremeDB Gets Java Front End</title>
 <link>http://j2ee.ulitzer.com/node/1257454</link>
 <description>The real-time embedded database folks at McObject have slapped a Java Native Interface (JNI) interface on their eXtremeDB widgetry and claim it’s the fastest possible database solution in Java-dom. The move is supposed to underscore their attempt to broaden the product’s appeal by pushing it out to developers of Java-based set-top boxes and other embedded systems who get a proven off-the-shelf database with minimal RAM and a small 100KB CPU footprint in return. &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1257454&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 22 Jan 2010 17:30:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1257454</guid>
 <comments>http://j2ee.ulitzer.com/node/1257454#feedback</comments>
</item>
<item>
 <title>EC Antitrust Chief’s Job Ambitions Reportedly Delay Oracle-Sun OK</title>
 <link>http://j2ee.ulitzer.com/node/1255011</link>
 <description>Everybody and his brother expect the European Commission to rubber stamp Oracle’s acquisition of Sun any minute now but when it didn’t happen Tuesday like it was reportedly supposed to we asked why not and were told – you’re gonna love this – that it was because antitrust czarina Neelie Kroes screwed up her confirmation hearing last week as Europe’s Digital Agenda commissar and didn’t want to upset her chances of getting the job by waving through an acquisition that is increasingly unpopular with the digital agenda constituency by underscoring the EC’s toothless response to it, or so they say. 

So she sat on it.
&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1255011&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 21 Jan 2010 09:30:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1255011</guid>
 <comments>http://j2ee.ulitzer.com/node/1255011#feedback</comments>
</item>
<item>
 <title>Why Cops and Java Developers Have Low Salaries?</title>
 <link>http://j2ee.ulitzer.com/node/1240383</link>
 <description>In enterprise IT no one just raises salary if there is a way to hire someone else for less money. It&#039;s just not in the corporate culture where people are treated as nameless resources. Have you ever wondered why policemen get lower salaries than Java developers even though people in the uniform risk their lives on daily basis?  It&#039;s because there are many people who apply for jobs in the police.  Preparing a mediocre policemen takes about the same time as preparing a mediocre Java programmer. The same holds true for good policemen and Java developers. Market rules.  If no one will want to go to police, their salaries and perks will increase.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1240383&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 10 Jan 2010 14:45:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1240383</guid>
 <comments>http://j2ee.ulitzer.com/node/1240383#feedback</comments>
</item>
<item>
 <title>What is Enterprise Cloud Computing? </title>
 <link>http://j2ee.ulitzer.com/node/1017378</link>
 <description>What is enterprise cloud computing? Simply stated, it’s a behind-the-firewalls use of commercial, Internet-based cloud technologies specifically focused on one company’s or one business environment’s computing needs.  Enterprise cloud computing is a controlled, internal place that offers the rapid and flexible provisioning of compute power, storage, software, and security services to meet your mission’s demands.  &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1017378&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 04 Jan 2010 11:30:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1017378</guid>
 <comments>http://j2ee.ulitzer.com/node/1017378#feedback</comments>
</item>
<item>
 <title>Oracle-Sun: MySQL Creator Kicks Off Worldwide Petition</title>
 <link>http://j2ee.ulitzer.com/node/1231841</link>
 <description>Bucking an apparent deal between Oracle and the European Commission to approve Oracle’s acquisition of Sun and its MySQL database, MySQL creator Monty Widenius kicked off a worldwide petition late Monday aimed at “saving MySQL from Oracle.” 

He vowed to keep going until the “the very end of the process.” 
&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1231841&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 29 Dec 2009 06:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1231841</guid>
 <comments>http://j2ee.ulitzer.com/node/1231841#feedback</comments>
</item>
<item>
 <title>Making the Impossible Easy: Failover for Any Application</title>
 <link>http://j2ee.ulitzer.com/node/1182809</link>
 <description>If your systems require constant accessibility, you know that application failover is an essential function for automatically and transparently redirecting requests to an alternate server in the case of a failure or downtime. Several options exist for ensuring high availability for your mission-critical applications. Those options may be hardware- or software-based, and may also vary considerably in terms of project or enterprise scope and in terms of cost and complexity.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1182809&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 29 Dec 2009 00:30:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1182809</guid>
 <comments>http://j2ee.ulitzer.com/node/1182809#feedback</comments>
</item>
<item>
 <title>Case Study in Secure Software Development</title>
 <link>http://j2ee.ulitzer.com/node/1227919</link>
 <description>Modern inter-networked software architecture created for today’s “on-demand” business needs have fundamentally increased the susceptibility of applications and, more important, data to security-related attacks and compromises. The rapidly changing environment: increased data breach/loss incidents, increased number of regulations and compliance requirements, potential liability/litigation concerns and erosion of reputation and public confidence provides ample drivers for development teams to have a security mindset.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1227919&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 21 Dec 2009 13:15:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1227919</guid>
 <comments>http://j2ee.ulitzer.com/node/1227919#feedback</comments>
</item>
<item>
 <title>Oracle Claims Victory Over EC; Says Sun Will Sell Clouds</title>
 <link>http://j2ee.ulitzer.com/node/1225674</link>
 <description>Oracle expects the European Commission to wave its acquisition of Sun through next month MySQL and all without any annoying conditions. Oracle president Safra Catz, who’s been wrestling with the EC, said so when the company posted its fiscal second-quarter results Thursday, another reason Oracle’s going to have a Merry Christmas. Catz took a bunch of Oracle users to an EC hearing a week ago to buttress the company’s claims that the EC had put words in users’ mouths to support the theory of harm it manufactured to try to stop Oracle from getting MySQL.

Catz took a bunch of Oracle users to an EC hearing a week ago to buttress the company’s claims that the EC had put words in users’ mouths to support the theory of harm it manufactured to try to stop Oracle from getting MySQL. 

&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1225674&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 18 Dec 2009 13:30:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1225674</guid>
 <comments>http://j2ee.ulitzer.com/node/1225674#feedback</comments>
</item>
<item>
 <title>Is Test Overlap A Necessary Evil?</title>
 <link>http://j2ee.ulitzer.com/node/1225717</link>
 <description>&lt;span class=&quot;Apple-style-span&quot;   style=&quot;  ;font-family:Verdana;font-size:13px;&quot;&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-weight: normal; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;In a recent blog post titled &quot;&lt;/span&gt;&lt;/span&gt;&lt;a id=&quot;yt5y&quot; href=&quot;http://binstock.blogspot.com/2009/11/limitations-of-tdd.html&quot; title=&quot;The Limitations of TDD&quot; style=&quot;color: rgb(85, 26, 139); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;The Limitations of TDD&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&quot;, &lt;/span&gt;&lt;/span&gt;&lt;a id=&quot;b.o1&quot; href=&quot;http://joltawards.com/&quot; title=&quot;Jolt&quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Jolt Awards&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt; colleague Andrew Binstock shared some reservations &lt;/span&gt;&lt;/span&gt;&lt;a id=&quot;bm72&quot; href=&quot;http://beust.com/&quot; title=&quot;Cédric Beust&quot; style=&quot;color: rgb(85, 26, 139); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Cédric Beust&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt; has about TDD. When a person of extensive experience like Cédric speaks about testing, you pay attention. And I did.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Among the very interesting quotes from Cédric that Andrew has reproduced, the following really struck me:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;blockquote class=&quot;webkit-indent-blockquote&quot;  style=&quot;padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px; border-top-style: none; border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 40px; border-width: initial; border- color:initial;&quot;&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Another important point is that unit tests are a convenience for *you*, the developer, while functional tests are important for your *users*. When I have limited time, I always give priority to writing functional tests. Your duty is to your users, not to your test coverage tools.&lt;br /&gt;&lt;br /&gt;You also bring up another interesting point: overtesting can lead to paralysis. I can imagine reaching a point where you don&#039;t want to modify your code because you will have too many tests to update (especially in dynamically typed languages, where you can&#039;t use tools that will automate this refactoring for you). The lesson here is to do your best so that your tests don&#039;t overlap.&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/blockquote&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Trust me, as a test-infected developer, I would love to stay in a state of self-delusion and pretend that test-induced paralysis doesn&#039;t exist. But that would be a lie: the reality is grimmer than the wonderland of testing I would wish to live in. The reality is that &lt;/span&gt;&lt;b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;tests both encourage and resist change&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;On the one hand, tests encourage and support refactoring: when the behavior of the application should not change but the code needs to be re-organized, tests are a blessing. They give you the courage to dare changing code because of the immediate feedback they give when you&#039;ve been refactoring a little too aggressively. And this is priceless.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;On the other hand, tests resist behavioral changes. Because tests have captured all the nitty-gritty of your application, when comes the time to change its behavior, you will need to invest time to adapt your tests accordingly, and this whether you rework the tests first or not. As Cédric pointed out, in a dynamically typed language, this is immensely painful as development tools are almost useless in assisting you with the required changes. Similarly, if you use mock objects, you are good for going down a deeper &lt;/span&gt;&lt;/span&gt;&lt;a id=&quot;qi45&quot; href=&quot;http://en.wikipedia.org/wiki/Inferno_(Dante)&quot; title=&quot;circle of hell&quot; style=&quot;color: rgb(85, 26, 139); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Circle of Hell&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;, where more painful and frustrating manual fixes await you.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;So, is there any hope out of this love / hate relationship? Knowing that &quot;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;a id=&quot;i01v&quot; href=&quot;http://programmer.97things.oreilly.com/wiki/index.php/Speed_Kills&quot; title=&quot;the only way to go fast is to go well&quot; style=&quot;color: rgb(85, 26, 139); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;the only way to go fast is to go well&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&quot; dumping tests altogether is certainly not an option. Could the solution lies in Cédric&#039;s very last words: &quot;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;do your best so that your tests don&#039;t overlap&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-style: normal; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&quot;?&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;At this point, I don&#039;t know yet but I&#039;ve decided that, as a starting point, I should start to estimate the amount of overlap I&#039;m dealing with in the &lt;/span&gt;&lt;/span&gt;&lt;a id=&quot;mf9v&quot; href=&quot;http://snoget.com/&quot; title=&quot;Erlang game server&quot; style=&quot;color: rgb(85, 26, 139); &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Erlang game server&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt; I&#039;m working on. Interestingly, what I&#039;ve found could pretty much apply to the vast majority of Java projects I&#039;ve been previously working on. Maybe it applies to your projects too?&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;The first thing I&#039;ve looked at is the testing overlap that exists between two layers of our application:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://2.bp.blogspot.com/_wgiUOehXWyI/Synb_2WLlhI/AAAAAAAAAfc/0HC2KmrdLb8/s1600-h/LayersMockOverlap.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 264px; height: 111px;&quot; src=&quot;http://2.bp.blogspot.com/_wgiUOehXWyI/Synb_2WLlhI/AAAAAAAAAfc/0HC2KmrdLb8/s320/LayersMockOverlap.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5416101916856522258&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial; &quot;&gt;As you can see, the overlap exists because tests of the upper layer rely on mocks to simulate all the happy paths and most of the unhappy paths of the underlying layer. The overlap is not total because a layer tend to reduce the granularity of the unhappy paths it faces internally in order to expose the upper layer to a limited amount of bad situations to deal with. Hence the limited amount of mocked features in the overlap area.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;When applied to a typical vertical slice of our system, it looks like this:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_wgiUOehXWyI/SyncALfv6PI/AAAAAAAAAfk/BljODDs0HM0/s1600-h/AllLayers.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 304px; height: 127px;&quot; src=&quot;http://3.bp.blogspot.com/_wgiUOehXWyI/SyncALfv6PI/AAAAAAAAAfk/BljODDs0HM0/s320/AllLayers.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5416101922533796082&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial; &quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial; &quot;&gt;This is not too bad. Until the wind of feature change comes blowing on this mock-based card-house of tests, life is peachy.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;Until now, the tests I have been looking at were only unit and database ones. If I add our functional tests on top of the overlap diagram, here is what I get:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_wgiUOehXWyI/SyncAsF5ImI/AAAAAAAAAfs/Uz5c96jS5kw/s1600-h/FullTestsOverlap.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 287px; height: 149px;&quot; src=&quot;http://3.bp.blogspot.com/_wgiUOehXWyI/SyncAsF5ImI/AAAAAAAAAfs/Uz5c96jS5kw/s320/FullTestsOverlap.png&quot; border=&quot;0&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5416101931283718754&quot; /&gt;&lt;/a&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-family: arial; &quot;&gt;Now the application container is also tested, plus we get an insane amount of overlap.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;But the amount of overlap is not what I want to discuss first: it&#039;s the test coverage profile that I want to look at first. Notice how the functional tests explore less unhappy paths as they exercise deeper application layers. This can be explained simply: some unhappy paths are very hard to reproduce via the reduced set of functionalities exposed at the top level, oftentimes because they require a very specific and complex state to be established beforehand or conditions that could only be met in case of low level failures (loss of networking, for example).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;It&#039;s obviously out of the question to consider dropping functional tests in order to reduce the testing overlap. As Cédric said, they are the only tests that have a true value for the end user of the system. My experience confirms that you can reach a nearly flawless first-time client integration if your functional tests have a coverage profile that is similar to the one in the last figure above.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;The only problem lies in the quality of feedback you get from functional testing: because it&#039;s impossible to make the gory details of the errors encountered when exploring unhappy paths surface at the uppermost level, your system must have a solid logging strategy that allows you to precisely track issues, should you decide to code using functional tests as your only safety net.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;So are the unit tests overlapped by the functional tests the ones that must go? Cédric again gives the answer: if time is short, it&#039;s better to focus on the functional tests. Of course, if you have a battery of unit tests in place, keep them.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;But, maybe, just maybe, as you move to your next project, consider writing functional tests firsts? That way you would have built first the tests that truly matter and, if time permits, write unit tests as you implement the features expected by the functional tests.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style=&quot;margin-top: 0px; margin-bottom: 0px; &quot;&gt;&lt;span class=&quot;Apple-style-span&quot;  style=&quot;font-family:arial;&quot;&gt;&lt;span class=&quot;Apple-style-span&quot; style=&quot;font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/span&gt;&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/13243193-5598468275848323632?l=blog.dossot.net&#039; alt=&#039;&#039; /&gt;&lt;/div&gt;&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1225717&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 17 Dec 2009 01:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1225717</guid>
 <comments>http://j2ee.ulitzer.com/node/1225717#feedback</comments>
</item>
<item>
 <title>Is Your JIT Telling You Lies?</title>
 <link>http://j2ee.ulitzer.com/node/1118894</link>
 <description>Writing meaningful Java benchmarks is a tricky business. It&#039;s well known that the Java Virtual Machine&#039;s just in time (JIT) compilation process means that running an application for a few seconds won&#039;t let you predict the performance of the application over hours or days of uptime. In spite of this, developers often rely on micro-benchmarks to set performance SLAs for their applications.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1118894&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 15 Dec 2009 10:15:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1118894</guid>
 <comments>http://j2ee.ulitzer.com/node/1118894#feedback</comments>
</item>
<item>
 <title>A Light Java Runtime to Bundle with Applications</title>
 <link>http://j2ee.ulitzer.com/node/1201627</link>
 <description>Steve Jobs once said that Java is a big heavyweight ball and chain. Good news: the ball is now optional! In this article, I share results we achieved after implementing a component deployment model, also known as JRE modularity, for the core of J2SE 5.0 and Java SE 6. The technology&#039;s been in production use for more than two years and proved effective. This is not a mere &quot;Java gets smaller&quot; message. Given that Project Jigsaw is emerging in JDK 7, I also offer some insights on the challenges that any implementation of modularity for the Java SE core may face, all derived from our practical experience.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1201627&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 11 Dec 2009 18:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1201627</guid>
 <comments>http://j2ee.ulitzer.com/node/1201627#feedback</comments>
</item>
<item>
 <title>Reporting Solutions Using Crystal Reports for Eclipse</title>
 <link>http://j2ee.ulitzer.com/node/1118330</link>
 <description>SAP (Business Objects) has recently released Crystal Reports for Eclipse version 2.0 to provide reporting solutions for Java-based applications. This is available as free to use (within an organization) and has the advantage that it is built on the most tested and reliable component (Java Reporting Component in Crystal Reports) that has been in market for quite a few years now. This article discusses the features of CR4Ev2.0, usability of its designer and API, and starting off with an overview of Crystal Reports product architecture. &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1118330&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 11 Dec 2009 12:17:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1118330</guid>
 <comments>http://j2ee.ulitzer.com/node/1118330#feedback</comments>
</item>
<item>
 <title>Sun Updates VirtualBox Cross-Platform Virtualization Software</title>
 <link>http://j2ee.ulitzer.com/node/1211340</link>
 <description>Sun has released VirtualBox 3.1.0, it&#039;s cross-platform virtualisation software to include support for 2D video acceleration for Windows guests. 

Virtual Box is available in two versions.The open source edition is available under the GPL, but is only available from Sun as source code.

The full version is also available free of charge, but under a personal use and evaluation license that requires you to &quot; use the Product on the same Host Computer where you installed it yourself and that no more than one client connect to that Host Computer at a time for the purpose of displaying Guest Computers remotely.&quot; &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1211340&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 07 Dec 2009 12:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1211340</guid>
 <comments>http://j2ee.ulitzer.com/node/1211340#feedback</comments>
</item>
<item>
 <title>SPEC Releases Java Enterprise Benchmark</title>
 <link>http://j2ee.ulitzer.com/node/1209690</link>
 <description>The Standard Performance Evaluation Corp. (SPEC) has released SPECjEnterprise2010, a new benchmark that measures full-system performance for Java Enterprise Edition (Java EE) application servers, databases and supporting infrastructure. SPECjEnterprise2010 was developed by SPEC’s Java subcommittee, which includes AMD, HP, IBM, Intel, Oracle, Red Hat, SAP, and Sun Microsystems.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1209690&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 07 Dec 2009 12:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1209690</guid>
 <comments>http://j2ee.ulitzer.com/node/1209690#feedback</comments>
</item>
<item>
 <title>Sun Fields Cloud Desktop for K-12</title>
 <link>http://j2ee.ulitzer.com/node/1202167</link>
 <description>Despite its uncertain fate Sun soldiers on. Monday it trotted out a cloud-based multiplatform desktop as a service for K-12 and community colleges that can run Windows, the Mac OS, Linux and Solaris applications to nearly any client device, including its own Sun Ray thin clients. Sun claims it’s the industry’s first full-function, cloud-based desktop as a service. It runs on Sun’s Open Cloud Platform. Its subscription pricing can run as little as $1 a day per concurrent user. Ashbourne Technology Group is apparently taking it to market.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1202167&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sat, 05 Dec 2009 15:45:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1202167</guid>
 <comments>http://j2ee.ulitzer.com/node/1202167#feedback</comments>
</item>
<item>
 <title>IBM Could &quot;Reinvent&quot; Java: Mills</title>
 <link>http://j2ee.ulitzer.com/node/1202164</link>
 <description>Interarbor Solution principal analyst Dana Gardner had a drink with IBM Software chief Steve Mills last week. He said Mills thinks that the Oracle-Sun deal will go through but that Oracle CEO Larry Ellison is buying Sun because he doesn’t “understand the hardware business” and won’t get his money’s worth at the $9.50 a share Oracle is proposing to pay for it. Well, what else is Mills going to say; IBM supposedly walked on the deal. 
&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1202164&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 01 Dec 2009 06:30:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1202164</guid>
 <comments>http://j2ee.ulitzer.com/node/1202164#feedback</comments>
</item>
<item>
 <title>101 on Prototype CSS Selectors </title>
 <link>http://j2ee.ulitzer.com/node/1203657</link>
 <description>Performance implications of certain CSS Selectors are not specific to a certain JavaScript Library like Prototype. I recently blogged about the internals of CSS Selectors in jQuery. The same holds true for every JavaScript library that offers CSS Selectors. Certain lookups can be done by using the native browser functions like getElementById or getElementsByTagName. Lookups by class name are not natively supported in IE and are therefore implemented in JavaScript by iterating through all elements in the DOM – which is obviously much slower than a native implementation.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1203657&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 30 Nov 2009 15:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1203657</guid>
 <comments>http://j2ee.ulitzer.com/node/1203657#feedback</comments>
</item>
<item>
 <title>Lockdown My Tool Stack? You’re Kidding, Right?</title>
 <link>http://j2ee.ulitzer.com/node/1203499</link>
 <description>When I first started asking Eclipse developers about provisioning and lockdown – do we need it, what did they think about it, etc. – several things became clear very quickly. First, there are two distinct camps – people who manage people using Eclipse and people who use Eclipse. The people who manage developers and projects using Eclipse expressed great interest in being able to manage the Eclipse tool stack running on the developers’ desktops. &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1203499&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 30 Nov 2009 14:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1203499</guid>
 <comments>http://j2ee.ulitzer.com/node/1203499#feedback</comments>
</item>
<item>
 <title>Performance Tuning Essentials for Java</title>
 <link>http://j2ee.ulitzer.com/node/1100244</link>
 <description>In light of today’s compressed development cycles, multi-tiered application architectures and complex technologies, many organizations are challenged to get reliable yet scalable enterprise Java applications out the door in a timely manner. Devoting a small amount of energy throughout the development process to identify, address, and correct performance obstacles can lower the risks and costs associated with poorly performing applications over the life of the code.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1100244&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 26 Nov 2009 02:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1100244</guid>
 <comments>http://j2ee.ulitzer.com/node/1100244#feedback</comments>
</item>
<item>
 <title>Using Ext JS, Servlets, JSON, MySQL and Tomcat on Fedora</title>
 <link>http://j2ee.ulitzer.com/node/1201109</link>
 <description>These days the popularity of Ext JS (a JavaScript library) is gaining momentum. One of the most popular widgets within Ext JS is the DataGrid. The reason – displaying data from a database is one of the most common tasks of a web application. “Out of the box” the DataGrid has functionality (for instance ascending or descending sorting and reordering of columns by dragging it) that otherwise would require some effort from developers.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1201109&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 25 Nov 2009 16:15:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1201109</guid>
 <comments>http://j2ee.ulitzer.com/node/1201109#feedback</comments>
</item>
<item>
 <title>JPA Under the Hood</title>
 <link>http://j2ee.ulitzer.com/node/1199833</link>
 <description>I recently gave talks on the behavior of different JPA frameworks at W-JAX(Germany) and TheServerSide Java Symposium (Prague). As some people have asked me, I am publishing the samples as well. I would also give away the eclipse project, however with all the third party libraries I am sure I will end up not doing it legally correct. Additionally I can add some comments on the samples and why they are as they are :-) .&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1199833&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Tue, 24 Nov 2009 13:17:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1199833</guid>
 <comments>http://j2ee.ulitzer.com/node/1199833#feedback</comments>
</item>
<item>
 <title>JReport Supports Eclipse and Cloud Computing</title>
 <link>http://j2ee.ulitzer.com/node/1188820</link>
 <description>Jinfonet Software announces the General Availability of JReport 9.1, providing JReport Cloud and JReport Designer for Eclipse. JReport Cloud provides agility for rapidly and inexpensively re-provisioning infrastructure resources, greatly reduces the cost on hardware, software, and services when users pay only for what they use.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1188820&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 16 Nov 2009 17:30:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1188820</guid>
 <comments>http://j2ee.ulitzer.com/node/1188820#feedback</comments>
</item>
<item>
 <title>ADF BC Groovy – Showing Old Values Along with New</title>
 <link>http://j2ee.ulitzer.com/node/1185105</link>
 <description>A common requirement in databound applications is to allow the user to view changes before they commit them to the database, showing the user both the original-old value along with the new.  This gives users a chance to review their changes visually by comparing the old and new.&lt;br /&gt;&lt;br /&gt;For an updated record that has yet been committed to the database, ADF BC stores both the old and new value.  Among other reasons ADF BC does this, is it allows the user to cancel any changes, and rather than having to fetch the original value back from the database, ADF BC just retrieves the old value it has cached without a roundtrip to the database.&lt;br /&gt;&lt;br /&gt;This cache gives us the ability to solve our original requirements as the ADF BC framework exposes methods to fetch both new and old non committed values from the Entity Object (EO).  To fetch the new current value we call the associated accessor such as getPosition() or getName() that was automatically created by the framework in our EntityImpl.  To get the old value we use the getPostedAttribute() method passing in the index of the field we wish to fetch.&lt;br /&gt;&lt;br /&gt;In JDeveloper 11g through its introduction of Groovy expressions, it&#039;s very simple to expose the old value through the Entity Objects:&lt;br /&gt;&lt;br /&gt;1) In your required EO create a transient attribute.  For example if we want to show the old values for the Position attribute of our EO, we could create a new transient attribute named OldPosition.&lt;br /&gt;&lt;br /&gt;2) Ensure the &quot;Persistent&quot; and &quot;Derived from SQL Expression&quot; properties are turned off for the new transient attribute.&lt;br /&gt;&lt;br /&gt;3) Set the &quot;Value Type&quot; to Expression and enter the following Groovy expression into the Value field:&lt;br /&gt;&lt;br /&gt;adf.object.getPostedAttribute(adf.object.getAttributeIndexOf(model.EmployeesImpl.POSITION))&lt;br /&gt;&lt;br /&gt;Note the call to the getPostedAttribute() method, passing in the index of the Position field that it requires.&lt;br /&gt;&lt;br /&gt;If the Groovy syntax isn&#039;t familiar to you in JDeveloper 11g consult Grant Ronald&#039;s &lt;a href=&quot;http://www.oracle.com/technology/products/jdev/11/how-tos/groovy/introduction_to_groovy.pdf&quot;&gt;Introduction to Groovy&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A bad steer here maybe to try and use ADF Groovy&#039;s oldValue and newValue methods.  Unfortunately these are only available for Groovy expressions in EO Declarative Validators, not in transient attribute.&lt;br /&gt;&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://1.bp.blogspot.com/_5hhNK2aXwp8/Su--b2b8OXI/AAAAAAAAA2o/MYyCNlsBuRU/s1600-h/groovy.png&quot;&gt;&lt;img style=&quot;display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 186px;&quot; src=&quot;http://1.bp.blogspot.com/_5hhNK2aXwp8/Su--b2b8OXI/AAAAAAAAA2o/MYyCNlsBuRU/s400/groovy.png&quot; border=&quot;0&quot; alt=&quot;&quot;id=&quot;BLOGGER_PHOTO_ID_5399743863918967154&quot; /&gt;&lt;/a&gt;&lt;br /&gt;4) Expose the attribute through the associated View Objects (VO) if necessary.&lt;br /&gt;&lt;br /&gt;At runtime you&#039;ll note that initially the OldPosition field shows what&#039;s in the Position field.  When you change the Position field&#039;s value, the OldPosition remains at the pre-cached value.  Finally on committing the changes to the database, the OldPosition value is overwritten with the new Position value.&lt;div class=&quot;blogger-post-footer&quot;&gt;&lt;img width=&#039;1&#039; height=&#039;1&#039; src=&#039;https://blogger.googleusercontent.com/tracker/38586079-10124615613825984?l=one-size-doesnt-fit-all.blogspot.com&#039;/&gt;&lt;/div&gt;&lt;img src=&quot;http://feeds.feedburner.com/~r/OneSizeDoesntFitAll/~4/HfFV9pc8uwY&quot; height=&quot;1&quot; width=&quot;1&quot;/&gt;&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1185105&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 13 Nov 2009 14:45:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1185105</guid>
 <comments>http://j2ee.ulitzer.com/node/1185105#feedback</comments>
</item>
<item>
 <title>EC Objects to Oracle-Sun; Oracle Vows To Fight</title>
 <link>http://j2ee.ulitzer.com/node/1179111</link>
 <description>The European Commission Monday served Oracle and Sun with a statement of objections (SO) that takes exception to their $7.4 billion combination. Sun immediately told the SEC that &quot;The Statement of Objections sets out the Commission&#039;s preliminary assessment regarding, and is limited to, the combination of Sun&#039;s open source MySQL database product with Oracle&#039;s enterprise database products and its potential negative effects on competition in the market for database products.&quot;&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1179111&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 09 Nov 2009 20:30:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1179111</guid>
 <comments>http://j2ee.ulitzer.com/node/1179111#feedback</comments>
</item>
<item>
 <title>Sun Revenues Drop 25%</title>
 <link>http://j2ee.ulitzer.com/node/1178639</link>
 <description>Poor beaten-up Sun Microsystems confided the financial results of its September quarter to the SEC on Friday and they weren’t pretty. Sun was supposed to be part of Oracle by now and not washing its linen in public anymore but the European Commission hasn’t sanctioned the union, and isn’t expected to now unless Oracle does something about Sun property MySQL. What the EC wants exactly isn’t clear.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1178639&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 09 Nov 2009 17:00:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1178639</guid>
 <comments>http://j2ee.ulitzer.com/node/1178639#feedback</comments>
</item>
<item>
 <title>Focus on Java Mobility</title>
 <link>http://j2ee.ulitzer.com/node/1178776</link>
 <description>For several months now a subset of the JCP&#039;s Executive Committees has been meeting as the Java ME Working Group to address Java ME-specific matters. In this column I&#039;ll focus on Java ME and on some of the issues that the Working Group has been discussing. (To follow our activities, check out our bulletin board at jcp.org.) &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1178776&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 09 Nov 2009 16:15:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1178776</guid>
 <comments>http://j2ee.ulitzer.com/node/1178776#feedback</comments>
</item>
<item>
 <title>EC to Object to Oracle + Sun: FT</title>
 <link>http://j2ee.ulitzer.com/node/1173026</link>
 <description>The European Commission is about to object formally to Oracle’s multibillion-dollar acquisition of Sun because Oracle is hanging tough and refusing to make any concessions concerning the open source database MySQL, a potential Oracle rival as the EC sees it, according to the Financial Times. The paper says a statement of objection (SO) could be issued in the next few days unless one side or the other blinks.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1173026&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 04 Nov 2009 16:45:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1173026</guid>
 <comments>http://j2ee.ulitzer.com/node/1173026#feedback</comments>
</item>
<item>
 <title>Performance Considerations in Distributed Applications </title>
 <link>http://j2ee.ulitzer.com/node/1167053</link>
 <description>Distribution and communication between applications and services is a central concept in modern application architectures. In order to profit from distribution you have to keep some basic principles in mind – otherwise you can easily run into performance and scalability problems. During development these problems often do not surface.  Then suddenly in load testing or production you might then realize that your chosen software architecture does not support the required performance and scalability requirements. In this post we will look at major points to keep in mind when building distributed applications.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1167053&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Mon, 02 Nov 2009 13:45:00 EST</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1167053</guid>
 <comments>http://j2ee.ulitzer.com/node/1167053#feedback</comments>
</item>
<item>
 <title>A Framework for REST in Java</title>
 <link>http://j2ee.ulitzer.com/node/1166423</link>
 <description>Not long ago I worked on a team charged with building up a Java-based REST infrastructure. Our goals were to first support what was then an emerging specification for Java-based RESTful services called JAX-RS. Beyond that, we had thoughts of building an entire framework, both server and client, around RESTful services written in Java. &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1166423&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 30 Oct 2009 23:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1166423</guid>
 <comments>http://j2ee.ulitzer.com/node/1166423#feedback</comments>
</item>
<item>
 <title>IBM’s Mainframe Monopoly Threatened by BMC Founder’s Shop</title>
 <link>http://j2ee.ulitzer.com/node/1156625</link>
 <description>There’s another burr under IBM’s mainframe saddle besides the Justice Department’s investigation into its practices with the European Commission passing the DOJ notes – a Neon burr. Neon Enterprise Software is a Sugar Land, Texas, mainframe tools company 100% owned by John Moores, the “M” in BMC, who has reportedly poured a pretty penny into the place.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1156625&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Sun, 25 Oct 2009 11:45:00 EDT</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1156625</guid>
 <comments>http://j2ee.ulitzer.com/node/1156625#feedback</comments>
</item>
<item>
 <title>SpringSource Moving to Spring 3.0</title>
 <link>http://j2ee.ulitzer.com/node/1156863</link>
 <description>VMware’s recent SpringSource acquisition, the Java widgetry folk, is moving to Spring 3.0, a major release of its vaunted Java development framework for building web and service-based applications. It announced a feature-complete release candidate Monday and expects to go to GA soon. &lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1156863&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Fri, 23 Oct 2009 16:30:00 EDT</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1156863</guid>
 <comments>http://j2ee.ulitzer.com/node/1156863#feedback</comments>
</item>
<item>
 <title>Performance Perspectives... Standardizing with Speed</title>
 <link>http://j2ee.ulitzer.com/node/1144744</link>
 <description>I thought it would be a good idea to call some attention to a new flood of good reads. Two in particular deal with some bleeding-edge performance concepts. Performance is a subject that comes to the forefront more and more often, especially when we&#039;re all trying to wring as much sweat as we can out of each and every IT dollar put into play. Much of my day is spent trying to find new patterns to make this a reality. Information like this is invaluable when we&#039;re trying to find the correct architectural answer to the enterprise IT puzzles we&#039;re faced with.&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1144744&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Wed, 14 Oct 2009 17:00:00 EDT</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1144744</guid>
 <comments>http://j2ee.ulitzer.com/node/1144744#feedback</comments>
</item>
<item>
 <title>New Version of Exadel Studio JavaFX Plug-in Is Coming…</title>
 <link>http://j2ee.ulitzer.com/node/1138827</link>
 <description>It&amp;#8217;s been a while since I posted any news JavaFX plug-in for Eclipse, but we&amp;#8217;ve been working hard on the following new features: Code assist for syntax keywords, Code assist for system classes, Code assist for attributes of system classes, Code assist for user classes, Code assist for attributes of user classes.
Syntax highlight

A new version will be released in the [...]&lt;p&gt;&lt;a href=&quot;http://j2ee.ulitzer.com/node/1138827&quot; target=&quot;_blank&quot;&gt;read more&lt;/a&gt;&lt;/p&gt;</description>
 <pubDate>Thu, 08 Oct 2009 22:22:00 EDT</pubDate>
 <guid isPermaLink="true">http://j2ee.ulitzer.com/node/1138827</guid>
 <comments>http://j2ee.ulitzer.com/node/1138827#feedback</comments>
</item>
</channel>
</rss>

