summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/trunk/modules/implementation-java
diff options
context:
space:
mode:
authorslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2011-12-06 11:06:07 +0000
committerslaws <slaws@13f79535-47bb-0310-9956-ffa450edef68>2011-12-06 11:06:07 +0000
commit05a983da945419d83d52b2870c43cdef5eb3b600 (patch)
treeaaaeaefec3fe1ea66c34e1ccc6d7afb1d88577b4 /sca-java-2.x/trunk/modules/implementation-java
parentc60dcddf485fc808ed1dbd8e8318712078eb8097 (diff)
TUSCANY-3965 - Generally stop detecting non-annotated properties/references if @Service/@Reference/@Property annotations are present
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1210860 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sca-java-2.x/trunk/modules/implementation-java')
-rw-r--r--sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java26
1 files changed, 12 insertions, 14 deletions
diff --git a/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java b/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
index ac92d7b802..43cdeb319d 100644
--- a/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
+++ b/sca-java-2.x/trunk/modules/implementation-java/src/main/java/org/apache/tuscany/sca/implementation/java/introspect/impl/HeuristicPojoProcessor.java
@@ -91,6 +91,7 @@ public class HeuristicPojoProcessor extends BaseJavaClassVisitor {
@Override
public <T> void visitEnd(Class<T> clazz, JavaImplementation type) throws IntrospectionException {
List<org.apache.tuscany.sca.assembly.Service> services = type.getServices();
+
if (services.isEmpty()) {
// heuristically determine the service
/**
@@ -116,20 +117,17 @@ public class HeuristicPojoProcessor extends BaseJavaClassVisitor {
addService(type, clazz);
}
}
- if (!(type.getReferenceMembers().isEmpty() && type.getPropertyMembers().isEmpty())) {
- // references and properties have been explicitly defined
- // if (type.getServices().isEmpty()) {
- // calculateServiceInterface(clazz, type, methods);
- // if (type.getServices().isEmpty()) {
- // throw new ServiceTypeNotFoundException(clazz.getName());
- // }
- // }
- evaluateConstructor(type, clazz);
- return;
- }
- Set<Method> methods = getAllUniquePublicProtectedMethods(clazz, false);
-
- calcPropRefs(methods, services, type, clazz);
+
+ // TUSCANY-3965 - The OSASIS JCI spec (section 8) now provides an explicit algorithm
+ // for property and reference introspection. It's only performed if no @Service, @Reference
+ // or @Property annotation is present
+ if (clazz.getAnnotation(org.oasisopen.sca.annotation.Service.class) == null &&
+ type.getReferenceMembers().isEmpty() &&
+ type.getPropertyMembers().isEmpty()){
+ Set<Method> methods = getAllUniquePublicProtectedMethods(clazz, false);
+ calcPropRefs(methods, services, type, clazz);
+ }
+
evaluateConstructor(type, clazz);
}