You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tuscany.apache.org by jm...@apache.org on 2006/06/25 00:02:22 UTC
svn commit: r416967 - in /incubator/tuscany/sandbox/jboynes/sca/core2/src:
main/java/org/apache/tuscany/core/implementation/processor/
test/java/org/apache/tuscany/core/implementation/processor/
test/java/org/apache/tuscany/core/implementation/system/l...
Author: jmarino
Date: Sat Jun 24 15:02:21 2006
New Revision: 416967
URL: http://svn.apache.org/viewvc?rev=416967&view=rev
Log:
add support for reference service contracts to reference processor
Modified:
incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java
incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java?rev=416967&r1=416966&r2=416967&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/main/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessor.java Sat Jun 24 15:02:21 2006
@@ -9,6 +9,7 @@
import org.apache.tuscany.core.implementation.ImplementationProcessorSupport;
import org.apache.tuscany.core.implementation.JavaMappedReference;
+import org.apache.tuscany.core.implementation.JavaServiceContract;
import org.apache.tuscany.core.implementation.PojoComponentType;
import org.apache.tuscany.core.implementation.ProcessingException;
import org.apache.tuscany.core.util.JavaIntrospectionHelper;
@@ -46,6 +47,12 @@
JavaMappedReference reference = new JavaMappedReference();
reference.setMember(method);
reference.setRequired(annotation.required());
+ JavaServiceContract contract = new JavaServiceContract();
+ Class<?> interfaceType = method.getParameterTypes()[0];
+ String interfaceName = JavaIntrospectionHelper.getBaseName(interfaceType);
+ contract.setInterfaceName(interfaceName);
+ contract.setInterfaceClass(interfaceType);
+ reference.setServiceContract(contract);
type.getReferences().put(name, reference);
}
@@ -61,10 +68,16 @@
if (type.getReferences().get(name) != null) {
throw new DuplicateReferenceException(name);
}
- JavaMappedReference property = new JavaMappedReference();
- property.setMember(field);
- property.setRequired(annotation.required());
- type.getReferences().put(name, property);
+ JavaMappedReference reference = new JavaMappedReference();
+ reference.setMember(field);
+ reference.setRequired(annotation.required());
+ JavaServiceContract contract = new JavaServiceContract();
+ Class<?> interfaceType = field.getType();
+ String interfaceName = JavaIntrospectionHelper.getBaseName(interfaceType);
+ contract.setInterfaceName(interfaceName);
+ contract.setInterfaceClass(interfaceType);
+ reference.setServiceContract(contract);
+ type.getReferences().put(name, reference);
}
}
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java?rev=416967&r1=416966&r2=416967&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/implementation/processor/ReferenceProcessorTestCase.java Sat Jun 24 15:02:21 2006
@@ -7,6 +7,7 @@
import junit.framework.TestCase;
import org.apache.tuscany.core.implementation.JavaMappedProperty;
import org.apache.tuscany.core.implementation.JavaMappedReference;
+import org.apache.tuscany.core.implementation.JavaServiceContract;
import org.apache.tuscany.core.implementation.PojoComponentType;
/**
@@ -20,7 +21,11 @@
public void testMethodAnnotation() throws Exception {
processor.visitMethod(ReferenceProcessorTestCase.Foo.class.getMethod("setFoo", Ref.class), type, null);
- assertNotNull(type.getReferences().get("foo"));
+ JavaMappedReference reference = type.getReferences().get("foo");
+ assertNotNull(reference);
+ JavaServiceContract contract = (JavaServiceContract) reference.getServiceContract();
+ assertEquals(Ref.class, contract.getInterfaceClass());
+ assertEquals("ReferenceProcessorTestCase$Ref", contract.getInterfaceName());
}
public void testMethodRequired() throws Exception {
@@ -37,7 +42,11 @@
public void testFieldAnnotation() throws Exception {
processor.visitField(ReferenceProcessorTestCase.Foo.class.getDeclaredField("baz"), type, null);
- assertNotNull(type.getReferences().get("baz"));
+ JavaMappedReference reference = type.getReferences().get("baz");
+ assertNotNull(reference);
+ JavaServiceContract contract = (JavaServiceContract) reference.getServiceContract();
+ assertEquals(Ref.class, contract.getInterfaceClass());
+ assertEquals("ReferenceProcessorTestCase$Ref", contract.getInterfaceName());
}
public void testFieldRequired() throws Exception {
Modified: incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java
URL: http://svn.apache.org/viewvc/incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java?rev=416967&r1=416966&r2=416967&view=diff
==============================================================================
--- incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java (original)
+++ incubator/tuscany/sandbox/jboynes/sca/core2/src/test/java/org/apache/tuscany/core/implementation/system/loader/SystemComponentTypeLoaderTestCase.java Sat Jun 24 15:02:21 2006
@@ -17,6 +17,8 @@
package org.apache.tuscany.core.implementation.system.loader;
import org.apache.tuscany.spi.model.ServiceDefinition;
+import org.apache.tuscany.spi.model.ReferenceDefinition;
+import org.apache.tuscany.spi.model.Property;
import junit.framework.TestCase;
import org.apache.tuscany.core.implementation.IntrospectionRegistryImpl;
@@ -44,11 +46,10 @@
PojoComponentType<?, ?, ?> componentType = loader.loadByIntrospection(impl, null);
ServiceDefinition service = componentType.getServices().get("BasicInterface");
assertEquals(BasicInterface.class, service.getServiceContract().getInterfaceClass());
-// FIXME temporarily comment out until heuristic property and reference processor finished
-// Property<?> property = componentType.getProperties().get("publicProperty");
-// assertEquals(String.class, property.getJavaType());
-// ReferenceDefinition referenceDefinition = componentType.getReferences().get("publicReference");
-// assertEquals(BasicInterface.class, referenceDefinition.getServiceContract().getInterfaceClass());
+ Property<?> property = componentType.getProperties().get("publicProperty");
+ assertEquals(String.class, property.getJavaType());
+ ReferenceDefinition referenceDefinition = componentType.getReferences().get("protectedReference");
+ assertEquals(BasicInterface.class, referenceDefinition.getServiceContract().getInterfaceClass());
}
protected void setUp() throws Exception {
---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org