
 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
 <HEAD>
  <!-- $PAGETITLE -->
  <TITLE>OpenEJB - Service Locator</TITLE>
  <LINK href="http://openejb.apache.org/default.css" rel="stylesheet" type="text/css">
  <LINK href="http://openejb.apache.org/style.css" rel="stylesheet" type="text/css">
  <LINK rel="SHORTCUT ICON" href="http://openejb.apache.org/images/favicon.ico">
  <SCRIPT language="JavaScript" src="http://cwiki.apache.org/confluence/pages/viewpage.action?spaceKey=OPENEJB&title=functions.js" type="text/javascript"></SCRIPT>
 <META http-equiv="Content-Type" content="text/html;charset=UTF-8"></HEAD>
  <BODY bgcolor="#ffffff" link="#6763a9" vlink="#6763a9" topmargin="0" bottommargin="0" leftmargin="0" marginheight="0" marginwidth="0">

<!-- Delay the loading of the external javascript file needed for labels (as it takes too long to load and visibly holds loading of the page body) -->
<!-- To do this without javascript errors over undefined functions, we need to declare stubs here (that are overrided later by the proper implementations) -->
<SCRIPT language="JavaScript" type="text/javascript">
    function doAddLabel(hideTextfieldAfterAddParam)
    {
        // stub
    }

    function onAddLabel()
    {
        // stub
    }

    function showLabelsInput()
    {
        // stub
    }
</SCRIPT>

  <A name="top"></A>
  <TABLE border="0" cellpadding="0" cellspacing="0" width="100%" height="400">
   <TR>
    <TD width="20" valign="top" align="left" bgcolor="#7270c2"><IMG src="http://openejb.apache.org/images/dotTrans.gif" width="1" height="1" border="0"></TD>
    <TD width="95" valign="top" align="left" bgcolor="#7270c2"><IMG src="http://openejb.apache.org/images/dotTrans.gif" width="1" height="1" border="0"></TD>
    <TD width="7" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" border="0" width="1" height="1"></TD>
    <TD width="40" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" width="40" height="6" border="0"></TD>
    <TD width="100%" valign="top" align="left" bgcolor="#5A5CB8"><IMG src="http://openejb.apache.org/images/top_2.gif" width="430" height="6" border="0"></TD>
    <TD width="120" valign="top" align="left" bgcolor="#E24717"><IMG src="http://openejb.apache.org/images/top_3.gif" width="120" height="6" border="0"></TD>
   </TR>
   <TR>
    <TD width="20" bgcolor="#7270c2" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" border="0" width="1" height="1"></TD>
    <TD width="95" bgcolor="#7270c2" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" border="0" width="1" height="1"></TD>
    <TD width="7" bgcolor="#ffffff" valign="top" align="left"></TD>
    <TD width="40" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" width="1" height="1" border="0"></TD>
    <TD id="breadcrumbs" width="100%" valign="middle" align="left">
      <!-- $TOP_NAV_BAR -->
      <SPAN id="Content">
        
            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
                                    
                                                
            <A href="index.html" title="Index">Index</A> | <A href="news.html" title="News">News</A> | <A href="faq.html" title="FAQ">FAQ</A> | <A href="download.html" title="Download">Download</A> | <A href="mailing-lists.html" title="Mailing Lists">Lists</A> | <SPAN class="nobr"><A href="http://issues.apache.org/jira/browse/OPENEJB" title="Visit page outside Confluence" rel="nofollow">Issues<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          </SPAN>
     <IMG src="http://openejb.apache.org/images/dotTrans.gif" width="1" height="2" border="0"></TD>
    <TD width="120" height="20" valign="top" align="left">&nbsp;</TD>
   </TR>
   <TR>
    <TD width="20" bgcolor="#7270c2" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" width="20" height="3" border="0"></TD>
    <TD width="95" bgcolor="#7270c2" valign="top" align="left"><IMG src="http://openejb.apache.org/images/line_sm.gif" width="105" height="3" border="0"></TD>
    <TD width="7" bgcolor="#a9a5de" valign="top" align="left"><IMG src="http://openejb.apache.org/images/line_sm.gif" width="7" height="3" border="0"></TD>
    <TD width="40" valign="top" align="left"><IMG src="http://openejb.apache.org/images/line_light.gif" width="40" height="3" border="0"></TD>
    <TD width="100%" valign="top" align="left"><IMG src="http://openejb.apache.org/images/line_light.gif" width="430" height="3" border="0"></TD>
    <TD width="120" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" border="0" width="1" height="1"></TD>
   </TR>
   <TR>
    <TD bgcolor="#7270c2" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" width="20" height="10" border="0"></TD>
    <TD id="leftColumn" valign="top" style="padding-top: 0px;">
    <SPAN id="Content">
      
            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        
                                    
                                                
            <H3><A name="Navigation-Overview"></A>Overview</H3>

<UL class="alternate" type="square">
	<LI><A href="index.html" title="Index">Home</A></LI>
	<LI><A href="news.html" title="News">News</A></LI>
	<LI><A href="faq.html" title="FAQ">FAQ</A></LI>
	<LI><A href="download.html" title="Download">Download</A></LI>
	<LI><A href="examples.html" title="Examples">Examples</A></LI>
	<LI><A href="mailing-lists.html" title="Mailing Lists">Mailing Lists</A></LI>
	<LI><A href="source-code.html" title="Source Code">Source Code</A></LI>
</UL>


<H3><A name="Navigation-General"></A>General</H3>

<UL class="alternate" type="square">
	<LI><A href="deploy-tool.html" title="Deploy Tool">Deployment</A></LI>
	<LI><A href="startup.html" title="Startup">Startup</A></LI>
	<LI><A href="validation-tool.html" title="Validation Tool">Validation</A></LI>
	<LI><A href="webadmin.html" title="Webadmin">Webadmin</A></LI>
</UL>


<H3><A name="Navigation-Configuration"></A>Configuration</H3>

<UL class="alternate" type="square">
	<LI><A href="configuration.html" title="Configuration">General</A></LI>
	<LI><A href="deployments.html" title="Deployments">Deployments</A></LI>
	<LI><A href="containers.html" title="Containers">Containers</A></LI>
</UL>


<H3><A name="Navigation-Servers"></A>Servers</H3>

<UL class="alternate" type="square">
	<LI><A href="local-server.html" title="Local Server">Local</A></LI>
	<LI><A href="remote-server.html" title="Remote Server">Remote</A></LI>
</UL>


<H3><A name="Navigation-Integrations"></A>Integrations</H3>

<UL class="alternate" type="square">
	<LI><A href="tomcat.html" title="Tomcat">Tomcat</A></LI>
	<LI><A href="geronimo.html" title="Geronimo">Geronimo</A></LI>
	<LI><A href="webobjects.html" title="WebObjects">WebObjects</A></LI>
</UL>


<H3><A name="Navigation-Community"></A>Community</H3>

<UL class="alternate" type="square">
	<LI><A href="team.html" title="Team">Team</A></LI>
	<LI><A href="articles.html" title="Articles">Articles</A></LI>
	<LI><A href="annoyances.html" title="Annoyances">Annoyances</A></LI>
	<LI><SPAN class="nobr"><A href="index.html" title="Visit page outside Confluence" rel="nofollow">Wiki<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
	<LI><SPAN class="nobr"><A href="irc://irc.freenode.net/#openejb" title="Visit page outside Confluence" rel="nofollow">IRC<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/linkext7.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN></LI>
