You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by th...@apache.org on 2019/02/24 03:11:15 UTC

[tapestry-5] 01/02: Revert "TAP5-2582: Service creation for Hibernate Session results in"

This is an automated email from the ASF dual-hosted git repository.

thiagohp pushed a commit to branch 5.4.x
in repository https://gitbox.apache.org/repos/asf/tapestry-5.git

commit 08b03f47676ee10b827ae65f81c50a8a3e244e94
Author: Thiago H. de Paula Figueiredo <th...@arsmachina.com.br>
AuthorDate: Sat Feb 23 20:13:37 2019 -0300

    Revert "TAP5-2582: Service creation for Hibernate Session results in"
    
    This reverts commit d7cc7c7daed3e8d38472d211ceecfa2218793503.
---
 .../internal/plastic/PlasticClassImpl.java         | 124 ++-------------------
 .../tapestry5/plastic/MethodDescription.java       |  15 ---
 .../org/apache/tapestry5/plastic/PlasticClass.java |  11 --
 tapestry-ioc/build.gradle                          |   6 +-
 .../apache/tapestry5/ioc/internal/ModuleImpl.java  |   9 +-
 .../specs/AspectInterceptorBuilderImplSpec.groovy  |   2 +-
 .../tapestry5/ioc/internal/AdviceModule.java       |  21 ----
 7 files changed, 15 insertions(+), 173 deletions(-)

diff --git a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
index 9683e1c..264825a 100644
--- a/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
+++ b/plastic/src/main/java/org/apache/tapestry5/internal/plastic/PlasticClassImpl.java
@@ -621,37 +621,11 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal
 
         introduceInterface(interfaceType);
 
-        // TAP5-2582: avoiding adding/delegating the same method more than once
-//        for (Method m : interfaceType.getMethods())
-//        {
-//            introduceMethod(m).delegateTo(field);
-//        }
-        
-        Map<MethodSignature, MethodDescription> map = createMethodSignatureMap(interfaceType);
-        for (MethodSignature methodSignature : map.keySet())
+        for (Method m : interfaceType.getMethods())
         {
-            introduceMethod(map.get(methodSignature)).delegateTo(field);
+            introduceMethod(m).delegateTo(field);
         }
-        
-        return this;
-    }
-    
-    @Override
-    public PlasticClass proxyInterface(Class interfaceType, PlasticMethod method)
-    {
-        check();
 
-        assert method != null;
-
-        introduceInterface(interfaceType);
-
-        // TAP5-2582: avoiding adding/delegating the same method more than once
-        Map<MethodSignature, MethodDescription> map = createMethodSignatureMap(interfaceType);
-        for (MethodSignature methodSignature : map.keySet())
-        {
-            introduceMethod(map.get(methodSignature)).delegateTo(method);
-        }
-        
         return this;
     }
 
@@ -1436,7 +1410,7 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal
 
         if (!interfaceType.isInterface())
             throw new IllegalArgumentException(String.format(
-                    "Class %s is not an interface; only interfaces may be introduced.", interfaceType.getName()));
+                    "Class %s is not an interface; ony interfaces may be introduced.", interfaceType.getName()));
 
         String interfaceName = nameCache.toInternalName(interfaceType);
 
@@ -1457,19 +1431,14 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal
         addClassAnnotations(interfaceClassNode);
 
         Set<PlasticMethod> introducedMethods = new HashSet<PlasticMethod>();
-        
-        Map<MethodSignature, MethodDescription> map = createMethodSignatureMap(interfaceType);
-        
-        // for (Method m : interfaceType.getMethods())
-	for (MethodSignature methodSignature : map.keySet())
+
+        for (Method m : interfaceType.getMethods())
         {
-            // MethodDescription description = new MethodDescription(m);
-            final MethodDescription description = map.get(methodSignature);
+            MethodDescription description = new MethodDescription(m);
 
-            if (!isMethodImplemented(description) && !isDefaultMethod(methodSignature.method))
+            if (!isMethodImplemented(description) && !isDefaultMethod(m))
             {
-                // introducedMethods.add(introduceMethod(m));
-                introducedMethods.add(introduceMethod(description));
+                introducedMethods.add(introduceMethod(m));
             }
         }
 
@@ -1478,83 +1447,6 @@ public class PlasticClassImpl extends Lockable implements PlasticClass, Internal
         return introducedMethods;
     }
 
