You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by hl...@apache.org on 2011/04/21 00:45:46 UTC
svn commit: r1095544 [2/2] - in /tapestry/tapestry5/trunk:
plastic/src/main/java/org/apache/tapestry5/internal/plastic/
plastic/src/main/java/org/apache/tapestry5/plastic/
plastic/src/test/groovy/org/apache/tapestry5/plastic/
plastic/src/test/java/test...
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/AspectDecorator.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/AspectDecorator.java?rev=1095544&r1=1095543&r2=1095544&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/AspectDecorator.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/AspectDecorator.java Wed Apr 20 22:45:44 2011
@@ -4,7 +4,7 @@
// 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
+// 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,
@@ -15,10 +15,12 @@
package org.apache.tapestry5.ioc.services;
import org.apache.tapestry5.ioc.MethodAdvice;
+import org.apache.tapestry5.ioc.AnnotationAccess;
/**
- * A decorator used to create an interceptor that delegates each method's invocation to an {@link
- * org.apache.tapestry5.ioc.MethodAdvice} for advice. Advice can inspect or change method parameters, inspect or change
+ * A decorator used to create an interceptor that delegates each method's invocation to an
+ * {@link org.apache.tapestry5.ioc.MethodAdvice} for advice. Advice can inspect or change method parameters, inspect or
+ * change
* the method's return value, and inspect and change thrown exceptions (checked and unchecked).
*/
public interface AspectDecorator
@@ -26,26 +28,53 @@ public interface AspectDecorator
/**
* Intercepts method invocations on the delegate and passes them through the provided aspect. Note that the advice
* <em>must</em> be thread-safe.
- *
- * @param serviceInterface defines the interface of the interceptor and delegate
- * @param delegate the object on which methods will be invoked
- * @param advice intercepts the method invocations on the delegate
- * @param description used as the toString() of the returned interceptor, unless toString() is part of the
- * service interface
+ *
+ * @param serviceInterface
+ * defines the interface of the interceptor and delegate
+ * @param delegate
+ * the object on which methods will be invoked
+ * @param advice
+ * intercepts the method invocations on the delegate
+ * @param description
+ * used as the toString() of the returned interceptor, unless toString() is part of the
+ * service interface
* @return the interceptor, wrapping the delegate with all the advice
*/
<T> T build(Class<T> serviceInterface, T delegate, MethodAdvice advice, String description);
/**
- * Creates a builder that can be used to create the interceptor. This is used when only some of the methods need to
+ * Creates a builder that can be used to create the interceptor. This is used when only some of the methods need to
* be advised, or when different methods need to receive different advice, or when multiple advice is to be
* applied.
- *
- * @param serviceInterface defines the interface of the interceptor and the delegate
- * @param delegate the object on which methods will be invokes
- * @param description used as the toString() of the interceptor unless toString() is part of the service
- * interface
+ *
+ * @param serviceInterface
+ * defines the interface of the interceptor and the delegate
+ * @param delegate
+ * the object on which methods will be invokes
+ * @param description
+ * used as the toString() of the interceptor unless toString() is part of the service
+ * interface
* @return a builder that can be used to generate the final interceptor
*/
<T> AspectInterceptorBuilder<T> createBuilder(Class<T> serviceInterface, T delegate, String description);
+
+ /**
+ * Creates a builder that can be used to create the interceptor. This is used when only some of the methods need to
+ * be advised, or when different methods need to receive different advice, or when multiple advice is to be
+ * applied.
+ *
+ * @param serviceInterface
+ * defines the interface of the interceptor and the delegate
+ * @param delegate
+ * the object on which methods will be invokes
+ * @param annotationAccess
+ * provides access to combined annotations of the underlying service
+ * and service interface
+ * @param description
+ * used as the toString() of the interceptor unless toString() is part of the service
+ * interface
+ * @return a builder that can be used to generate the final interceptor
+ */
+ <T> AspectInterceptorBuilder<T> createBuilder(Class<T> serviceInterface, T delegate,
+ AnnotationAccess annotationAccess, String description);
}
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PlasticProxyFactory.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PlasticProxyFactory.java?rev=1095544&r1=1095543&r2=1095544&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PlasticProxyFactory.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/services/PlasticProxyFactory.java Wed Apr 20 22:45:44 2011
@@ -72,14 +72,11 @@ public interface PlasticProxyFactory
* interface class for proxy
* @param creator
* object responsible for creating the real object
- * @param annotationSource
- * if non-null, the class from which annotations should be copied
* @param description
* the <code>toString()</code> of the proxy
* @return proxy instance
*/
- <T> T createProxy(Class<T> interfaceType, ObjectCreator<T> creator, Class<? extends T> annotationSource,
- String description);
+ <T> T createProxy(Class<T> interfaceType, ObjectCreator<T> creator, String description);
/**
* Converts a method to a {@link Location}, which includes information about the source file name and line number.
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/IntegrationTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/IntegrationTest.java?rev=1095544&r1=1095543&r2=1095544&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/IntegrationTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/IntegrationTest.java Wed Apr 20 22:45:44 2011
@@ -416,26 +416,6 @@ public class IntegrationTest extends IOC
}
@Test
- public void proxy_annotations() throws Exception
- {
- Registry r = buildRegistry(AutobuildModule.class);
-
- StringHolder sh = r.getService(StringHolder.class);
-
- SimpleAnnotation annotation = sh.getClass().getAnnotation(SimpleAnnotation.class);
- assertNotNull(annotation);
- assertEquals(annotation.value(), "StringHolderImpl");
-
- Method method = sh.getClass().getMethod("getValue");
-
- annotation = method.getAnnotation(SimpleAnnotation.class);
- assertNotNull(annotation);
- assertEquals(annotation.value(), "StringHolderImpl#getValue()");
-
- r.shutdown();
- }
-
- @Test
public void exception_in_autobuild_service_constructor()
{
Registry r = buildRegistry(ExceptionInConstructorModule.class);
Modified: tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/IOCInternalTestCase.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/IOCInternalTestCase.java?rev=1095544&r1=1095543&r2=1095544&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/IOCInternalTestCase.java (original)
+++ tapestry/tapestry5/trunk/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/internal/IOCInternalTestCase.java Wed Apr 20 22:45:44 2011
@@ -23,7 +23,7 @@ import org.apache.tapestry5.ioc.Annotati
import org.apache.tapestry5.ioc.Registry;
import org.apache.tapestry5.ioc.RegistryBuilder;
import org.apache.tapestry5.ioc.ServiceDecorator;
-import org.apache.tapestry5.ioc.def.ServiceDef;
+import org.apache.tapestry5.ioc.def.ServiceDef3;
import org.apache.tapestry5.ioc.services.ClassFactory;
import org.apache.tapestry5.ioc.services.PlasticProxyFactory;
import org.apache.tapestry5.ioc.test.IOCTestCase;
@@ -137,7 +137,7 @@ public class IOCInternalTestCase extends
{
List<ServiceDecorator> result = Collections.emptyList();
- expect(registry.findDecoratorsForService(isA(ServiceDef.class))).andReturn(result);
+ expect(registry.findDecoratorsForService(isA(ServiceDef3.class))).andReturn(result);
}
protected final void train_getDescription(ObjectCreatorSource source, String description)
Modified: tapestry/tapestry5/trunk/tapestry-jpa/src/test/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/trunk/tapestry-jpa/src/test/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImplTest.java?rev=1095544&r1=1095543&r2=1095544&view=diff
==============================================================================
--- tapestry/tapestry5/trunk/tapestry-jpa/src/test/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImplTest.java (original)
+++ tapestry/tapestry5/trunk/tapestry-jpa/src/test/java/org/apache/tapestry5/internal/jpa/JpaTransactionAdvisorImplTest.java Wed Apr 20 22:45:44 2011
@@ -327,6 +327,8 @@ public class JpaTransactionAdvisorImplTe
train_commitActiveTransaction(transaction);
replay();
+
+
try
{
interceptor.perform();