diff options
author | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2008-06-30 21:37:31 +0000 |
---|---|---|
committer | rfeng <rfeng@13f79535-47bb-0310-9956-ffa450edef68> | 2008-06-30 21:37:31 +0000 |
commit | f728f06486d700f7b7d318caac532aca4bd44b46 (patch) | |
tree | 9f48db3104803ed71503a4e5701384d7dd410309 | |
parent | 2515918a3959f4d2386c0f3f45859a261de8df55 (diff) |
Apply the patApply the patch from Wojtek for TUSCANY-2397. Thanks. (modules-dir.patch)
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@672933 13f79535-47bb-0310-9956-ffa450edef68
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 |