summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaInvoker.java5
-rw-r--r--java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java1
-rw-r--r--java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/service/DynaCorbaServant.java10
-rw-r--r--java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/types/TypeTreeCreator.java3
-rw-r--r--java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/types/util/Utils.java3
-rw-r--r--java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java4
-rw-r--r--java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java9
-rw-r--r--java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java9
-rw-r--r--java/sca/modules/host-corba-jdk/src/test/java/org/apache/tuscany/sca/host/corba/testing/DefaultCorbaHostTestCase.java62
9 files changed, 36 insertions, 70 deletions
diff --git a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaInvoker.java b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaInvoker.java
index dd06fdfdad..43c471d3bc 100644
--- a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaInvoker.java
+++ b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaInvoker.java
@@ -19,6 +19,7 @@
package org.apache.tuscany.sca.binding.corba.impl;
+import org.apache.tuscany.sca.binding.corba.impl.exceptions.RequestConfigurationException;
import org.apache.tuscany.sca.binding.corba.impl.reference.DynaCorbaRequest;
import org.apache.tuscany.sca.binding.corba.impl.reference.DynaCorbaResponse;
import org.apache.tuscany.sca.interfacedef.DataType;
@@ -60,8 +61,10 @@ public class CorbaInvoker implements Invoker {
}
DynaCorbaResponse response = request.invoke();
msg.setBody(response.getContent());
- } catch (Exception e) {
+ } catch (RequestConfigurationException e) {
throw new ServiceRuntimeException(e);
+ } catch (Exception e) {
+ msg.setFaultBody(e);
}
return msg;
}
diff --git a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java
index 9d4a93d1ac..ec752a1638 100644
--- a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java
+++ b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaServiceBindingProvider.java
@@ -59,6 +59,7 @@ public class CorbaServiceBindingProvider implements ServiceBindingProvider {
try {
this.orb = host.createORB(binding.getHost(), binding.getPort(), false);
servant = new DynaCorbaServant(service, binding);
+ servant.setIds(new String[] {binding.getId()});
host.registerServant(orb, binding.getName(), servant);
} catch (Exception e) {
throw new ServiceRuntimeException(e);
diff --git a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/service/DynaCorbaServant.java b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/service/DynaCorbaServant.java
index 6f7a736410..cece057baa 100644
--- a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/service/DynaCorbaServant.java
+++ b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/service/DynaCorbaServant.java
@@ -88,11 +88,13 @@ public class DynaCorbaServant extends ObjectImpl implements InvokeHandler {
}
public void setIds(String[] ids) {
- if (ids != null) {
- this.ids = ids;
- } else {
- this.ids = DEFAULT_IDS;
+ for (int i = 0; i < ids.length; i++) {
+ if (ids[i] == null || ids[i].length() == 0) {
+ this.ids = DEFAULT_IDS;
+ return;
+ }
}
+ this.ids = ids;
}
public OutputStream _invoke(String method, InputStream in, ResponseHandler rh) {
diff --git a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/types/TypeTreeCreator.java b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/types/TypeTreeCreator.java
index e0f60cc2bb..4a24e66778 100644
--- a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/types/TypeTreeCreator.java
+++ b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/types/TypeTreeCreator.java
@@ -316,7 +316,7 @@ public class TypeTreeCreator {
}
} catch (NoSuchMethodException e) {
}
- if (!isFromIntMethod && !isValueMethod) {
+ if (!isFromIntMethod || !isValueMethod) {
return false;
}
/*
@@ -345,6 +345,7 @@ public class TypeTreeCreator {
/**
* Tells whether given class is corba user exception
+ *
* @param forClass
* @return
*/
diff --git a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/types/util/Utils.java b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/types/util/Utils.java
index b9d07db61c..4c1467d3c3 100644
--- a/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/types/util/Utils.java
+++ b/java/sca/modules/binding-corba-runtime/src/main/java/org/apache/tuscany/sca/binding/corba/impl/types/util/Utils.java
@@ -29,9 +29,6 @@ public class Utils {
public static String getExceptionId(Class<?> forClass) {
String result = forClass.getName().replace('.', '/');
result = result.replaceAll("Package", "");
- if (result.endsWith("Exception")) {
- result = result.substring(0, result.length() - "Exception".length());
- }
result = "IDL:" + result + ":1.0";
return result;
}
diff --git a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java
index 3fcff6b0d8..667bfa361b 100644
--- a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java
+++ b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/CorbaBinding.java
@@ -37,4 +37,8 @@ public interface CorbaBinding extends Binding {
int getPort();
void setPort(int port);
+
+ String getId();
+
+ void setId(String id);
}
diff --git a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java
index 8d54cd4936..c98b41549b 100644
--- a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java
+++ b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingImpl.java
@@ -36,6 +36,7 @@ public class CorbaBindingImpl implements CorbaBinding, PolicySetAttachPoint {
private String uri;
private String host;
private int port;
+ private String id;
private List<Intent> requiredIntents = new ArrayList<Intent>();
private List<PolicySet> policySets = new ArrayList<PolicySet>();
@@ -115,4 +116,12 @@ public class CorbaBindingImpl implements CorbaBinding, PolicySetAttachPoint {
return super.clone();
}
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
}
diff --git a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java
index ce227bed1c..53333bd7aa 100644
--- a/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java
+++ b/java/sca/modules/binding-corba/src/main/java/org/apache/tuscany/sca/binding/corba/impl/CorbaBindingProcessor.java
@@ -80,6 +80,11 @@ public class CorbaBindingProcessor implements StAXArtifactProcessor<CorbaBinding
if (uri != null) {
binding.setURI(uri);
}
+ // Read CORBA id
+ String id = reader.getAttributeValue(null, "id");
+ if (id != null) {
+ binding.setId(id);
+ }
return binding;
}
@@ -105,6 +110,10 @@ public class CorbaBindingProcessor implements StAXArtifactProcessor<CorbaBinding
if (model.getPort() != -1) {
writer.writeAttribute("port", String.valueOf(model.getPort()));
}
+
+ if (model.getId() != null) {
+ writer.writeAttribute("id", model.getId());
+ }
writer.writeEndElement();
}
diff --git a/java/sca/modules/host-corba-jdk/src/test/java/org/apache/tuscany/sca/host/corba/testing/DefaultCorbaHostTestCase.java b/java/sca/modules/host-corba-jdk/src/test/java/org/apache/tuscany/sca/host/corba/testing/DefaultCorbaHostTestCase.java
index 96265a318e..e0dd464ade 100644
--- a/java/sca/modules/host-corba-jdk/src/test/java/org/apache/tuscany/sca/host/corba/testing/DefaultCorbaHostTestCase.java
+++ b/java/sca/modules/host-corba-jdk/src/test/java/org/apache/tuscany/sca/host/corba/testing/DefaultCorbaHostTestCase.java
@@ -23,8 +23,6 @@ import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertTrue;
import static junit.framework.Assert.fail;
-import java.io.IOException;
-
import org.apache.tuscany.sca.host.corba.CorbaHost;
import org.apache.tuscany.sca.host.corba.CorbaHostException;
import org.apache.tuscany.sca.host.corba.jdk.DefaultCorbaHost;
@@ -46,67 +44,9 @@ public class DefaultCorbaHostTestCase {
private static final String LOCALHOST = "localhost";
private static final int DEFAULT_PORT = 11100; //1050;
- private static final long INTERVAL = 500;
-
- private static Process tn;
+
private static CorbaHost host;
- /**
- * Spawn tnameserv under given port
- *
- * @param port
- * @return
- * @throws IOException
- */
- private static Process spawnTnameserv(int port) throws IOException {
- Process process = Runtime.getRuntime().exec("tnameserv -ORBInitialPort " + port);
- for (int i = 0; i < 3; i++) {
- try {
- // Thread.sleep(SPAWN_TIME);
- String[] args = {"-ORBInitialHost", LOCALHOST, "-ORBInitialPort", "" + port};
- ORB orb = ORB.init(args, null);
- orb.resolve_initial_references("NameService");
- break;
- } catch (Throwable e) {
- try {
- Thread.sleep(INTERVAL);
- } catch (InterruptedException e1) {
- // Ignore
- }
- }
- }
- return process;
- }
-
- /**
- * Kill previously spawned tnameserv
- *
- * @param p
- */
- private static void killProcess(Process p) {
- if (p != null) {
- p.destroy();
- }
- }
-
- /*
- @BeforeClass
- public static void start() {
- try {
- tn = spawnTnameserv(DEFAULT_PORT);
- host = new DefaultCorbaHost();
- } catch (Throwable e) {
- e.printStackTrace();
- fail(e.getMessage());
- }
- }
-
- @AfterClass
- public static void stop() {
- killProcess(tn);
- }
- */
-
private static TransientNameServer server;
@BeforeClass