Author: veithen
Date: Sat Sep 20 08:36:05 2008
New Revision: 697380
URL: http://svn.apache.org/viewvc?rev=697380&view=rev
Log:
Transport test kit: redirect logs on a per test case basis
Added:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSetTransition.java
Modified:
synapse/trunk/java/modules/transports/log4j.properties
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/util/LogManager.java
Modified: synapse/trunk/java/modules/transports/log4j.properties
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/log4j.properties?rev=697380&r1=697379&r2=697380&view=diff
==============================================================================
--- synapse/trunk/java/modules/transports/log4j.properties (original)
+++ synapse/trunk/java/modules/transports/log4j.properties Sat Sep 20 08:36:05
2008
@@ -19,14 +19,9 @@
# log4j configuration file used by unit tests
-log4j.rootCategory=INFO, CONSOLE
-#log4j.category.org.apache.synapse.transport=DEBUG
-log4j.category.org.apache.axis2.deployment=WARN
-log4j.category.org.apache.axis2.builder.BuilderUtil=WARN
-log4j.category.org.apache.commons.vfs.impl.DefaultFileReplicator=WARN
-log4j.category.org.apache.synapse.transport.base.TransportMBeanSupport=ERROR
-log4j.category.org.apache.qpid=WARN
+log4j.rootCategory=DEBUG, CONSOLE
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
+log4j.appender.CONSOLE.threshold=ERROR
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] %c{1} %m%n
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java?rev=697380&r1=697379&r2=697380&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/TransportTestSuite.java
Sat Sep 20 08:36:05 2008
@@ -43,6 +43,7 @@
import org.apache.synapse.transport.testkit.server.AsyncEndpoint;
import org.apache.synapse.transport.testkit.server.Endpoint;
import org.apache.synapse.transport.testkit.tests.TestResourceSet;
+import org.apache.synapse.transport.testkit.tests.TestResourceSetTransition;
import org.apache.synapse.transport.testkit.tests.TransportTestCase;
import org.apache.synapse.transport.testkit.tests.async.BinaryTestCase;
import org.apache.synapse.transport.testkit.tests.async.RESTTestCase;
@@ -186,7 +187,8 @@
@Override
public void run(TestResult result) {
- LogManager.INSTANCE.setTestSuite(this);
+ LogManager logManager = LogManager.INSTANCE;
+ logManager.setTestSuite(this);
try {
if (!reuseResources) {
super.run(result);
@@ -199,9 +201,13 @@
TestResourceSet newResourceSet =
ttest.getResourceSet();
try {
if (resourceSet == null) {
+ logManager.setTestCase(ttest);
newResourceSet.setUp();
} else {
- newResourceSet.setUp(resourceSet);
+ TestResourceSetTransition transition = new
TestResourceSetTransition(resourceSet, newResourceSet);
+ transition.tearDown();
+ logManager.setTestCase(ttest);
+ transition.setUp();
}
} catch (Throwable t) {
result.addError(this, t);
@@ -214,6 +220,7 @@
if (resourceSet != null) {
try {
resourceSet.tearDown();
+ logManager.setTestCase(null);
} catch (Throwable t) {
result.addError(this, t);
return;
@@ -221,7 +228,7 @@
}
}
} finally {
- LogManager.INSTANCE.setTestSuite(null);
+ logManager.setTestSuite(null);
}
}
}
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java?rev=697380&r1=697379&r2=697380&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSet.java
Sat Sep 20 08:36:05 2008
@@ -22,7 +22,6 @@
import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
-import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.ListIterator;
@@ -31,14 +30,14 @@
import org.apache.commons.logging.LogFactory;
public class TestResourceSet {
- private enum Status { UNRESOLVED, RESOLVED, SETUP, RECYCLED };
+ enum Status { UNRESOLVED, RESOLVED, SETUP, RECYCLED };
private static Log log = LogFactory.getLog(TestResourceSet.class);
private final TestResourceSet parent;
private final List<TestResource> unresolvedResources = new
LinkedList<TestResource>();
- private final List<TestResource> resolvedResources = new
LinkedList<TestResource>();
- private Status status = Status.UNRESOLVED;
+ final List<TestResource> resolvedResources = new
LinkedList<TestResource>();
+ Status status = Status.UNRESOLVED;
public TestResourceSet(TestResourceSet parent) {
this.parent = parent;
@@ -134,7 +133,7 @@
status = Status.SETUP;
}
- private static List<TestResource> filterOnHasLifecycle(List<TestResource>
resources) {
+ static List<TestResource> filterOnHasLifecycle(List<TestResource>
resources) {
List<TestResource> result = new
ArrayList<TestResource>(resources.size());
for (TestResource resource : resources) {
if (resource.hasLifecycle()) {
@@ -144,7 +143,7 @@
return result;
}
- private static void setUp(List<TestResource> resources) throws Exception {
+ static void setUp(List<TestResource> resources) throws Exception {
resources = filterOnHasLifecycle(resources);
if (!resources.isEmpty()) {
log.info("Setting up: " + resources);
@@ -154,36 +153,6 @@
}
}
- public void setUp(TestResourceSet old) throws Exception {
- resolve();
- if (status != Status.RESOLVED) {
- throw new IllegalStateException();
- }
- if (old.status != Status.SETUP) {
- throw new IllegalStateException();
- }
- List<TestResource> oldResourcesToTearDown = new
LinkedList<TestResource>();
- List<TestResource> resourcesToSetUp = new
LinkedList<TestResource>(resolvedResources);
- List<TestResource> resourcesToKeep = new LinkedList<TestResource>();
- outer: for (TestResource oldResource :
filterOnHasLifecycle(old.resolvedResources)) {
- for (Iterator<TestResource> it = resourcesToSetUp.iterator();
it.hasNext(); ) {
- TestResource resource = it.next();
- if (resource.equals(oldResource)) {
- it.remove();
- resource.recycle(oldResource);
- resourcesToKeep.add(oldResource);
- continue outer;
- }
- }
- oldResourcesToTearDown.add(oldResource);
- }
- tearDown(oldResourcesToTearDown);
- log.debug("Keeping: " + resourcesToKeep);
- setUp(resourcesToSetUp);
- status = Status.SETUP;
- old.status = Status.RECYCLED;
- }
-
public void tearDown() throws Exception {
if (status != Status.SETUP) {
throw new IllegalStateException();
@@ -191,7 +160,7 @@
tearDown(resolvedResources);
}
- private static void tearDown(List<TestResource> resources) throws
Exception {
+ static void tearDown(List<TestResource> resources) throws Exception {
resources = filterOnHasLifecycle(resources);
if (!resources.isEmpty()) {
log.info("Tearing down: " + resources);
Added:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSetTransition.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSetTransition.java?rev=697380&view=auto
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSetTransition.java
(added)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TestResourceSetTransition.java
Sat Sep 20 08:36:05 2008
@@ -0,0 +1,82 @@
+/*
+ * 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.synapse.transport.testkit.tests;
+
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.synapse.transport.testkit.tests.TestResourceSet.Status;
+
+public class TestResourceSetTransition {
+ private static final Log log =
LogFactory.getLog(TestResourceSetTransition.class);
+
+ private final TestResourceSet old;
+ private final TestResourceSet target;
+ private final List<TestResource> oldResourcesToTearDown;
+ private final List<TestResource> resourcesToSetUp;
+ private final List<TestResource> resourcesToKeep;
+
+ public TestResourceSetTransition(TestResourceSet old, TestResourceSet
target) {
+ this.old = old;
+ this.target = target;
+ target.resolve();
+ if (target.status != TestResourceSet.Status.RESOLVED) {
+ throw new IllegalStateException();
+ }
+ if (old.status != Status.SETUP) {
+ throw new IllegalStateException();
+ }
+ oldResourcesToTearDown = new LinkedList<TestResource>();
+ resourcesToSetUp = new
LinkedList<TestResource>(target.resolvedResources);
+ resourcesToKeep = new LinkedList<TestResource>();
+ outer: for (TestResource oldResource :
TestResourceSet.filterOnHasLifecycle(old.resolvedResources)) {
+ for (Iterator<TestResource> it = resourcesToSetUp.iterator();
it.hasNext(); ) {
+ TestResource resource = it.next();
+ if (resource.equals(oldResource)) {
+ it.remove();
+ resource.recycle(oldResource);
+ resourcesToKeep.add(oldResource);
+ continue outer;
+ }
+ }
+ oldResourcesToTearDown.add(oldResource);
+ }
+ }
+
+ public void tearDown() throws Exception {
+ if (old.status != Status.SETUP) {
+ throw new IllegalStateException();
+ }
+ TestResourceSet.tearDown(oldResourcesToTearDown);
+ old.status = Status.RECYCLED;
+ }
+
+ public void setUp() throws Exception {
+ if (target.status != TestResourceSet.Status.RESOLVED) {
+ throw new IllegalStateException();
+ }
+ log.debug("Keeping: " + resourcesToKeep);
+ TestResourceSet.setUp(resourcesToSetUp);
+ target.status = Status.SETUP;
+ }
+}
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java?rev=697380&r1=697379&r2=697380&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/tests/TransportTestCase.java
Sat Sep 20 08:36:05 2008
@@ -103,8 +103,8 @@
@Override
protected void setUp() throws Exception {
- LogManager.INSTANCE.setTestCase(this);
if (!managed) {
+ LogManager.INSTANCE.setTestCase(this);
resourceSet.setUp();
}
}
@@ -113,8 +113,8 @@
protected void tearDown() throws Exception {
if (!managed) {
resourceSet.tearDown();
+ LogManager.INSTANCE.setTestCase(null);
}
- LogManager.INSTANCE.setTestCase(null);
}
@Override
Modified:
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/util/LogManager.java
URL:
http://svn.apache.org/viewvc/synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/util/LogManager.java?rev=697380&r1=697379&r2=697380&view=diff
==============================================================================
---
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/util/LogManager.java
(original)
+++
synapse/trunk/java/modules/transports/src/test/java/org/apache/synapse/transport/testkit/util/LogManager.java
Sat Sep 20 08:36:05 2008
@@ -25,6 +25,9 @@
import java.io.OutputStream;
import org.apache.commons.lang.StringUtils;
+import org.apache.log4j.Logger;
+import org.apache.log4j.TTCCLayout;
+import org.apache.log4j.WriterAppender;
import org.apache.synapse.transport.testkit.TransportTestSuite;
import org.apache.synapse.transport.testkit.tests.TransportTestCase;
@@ -34,13 +37,23 @@
private final File logDir;
private File testSuiteDir;
private File testCaseDir;
+ private WriterAppender appender;
private int sequence;
private LogManager() {
logDir = new File("target" + File.separator + "testkit-logs");
}
+ private void cleanUp() {
+ if (appender != null) {
+ Logger.getRootLogger().removeAppender(appender);
+ appender.close();
+ appender = null;
+ }
+ }
+
public void setTestSuite(TransportTestSuite suite) {
+ cleanUp();
if (suite == null) {
testSuiteDir = null;
} else {
@@ -49,12 +62,15 @@
testCaseDir = null;
}
- public void setTestCase(TransportTestCase testCase) {
+ public void setTestCase(TransportTestCase testCase) throws IOException {
+ cleanUp();
if (testCase == null) {
testCaseDir = null;
} else {
testCaseDir = new File(testSuiteDir, testCase.getId());
sequence = 1;
+ appender = new WriterAppender(new TTCCLayout(),
createLog("debug"));
+ Logger.getRootLogger().addAppender(appender);
}
}