<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Object Mentor Blog: !define TEST_SYSTEM {fit:A} part II</title>
    <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>!define TEST_SYSTEM {fit:A} part II</title>
      <description>&lt;p&gt;In 11/2008 I wrote the &lt;a href="http://blog.objectmentor.com/articles/2008/11/03/define-test_system-fit-a"&gt;first part of this article&lt;/a&gt; but I really did not give the background on why I originally asked Bob to add this feature.&lt;/p&gt;


	&lt;p&gt;So why does FitNesse need to be able to run different parts of suites in different VM&amp;#8217;s?&lt;/p&gt;


	&lt;p&gt;Imagine you are testing services registered on an &lt;span class="caps"&gt;ESB&lt;/span&gt;. That &lt;span class="caps"&gt;ESB&lt;/span&gt; allows 
deployment of services as &lt;span class="caps"&gt;EJB&lt;/span&gt;&amp;#8217;s. There&amp;#8217;s something important about that fact.
By default, different &lt;span class="caps"&gt;EJB&lt;/span&gt;&amp;#8217;s run with their own class loader. You can dig into
the &lt;span class="caps"&gt;EJB&lt;/span&gt; spec if you&amp;#8217;d like, but there&amp;#8217;s roughly a hierarchy of 5 class loaders 
by the time you get to an executing &lt;span class="caps"&gt;EJB&lt;/span&gt; (can be more, could be less).&lt;/p&gt;


	&lt;p&gt;Why is this important? If two &lt;span class="caps"&gt;EJB&lt;/span&gt;&amp;#8217;s make reference to the &amp;#8220;same&amp;#8221; &lt;span class="caps"&gt;JAR&lt;/span&gt; file, 
then each could get loaded by the same or a different class loader. If the
&lt;span class="caps"&gt;JAR&lt;/span&gt; file is installed high in the class-loader hierarchy, then they will
be loaded by the same class loader instance and therefore will be the same
classes.&lt;/p&gt;


	&lt;p&gt;However, let&amp;#8217;s assume that each &lt;span class="caps"&gt;EJB&lt;/span&gt; represents ones service. Furthermore,
each &lt;span class="caps"&gt;EJB&lt;/span&gt; makes a reference to some &lt;span class="caps"&gt;JAR&lt;/span&gt; file directly, that is, it is not
visible to a hierarchically higher class loader. Then that same &lt;span class="caps"&gt;JAR&lt;/span&gt; file will
get loaded twice, once by each class loader (this really happens), and those
exact same classes will be considered different.&lt;/p&gt;


	&lt;p&gt;That&amp;#8217;s right, the exact same &lt;span class="caps"&gt;JAR&lt;/span&gt; file loaded by 2 different class loaders are 
treated as unrelated classes.&lt;/p&gt;


	&lt;p&gt;In reality, each deployed &lt;span class="caps"&gt;EJB&lt;/span&gt; is &amp;#8220;complete&amp;#8221; in that in includes the &lt;span class="caps"&gt;JAR&lt;/span&gt;&amp;#8217;s it
needs to execute. So the &amp;#8220;same&amp;#8221; jar &amp;#8211; same in terms of file contents &amp;#8211; exists
twice in the system and is loaded by two class loaders.&lt;/p&gt;


	&lt;p&gt;Now, it gets a little worse. Those two &lt;span class="caps"&gt;EJB&lt;/span&gt;&amp;#8217;s work off a &amp;#8220;common&amp;#8221; data model.
