From 9c29f526295914b2be3f96f5605a772219ca14fc Mon Sep 17 00:00:00 2001 From: rfeng Date: Fri, 7 Aug 2009 04:03:21 +0000 Subject: 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 --- .../org/apache/tuscany/sca/core/DefaultUtilityExtensionPoint.java | 7 ++++++- .../sca/extensibility/DefaultUtilityExtensionPointTestCase.java | 6 ++++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'java/sca/modules') 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> interfaces = getAllInterfaces(utility.getClass()); + Class cls = utility.getClass(); + Set> 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); } /** -- cgit v1.2.3