You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2011/06/26 06:38:56 UTC
svn commit: r1139710 - in /openejb/trunk/openejb3:
container/openejb-core/src/main/java/org/apache/openejb/cdi/
tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/
tck/cdi-embedded/src/test/resources/
Author: dblevins
Date: Sun Jun 26 04:38:56 2011
New Revision: 1139710
URL: http://svn.apache.org/viewvc?rev=1139710&view=rev
Log:
OPENEJB-1594: SessionBeans as @New beans
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/NewCdiEjbBean.java
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ContainersImpl.java
openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Report.java
openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml
openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml
openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java?rev=1139710&r1=1139709&r2=1139710&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java Sun Jun 26 04:38:56 2011
@@ -32,10 +32,12 @@ import javax.enterprise.context.Dependen
import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.New;
import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.inject.spi.InjectionPoint;
import javax.enterprise.inject.spi.SessionBeanType;
import javax.enterprise.util.AnnotationLiteral;
import java.lang.annotation.Annotation;
import java.lang.reflect.Constructor;
+import java.lang.reflect.Member;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.Collection;
@@ -105,6 +107,14 @@ public class CdiEjbBean<T> extends BaseE
return (T) home.create();
}
+ @Override
+ protected void afterConstructor(T instance, CreationalContext<T> tCreationalContext) {
+ }
+
+// @Override
+// public void postConstruct(T instance, CreationalContext<T> cretionalContext) {
+// }
+
public String getEjbName() {
return this.beanContext.getEjbName();
}
@@ -145,6 +155,27 @@ public class CdiEjbBean<T> extends BaseE
return findRemove(beanContext.getBeanClass(), beanContext.getBusinessLocalInterface());
}
+ public List<InjectionPoint> getInjectionPoint(Member member)
+ {
+ if (member instanceof Method) {
+ Method method = (Method) member;
+ member = beanContext.getMatchingBeanMethod(method);
+ }
+
+ List<InjectionPoint> points = new ArrayList<InjectionPoint>();
+
+ for(InjectionPoint ip : injectionPoints)
+ {
+ if(ip.getMember().equals(member))
+ {
+ points.add(ip);
+ }
+ }
+
+ return points;
+ }
+
+
@SuppressWarnings("unchecked")
private List<Method> findRemove(Class beanClass, Class beanInterface) {
List<Method> toReturn = new ArrayList<Method>();
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/NewCdiEjbBean.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/NewCdiEjbBean.java?rev=1139710&r1=1139709&r2=1139710&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/NewCdiEjbBean.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/NewCdiEjbBean.java Sun Jun 26 04:38:56 2011
@@ -20,6 +20,7 @@ import org.apache.webbeans.annotation.Ne
import org.apache.webbeans.component.NewBean;
import javax.enterprise.context.Dependent;
+import javax.enterprise.context.spi.CreationalContext;
import javax.enterprise.inject.New;
import javax.enterprise.util.AnnotationLiteral;
import java.lang.annotation.Annotation;
@@ -37,7 +38,8 @@ public class NewCdiEjbBean<T> extends Cd
this.getImplQualifiers().add(new NewLiteral(getReturnType()));
-
+ this.apiTypes.clear();
+ this.apiTypes.addAll(that.getTypes());
this.setName(null);
this.getInjectedFields().addAll(that.getInjectedFields());
this.getInjectedFromSuperFields().addAll(that.getInjectedFromSuperFields());
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java?rev=1139710&r1=1139709&r2=1139710&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java Sun Jun 26 04:38:56 2011
@@ -273,15 +273,15 @@ public class OpenEJBLifecycle implements
//Fire Event
deployer.fireAfterDeploymentValidationEvent();
-// for (BeanContext beanContext : stuff.getBeanContexts()) {
-//
-// final CdiEjbBean<Object> bean = beanContext.get(CdiEjbBean.class);;
-//
-// if (bean == null) continue;
-//
-// final BeanManagerImpl manager = webBeansContext.getBeanManagerImpl();
-// manager.addBean(new NewCdiEjbBean<Object>(bean));
-// }
+ for (BeanContext beanContext : stuff.getBeanContexts()) {
+
+ final CdiEjbBean<Object> bean = beanContext.get(CdiEjbBean.class);;
+
+ if (bean == null) continue;
+
+ final BeanManagerImpl manager = webBeansContext.getBeanManagerImpl();
+ manager.addBean(new NewCdiEjbBean<Object>(bean));
+ }
} catch (Exception e1) {
Assembler.logger.error("CDI Beans module deployment failed", e1);
Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ContainersImpl.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ContainersImpl.java?rev=1139710&r1=1139709&r2=1139710&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ContainersImpl.java (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/ContainersImpl.java Sun Jun 26 04:38:56 2011
@@ -29,6 +29,7 @@ import org.jboss.testharness.spi.Contain
import javax.ejb.embeddable.EJBContainer;
import java.io.BufferedOutputStream;
+import java.io.ByteArrayOutputStream;
import java.io.Closeable;
import java.io.File;
import java.io.FileOutputStream;
@@ -36,8 +37,11 @@ import java.io.Flushable;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.io.RandomAccessFile;
import java.lang.reflect.Field;
import java.net.URL;
+import java.nio.ByteBuffer;
+import java.nio.channels.FileChannel;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
@@ -109,6 +113,24 @@ public class ContainersImpl implements C
return clazz.getClassLoader().getResource(resourcePath);
}
+
+ public static void main(String[] args) throws IOException {
+ new ContainersImpl().memoryMappedFile();
+
+ System.out.println();
+ }
+
+ public void memoryMappedFile() throws IOException {
+
+ FileChannel rwChannel = new RandomAccessFile(new File("/tmp/memory-mapped.txt"), "rw").getChannel();
+
+ final byte[] bytes = "hello world".getBytes();
+
+ ByteBuffer writeonlybuffer = rwChannel.map(FileChannel.MapMode.READ_WRITE, 0, bytes.length);
+ writeonlybuffer.put(bytes);
+ writeonlybuffer.compact();
+ }
+
private File writeToFile(InputStream archive, String name) throws IOException {
final File file = File.createTempFile("deploy", "-" + name);
file.deleteOnExit();
@@ -116,34 +138,32 @@ public class ContainersImpl implements C
try {
Map<String, URL> resources = new HashMap<String, URL>();
-
+
final Class<?> clazz = this.getClass().getClassLoader().loadClass(name.replace(".jar", ""));
if (clazz.isAnnotationPresent(EjbJarXml.class)) {
final URL resource = getResource(clazz, clazz.getAnnotation(EjbJarXml.class).value());
-
+
if (resource != null) resources.put("META-INF/ejb-jar.xml", resource);
}
if (clazz.isAnnotationPresent(PersistenceXml.class)) {
final URL resource = getResource(clazz, clazz.getAnnotation(PersistenceXml.class).value());
-
+
if (resource != null) resources.put("META-INF/persistence.xml", resource);
}
final boolean isJar = name.endsWith(".jar");
final ZipInputStream zin = new ZipInputStream(archive);
- final ZipOutputStream zout = new ZipOutputStream(new BufferedOutputStream(new FileOutputStream(file)));
+ final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(524288);
+ final ZipOutputStream zout = new ZipOutputStream(byteArrayOutputStream);
for (ZipEntry entry; (entry = zin.getNextEntry()) != null; ) {
String entryName = entry.getName();
- if (entryName.startsWith("WEB-INF")) {
- System.out.println(entryName);
- }
if (isJar && entryName.startsWith("WEB-INF/classes/")) {
- entryName = entryName.replaceFirst("WEB-INF/classes/","");
+ entryName = entryName.replaceFirst("WEB-INF/classes/", "");
}
InputStream src = zin;
@@ -168,12 +188,23 @@ public class ContainersImpl implements C
close(zin);
close(zout);
+
+ writeToFile(file, byteArrayOutputStream);
+
} catch (Exception e) {
e.printStackTrace();
}
return file;
}
+ private void writeToFile(File file, ByteArrayOutputStream byteArrayOutputStream) throws IOException {
+ final byte[] bytes = byteArrayOutputStream.toByteArray();
+
+ final FileOutputStream fileOutputStream = new FileOutputStream(file);
+ fileOutputStream.write(bytes);
+ fileOutputStream.close();
+ }
+
private static void copy(InputStream from, OutputStream to) throws IOException {
byte[] buffer = new byte[1024];
int length = 0;
Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Report.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Report.java?rev=1139710&r1=1139709&r2=1139710&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Report.java (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/java/org/apache/openejb/tck/cdi/embedded/Report.java Sun Jun 26 04:38:56 2011
@@ -48,6 +48,7 @@ public class Report {
private void main() throws Exception {
// final File file = new File("/Users/dblevins/work/uber/geronimo-tck-public-trunk/jcdi-tck-runner/target/surefire-reports/testng-results.xml");
final File file = new File("/Users/dblevins/work/uber/openejb/tck/cdi-embedded/target/surefire-reports/testng-results.xml");
+// final File file = new File("/Users/dblevins/work/uber/testng-results.xml");
final SAXParser parser = SAXParserFactory.newInstance().newSAXParser();
@@ -86,17 +87,15 @@ public class Report {
out.println("<suite name=\"CDI TCK\" verbose=\"0\">");
out.println(" <test name=\"CDI TCK\">");
- out.println(" <!--<packages>-->\n" +
- " <!--<package name=\"org.jboss.jsr299.tck.tests.*\"/>-->\n" +
- " <!--<package name=\"org.jboss.jsr299.tck.interceptors.tests.*\"/>-->\n" +
- " <!--</packages>-->");
+ out.println(" <packages>\n" +
+ " <package name=\"org.jboss.jsr299.tck.tests.*\"/>\n" +
+ " <package name=\"org.jboss.jsr299.tck.interceptors.tests.*\"/>\n" +
+ " </packages>");
out.println(" <classes>");
for (TestClass testClass : classes) {
- if (!contains(testClass, Status.FAIL)) {
- out.printf(" <class name=\"%s\"/>\n", testClass.name);
- } else if (contains(testClass, Status.PASS)) {
+ if (contains(testClass, Status.FAIL)) {
out.printf(" <class name=\"%s\">\n", testClass.name);
out.printf(" <methods>\n");
Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml?rev=1139710&r1=1139709&r2=1139710&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/all-failing.xml Sun Jun 26 04:38:56 2011
@@ -22,8 +22,7 @@
<class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest"/>
<class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInWarTest"/>
<class name="org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest"/>
- <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest"/>
- <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest"/>
+ <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest"/>
<class name="org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest"/>
<class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.env.EnvInjectionTest"/>
<class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.persistenceContext.PersistenceContextInjectionTest"/>
Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml?rev=1139710&r1=1139709&r2=1139710&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/failing.xml Sun Jun 26 04:38:56 2011
@@ -6,19 +6,14 @@
<!--</packages>-->
<classes>
<class name="org.jboss.jsr299.tck.tests.context.dependent.ejb.DependentContextEjbTest"/>
- <!--<class name="org.jboss.jsr299.tck.tests.context.passivating.broken.dependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean.EnterpriseBeanWithIllegalDependencyTest"/>-->
- <!--<class name="org.jboss.jsr299.tck.tests.context.passivating.broken.dependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean.EnterpriseBeanWithIllegalDependencyTest"/>-->
+ <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.dependentScopedProducerFieldReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean.EnterpriseBeanWithIllegalDependencyTest"/>
+ <class name="org.jboss.jsr299.tck.tests.context.passivating.broken.dependentScopedProducerMethodReturnsNonSerializableObjectForInjectionIntoStatefulSessionBean.EnterpriseBeanWithIllegalDependencyTest"/>
<class name="org.jboss.jsr299.tck.tests.context.request.ejb.EJBRequestContextTest"/>
- <class name="org.jboss.jsr299.tck.tests.deployment.packaging.bundledLibrary.LibraryInEarTest"/>
+ <class name="org.jboss.jsr299.tck.tests.extensions.producer.ProducerTest"/>
+ <class name="org.jboss.jsr299.tck.tests.implementation.builtin.BuiltInBeansTest"/>
<class name="org.jboss.jsr299.tck.tests.implementation.enterprise.lifecycle.EnterpriseBeanLifecycleTest"/>
- <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest"/>
<class name="org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationIntegrationTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.EnterpriseBeanSpecializationTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsNothing.DirectlyExtendsNothingTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.directlyExtendsSimpleBean.DirectlyExtendsSimpleBeanTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.implementInterfaceAndExtendsNothing.ImplementsInterfaceAndExtendsNothingTest"/>
- <class name="org.jboss.jsr299.tck.tests.inheritance.specialization.enterprise.broken.sameName.SameNameTest"/>
+ <class name="org.jboss.jsr299.tck.tests.implementation.simple.resource.ejb.EjbInjectionTest"/>
<class name="org.jboss.jsr299.tck.tests.interceptors.definition.enterprise.nonContextualReference.SessionBeanInterceptorOnNonContextualEjbReferenceTest"/>
<class name="org.jboss.jsr299.tck.tests.lookup.injection.non.contextual.ws.InjectionIntoWebServiceEndPointTest"/>
</classes>
Modified: openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml?rev=1139710&r1=1139709&r2=1139710&view=diff
==============================================================================
--- openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml (original)
+++ openejb/trunk/openejb3/tck/cdi-embedded/src/test/resources/passing.xml Sun Jun 26 04:38:56 2011
@@ -121,25 +121,12 @@
<methods>
<exclude name="testCreateSFSB"/>
<exclude name="testDependentObjectsDestroyed"/>
- <exclude name="testDestroyRemovesSFSB"/>
<exclude name="testSerializeSFSB"/>
</methods>
</class>
- <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanICTest">
+ <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.remove.EnterpriseBeanRemoveMethodTest">
<methods>
- <exclude name="testNewBeanHasNoDisposalMethods"/>
- <exclude name="testNewBeanHasNoProducerMethods"/>
- <exclude name="testNewBeanHasSameConstructor"/>
- <exclude name="testNewBeanHasSameInitializers"/>
- </methods>
- </class>
- <class name="org.jboss.jsr299.tck.tests.implementation.enterprise.newBean.NewEnterpriseBeanTest">
- <methods>
- <exclude name="testForEachEnterpriseBeanANewBeanExists"/>
- <exclude name="testNewBeanHasNoBeanELName"/>
- <exclude name="testNewBeanHasNoStereotypes"/>
- <exclude name="testNewBeanIsHasOnlyNewBinding"/>
- <exclude name="testNewBeanIsDependentScoped"/>
+ <exclude name="testApplicationCannotCallRemoveMethodOnNonDependentScopedSessionEnterpriseBean"/>
</methods>
</class>
<class name="org.jboss.jsr299.tck.tests.implementation.producer.method.definition.enterprise.EnterpriseProducerMethodDefinitionTest">