From 56f0d297c6eba38d5187431ed9319a97ff5d6094 Mon Sep 17 00:00:00 2001 From: lresende Date: Mon, 4 Oct 2010 14:44:27 +0000 Subject: Rename 2.0-M5.1 release tag git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@1004265 13f79535-47bb-0310-9956-ffa450edef68 --- .../impl/InvocationChainImplTestCase.java | 93 -------- .../core/invocation/impl/PhaseManagerTestCase.java | 50 ----- .../core/invocation/impl/PhaseSorterTestCase.java | 67 ------ .../tuscany/sca/core/work/impl/FailingWork.java | 54 ----- .../core/work/impl/JSR237MyFailingRunnable.java | 43 ---- .../sca/core/work/impl/JSR237MyRunnable.java | 71 ------ .../sca/core/work/impl/JSR237MyRunnerListener.java | 154 ------------- .../work/impl/Jsr237WorkSchedulerTestCase.java | 240 --------------------- .../sca/core/work/impl/TestWorkListener.java | 153 ------------- .../work/impl/ThreadPoolWorkManagerTestCase.java | 227 ------------------- .../tuscany/sca/core/work/impl/TimeDelayWork.java | 86 -------- .../apache/tuscany/sca/scope/ScopeTestCase.java | 66 ------ 12 files changed, 1304 deletions(-) delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManagerTestCase.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/PhaseSorterTestCase.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/FailingWork.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyFailingRunnable.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyRunnable.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyRunnerListener.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/Jsr237WorkSchedulerTestCase.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/TestWorkListener.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/ThreadPoolWorkManagerTestCase.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/TimeDelayWork.java delete mode 100644 sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/scope/ScopeTestCase.java (limited to 'sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java') diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java deleted file mode 100644 index 1302bed681..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/InvocationChainImplTestCase.java +++ /dev/null @@ -1,93 +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 org.apache.tuscany.sca.core.invocation.impl; - -import static org.junit.Assert.assertEquals; - -import org.apache.tuscany.sca.core.DefaultExtensionPointRegistry; -import org.apache.tuscany.sca.interfacedef.Operation; -import org.apache.tuscany.sca.interfacedef.impl.OperationImpl; -import org.apache.tuscany.sca.invocation.Interceptor; -import org.apache.tuscany.sca.invocation.InvocationChain; -import org.apache.tuscany.sca.invocation.Invoker; -import org.apache.tuscany.sca.invocation.Message; -import org.apache.tuscany.sca.invocation.Phase; -import org.junit.Test; - -/** - * @version $Rev$ $Date$ - */ -public class InvocationChainImplTestCase { - - @Test - public void testInsertAtEnd() throws Exception { - Operation op = newOperation("foo"); - InvocationChain chain = new InvocationChainImpl(op, op, true, new PhaseManager(new DefaultExtensionPointRegistry())); - Interceptor inter2 = new MockInterceptor(); - Interceptor inter1 = new MockInterceptor(); - chain.addInterceptor(inter1); - chain.addInterceptor(inter2); - Interceptor head = (Interceptor)chain.getHeadInvoker(); - assertEquals(inter1, head); - assertEquals(inter2, head.getNext()); - } - - @Test - public void testAddByPhase() throws Exception { - Operation op = newOperation("foo"); - InvocationChain chain = new InvocationChainImpl(op, op, false, new PhaseManager(new DefaultExtensionPointRegistry())); - Interceptor inter1 = new MockInterceptor(); - Interceptor inter2 = new MockInterceptor(); - Interceptor inter3 = new MockInterceptor(); - Interceptor inter4 = new MockInterceptor(); - chain.addInterceptor(inter3); // SERVICE - chain.addInterceptor(Phase.IMPLEMENTATION_POLICY, inter4); - chain.addInterceptor(Phase.SERVICE_POLICY, inter2); - chain.addInterceptor(Phase.SERVICE_BINDING, inter1); - Interceptor head = (Interceptor)chain.getHeadInvoker(); - assertEquals(inter1, head); - assertEquals(inter2, inter1.getNext()); - assertEquals(inter3, inter2.getNext()); - assertEquals(inter4, inter3.getNext()); - } - - private class MockInterceptor implements Interceptor { - - private Invoker next; - - public Message invoke(Message msg) { - return null; - } - - public void setNext(Invoker next) { - this.next = next; - } - - public Invoker getNext() { - return next; - } - - } - - private static Operation newOperation(String name) { - Operation operation = new OperationImpl(); - operation.setName(name); - return operation; - } -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManagerTestCase.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManagerTestCase.java deleted file mode 100644 index 8fcead004d..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/PhaseManagerTestCase.java +++ /dev/null @@ -1,50 +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 org.apache.tuscany.sca.core.invocation.impl; - -import java.util.List; - -import org.junit.Assert; -import org.junit.Test; - -/** - * @version $Rev$ $Date$ - */ -public class PhaseManagerTestCase { - - @Test - public void testDiscovery() { - PhaseManager pm = new PhaseManager("org.apache.tuscany.sca.invocation.PhaseTest"); - List phases = pm.getAllPhases(); - System.out.println(phases.size()); - System.out.println(phases); - // Assert.assertEquals(15, phases.size()); - Assert.assertEquals("reference.first", phases.get(0)); - - int rt = phases.indexOf("reference.transaction"); - Assert.assertTrue(rt > phases.indexOf("reference.interface")); - - int st = phases.indexOf("service.transaction"); - Assert.assertTrue(st > phases.indexOf("service.binding")); - - int it = phases.indexOf("implementation.transaction"); - Assert.assertTrue(it < phases.indexOf("implementation.policy")); - } -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/PhaseSorterTestCase.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/PhaseSorterTestCase.java deleted file mode 100644 index c268e133e4..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/invocation/impl/PhaseSorterTestCase.java +++ /dev/null @@ -1,67 +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 org.apache.tuscany.sca.core.invocation.impl; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import java.util.Arrays; -import java.util.List; - -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class PhaseSorterTestCase { - private PhaseSorter graph; - - @Before - public void setUp() throws Exception { - graph = new PhaseSorter(); - } - - @Test - public void testSort() { - graph.addEdge("a", "b"); - graph.addEdge("a", "c"); - graph.addEdge("c", "d"); - graph.addEdge("b", "c"); - List order = graph.topologicalSort(true); - assertEquals(Arrays.asList("a", "b", "c", "d"), order); - assertTrue(!graph.getVertices().isEmpty()); - - graph.addEdge("d", "a"); - try { - order = graph.topologicalSort(true); - assertTrue("Should have failed", false); - } catch (IllegalArgumentException e) { - assertTrue(true); - } - - graph.removeEdge("d", "a"); - order = graph.topologicalSort(false); - assertEquals(Arrays.asList("a", "b", "c", "d"), order); - assertTrue(graph.getVertices().isEmpty()); - } - - @After - public void tearDown() throws Exception { - } - -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/FailingWork.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/FailingWork.java deleted file mode 100644 index 16ca5fd00e..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/FailingWork.java +++ /dev/null @@ -1,54 +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 org.apache.tuscany.sca.core.work.impl; - - - -/** - * Simple Work item that will throw an exception - * - * @version $Rev$ $Date$ - */ -public class FailingWork extends Work { - - public FailingWork() { - super(null); - } - - /** - * {@inheritDoc} - */ - public boolean isDaemon() { - return false; - } - - /** - * {@inheritDoc} - */ - public void release() { - } - - /** - * Throws an IllegalArgumentException - */ - public void run() { - System.out.println("Starting " + this + " and throwing an Exception"); - throw new IllegalArgumentException("Sample exception from " + this); - } -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyFailingRunnable.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyFailingRunnable.java deleted file mode 100644 index 2d791e5012..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyFailingRunnable.java +++ /dev/null @@ -1,43 +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 org.apache.tuscany.sca.core.work.impl; - -/** - * Simple Runnable that throws an IllegalArgumentException - * - * @version $Rev$ $Date$ - */ -public class JSR237MyFailingRunnable extends JSR237MyRunnable { - - /** - * Constructor - */ - public JSR237MyFailingRunnable() { - super(-1); - } - - /** - * Sleeps for a period of time defined by sleepTime - */ - @Override - public void run() { - System.out.println("Starting " + this + " and throwing an Exception"); - throw new IllegalArgumentException("Sample exception from " + this); - } -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyRunnable.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyRunnable.java deleted file mode 100644 index c0183b6f9b..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyRunnable.java +++ /dev/null @@ -1,71 +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 org.apache.tuscany.sca.core.work.impl; - -import java.util.concurrent.atomic.AtomicInteger; - -/** - * Simple Runnable that is used for testing Jsr237WorkScheduler - * - * @version $Rev$ $Date$ - */ -public class JSR237MyRunnable implements Runnable { - - /** - * Count of workAccepted() method calls - */ - private AtomicInteger runCompletedCount = new AtomicInteger(); - - /** - * The amount of time to sleep in the Run loop - */ - private final long sleepTime; - - /** - * Constructor - * - * @param sleepTime The amount of time to sleep (in milliseconds) in the run() method - */ - public JSR237MyRunnable(long sleepTime) { - this.sleepTime = sleepTime; - } - - /** - * Sleeps for a period of time defined by sleepTime - */ - public void run() { - System.out.println("Starting " + this); - try { - Thread.sleep(sleepTime); - } catch (InterruptedException e) { - e.printStackTrace(); - } - System.out.println("Done " + this); - runCompletedCount.incrementAndGet(); - } - - /** - * Returns the number of completed calls to run() - * - * @return The number of completed calls to run() - */ - public int getRunCompletedCount() { - return runCompletedCount.get(); - } -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyRunnerListener.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyRunnerListener.java deleted file mode 100644 index 307f24aca7..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/JSR237MyRunnerListener.java +++ /dev/null @@ -1,154 +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 org.apache.tuscany.sca.core.work.impl; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; - -import org.apache.tuscany.sca.work.NotificationListener; - -/** - * Simple NotificationListener that is used for testing Jsr237WorkScheduler - * - * @version $Rev$ $Date$ - */ -public class JSR237MyRunnerListener implements NotificationListener { - - /** - * Count of workAccepted() method calls - */ - private AtomicInteger workAcceptedCallCount = new AtomicInteger(); - - /** - * Count of workStarted() method calls - */ - private AtomicInteger workStartedCallCount = new AtomicInteger(); - - /** - * Count of workCompleted() method calls - */ - private AtomicInteger workCompletedCallCount = new AtomicInteger(); - - /** - * Count of workFailed() method calls - */ - private AtomicInteger workFailedCallCount = new AtomicInteger(); - - /** - * Count of workRejected() method calls - */ - private AtomicInteger workRejectedCallCount = new AtomicInteger(); - - /** - * List of all exceptions thrown by Work items - */ - private List workExceptions = Collections.synchronizedList(new ArrayList()); - - /** - * {@inheritDoc} - */ - public void workAccepted(JSR237MyRunnable work) { - workAcceptedCallCount.incrementAndGet(); - } - - /** - * {@inheritDoc} - */ - public void workCompleted(JSR237MyRunnable work) { - workCompletedCallCount.incrementAndGet(); - } - - /** - * {@inheritDoc} - */ - public void workFailed(JSR237MyRunnable work, Throwable error) { - workExceptions.add(error); - workFailedCallCount.incrementAndGet(); - } - - /** - * {@inheritDoc} - */ - public void workRejected(JSR237MyRunnable work) { - workRejectedCallCount.incrementAndGet(); - } - - /** - * {@inheritDoc} - */ - public void workStarted(JSR237MyRunnable work) { - workStartedCallCount.incrementAndGet(); - } - - /** - * Returns the number of calls to workAccepted() - * - * @return The number of calls to workAccepted() - */ - public int getWorkAcceptedCallCount() { - return workAcceptedCallCount.get(); - } - - /** - * Returns the number of calls to workStarted() - * - * @return The number of calls to workStarted() - */ - public int getWorkStartedCallCount() { - return workStartedCallCount.get(); - } - - /** - * Returns the number of calls to workCompleted() - * - * @return The number of calls to workCompleted() - */ - public int getWorkCompletedCallCount() { - return workCompletedCallCount.get(); - } - - /** - * Returns the number of calls to workFailed() - * - * @return The number of calls to workFailed() - */ - public int getWorkFailedCallCount() { - return workFailedCallCount.get(); - } - - /** - * Returns the number of calls to workRejected() - * - * @return The number of calls to workRejected() - */ - public int getWorkRejectedCallCount() { - return workRejectedCallCount.get(); - } - - /** - * Returns a List of all exceptions that are thrown by the Work items - * - * @return A List of all exceptions that are thrown by the Work items - */ - public List getWorkExceptions() { - return Collections.unmodifiableList(workExceptions); - } -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/Jsr237WorkSchedulerTestCase.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/Jsr237WorkSchedulerTestCase.java deleted file mode 100644 index 4ec0f55867..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/Jsr237WorkSchedulerTestCase.java +++ /dev/null @@ -1,240 +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 org.apache.tuscany.sca.core.work.impl; - -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * Test case for Jsr237WorkScheduler - * - * @version $Rev$ $Date$ - */ -public class Jsr237WorkSchedulerTestCase { - - /** - * Wait up to 20 seconds for the Work units to complete - */ - private static final long WAIT_TIMEOUT = 20000; - - /** - * This is the shared instance of the ThreadPoolWorkManager used by the tests - */ - private static DefaultWorkScheduler workSchedular = null; - - /** - * Setup the Jsr237WorkScheduler - */ - @BeforeClass - public static void setup() { - workSchedular = new DefaultWorkScheduler(null, null); - } - - /** - * Make sure that the Jsr237WorkScheduler is stopped after running the tests - */ - @AfterClass - public static void destroy() { - if (workSchedular != null) { - workSchedular.stop(); - } - } - - /** - * Tests running a single fast job on the Jsr237WorkScheduler - */ - @Test - public void testSingleFastJob() { - // Create the work and register it - JSR237MyRunnable fast = new JSR237MyRunnable(10); - JSR237MyRunnerListener listener = new JSR237MyRunnerListener(); - workSchedular.scheduleWork(fast, listener); - - // Wait for the 1 job to complete - waitForWorkToComplete(listener, 1); - - // Test that the job completed successfully. - Assert.assertEquals(1, listener.getWorkAcceptedCallCount()); - Assert.assertEquals(0, listener.getWorkRejectedCallCount()); - Assert.assertEquals(1, listener.getWorkStartedCallCount()); - Assert.assertEquals(1, listener.getWorkCompletedCallCount()); - Assert.assertEquals(0, listener.getWorkExceptions().size()); - } - - /** - * Tests running a single job that fails on the Jsr237WorkScheduler - */ - @Test - public void testSingleFailingJob() { - // Create the work and register it - JSR237MyFailingRunnable fail = new JSR237MyFailingRunnable(); - JSR237MyRunnerListener listener = new JSR237MyRunnerListener(); - workSchedular.scheduleWork(fail, listener); - - // Wait for the 1 job to complete - waitForWorkToComplete(listener, 1); - - // Test that the job completed successfully. - Assert.assertEquals(1, listener.getWorkAcceptedCallCount()); - Assert.assertEquals(0, listener.getWorkRejectedCallCount()); - Assert.assertEquals(1, listener.getWorkStartedCallCount()); - Assert.assertEquals(0, listener.getWorkCompletedCallCount()); - Assert.assertEquals(1, listener.getWorkFailedCallCount()); - Assert.assertEquals(1, listener.getWorkExceptions().size()); - } - - /** - * Tests running a mixture of fast and slow jobs on the Jsr237WorkScheduler - */ - @Test - public void testMultipleJobs() { - // Create the work and register it - JSR237MyRunnable fast1 = new JSR237MyRunnable(5); - JSR237MyRunnable fast2 = new JSR237MyRunnable(10); - JSR237MyRunnable fast3 = new JSR237MyRunnable(20); - JSR237MyRunnable slow1= new JSR237MyRunnable(200); - JSR237MyRunnable slow2 = new JSR237MyRunnable(200); - JSR237MyRunnerListener listener = new JSR237MyRunnerListener(); - workSchedular.scheduleWork(fast1, listener); - workSchedular.scheduleWork(fast2, listener); - workSchedular.scheduleWork(fast3, listener); - workSchedular.scheduleWork(slow1, listener); - workSchedular.scheduleWork(slow2, listener); - - // Wait for the 5 jobs to complete - waitForWorkToComplete(listener, 5); - - // Test that the job completed successfully. - Assert.assertEquals(5, listener.getWorkAcceptedCallCount()); - Assert.assertEquals(0, listener.getWorkRejectedCallCount()); - Assert.assertEquals(5, listener.getWorkStartedCallCount()); - Assert.assertEquals(5, listener.getWorkCompletedCallCount()); - Assert.assertEquals(0, listener.getWorkExceptions().size()); - } - - /** - * Tests running a mixture of fast and slow jobs some of which fail on the - * Jsr237WorkScheduler - */ - @Test - public void testMultipleJobsSomeFail() { - // Create the work and register it - JSR237MyRunnable fast1 = new JSR237MyRunnable(5); - JSR237MyRunnable fast2 = new JSR237MyRunnable(10); - JSR237MyRunnable fast3 = new JSR237MyRunnable(20); - JSR237MyRunnable slow1= new JSR237MyRunnable(200); - JSR237MyRunnable slow2 = new JSR237MyRunnable(200); - JSR237MyFailingRunnable fail1 = new JSR237MyFailingRunnable(); - JSR237MyFailingRunnable fail2 = new JSR237MyFailingRunnable(); - JSR237MyRunnerListener listener = new JSR237MyRunnerListener(); - workSchedular.scheduleWork(fast1, listener); - workSchedular.scheduleWork(fast2, listener); - workSchedular.scheduleWork(fail1, listener); - workSchedular.scheduleWork(fast3, listener); - workSchedular.scheduleWork(slow1, listener); - workSchedular.scheduleWork(fail2, listener); - workSchedular.scheduleWork(slow2, listener); - - // Wait for the 7 jobs to complete - waitForWorkToComplete(listener, 7); - - // Test that the job completed successfully. - Assert.assertEquals(7, listener.getWorkAcceptedCallCount()); - Assert.assertEquals(0, listener.getWorkRejectedCallCount()); - Assert.assertEquals(7, listener.getWorkStartedCallCount()); - Assert.assertEquals(5, listener.getWorkCompletedCallCount()); - Assert.assertEquals(2, listener.getWorkFailedCallCount()); - Assert.assertEquals(2, listener.getWorkExceptions().size()); - } - - /** - * Tests running a single job that has no listener - */ - @Test - public void testSingleFastJobWithNoListener() { - // Create the work and register it - JSR237MyRunnable fast = new JSR237MyRunnable(10); - workSchedular.scheduleWork(fast); - - // Wait for the job to complete - long startTime = System.currentTimeMillis(); - while (true) { - int completedCount = fast.getRunCompletedCount(); - if (completedCount == 1) { - break; - } - - if (System.currentTimeMillis() - startTime > WAIT_TIMEOUT) { - Assert.fail("Only " + completedCount + " work items completed before timeout"); - return; - } - - // Lets wait for the job to complete - try { - Thread.sleep(25); - } catch (InterruptedException ex) { - Assert.fail("Unexpected exception: " + ex); - } - } - } - - /** - * Tests scheduling a null as the work item - */ - @Test - public void testNullWork() { - try { - workSchedular.scheduleWork(null); - Assert.fail("Should have thrown IllegalArgumentException "); - } catch (IllegalArgumentException ex) { - // As expected - Assert.assertTrue(ex.toString().indexOf("null") != -1); - } - } - - /** - * Waits for the specified number of jobs to complete or the timeout to fire. - * - * @param listener The listener to use to track Work unit completion - * @param completedWorkItemsToWaitFor The number of Work items to complete - */ - private void waitForWorkToComplete(JSR237MyRunnerListener listener, int completedWorkItemsToWaitFor) { - long startTime = System.currentTimeMillis(); - while (true) { - int completedCount = listener.getWorkCompletedCallCount() + listener.getWorkFailedCallCount(); - if (completedCount == completedWorkItemsToWaitFor) { - return; - } - - if (System.currentTimeMillis() - startTime > WAIT_TIMEOUT) { - Assert.fail("Only " + completedCount + " work items completed before timeout"); - return; - } - - // Lets wait for more jobs to complete - try { - Thread.sleep(25); - } catch (InterruptedException ex) { - Assert.fail("Unexpected exception: " + ex); - } - } - } -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/TestWorkListener.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/TestWorkListener.java deleted file mode 100644 index a452d6f371..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/TestWorkListener.java +++ /dev/null @@ -1,153 +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 org.apache.tuscany.sca.core.work.impl; - -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; - -import org.apache.tuscany.sca.work.WorkSchedulerException; -import org.junit.Assert; - -/** - * A simple WorkListener that tracks invocations to it. - * - * @version $Rev$ $Date$ - */ -public class TestWorkListener implements WorkListener { - - /** - * Count of workAccepted() method calls - */ - private AtomicInteger workAcceptedCallCount = new AtomicInteger(); - - /** - * Count of workStarted() method calls - */ - private AtomicInteger workStartedCallCount = new AtomicInteger(); - - /** - * Count of workCompleted() method calls - */ - private AtomicInteger workCompletedCallCount = new AtomicInteger(); - - /** - * Count of workRejected() method calls - */ - private AtomicInteger workRejectedCallCount = new AtomicInteger(); - - /** - * List of all exceptions thrown by Work items - */ - private List workExceptions = Collections.synchronizedList(new ArrayList()); - - /** - * {@inheritDoc} - */ - public void workAccepted(WorkEvent work) { - workAcceptedCallCount.incrementAndGet(); - - // Validate the WorkEvent - Assert.assertNotNull(work.getWorkItem()); - Assert.assertEquals(WorkEvent.WORK_ACCEPTED, work.getType()); - } - - /** - * {@inheritDoc} - */ - public void workStarted(WorkEvent work) { - workStartedCallCount.incrementAndGet(); - - // Validate the WorkEvent - Assert.assertNotNull(work.getWorkItem()); - Assert.assertEquals(WorkEvent.WORK_STARTED, work.getType()); - } - - /** - * {@inheritDoc} - */ - public void workCompleted(WorkEvent work) { - if (work.getException() != null) { - workExceptions.add(work.getException()); - } - - // Validate the WorkEvent - Assert.assertNotNull(work.getWorkItem()); - Assert.assertEquals(WorkEvent.WORK_COMPLETED, work.getType()); - - workCompletedCallCount.incrementAndGet(); - } - - /** - * {@inheritDoc} - */ - public void workRejected(WorkEvent work) { - workRejectedCallCount.incrementAndGet(); - - // Validate the WorkEvent - Assert.assertNotNull(work.getWorkItem()); - Assert.assertEquals(WorkEvent.WORK_REJECTED, work.getType()); - } - - /** - * Returns the number of calls to workAccepted() - * - * @return The number of calls to workAccepted() - */ - public int getWorkAcceptedCallCount() { - return workAcceptedCallCount.get(); - } - - /** - * Returns the number of calls to workStarted() - * - * @return The number of calls to workStarted() - */ - public int getWorkStartedCallCount() { - return workStartedCallCount.get(); - } - - /** - * Returns the number of calls to workCompleted() - * - * @return The number of calls to workCompleted() - */ - public int getWorkCompletedCallCount() { - return workCompletedCallCount.get(); - } - - /** - * Returns the number of calls to workRejected() - * - * @return The number of calls to workRejected() - */ - public int getWorkRejectedCallCount() { - return workRejectedCallCount.get(); - } - - /** - * Returns a List of all exceptions that are thrown by the Work items - * - * @return A List of all exceptions that are thrown by the Work items - */ - public List getWorkExceptions() { - return Collections.unmodifiableList(workExceptions); - } -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/ThreadPoolWorkManagerTestCase.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/ThreadPoolWorkManagerTestCase.java deleted file mode 100644 index 122609d7e6..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/ThreadPoolWorkManagerTestCase.java +++ /dev/null @@ -1,227 +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 org.apache.tuscany.sca.core.work.impl; - -import org.junit.AfterClass; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * This test case will test the ThreadPoolWorkManager - * - * @version $Rev$ $Date$ - */ -public class ThreadPoolWorkManagerTestCase { - - /** - * Wait up to 20 seconds for the Work units to complete - */ - private static final long WAIT_TIMEOUT = 20000; - - /** - * This is the shared instance of the ThreadPoolWorkManager used by the tests - */ - private static ThreadPoolWorkManager workManager = null; - - /** - * Setup the ThreadPoolWorkManager - */ - @BeforeClass - public static void setup() { - workManager = new ThreadPoolWorkManager(10); - } - - /** - * Make sure that the ThreadPoolWorkManager is stopped after running the tests - */ - @AfterClass - public static void destroy() { - if (workManager != null) { - workManager.destroy(); - } - } - - /** - * Tests running a single fast job on the ThreadPoolWorkManager - */ - @Test - public void testSingleFastJob() { - // Create the work and register it - TimeDelayWork fast = new TimeDelayWork(10); - TestWorkListener listener = new TestWorkListener(); - workManager.schedule(fast, listener); - - // Wait for the 1 job to complete - waitForWorkToComplete(listener, 1); - - // Test that the job completed successfully. - Assert.assertEquals(1, listener.getWorkAcceptedCallCount()); - Assert.assertEquals(0, listener.getWorkRejectedCallCount()); - Assert.assertEquals(1, listener.getWorkStartedCallCount()); - Assert.assertEquals(1, listener.getWorkCompletedCallCount()); - Assert.assertEquals(0, listener.getWorkExceptions().size()); - } - - /** - * Tests running a single job that fails on the ThreadPoolWorkManager - */ - @Test - public void testSingleFailingJob() { - // Create the work and register it - FailingWork fail = new FailingWork(); - TestWorkListener listener = new TestWorkListener(); - workManager.schedule(fail, listener); - - // Wait for the 1 job to complete - waitForWorkToComplete(listener, 1); - - // Test that the job completed successfully. - Assert.assertEquals(1, listener.getWorkAcceptedCallCount()); - Assert.assertEquals(0, listener.getWorkRejectedCallCount()); - Assert.assertEquals(1, listener.getWorkStartedCallCount()); - Assert.assertEquals(1, listener.getWorkCompletedCallCount()); - Assert.assertEquals(1, listener.getWorkExceptions().size()); - } - - /** - * Tests running a mixture of fast and slow jobs on the ThreadPoolWorkManager - */ - @Test - public void testMultipleJobs() { - // Create the work and register it - TimeDelayWork fast1 = new TimeDelayWork(5); - TimeDelayWork fast2 = new TimeDelayWork(10); - TimeDelayWork fast3 = new TimeDelayWork(20); - TimeDelayWork slow1= new TimeDelayWork(200); - TimeDelayWork slow2 = new TimeDelayWork(200); - TestWorkListener listener = new TestWorkListener(); - workManager.schedule(fast1, listener); - workManager.schedule(fast2, listener); - workManager.schedule(fast3, listener); - workManager.schedule(slow1, listener); - workManager.schedule(slow2, listener); - - // Wait for the 5 jobs to complete - waitForWorkToComplete(listener, 5); - - // Test that the job completed successfully. - Assert.assertEquals(5, listener.getWorkAcceptedCallCount()); - Assert.assertEquals(0, listener.getWorkRejectedCallCount()); - Assert.assertEquals(5, listener.getWorkStartedCallCount()); - Assert.assertEquals(5, listener.getWorkCompletedCallCount()); - Assert.assertEquals(0, listener.getWorkExceptions().size()); - } - - /** - * Tests running a mixture of fast and slow jobs some of which fail on the - * ThreadPoolWorkManager - */ - @Test - public void testMultipleJobsSomeFail() { - // Create the work and register it - TimeDelayWork fast1 = new TimeDelayWork(5); - TimeDelayWork fast2 = new TimeDelayWork(10); - TimeDelayWork fast3 = new TimeDelayWork(20); - TimeDelayWork slow1= new TimeDelayWork(200); - TimeDelayWork slow2 = new TimeDelayWork(200); - FailingWork fail1 = new FailingWork(); - FailingWork fail2 = new FailingWork(); - TestWorkListener listener = new TestWorkListener(); - workManager.schedule(fast1, listener); - workManager.schedule(fast2, listener); - workManager.schedule(fail1, listener); - workManager.schedule(fast3, listener); - workManager.schedule(slow1, listener); - workManager.schedule(fail2, listener); - workManager.schedule(slow2, listener); - - // Wait for the 7 jobs to complete - waitForWorkToComplete(listener, 7); - - // Test that the job completed successfully. - Assert.assertEquals(7, listener.getWorkAcceptedCallCount()); - Assert.assertEquals(0, listener.getWorkRejectedCallCount()); - Assert.assertEquals(7, listener.getWorkStartedCallCount()); - Assert.assertEquals(7, listener.getWorkCompletedCallCount()); - Assert.assertEquals(2, listener.getWorkExceptions().size()); - } - - /** - * Tests running a single job that has no listener - */ - @Test - public void testSingleFastJobWithNoListener() { - // Create the work and register it - TimeDelayWork fast = new TimeDelayWork(10); - workManager.schedule(fast); - - // Wait for the job to complete - long startTime = System.currentTimeMillis(); - while (true) { - int completedCount = fast.getRunCompletedCount(); - if (completedCount == 1) { - break; - } - - if (System.currentTimeMillis() - startTime > WAIT_TIMEOUT) { - Assert.fail("Only " + completedCount + " work items completed before timeout"); - return; - } - - // Lets wait for the job to complete - try { - Thread.sleep(25); - } catch (InterruptedException ex) { - Assert.fail("Unexpected exception: " + ex); - } - } - - // Make sure we have got one completed run - Assert.assertEquals(1, fast.getRunCompletedCount()); - } - - /** - * Waits for the specified number of jobs to complete or the timeout to fire. - * - * @param listener The listener to use to track Work unit completion - * @param completedWorkItemsToWaitFor The number of Work items to complete - */ - private void waitForWorkToComplete(TestWorkListener listener, int completedWorkItemsToWaitFor) { - long startTime = System.currentTimeMillis(); - while (true) { - int completedCount = listener.getWorkCompletedCallCount(); - if (completedCount == completedWorkItemsToWaitFor) { - return; - } - - if (System.currentTimeMillis() - startTime > WAIT_TIMEOUT) { - Assert.fail("Only " + completedCount + " work items completed before timeout"); - return; - } - - // Lets wait for more jobs to complete - try { - Thread.sleep(25); - } catch (InterruptedException ex) { - Assert.fail("Unexpected exception: " + ex); - } - } - } -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/TimeDelayWork.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/TimeDelayWork.java deleted file mode 100644 index f6435659ef..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/core/work/impl/TimeDelayWork.java +++ /dev/null @@ -1,86 +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 org.apache.tuscany.sca.core.work.impl; - -import java.util.concurrent.atomic.AtomicInteger; - -/** - * Simple Work item that will sleep in the run() method for the specified - * period of time - * - * @version $Rev$ $Date$ - */ -public class TimeDelayWork extends Work { - - /** - * Count of completed run() method calls - */ - private AtomicInteger runCompletedCount = new AtomicInteger(); - - /** - * The amount of time to sleep in the Run loop - */ - private final long sleepTime; - - /** - * Constructor - * - * @param sleepTime The amount of time to sleep (in milliseconds) in the run() method - */ - public TimeDelayWork(long sleepTime) { - super(null); - this.sleepTime = sleepTime; - } - - /** - * {@inheritDoc} - */ - public boolean isDaemon() { - return false; - } - - /** - * {@inheritDoc} - */ - public void release() { - } - - /** - * Sleeps for a period of time defined by sleepTime - */ - public void run() { - System.out.println("Starting " + this); - try { - Thread.sleep(sleepTime); - } catch (InterruptedException e) { - e.printStackTrace(); - } - System.out.println("Done " + this); - runCompletedCount.incrementAndGet(); - } - - /** - * Returns the number of completed calls to run() - * - * @return The number of completed calls to run() - */ - public int getRunCompletedCount() { - return runCompletedCount.get(); - } -} diff --git a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/scope/ScopeTestCase.java b/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/scope/ScopeTestCase.java deleted file mode 100644 index ca7bf9b3d7..0000000000 --- a/sca-java-2.x/tags/sca-java-2.0-M5.1/modules/core/src/test/java/org/apache/tuscany/sca/scope/ScopeTestCase.java +++ /dev/null @@ -1,66 +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 org.apache.tuscany.sca.scope; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.apache.tuscany.sca.core.scope.Scope; -import org.junit.Test; -/** - * @version $Rev$ $Date$ - */ -public class ScopeTestCase { - - @Test - public void testEquals() throws Exception { - Scope scope = new Scope("COMPOSITE"); - assertTrue(scope.equals(Scope.COMPOSITE)); - } - - @Test - public void testEqualsNew() throws Exception { - Scope foo = new Scope("foo"); - Scope foo2 = new Scope("FOO"); - assertTrue(foo.equals(foo2)); - } - - @Test - public void testNotEquals() throws Exception { - Scope foo = new Scope("BAR"); - Scope foo2 = new Scope("FOO"); - assertFalse(foo.equals(foo2)); - } - - @Test - public void testNotEqualsDifferent() throws Exception { - Scope foo = new Scope("FOO"); - assertFalse(foo.equals(new Bar("FOO"))); - } - - public class Bar { - String scope; - - public Bar(String scope) { - this.scope = scope; - } - } - - -} -- cgit v1.2.3