diff options
Diffstat (limited to 'sandbox/slaws/scatours/currencyconverter')
5 files changed, 196 insertions, 0 deletions
diff --git a/sandbox/slaws/scatours/currencyconverter/pom.xml b/sandbox/slaws/scatours/currencyconverter/pom.xml new file mode 100644 index 0000000000..3209790341 --- /dev/null +++ b/sandbox/slaws/scatours/currencyconverter/pom.xml @@ -0,0 +1,57 @@ +<?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. +--> +<project> + <modelVersion>4.0.0</modelVersion> + <parent> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-sca</artifactId> + <version>2.0-incubating-SNAPSHOT</version> + <relativePath>../../pom.xml</relativePath> + </parent> + <artifactId>scatours-currencyconverter</artifactId> + <name>Apache Tuscany SCA Tours Currency Converter Component</name> + + <dependencies> + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-host-embedded</artifactId> + <version>2.0-incubating-SNAPSHOT</version> + </dependency> + + <dependency> + <groupId>org.apache.tuscany.sca</groupId> + <artifactId>tuscany-implementation-java-runtime</artifactId> + <version>2.0-incubating-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>4.2</version> + <scope>test</scope> + </dependency> + + </dependencies> + + <build> + <finalName>${artifactId}</finalName> + </build> +</project> diff --git a/sandbox/slaws/scatours/currencyconverter/src/main/java/currencyconverter/CurrencyConverter.java b/sandbox/slaws/scatours/currencyconverter/src/main/java/currencyconverter/CurrencyConverter.java new file mode 100644 index 0000000000..b73f35c40c --- /dev/null +++ b/sandbox/slaws/scatours/currencyconverter/src/main/java/currencyconverter/CurrencyConverter.java @@ -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 currencyconverter; + +/** + * The CurrencyConverter service interface + */ +public interface CurrencyConverter { + + double getExchangeRate(String fromCurrency, String toCurrency); + +} diff --git a/sandbox/slaws/scatours/currencyconverter/src/main/java/currencyconverter/CurrencyConverterImpl.java b/sandbox/slaws/scatours/currencyconverter/src/main/java/currencyconverter/CurrencyConverterImpl.java new file mode 100644 index 0000000000..6769239b56 --- /dev/null +++ b/sandbox/slaws/scatours/currencyconverter/src/main/java/currencyconverter/CurrencyConverterImpl.java @@ -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 currencyconverter; + + +/** + * An implementation of the CurrencyConverter service + */ +public class CurrencyConverterImpl implements CurrencyConverter { + + public double getExchangeRate(String fromCurrencyCode, String toCurrencyCode){ + // regardless of which currencies are specified return the same value + return 1.98; + } + + public double convert(String fromCurrencyCode, String toCurrencyCode, double amount){ + return amount * getExchangeRate(fromCurrencyCode, toCurrencyCode); + } +} diff --git a/sandbox/slaws/scatours/currencyconverter/src/main/resources/currencyconverter.composite b/sandbox/slaws/scatours/currencyconverter/src/main/resources/currencyconverter.composite new file mode 100644 index 0000000000..ae94401f6c --- /dev/null +++ b/sandbox/slaws/scatours/currencyconverter/src/main/resources/currencyconverter.composite @@ -0,0 +1,29 @@ +<?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://scatours" + xmlns:sample="http://scatours" + name="currencyconverter"> + + <component name="CurrencyConverterComponent"> + <implementation.java class="currencyconverter.CurrencyConverterImpl"/> + </component> + +</composite> diff --git a/sandbox/slaws/scatours/currencyconverter/src/test/java/currencyconverter/CurrencyConverterTestCase.java b/sandbox/slaws/scatours/currencyconverter/src/test/java/currencyconverter/CurrencyConverterTestCase.java new file mode 100644 index 0000000000..6bdf32dd0d --- /dev/null +++ b/sandbox/slaws/scatours/currencyconverter/src/test/java/currencyconverter/CurrencyConverterTestCase.java @@ -0,0 +1,47 @@ +/* + * 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 currencyconverter; + +import junit.framework.TestCase; + +import org.apache.tuscany.sca.host.embedded.SCADomain; + +/** + * This shows how to test the Calculator service component. + */ +public class CurrencyConverterTestCase extends TestCase { + + private CurrencyConverter currencyConverter; + private SCADomain scaDomain; + + @Override + protected void setUp() throws Exception { + scaDomain = SCADomain.newInstance("currencyconverter.composite"); + currencyConverter = scaDomain.getService(CurrencyConverter.class, "CurrencyConverterComponent"); + } + + @Override + protected void tearDown() throws Exception { + scaDomain.close(); + } + + public void testCurrecncyConverter() throws Exception { + System.out.println(currencyConverter.getExchangeRate("GBP", "USD")); + } +} |