summaryrefslogtreecommitdiffstats
path: root/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async
diff options
context:
space:
mode:
Diffstat (limited to 'tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async')
-rw-r--r--tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/invocation/AsyncInvocationConfigurationTestCase.java197
-rw-r--r--tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockHandler.java38
-rw-r--r--tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockStaticInvoker.java86
-rw-r--r--tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockSyncInterceptor.java45
-rw-r--r--tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/SimpleTarget.java28
-rw-r--r--tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/SimpleTargetImpl.java54
-rw-r--r--tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/work/DefaultWorkManagerTestCase.java98
-rw-r--r--tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/work/GeronimoWorkManagerTestCase.java138
8 files changed, 0 insertions, 684 deletions
diff --git a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/invocation/AsyncInvocationConfigurationTestCase.java b/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/invocation/AsyncInvocationConfigurationTestCase.java
deleted file mode 100644
index 6f55182c2b..0000000000
--- a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/invocation/AsyncInvocationConfigurationTestCase.java
+++ /dev/null
@@ -1,197 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * 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.apache.tuscany.core.async.invocation;
-
-import java.lang.reflect.Method;
-import java.util.concurrent.CountDownLatch;
-
-import junit.framework.Assert;
-import junit.framework.TestCase;
-
-import org.apache.tuscany.core.async.wire.mock.MockHandler;
-import org.apache.tuscany.core.async.wire.mock.MockStaticInvoker;
-import org.apache.tuscany.core.async.wire.mock.MockSyncInterceptor;
-import org.apache.tuscany.core.async.wire.mock.SimpleTarget;
-import org.apache.tuscany.core.async.wire.mock.SimpleTargetImpl;
-import org.apache.tuscany.core.async.work.DefaultWorkManager;
-import org.apache.tuscany.core.message.Message;
-import org.apache.tuscany.core.message.MessageFactory;
-import org.apache.tuscany.core.message.impl.MessageFactoryImpl;
-import org.apache.tuscany.core.wire.SourceInvocationConfiguration;
-import org.apache.tuscany.core.wire.TargetInvocationConfiguration;
-import org.apache.tuscany.core.wire.impl.InvokerInterceptor;
-import org.apache.tuscany.core.wire.impl.MessageChannelImpl;
-
-public class AsyncInvocationConfigurationTestCase extends TestCase {
-
- private DefaultWorkManager workManager;
- private Method hello;
-
- private MessageFactory factory = new MessageFactoryImpl();
-
- public AsyncInvocationConfigurationTestCase() {
- super();
- }
-
- public AsyncInvocationConfigurationTestCase(String arg0) {
- super(arg0);
- }
-
- protected void setUp() throws Exception {
- hello = SimpleTarget.class.getMethod("hello", String.class);
-
- workManager=new DefaultWorkManager();
- workManager.setScheduledMaximumPoolSize(5);
- workManager.init();
- }
-
- protected void tearDown() throws Exception {
- workManager.destroy();
-
- super.tearDown();
- }
-
- /**
- * Tests basic wiring of a source to a target, including handlers and interceptors
- */
- public void testInvokeWithHandlers() throws Exception {
- SourceInvocationConfiguration source = new SourceInvocationConfiguration(hello);
-
- source.addInterceptor(new AsyncInterceptor(workManager, factory));
-
- MockHandler sourceRequestHandler = new MockHandler();
- MockHandler sourceResponseHandler = new MockHandler();
- MockSyncInterceptor sourceInterceptor = new MockSyncInterceptor();
- source.addRequestHandler(sourceRequestHandler);
- source.addResponseHandler(sourceResponseHandler);
- source.addInterceptor(sourceInterceptor);
-
- TargetInvocationConfiguration target = new TargetInvocationConfiguration(hello);
- MockHandler targetRequestHandler = new MockHandler();
- MockHandler targetResponseHandler = new MockHandler();
- MockSyncInterceptor targetInterceptor = new MockSyncInterceptor();
- target.addRequestHandler(targetRequestHandler);
- target.addResponseHandler(targetResponseHandler);
- target.addInterceptor(targetInterceptor);
- target.addInterceptor(new InvokerInterceptor());
-
- // connect the source to the target
- source.setTargetRequestChannel(new MessageChannelImpl(target.getRequestHandlers()));
- source.setTargetResponseChannel(new MessageChannelImpl(target.getResponseHandlers()));
- source.build();
- target.build();
-
- CountDownLatch startSignal = new CountDownLatch(1);
- CountDownLatch doneSignal = new CountDownLatch(1);
- MockStaticInvoker invoker = new MockStaticInvoker(hello, new SimpleTargetImpl(startSignal, doneSignal));
- source.setTargetInvoker(invoker);
-
- Message msg = factory.createMessage();
- msg.setBody("foo");
- msg.setTargetInvoker(invoker);
- Message response = source.getHeadInterceptor().invoke(msg);
- startSignal.countDown();
- doneSignal.await();
-
- Assert.assertEquals(null, response.getBody());
- Assert.assertEquals(1, sourceRequestHandler.getCount());
- //FIXME why isn't the responseHandler invoked?
- //Assert.assertEquals(1, sourceResponseHandler.getCount());
- Assert.assertEquals(1, sourceInterceptor.getCount());
- Assert.assertEquals(1, targetRequestHandler.getCount());
- //FIXME
- //Assert.assertEquals(1, targetResponseHandler.getCount());
- Assert.assertEquals(1, targetInterceptor.getCount());
- }
-
- public void testInvokeWithRequestHandlers() throws Exception {
- SourceInvocationConfiguration source = new SourceInvocationConfiguration(hello);
-
- source.addInterceptor(new AsyncInterceptor(workManager, factory));
-
- MockHandler sourceRequestHandler = new MockHandler();
- MockSyncInterceptor sourceInterceptor = new MockSyncInterceptor();
- source.addRequestHandler(sourceRequestHandler);
- source.addInterceptor(sourceInterceptor);
-
- TargetInvocationConfiguration target = new TargetInvocationConfiguration(hello);
- MockHandler targetRequestHandler = new MockHandler();
- MockSyncInterceptor targetInterceptor = new MockSyncInterceptor();
- target.addRequestHandler(targetRequestHandler);
- target.addInterceptor(targetInterceptor);
- target.addInterceptor(new InvokerInterceptor());
-
- // connect the source to the target
- source.setTargetRequestChannel(new MessageChannelImpl(target.getRequestHandlers()));
- source.setTargetResponseChannel(new MessageChannelImpl(target.getResponseHandlers()));
- source.build();
- target.build();
-
- CountDownLatch startSignal = new CountDownLatch(1);
- CountDownLatch doneSignal = new CountDownLatch(1);
- MockStaticInvoker invoker = new MockStaticInvoker(hello, new SimpleTargetImpl(startSignal, doneSignal));
- source.setTargetInvoker(invoker);
-
- Message msg = factory.createMessage();
- msg.setBody("foo");
- msg.setTargetInvoker(invoker);
- Message response = source.getHeadInterceptor().invoke(msg);
- startSignal.countDown();
- doneSignal.await();
-
- Assert.assertEquals(null, response.getBody());
- Assert.assertEquals(1, sourceRequestHandler.getCount());
- Assert.assertEquals(1, sourceInterceptor.getCount());
- Assert.assertEquals(1, targetRequestHandler.getCount());
- Assert.assertEquals(1, targetInterceptor.getCount());
- }
-
- /**
- * Tests basic wiring of a source to a target, including handlers and interceptors
- */
- public void testInvokeWithInterceptorsOnly() throws Exception {
- SourceInvocationConfiguration source = new SourceInvocationConfiguration(hello);
-
- source.addInterceptor(new AsyncInterceptor(workManager, factory));
-
- MockSyncInterceptor sourceInterceptor = new MockSyncInterceptor();
- source.addInterceptor(sourceInterceptor);
-
- TargetInvocationConfiguration target = new TargetInvocationConfiguration(hello);
- MockSyncInterceptor targetInterceptor = new MockSyncInterceptor();
- target.addInterceptor(targetInterceptor);
- target.addInterceptor(new InvokerInterceptor());
-
- // connect the source to the target
- source.setTargetInterceptor(target.getHeadInterceptor());
- source.build();
- target.build();
-
- CountDownLatch startSignal = new CountDownLatch(1);
- CountDownLatch doneSignal = new CountDownLatch(1);
- MockStaticInvoker invoker = new MockStaticInvoker(hello, new SimpleTargetImpl(startSignal, doneSignal));
- source.setTargetInvoker(invoker);
-
- Message msg = factory.createMessage();
- msg.setBody("foo");
- msg.setTargetInvoker(invoker);
- Message response = source.getHeadInterceptor().invoke(msg);
- startSignal.countDown();
- doneSignal.await();
-
- Assert.assertEquals(null, response.getBody());
- Assert.assertEquals(1, sourceInterceptor.getCount());
- Assert.assertEquals(1, targetInterceptor.getCount());
- }
-}
diff --git a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockHandler.java b/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockHandler.java
deleted file mode 100644
index 4f17dc2a76..0000000000
--- a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockHandler.java
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation
- *
- * 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.apache.tuscany.core.async.wire.mock;
-
-import org.apache.tuscany.core.wire.MessageHandler;
-import org.apache.tuscany.core.message.Message;
-
-/**
- *
- */
-public class MockHandler implements MessageHandler {
-
- private int count =0;
-
- public boolean processMessage(Message message) {
- //System.out.println("Invoking handler");
- count++;
- return true;
- }
-
- public int getCount(){
- return count;
- }
-}
diff --git a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockStaticInvoker.java b/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockStaticInvoker.java
deleted file mode 100644
index e32de0eec1..0000000000
--- a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockStaticInvoker.java
+++ /dev/null
@@ -1,86 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation
- *
- * 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.apache.tuscany.core.async.wire.mock;
-
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
-
-import org.apache.tuscany.core.message.Message;
-import org.apache.tuscany.core.wire.Interceptor;
-import org.apache.tuscany.core.wire.InvocationRuntimeException;
-import org.apache.tuscany.core.wire.TargetInvoker;
-
-/**
- * Caches component instances that do not need to be resolved for every wire, e.g. an wire originating from
- * a lesser scope intended for a target with a wider scope
- *
- * @version $Rev: 377006 $ $Date: 2006-02-11 09:41:59 -0800 (Sat, 11 Feb 2006) $
- */
-public class MockStaticInvoker implements TargetInvoker {
-
- private Object instance;
-
- private Method operation;
-
- public MockStaticInvoker(Method operation, Object instance) {
- this.operation = operation;
- this.instance = instance;
- }
-
- public boolean isCacheable() {
- return true;
- }
-
- public Object invokeTarget(Object payload) throws InvocationTargetException {
- try {
- if (payload != null && !payload.getClass().isArray()) {
- return operation.invoke(instance, payload);
- } else {
- return operation.invoke(instance, (Object[]) payload);
- }
- } catch (IllegalAccessException e) {
- throw new InvocationRuntimeException(e);
- }
- }
-
- public Message invoke(Message msg) {
- try {
- Object resp = invokeTarget(msg.getBody());
- msg.setBody(resp);
- } catch (InvocationTargetException e) {
- msg.setBody(e.getCause());
- } catch (Throwable e) {
- msg.setBody(e);
- }
- return msg;
- }
-
- public void setNext(Interceptor next) {
- throw new IllegalStateException("This interceptor must be the last interceptor in an interceptor chain");
- }
-
- public Object clone() throws CloneNotSupportedException {
- try {
- MockStaticInvoker invoker = (MockStaticInvoker) super.clone();
- invoker.instance = this.instance;
- invoker.operation = this.operation;
- return invoker;
- } catch (CloneNotSupportedException e) {
- return null; // will not happen
- }
- }
-}
diff --git a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockSyncInterceptor.java b/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockSyncInterceptor.java
deleted file mode 100644
index 5b70848d06..0000000000
--- a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/MockSyncInterceptor.java
+++ /dev/null
@@ -1,45 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * 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.apache.tuscany.core.async.wire.mock;
-
-import org.apache.tuscany.core.wire.Interceptor;
-import org.apache.tuscany.core.message.Message;
-
-public class MockSyncInterceptor implements Interceptor {
-
- private int count;
-
- private Interceptor next;
-
- public MockSyncInterceptor() {
- }
-
- public Message invoke(Message msg) {
- ++count;
- //System.out.println("Invoking interceptor");
- return next.invoke(msg);
- }
-
- public int getCount() {
- return count;
- }
-
- public void setNext(Interceptor next) {
- this.next=next;
- }
-}
-
diff --git a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/SimpleTarget.java b/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/SimpleTarget.java
deleted file mode 100644
index 2147a3a4db..0000000000
--- a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/SimpleTarget.java
+++ /dev/null
@@ -1,28 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * 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.apache.tuscany.core.async.wire.mock;
-
-public interface SimpleTarget {
-
- public void hello(String message) throws Exception;
-
- public void goodbye(String message) throws Exception;
-
- public void echo(String message) throws Exception;
-
-}
-
diff --git a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/SimpleTargetImpl.java b/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/SimpleTargetImpl.java
deleted file mode 100644
index e6f76494f6..0000000000
--- a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/wire/mock/SimpleTargetImpl.java
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * 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.apache.tuscany.core.async.wire.mock;
-
-import java.util.concurrent.CountDownLatch;
-
-public class SimpleTargetImpl implements SimpleTarget {
-
- private final CountDownLatch startSignal;
- private final CountDownLatch doneSignal;
-
- public SimpleTargetImpl(CountDownLatch startSignal, CountDownLatch doneSignal) {
- this.startSignal = startSignal;
- this.doneSignal = doneSignal;
- }
-
- public void hello(String message) throws Exception {
- try {
- startSignal.await();
- doneSignal.countDown();
- } catch (InterruptedException ex) {}
- }
-
- public void goodbye(String message) throws Exception {
- try {
- startSignal.await();
- doneSignal.countDown();
- } catch (InterruptedException ex) {}
- }
-
- public void echo(String message) throws Exception {
- try {
- startSignal.await();
- doneSignal.countDown();
- } catch (InterruptedException ex) {}
- }
-
-
-}
-
diff --git a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/work/DefaultWorkManagerTestCase.java b/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/work/DefaultWorkManagerTestCase.java
deleted file mode 100644
index 964564f3ee..0000000000
--- a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/work/DefaultWorkManagerTestCase.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * 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.apache.tuscany.core.async.work;
-
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.Set;
-import java.util.concurrent.CountDownLatch;
-
-import javax.resource.spi.work.Work;
-
-import junit.framework.TestCase;
-
-import org.apache.tuscany.core.async.work.DefaultWorkManager;
-
-/**
- * Test the PooledWorkManager.
- */
-public class DefaultWorkManagerTestCase extends TestCase {
-
- private Set<Thread> done;
- private int count;
-
- public void testScheduleWork() throws Exception {
-
- DefaultWorkManager workManager = new DefaultWorkManager();
- workManager.setScheduledMaximumPoolSize(3);
- workManager.init();
-
- int max=workManager.getScheduledMaximumPoolSize()*5;
- done=Collections.synchronizedSet(new HashSet<Thread>());
- count=0;
-
- CountDownLatch startSignal = new CountDownLatch(1);
- CountDownLatch doneSignal = new CountDownLatch(max);
- for (int i = 0; i < max; ++i) {
- workManager.scheduleWork(new Worker(startSignal, doneSignal));
- }
- startSignal.countDown();
- doneSignal.await();
-
- assertFalse(done.contains(Thread.currentThread()));
- assert(done.size()==workManager.getScheduledMaximumPoolSize());
- assert(count==max);
-
- done=null;
- count=0;
-
- workManager.destroy();
-
- }
-
- private synchronized void done(Thread thread) {
- done.add(thread);
- count++;
- }
-
- private class Worker implements Work {
- private final CountDownLatch startSignal;
- private final CountDownLatch doneSignal;
-
- Worker(CountDownLatch startSignal, CountDownLatch doneSignal) {
- this.startSignal = startSignal;
- this.doneSignal = doneSignal;
- }
-
- public void run() {
- try {
- startSignal.await();
-
- DefaultWorkManagerTestCase.this.done(Thread.currentThread());
- //System.out.println(Thread.currentThread());
-
- doneSignal.countDown();
- } catch (InterruptedException ex) {
- }
- }
-
- public void release() {
- }
-
- }
-
-}
diff --git a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/work/GeronimoWorkManagerTestCase.java b/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/work/GeronimoWorkManagerTestCase.java
deleted file mode 100644
index 18570d54c3..0000000000
--- a/tags/java-M1-20060522/java/sca/core/src/test/java/org/apache/tuscany/core/async/work/GeronimoWorkManagerTestCase.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- *
- * Copyright 2005 The Apache Software Foundation or its licensors, as applicable.
- *
- * 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.apache.tuscany.core.async.work;
-
-import javax.resource.spi.work.Work;
-import javax.resource.spi.work.WorkEvent;
-import javax.resource.spi.work.WorkListener;
-
-import junit.framework.TestCase;
-
-import org.apache.geronimo.connector.work.GeronimoWorkManager;
-import org.apache.geronimo.transaction.context.TransactionContextManager;
-
-/**
- * Tests the Geronimo work manager
- *
- * @version $Rev$ $Date$
- */
-public class GeronimoWorkManagerTestCase extends TestCase {
-
- private GeronimoWorkManager workManager;
-
- protected void setUp() throws Exception {
- TransactionContextManager transactionContextManager = new TransactionContextManager();
-
- workManager = new GeronimoWorkManager(2, transactionContextManager);
- workManager.doStart();
- }
-
- public void testScheduleWork() throws Exception {
- TestThread threads[] = startTestThreads(5, 10000, 100);
- int accepted = 0;
- int started = 0;
- for (int i = 0; i < threads.length; i++) {
- if (null != threads[i].listener.acceptedEvent) {
- accepted++;
- } else if (null != threads[i].listener.startedEvent) {
- started++;
- } else {
- fail("incorrect state, expecting accepted or started");
- }
- }
- assertTrue(accepted > 0);
- }
-
- private TestThread[] startTestThreads(int count, int timeout, int delay) throws Exception {
- TestThread threads[] = new TestThread[count];
- for (int i = 0; i < count; i++) {
- TestWorkListener listener=new TestWorkListener();
- threads[i] = new TestThread(listener, timeout, delay);
- }
- for (int i = 0; i < count; i++) {
- threads[i].start();
- }
- for (int i = 0; i < count; i++) {
- threads[i].join();
- }
- return threads;
- }
-
- private class TestThread extends Thread {
- public final TestWorkListener listener;
- private final int timeout;
- private final int delay;
-
- public TestThread(TestWorkListener listener, int timeout, int delay) {
- this.listener = listener;
- this.timeout = timeout;
- this.delay = delay;
- }
-
- public void run() {
- try {
- workManager.scheduleWork(new TestWorker(delay), timeout, null, listener);
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
-
- }
-
- public class TestWorker implements Work {
- private final int delay;
-
- public TestWorker(int delay) {
- this.delay = delay;
- }
-
- public void release() {
- }
-
- public void run() {
- try {
- Thread.sleep(delay);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
- }
-
- }
-
- public class TestWorkListener implements WorkListener {
- public WorkEvent acceptedEvent;
- public WorkEvent rejectedEvent;
- public WorkEvent startedEvent;
- public WorkEvent completedEvent;
-
- public void workAccepted(WorkEvent e) {
- acceptedEvent = e;
- }
-
- public void workRejected(WorkEvent e) {
- rejectedEvent = e;
- }
-
- public void workStarted(WorkEvent e) {
- startedEvent = e;
- }
-
- public void workCompleted(WorkEvent e) {
- completedEvent = e;
- }
- }
-}