From 403ff4abf708d2beb7a97babb60f8c0318ff8450 Mon Sep 17 00:00:00 2001 From: rfeng Date: Tue, 26 May 2009 17:58:40 +0000 Subject: Adding CurrencyConverter git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@778816 13f79535-47bb-0310-9956-ffa450edef68 --- .../META-INF/MANIFEST.MF | 2 +- .../pom.xml | 60 ++++++++- .../impl/CreditCardPaymentActivator.java | 40 ------ .../creditcard/impl/CreditCardPaymentImpl.java | 47 ------- .../java/scatours/currency/CurrencyConverter.java | 33 +++++ .../currency/impl/CurrencyConverterImpl.java | 53 ++++++++ .../impl/CreditCardPaymentActivator.java | 40 ++++++ .../creditcard/impl/CreditCardPaymentImpl.java | 64 ++++++++++ .../src/main/resources/CreditCardPayment.wsdl | 22 ++-- .../resources/OSGI-INF/sca/bundle.componentType | 4 - .../main/resources/OSGI-INF/sca/bundle.composite | 11 +- .../src/main/resources/creditcard.composite | 34 ----- .../test/CreditCardPaymentOSGiTestCase.java | 120 ----------------- .../creditcard/test/CreditCardPaymentTestCase.java | 75 ----------- .../payment/creditcard/test/OSGiTestUtils.java | 105 --------------- .../test/CreditCardPaymentOSGiTestCase.java | 142 +++++++++++++++++++++ .../payment/creditcard/test/OSGiTestUtils.java | 105 +++++++++++++++ 17 files changed, 512 insertions(+), 445 deletions(-) delete mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/payment/creditcard/impl/CreditCardPaymentActivator.java delete mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/payment/creditcard/impl/CreditCardPaymentImpl.java create mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/currency/CurrencyConverter.java create mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/currency/impl/CurrencyConverterImpl.java create mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentActivator.java create mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentImpl.java delete mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/creditcard.composite delete mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java delete mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/payment/creditcard/test/CreditCardPaymentTestCase.java delete mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/payment/creditcard/test/OSGiTestUtils.java create mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java create mode 100644 sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/OSGiTestUtils.java (limited to 'sandbox/rfeng') diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/META-INF/MANIFEST.MF b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/META-INF/MANIFEST.MF index e38749adf6..4aa34e389a 100644 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/META-INF/MANIFEST.MF +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/META-INF/MANIFEST.MF @@ -20,4 +20,4 @@ Import-Package: javax.jws, Bundle-SymbolicName: scatours.creditcard.payment Bundle-DocURL: http://www.apache.org/ Bundle-RequiredExecutionEnvironment: J2SE-1.5,JavaSE-1.6 -Bundle-Activator: payment.creditcard.impl.CreditCardPaymentActivator +Bundle-Activator: scatours.payment.creditcard.impl.CreditCardPaymentActivator diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/pom.xml b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/pom.xml index e9537280fc..2f208e6504 100644 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/pom.xml +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/pom.xml @@ -28,6 +28,18 @@ scatours-creditcard-payment-dosgi SCATours CreditCard Payment OSGi + + + + false + + java.net + java.net Maven 1.x Repository + http://download.java.net/maven/1 + legacy + + + org.apache.tuscany.sca @@ -62,6 +74,13 @@ 3.1.200-v20071203 + + com.sun.xml.ws + jaxws-rt + 2.1.7 + runtime + + junit junit @@ -88,6 +107,45 @@ ${artifactId} + + org.apache.maven.plugins + maven-dependency-plugin + + + copy + generate-sources + + copy + + + + + javax.xml.ws + jaxws-api + 2.1 + jar + + + javax.xml.bind + jaxb-api + 2.1 + jar + + + ${project.build.directory}/endorsed + false + true + + + + + + org.apache.maven.plugins + maven-surefire-plugin + + -Djava.endorsed.dirs=target/endorsed + + maven-eclipse-plugin 2.5.1 @@ -147,7 +205,7 @@ wsimport - payment.creditcard + scatours.payment.creditcard ${basedir}/src/main/resources diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/payment/creditcard/impl/CreditCardPaymentActivator.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/payment/creditcard/impl/CreditCardPaymentActivator.java deleted file mode 100644 index 43a7c3519b..0000000000 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/payment/creditcard/impl/CreditCardPaymentActivator.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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 payment.creditcard.impl; - -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; - -import payment.creditcard.CreditCardPayment; - -/** - * - */ -public class CreditCardPaymentActivator implements BundleActivator { - - public void start(BundleContext context) throws Exception { - System.out.println("Registering CreditCardPayment service..."); - context.registerService(CreditCardPayment.class.getName(), new CreditCardPaymentImpl(), null); - } - - public void stop(BundleContext context) throws Exception { - } - -} diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/payment/creditcard/impl/CreditCardPaymentImpl.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/payment/creditcard/impl/CreditCardPaymentImpl.java deleted file mode 100644 index 1ddf5be7d6..0000000000 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/payment/creditcard/impl/CreditCardPaymentImpl.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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 payment.creditcard.impl; - -import org.oasisopen.sca.annotation.Service; - -import payment.creditcard.CreditCardDetailsType; -import payment.creditcard.CreditCardPayment; - -/** - * - */ -@Service(CreditCardPayment.class) -public class CreditCardPaymentImpl implements CreditCardPayment { - - public String authorize(CreditCardDetailsType creditCard, float amount) { - if (creditCard != null){ - System.out.println("Checking card: name = " + - creditCard.getCardOwner().getName() + - " number = " + - creditCard.getCreditCardNumber() + - " for amount " + - amount); - } else { - System.out.println("Checking card is null"); - } - - return "OK"; - } -} diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/currency/CurrencyConverter.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/currency/CurrencyConverter.java new file mode 100644 index 0000000000..49e1f6a119 --- /dev/null +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/currency/CurrencyConverter.java @@ -0,0 +1,33 @@ +/* + * 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 scatours.currency; + +import org.oasisopen.sca.annotation.Remotable; + +/** + * The CurrencyConverter service interface + */ +@Remotable +public interface CurrencyConverter { + + float getExchangeRate(String fromCurrencyCode, String toCurrencyCode); + + float convert(String fromCurrencyCode, String toCurrencyCode, float amount); + +} diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/currency/impl/CurrencyConverterImpl.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/currency/impl/CurrencyConverterImpl.java new file mode 100644 index 0000000000..52d7c60c31 --- /dev/null +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/currency/impl/CurrencyConverterImpl.java @@ -0,0 +1,53 @@ +/* + * 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 scatours.currency.impl; + +import java.util.HashMap; +import java.util.Map; + +import org.oasisopen.sca.annotation.Service; + +import scatours.currency.CurrencyConverter; + +/** + * An implementation of the CurrencyConverter service + */ +@Service(CurrencyConverter.class) +public class CurrencyConverterImpl implements CurrencyConverter { + + // currency index + private Map currencyIndex = new HashMap(); + + // exchange rates + private final float rates[][] = { {1.00f, 0.50f, 0.66f}, {2.00f, 1.00f, 1.33f}, {1.50f, 0.75f, 1.00f}}; + + public CurrencyConverterImpl() { + currencyIndex.put("USD", new Integer(0)); + currencyIndex.put("GBP", new Integer(1)); + currencyIndex.put("EUR", new Integer(2)); + } + + public float getExchangeRate(String fromCurrencyCode, String toCurrencyCode) { + return rates[currencyIndex.get(fromCurrencyCode).intValue()][currencyIndex.get(toCurrencyCode).intValue()]; + } + + public float convert(String fromCurrencyCode, String toCurrencyCode, float amount) { + return amount * getExchangeRate(fromCurrencyCode, toCurrencyCode); + } +} diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentActivator.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentActivator.java new file mode 100644 index 0000000000..ba09b15de4 --- /dev/null +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentActivator.java @@ -0,0 +1,40 @@ +/* + * 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 scatours.payment.creditcard.impl; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +import scatours.payment.creditcard.CreditCardPayment; + +/** + * + */ +public class CreditCardPaymentActivator implements BundleActivator { + + public void start(BundleContext context) throws Exception { + System.out.println("Registering CreditCardPayment service..."); + context.registerService(CreditCardPayment.class.getName(), new CreditCardPaymentImpl(context), null); + } + + public void stop(BundleContext context) throws Exception { + } + +} diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentImpl.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentImpl.java new file mode 100644 index 0000000000..657ef71c8b --- /dev/null +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/java/scatours/payment/creditcard/impl/CreditCardPaymentImpl.java @@ -0,0 +1,64 @@ +/* + * 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 scatours.payment.creditcard.impl; + +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceReference; + +import scatours.currency.CurrencyConverter; +import scatours.payment.creditcard.CreditCardDetailsType; +import scatours.payment.creditcard.CreditCardPayment; + +public class CreditCardPaymentImpl implements CreditCardPayment { + private BundleContext context; + + public CreditCardPaymentImpl(BundleContext context) { + super(); + this.context = context; + } + + public String authorize(CreditCardDetailsType creditCard, float amount) { + if (creditCard != null) { + System.out.println("Checking card: name = " + creditCard.getCardOwner().getName() + + " number = " + + creditCard.getCreditCardNumber() + + " for amount " + + amount + " EUR"); + amount = convertCurrency(amount); + } else { + System.out.println("Credit card is null"); + } + + return "OK"; + } + + private float convertCurrency(float amount) { + ServiceReference ref = context.getServiceReference(CurrencyConverter.class.getName()); + if (ref != null) { + CurrencyConverter converter = (CurrencyConverter)context.getService(ref); + if (converter != null) { + amount = converter.convert("EUR", "USD", amount); + context.ungetService(ref); + return amount; + } + } + throw new IllegalArgumentException("Currency cannot be converted"); + } +} diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/CreditCardPayment.wsdl b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/CreditCardPayment.wsdl index dbf89924cc..1fac949ea1 100644 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/CreditCardPayment.wsdl +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/CreditCardPayment.wsdl @@ -7,29 +7,29 @@ * 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. + * under the License. --> - - - + @@ -106,11 +106,11 @@ - + - + - + \ No newline at end of file diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/OSGI-INF/sca/bundle.componentType b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/OSGI-INF/sca/bundle.componentType index 70852d88a9..c14c60c21d 100644 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/OSGI-INF/sca/bundle.componentType +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/OSGI-INF/sca/bundle.componentType @@ -30,12 +30,8 @@ - diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/OSGI-INF/sca/bundle.composite b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/OSGI-INF/sca/bundle.composite index 071cff731d..97550f027c 100644 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/OSGI-INF/sca/bundle.composite +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/OSGI-INF/sca/bundle.composite @@ -28,18 +28,15 @@ - - - - - - + + + + diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/creditcard.composite b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/creditcard.composite deleted file mode 100644 index 9c69035a10..0000000000 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/main/resources/creditcard.composite +++ /dev/null @@ -1,34 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java deleted file mode 100644 index 122e380164..0000000000 --- a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * 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 payment.creditcard.test; - -import static payment.creditcard.test.OSGiTestUtils.bundleStatus; - -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.Reader; -import java.net.URL; - -import org.apache.tuscany.sca.node.equinox.launcher.EquinoxHost; -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleContext; -import org.osgi.framework.Constants; - -/** - * - */ -public class CreditCardPaymentOSGiTestCase { - private static EquinoxHost host; - private static BundleContext context; - private static Bundle ccBundle; - - /** - * @throws java.lang.Exception - */ - @BeforeClass - public static void setUpBeforeClass() throws Exception { - try { - host = new EquinoxHost(); - context = host.start(); - - for (Bundle b : context.getBundles()) { - System.out.println(b); - if (b.getSymbolicName().equals("org.eclipse.equinox.ds") || b.getSymbolicName() - .startsWith("org.apache.tuscany.sca.")) { - try { - if (b.getHeaders().get(Constants.FRAGMENT_HOST) == null) { - // Start the non-fragment bundle - b.start(); - } - } catch (Exception e) { - e.printStackTrace(); - } - System.out.println(bundleStatus(b, false)); - } - if ("scatours.creditcard.payment".equals(b.getSymbolicName())) { - ccBundle = b; - } - } - - if (ccBundle != null) { - ccBundle.start(); - System.out.println(bundleStatus(ccBundle, false)); - } - - } catch (Exception e) { - e.printStackTrace(); - throw e; - } - } - - @Test - /** - * Test the Web service exposed by the Calculator - */ - public void testWS() throws Exception { - URL url = new URL("http://localhost:8086/CreditCardPayment?wsdl"); - InputStream is = url.openStream(); - Reader reader = new InputStreamReader(is); - char[] content = new char[10240]; // 10k - int len = 0; - while (true) { - int size = reader.read(content, len, content.length - len); - if (size < 0) { - break; - } - len += size; - } - Assert.assertTrue(len > 0); - String str = new String(content, 0, len); - System.out.println(str); - Assert.assertTrue(str.indexOf(" - * @param obj - * @param cls - * @return - */ - public static T cast(Object obj, Class cls) { - if (cls.isInstance(obj)) { - return cls.cast(obj); - } else { - return cls.cast(Proxy.newProxyInstance(cls.getClassLoader(), - new Class[] {cls}, - new InvocationHandlerImpl(obj))); - } - } -} diff --git a/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java new file mode 100644 index 0000000000..f981e31efa --- /dev/null +++ b/sandbox/rfeng/scatours-creditcard-payment-dosgi-contribution/src/test/java/scatours/payment/creditcard/test/CreditCardPaymentOSGiTestCase.java @@ -0,0 +1,142 @@ +/* + * 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 scatours.payment.creditcard.test; + +import static scatours.payment.creditcard.test.OSGiTestUtils.bundleStatus; + +import java.io.InputStream; +import java.io.InputStreamReader; +import java.io.Reader; +import java.net.URL; + +import org.apache.tuscany.sca.node.equinox.launcher.EquinoxHost; +import org.junit.AfterClass; +import org.junit.Assert; +import org.junit.BeforeClass; +import org.junit.Ignore; +import org.junit.Test; +import org.osgi.framework.Bundle; +import org.osgi.framework.BundleContext; +import org.osgi.framework.Constants; + +import scatours.payment.creditcard.CreditCardDetailsType; +import scatours.payment.creditcard.CreditCardPayment; +import scatours.payment.creditcard.CreditCardPaymentService; +import scatours.payment.creditcard.CreditCardTypeType; +import scatours.payment.creditcard.ObjectFactory; +import scatours.payment.creditcard.PayerType; + +/** + * + */ +public class CreditCardPaymentOSGiTestCase { + private static EquinoxHost host; + private static BundleContext context; + private static Bundle ccBundle; + + /** + * @throws java.lang.Exception + */ + @BeforeClass + public static void setUpBeforeClass() throws Exception { + try { + host = new EquinoxHost(); + context = host.start(); + + for (Bundle b : context.getBundles()) { + System.out.println(b); + if (b.getSymbolicName().equals("org.eclipse.equinox.ds") || b.getSymbolicName() + .startsWith("org.apache.tuscany.sca.")) { + try { + if (b.getHeaders().get(Constants.FRAGMENT_HOST) == null) { + // Start the non-fragment bundle + b.start(); + } + } catch (Exception e) { + e.printStackTrace(); + } + System.out.println(bundleStatus(b, false)); + } + if ("scatours.creditcard.payment".equals(b.getSymbolicName())) { + ccBundle = b; + } + } + + if (ccBundle != null) { + ccBundle.start(); + System.out.println(bundleStatus(ccBundle, false)); + } + + } catch (Exception e) { + e.printStackTrace(); + throw e; + } + } + + @Test + @Ignore("Now we use the testClient") + public void testWS() throws Exception { + URL url = new URL("http://localhost:8086/CreditCardPayment?wsdl"); + InputStream is = url.openStream(); + Reader reader = new InputStreamReader(is); + char[] content = new char[10240]; // 10k + int len = 0; + while (true) { + int size = reader.read(content, len, content.length - len); + if (size < 0) { + break; + } + len += size; + } + Assert.assertTrue(len > 0); + String str = new String(content, 0, len); + System.out.println(str); + Assert.assertTrue(str.indexOf(" + * @param obj + * @param cls + * @return + */ + public static T cast(Object obj, Class cls) { + if (cls.isInstance(obj)) { + return cls.cast(obj); + } else { + return cls.cast(Proxy.newProxyInstance(cls.getClassLoader(), + new Class[] {cls}, + new InvocationHandlerImpl(obj))); + } + } +} -- cgit v1.2.3