[jboss-cvs] JBossAS SVN: r108605 - in projects/ejb3/branches/infinispan-int/core: src/main/java/org/jboss/ejb3/session and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Oct 15 13:06:29 EDT 2010
Author: pferraro
Date: 2010-10-15 13:06:29 -0400 (Fri, 15 Oct 2010)
New Revision: 108605
Modified:
projects/ejb3/branches/infinispan-int/core/pom.xml
projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java
projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java
projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/ServiceRefInjector.java
projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java
Log:
merge --depth=infinity -r108519:108595 from trunk
Modified: projects/ejb3/branches/infinispan-int/core/pom.xml
===================================================================
--- projects/ejb3/branches/infinispan-int/core/pom.xml 2010-10-15 17:03:22 UTC (rev 108604)
+++ projects/ejb3/branches/infinispan-int/core/pom.xml 2010-10-15 17:06:29 UTC (rev 108605)
@@ -17,7 +17,7 @@
<!-- Artifact Information -->
<artifactId>jboss-ejb3-core</artifactId>
<packaging>jar</packaging>
- <version>1.5.3-SNAPSHOT</version>
+ <version>1.5.5-SNAPSHOT</version>
<name>JBoss EJB 3.0 Core</name>
<url>http://labs.jboss.com/jbossejb3</url>
<description>JBoss EJB 3.0 Core</description>
Modified: projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java
===================================================================
--- projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java 2010-10-15 17:03:22 UTC (rev 108604)
+++ projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/ejb3/session/SessionSpecContainer.java 2010-10-15 17:06:29 UTC (rev 108605)
@@ -187,9 +187,9 @@
try
{
Class<?> invokedBusinessInterface = Class.forName(method.getActualClassName(), false, getClassloader());
- if (!this.getBusinessInterfaces().contains(invokedBusinessInterface))
+ // EJBTHREE-2076 if it's a EJB2.x view invocation, then invoked business interface should be null.
+ if (this.isEjb2xView(invokedBusinessInterface.getName()))
{
- // Required because SerializableMethod will automatically set the actual class name to the declaring class name
invokedBusinessInterface = null;
}
@@ -539,6 +539,29 @@
}
return businessInterfaces;
}
+
+ /**
+ * Returns true if the passed fully qualified class name, represents a
+ * EJB 2.x view of the EJB, corresponding to this container. Else
+ * returns false.
+ *
+ * @param intf Fully qualified class name
+ * @return
+ */
+ private boolean isEjb2xView(String intf)
+ {
+ String remote = this.getMetaData().getRemote();
+ if (remote != null && remote.equals(intf))
+ {
+ return true;
+ }
+ String local = this.getMetaData().getLocal();
+ if (local != null && local.equals(intf))
+ {
+ return true;
+ }
+ return false;
+ }
// ------------------------------------------------------------------------------||
// Lifecycle Methods ------------------------------------------------------------||
Modified: projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java
===================================================================
--- projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java 2010-10-15 17:03:22 UTC (rev 108604)
+++ projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/EJBRemoteHandler.java 2010-10-15 17:06:29 UTC (rev 108605)
@@ -38,6 +38,7 @@
import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
import org.jboss.metadata.javaee.spec.EJBReferenceMetaData;
import org.jboss.metadata.javaee.spec.RemoteEnvironment;
+import org.quartz.ObjectAlreadyExistsException;
/**
* Searches bean class for all @Inject and create Injectors
@@ -347,14 +348,19 @@
String encName = getEncName(ref, method);
if (!container.getEncInjectors().containsKey(encName))
{
- ejbRefEncInjector(ref.mappedName(), encName, method.getName().substring(0), method.getParameterTypes()[0], ref.beanName(), "@EJB", container);
+ Class<?> businessInterface = method.getParameterTypes()[0];
+ if (ref.beanInterface() != null && ref.beanInterface() != Object.class)
+ {
+ businessInterface = ref.beanInterface();
+ }
+ ejbRefEncInjector(ref.mappedName(), encName, method.getName().substring(0), businessInterface, ref.beanName(), "@EJB", container);
if (container.getAnnotation(IgnoreDependency.class, method) == null)
{
if (isIgnoreDependency(container, ref))
log.debug("IGNORING <ejb-ref> DEPENDENCY: " + encName);
else
- ejbRefDependency(ref.mappedName(), ref.beanName(), container, method.getParameterTypes()[0], "@EJB", encName);
+ ejbRefDependency(ref.mappedName(), ref.beanName(), container, businessInterface, "@EJB", encName);
}
}
@@ -370,14 +376,19 @@
String encName = getEncName(ref, field);
if (!container.getEncInjectors().containsKey(encName))
{
+ Class<?> businessInterface = field.getType();
+ if (ref.beanInterface() != null && ref.beanInterface() != Object.class)
+ {
+ businessInterface = ref.beanInterface();
+ }
if (container.getAnnotation(IgnoreDependency.class, field) == null)
{
if (isIgnoreDependency(container, ref))
log.debug("IGNORING <ejb-ref> DEPENDENCY: " + encName);
else
- ejbRefDependency(ref.mappedName(), ref.beanName(), container, field.getType(), "@EJB", encName);
+ ejbRefDependency(ref.mappedName(), ref.beanName(), container, businessInterface, "@EJB", encName);
}
- ejbRefEncInjector(ref.mappedName(), encName, field.getName(), field.getType(), ref.beanName(), "@EJB", container);
+ ejbRefEncInjector(ref.mappedName(), encName, field.getName(), businessInterface, ref.beanName(), "@EJB", container);
}
super.handleFieldAnnotations(field, container, injectors);
}
Modified: projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/ServiceRefInjector.java
===================================================================
--- projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/ServiceRefInjector.java 2010-10-15 17:03:22 UTC (rev 108604)
+++ projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/ServiceRefInjector.java 2010-10-15 17:06:29 UTC (rev 108605)
@@ -32,7 +32,6 @@
import org.jboss.logging.Logger;
import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
import org.jboss.metadata.serviceref.ServiceReferenceHandler;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
import org.jboss.wsf.spi.deployment.UnifiedVirtualFile;
/**
@@ -50,11 +49,17 @@
public ServiceRefInjector(String name, AnnotatedElement anElement, ServiceReferenceMetaData sref)
{
+ this(name, sref);
+ this.sref.setAnnotatedElement(anElement);
+ }
+
+ public ServiceRefInjector(String name, ServiceReferenceMetaData sref)
+ {
this.name = name;
this.sref = sref;
- this.sref.setAnnotatedElement(anElement);
}
+
public void inject(InjectionContainer container)
{
try
Modified: projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java
===================================================================
--- projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java 2010-10-15 17:03:22 UTC (rev 108604)
+++ projects/ejb3/branches/infinispan-int/core/src/main/java/org/jboss/injection/WebServiceRefHandler.java 2010-10-15 17:06:29 UTC (rev 108605)
@@ -63,6 +63,12 @@
srefMap.put(sref.getServiceRefName(), sref);
String encName = "env/" + sref.getServiceRefName();
+ // create an EncInjector
+ if (!container.getEncInjectors().containsKey(encName))
+ {
+ container.getEncInjectors().put(encName, new ServiceRefInjector(encName, sref));
+ }
+
AnnotatedElement annotatedElement = sref.getAnnotatedElement();
if(annotatedElement == null)
{
More information about the jboss-cvs-commits
mailing list