Add code for chapter 2

git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@742134 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
nash 2009-02-08 17:53:30 +00:00
parent 0e4846e9b7
commit f25043a11e
15 changed files with 349 additions and 50 deletions

View file

@ -17,8 +17,7 @@
* specific language governing permissions and limitations
* under the License.
-->
<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0">
<import.java package="scatours.common"/>
<import.java package="scatours.paymentprocess"/>
<export.java package="scatours.shoppingcart"/>
</contribution>
<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:gvtrips="http://goodvaluetrips.com/">
<deployable composite="gvtrips:trips"/>
</contribution>

View file

@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-sca</artifactId>
<version>1.5-SNAPSHOT</version>
<version>1.4</version>
<!--relativePath>../../pom.xml</relativePath-->
</parent>
<artifactId>scatours-chapter-02-goodvaluetrips-contribution</artifactId>
@ -32,14 +32,16 @@
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-sca-api</artifactId>
<version>1.5-SNAPSHOT</version>
<version>1.4</version>
</dependency>
<!--
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>scatours-common-contribution</artifactId>
<version>1.5-SNAPSHOT</version>
</dependency>
<version>1.4</version>
</dependency>
-->
<dependency>
<groupId>junit</groupId>
@ -47,24 +49,25 @@
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${artifactId}</finalName>
<sourceDirectory>${basedir}/src</sourceDirectory>
<resources>
<resource>
<directory>${basedir}</directory>
<excludes>
<exclude>**/*.java</exclude>
<exclude>**/.*/**</exclude>
<exclude>pom.xml</exclude>
<exclude>build.xml</exclude>
<exclude>target/**</exclude>
<exclude>src/**</exclude>
</excludes>
</resource>
</resources>
<finalName>${artifactId}</finalName>
<!--
<sourceDirectory>${basedir}/src</sourceDirectory>
<resources>
<resource>
<directory>${basedir}</directory>
<excludes>
<exclude>**/*.java</exclude>
<exclude>**/.*/**</exclude>
<exclude>pom.xml</exclude>
<exclude>build.xml</exclude>
<exclude>target/**</exclude>
<exclude>src/**</exclude>
</excludes>
</resource>
</resources>
-->
</build>
</project>

View file

@ -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 com.goodvaluetrips;
public class TripProvider implements Trips {
public String checkAvailability(String trip, int people) {
// call non-SCA code to reserve trip and return booking code
return "6R98Y";
}
}

View file

@ -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 com.goodvaluetrips;
import org.osoa.sca.annotations.Remotable;
@Remotable
public interface Trips {
String checkAvailability(String trip, int people);
}

View file

@ -0,0 +1,30 @@
<?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://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://goodvaluetrips.com/"
name="trips">
<component name="TripProvider">
<implementation.java class="com.goodvaluetrips.TripProvider" />
<service name="Trips">
<interface.java interface="com.goodvaluetrips.Trips" />
</service>
</component>
</composite>

View file

@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-sca</artifactId>
<version>1.4-SNAPSHOT</version>
<version>1.4</version>
<!--relativePath>../pom.xml</relativePath-->
</parent>
<artifactId>tuscany-scatours-chapter-02</artifactId>
@ -38,7 +38,9 @@
<modules>
<module>goodvaluetrips-contribution</module>
<module>tuscanyscatours-contribution</module>
<!--
<module>node</module>
-->
</modules>
</profile>

View file

@ -17,8 +17,7 @@
* specific language governing permissions and limitations
* under the License.
-->
<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0">
<import.java package="scatours.common"/>
<import.java package="scatours.paymentprocess"/>
<export.java package="scatours.shoppingcart"/>
</contribution>
<contribution xmlns="http://www.osoa.org/xmlns/sca/1.0"
xmlns:scatours="http://tuscanyscatours.com/">
<deployable composite="scatours:tours"/>
</contribution>

View file

@ -22,7 +22,7 @@
<parent>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-sca</artifactId>
<version>1.5-SNAPSHOT</version>
<version>1.4</version>
<!--relativePath>../../pom.xml</relativePath-->
</parent>
<artifactId>scatours-chapter-02-tuscanyscatours-contribution</artifactId>
@ -32,7 +32,7 @@
<dependency>
<groupId>org.apache.tuscany.sca</groupId>
<artifactId>tuscany-sca-api</artifactId>
<version>1.5-SNAPSHOT</version>
<version>1.4</version>
</dependency>
<dependency>
@ -41,24 +41,25 @@
<version>4.5</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>${artifactId}</finalName>
<sourceDirectory>${basedir}/src</sourceDirectory>
<resources>
<resource>
<directory>${basedir}</directory>
<excludes>
<exclude>**/*.java</exclude>
<exclude>**/.*/**</exclude>
<exclude>pom.xml</exclude>
<exclude>build.xml</exclude>
<exclude>target/**</exclude>
<exclude>src/**</exclude>
</excludes>
</resource>
</resources>
<finalName>${artifactId}</finalName>
<!--
<sourceDirectory>${basedir}/src</sourceDirectory>
<resources>
<resource>
<directory>${basedir}</directory>
<excludes>
<exclude>**/*.java</exclude>
<exclude>**/.*/**</exclude>
<exclude>pom.xml</exclude>
<exclude>build.xml</exclude>
<exclude>target/**</exclude>
<exclude>src/**</exclude>
</excludes>
</resource>
</resources>
-->
</build>
</project>

View file

@ -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 com.goodvaluetrips;
import org.osoa.sca.annotations.Remotable;
@Remotable
public interface Trips {
String checkAvailability(String trip, int people);
}

View file

@ -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 com.tuscanyscatours;
import org.osoa.sca.annotations.Remotable;
@Remotable
public interface Bookings {
String newBooking(String trip, int people);
}

View file

@ -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 com.tuscanyscatours;
import org.osoa.sca.annotations.Remotable;
@Remotable
public interface Checkout {
void makePayment(double amount, String cardInfo);
}

View file

@ -0,0 +1,28 @@
/*
* 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 com.tuscanyscatours;
public class ShoppingCart implements Checkout, Updates {
public void makePayment(double amount, String cardInfo) {
// make payment for trips in cart giving card details
}
public void addTrip(String resCode) {
// add the booked trip to the cart
}
}

View file

@ -0,0 +1,35 @@
/*
* 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 com.tuscanyscatours;
import org.osoa.sca.annotations.Reference;
public class TripBooking implements Bookings {
@Reference
protected com.goodvaluetrips.Trips mytrips;
@Reference
protected Updates cart;
public String newBooking(String trip, int people) {
String resCode = mytrips.checkAvailability(trip, people);
cart.addTrip(resCode);
return "GV" + resCode;
}
}

View file

@ -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 com.tuscanyscatours;
import org.osoa.sca.annotations.Remotable;
@Remotable
public interface Updates {
void addTrip(String resCode);
}

View file

@ -0,0 +1,46 @@
<?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://www.osoa.org/xmlns/sca/1.0"
targetNamespace="http://tuscanyscatours.com/"
name="tours">
<component name="TripBooking">
<implementation.java class="com.tuscanyscatours.TripBooking" />
<service name="Bookings">
<interface.java interface="com.tuscanyscatours.Bookings" />
</service>
<reference name="mytrips" target="TripProvider/Trips">
<interface.java interface="com.goodvaluetrips.Trips" />
</reference>
<reference name="cart" target="ShoppingCart/Updates">
<interface.java interface="com.tuscanyscatours.Updates" />
</reference>
</component>
<component name="ShoppingCart">
<implementation.java class="com.tuscanyscatours.ShoppingCart"/>
<service name="Checkout">
<interface.java interface="com.tuscanyscatours.Checkout" />
</service>
<service name="Updates">
<interface.java interface="com.tuscanyscatours.Updates" />
</service>
</component>
</composite>