You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomee.apache.org by Kevan Miller <ke...@gmail.com> on 2007/04/23 10:09:37 UTC
Re: svn commit: r530626 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/opene...
David Blevins,
This change has caused some breakage in Geronimo TCK testing.
Would be great if you could have a look...
--kevan
On Apr 19, 2007, at 11:42 PM, dblevins@apache.org wrote:
> Author: dblevins
> Date: Thu Apr 19 20:42:11 2007
> New Revision: 530626
>
> URL: http://svn.apache.org/viewvc?view=rev&rev=530626
> Log:
> Support for one proxy per business interface. more to come.
>
> Modified:
> incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/assembler/classic/
> EjbLocalReferenceInfo.java
> incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
> incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
> incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
> incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/CoreDeploymentInfo.java
> incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
> incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/stateful/StatefulContainer.java
> incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/stateful/
> StatefulContainerManagedTxPolicy.java
> incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/
> java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
>
> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
> src/main/java/org/apache/openejb/assembler/classic/
> EjbLocalReferenceInfo.java
> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
> container/openejb-core/src/main/java/org/apache/openejb/assembler/
> classic/EjbLocalReferenceInfo.java?
> view=diff&rev=530626&r1=530625&r2=530626
> ======================================================================
> ========
> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/assembler/classic/
> EjbLocalReferenceInfo.java (original)
> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/assembler/classic/
> EjbLocalReferenceInfo.java Thu Apr 19 20:42:11 2007
> @@ -20,6 +20,7 @@
>
> public String referenceName;
> public String homeType;
> + public String localType;
> public String ejbDeploymentId;
>
> public ReferenceLocationInfo location;
>
> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
> src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
> container/openejb-core/src/main/java/org/apache/openejb/assembler/
> classic/JndiBuilder.java?view=diff&rev=530626&r1=530625&r2=530626
> ======================================================================
> ========
> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
> (original)
> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/assembler/classic/JndiBuilder.java Thu
> Apr 19 20:42:11 2007
> @@ -143,7 +143,10 @@
> if (homeInterface != null) {
> String name = strategy.getName(deployment,
> homeInterface, JndiNameStrategy.Interface.REMOTE_HOME);
> bindings.add(name);
> - context.bind("openejb/ejb/" + name, new
> ObjectReference(deployment.getEJBHome()));
> + ObjectReference ref = new ObjectReference
> (deployment.getEJBHome());
> + context.bind("openejb/ejb/" + name, ref);
> + name = deployment.getDeploymentID() + "/" +
> deployment.getRemoteInterface().getName();
> + context.bind("openejb/Deployment/" + name, ref);
> }
> } catch (NamingException e) {
> throw new RuntimeException("Unable to bind home
> interface for deployment " + id, e);
> @@ -154,7 +157,9 @@
> if (localHomeInterface != null) {
> String name = strategy.getName(deployment,
> localHomeInterface, JndiNameStrategy.Interface.LOCAL_HOME);
> bindings.add(name);
> - context.bind("openejb/ejb/" + name, new
> ObjectReference(deployment.getEJBLocalHome()));
> + ObjectReference ref = new ObjectReference
> (deployment.getEJBLocalHome());
> + context.bind("openejb/ejb/" + name, ref);
> + context.bind("openejb/Deployment/" +
> deployment.getDeploymentID() + "/" + deployment.getLocalInterface
> ().getName(), ref);
> }
> } catch (NamingException e) {
> throw new RuntimeException("Unable to bind local
> interface for deployment " + id, e);
> @@ -167,6 +172,11 @@
> DeploymentInfo.BusinessLocalHome businessLocalHome
> = deployment.getBusinessLocalHome();
> bindings.add(name);
> context.bind("openejb/ejb/" + name, new
> BusinessLocalReference(businessLocalHome));
> +
> + for (Class interfce :
> deployment.getBusinessLocalInterfaces()) {
> + DeploymentInfo.BusinessLocalHome home =
> deployment.getBusinessLocalHome(asList(interfce));
> + context.bind("openejb/Deployment/" +
> deployment.getDeploymentID() + "/" + interfce.getName(), new
> BusinessLocalReference(home));
> + }
> }
> } catch (NamingException e) {
> throw new RuntimeException("Unable to bind business
> local interface for deployment " + id, e);
> @@ -178,7 +188,13 @@
> String name = strategy.getName(deployment,
> businessRemoteInterface, JndiNameStrategy.Interface.BUSINESS_REMOTE);
> DeploymentInfo.BusinessRemoteHome
> businessRemoteHome = deployment.getBusinessRemoteHome();
> bindings.add(name);
> - context.bind("openejb/ejb/" + name, new
> BusinessRemoteReference(businessRemoteHome));
> + BusinessRemoteReference ref = new
> BusinessRemoteReference(businessRemoteHome);
> + context.bind("openejb/ejb/" + name, ref);
> +
> + for (Class interfce :
> deployment.getBusinessRemoteInterfaces()) {
> + DeploymentInfo.BusinessRemoteHome home =
> deployment.getBusinessRemoteHome(asList(interfce));
> + context.bind("openejb/Deployment/" +
> deployment.getDeploymentID() + "/" + interfce.getName(), new
> BusinessRemoteReference(home));
> + }
> }
> } catch (NamingException e) {
> throw new RuntimeException("Unable to bind business
> remote deployment in jndi.", e);
> @@ -204,6 +220,12 @@
> } catch (NamingException e) {
> throw new RuntimeException("Unable to bind mdb
> destination in jndi.", e);
> }
> + }
> +
> + private static List<Class> asList(Class interfce) {
> + List<Class> list = new ArrayList<Class>();
> + list.add(interfce);
> + return list;
> }
>
> protected static final class Bindings {
>
> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
> src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
> container/openejb-core/src/main/java/org/apache/openejb/assembler/
> classic/JndiEncBuilder.java?view=diff&rev=530626&r1=530625&r2=530626
> ======================================================================
> ========
> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
> (original)
> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
> Thu Apr 19 20:42:11 2007
> @@ -183,22 +183,11 @@
> if (referenceInfo.location != null) {
> reference = buildReferenceLocation
> (referenceInfo.location);
> } else {
> - // TODO: Before JndiNameStrategy can be used, this
> assumption has to be updated
> - if (referenceInfo.homeType == null){
> - String jndiName = "java:openejb/ejb/" +
> referenceInfo.ejbDeploymentId + "BusinessRemote";
> - if (useCrossClassLoaderRef &&
> referenceInfo.externalReference) {
> - reference = new
> CrossClassLoaderJndiReference(jndiName);
> - } else {
> - reference = new IntraVmJndiReference
> (jndiName);
> - }
> + String jndiName = "java:openejb/Deployment/" +
> referenceInfo.ejbDeploymentId + "/" + referenceInfo.remoteType;
> + if (useCrossClassLoaderRef &&
> referenceInfo.externalReference) {
> + reference = new CrossClassLoaderJndiReference
> (jndiName);
> } else {
> - // TODO: Before JndiNameStrategy can be used,
> this assumption has to be updated
> - String jndiName = "java:openejb/ejb/" +
> referenceInfo.ejbDeploymentId;
> - if (useCrossClassLoaderRef &&
> referenceInfo.externalReference) {
> - reference = new
> CrossClassLoaderJndiReference(jndiName);
> - } else {
> - reference = new IntraVmJndiReference
> (jndiName);
> - }
> + reference = new IntraVmJndiReference(jndiName);
> }
> }
> bindings.put(normalize(referenceInfo.referenceName),
> reference);
> @@ -210,12 +199,8 @@
>
> if (referenceInfo.location != null) {
> reference = buildReferenceLocation
> (referenceInfo.location);
> - } else if (referenceInfo.homeType == null){
> - // TODO: Before JndiNameStrategy can be used, this
> assumption has to be updated
> - String jndiName = "java:openejb/ejb/" +
> referenceInfo.ejbDeploymentId + "BusinessLocal";
> - reference = new IntraVmJndiReference(jndiName);
> } else {
> - String jndiName = "java:openejb/ejb/" +
> referenceInfo.ejbDeploymentId + "Local";
> + String jndiName = "java:openejb/Deployment/" +
> referenceInfo.ejbDeploymentId + "/" + referenceInfo.localType;
> reference = new IntraVmJndiReference(jndiName);
> }
> bindings.put(normalize(referenceInfo.referenceName),
> reference);
>
> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
> src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
> container/openejb-core/src/main/java/org/apache/openejb/config/
> JndiEncInfoBuilder.java?view=diff&rev=530626&r1=530625&r2=530626
> ======================================================================
> ========
> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/config/JndiEncInfoBuilder.java (original)
> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/config/JndiEncInfoBuilder.java Thu Apr
> 19 20:42:11 2007
> @@ -361,6 +361,7 @@
> EjbLocalReferenceInfo info = new EjbLocalReferenceInfo();
>
> info.homeType = ejb.getLocalHome();
> + info.localType = ejb.getLocal();
> info.referenceName = ejb.getEjbRefName();
>
> // assign location to a global jndi name
>
> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
> src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java
> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
> container/openejb-core/src/main/java/org/apache/openejb/core/
> CoreDeploymentInfo.java?view=diff&rev=530626&r1=530625&r2=530626
> ======================================================================
> ========
> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/CoreDeploymentInfo.java (original)
> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/CoreDeploymentInfo.java Thu Apr
> 19 20:42:11 2007
> @@ -506,7 +506,7 @@
> }
> }
>
> - return (BusinessLocalHome)
> EjbHomeProxyHandler.createHomeProxy(this,
> InterfaceType.BUSINESS_LOCAL_HOME);
> + return (BusinessLocalHome)
> EjbHomeProxyHandler.createHomeProxy(this,
> InterfaceType.BUSINESS_LOCAL_HOME, interfaces);
> }
>
> public BusinessRemoteHome getBusinessRemoteHome() {
> @@ -526,7 +526,7 @@
> }
> }
>
> - return (BusinessRemoteHome)
> EjbHomeProxyHandler.createHomeProxy(this,
> InterfaceType.BUSINESS_REMOTE_HOME);
> + return (BusinessRemoteHome)
> EjbHomeProxyHandler.createHomeProxy(this,
> InterfaceType.BUSINESS_REMOTE_HOME, interfaces);
> }
>
> public String getMessageDestination() {
>
> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
> src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
> container/openejb-core/src/main/java/org/apache/openejb/core/ivm/
> EjbHomeProxyHandler.java?view=diff&rev=530626&r1=530625&r2=530626
> ======================================================================
> ========
> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
> (original)
> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java Thu
> Apr 19 20:42:11 2007
> @@ -97,7 +97,7 @@
> return createHomeProxy(deploymentInfo, interfaceType, null);
> }
>
> - public static Object createHomeProxy(DeploymentInfo
> deploymentInfo, InterfaceType interfaceType, ArrayList<Class>
> objectInterfaces) {
> + public static Object createHomeProxy(DeploymentInfo
> deploymentInfo, InterfaceType interfaceType, List<Class>
> objectInterfaces) {
> if (!interfaceType.isHome()) throw new
> IllegalArgumentException("InterfaceType is not a Home type: " +
> interfaceType);
>
> try {
> @@ -105,7 +105,8 @@
>
> List<Class> proxyInterfaces = new ArrayList<Class>(2);
>
> - proxyInterfaces.add(deploymentInfo.getInterface
> (interfaceType));
> + Class homeInterface = deploymentInfo.getInterface
> (interfaceType);
> + proxyInterfaces.add(homeInterface);
> proxyInterfaces.add(IntraVmProxy.class);
>
> return ProxyManager.newProxyInstance
> (proxyInterfaces.toArray(new Class[]{}), handler);
>
> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
> src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
> container/openejb-core/src/main/java/org/apache/openejb/core/
> stateful/StatefulContainer.java?
> view=diff&rev=530626&r1=530625&r2=530626
> ======================================================================
> ========
> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/stateful/StatefulContainer.java
> (original)
> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/stateful/StatefulContainer.java
> Thu Apr 19 20:42:11 2007
> @@ -39,6 +39,7 @@
> import org.apache.openejb.OpenEJBException;
> import org.apache.openejb.ProxyInfo;
> import org.apache.openejb.RpcContainer;
> +import org.apache.openejb.InvalidateReferenceException;
> import org.apache.openejb.core.CoreDeploymentInfo;
> import org.apache.openejb.core.Operation;
> import org.apache.openejb.core.ThreadContext;
> @@ -315,6 +316,8 @@
> InterceptorStack interceptorStack = new
> InterceptorStack(instance.bean, runMethod, Operation.REMOVE,
> interceptors, instance.interceptors);
> _invoke(callMethod, interceptorStack, args,
> instance, callContext);
>
> + } catch(InvalidateReferenceException e){
> + throw e;
> } catch(ApplicationException e){
> retain = deploymentInfo.retainIfExeption(runMethod);
> throw e;
>
> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
> src/main/java/org/apache/openejb/core/stateful/
> StatefulContainerManagedTxPolicy.java
> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
> container/openejb-core/src/main/java/org/apache/openejb/core/
> stateful/StatefulContainerManagedTxPolicy.java?
> view=diff&rev=530626&r1=530625&r2=530626
> ======================================================================
> ========
> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/stateful/
> StatefulContainerManagedTxPolicy.java (original)
> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
> main/java/org/apache/openejb/core/stateful/
> StatefulContainerManagedTxPolicy.java Thu Apr 19 20:42:11 2007
> @@ -54,7 +54,10 @@
> public void handleSystemException(Throwable sysException,
> Object instance, TransactionContext context) throws
> ApplicationException, SystemException {
> try {
> policy.handleSystemException(sysException, instance,
> context);
> + } catch (InvalidateReferenceException e) {
> + throw e;
> } catch (ApplicationException e) {
> + // DMB: Not sure we want this here
> throw new InvalidateReferenceException(e.getRootCause());
> }
> }
>
> Modified: incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/
> main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
> server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/
> JndiRequestHandler.java?view=diff&rev=530626&r1=530625&r2=530626
> ======================================================================
> ========
> --- incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/
> java/org/apache/openejb/server/ejbd/JndiRequestHandler.java (original)
> +++ incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/
> java/org/apache/openejb/server/ejbd/JndiRequestHandler.java Thu Apr
> 19 20:42:11 2007
> @@ -162,7 +162,7 @@
> deployment.getPrimaryKeyClass(),
> deployment.getComponentType().toString(),
> deploymentID,
> - -1, deployment.getBusinessRemoteInterfaces
> ());
> + -1, proxyInfo.getInterfaces());
> Object[] data = {metaData, proxyInfo.getPrimaryKey
> ()};
> res.setResult(data);
> break;
> @@ -172,11 +172,11 @@
> if (property.equalsIgnoreCase("remotable")) {
> res.setResponseCode
> (ResponseCodes.JNDI_BUSINESS_OBJECT);
> EJBMetaDataImpl metaData = new EJBMetaDataImpl
> (null,
> - deployment.getBusinessLocalInterface(),
> + null,
> deployment.getPrimaryKeyClass(),
> deployment.getComponentType().toString(),
> deploymentID,
> - -1, null);
> + -1, proxyInfo.getInterfaces());
> Object[] data = {metaData,
> proxyInfo.getPrimaryKey()};
> res.setResult(data);
> } else {
>
>
Re: svn commit: r530626 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/opene...
Posted by Kevan Miller <ke...@gmail.com>.
On Apr 23, 2007, at 6:31 AM, David Blevins wrote:
>
> On Apr 23, 2007, at 1:09 AM, Kevan Miller wrote:
>
>> David Blevins,
>> This change has caused some breakage in Geronimo TCK testing.
>>
>> Would be great if you could have a look...
>
> You may have missed the commit around 10pm fixing this. Update
> OpenEJB and Geronimo it should be fixed.
Yep I hadn't seen it... Because I started looking at the problem
before then...
Thanks for fixing.
--kevan
Re: svn commit: r530626 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/
container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/opene...
Posted by Rick McGuire <ri...@gmail.com>.
David Blevins wrote:
> Ok, this is definitely fixed now and tested. You won't need to update
> OpenEJB if you have yesterday's fix, but you will need to update your
> G tree to get my last two commits.
My problems with the naming exceptions finally appear to be fixed.
Rick
>
> -David
>
> On Apr 23, 2007, at 6:59 AM, Kevan Miller wrote:
>
>>
>> On Apr 23, 2007, at 9:05 AM, Rick McGuire wrote:
>>
>>> Unfortunately, I believe it was the 10PM fix that caused the TCK
>>> breakages. The problems first appeared for me after I rebuilt
>>> saturday morning, and are still there this morning.
>>
>> The 10 PM fix that David is referring to is Geronimo RC 531336 which
>> was committed at 10PM left-coast time last night (Sunday) or 1 AM
>> right-coast time. Unfortunately, RC 531336 doesn't fix the problem.
>> David did you verify the fix by testing?
>>
>> Rick,
>> I think you'll find that if you revert 530626 in OpenEJB, the problem
>> goes away. You'd probably have to revert 531336 from Geronimo, also.
>>
>> --kevan
>>
>>
>
>
Re: svn commit: r530626 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/opene...
Posted by David Blevins <da...@visi.com>.
On Apr 23, 2007, at 8:40 PM, Kevan Miller wrote:
>
> On Apr 23, 2007, at 6:14 PM, David Blevins wrote:
>
>> Ok, this is definitely fixed now and tested. You won't need to
>> update OpenEJB if you have yesterday's fix, but you will need to
>> update your G tree to get my last two commits.
>
> Unfortunately, looks like we're still broken. Rick reported that he
> was still seeing errors, also...
>
Looks like my fix worked for business interfaces but not old-style
remote/home. I've built/tested/checked-in another patch.
The tck smoke tests don't all pass for me due to a seemingly "setup"
related issue -- more on the tck list about that.
-David
Re: svn commit: r530626 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/opene...
Posted by Kevan Miller <ke...@gmail.com>.
On Apr 23, 2007, at 6:14 PM, David Blevins wrote:
> Ok, this is definitely fixed now and tested. You won't need to
> update OpenEJB if you have yesterday's fix, but you will need to
> update your G tree to get my last two commits.
Unfortunately, looks like we're still broken. Rick reported that he
was still seeing errors, also...
--kevan
Re: svn commit: r530626 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/opene...
Posted by David Blevins <da...@visi.com>.
Ok, this is definitely fixed now and tested. You won't need to
update OpenEJB if you have yesterday's fix, but you will need to
update your G tree to get my last two commits.
-David
On Apr 23, 2007, at 6:59 AM, Kevan Miller wrote:
>
> On Apr 23, 2007, at 9:05 AM, Rick McGuire wrote:
>
>> Unfortunately, I believe it was the 10PM fix that caused the TCK
>> breakages. The problems first appeared for me after I rebuilt
>> saturday morning, and are still there this morning.
>
> The 10 PM fix that David is referring to is Geronimo RC 531336
> which was committed at 10PM left-coast time last night (Sunday) or
> 1 AM right-coast time. Unfortunately, RC 531336 doesn't fix the
> problem. David did you verify the fix by testing?
>
> Rick,
> I think you'll find that if you revert 530626 in OpenEJB, the
> problem goes away. You'd probably have to revert 531336 from
> Geronimo, also.
>
> --kevan
>
>
Re: svn commit: r530626 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/opene...
Posted by David Blevins <da...@visi.com>.
Ok, this is definitely fixed now and tested. You won't need to
update OpenEJB if you have yesterday's fix, but you will need to
update your G tree to get my last two commits.
-David
On Apr 23, 2007, at 6:59 AM, Kevan Miller wrote:
>
> On Apr 23, 2007, at 9:05 AM, Rick McGuire wrote:
>
>> Unfortunately, I believe it was the 10PM fix that caused the TCK
>> breakages. The problems first appeared for me after I rebuilt
>> saturday morning, and are still there this morning.
>
> The 10 PM fix that David is referring to is Geronimo RC 531336
> which was committed at 10PM left-coast time last night (Sunday) or
> 1 AM right-coast time. Unfortunately, RC 531336 doesn't fix the
> problem. David did you verify the fix by testing?
>
> Rick,
> I think you'll find that if you revert 530626 in OpenEJB, the
> problem goes away. You'd probably have to revert 531336 from
> Geronimo, also.
>
> --kevan
>
>
Re: svn commit: r530626 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/opene...
Posted by Kevan Miller <ke...@gmail.com>.
On Apr 23, 2007, at 9:05 AM, Rick McGuire wrote:
> Unfortunately, I believe it was the 10PM fix that caused the TCK
> breakages. The problems first appeared for me after I rebuilt
> saturday morning, and are still there this morning.
The 10 PM fix that David is referring to is Geronimo RC 531336 which
was committed at 10PM left-coast time last night (Sunday) or 1 AM
right-coast time. Unfortunately, RC 531336 doesn't fix the problem.
David did you verify the fix by testing?
Rick,
I think you'll find that if you revert 530626 in OpenEJB, the problem
goes away. You'd probably have to revert 531336 from Geronimo, also.
--kevan
Re: svn commit: r530626 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/
container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/opene...
Posted by Rick McGuire <ri...@gmail.com>.
Unfortunately, I believe it was the 10PM fix that caused the TCK
breakages. The problems first appeared for me after I rebuilt saturday
morning, and are still there this morning.
Rick
David Blevins wrote:
>
> On Apr 23, 2007, at 1:09 AM, Kevan Miller wrote:
>
>> David Blevins,
>> This change has caused some breakage in Geronimo TCK testing.
>>
>> Would be great if you could have a look...
>
> You may have missed the commit around 10pm fixing this. Update
> OpenEJB and Geronimo it should be fixed.
>
> -David
>
>
>> --kevan
>>
>> On Apr 19, 2007, at 11:42 PM, dblevins@apache.org wrote:
>>
>>> Author: dblevins
>>> Date: Thu Apr 19 20:42:11 2007
>>> New Revision: 530626
>>>
>>> URL: http://svn.apache.org/viewvc?view=rev&rev=530626
>>> Log:
>>> Support for one proxy per business interface. more to come.
>>>
>>> Modified:
>>>
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbLocalReferenceInfo.java
>>>
>>>
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
>>>
>>>
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
>>>
>>>
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
>>>
>>>
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java
>>>
>>>
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
>>>
>>>
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
>>>
>>>
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainerManagedTxPolicy.java
>>>
>>>
>>> incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
>>>
>>>
>>> Modified:
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbLocalReferenceInfo.java
>>>
>>> URL:
>>> http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbLocalReferenceInfo.java?view=diff&rev=530626&r1=530625&r2=530626
>>>
>>> ==============================================================================
>>>
>>> ---
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbLocalReferenceInfo.java
>>> (original)
>>> +++
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbLocalReferenceInfo.java
>>> Thu Apr 19 20:42:11 2007
>>> @@ -20,6 +20,7 @@
>>>
>>> public String referenceName;
>>> public String homeType;
>>> + public String localType;
>>> public String ejbDeploymentId;
>>>
>>> public ReferenceLocationInfo location;
>>>
>>> Modified:
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
>>>
>>> URL:
>>> http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java?view=diff&rev=530626&r1=530625&r2=530626
>>>
>>> ==============================================================================
>>>
>>> ---
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
>>> (original)
>>> +++
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
>>> Thu Apr 19 20:42:11 2007
>>> @@ -143,7 +143,10 @@
>>> if (homeInterface != null) {
>>> String name = strategy.getName(deployment,
>>> homeInterface, JndiNameStrategy.Interface.REMOTE_HOME);
>>> bindings.add(name);
>>> - context.bind("openejb/ejb/" + name, new
>>> ObjectReference(deployment.getEJBHome()));
>>> + ObjectReference ref = new
>>> ObjectReference(deployment.getEJBHome());
>>> + context.bind("openejb/ejb/" + name, ref);
>>> + name = deployment.getDeploymentID() + "/" +
>>> deployment.getRemoteInterface().getName();
>>> + context.bind("openejb/Deployment/" + name, ref);
>>> }
>>> } catch (NamingException e) {
>>> throw new RuntimeException("Unable to bind home
>>> interface for deployment " + id, e);
>>> @@ -154,7 +157,9 @@
>>> if (localHomeInterface != null) {
>>> String name = strategy.getName(deployment,
>>> localHomeInterface, JndiNameStrategy.Interface.LOCAL_HOME);
>>> bindings.add(name);
>>> - context.bind("openejb/ejb/" + name, new
>>> ObjectReference(deployment.getEJBLocalHome()));
>>> + ObjectReference ref = new
>>> ObjectReference(deployment.getEJBLocalHome());
>>> + context.bind("openejb/ejb/" + name, ref);
>>> + context.bind("openejb/Deployment/" +
>>> deployment.getDeploymentID() + "/" +
>>> deployment.getLocalInterface().getName(), ref);
>>> }
>>> } catch (NamingException e) {
>>> throw new RuntimeException("Unable to bind local
>>> interface for deployment " + id, e);
>>> @@ -167,6 +172,11 @@
>>> DeploymentInfo.BusinessLocalHome businessLocalHome
>>> = deployment.getBusinessLocalHome();
>>> bindings.add(name);
>>> context.bind("openejb/ejb/" + name, new
>>> BusinessLocalReference(businessLocalHome));
>>> +
>>> + for (Class interfce :
>>> deployment.getBusinessLocalInterfaces()) {
>>> + DeploymentInfo.BusinessLocalHome home =
>>> deployment.getBusinessLocalHome(asList(interfce));
>>> + context.bind("openejb/Deployment/" +
>>> deployment.getDeploymentID() + "/" + interfce.getName(), new
>>> BusinessLocalReference(home));
>>> + }
>>> }
>>> } catch (NamingException e) {
>>> throw new RuntimeException("Unable to bind business
>>> local interface for deployment " + id, e);
>>> @@ -178,7 +188,13 @@
>>> String name = strategy.getName(deployment,
>>> businessRemoteInterface, JndiNameStrategy.Interface.BUSINESS_REMOTE);
>>> DeploymentInfo.BusinessRemoteHome
>>> businessRemoteHome = deployment.getBusinessRemoteHome();
>>> bindings.add(name);
>>> - context.bind("openejb/ejb/" + name, new
>>> BusinessRemoteReference(businessRemoteHome));
>>> + BusinessRemoteReference ref = new
>>> BusinessRemoteReference(businessRemoteHome);
>>> + context.bind("openejb/ejb/" + name, ref);
>>> +
>>> + for (Class interfce :
>>> deployment.getBusinessRemoteInterfaces()) {
>>> + DeploymentInfo.BusinessRemoteHome home =
>>> deployment.getBusinessRemoteHome(asList(interfce));
>>> + context.bind("openejb/Deployment/" +
>>> deployment.getDeploymentID() + "/" + interfce.getName(), new
>>> BusinessRemoteReference(home));
>>> + }
>>> }
>>> } catch (NamingException e) {
>>> throw new RuntimeException("Unable to bind business
>>> remote deployment in jndi.", e);
>>> @@ -204,6 +220,12 @@
>>> } catch (NamingException e) {
>>> throw new RuntimeException("Unable to bind mdb
>>> destination in jndi.", e);
>>> }
>>> + }
>>> +
>>> + private static List<Class> asList(Class interfce) {
>>> + List<Class> list = new ArrayList<Class>();
>>> + list.add(interfce);
>>> + return list;
>>> }
>>>
>>> protected static final class Bindings {
>>>
>>> Modified:
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
>>>
>>> URL:
>>> http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?view=diff&rev=530626&r1=530625&r2=530626
>>>
>>> ==============================================================================
>>>
>>> ---
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
>>> (original)
>>> +++
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
>>> Thu Apr 19 20:42:11 2007
>>> @@ -183,22 +183,11 @@
>>> if (referenceInfo.location != null) {
>>> reference =
>>> buildReferenceLocation(referenceInfo.location);
>>> } else {
>>> - // TODO: Before JndiNameStrategy can be used, this
>>> assumption has to be updated
>>> - if (referenceInfo.homeType == null){
>>> - String jndiName = "java:openejb/ejb/" +
>>> referenceInfo.ejbDeploymentId + "BusinessRemote";
>>> - if (useCrossClassLoaderRef &&
>>> referenceInfo.externalReference) {
>>> - reference = new
>>> CrossClassLoaderJndiReference(jndiName);
>>> - } else {
>>> - reference = new
>>> IntraVmJndiReference(jndiName);
>>> - }
>>> + String jndiName = "java:openejb/Deployment/" +
>>> referenceInfo.ejbDeploymentId + "/" + referenceInfo.remoteType;
>>> + if (useCrossClassLoaderRef &&
>>> referenceInfo.externalReference) {
>>> + reference = new
>>> CrossClassLoaderJndiReference(jndiName);
>>> } else {
>>> - // TODO: Before JndiNameStrategy can be used,
>>> this assumption has to be updated
>>> - String jndiName = "java:openejb/ejb/" +
>>> referenceInfo.ejbDeploymentId;
>>> - if (useCrossClassLoaderRef &&
>>> referenceInfo.externalReference) {
>>> - reference = new
>>> CrossClassLoaderJndiReference(jndiName);
>>> - } else {
>>> - reference = new
>>> IntraVmJndiReference(jndiName);
>>> - }
>>> + reference = new IntraVmJndiReference(jndiName);
>>> }
>>> }
>>> bindings.put(normalize(referenceInfo.referenceName),
>>> reference);
>>> @@ -210,12 +199,8 @@
>>>
>>> if (referenceInfo.location != null) {
>>> reference =
>>> buildReferenceLocation(referenceInfo.location);
>>> - } else if (referenceInfo.homeType == null){
>>> - // TODO: Before JndiNameStrategy can be used, this
>>> assumption has to be updated
>>> - String jndiName = "java:openejb/ejb/" +
>>> referenceInfo.ejbDeploymentId + "BusinessLocal";
>>> - reference = new IntraVmJndiReference(jndiName);
>>> } else {
>>> - String jndiName = "java:openejb/ejb/" +
>>> referenceInfo.ejbDeploymentId + "Local";
>>> + String jndiName = "java:openejb/Deployment/" +
>>> referenceInfo.ejbDeploymentId + "/" + referenceInfo.localType;
>>> reference = new IntraVmJndiReference(jndiName);
>>> }
>>> bindings.put(normalize(referenceInfo.referenceName),
>>> reference);
>>>
>>> Modified:
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
>>>
>>> URL:
>>> http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java?view=diff&rev=530626&r1=530625&r2=530626
>>>
>>> ==============================================================================
>>>
>>> ---
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
>>> (original)
>>> +++
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
>>> Thu Apr 19 20:42:11 2007
>>> @@ -361,6 +361,7 @@
>>> EjbLocalReferenceInfo info = new EjbLocalReferenceInfo();
>>>
>>> info.homeType = ejb.getLocalHome();
>>> + info.localType = ejb.getLocal();
>>> info.referenceName = ejb.getEjbRefName();
>>>
>>> // assign location to a global jndi name
>>>
>>> Modified:
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java
>>>
>>> URL:
>>> http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java?view=diff&rev=530626&r1=530625&r2=530626
>>>
>>> ==============================================================================
>>>
>>> ---
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java
>>> (original)
>>> +++
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java
>>> Thu Apr 19 20:42:11 2007
>>> @@ -506,7 +506,7 @@
>>> }
>>> }
>>>
>>> - return (BusinessLocalHome)
>>> EjbHomeProxyHandler.createHomeProxy(this,
>>> InterfaceType.BUSINESS_LOCAL_HOME);
>>> + return (BusinessLocalHome)
>>> EjbHomeProxyHandler.createHomeProxy(this,
>>> InterfaceType.BUSINESS_LOCAL_HOME, interfaces);
>>> }
>>>
>>> public BusinessRemoteHome getBusinessRemoteHome() {
>>> @@ -526,7 +526,7 @@
>>> }
>>> }
>>>
>>> - return (BusinessRemoteHome)
>>> EjbHomeProxyHandler.createHomeProxy(this,
>>> InterfaceType.BUSINESS_REMOTE_HOME);
>>> + return (BusinessRemoteHome)
>>> EjbHomeProxyHandler.createHomeProxy(this,
>>> InterfaceType.BUSINESS_REMOTE_HOME, interfaces);
>>> }
>>>
>>> public String getMessageDestination() {
>>>
>>> Modified:
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
>>>
>>> URL:
>>> http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java?view=diff&rev=530626&r1=530625&r2=530626
>>>
>>> ==============================================================================
>>>
>>> ---
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
>>> (original)
>>> +++
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
>>> Thu Apr 19 20:42:11 2007
>>> @@ -97,7 +97,7 @@
>>> return createHomeProxy(deploymentInfo, interfaceType, null);
>>> }
>>>
>>> - public static Object createHomeProxy(DeploymentInfo
>>> deploymentInfo, InterfaceType interfaceType, ArrayList<Class>
>>> objectInterfaces) {
>>> + public static Object createHomeProxy(DeploymentInfo
>>> deploymentInfo, InterfaceType interfaceType, List<Class>
>>> objectInterfaces) {
>>> if (!interfaceType.isHome()) throw new
>>> IllegalArgumentException("InterfaceType is not a Home type: " +
>>> interfaceType);
>>>
>>> try {
>>> @@ -105,7 +105,8 @@
>>>
>>> List<Class> proxyInterfaces = new ArrayList<Class>(2);
>>>
>>> -
>>> proxyInterfaces.add(deploymentInfo.getInterface(interfaceType));
>>> + Class homeInterface =
>>> deploymentInfo.getInterface(interfaceType);
>>> + proxyInterfaces.add(homeInterface);
>>> proxyInterfaces.add(IntraVmProxy.class);
>>>
>>> return
>>> ProxyManager.newProxyInstance(proxyInterfaces.toArray(new
>>> Class[]{}), handler);
>>>
>>> Modified:
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
>>>
>>> URL:
>>> http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java?view=diff&rev=530626&r1=530625&r2=530626
>>>
>>> ==============================================================================
>>>
>>> ---
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
>>> (original)
>>> +++
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
>>> Thu Apr 19 20:42:11 2007
>>> @@ -39,6 +39,7 @@
>>> import org.apache.openejb.OpenEJBException;
>>> import org.apache.openejb.ProxyInfo;
>>> import org.apache.openejb.RpcContainer;
>>> +import org.apache.openejb.InvalidateReferenceException;
>>> import org.apache.openejb.core.CoreDeploymentInfo;
>>> import org.apache.openejb.core.Operation;
>>> import org.apache.openejb.core.ThreadContext;
>>> @@ -315,6 +316,8 @@
>>> InterceptorStack interceptorStack = new
>>> InterceptorStack(instance.bean, runMethod, Operation.REMOVE,
>>> interceptors, instance.interceptors);
>>> _invoke(callMethod, interceptorStack, args,
>>> instance, callContext);
>>>
>>> + } catch(InvalidateReferenceException e){
>>> + throw e;
>>> } catch(ApplicationException e){
>>> retain = deploymentInfo.retainIfExeption(runMethod);
>>> throw e;
>>>
>>> Modified:
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainerManagedTxPolicy.java
>>>
>>> URL:
>>> http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainerManagedTxPolicy.java?view=diff&rev=530626&r1=530625&r2=530626
>>>
>>> ==============================================================================
>>>
>>> ---
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainerManagedTxPolicy.java
>>> (original)
>>> +++
>>> incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainerManagedTxPolicy.java
>>> Thu Apr 19 20:42:11 2007
>>> @@ -54,7 +54,10 @@
>>> public void handleSystemException(Throwable sysException,
>>> Object instance, TransactionContext context) throws
>>> ApplicationException, SystemException {
>>> try {
>>> policy.handleSystemException(sysException, instance,
>>> context);
>>> + } catch (InvalidateReferenceException e) {
>>> + throw e;
>>> } catch (ApplicationException e) {
>>> + // DMB: Not sure we want this here
>>> throw new InvalidateReferenceException(e.getRootCause());
>>> }
>>> }
>>>
>>> Modified:
>>> incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
>>>
>>> URL:
>>> http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java?view=diff&rev=530626&r1=530625&r2=530626
>>>
>>> ==============================================================================
>>>
>>> ---
>>> incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
>>> (original)
>>> +++
>>> incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
>>> Thu Apr 19 20:42:11 2007
>>> @@ -162,7 +162,7 @@
>>> deployment.getPrimaryKeyClass(),
>>> deployment.getComponentType().toString(),
>>> deploymentID,
>>> - -1, deployment.getBusinessRemoteInterfaces());
>>> + -1, proxyInfo.getInterfaces());
>>> Object[] data = {metaData, proxyInfo.getPrimaryKey()};
>>> res.setResult(data);
>>> break;
>>> @@ -172,11 +172,11 @@
>>> if (property.equalsIgnoreCase("remotable")) {
>>>
>>> res.setResponseCode(ResponseCodes.JNDI_BUSINESS_OBJECT);
>>> EJBMetaDataImpl metaData = new
>>> EJBMetaDataImpl(null,
>>> - deployment.getBusinessLocalInterface(),
>>> + null,
>>> deployment.getPrimaryKeyClass(),
>>> deployment.getComponentType().toString(),
>>> deploymentID,
>>> - -1, null);
>>> + -1, proxyInfo.getInterfaces());
>>> Object[] data = {metaData,
>>> proxyInfo.getPrimaryKey()};
>>> res.setResult(data);
>>> } else {
>>>
>>>
>>
>
>
Re: svn commit: r530626 - in /incubator/openejb/trunk/openejb3: container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ container/openejb-core/src/main/java/org/apache/openejb/config/ container/openejb-core/src/main/java/org/apache/opene...
Posted by David Blevins <da...@visi.com>.
On Apr 23, 2007, at 1:09 AM, Kevan Miller wrote:
> David Blevins,
> This change has caused some breakage in Geronimo TCK testing.
>
> Would be great if you could have a look...
You may have missed the commit around 10pm fixing this. Update
OpenEJB and Geronimo it should be fixed.
-David
> --kevan
>
> On Apr 19, 2007, at 11:42 PM, dblevins@apache.org wrote:
>
>> Author: dblevins
>> Date: Thu Apr 19 20:42:11 2007
>> New Revision: 530626
>>
>> URL: http://svn.apache.org/viewvc?view=rev&rev=530626
>> Log:
>> Support for one proxy per business interface. more to come.
>>
>> Modified:
>> incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/assembler/classic/
>> EjbLocalReferenceInfo.java
>> incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
>> incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
>> incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
>> incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/CoreDeploymentInfo.java
>> incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
>> incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/stateful/StatefulContainer.java
>> incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/stateful/
>> StatefulContainerManagedTxPolicy.java
>> incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/
>> java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
>>
>> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
>> src/main/java/org/apache/openejb/assembler/classic/
>> EjbLocalReferenceInfo.java
>> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
>> container/openejb-core/src/main/java/org/apache/openejb/assembler/
>> classic/EjbLocalReferenceInfo.java?
>> view=diff&rev=530626&r1=530625&r2=530626
>> =====================================================================
>> =========
>> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/assembler/classic/
>> EjbLocalReferenceInfo.java (original)
>> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/assembler/classic/
>> EjbLocalReferenceInfo.java Thu Apr 19 20:42:11 2007
>> @@ -20,6 +20,7 @@
>>
>> public String referenceName;
>> public String homeType;
>> + public String localType;
>> public String ejbDeploymentId;
>>
>> public ReferenceLocationInfo location;
>>
>> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
>> src/main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
>> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
>> container/openejb-core/src/main/java/org/apache/openejb/assembler/
>> classic/JndiBuilder.java?view=diff&rev=530626&r1=530625&r2=530626
>> =====================================================================
>> =========
>> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
>> (original)
>> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/assembler/classic/JndiBuilder.java
>> Thu Apr 19 20:42:11 2007
>> @@ -143,7 +143,10 @@
>> if (homeInterface != null) {
>> String name = strategy.getName(deployment,
>> homeInterface, JndiNameStrategy.Interface.REMOTE_HOME);
>> bindings.add(name);
>> - context.bind("openejb/ejb/" + name, new
>> ObjectReference(deployment.getEJBHome()));
>> + ObjectReference ref = new ObjectReference
>> (deployment.getEJBHome());
>> + context.bind("openejb/ejb/" + name, ref);
>> + name = deployment.getDeploymentID() + "/" +
>> deployment.getRemoteInterface().getName();
>> + context.bind("openejb/Deployment/" + name, ref);
>> }
>> } catch (NamingException e) {
>> throw new RuntimeException("Unable to bind home
>> interface for deployment " + id, e);
>> @@ -154,7 +157,9 @@
>> if (localHomeInterface != null) {
>> String name = strategy.getName(deployment,
>> localHomeInterface, JndiNameStrategy.Interface.LOCAL_HOME);
>> bindings.add(name);
>> - context.bind("openejb/ejb/" + name, new
>> ObjectReference(deployment.getEJBLocalHome()));
>> + ObjectReference ref = new ObjectReference
>> (deployment.getEJBLocalHome());
>> + context.bind("openejb/ejb/" + name, ref);
>> + context.bind("openejb/Deployment/" +
>> deployment.getDeploymentID() + "/" + deployment.getLocalInterface
>> ().getName(), ref);
>> }
>> } catch (NamingException e) {
>> throw new RuntimeException("Unable to bind local
>> interface for deployment " + id, e);
>> @@ -167,6 +172,11 @@
>> DeploymentInfo.BusinessLocalHome
>> businessLocalHome = deployment.getBusinessLocalHome();
>> bindings.add(name);
>> context.bind("openejb/ejb/" + name, new
>> BusinessLocalReference(businessLocalHome));
>> +
>> + for (Class interfce :
>> deployment.getBusinessLocalInterfaces()) {
>> + DeploymentInfo.BusinessLocalHome home =
>> deployment.getBusinessLocalHome(asList(interfce));
>> + context.bind("openejb/Deployment/" +
>> deployment.getDeploymentID() + "/" + interfce.getName(), new
>> BusinessLocalReference(home));
>> + }
>> }
>> } catch (NamingException e) {
>> throw new RuntimeException("Unable to bind business
>> local interface for deployment " + id, e);
>> @@ -178,7 +188,13 @@
>> String name = strategy.getName(deployment,
>> businessRemoteInterface, JndiNameStrategy.Interface.BUSINESS_REMOTE);
>> DeploymentInfo.BusinessRemoteHome
>> businessRemoteHome = deployment.getBusinessRemoteHome();
>> bindings.add(name);
>> - context.bind("openejb/ejb/" + name, new
>> BusinessRemoteReference(businessRemoteHome));
>> + BusinessRemoteReference ref = new
>> BusinessRemoteReference(businessRemoteHome);
>> + context.bind("openejb/ejb/" + name, ref);
>> +
>> + for (Class interfce :
>> deployment.getBusinessRemoteInterfaces()) {
>> + DeploymentInfo.BusinessRemoteHome home =
>> deployment.getBusinessRemoteHome(asList(interfce));
>> + context.bind("openejb/Deployment/" +
>> deployment.getDeploymentID() + "/" + interfce.getName(), new
>> BusinessRemoteReference(home));
>> + }
>> }
>> } catch (NamingException e) {
>> throw new RuntimeException("Unable to bind business
>> remote deployment in jndi.", e);
>> @@ -204,6 +220,12 @@
>> } catch (NamingException e) {
>> throw new RuntimeException("Unable to bind mdb
>> destination in jndi.", e);
>> }
>> + }
>> +
>> + private static List<Class> asList(Class interfce) {
>> + List<Class> list = new ArrayList<Class>();
>> + list.add(interfce);
>> + return list;
>> }
>>
>> protected static final class Bindings {
>>
>> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
>> src/main/java/org/apache/openejb/assembler/classic/
>> JndiEncBuilder.java
>> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
>> container/openejb-core/src/main/java/org/apache/openejb/assembler/
>> classic/JndiEncBuilder.java?view=diff&rev=530626&r1=530625&r2=530626
>> =====================================================================
>> =========
>> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
>> (original)
>> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
>> Thu Apr 19 20:42:11 2007
>> @@ -183,22 +183,11 @@
>> if (referenceInfo.location != null) {
>> reference = buildReferenceLocation
>> (referenceInfo.location);
>> } else {
>> - // TODO: Before JndiNameStrategy can be used,
>> this assumption has to be updated
>> - if (referenceInfo.homeType == null){
>> - String jndiName = "java:openejb/ejb/" +
>> referenceInfo.ejbDeploymentId + "BusinessRemote";
>> - if (useCrossClassLoaderRef &&
>> referenceInfo.externalReference) {
>> - reference = new
>> CrossClassLoaderJndiReference(jndiName);
>> - } else {
>> - reference = new IntraVmJndiReference
>> (jndiName);
>> - }
>> + String jndiName = "java:openejb/Deployment/" +
>> referenceInfo.ejbDeploymentId + "/" + referenceInfo.remoteType;
>> + if (useCrossClassLoaderRef &&
>> referenceInfo.externalReference) {
>> + reference = new CrossClassLoaderJndiReference
>> (jndiName);
>> } else {
>> - // TODO: Before JndiNameStrategy can be used,
>> this assumption has to be updated
>> - String jndiName = "java:openejb/ejb/" +
>> referenceInfo.ejbDeploymentId;
>> - if (useCrossClassLoaderRef &&
>> referenceInfo.externalReference) {
>> - reference = new
>> CrossClassLoaderJndiReference(jndiName);
>> - } else {
>> - reference = new IntraVmJndiReference
>> (jndiName);
>> - }
>> + reference = new IntraVmJndiReference(jndiName);
>> }
>> }
>> bindings.put(normalize(referenceInfo.referenceName),
>> reference);
>> @@ -210,12 +199,8 @@
>>
>> if (referenceInfo.location != null) {
>> reference = buildReferenceLocation
>> (referenceInfo.location);
>> - } else if (referenceInfo.homeType == null){
>> - // TODO: Before JndiNameStrategy can be used,
>> this assumption has to be updated
>> - String jndiName = "java:openejb/ejb/" +
>> referenceInfo.ejbDeploymentId + "BusinessLocal";
>> - reference = new IntraVmJndiReference(jndiName);
>> } else {
>> - String jndiName = "java:openejb/ejb/" +
>> referenceInfo.ejbDeploymentId + "Local";
>> + String jndiName = "java:openejb/Deployment/" +
>> referenceInfo.ejbDeploymentId + "/" + referenceInfo.localType;
>> reference = new IntraVmJndiReference(jndiName);
>> }
>> bindings.put(normalize(referenceInfo.referenceName),
>> reference);
>>
>> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
>> src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
>> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
>> container/openejb-core/src/main/java/org/apache/openejb/config/
>> JndiEncInfoBuilder.java?view=diff&rev=530626&r1=530625&r2=530626
>> =====================================================================
>> =========
>> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
>> (original)
>> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/config/JndiEncInfoBuilder.java Thu
>> Apr 19 20:42:11 2007
>> @@ -361,6 +361,7 @@
>> EjbLocalReferenceInfo info = new EjbLocalReferenceInfo
>> ();
>>
>> info.homeType = ejb.getLocalHome();
>> + info.localType = ejb.getLocal();
>> info.referenceName = ejb.getEjbRefName();
>>
>> // assign location to a global jndi name
>>
>> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
>> src/main/java/org/apache/openejb/core/CoreDeploymentInfo.java
>> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
>> container/openejb-core/src/main/java/org/apache/openejb/core/
>> CoreDeploymentInfo.java?view=diff&rev=530626&r1=530625&r2=530626
>> =====================================================================
>> =========
>> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/CoreDeploymentInfo.java (original)
>> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/CoreDeploymentInfo.java Thu Apr
>> 19 20:42:11 2007
>> @@ -506,7 +506,7 @@
>> }
>> }
>>
>> - return (BusinessLocalHome)
>> EjbHomeProxyHandler.createHomeProxy(this,
>> InterfaceType.BUSINESS_LOCAL_HOME);
>> + return (BusinessLocalHome)
>> EjbHomeProxyHandler.createHomeProxy(this,
>> InterfaceType.BUSINESS_LOCAL_HOME, interfaces);
>> }
>>
>> public BusinessRemoteHome getBusinessRemoteHome() {
>> @@ -526,7 +526,7 @@
>> }
>> }
>>
>> - return (BusinessRemoteHome)
>> EjbHomeProxyHandler.createHomeProxy(this,
>> InterfaceType.BUSINESS_REMOTE_HOME);
>> + return (BusinessRemoteHome)
>> EjbHomeProxyHandler.createHomeProxy(this,
>> InterfaceType.BUSINESS_REMOTE_HOME, interfaces);
>> }
>>
>> public String getMessageDestination() {
>>
>> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
>> src/main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
>> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
>> container/openejb-core/src/main/java/org/apache/openejb/core/ivm/
>> EjbHomeProxyHandler.java?view=diff&rev=530626&r1=530625&r2=530626
>> =====================================================================
>> =========
>> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java
>> (original)
>> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/ivm/EjbHomeProxyHandler.java Thu
>> Apr 19 20:42:11 2007
>> @@ -97,7 +97,7 @@
>> return createHomeProxy(deploymentInfo, interfaceType, null);
>> }
>>
>> - public static Object createHomeProxy(DeploymentInfo
>> deploymentInfo, InterfaceType interfaceType, ArrayList<Class>
>> objectInterfaces) {
>> + public static Object createHomeProxy(DeploymentInfo
>> deploymentInfo, InterfaceType interfaceType, List<Class>
>> objectInterfaces) {
>> if (!interfaceType.isHome()) throw new
>> IllegalArgumentException("InterfaceType is not a Home type: " +
>> interfaceType);
>>
>> try {
>> @@ -105,7 +105,8 @@
>>
>> List<Class> proxyInterfaces = new ArrayList<Class>(2);
>>
>> - proxyInterfaces.add(deploymentInfo.getInterface
>> (interfaceType));
>> + Class homeInterface = deploymentInfo.getInterface
>> (interfaceType);
>> + proxyInterfaces.add(homeInterface);
>> proxyInterfaces.add(IntraVmProxy.class);
>>
>> return ProxyManager.newProxyInstance
>> (proxyInterfaces.toArray(new Class[]{}), handler);
>>
>> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
>> src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
>> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
>> container/openejb-core/src/main/java/org/apache/openejb/core/
>> stateful/StatefulContainer.java?
>> view=diff&rev=530626&r1=530625&r2=530626
>> =====================================================================
>> =========
>> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/stateful/StatefulContainer.java
>> (original)
>> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/stateful/StatefulContainer.java
>> Thu Apr 19 20:42:11 2007
>> @@ -39,6 +39,7 @@
>> import org.apache.openejb.OpenEJBException;
>> import org.apache.openejb.ProxyInfo;
>> import org.apache.openejb.RpcContainer;
>> +import org.apache.openejb.InvalidateReferenceException;
>> import org.apache.openejb.core.CoreDeploymentInfo;
>> import org.apache.openejb.core.Operation;
>> import org.apache.openejb.core.ThreadContext;
>> @@ -315,6 +316,8 @@
>> InterceptorStack interceptorStack = new
>> InterceptorStack(instance.bean, runMethod, Operation.REMOVE,
>> interceptors, instance.interceptors);
>> _invoke(callMethod, interceptorStack, args,
>> instance, callContext);
>>
>> + } catch(InvalidateReferenceException e){
>> + throw e;
>> } catch(ApplicationException e){
>> retain = deploymentInfo.retainIfExeption(runMethod);
>> throw e;
>>
>> Modified: incubator/openejb/trunk/openejb3/container/openejb-core/
>> src/main/java/org/apache/openejb/core/stateful/
>> StatefulContainerManagedTxPolicy.java
>> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
>> container/openejb-core/src/main/java/org/apache/openejb/core/
>> stateful/StatefulContainerManagedTxPolicy.java?
>> view=diff&rev=530626&r1=530625&r2=530626
>> =====================================================================
>> =========
>> --- incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/stateful/
>> StatefulContainerManagedTxPolicy.java (original)
>> +++ incubator/openejb/trunk/openejb3/container/openejb-core/src/
>> main/java/org/apache/openejb/core/stateful/
>> StatefulContainerManagedTxPolicy.java Thu Apr 19 20:42:11 2007
>> @@ -54,7 +54,10 @@
>> public void handleSystemException(Throwable sysException,
>> Object instance, TransactionContext context) throws
>> ApplicationException, SystemException {
>> try {
>> policy.handleSystemException(sysException, instance,
>> context);
>> + } catch (InvalidateReferenceException e) {
>> + throw e;
>> } catch (ApplicationException e) {
>> + // DMB: Not sure we want this here
>> throw new InvalidateReferenceException(e.getRootCause
>> ());
>> }
>> }
>>
>> Modified: incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/
>> main/java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
>> URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/
>> server/openejb-ejbd/src/main/java/org/apache/openejb/server/ejbd/
>> JndiRequestHandler.java?view=diff&rev=530626&r1=530625&r2=530626
>> =====================================================================
>> =========
>> --- incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/
>> java/org/apache/openejb/server/ejbd/JndiRequestHandler.java
>> (original)
>> +++ incubator/openejb/trunk/openejb3/server/openejb-ejbd/src/main/
>> java/org/apache/openejb/server/ejbd/JndiRequestHandler.java Thu
>> Apr 19 20:42:11 2007
>> @@ -162,7 +162,7 @@
>> deployment.getPrimaryKeyClass(),
>> deployment.getComponentType().toString(),
>> deploymentID,
>> - -1, deployment.getBusinessRemoteInterfaces
>> ());
>> + -1, proxyInfo.getInterfaces());
>> Object[] data = {metaData, proxyInfo.getPrimaryKey
>> ()};
>> res.setResult(data);
>> break;
>> @@ -172,11 +172,11 @@
>> if (property.equalsIgnoreCase("remotable")) {
>> res.setResponseCode
>> (ResponseCodes.JNDI_BUSINESS_OBJECT);
>> EJBMetaDataImpl metaData = new EJBMetaDataImpl
>> (null,
>> - deployment.getBusinessLocalInterface(),
>> + null,
>> deployment.getPrimaryKeyClass(),
>> deployment.getComponentType().toString
>> (),
>> deploymentID,
>> - -1, null);
>> + -1, proxyInfo.getInterfaces());
>> Object[] data = {metaData,
>> proxyInfo.getPrimaryKey()};
>> res.setResult(data);
>> } else {
>>
>>
>