cxf-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dk...@apache.org
Subject svn commit: r797517 - in /cxf/trunk/integration/jca/src: main/java/org/apache/cxf/jca/outbound/ManagedConnectionImpl.java test/java/org/apache/cxf/jca/outbound/ test/java/org/apache/cxf/jca/outbound/ManagedConnectionImplTest.java
Date Fri, 24 Jul 2009 15:10:25 GMT
Author: dkulp
Date: Fri Jul 24 15:10:25 2009
New Revision: 797517

URL: http://svn.apache.org/viewvc?rev=797517&view=rev
Log:
[CXF-2357] Patch from William Tam applied

Added:
    cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/outbound/
    cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/outbound/ManagedConnectionImplTest.java
  (with props)
Modified:
    cxf/trunk/integration/jca/src/main/java/org/apache/cxf/jca/outbound/ManagedConnectionImpl.java

Modified: cxf/trunk/integration/jca/src/main/java/org/apache/cxf/jca/outbound/ManagedConnectionImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/integration/jca/src/main/java/org/apache/cxf/jca/outbound/ManagedConnectionImpl.java?rev=797517&r1=797516&r2=797517&view=diff
==============================================================================
--- cxf/trunk/integration/jca/src/main/java/org/apache/cxf/jca/outbound/ManagedConnectionImpl.java
(original)
+++ cxf/trunk/integration/jca/src/main/java/org/apache/cxf/jca/outbound/ManagedConnectionImpl.java
Fri Jul 24 15:10:25 2009
@@ -346,9 +346,22 @@
                 LOG.finest("invoke connection spec:" + spec + " method=" + method);
             }
             
-            if ("hashCode".equals(method.getName()) || "equals".equals(method.getName()))
{
+            if ("hashCode".equals(method.getName())) {
                 return method.invoke(Proxy.getInvocationHandler(proxy), args);
-                
+            }
+            
+            if ("equals".equals(method.getName())) {
+                // These are proxies.  We don't really care if their targets are equal.
+                // We do care if these are the same proxy instances that we created.  
+                // Therefore, if their proxy and invocation handler are consistent, 
+                // we believe they are equal.
+                boolean result = false;
+                try {
+                    result = proxy == args[0] && this == Proxy.getInvocationHandler(args[0]);
+                } catch (Exception e) {
+                    // ignore and assume not equal
+                }      
+                return result;
             }
             
             if ("toString".equals(method.getName())) {
@@ -383,15 +396,13 @@
         private Object handleCloseMethod(Object proxy, Method method,
                 Object[] args) {
             
+
             handles.remove(proxy);
             associatedHandle = null;
-            if (handles.isEmpty()) {
-                isClosed = true;
-                ConnectionEvent event = new ConnectionEvent(ManagedConnectionImpl.this,
-                        ConnectionEvent.CONNECTION_CLOSED);
-                event.setConnectionHandle(proxy);
-                sendEvent(event);
-            }
+            ConnectionEvent event = new ConnectionEvent(ManagedConnectionImpl.this,
+                    ConnectionEvent.CONNECTION_CLOSED);
+            event.setConnectionHandle(proxy);
+            sendEvent(event);
             
             return null;
         }

Added: cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/outbound/ManagedConnectionImplTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/outbound/ManagedConnectionImplTest.java?rev=797517&view=auto
==============================================================================
--- cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/outbound/ManagedConnectionImplTest.java
(added)
+++ cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/outbound/ManagedConnectionImplTest.java
Fri Jul 24 15:10:25 2009
@@ -0,0 +1,68 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cxf.jca.outbound;
+
+import javax.security.auth.Subject;
+import javax.xml.namespace.QName;
+
+import org.apache.hello_world_soap_http.Greeter;
+import org.easymock.classextension.EasyMock;
+import org.easymock.classextension.IMocksControl;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+
+/**
+ * Unit test for ManagedConnectionImpl
+ */
+public class ManagedConnectionImplTest {
+
+    /**
+     * Verify the connection handle's equals() method
+     */
+    @Test
+    public void testHandleEqualsMethod() throws Exception {
+        IMocksControl control = EasyMock.createNiceControl();
+
+        ManagedConnectionFactoryImpl mcf = control.createMock(ManagedConnectionFactoryImpl.class);
+
+        CXFConnectionSpec cxRequestInfo = new CXFConnectionSpec();
+
+        cxRequestInfo.setWsdlURL(getClass().getResource("/wsdl/hello_world.wsdl"));
+        cxRequestInfo.setServiceClass(Greeter.class);
+        cxRequestInfo.setEndpointName(new QName("http://apache.org/hello_world_soap_http",
"SoapPort"));
+        cxRequestInfo.setServiceName(new QName("http://apache.org/hello_world_soap_http",
"SOAPService"));
+
+        control.replay();
+
+        Subject subject = new Subject();
+
+        ManagedConnectionImpl conn = new ManagedConnectionImpl(mcf, cxRequestInfo, subject);
+
+        Object handle1 = conn.getConnection(subject, cxRequestInfo);
+        Object handle2 = conn.getConnection(subject, cxRequestInfo);
+
+        assertEquals(handle1, handle1);
+        assertEquals(handle2, handle2);
+        assertFalse(handle1.equals(handle2));
+
+    }
+
+}

Propchange: cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/outbound/ManagedConnectionImplTest.java
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: cxf/trunk/integration/jca/src/test/java/org/apache/cxf/jca/outbound/ManagedConnectionImplTest.java
------------------------------------------------------------------------------
    svn:keywords = Rev Date



Mime
View raw message