You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2009/08/07 06:03:22 UTC

svn commit: r801875 - in /tuscany/java/sca/modules/extensibility/src: main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java

Author: rfeng
Date: Fri Aug  7 04:03:21 2009
New Revision: 801875

URL: http://svn.apache.org/viewvc?rev=801875&view=rev
Log:
Allow the utility to be a concrete class

Modified:
    tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java
    tuscany/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java

Modified: tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java?rev=801875&r1=801874&r2=801875&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java (original)
+++ tuscany/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java Fri Aug  7 04:03:21 2009
@@ -71,10 +71,14 @@
         }
 
         if (key == null) {
-            Set<Class<?>> interfaces = getAllInterfaces(utility.getClass());
+            Class<?> cls = utility.getClass();
+            Set<Class<?>> interfaces = getAllInterfaces(cls);
             for (Class<?> i : interfaces) {
                 utilities.put(i, utility);
             }
+            if (interfaces.isEmpty() || isConcreteClass(cls)) {
+                utilities.put(cls, utility);
+            }
         } else {
             utilities.put(key, utility);
         }
@@ -182,6 +186,7 @@
                     utilityClass = utilityDeclaration.loadClass();
                 } else if (isConcreteClass(utilityType)) {
                     utilityClass = utilityType;
+                    key = utilityType;
                 }
                 if (utilityClass != null) {
                     // Construct the utility

Modified: tuscany/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java
URL: http://svn.apache.org/viewvc/tuscany/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java?rev=801875&r1=801874&r2=801875&view=diff
==============================================================================
--- tuscany/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java (original)
+++ tuscany/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java Fri Aug  7 04:03:21 2009
@@ -67,6 +67,12 @@
         ep.removeUtility(my);
         u1= ep.getUtility(Utility1.class, "1");
         Assert.assertNull(u1);
+        
+        u1 = ep.getUtility(MyUtilityImpl.class);
+        Assert.assertNotNull(u1);
+        u2 = ep.getUtility(Utility2.class);
+        Assert.assertSame(u1, u2);
+        ep.removeUtility(u1);
     }
 
     /**