jlaskowski 2005/06/19 18:40:31
Modified: modules/core/src/java/org/openejb/core ContainerSystem.java
CoreContext.java CoreUserTransaction.java
DeploymentInfo.java EnvProps.java
ThreadContext.java TransactionManagerWrapper.java
package.html
Log:
A step towards cutting the 1.0 release:
o openejb:release goal to cut a release
o polishing the sources so that javadoc is built without any errors or
warnings
o Add javadoc to release in openejb:release
Revision Changes Path
1.3 +2 -6
openejb1/modules/core/src/java/org/openejb/core/ContainerSystem.java
Index: ContainerSystem.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/core/src/java/org/openejb/core/ContainerSystem.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ContainerSystem.java 14 Aug 2004 10:35:37 -0000 1.2
+++ ContainerSystem.java 19 Jun 2005 22:40:31 -0000 1.3
@@ -102,9 +102,6 @@
* @param id the id of the Container
* @return the Container associated with the id
* @see Container
- * @see ContainerManager#getContainer(Object)
ContainerManager.getContainer
- * @see Container#getContainerID() Container.getContainerID()
- * @see DeploymentInfo#getContainerID() DeploymentInfo.getContainerID()
*/
public Container getContainer(Object id){
return (Container)containers.get(id);
@@ -115,7 +112,6 @@
*
* @return an array of all the Containers
* @see Container
- * @see ContainerManager#containers() ContainerManager.containers()
*/
public Container [] containers( ){
return (Container [])containers.values().toArray(new Container
[containers.size()]);
@@ -125,7 +121,7 @@
* Adds a Container to the list of those that are managed by this
container system.
* If a Container previously existed with the same id it will be
replaced.
* @param id the id of the Container
- * @param the Container to manage
+ * @param c Container to manage
* @see org.openejb.Container
*/
public void addContainer(Object id, Container c){
1.3 +19 -91
openejb1/modules/core/src/java/org/openejb/core/CoreContext.java
Index: CoreContext.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/core/src/java/org/openejb/core/CoreContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CoreContext.java 26 Aug 2004 07:20:26 -0000 1.2
+++ CoreContext.java 19 Jun 2005 22:40:31 -0000 1.3
@@ -64,67 +64,39 @@
//==========================
// method categories
//
- /**
- * TODO: Add comments
- */
+
public final static byte SECURITY_METHOD = (byte)1;
- /**
- * TODO: Add comments
- */
+
public final static byte USER_TRANSACTION_METHOD = (byte)2;
- /**
- * TODO: Add comments
- */
+
public final static byte ROLLBACK_METHOD = (byte)3;
- /**
- * TODO: Add comments
- */
+
public final static byte EJBOBJECT_METHOD = (byte)4;
- /**
- * TODO: Add comments
- */
+
public final static byte EJBHOME_METHOD = (byte)5;
//
// method categories
//==========================
- /**
- * TODO: Add comments
- */
+
CoreUserTransaction userTransaction;
- /**
- * TODO: Add comments
- */
+
public CoreContext() {
userTransaction = new
CoreUserTransaction(OpenEJB.getTransactionManager());
}
- /**
- * TODO: Add comments
- *
- * @param methodCategory
- * @exception IllegalStateException
- */
+
public abstract void checkBeanState(byte methodCategory) throws
IllegalStateException;
- /**
- * TODO: Add comments
- *
- * @return
- */
+
public java.security.Principal getCallerPrincipal() {
checkBeanState(SECURITY_METHOD);
Object securityIdentity =
ThreadContext.getThreadContext().getSecurityIdentity();
return(java.security.Principal)OpenEJB.getSecurityService().translateTo(securityIdentity,
java.security.Principal.class);
}
- /**
- * TODO: Add comments
- *
- * @param roleName
- * @return
- */
+
public boolean isCallerInRole(java.lang.String roleName) {
checkBeanState(SECURITY_METHOD);
ThreadContext threadContext = ThreadContext.getThreadContext();
@@ -133,11 +105,7 @@
Object caller = threadContext.getSecurityIdentity();
return
OpenEJB.getSecurityService().isCallerAuthorized(caller,physicalRoles);
}
- /**
- * TODO: Add comments
- *
- * @return
- */
+
public EJBHome getEJBHome() {
checkBeanState(EJBHOME_METHOD);
@@ -146,11 +114,7 @@
return di.getEJBHome();
}
- /**
- * TODO: Add comments
- *
- * @return
- */
+
public javax.ejb.EJBObject getEJBObject() {
checkBeanState(EJBOBJECT_METHOD);
@@ -195,11 +159,7 @@
public TimerService getTimerService() {
return null; //TODO: implement this
}
- /**
- * TODO: Add comments
- *
- * @return
- */
+
public Object getPrimaryKey( ) {
/*
* This method is only declared in the EntityContext interface and is
therefor
@@ -211,11 +171,7 @@
ThreadContext threadContext = ThreadContext.getThreadContext();
return threadContext.getPrimaryKey();
}
- /**
- * TODO: Add comments
- *
- * @return
- */
+
public boolean getRollbackOnly() {
ThreadContext threadContext = ThreadContext.getThreadContext();
@@ -236,9 +192,7 @@
throw new RuntimeException("Transaction service has thrown a
SystemException");
}
}
- /**
- * TODO: Add comments
- */
+
public void setRollbackOnly() {
ThreadContext threadContext = ThreadContext.getThreadContext();
org.openejb.DeploymentInfo di = threadContext.getDeploymentInfo();
@@ -254,11 +208,7 @@
}
}
- /**
- * TODO: Add comments
- *
- * @return
- */
+
public javax.transaction.UserTransaction getUserTransaction() {
ThreadContext threadContext = ThreadContext.getThreadContext();
@@ -274,39 +224,17 @@
/* UNSUPPORTED DEPRICATED METHODS */
/*----------------------------------------------------*/
- /**
- * TODO: Add comments
- *
- * @param role
- * @return
- */
public boolean isCallerInRole(java.security.Identity role) {
throw new java.lang.UnsupportedOperationException();
}
- /**
- * TODO: Add comments
- *
- * @return
- */
+
public java.security.Identity getCallerIdentity() {
throw new java.lang.UnsupportedOperationException();
}
- /**
- * TODO: Add comments
- *
- * @return
- */
+
public java.util.Properties getEnvironment() {
throw new java.lang.UnsupportedOperationException();
}
- /**
- * TODO: Add comments
- *
- * @param container
- * @param pk
- * @param depID
- * @return
- */
protected abstract EjbObjectProxyHandler
newEjbObjectHandler(RpcContainer container, Object pk, Object depID);
}
1.2 +3 -3
openejb1/modules/core/src/java/org/openejb/core/CoreUserTransaction.java
Index: CoreUserTransaction.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/core/src/java/org/openejb/core/CoreUserTransaction.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- CoreUserTransaction.java 26 Mar 2004 21:42:20 -0000 1.1
+++ CoreUserTransaction.java 19 Jun 2005 22:40:31 -0000 1.2
@@ -55,7 +55,7 @@
/**
- * Implements the bean's [EMAIL PROTECTED] UserTransaction} interface into
the
+ * Implements the bean's [EMAIL PROTECTED]
javax.transaction.UserTransaction} interface into the
* transaction monitor. A bean should only obtain access to this
* interface if the transaction is bean managed. This interface
* prevents the bean from marking the transaction as roll back only
1.3 +20 -28
openejb1/modules/core/src/java/org/openejb/core/DeploymentInfo.java
Index: DeploymentInfo.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/core/src/java/org/openejb/core/DeploymentInfo.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DeploymentInfo.java 14 Aug 2004 10:35:37 -0000 1.2
+++ DeploymentInfo.java 19 Jun 2005 22:40:31 -0000 1.3
@@ -160,9 +160,7 @@
* @param componentType
* one of the component type constants defined in
org.openejb.DeploymentInfo
* @exception org.openejb.SystemException
- * @see org.openejb.ContainerSystem
* @see org.openejb.Container#getContainerID
- * @see org.openejb.ContainerManager#getContainerManagerID
* @see org.openejb.DeploymentInfo#STATEFUL
* @see org.openejb.DeploymentInfo#STATELESS
* @see org.openejb.DeploymentInfo#BMP_ENTITY
@@ -317,8 +315,6 @@
* Gets the id of this bean deployment.
*
* @return the id of of this bean deployment
- * @see ContainerManager#getContainerManagerID()
ContainerManager.getContainerManagerID()
- * @see Container#getContainerManagerID()
Container.getContainerManagerID()
*/
public Object getDeploymentID( ){
return deploymentId;
@@ -440,11 +436,11 @@
* Sets the JNDI namespace for the bean's environment. This will be the
ony
* namespace that the bean will be able to access using the java: URL in
the JNDI.
*
- * @param the Context of the bean's JNDI environment
+ * @param ctx the Context of the bean's JNDI environment
* @see javax.naming.Context
*/
- public void setJndiEnc(javax.naming.Context cntx){
- jndiContextRoot = cntx;
+ public void setJndiEnc(Context ctx){
+ jndiContextRoot = ctx;
}
/**
@@ -462,7 +458,7 @@
/**
* Returns true if the bean deployment allows reenterace.
*
- * @return
+ * @return boolean
*/
public boolean isReentrant(){
return isReentrant;
@@ -495,7 +491,7 @@
*
* @param businessMethod
* @param returnValue
- * @return
+ * @return Object
*/
public Object convertIfLocalReference(Method businessMethod, Object
returnValue){
if(returnValue == null || methodsWithRemoteReturnTypes == null)
@@ -539,11 +535,8 @@
* The mapping is performed at assembly time by the createMethodMap( )
* declared in this class.
*
- * @param interfaceMethod
- * the Method of the home or remote interface
+ * @param interfaceMethod the Method of the home or remote interface
* @return the Method in the bean class that maps to the method specified
- * @see org.openejb.core.DeploymentInfo.createMethodMap()
- * @see java.lang.reflect.Method
*/
public Method getMatchingBeanMethod(Method interfaceMethod){
Method mthd = (Method)methodMap.get(interfaceMethod);
@@ -596,10 +589,9 @@
* used to test the caller's membership in a particular role at runtime.
* <p>
*
- * @param securityRoleReference
- * the role used by the bean code; the security-role-ref
+ * @param securityRoleReference the role used by the bean code; the
security-role-ref
* @param physicalRoles
- * @see #getPhysicalrole
+ * @see #getPhysicalRole(String)
*/
public void addSecurityRoleReference(String securityRoleReference,
String [] physicalRoles){
securityRoleReferenceMap.put(securityRoleReference, physicalRoles);
@@ -612,11 +604,11 @@
* @see "javax.ejb.EJBContext"
*/
public EJBContext getEJBContext( ){
- if(componentType == this.STATEFUL)
+ if(componentType == STATEFUL)
return new org.openejb.core.stateful.StatefulContext();
- else if(componentType == this.STATELESS)
+ else if(componentType == STATELESS)
return new org.openejb.core.stateless.StatelessContext();
- else if(componentType == this.BMP_ENTITY || componentType ==
this.CMP_ENTITY )
+ else if(componentType == BMP_ENTITY || componentType == CMP_ENTITY )
return new org.openejb.core.entity.EntityContext();
else
return null;
@@ -849,7 +841,7 @@
Entity beans have a ejbCreate and ejbPostCreate methods
with matching
parameters. This code maps that relationship.
*/
- if(this.componentType==this.BMP_ENTITY ||
this.componentType==this.CMP_ENTITY){
+ if(this.componentType==BMP_ENTITY ||
this.componentType==CMP_ENTITY){
Method postCreateMethod =
beanClass.getMethod("ejbPostCreate",method.getParameterTypes());
postCreateMethodMap.put(createMethod,postCreateMethod);
}
@@ -859,7 +851,7 @@
* method for obtaining the ejbCreate method.
*/
}else if(method.getName().startsWith("find")){
- if(this.componentType == this.BMP_ENTITY ){
+ if(this.componentType == BMP_ENTITY ){
// CMP 1.1 beans do not define a find method in the
bean class
String beanMethodName =
"ejbF"+method.getName().substring(1);
beanMethod =
beanClass.getMethod(beanMethodName,method.getParameterTypes());
@@ -920,7 +912,7 @@
/**
* Used for stateless session beans only
*
- * @return
+ * @return Method
*/
public Method getCreateMethod( ){
return createMethod;
@@ -929,7 +921,7 @@
* Used for entity beans only.
*
* @param createMethod
- * @return
+ * @return Method
*/
public Method getMatchingPostCreateMethod(Method createMethod){
return (Method)this.postCreateMethodMap.get(createMethod);
@@ -976,7 +968,7 @@
public void setPrimKeyField(String fieldName)
throws java.lang.NoSuchFieldException{
- if(componentType == this.CMP_ENTITY){
+ if(componentType == CMP_ENTITY){
primKeyField = beanClass.getField(fieldName);
}
@@ -986,7 +978,7 @@
* Returns the names of the bean's container-managed fields. Used for
* container-managed persistence only.
*
- * @return
+ * @return String[]
*/
public String [] getCmrFields( ){
return cmrFields;
@@ -1031,7 +1023,7 @@
* </P>
*
* @param queryMethod
- * @return
+ * @return String
*/
public String getQuery(Method queryMethod){
return (String)queryMethodMap.get(queryMethod);
1.2 +1 -24
openejb1/modules/core/src/java/org/openejb/core/EnvProps.java
Index: EnvProps.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/core/src/java/org/openejb/core/EnvProps.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- EnvProps.java 26 Mar 2004 21:42:22 -0000 1.1
+++ EnvProps.java 19 Jun 2005 22:40:31 -0000 1.2
@@ -56,28 +56,6 @@
public class EnvProps {
/**
- * Property name that specifies the class name of the ConnectionBuilder
a JmsContainer should use.
- *
- * <p>
- * NAME:<br>
- * <code>org/openejb/core/jms/JmsConnectionBuilder</code>
- * </p>
- *
- * <p>
- * EXAMPLE VALUE:<br>
- * <code>org.example.asf.ReplacementConnectionBuilder</code>
- * </p>
- *
- * <p>
- * USED BY:
- * <UL>
- * <LI>[EMAIL PROTECTED] org.openejb.core.jms.JmsContainer}
- * </UL>
- * </p>
- */
- public final static String CB_CLASS_NAME =
"org.openejb.core.jms.JmsConnectionBuilder";
-
- /**
* Property name that specifies the class name of the InstanceManager a
Container should use.
*
* <p>
@@ -173,7 +151,6 @@
* <LI>[EMAIL PROTECTED] org.openejb.core.entity.EntityInstanceManager}
* <LI>[EMAIL PROTECTED]
org.openejb.core.stateful.StatefulInstanceManager}
* <LI>[EMAIL PROTECTED]
org.openejb.core.stateless.StatelessInstanceManager}
- * <LI>[EMAIL PROTECTED] org.openejb.core.jms.JmsContainer}
* </UL>
* </p>
*/
1.3 +15 -89
openejb1/modules/core/src/java/org/openejb/core/ThreadContext.java
Index: ThreadContext.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/core/src/java/org/openejb/core/ThreadContext.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ThreadContext.java 25 Oct 2004 12:34:40 -0000 1.2
+++ ThreadContext.java 19 Jun 2005 22:40:31 -0000 1.3
@@ -108,11 +108,7 @@
}
}
}
- /**
- * TODO: Add comment
- *
- * @return
- */
+
protected static ThreadContext newThreadContext() {
try {
return(ThreadContext)implClass.newInstance();
@@ -124,11 +120,6 @@
}
}
- /**
- * TODO: Add comment
- *
- * @return
- */
public static boolean isValid() {
ThreadContext tc = (ThreadContext)threadStorage.get();
if ( tc!=null )
@@ -136,9 +127,7 @@
else
return false;
}
- /**
- * TODO: Add comment
- */
+
protected void makeInvalid() {
valid = false;
deploymentInfo = null;
@@ -147,20 +136,13 @@
securityIdentity = null;
unspecified = null;
}
- /**
- * TODO: Add comment
- */
+
public static void invalidate() {
ThreadContext tc = (ThreadContext)threadStorage.get();
if ( tc!=null )
tc.makeInvalid();
}
- /**
- * TODO: Add comment
- *
- * @param tc
- */
public static void setThreadContext(ThreadContext tc) {
if ( tc==null ) {
tc = (ThreadContext)threadStorage.get();
@@ -169,11 +151,7 @@
threadStorage.set(tc);
}
}
- /**
- * TODO: Add comment
- *
- * @return
- */
+
public static ThreadContext getThreadContext( ) {
ThreadContext tc = (ThreadContext)threadStorage.get();
if ( tc==null ) {
@@ -182,109 +160,57 @@
}
return tc;
}
- /**
- * TODO: Add comment
- *
- * @return
- */
+
public byte getCurrentOperation( ) {
return currentOperation;
}
- /**
- * TODO: Add comment
- *
- * @return
- */
+
public Object getPrimaryKey( ) {
return primaryKey;
}
- /**
- * TODO: Add comment
- *
- * @return
- */
+
public DeploymentInfo getDeploymentInfo() {
return deploymentInfo;
}
- /**
- * TODO: Add comment
- *
- * @return
- */
+
public Object getSecurityIdentity( ) {
return securityIdentity;
}
- /**
- * TODO: Add comment
- *
- * @return
- */
+
public Object getUnspecified() {
return unspecified;
}
- /**
- * TODO: Add comment
- *
- * @param di
- * @param primKey
- * @param securityIdentity
- */
public void set(DeploymentInfo di, Object primKey, Object
securityIdentity) {
setDeploymentInfo(di);
setPrimaryKey(primKey);
setSecurityIdentity(securityIdentity);
valid = true;
}
- /**
- * TODO: Add comment
- *
- * @param op
- */
+
public void setCurrentOperation(byte op) {
currentOperation = op;
valid = true;
}
- /**
- * TODO: Add comment
- *
- * @param primKey
- */
+
public void setPrimaryKey(Object primKey) {
primaryKey = primKey;
valid = true;
}
- /**
- * TODO: Add comment
- *
- * @param identity
- */
+
public void setSecurityIdentity(Object identity) {
securityIdentity = identity;
valid = true;
}
- /**
- * TODO: Add comment
- *
- * @param info
- */
+
public void setDeploymentInfo(DeploymentInfo info) {
deploymentInfo = info;
}
- /**
- * TODO: Add comment
- *
- * @param obj
- */
+
public void setUnspecified(Object obj) {
unspecified = obj;
}
- /**
- * TODO: Add comment
- *
- * @return
- */
public boolean valid() {
return valid;
}
1.2 +14 -65
openejb1/modules/core/src/java/org/openejb/core/TransactionManagerWrapper.java
Index: TransactionManagerWrapper.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/core/src/java/org/openejb/core/TransactionManagerWrapper.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- TransactionManagerWrapper.java 26 Mar 2004 21:42:23 -0000 1.1
+++ TransactionManagerWrapper.java 19 Jun 2005 22:40:31 -0000 1.2
@@ -144,7 +144,7 @@
* Delegates the call to the Transaction Manager
* passed into the constructor.
*
- * @return
+ * @return int
* @exception javax.transaction.SystemException
*/
public int getStatus()throws javax.transaction.SystemException{
@@ -154,7 +154,7 @@
* Delegates the call to the Transaction Manager
* passed into the constructor.
*
- * @return
+ * @return Transaction
* @exception javax.transaction.SystemException
*/
public Transaction getTransaction( )throws
javax.transaction.SystemException{
@@ -179,7 +179,7 @@
* Delegates the call to the Transaction Manager
* passed into the constructor.
*
- * @return
+ * @return Transaction
* @exception javax.transaction.SystemException
*/
public Transaction suspend( )throws javax.transaction.SystemException{
@@ -218,7 +218,7 @@
* Returns the wrapper for a given transaction
*
* @param tx
- * @return
+ * @return Transaction
* @exception javax.transaction.SystemException
*/
private Transaction getTxWrapper(Transaction tx)throws
javax.transaction.SystemException{
@@ -256,13 +256,9 @@
* The Transaction Manager's transaction instance.
*/
private final Transaction transaction;
- /**
- * TODO: Add comment
- */
+
private final Vector registeredSynchronizations;
- /**
- * TODO: Add comment
- */
+
final public static int MAX_PRIORITY_LEVEL = 3;
private TransactionWrapper(Transaction tx) {
@@ -280,12 +276,6 @@
return transaction;
}
- /**
- * TODO: Add comment
- *
- * @param obj
- * @return
- */
public boolean equals(java.lang.Object obj) {
if(obj != null && obj instanceof TransactionWrapper) {
return transaction.equals(
((TransactionWrapper)obj).getTransaction() );
@@ -302,46 +292,19 @@
return transaction.toString();
}
- /**
- * TODO: Add comment
- *
- * @exception javax.transaction.SystemException
- * @exception javax.transaction.RollbackException
- * @exception javax.transaction.HeuristicRollbackException
- * @exception javax.transaction.HeuristicMixedException
- */
- public void commit()
+ public void commit()
throws javax.transaction.SystemException,
javax.transaction.RollbackException,
javax.transaction.HeuristicRollbackException,
javax.transaction.HeuristicMixedException {
transaction.commit();
}
- /**
- * TODO: Add comment
- *
- * @param xaRes
- * @param flag
- * @return
- * @exception javax.transaction.SystemException
- */
+
public boolean delistResource(XAResource xaRes, int flag)throws
javax.transaction.SystemException {
return transaction.delistResource(xaRes,flag);
}
- /**
- * TODO: Add comment
- *
- * @param xaRes
- * @return
- * @exception javax.transaction.SystemException
- * @exception javax.transaction.RollbackException
- */
+
public boolean enlistResource(XAResource xaRes)throws
javax.transaction.SystemException, javax.transaction.RollbackException {
return transaction.enlistResource(xaRes);
}
- /**
- * TODO: Add comment
- *
- * @return
- * @exception javax.transaction.SystemException
- */
+
public int getStatus()throws javax.transaction.SystemException{
return transaction.getStatus();
}
@@ -364,27 +327,17 @@
* for the same object will be ignored.
* @param sync
* @param priority
- * @exception javax.transaction.SystemException
- * @exception javax.transaction.RollbackException
*/
private void registerSynchronization(Synchronization sync, int
priority) {
if (!registeredSynchronizations.contains(sync)) {
registeredSynchronizations.addElement(sync);
}
}
- /**
- * TODO: Add comment
- *
- * @exception javax.transaction.SystemException
- */
+
public void rollback()throws javax.transaction.SystemException{
transaction.rollback();
}
- /**
- * TODO: Add comment
- *
- * @exception javax.transaction.SystemException
- */
+
public void setRollbackOnly() throws
javax.transaction.SystemException{
transaction.setRollbackOnly();
}
@@ -403,11 +356,7 @@
}
}
}
- /**
- * TODO: Add comment
- *
- * @param status
- */
+
public void afterCompletion(int status) {
int count = registeredSynchronizations.size();
for ( int i=0; i<count; ++i ) {
1.3 +2 -4
openejb1/modules/core/src/java/org/openejb/core/package.html
Index: package.html
===================================================================
RCS file:
/home/projects/openejb/scm/openejb1/modules/core/src/java/org/openejb/core/package.html,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- package.html 8 Jul 2004 11:55:24 -0000 1.2
+++ package.html 19 Jun 2005 22:40:31 -0000 1.3
@@ -69,9 +69,7 @@
</ul>
<!-- Put @see and @since tags down here. -->
[EMAIL PROTECTED] org.openejb.core.ContainerSystem
[EMAIL PROTECTED] org.openejb.core.ContainerManager
[EMAIL PROTECTED] org.openejb.core.Container
[EMAIL PROTECTED] org.openejb.Container
@see org.openejb.core.DeploymentInfo
</body>
</html>