[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openejb-cvs
Subject:    [CONF] OpenEJB > Local Server
From:       confluence () apache ! org
Date:       2009-08-29 20:54:00
Message-ID: 917147351.2272.1251579240019.JavaMail.www-data () brutus
[Download RAW message or body]

<html>
<head>
    <base href="http://cwiki.apache.org/confluence">
            <link rel="stylesheet" \
href="/confluence/s/1519/1/1/_/styles/combined.css?spaceKey=OPENEJB&amp;forWysiwyg=true" \
type="text/css">  </head>
<body style="background-color: white" bgcolor="white">
<div id="pageContent">
<div id="notificationFormat">
<div class="wiki-content">
<div class="email">
     <h2><a href="http://cwiki.apache.org/confluence/display/OPENEJB/Local+Server">Local \
                Server</a></h2>
     <h4>Page <b>edited</b> by             <a \
href="http://cwiki.apache.org/confluence/display/~dblevins">David Blevins</a>  </h4>
     
          <br/>
     <div class="notificationGreySide">
         <p><img src="http://www.openejb.org/images/diagram-local-server.gif" \
align="right" border="0" hspace="15" /></p> <p>The basic process for embedding \
OpenEJB:</p>

<ol>
	<li>Add the OpenEJB libraries to your classpath</li>
	<li>Ensure your EJB modules are discoverable</li>
	<li>Use the LocalInitialContextFactory to boot OpenEJB</li>
</ol>



<h2><a name="LocalServer-Importantdocs"></a>Important docs</h2>

<ul class="alternate" type="square">
	<li><a href="/confluence/display/OPENEJBx30/Application+discovery+via+the+classpath" \
title="Application discovery via the classpath">Application discovery via the \
classpath</a></li>  <li><a \
href="/confluence/display/OPENEJBx30/Embedded+Configuration" title="Embedded \
Configuration">Embedded Configuration</a></li>  <li><a \
href="/confluence/display/OPENEJBx30/Configuring+DataSources+in+Tests" \
title="Configuring DataSources in Tests">Configuring DataSources in Tests</a></li>  \
<li><a href="/confluence/display/OPENEJBx30/Configuring+PersistenceUnits+in+Tests" \
title="Configuring PersistenceUnits in Tests">Configuring PersistenceUnits in \
Tests</a></li>  <li><a \
href="/confluence/display/OPENEJBx30/Configuring+Containers+in+Tests" \
title="Configuring Containers in Tests">Configuring Containers in Tests</a></li>  \
<li><a href="/confluence/display/OPENEJBx30/Configuring+Logging+in+Tests" \
title="Configuring Logging in Tests">Configuring Logging in Tests</a></li>  <li><a \
href="/confluence/display/OPENEJBx30/Alternate+Descriptors" title="Alternate \
Descriptors">Alternate Descriptors</a></li>  <li><a \
href="/confluence/display/OPENEJBx30/Unit+Testing+Transactions" title="Unit Testing \
Transactions">Unit Testing Transactions</a></li>  <li><a \
href="/confluence/display/OPENEJBx30/TestCase+with+TestBean+inner-class" \
title="TestCase with TestBean inner-class">TestCase with TestBean \
inner&#45;class</a></li>  <li><a \
href="/confluence/display/OPENEJBx30/Local+Client+Injection" title="Local Client \
Injection">TestCase Injection (@LocalClient)</a></li> </ul>


<h2><a name="LocalServer-Examples"></a>Examples</h2>

<span class="ExamplesTable"><table class='confluenceTable'><tbody>
<tr>
<th class='confluenceTh'> title </th>
<th class='confluenceTh'> description </th>
<th class='confluenceTh'> APIs used </th>
</tr>
<tr>
<td class='confluenceTd'> <div class="Cel1"><b><a \
href="/confluence/display/OPENEJBx30/Simple+Stateless+Example" title="Simple \
Stateless Example">Simple Stateless</a></b></div> </td> <td class='confluenceTd'> \
Simple EJB3 <b>@Stateless</b> bean with local and remote business interfaces and unit \
test. </td> <td class='confluenceTd'><ul class="alternate" type="square">
	<li>javax.ejb.Remote</li>
	<li>javax.ejb.Local</li>
	<li>javax.ejb.Stateless</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Simple+Stateful+Example" title="Simple Stateful \
Example">Simple Stateful</a></b> </td> <td class='confluenceTd'> Simple EJB3 \
<b>@Stateful</b> bean with local and remote business interfaces and unit test. </td> \
<td class='confluenceTd'><ul class="alternate" type="square">  \
<li>javax.ejb.Remote</li>  <li>javax.ejb.Stateful</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Singleton+Example" title="Singleton Example">EJB \
3.1 Singleton</a></b> </td> <td class='confluenceTd'> Shows two EJB 3.1 \
<b>@Singleton</b> beans.  One configured to load on startup via <b>@Startup</b> and \
using Bean-Managed Concurrency and synchronization.  Another using Container-Managed \
Concurrency via <b>@Lock(READ)</b> and <b>@Lock(WRITE)</b>.  </td> <td \
class='confluenceTd'><ul class="alternate" type="square">  \
<li>javax.annotation.PostConstruct</li>  <li>javax.annotation.PreDestroy</li>
	<li>javax.ejb.ConcurrencyManagement</li>
	<li>javax.ejb.Lock</li>
	<li>javax.ejb.Singleton</li>
	<li>javax.ejb.Startup</li>
	<li>javax.ejb.ConcurrencyManagementType.BEAN</li>
	<li>javax.ejb.LockType.READ</li>
	<li>javax.ejb.LockType.WRITE</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/EJB+2.1+Compatibility+Example" title="EJB 2.1 \
Compatibility Example">EJB 2.1 Compatibility</a></b> </td> <td class='confluenceTd'> \
Shows an EJB 3.0 Stateful bean with Business interfaces and EJB 2.1 interfaces (now \
called "component" interfaces) using the <b>@LocalHome</b> and <b>@RemoteHome</b>. \
Four interfaces in total. </td> <td class='confluenceTd'><ul class="alternate" \
type="square">  <li>javax.ejb.CreateException</li>
	<li>javax.ejb.EJBHome</li>
	<li>javax.ejb.EJBLocalHome</li>
	<li>javax.ejb.EJBLocalObject</li>
	<li>javax.ejb.EJBObject</li>
	<li>javax.ejb.Init</li>
	<li>javax.ejb.Local</li>
	<li>javax.ejb.LocalHome</li>
	<li>javax.ejb.Remote</li>
	<li>javax.ejb.RemoteHome</li>
	<li>javax.ejb.Remove</li>
	<li>javax.ejb.Stateful</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Injection+of+env-entry+Example" title="Injection \
of env-entry Example">Injection of env-entry</a></b> </td> <td class='confluenceTd'> \
Shows how <b>@Resource</b> can be used to inject <b><tt>env-entry</tt></b> values \
declared in an ejb-jar.xml file </td> <td class='confluenceTd'><ul class="alternate" \
type="square">  <li>javax.annotation.Resource</li>
	<li>javax.ejb.Local</li>
	<li>javax.ejb.Remote</li>
	<li>javax.ejb.Stateful</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Custom+Injection" title="Custom \
Injection">Injection of env-entry 2</a></b> </td> <td class='confluenceTd'> Same as \
the above example but shows how to use a <b>properties file</b> to declare the \
injection values and demonstrates how to get injection of <b>more types</b> such as \
java.util.Date, java.lang.Class, java.net.URI and more.  <em>OpenEJB specific \
feature</em>. </td> <td class='confluenceTd'><ul class="alternate" type="square">
	<li>javax.annotation.Resource</li>
	<li>javax.ejb.Stateless</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Injection+of+other+EJBs+Example" \
title="Injection of other EJBs Example">Injection of other EJBs</a></b> </td> <td \
class='confluenceTd'> Shows use of <b>@EJB</b> in a Stateless to have another \
Stateless bean injected into it. </td> <td class='confluenceTd'><ul class="alternate" \
type="square">  <li>javax.ejb.EJB</li>
	<li>javax.ejb.Local</li>
	<li>javax.ejb.Remote</li>
	<li>javax.ejb.Stateless</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Injection+of+DataSource+Example" \
title="Injection of DataSource Example">Injection of DataSource</a></b> </td> <td \
class='confluenceTd'> Shows use of <b>@Resource</b> to have a JDBC <b>DataSource</b> \
injected into a Stateful bean.  The Stateful bean does basic INSERT, SELECT and \
DELETE SQL operations. </td> <td class='confluenceTd'><ul class="alternate" \
type="square">  <li>javax.annotation.PostConstruct</li>
	<li>javax.annotation.Resource</li>
	<li>javax.ejb.Stateful</li>
	<li>javax.sql.DataSource</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Injection+of+EntityManager+Example" \
title="Injection of EntityManager Example">Injection of EntityManager</a></b> </td> \
<td class='confluenceTd'> Shows use of <b>@PersistenceContext</b> to have an \
<b>EntityManager</b> with an <b>EXTENDED</b> persistence context injected into a \
@Stateful bean.  An EJB 3 <b>@Entity</b> bean is used with the EntityManager to \
create, persist and merge data to a database. </td> <td class='confluenceTd'><ul \
class="alternate" type="square">  <li>javax.ejb.Stateful</li>
	<li>javax.persistence.Entity</li>
	<li>javax.persistence.EntityManager</li>
	<li>javax.persistence.PersistenceContext</li>
	<li>javax.persistence.PersistenceContextType.EXTENDED</li>
	<li>javax.persistence.Query</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Testing+Transactions+Example" title="Testing \
Transactions Example">Testing Transactions</a></b> </td> <td class='confluenceTd'> \
Shows use of @PersistenceContext to have an <b>EntityManager</b> with an \
<b>TRANSACTION</b> persistence context injected into a <b>@Stateful</b> bean using \
the <b>@TransactionAttribute</b> annotation and a TestCase that runs test code in a \
JTA <b>Transaction</b>.  An EJB 3 @Entity bean is used with the EntityManager to \
create, persist and merge data to a database. </td> <td class='confluenceTd'><ul \
class="alternate" type="square">  <li>javax.ejb.Stateful</li>
	<li>javax.ejb.Stateless</li>
	<li>javax.ejb.TransactionAttribute</li>
	<li>javax.ejb.TransactionAttributeType.MANDATORY</li>
	<li>javax.ejb.TransactionAttributeType.REQUIRES_NEW</li>
	<li>javax.persistence.Entity</li>
	<li>javax.persistence.EntityManager</li>
	<li>javax.persistence.PersistenceContext</li>
	<li>javax.persistence.PersistenceContextType.TRANSACTION</li>
	<li>javax.persistence.Query</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Testing+Security+Example" title="Testing \
Security Example">Testing Security</a></b> </td> <td class='confluenceTd'> Builds \
upon the <a href="/confluence/display/OPENEJBx30/Injection+of+EntityManager+Example" \
title="Injection of EntityManager Example">Injection of EntityManager Example</a> but \
adds the use of <b>@RolesAllowed</b> and <b>@PermitAll</b> in the @Stateful bean to \
restrict who can perform create, persist and remove operations on the EntityManager.  \
Shows a TestCase using the <b>@RunAs</b> annotation to execute and test the bean code \
as various users. </td> <td class='confluenceTd'><ul class="alternate" type="square">
	<li>javax.annotation.security.PermitAll</li>
	<li>javax.annotation.security.RolesAllowed</li>
	<li>javax.annotation.security.RunAs</li>
	<li>javax.ejb.EJBAccessException</li>
	<li>javax.ejb.Stateful</li>
	<li>javax.ejb.Stateless</li>
	<li>javax.ejb.TransactionAttribute</li>
	<li>javax.ejb.TransactionAttributeType.SUPPORTS</li>
	<li>javax.persistence.Entity</li>
	<li>javax.persistence.EntityManager</li>
	<li>javax.persistence.PersistenceContext</li>
	<li>javax.persistence.PersistenceContextType.EXTENDED</li>
	<li>javax.persistence.Query</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Embedded+and+Remotable" title="Embedded and \
Remotable">Embedded and Remotable</a></b> </td> <td class='confluenceTd'> \
Demonstrates how to use an OpenEJB feature that allows people embedding OpenEJB into \
their applications to support remote clients in other VMs.  This is not required for \
unit testing. </td> <td class='confluenceTd'><ul class="alternate" type="square">
	<li>javax.ejb.Remote</li>
	<li>javax.ejb.Stateful</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/display/OPENEJBx30/Helloworld+Weblogic" title="Helloworld \
Weblogic">Helloworld Weblogic</a></b> </td> <td class='confluenceTd'> Demonstrates \
OpenEJBs ability to understand and support the WebLogic deployment descriptors so \
people using that platform in production can still use OpenEJB in their IDE or build \
to unit test their EJB applications. </td> <td class='confluenceTd'><ul \
class="alternate" type="square">  <li>javax.ejb.CreateException</li>
	<li>javax.ejb.EJBLocalHome</li>
	<li>javax.ejb.EJBLocalObject</li>
	<li>javax.ejb.LocalHome</li>
	<li>javax.ejb.Stateless</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/pages/createpage.action?spaceKey=OPENEJBx30&amp;title=JSF+Injection+Support&amp;linkCreation=true&amp;fromPageId=86439" \
class="createlink">JSF Injection Support</a></b> </td> <td class='confluenceTd'> \
Demonstrates OpenEJBs ability to inject EJB's into JSF managed beans. </td> <td \
class='confluenceTd'><ul class="alternate" type="square">  \
<li>javax.ejb.Stateless</li> </ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/pages/createpage.action?spaceKey=OPENEJBx30&amp;title=Struts+with+OpenEJB+and+Tomcat&amp;linkCreation=true&amp;fromPageId=86439" \
class="createlink">Struts with OpenEJB and Tomcat</a></b> </td> <td \
class='confluenceTd'> Demonstrates the usage of Struts within an OpenEJB + Tomcat \
environment. </td> <td class='confluenceTd'><ul class="alternate" type="square">
	<li>javax.ejb.Stateless</li>
</ul>
</td>
</tr>
<tr>
</tr>
<tr>
<td class='confluenceTd'> <b><a \
href="/confluence/pages/createpage.action?spaceKey=OPENEJBx30&amp;title=Applets+with+OpenEJB&amp;linkCreation=true&amp;fromPageId=86439" \
class="createlink">Applets with OpenEJB</a></b> </td> <td class='confluenceTd'> \
Demonstrates how an applet can communicate with a remote stateless session bean. The \
stateless session bean is deployed in an OpenEJB + Tomcat environment </td> <td \
class='confluenceTd'><ul class="alternate" type="square">  \
<li>javax.ejb.Stateless</li> </ul>
</td>
</tr>
<tr>
</tr>
</tbody></table></span>


     </div>
     <div id="commentsSection" class="wiki-content pageSection">
       <div style="float: right;">
            <a href="http://cwiki.apache.org/confluence/users/viewnotifications.action" \
class="grey">Change Notification Preferences</a>  </div>

       <a href="http://cwiki.apache.org/confluence/display/OPENEJB/Local+Server">View \
Online</a>  |
       <a href="http://cwiki.apache.org/confluence/pages/diffpagesbyversion.action?pageId=26515&revisedVersion=3&originalVersion=2">View \
Change</a>  |
       <a href="http://cwiki.apache.org/confluence/display/OPENEJB/Local+Server?showComments=true&amp;showCommentArea=true#addcomment">Add \
Comment</a>  </div>
</div>
</div>
</div>
</div>
</body>
</html>


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic