summaryrefslogtreecommitdiffstats
path: root/java/sca/modules
diff options
context:
space:
mode:
authorrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-08-07 04:03:21 +0000
committerrfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68>2009-08-07 04:03:21 +0000
commit9c29f526295914b2be3f96f5605a772219ca14fc (patch)
treef7101e50f4b791c1319d9cc6d8f7c77d309e6b8d /java/sca/modules
parent0ca889163f6e6dabedff9dde76a8aca6bf18c84d (diff)
Allow the utility to be a concrete class
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@801875 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules')
-rw-r--r--java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java7
-rw-r--r--java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java6
2 files changed, 12 insertions, 1 deletions
diff --git a/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java b/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java
index a395352e4f..5ff32e04df 100644
--- a/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java
+++ b/java/sca/modules/extensibility/src/main/java/org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java
@@ -71,10 +71,14 @@ public class DefaultUtilityExtensionPoint implements UtilityExtensionPoint {
}
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 @@ public class DefaultUtilityExtensionPoint implements UtilityExtensionPoint {
utilityClass = utilityDeclaration.loadClass();
} else if (isConcreteClass(utilityType)) {
utilityClass = utilityType;
+ key = utilityType;
}
if (utilityClass != null) {
// Construct the utility
diff --git a/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java b/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java
index e4abbb257d..6e9e3f07d3 100644
--- a/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java
+++ b/java/sca/modules/extensibility/src/test/java/org/apache/tuscany/sca/extensibility/DefaultUtilityExtensionPointTestCase.java
@@ -67,6 +67,12 @@ public class DefaultUtilityExtensionPointTestCase {
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);
}
/**