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 2014/01/07 19:36:58 UTC

[1/2] git commit: TAP5-2235: some changes in Tapestry-IoC so it can be integrated with JCache

Updated Branches:
  refs/heads/master bf2c8a4f0 -> 77072b3ab


TAP5-2235: some changes in Tapestry-IoC so it can be integrated with JCache


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/af355be1
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/af355be1
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/af355be1

Branch: refs/heads/master
Commit: af355be1ed9be5888e5dddd371b772cc1db611b3
Parents: 913c80b
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Tue Jan 7 16:35:49 2014 -0200
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Tue Jan 7 16:35:49 2014 -0200

----------------------------------------------------------------------
 .../services/AspectInterceptorBuilderImpl.java  | 21 ++++++++++++++++++--
 .../services/PlasticProxyFactoryImpl.java       | 19 ++++++++++++++----
 .../ioc/services/PlasticProxyFactory.java       |  2 +-
 3 files changed, 35 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/af355be1/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectInterceptorBuilderImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectInterceptorBuilderImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectInterceptorBuilderImpl.java
index b2807d0..e93288d 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectInterceptorBuilderImpl.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/AspectInterceptorBuilderImpl.java
@@ -17,6 +17,9 @@ package org.apache.tapestry5.ioc.internal.services;
 import org.apache.tapestry5.ioc.AnnotationAccess;
 import org.apache.tapestry5.ioc.internal.util.CollectionFactory;
 import org.apache.tapestry5.ioc.services.PlasticProxyFactory;
+import org.apache.tapestry5.plastic.InstructionBuilder;
+import org.apache.tapestry5.plastic.InstructionBuilderCallback;
+import org.apache.tapestry5.plastic.MethodDescription;
 import org.apache.tapestry5.plastic.PlasticClass;
 import org.apache.tapestry5.plastic.PlasticClassTransformation;
 import org.apache.tapestry5.plastic.PlasticField;
@@ -43,19 +46,33 @@ public class AspectInterceptorBuilderImpl<T> extends AbtractAspectInterceptorBui
 
         this.serviceInterface = serviceInterface;
 
-        transformation = plasticProxyFactory.createProxyTransformation(serviceInterface, (Class<? extends T>) delegate.getClass());
+        final Class<? extends Object> delegateType = delegate.getClass();
+        transformation = plasticProxyFactory.createProxyTransformation(serviceInterface, (Class<? extends T>) delegateType);
         plasticClass = transformation.getPlasticClass();
 
         plasticClass.addToString(description);
 
         allMethods.addAll(Arrays.asList(serviceInterface.getMethods()));
 
-        PlasticField delegateField = plasticClass.introduceField(serviceInterface, "delegate").inject(delegate);
+        final PlasticField delegateField = plasticClass.introduceField(serviceInterface, "delegate").inject(delegate);
 
         for (Method method : allMethods)
         {
             plasticClass.introduceMethod(method).delegateTo(delegateField);
         }
