summaryrefslogtreecommitdiffstats
path: root/sandbox/fmoga/binding-comet-sample/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/fmoga/binding-comet-sample/src/main/java')
-rw-r--r--sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/Helper.java34
-rw-r--r--sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java31
-rw-r--r--sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java34
-rw-r--r--sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java61
-rw-r--r--sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java48
-rw-r--r--sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java34
-rw-r--r--sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/model/Location.java43
-rw-r--r--sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/model/Response.java45
8 files changed, 330 insertions, 0 deletions
diff --git a/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/Helper.java b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/Helper.java
new file mode 100644
index 0000000000..eecc6044ea
--- /dev/null
+++ b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/Helper.java
@@ -0,0 +1,34 @@
+/*
+ * 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.sample.comet;
+
+import java.util.Date;
+import java.util.Random;
+
+public final class Helper {
+
+ public static int randomInt(final int max) {
+ return (new Random(new Date().getTime()).nextInt(100));
+ }
+
+ private Helper() {
+ }
+
+}
diff --git a/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java
new file mode 100644
index 0000000000..00cbe73e82
--- /dev/null
+++ b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/HumidityService.java
@@ -0,0 +1,31 @@
+/*
+ * 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.sample.comet;
+
+import org.apache.tuscany.sca.sample.comet.model.Location;
+import org.apache.tuscany.sca.sample.comet.model.Response;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface HumidityService {
+
+ Response getHumidity(Location location);
+
+}
diff --git a/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java
new file mode 100644
index 0000000000..bbfc284377
--- /dev/null
+++ b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationService.java
@@ -0,0 +1,34 @@
+/*
+ * 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.sample.comet;
+
+import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
+import org.apache.tuscany.sca.sample.comet.model.Location;
+import org.apache.tuscany.sca.sample.comet.model.Response;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+@Callback(CometCallback.class)
+public interface PrecipitationService {
+
+ Response getPrecipitation(Location location);
+
+}
diff --git a/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java
new file mode 100644
index 0000000000..a22cadb620
--- /dev/null
+++ b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/PrecipitationServiceImpl.java
@@ -0,0 +1,61 @@
+/*
+ * 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.sample.comet;
+
+import java.util.Date;
+
+import org.apache.tuscany.sca.binding.comet.runtime.callback.CometCallback;
+import org.apache.tuscany.sca.sample.comet.model.Location;
+import org.apache.tuscany.sca.sample.comet.model.Response;
+import org.oasisopen.sca.ComponentContext;
+import org.oasisopen.sca.ServiceReference;
+import org.oasisopen.sca.annotation.Callback;
+import org.oasisopen.sca.annotation.Context;
+import org.oasisopen.sca.annotation.Service;
+
+@Service(PrecipitationService.class)
+public class PrecipitationServiceImpl implements PrecipitationService {
+
+ @Context
+ protected ComponentContext componentContext;
+
+// @Callback
+// protected CometCallback callback;
+
+ @Callback
+ protected ServiceReference<CometCallback> callbackRef;
+
+ @Override
+ public Response getPrecipitation(final Location location) {
+ System.out.println("Using @Context: " + componentContext.getRequestContext().getCallback());
+
+// System.out.println("Using @Callback: " + callback);
+
+ System.out.println("Using @Callback with ServiceReference: " + callbackRef);
+
+ // ----------------
+
+ final Response response = new Response();
+ response.setDate(new Date());
+ response.setData(Helper.randomInt(100) + "%");
+ return response;
+ }
+
+}
diff --git a/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
new file mode 100644
index 0000000000..55f935fa9f
--- /dev/null
+++ b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureHumidityServiceImpl.java
@@ -0,0 +1,48 @@
+/*
+ * 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.sample.comet;
+
+import java.util.Date;
+
+import org.apache.tuscany.sca.sample.comet.model.Location;
+import org.apache.tuscany.sca.sample.comet.model.Response;
+import org.oasisopen.sca.annotation.Service;
+
+@Service({TemperatureService.class, HumidityService.class})
+public class TemperatureHumidityServiceImpl implements TemperatureService, HumidityService {
+
+ @Override
+ public Response getHumidity(final Location location) {
+ final Response response = new Response();
+ response.setDate(new Date());
+ response.setData(Helper.randomInt(90) + "%");
+ return response;
+ }
+
+ @Override
+ public Response getTemperature(final Location location, final int scale) {
+ final Response response = new Response();
+ response.setDate(new Date());
+ final String data = "" + Helper.randomInt(scale == TemperatureService.CELSIUS ? 40 : 150);
+ response.setData(data);
+ return response;
+ }
+
+}
diff --git a/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java
new file mode 100644
index 0000000000..092988213b
--- /dev/null
+++ b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/TemperatureService.java
@@ -0,0 +1,34 @@
+/*
+ * 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.sample.comet;
+
+import org.apache.tuscany.sca.sample.comet.model.Location;
+import org.apache.tuscany.sca.sample.comet.model.Response;
+import org.oasisopen.sca.annotation.Remotable;
+
+@Remotable
+public interface TemperatureService {
+
+ public static final int CELSIUS = 1;
+ public static final int FAHRENHEIT = 2;
+
+ Response getTemperature(Location location, int scale);
+
+}
diff --git a/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/model/Location.java b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/model/Location.java
new file mode 100644
index 0000000000..ff2da3a360
--- /dev/null
+++ b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/model/Location.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.sample.comet.model;
+
+public class Location {
+
+ private String city;
+ private String country;
+
+ public String getCity() {
+ return this.city;
+ }
+
+ public void setCity(final String city) {
+ this.city = city;
+ }
+
+ public String getCountry() {
+ return this.country;
+ }
+
+ public void setCountry(final String country) {
+ this.country = country;
+ }
+
+}
diff --git a/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/model/Response.java b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/model/Response.java
new file mode 100644
index 0000000000..aaa23f0b8a
--- /dev/null
+++ b/sandbox/fmoga/binding-comet-sample/src/main/java/org/apache/tuscany/sca/sample/comet/model/Response.java
@@ -0,0 +1,45 @@
+/*
+ * 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.sample.comet.model;
+
+import java.util.Date;
+
+public class Response {
+
+ private Date date;
+ private String data;
+
+ public Date getDate() {
+ return this.date;
+ }
+
+ public void setDate(final Date date) {
+ this.date = date;
+ }
+
+ public String getData() {
+ return this.data;
+ }
+
+ public void setData(final String data) {
+ this.data = data;
+ }
+
+}