diff options
Diffstat (limited to '')
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); } /** |