+        
+        // TAP5-2235
+        final String delegateTypeName = delegateType.getName();
+        MethodDescription getDelegateMethodDescription = 
+                new MethodDescription(delegateTypeName, PlasticProxyFactoryImpl.INTERNAL_GET_DELEGATE);
+        plasticClass.introduceMethod(getDelegateMethodDescription, new InstructionBuilderCallback()
+        {
+            public void doBuild(InstructionBuilder builder)
+            {
+                builder.loadThis().getField(delegateField);
+                builder.checkcast(delegateType).returnResult();
+            }
+        });
     }
 
     public void adviseMethod(Method method, org.apache.tapestry5.plastic.MethodAdvice advice)

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/af355be1/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PlasticProxyFactoryImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PlasticProxyFactoryImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PlasticProxyFactoryImpl.java
index a7bb67a..9c31858 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PlasticProxyFactoryImpl.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/services/PlasticProxyFactoryImpl.java
@@ -34,6 +34,8 @@ import java.util.Map;
 
 public class PlasticProxyFactoryImpl implements PlasticProxyFactory
 {
+    public static final String INTERNAL_GET_DELEGATE = null;
+
     private final PlasticManager manager;
 
     private final Map<String, Location> memberToLocation = CollectionFactory.newConcurrentMap();
@@ -99,10 +101,11 @@ public class PlasticProxyFactoryImpl implements PlasticProxyFactory
                 final PlasticField objectCreatorField = plasticClass.introduceField(ObjectCreator.class, "creator")
                         .inject(creator);
 
-                PlasticMethod delegateMethod = plasticClass.introducePrivateMethod(interfaceType.getName(), "delegate",
+                final String interfaceTypeName = interfaceType.getName();
+                PlasticMethod delegateMethod = plasticClass.introducePrivateMethod(interfaceTypeName, "delegate",
                         null, null);
 
-                delegateMethod.changeImplementation(new InstructionBuilderCallback()
+                final InstructionBuilderCallback returnCreateObject = new InstructionBuilderCallback()
                 {
                     public void doBuild(InstructionBuilder builder)
                     {
@@ -110,14 +113,22 @@ public class PlasticProxyFactoryImpl implements PlasticProxyFactory
                         builder.invoke(ObjectCreator.class, Object.class, "createObject");
                         builder.checkcast(interfaceType).returnResult();
                     }
-                });
+                };
+                
+                delegateMethod.changeImplementation(returnCreateObject);
 
                 for (Method method : interfaceType.getMethods())
                 {
                     plasticClass.introduceMethod(method).delegateTo(delegateMethod);
                 }
-
+                
+                // TA5-2235
+                MethodDescription getDelegateMethodDescription = 
+                        new MethodDescription(implementationType.getName(), INTERNAL_GET_DELEGATE);
+                plasticClass.introduceMethod(getDelegateMethodDescription, returnCreateObject);
+                
                 plasticClass.addToString(description);
+                
             }
         });
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/af355be1/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PlasticProxyFactory.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PlasticProxyFactory.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PlasticProxyFactory.java
index 7addde0..75e93e4 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PlasticProxyFactory.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PlasticProxyFactory.java
@@ -128,7 +128,7 @@ public interface PlasticProxyFactory extends PlasticClassListenerHub
      *         the <code>toString()</code> of the proxy
      * @return proxy instance
      */
