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(+)
----------------------------------------------------------------------