From 95b667cfdc431eb6eb27d06b79a66ea511a4d3a7 Mon Sep 17 00:00:00 2001 From: bdaniel Date: Mon, 9 Aug 2010 17:33:18 +0000 Subject: JCA 11011 Add SOAP intent to the interface if any method in the interface is annotated with @WebResult git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@983744 13f79535-47bb-0310-9956-ffa450edef68 --- .../java/impl/PolicyJavaInterfaceVisitor.java | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'sca-java-2.x/trunk/modules/interface-java/src/main') diff --git a/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java b/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java index 8f760e8593..f6daac64e4 100644 --- a/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java +++ b/sca-java-2.x/trunk/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/PolicyJavaInterfaceVisitor.java @@ -25,6 +25,7 @@ import java.util.HashSet; import java.util.List; import java.util.Set; +import javax.jws.WebResult; import javax.jws.soap.SOAPBinding; import javax.xml.namespace.QName; @@ -107,12 +108,14 @@ public class PolicyJavaInterfaceVisitor implements JavaInterfaceVisitor { } } - if ( clazz.getAnnotation(SOAPBinding.class) != null ) { + if ( clazz.isAnnotationPresent(SOAPBinding.class) ) { // add soap intent Intent intent = policyFactory.createIntent(); intent.setName(Constants.SOAP_INTENT); requiredIntents.add(intent); } + + } private void readIntents(Requires intentAnnotation, List requiredIntents) { @@ -155,6 +158,17 @@ public class PolicyJavaInterfaceVisitor implements JavaInterfaceVisitor { } } + public void readWebResult(Method m, Class clazz, List requiredIntents) { + WebResult webResultAnnotation = m.getAnnotation(WebResult.class); + if (webResultAnnotation != null) { + if (webResultAnnotation.header()) { + // Add SOAP intent + Intent intent = policyFactory.createIntent(); + intent.setName(Constants.SOAP_INTENT); + requiredIntents.add(intent); + } + } + } public void visitInterface(JavaInterface javaInterface) throws InvalidInterfaceException { if (javaInterface.getJavaClass() != null) { @@ -169,6 +183,7 @@ public class PolicyJavaInterfaceVisitor implements JavaInterfaceVisitor { readIntents(method.getAnnotation(Requires.class), op.getRequiredIntents()); readSpecificIntents(method.getAnnotations(), op.getRequiredIntents()); readPolicySets(method.getAnnotation(PolicySets.class), op.getPolicySets()); + readWebResult(method, javaInterface.getJavaClass(), javaInterface.getRequiredIntents()); } } } -- cgit v1.2.3