summaryrefslogtreecommitdiffstats
path: root/sandbox/travelsample/contributions/flight-contribution/src/main/java/scatours/flight/FlightImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'sandbox/travelsample/contributions/flight-contribution/src/main/java/scatours/flight/FlightImpl.java')
-rw-r--r--sandbox/travelsample/contributions/flight-contribution/src/main/java/scatours/flight/FlightImpl.java27
1 files changed, 21 insertions, 6 deletions
diff --git a/sandbox/travelsample/contributions/flight-contribution/src/main/java/scatours/flight/FlightImpl.java b/sandbox/travelsample/contributions/flight-contribution/src/main/java/scatours/flight/FlightImpl.java
index e2f945b392..307c740ca1 100644
--- a/sandbox/travelsample/contributions/flight-contribution/src/main/java/scatours/flight/FlightImpl.java
+++ b/sandbox/travelsample/contributions/flight-contribution/src/main/java/scatours/flight/FlightImpl.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
import java.util.List;
import org.osoa.sca.annotations.Callback;
+import org.osoa.sca.annotations.ComponentName;
import org.osoa.sca.annotations.Init;
import org.osoa.sca.annotations.Scope;
import org.osoa.sca.annotations.Service;
@@ -35,7 +36,7 @@ import scatours.common.TripLeg;
/**
* An implementation of the Hotel service
*/
-@Scope("STATELESS")
+@Scope("CONVERSATION")
@Service(interfaces={Search.class, Book.class})
public class FlightImpl implements Search, Book {
@@ -43,6 +44,11 @@ public class FlightImpl implements Search, Book {
@Callback
protected SearchCallback searchCallback;
+
+ @ComponentName
+ protected String componentName;
+
+ protected int percentComplete = 0;
@Init
public void init() {
@@ -118,16 +124,25 @@ public class FlightImpl implements Search, Book {
public void searchAsynch(TripLeg tripLeg) {
System.out.println("Starting flight search");
- try {
- this.wait(3000);
- } catch(Exception ex){
- // do nothing
+ // pretend that this processing takes some time to complete
+ while ( percentComplete < 100 ){
+ try {
+ Thread.sleep(50);
+ } catch(Exception ex){
+ // do nothing
+ }
+ percentComplete = percentComplete + 10;
+ searchCallback.setPercentComplete(componentName, percentComplete);
}
- // return available hotels
+ // return available flights
searchCallback.searchResults(searchSynch(tripLeg));
}
+ public int getPercentComplete(){
+ return 100;
+ }
+
public String book(TripItem tripItem) {
return "flight1";
}