summaryrefslogtreecommitdiffstats
path: root/java/sca/modules/binding-sca
diff options
context:
space:
mode:
authorantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2008-09-02 09:00:39 +0000
committerantelder <antelder@13f79535-47bb-0310-9956-ffa450edef68>2008-09-02 09:00:39 +0000
commite5dcdcc839e636cdc88ce8d4d5c41c183a73f56b (patch)
tree8a4a5257925aeb3b6219bd76a28d055fbf0a2db9 /java/sca/modules/binding-sca
parent36eecb1a08a817605dcc81d949921123d3e23487 (diff)
Add an interim workaround for TUSCANY-2578 - a pluggable mechanism so sca binding impls add their own code to the decision on whether or not to use the remote binding provider. Just a work around fix for now so i can make progress
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@691162 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'java/sca/modules/binding-sca')
-rw-r--r--java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RemoteBindingHelper.java43
-rw-r--r--java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAReferenceBindingProvider.java4
-rw-r--r--java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAServiceBindingProvider.java2
3 files changed, 47 insertions, 2 deletions
diff --git a/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RemoteBindingHelper.java b/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RemoteBindingHelper.java
new file mode 100644
index 0000000000..86629fb378
--- /dev/null
+++ b/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RemoteBindingHelper.java
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.tuscany.sca.binding.sca.impl;
+
+/**
+ * TODO: TUSCANY-2578, implement a pluggable mechanism so sca binding impls can
+ * add their own code to the decision on whether or not to use
+ * the remote binding provider.
+ */
+public class RemoteBindingHelper {
+
+ private static boolean alwaysRemote;
+ static {
+ try {
+ Class.forName("org.apache.tuscany.sca.binding.sca.jms.JMSSCABindingProviderFactory");
+ alwaysRemote = true;
+ } catch (ClassNotFoundException e) {
+ alwaysRemote = false;
+ }
+ }
+
+ public static boolean isTargetRemote() {
+ return alwaysRemote;
+ }
+
+}
diff --git a/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAReferenceBindingProvider.java b/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAReferenceBindingProvider.java
index dc61dbded7..e3fc31a183 100644
--- a/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAReferenceBindingProvider.java
+++ b/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAReferenceBindingProvider.java
@@ -95,7 +95,9 @@ public class RuntimeSCAReferenceBindingProvider implements ReferenceBindingProvi
// act as though there is a local wire and sometimes as if there is a remote wire
// what are the implications of this here?
- if (optimizableBinding.getTargetComponentService() != null) {
+ if (RemoteBindingHelper.isTargetRemote()) {
+ targetIsRemote = true;
+ } else if (optimizableBinding.getTargetComponentService() != null) {
if (optimizableBinding.getTargetComponentService().isUnresolved() == true) {
targetIsRemote = true;
} else {
diff --git a/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAServiceBindingProvider.java b/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAServiceBindingProvider.java
index a0a3857ff7..8994ba5381 100644
--- a/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAServiceBindingProvider.java
+++ b/java/sca/modules/binding-sca/src/main/java/org/apache/tuscany/sca/binding/sca/impl/RuntimeSCAServiceBindingProvider.java
@@ -76,7 +76,7 @@ public class RuntimeSCAServiceBindingProvider implements ServiceBindingProvider
}
- if ((serviceURI != null) && (serviceURI.isAbsolute())) {
+ if (RemoteBindingHelper.isTargetRemote() || ((serviceURI != null) && (serviceURI.isAbsolute()))) {
// create a nested provider to handle the remote case
distributedBinding = new DistributedSCABindingImpl();