You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2014/05/03 10:52:06 UTC

git commit: TAP5-2262: Change org.apache.tapestry5.ioc.ServiceBindingOptions.withMarker() signature to allow for the specification of multiple different marker annotations

Repository: tapestry-5
Updated Branches:
  refs/heads/master 7294f9bcb -> 4ca5ff117


TAP5-2262: Change org.apache.tapestry5.ioc.ServiceBindingOptions.withMarker() signature to allow for the specification of multiple different marker annotations


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

Branch: refs/heads/master
Commit: 4ca5ff117597b2dbe06fea9edb5bfc7acaea80c0
Parents: 7294f9b
Author: Jochen Kemnade <jk...@apache.org>
Authored: Sat May 3 10:39:14 2014 +0200
Committer: Jochen Kemnade <jk...@apache.org>
Committed: Sat May 3 10:39:14 2014 +0200

----------------------------------------------------------------------
 .../org/apache/tapestry5/ioc/ServiceBindingOptions.java  |  2 +-
 .../apache/tapestry5/ioc/internal/ServiceBinderImpl.java |  2 +-
 .../groovy/ioc/specs/DefaultModuleDefImplSpec.groovy     | 11 +++++++++++
 .../test/java/org/apache/tapestry5/ioc/MarkerModule.java |  2 ++
 4 files changed, 15 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/4ca5ff11/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ServiceBindingOptions.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ServiceBindingOptions.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ServiceBindingOptions.java
index 8eed967..12123a9 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ServiceBindingOptions.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/ServiceBindingOptions.java
@@ -91,5 +91,5 @@ public interface ServiceBindingOptions
      * @param marker one or more markers to add
      * @return this binding options, for further configuration
      */
-    <T extends Annotation> ServiceBindingOptions withMarker(Class<T>... marker);
+    ServiceBindingOptions withMarker(Class<? extends Annotation>... marker);
 }

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/4ca5ff11/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ServiceBinderImpl.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ServiceBinderImpl.java b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ServiceBinderImpl.java
index edd864a..b77bb88 100644
--- a/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ServiceBinderImpl.java
+++ b/tapestry-ioc/src/main/java/org/apache/tapestry5/ioc/internal/ServiceBinderImpl.java
@@ -327,7 +327,7 @@ public class ServiceBinderImpl implements ServiceBinder, ServiceBindingOptions
         return this;
     }
 
-    public <T extends Annotation> ServiceBindingOptions withMarker(Class<T>... marker)
+    public ServiceBindingOptions withMarker(Class<? extends Annotation>... marker)
     {
         lock.check();
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/4ca5ff11/tapestry-ioc/src/test/groovy/ioc/specs/DefaultModuleDefImplSpec.groovy
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/test/groovy/ioc/specs/DefaultModuleDefImplSpec.groovy b/tapestry-ioc/src/test/groovy/ioc/specs/DefaultModuleDefImplSpec.groovy
index 5600ed0..91f6dc3 100644
--- a/tapestry-ioc/src/test/groovy/ioc/specs/DefaultModuleDefImplSpec.groovy
+++ b/tapestry-ioc/src/test/groovy/ioc/specs/DefaultModuleDefImplSpec.groovy
@@ -413,6 +413,17 @@ class DefaultModuleDefImplSpec extends Specification {
     sd.markers == [RedMarker, BlueMarker] as Set
   }
 
+  def "Multiple marker annotations can be added to service via ServiceBindingOptions"() {
+	  when:
+  
+	  def md = module MarkerModule
+	  def sd = md.getServiceDef "ColorfulGreeter"
+  
+	  then:
+  
+	  sd.markers == [RedMarker, BlueMarker] as Set
+	}
+  
   def "public synthetic methods on module class are ignored"() {
     def moduleClass = createSyntheticModuleClass()
 

http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/4ca5ff11/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/MarkerModule.java
----------------------------------------------------------------------
diff --git a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/MarkerModule.java b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/MarkerModule.java
index 781d142..cfbe531 100644
--- a/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/MarkerModule.java
+++ b/tapestry-ioc/src/test/java/org/apache/tapestry5/ioc/MarkerModule.java
@@ -25,6 +25,8 @@ public class MarkerModule
                 .withMarker(RedMarker.class);
         binder.bind(Greeter.class, RedGreeterImpl.class).withId("SurprisinglyBlueGreeter")
                 .withMarker(BlueMarker.class);
+        binder.bind(Greeter.class, RedGreeterImpl.class).withId("ColorfulGreeter")
+                .withMarker(RedMarker.class, BlueMarker.class);
     }
 
     @Marker(BlueMarker.class)