diff --git a/samples/airline/client/spring-ws/build.xml b/samples/airline/client/spring-ws/build.xml
index 0789f1c4..884e06e6 100644
--- a/samples/airline/client/spring-ws/build.xml
+++ b/samples/airline/client/spring-ws/build.xml
@@ -20,11 +20,12 @@
-
+
+
-
+
@@ -54,11 +55,19 @@
-
+
-
+
+
+
+
+
+
+
+
diff --git a/samples/airline/client/spring-ws/src/log4j.properties b/samples/airline/client/spring-ws/src/log4j.properties
index f50b4194..0f73a758 100644
--- a/samples/airline/client/spring-ws/src/log4j.properties
+++ b/samples/airline/client/spring-ws/src/log4j.properties
@@ -1,4 +1,6 @@
log4j.rootLogger=WARN, stdout
+log4j.logger.org.springframework.ws=DEBUG
+log4j.logger.org.springframework.xml=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
diff --git a/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/GetFlights.java b/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/GetFlights.java
new file mode 100644
index 00000000..c67f0937
--- /dev/null
+++ b/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/GetFlights.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright 2007 the original author or authors.
+ *
+ * Licensed 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.springframework.ws.samples.airline.client.sws;
+
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.springWs.samples.airline.schemas.messages.BookFlightRequestDocument;
+import org.springframework.springWs.samples.airline.schemas.messages.BookFlightResponseDocument;
+import org.springframework.springWs.samples.airline.schemas.messages.GetFlightsRequestDocument;
+import org.springframework.springWs.samples.airline.schemas.messages.GetFlightsResponseDocument;
+import org.springframework.springWs.samples.airline.schemas.types.Flight;
+import org.springframework.springWs.samples.airline.schemas.types.Name;
+import org.springframework.springWs.samples.airline.schemas.types.Ticket;
+import org.springframework.ws.WebServiceMessageFactory;
+import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
+
+public class GetFlights extends WebServiceGatewaySupport {
+
+ public GetFlights(WebServiceMessageFactory messageFactory) {
+ super(messageFactory);
+ }
+
+ public void getFlights() {
+ GetFlightsRequestDocument getFlightsRequestDocument = GetFlightsRequestDocument.Factory.newInstance();
+ GetFlightsRequestDocument.GetFlightsRequest getFlightsRequest =
+ getFlightsRequestDocument.addNewGetFlightsRequest();
+ getFlightsRequest.setFrom("AMS");
+ getFlightsRequest.setTo("VCE");
+ Calendar departureDate = Calendar.getInstance();
+ departureDate.clear();
+ departureDate.set(2006, Calendar.JANUARY, 31);
+ getFlightsRequest.setDepartureDate(departureDate);
+
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ System.out.println("Requesting flights on " + dateFormat.format(departureDate.getTime()));
+ GetFlightsResponseDocument getFlightsResponseDocument =
+ (GetFlightsResponseDocument) getWebServiceTemplate().marshalSendAndReceive(getFlightsRequestDocument);
+ GetFlightsResponseDocument.GetFlightsResponse response = getFlightsResponseDocument.getGetFlightsResponse();
+ System.out.println("Got " + response.sizeOfFlightArray() + " results");
+ if (response.sizeOfFlightArray() > 0) {
+ // Book the first flight using John Doe as a frequent flyer
+ BookFlightRequestDocument bookFlightRequestDocument = BookFlightRequestDocument.Factory.newInstance();
+ BookFlightRequestDocument.BookFlightRequest bookFlightRequest =
+ bookFlightRequestDocument.addNewBookFlightRequest();
+ bookFlightRequest.setFlightNumber(response.getFlightArray(0).getNumber());
+ bookFlightRequest.setDepartureTime(response.getFlightArray(0).getDepartureTime());
+ BookFlightRequestDocument.BookFlightRequest.Passengers passengers = bookFlightRequest.addNewPassengers();
+ passengers.addUsername("john");
+
+ BookFlightResponseDocument bookFlightResponseDocument = (BookFlightResponseDocument) getWebServiceTemplate()
+ .marshalSendAndReceive(bookFlightRequestDocument);
+ Ticket ticket = bookFlightResponseDocument.getBookFlightResponse();
+ writeTicket(ticket);
+ }
+ }
+
+ private void writeTicket(Ticket ticket) {
+ System.out.println("Ticket " + ticket.getId());
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ System.out.println("Ticket issue date:\t" + dateFormat.format(ticket.getIssueDate().getTime()));
+ for (int i = 0; i < ticket.getPassengers().sizeOfPassengerArray(); i++) {
+ writeName(ticket.getPassengers().getPassengerArray(i));
+
+ }
+ writeFlight(ticket.getFlight());
+ }
+
+ private void writeName(Name name) {
+ System.out.println("Passenger Name:");
+ System.out.println(name.getFirst() + " " + name.getLast());
+ System.out.println("------------");
+ }
+
+ private void writeFlight(Flight flight) {
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ System.out.println(dateFormat.format(flight.getDepartureTime().getTime()));
+ System.out.println(flight.getNumber() + "\t" + flight.getServiceClass());
+ System.out.println("------------");
+ System.out.println("Depart:\t" + flight.getFrom().getCode() + "-" + flight.getFrom().getName() + "\t" +
+ dateFormat.format(flight.getDepartureTime().getTime()));
+ System.out.println("\t" + flight.getFrom().getCity());
+ System.out.println("Arrive:\t" + flight.getTo().getCode() + "-" + flight.getTo().getName() + "\t" +
+ dateFormat.format(flight.getArrivalTime().getTime()));
+ System.out.println("\t" + flight.getTo().getCity());
+ }
+
+ public static void main(String[] args) {
+ ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
+ "org/springframework/ws/samples/airline/client/sws/applicationContext.xml");
+ GetFlights getFlights = (GetFlights) applicationContext.getBean("getFlights", GetFlights.class);
+ getFlights.getFlights();
+ }
+
+}
diff --git a/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/GetFrequentFlyerMileage.java b/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/GetFrequentFlyerMileage.java
new file mode 100644
index 00000000..773338c6
--- /dev/null
+++ b/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/GetFrequentFlyerMileage.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2008 the original author or authors.
+ *
+ * Licensed 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.springframework.ws.samples.airline.client.sws;
+
+import javax.xml.transform.Result;
+import javax.xml.transform.Source;
+
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.support.ClassPathXmlApplicationContext;
+import org.springframework.ws.WebServiceMessageFactory;
+import org.springframework.ws.client.core.support.WebServiceGatewaySupport;
+import org.springframework.xml.transform.StringResult;
+import org.springframework.xml.transform.StringSource;
+
+public class GetFrequentFlyerMileage extends WebServiceGatewaySupport {
+
+ public GetFrequentFlyerMileage(WebServiceMessageFactory messageFactory) {
+ super(messageFactory);
+ }
+
+ public void getFrequentFlyerMileage() {
+ Source source = new StringSource(
+ "");
+
+ Result result = new StringResult();
+
+ getWebServiceTemplate().sendSourceAndReceiveToResult(source, result);
+
+ System.out.println("result = " + result);
+ }
+
+ public static void main(String[] args) {
+ ApplicationContext applicationContext = new ClassPathXmlApplicationContext(
+ "org/springframework/ws/samples/airline/client/sws/applicationContext.xml");
+
+ GetFrequentFlyerMileage getFrequentFlyerMileage = (GetFrequentFlyerMileage) applicationContext
+ .getBean("getFrequentFlyerMileage", GetFrequentFlyerMileage.class);
+ getFrequentFlyerMileage.getFrequentFlyerMileage();
+ }
+
+
+}
diff --git a/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/applicationContext.xml b/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/applicationContext.xml
index f33d9437..87c4829e 100644
--- a/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/applicationContext.xml
+++ b/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/applicationContext.xml
@@ -2,12 +2,36 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/securityPolicy.xml b/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/securityPolicy.xml
new file mode 100644
index 00000000..85090738
--- /dev/null
+++ b/samples/airline/client/spring-ws/src/org/springframework/ws/samples/airline/client/sws/securityPolicy.xml
@@ -0,0 +1,3 @@
+
+
+
diff --git a/samples/airline/pom.xml b/samples/airline/pom.xml
index 1eccce27..ad55575a 100644
--- a/samples/airline/pom.xml
+++ b/samples/airline/pom.xml
@@ -19,7 +19,6 @@
javax.xml.bind
jaxb-api
- provided
true
2.1
@@ -37,7 +36,7 @@
com.sun.xml.bind
jaxb-impl
2.1.5
- provided
+ runtime
javax.activation