summaryrefslogtreecommitdiffstats
path: root/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test
diff options
context:
space:
mode:
Diffstat (limited to 'sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test')
-rw-r--r--sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/CometTestCase.java55
-rw-r--r--sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/StockService.java33
-rw-r--r--sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/StockServiceImpl.java44
-rw-r--r--sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/resources/test.composite37
4 files changed, 169 insertions, 0 deletions
diff --git a/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/CometTestCase.java b/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/CometTestCase.java
new file mode 100644
index 0000000000..56c6b9f4f1
--- /dev/null
+++ b/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/CometTestCase.java
@@ -0,0 +1,55 @@
+/*
+ * 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.test;
+
+import junit.framework.Assert;
+import junit.framework.TestCase;
+
+import org.apache.tuscany.sca.http.jetty.JettyServer;
+import org.apache.tuscany.sca.node.Contribution;
+import org.apache.tuscany.sca.node.ContributionLocationHelper;
+import org.apache.tuscany.sca.node.Node;
+import org.apache.tuscany.sca.node.NodeFactory;
+
+/**
+ * Test case for the comet binding.
+ */
+public class CometTestCase extends TestCase {
+
+ /**
+ * Test consisting in starting up a node containing services exposed via the
+ * comet binding.
+ */
+ public void testComet() {
+ JettyServer.portDefault = 8085;
+ try {
+ final String location = ContributionLocationHelper.getContributionLocation("test.composite");
+ final Node node = NodeFactory.newInstance().createNode("test.composite", new Contribution("c1", location));
+ node.start();
+ // System.out.println("Press any key to stop the node.");
+ // System.in.read();
+ node.stop();
+ } catch (final Exception e) {
+ e.printStackTrace();
+ Assert.fail();
+ }
+ }
+
+}
diff --git a/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/StockService.java b/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/StockService.java
new file mode 100644
index 0000000000..2c104611ff
--- /dev/null
+++ b/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/StockService.java
@@ -0,0 +1,33 @@
+/*
+ * 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.test;
+
+import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.OneWay;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Callback(CometCallback.class)
+@Remotable
+public interface StockService {
+
+ @OneWay
+ void subscribeForQuotes();
+
+}
diff --git a/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/StockServiceImpl.java b/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/StockServiceImpl.java
new file mode 100644
index 0000000000..bbbbbb78ba
--- /dev/null
+++ b/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/java/org/apache/tuscany/sca/test/StockServiceImpl.java
@@ -0,0 +1,44 @@
+/*
+ * 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.test;
+
+import java.text.DecimalFormat;
+import java.util.Date;
+import java.util.Random;
+
+import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Service;
+
+@Service(StockService.class)
+public class StockServiceImpl implements StockService {
+
+ @Callback
+ protected CometCallback callback;
+
+ public static final int MAX_VALUE = 1000;
+ private final Random random = new Random(new Date().getTime());
+
+ @Override
+ public void subscribeForQuotes() {
+ final Double value = Math.abs(this.random.nextDouble() * this.random.nextInt(StockServiceImpl.MAX_VALUE));
+ callback.sendMessage("ASF" + "#" + Double.valueOf(new DecimalFormat("#.##").format(value)));
+ }
+
+}
diff --git a/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/resources/test.composite b/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/resources/test.composite
new file mode 100644
index 0000000000..e2996d2572
--- /dev/null
+++ b/sca-java-2.x/branches/2.0/modules/binding-comet-runtime/src/test/resources/test.composite
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * 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.
+-->
+<composite xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200912"
+ xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
+ targetNamespace="http://samples"
+ name="Stock">
+
+ <component name="test">
+ <implementation.java class="org.apache.tuscany.sca.test.StockServiceImpl"/>
+ <service name="StockService">
+ <interface.java interface="org.apache.tuscany.sca.test.StockService"
+ callbackInterface="org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback"/>
+ <tuscany:binding.comet/>
+ <callback>
+ <tuscany:binding.comet/>
+ </callback>
+ </service>
+ </component>
+
+</composite> \ No newline at end of file