-    @IncompatibleChange(release = "5.4", details = "TAP5-2029")
+    @IncompatibleChange(release = "5.4", details = "Added for TAP5-2029")
     <T> T createProxy(Class<T> interfaceType, Class<? extends T> implementationType, ObjectCreator<T> creator, String description);
 
     /**


[2/2] git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tapestry-5

Posted by th...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tapestry-5


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/77072b3a
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/77072b3a
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/77072b3a

Branch: refs/heads/master
Commit: 77072b3ab6666d7601d65e63595f8923197e9b1d
Parents: af355be bf2c8a4
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Tue Jan 7 16:36:23 2014 -0200
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Tue Jan 7 16:36:23 2014 -0200

----------------------------------------------------------------------
 settings.gradle                                 |   1 +
 tapestry-cdi/LICENSE.txt                        | 437 ++++++++++++++++++
 tapestry-cdi/build.gradle                       | 114 +++++
 .../org/apache/tapestry5/cdi/BeanHelper.java    | 153 +++++++
 .../org/apache/tapestry5/cdi/BeanInstance.java  |  50 +++
 .../apache/tapestry5/cdi/CDIInjectModule.java   |  45 ++
 .../tapestry5/cdi/CDIInjectionProvider.java     | 151 +++++++
 .../apache/tapestry5/cdi/CDIObjectProvider.java |  56 +++
 .../cdi/extension/BeanManagerHolder.java        |  42 ++
 .../cdi/extension/TapestryExtension.java        |  49 +++
 .../cdi/internal/utils/InternalUtils.java       | 134 ++++++
 .../src/main/resources/META-INF/beans.xml       |  22 +
 .../javax.enterprise.inject.spi.Extension       |   2 +
 .../apache/tapestry5/cdi/test/InjectTest.java   | 439 +++++++++++++++++++
 .../tapestry5/cdi/test/annotation/Choco.java    |  28 ++
 .../cdi/test/annotation/CustomDessert.java      |  28 ++
 .../cdi/test/annotation/DessertTime.java        |  28 ++
 .../tapestry5/cdi/test/annotation/Iced.java     |  30 ++
 .../cdi/test/annotation/MyStereotype.java       |  33 ++
 .../tapestry5/cdi/test/beans/BrownieImpl.java   |  49 +++
 .../tapestry5/cdi/test/beans/Counter.java       |  33 ++
 .../cdi/test/beans/CounterService.java          |  29 ++
 .../tapestry5/cdi/test/beans/Dessert.java       |  29 ++
 .../cdi/test/beans/DessertFactory.java          |  49 +++
 .../tapestry5/cdi/test/beans/DessertImpl.java   |  46 ++
 .../tapestry5/cdi/test/beans/IceCreamImpl.java  |  48 ++
 .../apache/tapestry5/cdi/test/beans/Menu.java   |  39 ++
 .../tapestry5/cdi/test/beans/NamedPojo.java     |  27 ++
 .../apache/tapestry5/cdi/test/beans/Pojo.java   |  25 ++
 .../apache/tapestry5/cdi/test/beans/Soup.java   |  40 ++
 .../cdi/test/beans/StatefulEJBBean.java         |  27 ++
 .../cdi/test/beans/StatefulEJBBeanImpl.java     |  39 ++
 .../cdi/test/beans/StatelessEJBBean.java        |  24 +
 .../cdi/test/beans/StatelessEJBBeanImpl.java    |  27 ++
 .../tapestry5/cdi/test/beans/Stereotyped.java   |  47 ++
 .../tapestry5/cdi/test/beans/Vegetable.java     |  61 +++
 .../cdi/test/beans/ws/HelloWorldService.java    |  37 ++
 .../test/beans/ws/HelloWorldServiceImpl.java    |  36 ++
 .../cdi/test/components/DumbComponent.java      |  32 ++
 .../tapestry5/cdi/test/pages/DessertPage.java   |  94 ++++
 .../apache/tapestry5/cdi/test/pages/Index.java  | 121 +++++
 .../cdi/test/pages/InvalidateSessionPage.java   |  29 ++
 .../cdi/test/pages/RequestScopePage.java        |  36 ++
 .../cdi/test/pages/SessionScopePage.java        |  38 ++
 .../tapestry5/cdi/test/pages/SomePage.java      |  18 +
 .../tapestry5/cdi/test/pages/StatefulPage.java  |  41 ++
 .../cdi/test/pages/StereotypePage.java          |  42 ++
 .../tapestry5/cdi/test/pages/VegetablePage.java |  37 ++
 .../apache/tapestry5/cdi/test/pages/WSPage.java |  34 ++
 .../ClasspathURLConverterJBoss7Dot1.java        |  99 +++++
 .../tapestry5/cdi/test/services/PojoModule.java |  30 ++
 tapestry-cdi/src/test/resources/arquillian.xml  |  34 ++
 tapestry-cdi/src/test/resources/log4j.xml       |  59 +++
 .../cdi/test/components/DumbComponent.tml       |   7 +
 .../tapestry5/cdi/test/pages/DessertPage.tml    |  10 +
 .../tapestry5/cdi/test/pages/Index.properties   |  18 +
 .../apache/tapestry5/cdi/test/pages/Index.tml   |  22 +
 .../cdi/test/pages/InvalidateSessionPage.tml    |   2 +
 .../cdi/test/pages/RequestScopePage.tml         |   3 +
 .../cdi/test/pages/SessionScopePage.tml         |   3 +
 .../tapestry5/cdi/test/pages/SomePage.tml       |   2 +
 .../tapestry5/cdi/test/pages/StatefulPage.tml   |   6 +
 .../tapestry5/cdi/test/pages/StereotypePage.tml |   5 +
 .../tapestry5/cdi/test/pages/VegetablePage.tml  |   4 +
 .../apache/tapestry5/cdi/test/pages/WSPage.tml  |   3 +
 65 files changed, 3383 insertions(+)
----------------------------------------------------------------------



[2/2] git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tapestry-5

Posted by th...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/tapestry-5


Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/77072b3a
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/77072b3a
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/77072b3a

Branch: refs/heads/master
Commit: 77072b3ab6666d7601d65e63595f8923197e9b1d
Parents: af355be bf2c8a4
Author: Thiago H. de Paula Figueiredo <th...@apache.org>
Authored: Tue Jan 7 16:36:23 2014 -0200
Committer: Thiago H. de Paula Figueiredo <th...@apache.org>
Committed: Tue Jan 7 16:36:23 2014 -0200

----------------------------------------------------------------------
 settings.gradle                                 |   1 +
 tapestry-cdi/LICENSE.txt                        | 437 ++++++++++++++++++
 tapestry-cdi/build.gradle                       | 114 +++++
 .../org/apache/tapestry5/cdi/BeanHelper.java    | 153 +++++++
 .../org/apache/tapestry5/cdi/BeanInstance.java  |  50 +++
 .../apache/tapestry5/cdi/CDIInjectModule.java   |  45 ++
 .../tapestry5/cdi/CDIInjectionProvider.java     | 151 +++++++
 .../apache/tapestry5/cdi/CDIObjectProvider.java |  56 +++
 .../cdi/extension/BeanManagerHolder.java        |  42 ++
 .../cdi/extension/TapestryExtension.java        |  49 +++
 .../cdi/internal/utils/InternalUtils.java       | 134 ++++++
 .../src/main/resources/META-INF/beans.xml       |  22 +
 .../javax.enterprise.inject.spi.Extension       |   2 +
 .../apache/tapestry5/cdi/test/InjectTest.java   | 439 +++++++++++++++++++
 .../tapestry5/cdi/test/annotation/Choco.java    |  28 ++
 .../cdi/test/annotation/CustomDessert.java      |  28 ++
 .../cdi/test/annotation/DessertTime.java        |  28 ++
 .../tapestry5/cdi/test/annotation/Iced.java     |  30 ++
 .../cdi/test/annotation/MyStereotype.java       |  33 ++
 .../tapestry5/cdi/test/beans/BrownieImpl.java   |  49 +++
 .../tapestry5/cdi/test/beans/Counter.java       |  33 ++
 .../cdi/test/beans/CounterService.java          |  29 ++
 .../tapestry5/cdi/test/beans/Dessert.java       |  29 ++
 .../cdi/test/beans/DessertFactory.java          |  49 +++
 .../tapestry5/cdi/test/beans/DessertImpl.java   |  46 ++
 .../tapestry5/cdi/test/beans/IceCreamImpl.java  |  48 ++
 .../apache/tapestry5/cdi/test/beans/Menu.java   |  39 ++
 .../tapestry5/cdi/test/beans/NamedPojo.java     |  27 ++
 .../apache/tapestry5/cdi/test/beans/Pojo.java   |  25 ++
 .../apache/tapestry5/cdi/test/beans/Soup.java   |  40 ++
 .../cdi/test/beans/StatefulEJBBean.java         |  27 ++
 .../cdi/test/beans/StatefulEJBBeanImpl.java     |  39 ++
 .../cdi/test/beans/StatelessEJBBean.java        |  24 +
 .../cdi/test/beans/StatelessEJBBeanImpl.java    |  27 ++
 .../tapestry5/cdi/test/beans/Stereotyped.java   |  47 ++
 .../tapestry5/cdi/test/beans/Vegetable.java     |  61 +++
 .../cdi/test/beans/ws/HelloWorldService.java    |  37 ++
 .../test/beans/ws/HelloWorldServiceImpl.java    |  36 ++
 .../cdi/test/components/DumbComponent.java      |  32 ++
 .../tapestry5/cdi/test/pages/DessertPage.java   |  94 ++++
 .../apache/tapestry5/cdi/test/pages/Index.java  | 121 +++++
 .../cdi/test/pages/InvalidateSessionPage.java   |  29 ++
 .../cdi/test/pages/RequestScopePage.java        |  36 ++
 .../cdi/test/pages/SessionScopePage.java        |  38 ++
 .../tapestry5/cdi/test/pages/SomePage.java      |  18 +
 .../tapestry5/cdi/test/pages/StatefulPage.java  |  41 ++
 .../cdi/test/pages/StereotypePage.java          |  42 ++
 .../tapestry5/cdi/test/pages/VegetablePage.java |  37 ++
 .../apache/tapestry5/cdi/test/pages/WSPage.java |  34 ++
 .../ClasspathURLConverterJBoss7Dot1.java        |  99 +++++
 .../tapestry5/cdi/test/services/PojoModule.java |  30 ++
 tapestry-cdi/src/test/resources/arquillian.xml  |  34 ++
 tapestry-cdi/src/test/resources/log4j.xml       |  59 +++
 .../cdi/test/components/DumbComponent.tml       |   7 +
 .../tapestry5/cdi/test/pages/DessertPage.tml    |  10 +
 .../tapestry5/cdi/test/pages/Index.properties   |  18 +
 .../apache/tapestry5/cdi/test/pages/Index.tml   |  22 +
 .../cdi/test/pages/InvalidateSessionPage.tml    |   2 +
 .../cdi/test/pages/RequestScopePage.tml         |   3 +
 .../cdi/test/pages/SessionScopePage.tml         |   3 +
 .../tapestry5/cdi/test/pages/SomePage.tml       |   2 +
 .../tapestry5/cdi/test/pages/StatefulPage.tml   |   6 +
 .../tapestry5/cdi/test/pages/StereotypePage.tml |   5 +
 .../tapestry5/cdi/test/pages/VegetablePage.tml  |   4 +
 .../apache/tapestry5/cdi/test/pages/WSPage.tml  |   3 +
 65 files changed, 3383 insertions(+)
----------------------------------------------------------------------