You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by rf...@apache.org on 2007/04/16 08:29:14 UTC
svn commit: r529141 - in /incubator/tuscany/java/sca/modules:
interface-java-runtime/src/main/java/org/apache/tuscany/interfacedef/java/module/
interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/introspect/
interface/src/main/java/or...
Author: rfeng
Date: Sun Apr 15 23:29:13 2007
New Revision: 529141
URL: http://svn.apache.org/viewvc?view=rev&rev=529141
Log:
Add support for local method overloading
Modified:
incubator/tuscany/java/sca/modules/interface-java-runtime/src/main/java/org/apache/tuscany/interfacedef/java/module/JavaInterfaceRuntimeModuleActivator.java
incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/introspect/DefaultJavaInterfaceIntrospector.java
incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java
Modified: incubator/tuscany/java/sca/modules/interface-java-runtime/src/main/java/org/apache/tuscany/interfacedef/java/module/JavaInterfaceRuntimeModuleActivator.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java-runtime/src/main/java/org/apache/tuscany/interfacedef/java/module/JavaInterfaceRuntimeModuleActivator.java?view=diff&rev=529141&r1=529140&r2=529141
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-java-runtime/src/main/java/org/apache/tuscany/interfacedef/java/module/JavaInterfaceRuntimeModuleActivator.java (original)
+++ incubator/tuscany/java/sca/modules/interface-java-runtime/src/main/java/org/apache/tuscany/interfacedef/java/module/JavaInterfaceRuntimeModuleActivator.java Sun Apr 15 23:29:13 2007
@@ -19,9 +19,12 @@
package org.apache.tuscany.interfacedef.java.module;
+import java.util.HashMap;
import java.util.Map;
import org.apache.tuscany.contribution.processor.StAXArtifactProcessorExtensionPoint;
+import org.apache.tuscany.interfacedef.java.introspect.DefaultJavaInterfaceIntrospector;
+import org.apache.tuscany.interfacedef.java.introspect.JavaInterfaceIntrospectorExtensionPoint;
import org.apache.tuscany.interfacedef.java.xml.JavaInterfaceProcessor;
import org.apache.tuscany.spi.bootstrap.ExtensionPointRegistry;
import org.apache.tuscany.spi.bootstrap.ModuleActivator;
@@ -32,7 +35,9 @@
public class JavaInterfaceRuntimeModuleActivator implements ModuleActivator {
public Map<Class, Object> getExtensionPoints() {
- return null;
+ Map<Class, Object> map = new HashMap<Class, Object>();
+ map.put(JavaInterfaceIntrospectorExtensionPoint.class, new DefaultJavaInterfaceIntrospector());
+ return map;
}
/**
Modified: incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/introspect/DefaultJavaInterfaceIntrospector.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/introspect/DefaultJavaInterfaceIntrospector.java?view=diff&rev=529141&r1=529140&r2=529141
==============================================================================
--- incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/introspect/DefaultJavaInterfaceIntrospector.java (original)
+++ incubator/tuscany/java/sca/modules/interface-java-xml/src/main/java/org/apache/tuscany/interfacedef/java/introspect/DefaultJavaInterfaceIntrospector.java Sun Apr 15 23:29:13 2007
@@ -20,9 +20,9 @@
import java.lang.reflect.Method;
import java.util.ArrayList;
-import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
-import java.util.Map;
+import java.util.Set;
import org.apache.tuscany.interfacedef.DataType;
import org.apache.tuscany.interfacedef.InvalidCallbackException;
@@ -84,7 +84,7 @@
}
javaInterface.setCallbackClass(callbackClass);
- javaInterface.getOperations().addAll(getOperations(type, remotable, conversational).values());
+ javaInterface.getOperations().addAll(getOperations(type, remotable, conversational));
for (JavaInterfaceIntrospectorExtension extension : extensions) {
extension.visitInterface(javaInterface);
@@ -92,15 +92,19 @@
return javaInterface;
}
- private <T> Map<String, Operation> getOperations(Class<T> type, boolean remotable, boolean conversational)
+ private <T> List<Operation> getOperations(Class<T> type, boolean remotable, boolean conversational)
throws InvalidInterfaceException {
Method[] methods = type.getMethods();
- Map<String, Operation> operations = new HashMap<String, Operation>(methods.length);
+ List<Operation> operations = new ArrayList<Operation>(methods.length);
+ Set<String> names = remotable? new HashSet<String>() : null;
for (Method method : methods) {
String name = method.getName();
- if (remotable && operations.containsKey(name)) {
+ if (remotable && names.contains(name)) {
throw new OverloadedOperationException(method);
}
+ if(remotable) {
+ names.add(name);
+ }
Class returnType = method.getReturnType();
Class[] paramTypes = method.getParameterTypes();
@@ -136,7 +140,7 @@
operation.setFaultTypes(faultDataTypes);
operation.setConversationSequence(conversationSequence);
operation.setNonBlocking(nonBlocking);
- operations.put(name, operation);
+ operations.add(operation);
}
return operations;
}
Modified: incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java?view=diff&rev=529141&r1=529140&r2=529141
==============================================================================
--- incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java (original)
+++ incubator/tuscany/java/sca/modules/interface/src/main/java/org/apache/tuscany/interfacedef/impl/DefaultInterfaceContractMapper.java Sun Apr 15 23:29:13 2007
@@ -136,7 +136,7 @@
}
for (Operation operation : source.getInterface().getOperations()) {
- Operation targetOperation = getOperation(target.getInterface().getOperations(), operation.getName());
+ Operation targetOperation = map(target.getInterface(), operation);
if (targetOperation == null) {
if (!silent) {
throw new IncompatibleInterfaceContractException("Operation not found on target", source, target);
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org