Author: jmarino
Date: Fri Oct 6 12:36:54 2006
New Revision: 453741
URL: http://svn.apache.org/viewvc?view=rev&rev=453741
Log:
add test cases for abstract invocation handlers now that they moved to SPI;
checkstyle cleanup
Added:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java
(with props)
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java
(with props)
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingJavaInterfaceProcessor.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/StringParserPropertyFactoryTestCase.java
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/property/SimplePropertyObjectFactoryTestCase.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingJavaInterfaceProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingJavaInterfaceProcessor.java?view=diff&rev=453741&r1=453740&r2=453741
==============================================================================
---
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingJavaInterfaceProcessor.java
(original)
+++
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/databinding/impl/DataBindingJavaInterfaceProcessor.java
Fri Oct 6 12:36:54 2006
@@ -47,8 +47,8 @@
private static final String SIMPLE_JAVA_OBJECTS = "java.lang.Object";
private static final Class[] SIMPLE_JAVA_TYPES =
- {Byte.class, Character.class, Short.class, Integer.class, Long.class,
Float.class, Double.class,
- Date.class, Calendar.class, GregorianCalendar.class, Duration.class,
XMLGregorianCalendar.class};
+ {Byte.class, Character.class, Short.class, Integer.class,
Long.class, Float.class, Double.class,
+ Date.class, Calendar.class, GregorianCalendar.class,
Duration.class, XMLGregorianCalendar.class};
private static final Set<Class> SIMPLE_TYPE_SET = new
HashSet<Class>(Arrays.asList(SIMPLE_JAVA_TYPES));
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java?view=diff&rev=453741&r1=453740&r2=453741
==============================================================================
---
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
(original)
+++
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/loader/ComponentLoader.java
Fri Oct 6 12:36:54 2006
@@ -18,22 +18,21 @@
*/
package org.apache.tuscany.core.loader;
-import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
-import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
-import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
-
import java.net.URI;
import java.net.URISyntaxException;
import java.util.Map;
-
import javax.xml.namespace.QName;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.ParserConfigurationException;
+import static javax.xml.stream.XMLStreamConstants.END_ELEMENT;
+import static javax.xml.stream.XMLStreamConstants.START_ELEMENT;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamReader;
-import
org.apache.tuscany.core.implementation.system.model.SystemImplementation;
-import org.apache.tuscany.core.property.SimplePropertyObjectFactory;
+import org.w3c.dom.Document;
+import static org.osoa.sca.Version.XML_NAMESPACE_1_0;
+import org.osoa.sca.annotations.Constructor;
+
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.annotation.Autowire;
import org.apache.tuscany.spi.component.CompositeComponent;
@@ -58,12 +57,13 @@
import org.apache.tuscany.spi.model.Property;
import org.apache.tuscany.spi.model.PropertyValue;
import org.apache.tuscany.spi.model.ReferenceTarget;
-import org.osoa.sca.annotations.Constructor;
-import org.w3c.dom.Document;
+
+import
org.apache.tuscany.core.implementation.system.model.SystemImplementation;
+import org.apache.tuscany.core.property.SimplePropertyObjectFactory;
/**
* Loads a component definition from an XML-based assembly file
- *
+ *
* @version $Rev$ $Date$
*/
public class ComponentLoader extends LoaderExtension<ComponentDefinition<?>> {
@@ -74,10 +74,10 @@
private static final String PROPERTY_FILE_ATTR = "file";
private static final String PROPERTY_NAME_ATTR = "name";
private static final String PROPERTY_SOURCE_ATTR = "source";
-
+
private PropertyObjectFactory propertyFactory;
- @Constructor( {"registry", "propertyFactory"})
+ @Constructor({"registry", "propertyFactory"})
public ComponentLoader(@Autowire LoaderRegistry registry, @Autowire
PropertyObjectFactory propertyFactory) {
super(registry);
this.propertyFactory = propertyFactory;
@@ -101,8 +101,8 @@
propertyValue.setValue(aProperty.getDefaultValue());
//
propertyValue.setValueFactory(aProperty.getDefaultValueFactory());
propertyValue.setValueFactory(new
SimplePropertyObjectFactory(aProperty,
-
propertyValue
-
.getValue()));
+ propertyValue
+ .getValue()));
propertyValues.put(aProperty.getName(), propertyValue);
}
}
@@ -117,7 +117,7 @@
public ComponentDefinition<?> load(CompositeComponent parent,
XMLStreamReader reader,
DeploymentContext deploymentContext)
throws XMLStreamException,
- LoaderException {
+
LoaderException {
assert COMPONENT.equals(reader.getName());
String name = reader.getAttributeValue(null, "name");
String initLevel = reader.getAttributeValue(null, "initLevel");
@@ -158,7 +158,8 @@
case END_ELEMENT:
if (reader.getName().equals(COMPONENT)) {
// hack to leave alone SystemImplementation
- if
(!((Implementation)componentDefinition.getImplementation() instanceof
SystemImplementation)) {
+ if (!((Implementation) componentDefinition
+ .getImplementation() instanceof
SystemImplementation)) {
populatePropertyValues(componentDefinition);
}
@@ -182,13 +183,13 @@
if (!(o instanceof Implementation)) {
throw new MissingImplementationException();
}
- return (Implementation<?>)o;
+ return (Implementation<?>) o;
}
protected void loadProperty(XMLStreamReader reader,
DeploymentContext deploymentContext,
ComponentDefinition<?> componentDefinition)
throws XMLStreamException,
- LoaderException {
+
LoaderException {
String name = reader.getAttributeValue(null, PROPERTY_NAME_ATTR);
Implementation<?> implementation =
componentDefinition.getImplementation();
ComponentType<?, ?, ?> componentType =
implementation.getComponentType();
@@ -222,7 +223,7 @@
protected void loadReference(XMLStreamReader reader,
DeploymentContext deploymentContext,
ComponentDefinition<?> componentDefinition)
throws XMLStreamException,
- LoaderException {
+
LoaderException {
String name = reader.getAttributeValue(null, "name");
String text = reader.getElementText();
String target = text != null ? text.trim() : null;
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java?view=diff&rev=453741&r1=453740&r2=453741
==============================================================================
---
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java
(original)
+++
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/property/PropertyHelper.java
Fri Oct 6 12:36:54 2006
@@ -49,7 +49,7 @@
/**
* The property factory backed by the DataBindingframework
*/
-public class PropertyHelper {
+public final class PropertyHelper {
private static final XPathFactory FACTORY = XPathFactory.newInstance();
Modified:
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/StringParserPropertyFactoryTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/StringParserPropertyFactoryTestCase.java?view=diff&rev=453741&r1=453740&r2=453741
==============================================================================
---
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/StringParserPropertyFactoryTestCase.java
(original)
+++
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/loader/StringParserPropertyFactoryTestCase.java
Fri Oct 6 12:36:54 2006
@@ -18,7 +18,8 @@
*/
package org.apache.tuscany.core.loader;
-import javax.xml.stream.XMLStreamReader;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.model.Property;
@@ -26,8 +27,6 @@
import junit.framework.TestCase;
import org.easymock.EasyMock;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
/**
* @version $Rev$ $Date$
Modified:
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/property/SimplePropertyObjectFactoryTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/property/SimplePropertyObjectFactoryTestCase.java?view=diff&rev=453741&r1=453740&r2=453741
==============================================================================
---
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/property/SimplePropertyObjectFactoryTestCase.java
(original)
+++
incubator/tuscany/java/sca/kernel/core/src/test/java/org/apache/tuscany/core/property/SimplePropertyObjectFactoryTestCase.java
Fri Oct 6 12:36:54 2006
@@ -18,15 +18,15 @@
*/
package org.apache.tuscany.core.property;
-import junit.framework.TestCase;
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
-import org.apache.tuscany.core.property.PropertyObjectFactoryImpl;
import org.apache.tuscany.spi.ObjectFactory;
import org.apache.tuscany.spi.model.Property;
import org.apache.tuscany.spi.model.PropertyValue;
+
+import junit.framework.TestCase;
import org.easymock.EasyMock;
-import org.w3c.dom.Document;
-import org.w3c.dom.Element;
/**
* @version $Rev$ $Date$
Modified:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java?view=diff&rev=453741&r1=453740&r2=453741
==============================================================================
---
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java
(original)
+++
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/implementation/java/AbstractPropertyProcessor.java
Fri Oct 6 12:36:54 2006
@@ -109,7 +109,8 @@
}
public <T> void visitConstructor(CompositeComponent parent, Constructor<T>
constructor,
- PojoComponentType<JavaMappedService,
JavaMappedReference, JavaMappedProperty<?>> type,
+ PojoComponentType<JavaMappedService,
+ JavaMappedReference,
JavaMappedProperty<?>> type,
DeploymentContext context) throws
ProcessingException {
ConstructorDefinition<?> definition = type.getConstructorDefinition();
Modified:
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java?view=diff&rev=453741&r1=453740&r2=453741
==============================================================================
---
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java
(original)
+++
incubator/tuscany/java/sca/kernel/spi/src/main/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandler.java
Fri Oct 6 12:36:54 2006
@@ -34,11 +34,12 @@
if (headInterceptor == null) {
try {
// short-circuit the dispatch and invoke the target directly
- if (chain.getTargetInvoker() == null) {
+ TargetInvoker targetInvoker = chain.getTargetInvoker();
+ if (targetInvoker == null) {
String name = chain.getOperation().getName();
throw new AssertionError("No target invoker [" + name +
"]");
}
- return chain.getTargetInvoker().invokeTarget(args);
+ return targetInvoker.invokeTarget(args);
} catch (InvocationTargetException e) {
// the cause was thrown by the target so throw it
throw e.getCause();
Added:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java?view=auto&rev=453741
==============================================================================
---
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java
(added)
+++
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java
Fri Oct 6 12:36:54 2006
@@ -0,0 +1,62 @@
+package org.apache.tuscany.spi.wire;
+
+import java.lang.reflect.Array;
+
+import junit.framework.TestCase;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class AbstractInboundInvocationHandlerTestCase extends TestCase {
+
+ public void testInvocation() throws Throwable {
+ InvocationHandler handler = new InvocationHandler();
+ Interceptor interceptor = new MockInterceptor();
+ TargetInvoker invoker = EasyMock.createMock(TargetInvoker.class);
+ EasyMock.replay(invoker);
+ InboundInvocationChain chain =
EasyMock.createMock(InboundInvocationChain.class);
+ EasyMock.expect(chain.getHeadInterceptor()).andReturn(interceptor);
+ EasyMock.replay(chain);
+ Object resp = handler.invoke(chain, invoker, new String[]{"foo"});
+ assertEquals("response", resp);
+ }
+
+
+ private class InvocationHandler extends AbstractInboundInvocationHandler {
+
+ protected Object getMessageId() {
+ return new Object();
+ }
+
+ protected Object getCorrelationId() {
+ return new Object();
+ }
+ }
+
+ private class MockInterceptor implements Interceptor {
+
+ public Message invoke(Message msg) {
+ assertNotNull(msg.getCorrelationId());
+ assertNotNull(msg.getTargetInvoker());
+ assertNotNull(msg.getMessageId());
+ assertEquals("foo", Array.get(msg.getBody(), 0));
+ msg.setBody("response");
+ return msg;
+ }
+
+ public void setNext(Interceptor next) {
+
+ }
+
+ public Interceptor getNext() {
+ return null;
+ }
+
+ public boolean isOptimizable() {
+ return false;
+ }
+ }
+
+
+}
\ No newline at end of file
Propchange:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractInboundInvocationHandlerTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java?view=auto&rev=453741
==============================================================================
---
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java
(added)
+++
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java
Fri Oct 6 12:36:54 2006
@@ -0,0 +1,108 @@
+package org.apache.tuscany.spi.wire;
+
+import java.lang.reflect.Array;
+import java.lang.reflect.InvocationTargetException;
+
+import junit.framework.TestCase;
+import org.easymock.EasyMock;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class AbstractOutboundInvocationHandlerTestCase extends TestCase {
+
+ public void testInvocation() throws Throwable {
+ InvocationHandler handler = new InvocationHandler();
+ Interceptor interceptor = new MockInterceptor();
+ TargetInvoker invoker = EasyMock.createMock(TargetInvoker.class);
+ EasyMock.replay(invoker);
+ OutboundInvocationChain chain =
EasyMock.createMock(OutboundInvocationChain.class);
+ EasyMock.expect(chain.getHeadInterceptor()).andReturn(interceptor);
+ EasyMock.replay(chain);
+ Object resp = handler.invoke(chain, invoker, new String[]{"foo"});
+ assertEquals("response", resp);
+ }
+
+ public void testShortCircuitInvocation() throws Throwable {
+ InvocationHandler handler = new InvocationHandler();
+ TargetInvoker invoker = new MockInvoker();
+ OutboundInvocationChain chain =
EasyMock.createMock(OutboundInvocationChain.class);
+ EasyMock.expect(chain.getHeadInterceptor()).andReturn(null);
+ EasyMock.expect(chain.getTargetInvoker()).andReturn(invoker);
+ EasyMock.replay(chain);
+ Object resp = handler.invoke(chain, invoker, new String[]{"foo"});
+ assertEquals("response", resp);
+ }
+
+
+ private class MockInvoker implements TargetInvoker {
+
+ public Object invokeTarget(final Object payload) throws
InvocationTargetException {
+ assertEquals("foo", Array.get(payload, 0));
+ return "response";
+ }
+
+ public Message invoke(Message msg) throws InvocationRuntimeException {
+ fail();
+ return null;
+ }
+
+ public boolean isCacheable() {
+ return false;
+ }
+
+ public void setCacheable(boolean cacheable) {
+
+ }
+
+ public boolean isOptimizable() {
+ return false;
+ }
+
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+ }
+
+ private class InvocationHandler extends AbstractOutboundInvocationHandler {
+
+ protected Object getFromAddress() {
+ return new Object();
+ }
+
+ protected Object getMessageId() {
+ return new Object();
+ }
+
+ protected Object getCorrelationId() {
+ return new Object();
+ }
+ }
+
+ private class MockInterceptor implements Interceptor {
+
+ public Message invoke(Message msg) {
+ assertNotNull(msg.getCorrelationId());
+ assertNotNull(msg.getTargetInvoker());
+ assertNotNull(msg.getMessageId());
+ assertNotNull(msg.getFromAddress());
+ assertEquals("foo", Array.get(msg.getBody(), 0));
+ msg.setBody("response");
+ return msg;
+ }
+
+ public void setNext(Interceptor next) {
+
+ }
+
+ public Interceptor getNext() {
+ return null;
+ }
+
+ public boolean isOptimizable() {
+ return false;
+ }
+ }
+
+
+}
Propchange:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange:
incubator/tuscany/java/sca/kernel/spi/src/test/java/org/apache/tuscany/spi/wire/AbstractOutboundInvocationHandlerTestCase.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]