Common in that the underlying business objects are common across a set of
applications. However, the common data model is a moving target (it&amp;#8217;s grown
as needed). To manage complexity, not all services are forced to update to the
latest version of the common data model at the same time (it&amp;#8217;s not really a
manageable solution &amp;#8211; generally).&lt;/p&gt;


	&lt;p&gt;So now we have 2 (really several) &lt;span class="caps"&gt;EJB&lt;/span&gt;&amp;#8217;s that refer to logically the same &lt;span class="caps"&gt;JAR&lt;/span&gt;
but different versions. Luckily, this is&lt;i&gt; &lt;b&gt;no&lt;/i&gt;&lt;/b&gt; problem because 
each &lt;span class="caps"&gt;EJB&lt;/span&gt; has its own class loader, so it is OK for 2 &lt;span class="caps"&gt;EJB&lt;/span&gt;&amp;#8217;s to refer to 
different versions of the same logical data model.&lt;/p&gt;


	&lt;p&gt;How does any of this have&lt;i&gt; &lt;b&gt;anything&lt;/i&gt;&lt;/b&gt; to do with FitNesse? When
FitNesse executes a suite, by default all tests are executed in the same
VM with one class loader. So if you have a suite of tests that test different
services, each of which might be using a different version of the common data
model, then the first service executed loads the common data model, which 
really isn&amp;#8217;t exactly common. This causes tests to fail that would not fail
if each text executed with its own class loader.&lt;/p&gt;


	&lt;p&gt;Rather than deal with writing custom class loaders, Bob instead make it 
possible to name a VM (see the title for the syntax). By doing this, Bob
make it possible to effect a similar environment to that experienced by &lt;span class="caps"&gt;EJB&lt;/span&gt;&amp;#8217;s by default.&lt;/p&gt;</description>
      <pubDate>Wed, 04 Mar 2009 04:07:00 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:4111f3d3-5049-47f4-9649-56b586e7df6b</guid>
      <author>Brett Schuchert</author>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii</link>
      <category>Schuchert's Scattered Synapses </category>
      <category>ejb</category>
      <category>class</category>
      <category>loading</category>
      <category>acceptnace</category>
      <category>testing</category>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by iPhone contacts backup</title>
      <description>&lt;p&gt;Get to know about C# and C++. In fact, I find there is no much difference between the two. However, If we want to do much better. I need work hard.&lt;/p&gt;</description>
      <pubDate>Sun, 15 Jan 2012 21:39:19 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:cedd10eb-28db-47dc-ab81-f4be46bc7377</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-198099</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by christian louboutin</title>
      <description>&lt;p&gt;The professional design make you foot more comfortable. Even more tantalizing,this pattern make your legs look as long as you can,it will make you looked more attractive.Moveover,it has reasonable price.If you are a popular woman,do not miss it.&lt;/p&gt;


	&lt;p&gt;Technical details of Christian Louboutin Velours Scrunch Suede Boots Coffee:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;Color: Coffee
Material: Suede
4(100mm) heel
Signature red sole x&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Tall Boots, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.&lt;/p&gt;</description>
      <pubDate>Wed, 09 Nov 2011 08:37:32 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:69979dbd-8ff2-4213-a08e-967a585e34d5</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-170575</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by christian louboutin</title>
      <description>&lt;p&gt;The professional design make you foot more comfortable. Even more tantalizing,this pattern make your legs look as long as you can,it will make you looked more attractive.Moveover,it has reasonable price.If you are a popular woman,do not miss it.&lt;/p&gt;


	&lt;p&gt;Technical details of Christian Louboutin Velours Scrunch Suede Boots Coffee:&lt;/p&gt;


	&lt;pre&gt;&lt;code&gt;Color: Coffee
Material: Suede
4(100mm) heel
Signature red sole x&lt;/code&gt;&lt;/pre&gt;


	&lt;p&gt;Fashion, delicate, luxurious Christian louboutins shoes on sale, one of its series is Christian Louboutin Tall Boots, is urbanism collocation. This Christian louboutins shoes design makes people new and refreshing. Red soles shoes is personality, your charm will be wonderful performance.&lt;/p&gt;</description>
      <pubDate>Wed, 09 Nov 2011 08:34:38 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:9aa3cda8-e5bb-4030-ba80-a133e7758e39</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-170574</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by Tips For Bowling</title>
      <description>&lt;p&gt;A man should look for what is, and not for what he thinks should be.&lt;/p&gt;</description>
      <pubDate>Tue, 18 Oct 2011 12:55:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:f553985f-f204-46b6-ba88-0cf30b50d435</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-159112</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by canada goose coat</title>
      <description>&lt;p&gt;&lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-expedition-parka-c-2.html" rel="nofollow"&gt;Canada Goose Outlet&lt;/a&gt;
is Marmot 8000M Parka. The Marmot 8000M Parka is really a waterproof, breathable jacket with 800 fill &lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-youth-parka-c-7.html" rel="nofollow"&gt;canada goose jacket&lt;/a&gt; feathers. It truly is design and light colored shell is produced for trendy, but uncomplicated, protection from cold temperatures. Reinforced shoulders, elbows and adjustable waist and hem make the Marmot a perfect alternate for skiing and other outdoor sports that want fairly a bit of arm motion. The 8000M Parka weighs three lbs., comes in bonfire and black colours and might be stuffed and stored like a sleeping bag to your convenience.This is one of well-know and prime down jacket brands.Hope our friends like its!Like &lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-womens-c-8.html" rel="nofollow"&gt;canada goose womens&lt;/a&gt; and &lt;a href="http://www.shopcanadagoosejackets.com/canada-goose-expedition-parka-c-2.html" rel="nofollow"&gt;Canada Goose Expedition Parka&lt;/a&gt;.There are &lt;a href="http://www.shopcanadagoosejackets.com/" rel="nofollow"&gt;wholesale canada goose&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Thu, 15 Sep 2011 21:27:11 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:5776cde7-942b-48d3-b482-ccf5fbe6c8d8</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-140995</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by beats by dre store</title>
      <description>&lt;p&gt;useful some day,thanks for taking time to write such cool stuff&lt;a href="http://www.drdrebeatsheadphones-australia.com" rel="nofollow"&gt;beats by dre sale&lt;/a&gt;
&lt;a href="http://www.drdrebeatsheadphones-australia.com" rel="nofollow"&gt;cheap beats by dre&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 23 Aug 2011 02:49:43 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:8dadd135-34dd-4a85-96cb-0473b0595704</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-131624</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by cookies gift baskets</title>
      <description>&lt;p&gt;hmm ,i&amp;#8217;m not sure if this is what i&amp;#8217;m looking for but anyway this is interresting and could be useful some day,thanks for taking time to write such cool stuff&lt;/p&gt;</description>
      <pubDate>Sun, 19 Jun 2011 11:59:17 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c1557e4d-5d40-4da0-9bbc-7aad3d6b0fc6</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-112550</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by christian louboutin shoes on sale</title>
      <description>&lt;p&gt;Have the &lt;a href="http://www.blacklouboutinshoes.com/pumps-c-2.html" rel="nofollow"&gt;christian louboutin patent leather pumps&lt;/a&gt;  is a happy thing. 
Here have the most complete kinds of  &lt;a href="http://www.blacklouboutinshoes.com/platforms-c-3.html" rel="nofollow"&gt;christian louboutin leather platform pumps&lt;/a&gt;.&lt;/p&gt;</description>
      <pubDate>Fri, 03 Jun 2011 07:28:47 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c390d39b-620c-4de6-937a-68bc7c56ded5</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-107690</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by funny pictures</title>
      <description>&lt;p&gt;You explain TEST_SYSTEM in a very efficient and unqiue way I must appreciate this post&lt;/p&gt;</description>
      <pubDate>Tue, 03 May 2011 06:21:51 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:169c54de-f1ed-47eb-8a60-68d263fc965a</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-94077</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by okey oyunu oyna </title>
      <description>&lt;p&gt;good work.&lt;/p&gt;


	&lt;p&gt;internette g&#246;r&#252;nt&#252;l&#252; olarak &lt;a href="http://www.okeyoyunu-oyna.com" rel="nofollow"&gt;okey oyunu oyna&lt;/a&gt;, ger&#231;ek kisilerle tanis,
 turnuva heyecanini yasa.&lt;/p&gt;</description>
      <pubDate>Thu, 28 Apr 2011 06:37:57 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:195b1e93-d797-447e-b51c-3bf2d820658f</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-92676</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by SLA prototype</title>
      <description>&lt;p&gt;@Johannes Brodwall Haha Yes- SOA is an easy thing to hate, it is also hard to read about.&lt;/p&gt;</description>
      <pubDate>Thu, 03 Mar 2011 09:39:50 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:a98131ec-1ff4-4515-9936-1a415454b0e5</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-68854</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by iPad ePub Transfer for Mac</title>
      <description>&lt;p&gt;I really like this essay. Thank you for writing it so seriously.  I want to recommend it for my friends strongly. iPad ePub Transfer for Mac is a Professional transfer that can transfer the ePub books onto your iPad on Mac and export the iPad ePub to Mac local folder.&lt;/p&gt;</description>
      <pubDate>Wed, 02 Mar 2011 07:23:13 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6753cd17-b0d9-44c2-bb60-c4d63560ee84</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-68399</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by iPhone SMS to Mac Backup</title>
      <description>&lt;p&gt;Thanks for shareing! I agree with you. The artical improve me so much! I will come here frequently. Would you like to banckup iphone SMS to mac, macBook, macbookPro as .txt files? Now a software iphone SMS to Mac Backup can help you to realize it.&lt;/p&gt;</description>
      <pubDate>Wed, 02 Mar 2011 07:18:41 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:96138bfc-8bee-4f65-bf53-563a38385f66</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-68386</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by Sell Gold for Cash</title>
      <description>&lt;p&gt;Thanks for sharing this great post Brett! Just had a look at that first article too (excellent analysis in this follow up posting). Cheers.&lt;/p&gt;</description>
      <pubDate>Fri, 25 Feb 2011 23:36:27 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:bffdfb08-eb27-42ff-a9aa-a16c71c6b7ee</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-66890</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by mosic</title>
      <description>&lt;p&gt;&lt;a href="http://blog.objectmentor.com/articles/2009/03/31/fitnesse-decision-tables-a-tutorial" rel="nofollow"&gt;http://blog.objectmentor.com/articles/2009/03/31/fitnesse-decision-tables-a-tutorial&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 21 Feb 2011 20:27:43 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:c497f789-37f4-43db-bec3-521985aaa5e6</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-65485</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by http://www.whiteiphone4transformer.com</title>
      <description>&lt;p&gt;I just can&amp;#8217;s believe how surprise when i receive my iphone 4. Its so charming and functional! But there&amp;#8217;s one thing i don&amp;#8217;t satisfy, i don&amp;#8217;t like the color. Waiting for the coming &lt;a href="http://www.whiteiphone4transformer.com" rel="nofollow"&gt;white iphone 4&lt;/a&gt; conversion kit.&lt;/p&gt;</description>
      <pubDate>Thu, 23 Dec 2010 21:48:11 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:fc9bab53-78ea-4bee-aeba-6c34048f41b7</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-51595</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by Pandora </title>
      <description>&lt;p&gt;but that all attempts to improve quality would be short lived and followed by a larger drive to decrease quality even further.&lt;/p&gt;</description>
      <pubDate>Thu, 02 Dec 2010 01:55:27 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:d198fa1e-e9d8-4d69-9b6d-b9b954b399d1</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-45207</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by mmorpg</title>
      <description>&lt;p&gt;much more efficient than writing custom class loaders.&lt;/p&gt;</description>
      <pubDate>Sat, 07 Mar 2009 14:09:04 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:79654508-d09c-4dff-b21f-9b91bcf9dc98</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-2885</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by Brett L. Schuchert</title>
      <description>&lt;p&gt;I heard that!&lt;/p&gt;</description>
      <pubDate>Wed, 04 Mar 2009 23:29:35 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:50ef7bbf-0c2e-4b23-95cd-0e9483305a85</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-2878</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by Johannes Brodwall</title>
      <description>&lt;p&gt;I&amp;#8217;m getting flashbacks from a talk I gave a few years ago titled &amp;#8220;why I hate SOA.&amp;#8221; ;-)&lt;/p&gt;</description>
      <pubDate>Wed, 04 Mar 2009 22:39:14 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:ffddf247-0d12-418a-8b2b-f39532106acb</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-2877</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by Brett L. Schuchert</title>
      <description>&lt;p&gt;Is the ESB yak shaving? Yes. In this particular case, they were mandated to buy versus build and already had purchased a stack.&lt;/p&gt;


	&lt;p&gt;Given that constraint, they needed  a means to execute suites of tests across components.&lt;/p&gt;</description>
      <pubDate>Wed, 04 Mar 2009 20:36:06 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:6cf6bc17-0695-44f9-ba4f-9b7380ef20c3</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-2876</link>
    </item>
    <item>
      <title>"!define TEST_SYSTEM {fit:A} part II" by Johannes Brodwall</title>
      <description>&lt;p&gt;Do you think you might be &lt;a href="http://sethgodin.typepad.com/seths_blog/2005/03/dont_shave_that.html" rel="nofollow"&gt;yak shaving&lt;/a&gt;?&lt;/p&gt;


	&lt;p&gt;Is FitNesse the right tool to test at the EJB level? (I would use FitNesse for functional testing, not integration testing) Is it a good idea to use a shared but unstable data model? (You have hinted it is not)  Should two services that are this separate use the same FitNesse instance? Is the ESB causing more problems than it is solving?&lt;/p&gt;</description>
      <pubDate>Wed, 04 Mar 2009 16:54:35 -0600</pubDate>
      <guid isPermaLink="false">urn:uuid:c66dd2b9-1a4c-4ea9-8cff-7f25826a9eed</guid>
      <link>http://blog.objectmentor.com/articles/2009/03/04/define-test_system-fit-a-part-ii#comment-2874</link>
    </item>
  </channel>
</rss>