</UL>
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    </SPAN>

            <H3 class="heading3">Feeds</H3>
            <TABLE border="0" cellspacing="4px">
            <TR>
              <TD align="right">
                <A href="http://cwiki.apache.org/confluence/spaces/rss.action?key=OPENEJB&newPages=false"><IMG src="http://openejb.apache.org/images/rss.gif" border="0"></A><BR>
              </TD>
              <TD align="left">
                <A href="http://cwiki.apache.org/confluence/spaces/rss.action?key=OPENEJB&newPages=false">Site</A>
              </TD>
            </TR>
            <TR>
              <TD align="right">
                <A href="http://cwiki.apache.org/confluence/spaces/blogrss.action?key=OPENEJB"><IMG src="http://openejb.apache.org/images/rss.gif" border="0"></A>
              </TD>
              <TD align="left">
                <A href="http://cwiki.apache.org/confluence/spaces/blogrss.action?key=OPENEJB">News</A>
              </TD>
            </TR>
            </TABLE>
        </TD>
    <TD width="7" bgcolor="#a9a5de" valign="top" align="left">&nbsp;</TD>
    <TD width="40" valign="top" align="left">&nbsp;</TD>
    <TD rowspan="4" width="100%" valign="top">
     <TABLE cols="1" rows="2" border="0" cellpadding="0" cellspacing="0" width="100%">
      <TR>
       <TD valign="top" align="left"><BR>
          <TABLE cols="3" rows="1" border="0" cellpadding="0" cellspacing="0" width="100%">
          <TR>
           <TD valign="top" width="200" align="left">
           <A href="http://openejb.org/">
           <IMG border="0" hspace="0" src="http://openejb.apache.org/images/logo_openejb.gif" vspace="0">
           </A>
           </TD>
           <TD align="right" valign="middle" style="padding:0px;margin:0px;">
	      <TABLE style="padding:0px;margin:0px;">
            <TR>
                <TD>
	            <A href="http://www.apache.org/">
	              <IMG src="http://www.apache.org/images/asf-logo.gif" border="0" width="258" height="66">
	            </A>
                </TD>
            <TR>
<!--
	        <tr>
	            <td align="right" valign="top" style="font- size:12px;color:#777777">
	            [OpenEJB is a Podling in the Apache Incubator]
	            </td>
	        </tr>
-->
          </TABLE>
           </TD>
          </TR>
          </TABLE>
	<BR>
      </TD>
      </TR>
      <TR>
       <TD valign="top" align="left">
         <IMG border="0" height="7" hspace="0" src="http://openejb.apache.org/images/dotTrans.gif"><BR>
          <DIV id="page_title">
            <TABLE width="100%">
              <TR>
                <TD>
	<!-- $TITLE -->
	Service Locator
                </TD>

                <!-- Google CSE Search Box Begins  -->
                <TD align="right">
                  <FORM id="searchbox_010475492895890475512:_t4iqjrgx90" action="http://www.google.com/cse">
                    <INPUT type="hidden" name="cx" value="010475492895890475512:_t4iqjrgx90">
                    <INPUT type="hidden" name="cof" value="FORID:0">
                    <INPUT name="q" type="text" size="25">
                    <INPUT type="submit" name="sa" value="Search">
                  </FORM>
                  <SCRIPT type="text/javascript" src="http://www.google.com/coop/cse/brand?form=searchbox_010475492895890475512:_t4iqjrgx90"></SCRIPT>
                </TD>
                <!-- Google CSE Search Box Ends -->

                 <TD align="right" style="padding-left:0px;"><A style="color:#999;font-size:small;font-weight:normal;" href="http://cwiki.apache.org/confluence/pages/editpage.action?spaceKey=OPENEJB&title=Service%20Locator">[ edit ]</A></TD>
                <TD align="right" width="25">

            <SCRIPT type="text/javascript" language="javascript">
                document.write('<a href="http://cwiki.apache.org/confluence/pages/viewpage');
                document.write('.action?pageId=67488&decorator=printable">');
            </SCRIPT>
            <IMG src="http://cwiki.apache.org/confluence/images/icons/print_16.gif" height="16" width="16" border="0" align="absmiddle" title="Print"></A>

                </TD>
              </TR>
            </TABLE>
          </DIV>
        <IMG border="0" height="1" hspace="0" src="http://openejb.apache.org/images/dotTrans.gif"></TD>
      </TR>
     </TABLE>
     <P>
     <!-- $BODY -->
            <DIV id="PageContent">
        
        <DIV class="pagecontent">
            <DIV class="wiki-content">
                <P>The functionality of the <SPAN class="nobr"><A href="http://cwiki.apache.org/confluence/pages/createpage.action?spaceKey=OPENEJB&title=JNDI%20Names&linkCreation=true&fromPageId=67488" title="Create Page: JNDI Names" class="createlink">openejb.jndiname.format<SUP><IMG class="rendericon" src="http://cwiki.apache.org/confluence/images/icons/plus.gif" height="7" width="7" align="absmiddle" alt="" border="0"></SUP></A></SPAN> allows for writing some really fun service locator code.  Creating the exact layout you want using the exact data you want means you can create robust libraries for pulling things out of JNDI.</P>

