diff options
Diffstat (limited to '')
7 files changed, 116 insertions, 3 deletions
diff --git a/sandbox/event/samples/event-jms/src/main/java/weather/WeatherPublisher.java b/sandbox/event/samples/event-jms/src/main/java/weather/WeatherPublisher.java index c2de66e7d1..c67314c65b 100644 --- a/sandbox/event/samples/event-jms/src/main/java/weather/WeatherPublisher.java +++ b/sandbox/event/samples/event-jms/src/main/java/weather/WeatherPublisher.java @@ -28,5 +28,7 @@ public interface WeatherPublisher { @EventTypes("ExampleEvent") void publishWeatherReport(String report); + + void publishWeatherWarning(WeatherWarning warning); } diff --git a/sandbox/event/samples/event-jms/src/main/java/weather/WeatherPublisherComponent.java b/sandbox/event/samples/event-jms/src/main/java/weather/WeatherPublisherComponent.java index d976454cb9..c209b39b94 100644 --- a/sandbox/event/samples/event-jms/src/main/java/weather/WeatherPublisherComponent.java +++ b/sandbox/event/samples/event-jms/src/main/java/weather/WeatherPublisherComponent.java @@ -36,8 +36,16 @@ public class WeatherPublisherComponent implements WeatherService { public void start() { System.out.println("weatherPublisher code - start() called"); try { + + WeatherWarning warning = new WeatherWarning(); + warning.setWarning("Heavy rains expected"); + warning.setReportTime(new Date().toString()); + weatherPublisher.publishWeatherWarning(warning); + + for (int i = 0; i < 1; i++) { generateWeatherReport(); + Thread.sleep(500); } } catch (InterruptedException e) { diff --git a/sandbox/event/samples/event-jms/src/main/java/weather/WeatherSubscriber.java b/sandbox/event/samples/event-jms/src/main/java/weather/WeatherSubscriber.java new file mode 100644 index 0000000000..c8cfa06f7a --- /dev/null +++ b/sandbox/event/samples/event-jms/src/main/java/weather/WeatherSubscriber.java @@ -0,0 +1,26 @@ +/* + * 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 weather; + +/** + * The interface for the weather service + */ +public interface WeatherSubscriber { + public int[] getMessageList(); +} diff --git a/sandbox/event/samples/event-jms/src/main/java/weather/WeatherSubscriberComponent.java b/sandbox/event/samples/event-jms/src/main/java/weather/WeatherSubscriberComponent.java index 89920dc31b..314f245e3e 100644 --- a/sandbox/event/samples/event-jms/src/main/java/weather/WeatherSubscriberComponent.java +++ b/sandbox/event/samples/event-jms/src/main/java/weather/WeatherSubscriberComponent.java @@ -23,19 +23,49 @@ import java.util.Date; import org.osoa.sca.annotations.Consumer; import org.osoa.sca.annotations.Remotable; import org.osoa.sca.annotations.EventTypes; +import org.osoa.sca.annotations.Scope; +import org.osoa.sca.annotations.Service; /** * The WeatherService subscriber implementation - receives weather reports and prints it on stdout */ @Remotable -public class WeatherSubscriberComponent { +@Scope("COMPOSITE") +@Service(WeatherSubscriber.class) +public class WeatherSubscriberComponent implements WeatherSubscriber { + + private int[] messagesReceivedList = new int[3]; @Consumer(name="weatherSubscriber") @EventTypes("ExampleEvent") public void onWeather(String report) { System.out.println("Weather report received at " + new Date() + ": " + report); + + messagesReceivedList[0]++; + } + + + @Consumer(name="weatherSubscriber") + @EventTypes("WeatherWarning") + public void onWeatherWarning(WeatherWarning warning) { + System.out.println("WEATHER WARNING received at " + new Date() + ": " + warning); + + messagesReceivedList[1]++; + } + + @Consumer(name="weatherSubscriber") + public void onWeatherInfo(String info) { + System.out.println("Weather info received at " + new Date() + ": " + info); + + messagesReceivedList[2]++; } + + public int[] getMessageList() { + return messagesReceivedList; + } + + }
\ No newline at end of file diff --git a/sandbox/event/samples/event-jms/src/main/java/weather/WeatherWarning.java b/sandbox/event/samples/event-jms/src/main/java/weather/WeatherWarning.java new file mode 100644 index 0000000000..72b328bab2 --- /dev/null +++ b/sandbox/event/samples/event-jms/src/main/java/weather/WeatherWarning.java @@ -0,0 +1,32 @@ +package weather; + +import java.io.Serializable; + +import org.osoa.sca.annotations.EventType; + +@EventType(name="WeatherWarning") +public class WeatherWarning implements Serializable { + + private static final long serialVersionUID = 1; + + private String reportTime; + private String warning; + + public String getReportTime() { + return reportTime; + } + public void setReportTime(String reportTime) { + this.reportTime = reportTime; + } + public String getWarning() { + return warning; + } + public void setWarning(String warning) { + this.warning = warning; + } + + public String toString() { + return warning; + } + +} diff --git a/sandbox/event/samples/event-jms/src/main/resources/weatherPublisher.composite b/sandbox/event/samples/event-jms/src/main/resources/weatherPublisher.composite index 89064a7f0d..12cc36da90 100644 --- a/sandbox/event/samples/event-jms/src/main/resources/weatherPublisher.composite +++ b/sandbox/event/samples/event-jms/src/main/resources/weatherPublisher.composite @@ -31,10 +31,14 @@ <producer name="weatherPublisher" eventTypes="WeatherEvent">
+ <tuscany:binding.event/>
+ <!--
<binding.jms initialContextFactory="org.apache.activemq.jndi.ActiveMQInitialContextFactory"
- jndiURL="tcp://localhost:61619">
+ jndiURL="tcp://localhost:61619"
+ messageProcessor="org.apache.tuscany.sca.binding.jms.provider.ObjectMessageProcessor">
<destination name="WeatherQueue" create="ifnotexist"/>
</binding.jms>
+ -->
</producer>
</component>
@@ -51,6 +55,9 @@ <component name="WeatherSubscriberComponent2">
<implementation.java class="weather.WeatherSubscriberComponent"/>
+ <service name="WeatherSubscriber">
+ <interface.java interface="weather.WeatherSubscriber"/>
+ </service>
<consumer name="weatherSubscriber"/>
</component>
diff --git a/sandbox/event/samples/event-jms/src/main/resources/weatherSubscriber.composite b/sandbox/event/samples/event-jms/src/main/resources/weatherSubscriber.composite index 2166def160..09f0b741e3 100644 --- a/sandbox/event/samples/event-jms/src/main/resources/weatherSubscriber.composite +++ b/sandbox/event/samples/event-jms/src/main/resources/weatherSubscriber.composite @@ -26,12 +26,20 @@ <component name="WeatherSubscriberComponent">
<implementation.java class="weather.WeatherSubscriberComponent"/>
+ <service name="WeatherSubscriber">
+ <interface.java interface="weather.WeatherSubscriber"/>
+ </service>
+
<consumer name="weatherSubscriber" eventTypes="WeatherEvent">
+ <tuscany:binding.event/>
+ <!--
<binding.jms initialContextFactory="org.apache.activemq.jndi.ActiveMQInitialContextFactory"
- jndiURL="tcp://localhost:61619">
+ jndiURL="tcp://localhost:61619"
+ messageProcessor="org.apache.tuscany.sca.binding.jms.provider.ObjectMessageProcessor">
<destination name="WeatherQueue" create="ifnotexist"/>
</binding.jms>
+ -->
</consumer>
</component>
|