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 2006/09/09 03:13:48 UTC
svn commit: r441719 -
/incubator/tuscany/java/sca/kernel/core/src/main/java/org/apache/tuscany/core/builder/ConnectorImpl.java
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: tuscany-commits-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-commits-help@ws.apache.org