diff options
author | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2011-01-25 23:30:28 +0000 |
---|---|---|
committer | jsdelfino <jsdelfino@13f79535-47bb-0310-9956-ffa450edef68> | 2011-01-25 23:30:28 +0000 |
commit | 875e50908c2630d263661af492654cd44bef2d65 (patch) | |
tree | 30cc749cb9d25fd84b67fa086394735601782409 /sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache | |
parent | 1456632c03944d54a5f059fe54e49b3014bc7fea (diff) |
Sandbox to experiment with dynamic mass virtual hosting and running a different composite per vhost.
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1063520 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache')
4 files changed, 219 insertions, 0 deletions
diff --git a/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/OneWayClient.java b/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/OneWayClient.java new file mode 100644 index 0000000000..ecd239d5fb --- /dev/null +++ b/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/OneWayClient.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 org.apache.tuscany.sca.itest.oneway; + +/** + * The client for the oneway itest. + * + * @version $Rev$ $Date$ + */ +public interface OneWayClient { + + /** + * This method will invoke the doSomething() @OneWay method on the OneWayService + * the specified number of times. + * + * @param count The number of times to invoke doSomething() on the OneWayService + */ + void doSomething(int count); + + /** + * This method will invoke a @OneWay method that throws an exception. + */ + void doSomethingWhichThrowsException(); +} diff --git a/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/OneWayService.java b/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/OneWayService.java new file mode 100644 index 0000000000..ba74b67d31 --- /dev/null +++ b/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/OneWayService.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 org.apache.tuscany.sca.itest.oneway; + + +import org.oasisopen.sca.annotation.OneWay; +import org.oasisopen.sca.annotation.Remotable; + + +/** + * The service interface used when testing @OneWay interactions. + * + * @version $Rev$ $Date$ + */ +@Remotable +public interface OneWayService { + + /** + * This OneWay method will increment the callCount by 1. + * + * @param count Not used + */ + @OneWay + void doSomething(int count); + + /** + * This one way method will throw a NullPointerException. + */ + @OneWay + void doSomethingWhichThrowsException(); +} diff --git a/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayClientImpl.java b/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayClientImpl.java new file mode 100644 index 0000000000..8ed3c3d638 --- /dev/null +++ b/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayClientImpl.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 org.apache.tuscany.sca.itest.oneway.impl; + +import org.apache.tuscany.sca.itest.oneway.OneWayClient; +import org.apache.tuscany.sca.itest.oneway.OneWayService; +import org.junit.Assert; +import org.oasisopen.sca.annotation.Reference; + + +/** + * The client for the oneway itest. + * + * @version $Rev$ $Date$ + */ +public class OneWayClientImpl implements OneWayClient { + /** + * Injected reference to the OneWayService. + */ + @Reference + protected OneWayService oneWayService; + + /** + * Tracks the number of calls of the doSomething() method on the OneWayService. + */ + public static int callCount = 0; + + /** + * {@inheritDoc} + */ + public void doSomething(int count) { + callCount = callCount + count; + + for (int loopCount = 0; loopCount < count; loopCount++) { + //System.out.println("Client: doSomething " + loopCount); + //System.out.flush(); + oneWayService.doSomething(loopCount); + } + } + + /** + * {@inheritDoc} + */ + public void doSomethingWhichThrowsException() { + Assert.assertNotNull(oneWayService); + oneWayService.doSomethingWhichThrowsException(); + } +} diff --git a/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayServiceImpl.java b/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayServiceImpl.java new file mode 100644 index 0000000000..1c36073cf1 --- /dev/null +++ b/sandbox/sebastien/java/vhost/testing/itest/oneway/src/main/java/org/apache/tuscany/sca/itest/oneway/impl/OneWayServiceImpl.java @@ -0,0 +1,68 @@ +/* + * 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 org.apache.tuscany.sca.itest.oneway.impl; + +import java.util.concurrent.atomic.AtomicInteger; + +import org.apache.tuscany.sca.itest.oneway.OneWayService; + +/** + * The service for the oneway itest. + * + * @version $Rev$ $Date$ + */ + + +public class OneWayServiceImpl implements OneWayService { + + /** + * This is the error message that will be in the Exception thrown by + * the doSomethingWhichThrowsException() method. + */ + public static final String EXCEPTION_MESSAGE = "Sample RuntimeException from a @OneWay method"; + + /** + * Counts the number of invocations to doSomething(). + */ + public static final AtomicInteger CALL_COUNT = new AtomicInteger(); + + /** + * Counts the number of invocations of the doSomethingWhichThrowsException() method. + */ + public static final AtomicInteger CALL_COUNT_FOR_THROWS_EXCEPTION_METHOD = new AtomicInteger(); + + /** + * {@inheritDoc} + */ + public void doSomething(int count) { + CALL_COUNT.incrementAndGet(); + + // System.out.println("Service: doSomething " + count + " callCount = " + callCount); + // System.out.flush(); + } + + /** + * {@inheritDoc} + */ + public void doSomethingWhichThrowsException() { + System.out.println("OneWay invoked. About to throw an Exception"); + CALL_COUNT_FOR_THROWS_EXCEPTION_METHOD.incrementAndGet(); + throw new NullPointerException(EXCEPTION_MESSAGE); + } +} |