-    private Map<MethodSignature, MethodDescription> createMethodSignatureMap(Class interfaceType) {
-	// TAP-2582: preprocessing the method list so we don't add duplicated
-        // methods, something that happens when an interface has superinterfaces
-        // and they define the same method signature.
-        // In addition, we collect all the thrown checked exceptions, just in case.
-        Map<MethodSignature, MethodDescription> map = new HashMap<MethodSignature, MethodDescription>();
-        for (Method m : interfaceType.getMethods())
-        {
-            final MethodSignature methodSignature = new MethodSignature(m);
-            final MethodDescription newMethodDescription = new MethodDescription(m);
-            if (!map.containsKey(methodSignature)) 
-            {
-		map.put(methodSignature, newMethodDescription);
-            }
-            else 
-            {
-        	if (newMethodDescription.checkedExceptionTypes != null && newMethodDescription.checkedExceptionTypes.length > 0)
-        	{
-        	    final MethodDescription methodDescription = map.get(methodSignature);
-                    final Set<String> checkedExceptionTypes = new HashSet<String>();
-                    checkedExceptionTypes.addAll(Arrays.asList(methodDescription.checkedExceptionTypes));
-                    checkedExceptionTypes.addAll(Arrays.asList(newMethodDescription.checkedExceptionTypes));
-                    map.put(methodSignature, new MethodDescription(
-                	    methodDescription, 
-                	    checkedExceptionTypes.toArray(new String[checkedExceptionTypes.size()])));
-        	}
-            }
-        }
-	return map;
-    }
-    
-    final private static class MethodSignature implements Comparable<MethodSignature>{
-	
-	final private Method method;
-	final private String name;
-	final private Class<?>[] parameterTypes;
-	
-	public MethodSignature(Method method) {
-	    this.method = method;
-	    this.name = method.getName();
-	    this.parameterTypes = method.getParameterTypes();
-	}
-
-	@Override
-	public int hashCode() {
-	    final int prime = 31;
-	    int result = 1;
-	    result = prime * result + Arrays.hashCode(parameterTypes);
-	    result = prime * result + ((name == null) ? 0 : name.hashCode());
-	    return result;
-	}
-
-	@Override
-	public boolean equals(Object obj) {
-	    if (this == obj)
-		return true;
-	    if (obj == null)
-		return false;
-	    if (getClass() != obj.getClass())
-		return false;
-	    MethodSignature other = (MethodSignature) obj;
-	    if (!Arrays.equals(parameterTypes, other.parameterTypes))
-		return false;
-	    if (name == null) {
-		if (other.name != null)
-		    return false;
-	    } else if (!name.equals(other.name))
-		return false;
-	    return true;
-	}
-
-	@Override
-	public int compareTo(MethodSignature o) {
-	    return method.getName().compareTo(o.method.getName());
-	}
-    }
-
     @Override
     public PlasticClass addToString(final String toStringValue)
     {
diff --git a/plastic/src/main/java/org/apache/tapestry5/plastic/MethodDescription.java b/plastic/src/main/java/org/apache/tapestry5/plastic/MethodDescription.java
index 5f8b88f..e0b7d2a 100644
--- a/plastic/src/main/java/org/apache/tapestry5/plastic/MethodDescription.java
+++ b/plastic/src/main/java/org/apache/tapestry5/plastic/MethodDescription.java
@@ -72,21 +72,6 @@ public class MethodDescription implements Comparable<MethodDescription>
     {
         this(Modifier.PUBLIC, returnType, methodName, argumentTypes, null, null);
     }
-    
-    /**
-     * Convenience constructor for copying a MethodDescription with
-     * different exception types.
-     * @since 5.4.4
-     */
-    public MethodDescription(MethodDescription description, String[] checkedExceptionTypes)
-    {
-	this.argumentTypes = description.argumentTypes;
-	this.checkedExceptionTypes = checkedExceptionTypes;
-	this.genericSignature = description.genericSignature;
-	this.methodName = description.methodName;
-	this.modifiers = description.modifiers;
-	this.returnType = description.returnType;
-    }
 
     /**
      * @param modifiers
diff --git a/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticClass.java b/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticClass.java
index 2168456..e212fe5 100644
--- a/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticClass.java
+++ b/plastic/src/main/java/org/apache/tapestry5/plastic/PlasticClass.java
@@ -163,17 +163,6 @@ public interface PlasticClass extends AnnotationAccess
      * @return this plastic class, for further configuration
      */
     PlasticClass proxyInterface(Class interfaceType, PlasticField field);
-    
-    /**
-     * Introduces the interface, and then invokes {@link PlasticMethod#delegateTo(PlasticMethod)} on each method
-     * defined by the interface.
-     *
-     * @param interfaceType defines the interface to proxy
-     * @param method        method to delegate to
-     * @return this plastic class, for further configuration
-     * @since 5.4.4
-     */
-    PlasticClass proxyInterface(Class interfaceType, PlasticMethod method);
 
     /**
      * Conditionally adds an implementation of <code>toString()</code> to the class, but only if it is not already
diff --git a/tapestry-ioc/build.gradle b/tapestry-ioc/build.gradle
index b208818..8113a23 100644
--- a/tapestry-ioc/build.gradle
+++ b/tapestry-ioc/build.gradle
@@ -15,10 +15,8 @@ dependencies {
 
     compile "org.slf4j:slf4j-api:${versions.slf4j}"
 
-    testCompile "org.apache.commons:commons-lang3:3.4"
-    testCompile "org.hibernate:hibernate-core:5.2.10.Final"
-    testRuntime "org.hsqldb:hsqldb:2.2.8"
-    
+    testCompile "commons-lang:commons-lang:2.6"
+
     provided "org.testng:testng:${versions.testng}", { transitive = false }
 }
 
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java
index 51f864c..48bf24d 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ModuleImpl.java
@@ -509,11 +509,10 @@ public class ModuleImpl implements Module
                     }
                 });
 
-                plasticClass.proxyInterface(serviceInterface, delegateMethod);
-//                for (Method m : serviceInterface.getMethods())
-//                {
-//                    plasticClass.introduceMethod(m).delegateTo(delegateMethod);
-//                }
+                for (Method m : serviceInterface.getMethods())
+                {
+                    plasticClass.introduceMethod(m).delegateTo(delegateMethod);
+                }
 
                 plasticClass.introduceMethod(WRITE_REPLACE).changeImplementation(new InstructionBuilderCallback()
                 {
diff --git a/tapestry-ioc/src/test/groovy/ioc/specs/AspectInterceptorBuilderImplSpec.groovy b/tapestry-ioc/src/test/groovy/ioc/specs/AspectInterceptorBuilderImplSpec.groovy
index b614c38..e543482 100644
--- a/tapestry-ioc/src/test/groovy/ioc/specs/AspectInterceptorBuilderImplSpec.groovy
+++ b/tapestry-ioc/src/test/groovy/ioc/specs/AspectInterceptorBuilderImplSpec.groovy
@@ -1,6 +1,6 @@
 package ioc.specs
 
-import org.apache.commons.lang3.StringUtils
+import org.apache.commons.lang.StringUtils
 import org.apache.tapestry5.ioc.internal.services.TextTransformer
 import org.apache.tapestry5.ioc.services.AspectDecorator
 import org.apache.tapestry5.plastic.MethodAdvice
diff --git a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
index f943152..0e0a186 100644
--- a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
+++ b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/AdviceModule.java
@@ -13,15 +13,9 @@
 // limitations under the License.
 package org.apache.tapestry5.ioc.internal;
 
-
 import org.apache.tapestry5.ioc.MethodAdviceReceiver;
-import org.apache.tapestry5.ioc.ObjectLocator;
-import org.apache.tapestry5.ioc.Registry;
-import org.apache.tapestry5.ioc.RegistryBuilder;
 import org.apache.tapestry5.ioc.ServiceBinder;
 import org.apache.tapestry5.ioc.annotations.Advise;
-import org.hibernate.Session;
-import org.hibernate.cfg.Configuration;
 
 public class AdviceModule
 {
@@ -51,19 +45,4 @@ public class AdviceModule
             final MethodAdviceReceiver methodAdviceReceiver) {
         methodAdviceReceiver.adviseAllMethods(new TestAdvice());
     }
-    
-//    public static void main(String[] args) {
-//	Registry registry = RegistryBuilder.buildAndStartupRegistry(AdviceModule.class);
-//	Session session = registry.getService(Session.class);
-//    }
-    
-    // TAP5-2582
-    public static Session buildHibernateSession(
-	    ObjectLocator objectLocator
-	) {
-	    return new Configuration()
-	        .configure("hibernate.cfg.xml")
-	        .buildSessionFactory()
-	        .openSession();
-	}
 }