Author: rfeng
Date: Fri Sep 8 18:13:47 2006
New Revision: 441719
URL: http://svn.apache.org/viewvc?view=rev&rev=441719
Log:
Use WireService to test wireability
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
Modified:
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
URL:
http://svn.apache.org/viewvc/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java?view=diff&rev=441719&r1=441718&r2=441719
==============================================================================
---
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
(original)
+++
incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
Fri Sep 8 18:13:47 2006
@@ -354,32 +354,32 @@
e.setIdentifier(targetName.getPortName());
throw e;
}
- if (wireService == null) {
- // FIXME: [rfeng] wireService won't be injected for the system
connector?
- Class sourceInterface =
sourceWire.getServiceContract().getInterfaceClass();
- Class targetInterface =
targetWire.getServiceContract().getInterfaceClass();
- if (!sourceInterface.isAssignableFrom(targetInterface)) {
- throw new BuilderConfigException("Incompatible source and
target interfaces");
- }
- } else if
(!wireService.isWireable(sourceWire.getServiceContract(),
targetWire.getServiceContract())) {
- throw new BuilderConfigException("Incompatible source and
target interfaces");
- }
+ checkIfWireable(sourceWire, targetWire);
boolean optimizable = isOptimizable(source.getScope(),
target.getScope());
connect(source, target, sourceWire, targetWire, optimizable);
} else if (target instanceof Reference) {
InboundWire<T> targetWire = ((Reference) target).getInboundWire();
assert targetWire != null;
- Class sourceInterface =
sourceWire.getServiceContract().getInterfaceClass();
- Class targetInterface =
targetWire.getServiceContract().getInterfaceClass();
- if (!sourceInterface.isAssignableFrom(targetInterface)) {
- throw new BuilderConfigException("Incompatible source and
target interfaces");
- }
+ checkIfWireable(sourceWire, targetWire);
boolean optimizable = isOptimizable(source.getScope(),
target.getScope());
connect(source, target, sourceWire, targetWire, optimizable);
} else {
String name = sourceWire.getReferenceName();
BuilderConfigException e = new BuilderConfigException("Invalid
target type for reference " + name);
e.setIdentifier(targetName.getQualifiedName());
+ }
+ }
+
+ private <T> void checkIfWireable(OutboundWire<T> sourceWire,
InboundWire<T> targetWire) {
+ if (wireService == null) {
+ // FIXME: [rfeng] wireService won't be injected for the system
connector?
+ Class sourceInterface =
sourceWire.getServiceContract().getInterfaceClass();
+ Class targetInterface =
targetWire.getServiceContract().getInterfaceClass();
+ if (!sourceInterface.isAssignableFrom(targetInterface)) {
+ throw new BuilderConfigException("Incompatible source and
target interfaces");
+ }
+ } else if (!wireService.isWireable(sourceWire.getServiceContract(),
targetWire.getServiceContract())) {
+ throw new BuilderConfigException("Incompatible source and target
interfaces");
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]