summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/interface-java/src/main
diff options
context:
space:
mode:
authorlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-10-03 16:45:57 +0000
committerlresende <lresende@13f79535-47bb-0310-9956-ffa450edef68>2009-10-03 16:45:57 +0000
commit8d2678027fa767584fc1b618115933fb0314694b (patch)
treeabfa2e50b2b673b28cca6017c0c1182045e63807 /java/sca/modules/interface-java/src/main
parenta84ffb33828cd6e74a3d1b03b6e831fb85a93e13 (diff)
TUSCANY-3290 - Adding support for @Remote attribute in <interface.java>
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@821362 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/interface-java/src/main')
-rw-r--r--java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java7
-rw-r--r--java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java1
-rw-r--r--java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java16
3 files changed, 19 insertions, 5 deletions
diff --git a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java
index 894b2f705c..e659d3a658 100644
--- a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java
+++ b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/impl/JavaInterfaceIntrospectorImpl.java
@@ -35,6 +35,7 @@ import java.util.Set;
import javax.xml.namespace.QName;
import org.apache.tuscany.sca.interfacedef.DataType;
+import org.apache.tuscany.sca.interfacedef.InvalidAnnotationException;
import org.apache.tuscany.sca.interfacedef.InvalidCallbackException;
import org.apache.tuscany.sca.interfacedef.InvalidInterfaceException;
import org.apache.tuscany.sca.interfacedef.InvalidOperationException;
@@ -71,6 +72,12 @@ public class JavaInterfaceIntrospectorImpl {
javaInterface.setJavaClass(clazz);
boolean remotable = clazz.isAnnotationPresent(Remotable.class);
+
+ if (remotable) {
+ if (javaInterface.isRemotableSet() && javaInterface.isRemotable() == false) {
+ throw new InvalidAnnotationException("@Remotable annotation present in a interface marked as not remotable in the SCDL", Remotable.class);
+ }
+ }
// Consider @javax.ejb.Remote, java.rmi.Remote and javax.ejb.EJBObject
// equivalent to @Remotable
diff --git a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java
index 5e8cf6a433..75816b1d36 100644
--- a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java
+++ b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaConstants.java
@@ -31,5 +31,6 @@ public interface JavaConstants {
QName INTERFACE_JAVA_QNAME = new QName(SCA11_NS, "interface.java");
String INTERFACE = "interface";
String CALLBACK_INTERFACE = "callbackInterface";
+ String REMOTABLE = "remotable";
}
diff --git a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
index 1eb38592b7..b7c953813a 100644
--- a/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
+++ b/java/sca/modules/interface-java/src/main/java/org/apache/tuscany/sca/interfacedef/java/xml/JavaInterfaceProcessor.java
@@ -63,11 +63,11 @@ public class JavaInterfaceProcessor implements StAXArtifactProcessor<JavaInterfa
* @param model
*/
private void error(String message, Object model, Exception ex) {
- if (monitor != null) {
- Problem problem = monitor.createProblem(this.getClass().getName(), "interface-javaxml-validation-messages", Severity.ERROR, model, message, ex);
- monitor.problem(problem);
- }
- }
+ if (monitor != null) {
+ Problem problem = monitor.createProblem(this.getClass().getName(), "interface-javaxml-validation-messages", Severity.ERROR, model, message, ex);
+ monitor.problem(problem);
+ }
+ }
/**
* Report a error.
@@ -106,6 +106,12 @@ public class JavaInterfaceProcessor implements StAXArtifactProcessor<JavaInterfa
javaInterfaceContract.setCallbackInterface(javaCallbackInterface);
}
+ String remotable = reader.getAttributeValue(null, REMOTABLE);
+ if (remotable != null) {
+ javaInterfaceContract.getInterface().setRemotable(Boolean.parseBoolean(remotable));
+ }
+
+
// Skip to end element
while (reader.hasNext()) {
if (reader.next() == END_ELEMENT && INTERFACE_JAVA_QNAME.equals(reader.getName())) {