dain 2004/04/01 17:36:53
Added: modules/core/src/test/org/openejb/deployment
EJBConfigBuilderTest.java
Log:
Stubbed in a deployer and a simple test.
Deployment doesn't actually work, but we have a start.
Revision Changes Path
1.1
openejb/modules/core/src/test/org/openejb/deployment/EJBConfigBuilderTest.java
Index: EJBConfigBuilderTest.java
===================================================================
/* ====================================================================
* Redistribution and use of this software and associated documentation
* ("Software"), with or without modification, are permitted provided
* that the following conditions are met:
*
* 1. Redistributions of source code must retain copyright
* statements and notices. Redistributions must also contain a
* copy of this document.
*
* 2. Redistributions in binary form must reproduce this list of
* conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* 3. The name "OpenEJB" must not be used to endorse or promote
* products derived from this Software without prior written
* permission of The OpenEJB Group. For written permission,
* please contact [EMAIL PROTECTED]
*
* 4. Products derived from this Software may not be called "OpenEJB"
* nor may "OpenEJB" appear in their names without prior written
* permission of The OpenEJB Group. OpenEJB is a registered
* trademark of The OpenEJB Group.
*
* 5. Due credit should be given to the OpenEJB Project
* (http://openejb.org/).
*
* THIS SOFTWARE IS PROVIDED BY THE OPENEJB GROUP AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT
* NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL
* THE OPENEJB GROUP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the OpenEJB Project. For more information
* please see <http://openejb.org/>.
*
* ====================================================================
*/
package org.openejb.deployment;
import java.io.File;
import java.io.InputStream;
import java.net.URL;
import java.net.URLClassLoader;
import org.apache.geronimo.common.xml.XmlBeansUtil;
import org.apache.geronimo.xbeans.j2ee.EjbJarDocument;
import org.apache.geronimo.xbeans.j2ee.EjbJarType;
import org.apache.geronimo.xbeans.j2ee.SessionBeanType;
import junit.framework.TestCase;
import org.openejb.xbeans.ejbjar.OpenejbSessionBeanType;
/**
*
*
* @version $Revision: 1.1 $ $Date: 2004/04/01 22:36:53 $
*/
public class EJBConfigBuilderTest extends TestCase {
public void testCreateSessionBean() throws Exception {
EJBConfigBuilder configBuilder = new EJBConfigBuilder(null, null);
File ejbJarFile = new File("target/test-ejb-jar.jar");
assertTrue(ejbJarFile.canRead());
ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
ClassLoader cl = new URLClassLoader(new URL[] {ejbJarFile.toURL()}, oldCl);
URL ejbJarXml = cl.getResource("META-INF/ejb-jar.xml");
InputStream in = ejbJarXml.openStream();
in.close();
assertNotNull(cl.loadClass("org.openejb.test.simple.slsb.SimpleStatelessSessionEJB"));
EjbJarDocument doc = (EjbJarDocument) XmlBeansUtil.getXmlObject(ejbJarXml,
EjbJarDocument.type);
EjbJarType ejbJar = doc.getEjbJar();
SessionBeanType[] sessionBeans =
ejbJar.getEnterpriseBeans().getSessionArray();
SessionBeanType sessionBean = sessionBeans[0];
OpenejbSessionBeanType openejbSessionBean = null;
try {
Thread.currentThread().setContextClassLoader(cl);
configBuilder.createSessionBean("containerId", sessionBean,
openejbSessionBean, TransactionPolicyHelper.StatelessBMTPolicySource, cl);
} finally {
Thread.currentThread().setContextClassLoader(oldCl);
}
}
}