<H1><A name="ServiceLocator-Lookupexamples"></A>Lookup examples</H1>

<P>To get the creative juices flowing here are a few examples of lookup methods you could create for your service locator, the jndi name formats that would work with those lookups, and examples of client code using the service locator.  For simplicity, we'll assume all the lookup examples start with this basic class that has a built-in lookup allowing for a common prefix to be optionally applied to the beginning of all lookup strings.</P>

<DIV class="code"><DIV class="codeHeader"><B>MyLocator.java</B></DIV><DIV class="codeContent">
<PRE class="code-java"><SPAN class="code-keyword">public</SPAN> class MyLocator {
    <SPAN class="code-keyword">private</SPAN> <SPAN class="code-keyword">final</SPAN> Context context;

    <SPAN class="code-keyword">public</SPAN> MyLocator() <SPAN class="code-keyword">throws</SPAN> NamingException {
        <SPAN class="code-keyword">this</SPAN>(<SPAN class="code-keyword">null</SPAN>);
    }

    <SPAN class="code-keyword">public</SPAN> MyLocator(<SPAN class="code-object">String</SPAN> commonPrefix) <SPAN class="code-keyword">throws</SPAN> NamingException {
        Properties properties = <SPAN class="code-keyword">new</SPAN> Properties();
        properties.put(Context.INITIAL_CONTEXT_FACTORY, <SPAN class="code-quote">&quot;org.apache.openejb.client.RemoteInitialContextFactory&quot;</SPAN>);
        properties.put(Context.PROVIDER_URL, <SPAN class="code-quote">&quot;ejbd:<SPAN class="code-comment">//localhost:4201/&quot;</SPAN>);
</SPAN>        <SPAN class="code-keyword">this</SPAN>.context = <SPAN class="code-keyword">new</SPAN> InitialContext(properties);
    }

    <SPAN class="code-keyword">public</SPAN> <SPAN class="code-object">Object</SPAN> lookup(<SPAN class="code-object">String</SPAN> name) {
        <SPAN class="code-keyword">try</SPAN> {
            <SPAN class="code-keyword">if</SPAN> (commonPrefix != <SPAN class="code-keyword">null</SPAN>) name = commonPrefix + <SPAN class="code-quote">&quot;/&quot;</SPAN> +name;
            <SPAN class="code-keyword">return</SPAN> context.lookup(name);
        } <SPAN class="code-keyword">catch</SPAN> (NamingException e) {
            <SPAN class="code-keyword">throw</SPAN> <SPAN class="code-keyword">new</SPAN> IllegalArgumentException(e);
        }
    }
}</PRE>
</DIV></DIV>

<H2><A name="ServiceLocator-Justtheinterface"></A>Just the interface</H2>
<P>Usable with JNDI name formats ending in the full class name of the interface such as:</P>
<UL class="alternate" type="square">
	<LI>{interfaceClass}</LI>
</UL>


<DIV class="code"><DIV class="codeContent">
<PRE class="code-java"><SPAN class="code-keyword">public</SPAN> &lt;T&gt; T lookup(<SPAN class="code-object">Class</SPAN>&lt;T&gt; type) {
    <SPAN class="code-keyword">return</SPAN> (T) lookup(type.getName());
}</PRE>
</DIV></DIV>

<DIV class="code"><DIV class="codeContent">
<PRE class="code-java">MyLocator locator = <SPAN class="code-keyword">new</SPAN> MyLocator();
Widget widget = locator.lookup(Widget.class);</PRE>
</DIV></DIV>

<P>Or with a common prefix or with a common prefix supplied in constructor such as:</P>
<UL class="alternate" type="square">
	<LI>{moduleId}/{interfaceClass}</LI>
	<LI>ejb/{moduleId}/{interfaceClass}</LI>
</UL>


<DIV class="code"><DIV class="codeContent">
<PRE class="code-java">MyLocator locator = <SPAN class="code-keyword">new</SPAN> MyLocator(<SPAN class="code-quote">&quot;ejb/superbiz&quot;</SPAN>);
Widget widget = locator.lookup(Widget.class);   
Store store = locator.lookup(Store.class);</PRE>
</DIV></DIV>


<H2><A name="ServiceLocator-Interfaceclassandaprefix"></A>Interface class and a prefix</H2>

<P>Usable with JNDI name formats including a varying prefix such as ejbName or deploymentID<BR>
and ending in the full class name of the interface</P>

<UL class="alternate" type="square">
	<LI>{ejbName}/{interfaceClass}</LI>
	<LI>{deploymentId}/{interfaceClass}</LI>
</UL>


<DIV class="code"><DIV class="codeContent">
<PRE class="code-java"><SPAN class="code-keyword">public</SPAN> &lt;T&gt; T lookup(<SPAN class="code-object">String</SPAN> prefix, <SPAN class="code-object">Class</SPAN>&lt;T&gt; type) {
    <SPAN class="code-keyword">return</SPAN> (T) lookup(prefix + <SPAN class="code-quote">&quot;/&quot;</SPAN> + type.getName());
}</PRE>
</DIV></DIV>

<DIV class="code"><DIV class="codeContent">
<PRE class="code-java">MyLocator locator = <SPAN class="code-keyword">new</SPAN> MyLocator();
Widget redWidget = locator.lookup(<SPAN class="code-quote">&quot;RedWidgetBean&quot;</SPAN>, Widget.class);   
Widget blueWidget = locator.lookup(<SPAN class="code-quote">&quot;BlueWidgetBean&quot;</SPAN>, Widget.class);</PRE>
</DIV></DIV>

<P>Or with a common prefix or with a common prefix supplied in constructor such as:</P>
<UL class="alternate" type="square">
	<LI>{moduleId}/{ejbName}/{interfaceClass}</LI>
	<LI>ejb/{moduleId}/{deploymentId}/{interfaceClass}</LI>
</UL>


<DIV class="code"><DIV class="codeContent">
<PRE class="code-java">MyLocator locator = <SPAN class="code-keyword">new</SPAN> MyLocator(<SPAN class="code-quote">&quot;accountingApp&quot;</SPAN>);
Widget widget = locator.lookup(<SPAN class="code-quote">&quot;RedWidgetBean&quot;</SPAN>, Widget.class);   
Store store = locator.lookup(<SPAN class="code-quote">&quot;StoreBean&quot;</SPAN>, Store.class);</PRE>
</DIV></DIV>

<H2><A name="ServiceLocator-Interfaceclassandejbclass"></A>Interface class and ejb class</H2>

<P>Usable with JNDI name formats comprised of the interfaceClass and ejbClass</P>

<P>For variation, the interface class is the prefix and the ejb class is the<BR>
suffix.  This is neat as the the prefix (the interface class name) becomes<BR>
a jndi context with one binding in it for each implementing ejb class.</P>

<P>Works with:</P>
<UL class="alternate" type="square">
	<LI>{interfaceClass}/{ejbClass}</LI>
</UL>


<DIV class="code"><DIV class="codeContent">
<PRE class="code-java"><SPAN class="code-keyword">public</SPAN> &lt;T&gt; T lookup(<SPAN class="code-object">Class</SPAN>&lt;T&gt; type, <SPAN class="code-object">Class</SPAN> ejbClass) {
    <SPAN class="code-keyword">return</SPAN> (T) lookup(type.getName() + <SPAN class="code-quote">&quot;/&quot;</SPAN> + ejbClass.getName());
}</PRE>
</DIV></DIV>

<DIV class="code"><DIV class="codeContent">
<PRE class="code-java">MyLocator locator = <SPAN class="code-keyword">new</SPAN> MyLocator();
Widget widget = locator.lookup(Widget.class, BlueWidgetBean.class);</PRE>
</DIV></DIV>

<P>Or with a common prefix or with a common prefix supplied in constructor such as:</P>
<UL class="alternate" type="square">
	<LI>{moduleId}/{interfaceClass}/{ejbClass}</LI>
	<LI>ejb/{moduleId}/{interfaceClass}/{ejbClass}</LI>
</UL>


<DIV class="code"><DIV class="codeContent">
<PRE class="code-java">MyLocator locator = <SPAN class="code-keyword">new</SPAN> MyLocator(<SPAN class="code-quote">&quot;ejb/purchasingApp&quot;</SPAN>);
Widget widget = locator.lookup(Widget.class, RedWidgetBean.class);
Store store = locator.lookup(Store.class, StoreBean.class);</PRE>
</DIV></DIV>


<H2><A name="ServiceLocator-Interfaceclassandejbclasswithsimplenames"></A>Interface class and ejb class with simple names</H2>

<P>Similar to the above example but using the simple name of the classes resulting<BR>
in a JNDI tree that's a bit more human readable.</P>
<UL class="alternate" type="square">
	<LI>{ejbClass.simpleName}/{interfaceClass.simpleName}</LI>
</UL>


<DIV class="code"><DIV class="codeContent">
<PRE class="code-java"><SPAN class="code-keyword">public</SPAN> &lt;T&gt; T lookup(<SPAN class="code-object">Class</SPAN> ejbClass, <SPAN class="code-object">Class</SPAN>&lt;T&gt; type) {
    <SPAN class="code-keyword">return</SPAN> (T) lookup(ejbClass.getSimpleName() + &quot;&quot; + type.getSimpleName());
}</PRE>
</DIV></DIV>

<DIV class="code"><DIV class="codeContent">
<PRE class="code-java">MyLocator locator = <SPAN class="code-keyword">new</SPAN> MyLocator();
Widget widget = locator.lookup(RedWidgetBean.class, Widget.class);</PRE>
</DIV></DIV>

<P>Or with a common prefix or with a common prefix supplied in constructor such as:</P>
<UL class="alternate" type="square">
	<LI>{moduleId}/{ejbClass.simpleName}/{interfaceClass.simpleName}</LI>
	<LI>ejb/{moduleId}/{ejbClass.simpleName}/{interfaceClass.simpleName}</LI>
</UL>


<DIV class="code"><DIV class="codeContent">
<PRE class="code-java">MyLocator locator = <SPAN class="code-keyword">new</SPAN> MyLocator(<SPAN class="code-quote">&quot;shippingApp&quot;</SPAN>);
Widget widget = locator.lookup(GreenWidgetBean.class, Widget.class);   
Store store = locator.lookup(SuperStoreBean.class, Store.class);</PRE>
</DIV></DIV>

            </DIV>
        </DIV>
    </DIV>
     </P>
    </TD>

        
            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
   </TR>
   <TR height="5">
    <TD width="20" height="5" bgcolor="#7270c2" valign="top" align="left">&nbsp;</TD>
    <TD width="95" height="5" bgcolor="#7270c2" valign="top">&nbsp;</TD>
    <TD width="7" height="5" bgcolor="#a9a5de" valign="top" align="left">&nbsp;</TD>
    <TD width="40" height="5" valign="top" align="left">&nbsp;</TD>
    <TD width="120" height="5" valign="top" align="left">&nbsp;</TD>
   </TR>
   <TR>
    <TD width="20" height="5" bgcolor="#7270c2" valign="top" align="left">&nbsp;</TD>
    <TD width="95" bgcolor="#7270c2" valign="BOTTOM" align="left">&nbsp;</TD>
    <TD width="7" bgcolor="#a9a5de" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" width="1" height="25" border="0"></TD>
    <TD width="40" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" width="1" height="25" border="0"></TD>
    <TD width="120" valign="top" align="left">&nbsp;</TD>
   </TR>
   <TR>
    <TD width="20" height="5" bgcolor="#7270c2" valign="top" align="left">&nbsp;</TD>
    <TD width="95" bgcolor="#7270c2" valign="BOTTOM" align="left">&nbsp;</TD>
    <TD width="7" bgcolor="#a9a5de" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" width="1" height="25" border="0"></TD>
    <TD width="40" valign="top" align="left"><IMG src="http://openejb.apache.org/images/dotTrans.gif" width="1" height="25" border="0"></TD>
    <TD width="120" valign="top" align="left">&nbsp;</TD>
   </TR>
   <TR height="5">
    <TD width="20" rowspan="2" height="100%" bgcolor="#7270c2" valign="bottom" align="left"><IMG src="http://openejb.apache.org/images/stripes1.gif" width="20" height="125" border="0"></TD>
    <TD width="95" rowspan="2" height="100%" bgcolor="#7270c2" valign="bottom" align="left"><IMG src="http://openejb.apache.org/images/stripe105.gif" width="105" height="125" border="0"></TD>
    <TD width="7" rowspan="2" height="100%" bgcolor="#a9a5de" valign="top" align="left">&nbsp;</TD>
    <TD width="40" height="100%" valign="top" align="left">&nbsp;</TD>
    <TD width="120" height="100%" valign="top" align="left">&nbsp;</TD>
   </TR>
   <TR height="5">
    <TD width="40" height="25" valign="top" align="left">&nbsp;</TD>
    <TD width="100%" height="25" valign="bottom" align="left"><BR>
     <BR>
     <IMG src="http://openejb.apache.org/images/line_light.gif" border="0" width="430" height="3"><BR>
     <P>
     </P>
     <SPAN class="bodyGrey">
     <SMALL><NOTICE><!-- $FOOTER -->
Apache OpenEJB is an project of The Apache Software Foundation (ASF)
     </NOTICE> <BR>
     &nbsp;<BR>
          Powered by <A href="http://atlassian.com/">Atlassian</A> <A href="http://atlassian.com/confluence/">Confluence</A>.
     </SMALL>
     </SPAN>
     <P>
     </P>
     </TD>
    <TD width="120" height="25" valign="top" align="left">&nbsp;</TD>
   </TR>
  </TABLE>

<!-- Needed for composition plugin -->
<!-- delay the loading of large javascript files to the end so that they don't interfere with the loading of page content -->
<SPAN style="display: none">
    <SCRIPT type="text/javascript" language="JavaScript" src="http://cwiki.apache.org/confluence/labels-javascript"></SCRIPT>

<SCRIPT src="http://www.google-analytics.com/urchin.js" type="text/javascript">
</SCRIPT>
<SCRIPT type="text/javascript">
_uacct = "UA-2717626-1";
urchinTracker();
</SCRIPT>
</SPAN>

  </BODY>
 </HTML>
