Author: veithen Date: Sun Nov 23 08:06:14 2008 New Revision: 720000 URL: http://svn.apache.org/viewvc?rev=720000&view=rev Log: Test kit: * Improved Javadoc. * Reduced the visibility of some internal classes/methods so that they don't show up in the Javadoc. * Some small refactorings to make some pieced of code more reusable.
Added: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOnlyEndpointSupport.java (with props) webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/package-info.java (with props) webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/package-info.java (with props) Modified: webservices/commons/trunk/modules/transport/modules/testkit/pom.xml webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisAsyncEndpoint.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisEchoEndpoint.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisTestEndpoint.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/doclet/TestkitJavadocDoclet.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/AsyncEndpoint.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOutEndpoint.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/AndExpression.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/EqualityExpression.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/FilterExpression.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/FilterExpressionParser.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/NotExpression.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/OrExpression.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/PresenceExpression.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JettyAsyncEndpoint.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Acceptor.java webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Relay.java Modified: webservices/commons/trunk/modules/transport/modules/testkit/pom.xml URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/pom.xml?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/pom.xml (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/pom.xml Sun Nov 23 08:06:14 2008 @@ -196,7 +196,15 @@ </docletArtifacts> <doclet>org.apache.axis2.transport.testkit.doclet.TestkitJavadocDoclet</doclet> <useStandardDocletOptions>true</useStandardDocletOptions> - <additionalparam>-resource-info ${project.build.directory}/resource-info.dat</additionalparam> + <additionalparam> + -resource-info ${project.build.directory}/resource-info.dat + -link http://java.sun.com/j2se/1.5.0/docs/api/ + -link http://java.sun.com/j2ee/1.4/docs/api/ + -link http://ws.apache.org/axis2/1_4_1/api/ + -link http://ws.apache.org/commons/axiom/apidocs/ + -link http://junit.org/junit/javadoc/3.8.1/ + -link http://www.eclipse.org/aspectj/doc/released/runtime-api/ + </additionalparam> </configuration> </plugin> </plugins> Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisAsyncEndpoint.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisAsyncEndpoint.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisAsyncEndpoint.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisAsyncEndpoint.java Sun Nov 23 08:06:14 2008 @@ -19,51 +19,47 @@ package org.apache.axis2.transport.testkit.axis2.endpoint; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.TimeUnit; - import javax.xml.namespace.QName; import junit.framework.Assert; import org.apache.axis2.AxisFault; import org.apache.axis2.context.MessageContext; -import org.apache.axis2.description.AxisOperation; import org.apache.axis2.description.InOnlyAxisOperation; import org.apache.axis2.description.TransportInDescription; import org.apache.axis2.engine.MessageReceiver; import org.apache.axis2.transport.testkit.axis2.MessageContextValidator; import org.apache.axis2.transport.testkit.endpoint.AsyncEndpoint; +import org.apache.axis2.transport.testkit.endpoint.InOnlyEndpointSupport; import org.apache.axis2.transport.testkit.message.AxisMessage; import org.apache.axis2.transport.testkit.message.IncomingMessage; import org.apache.axis2.transport.testkit.tests.Setup; import org.apache.axis2.transport.testkit.tests.Transient; -public class AxisAsyncEndpoint extends AxisTestEndpoint implements AsyncEndpoint<AxisMessage>, MessageReceiver { - private interface Event { - IncomingMessage<AxisMessage> process() throws Throwable; - } - +public class AxisAsyncEndpoint extends AxisTestEndpoint implements AsyncEndpoint<AxisMessage> { private @Transient AxisTestEndpointContext context; private @Transient MessageContextValidator[] validators; - private @Transient BlockingQueue<Event> queue; + private @Transient InOnlyEndpointSupport<AxisMessage> support; @Setup @SuppressWarnings("unused") private void setUp(AxisTestEndpointContext context, MessageContextValidator[] validators) { this.context = context; this.validators = validators; - queue = new LinkedBlockingQueue<Event>(); + support = new InOnlyEndpointSupport<AxisMessage>(); } @Override - protected AxisOperation createOperation() { - AxisOperation operation = new InOnlyAxisOperation(new QName("default")); - operation.setMessageReceiver(this); + protected InOnlyAxisOperation createOperation() { + InOnlyAxisOperation operation = new InOnlyAxisOperation(new QName("default")); + operation.setMessageReceiver(new MessageReceiver() { + public void receive(MessageContext messageCtx) throws AxisFault { + AxisAsyncEndpoint.this.receive(messageCtx); + } + }); return operation; } - public void receive(MessageContext messageCtx) throws AxisFault { + void receive(MessageContext messageCtx) throws AxisFault { final AxisMessage messageData; try { Assert.assertTrue(messageCtx.isServerSide()); @@ -79,36 +75,23 @@ } messageData = new AxisMessage(messageCtx); } - catch (final Throwable ex) { - queue.add(new Event() { - public IncomingMessage<AxisMessage> process() throws Throwable { - throw ex; - } - }); + catch (Throwable ex) { + support.putException(ex); return; } - queue.add(new Event() { - public IncomingMessage<AxisMessage> process() throws Throwable { - return new IncomingMessage<AxisMessage>(null, messageData); - } - }); + support.putMessage(null, messageData); } @Override - protected void onTransportError(final Throwable ex) { - queue.add(new Event() { - public IncomingMessage<AxisMessage> process() throws Throwable { - throw ex; - } - }); + protected void onTransportError(Throwable ex) { + support.putException(ex); } public void clear() throws Exception { - queue.clear(); + support.clear(); } public IncomingMessage<AxisMessage> waitForMessage(int timeout) throws Throwable { - Event event = queue.poll(timeout, TimeUnit.MILLISECONDS); - return event == null ? null : event.process(); + return support.waitForMessage(timeout); } } Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisEchoEndpoint.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisEchoEndpoint.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisEchoEndpoint.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisEchoEndpoint.java Sun Nov 23 08:06:14 2008 @@ -23,7 +23,6 @@ import org.apache.axis2.AxisFault; import org.apache.axis2.context.MessageContext; -import org.apache.axis2.description.AxisOperation; import org.apache.axis2.description.InOutAxisOperation; import org.apache.axis2.receivers.AbstractInOutMessageReceiver; import org.apache.axis2.transport.testkit.endpoint.EndpointErrorListener; @@ -34,8 +33,8 @@ private final InOutEndpointSupport support = new InOutEndpointSupport(); @Override - protected AxisOperation createOperation() { - AxisOperation operation = new InOutAxisOperation(new QName("echo")); + protected InOutAxisOperation createOperation() { + InOutAxisOperation operation = new InOutAxisOperation(new QName("echo")); operation.setMessageReceiver(new AbstractInOutMessageReceiver() { @Override public void invokeBusinessLogic(MessageContext inMessage, MessageContext outMessage) throws AxisFault { Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisTestEndpoint.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisTestEndpoint.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisTestEndpoint.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/axis2/endpoint/AxisTestEndpoint.java Sun Nov 23 08:06:14 2008 @@ -30,6 +30,7 @@ import org.apache.axis2.description.AxisOperation; import org.apache.axis2.description.AxisService; import org.apache.axis2.description.Parameter; +import org.apache.axis2.engine.MessageReceiver; import org.apache.axis2.transport.TransportListener; import org.apache.axis2.transport.base.BaseUtils; import org.apache.axis2.transport.base.event.TransportError; @@ -43,11 +44,15 @@ import org.apache.axis2.transport.testkit.tests.Transient; import org.apache.axis2.transport.testkit.util.LogManager; +/** + * Base class for Axis2 based test endpoints. + */ @Name("axis") -public abstract class AxisTestEndpoint implements TransportErrorListener { +public abstract class AxisTestEndpoint { private @Transient AxisTestEndpointContext context; private @Transient TransportErrorSource transportErrorSource; - private @Transient AxisService service; + private @Transient TransportErrorListener errorListener; + @Transient AxisService service; @Setup @SuppressWarnings("unused") private void setUp(LogManager logManager, AxisTestEndpointContext context, Channel channel, @@ -58,7 +63,15 @@ TransportListener listener = context.getTransportListener(); if (listener instanceof TransportErrorSource) { transportErrorSource = (TransportErrorSource)listener; - transportErrorSource.addErrorListener(this); + errorListener = new TransportErrorListener() { + public void error(TransportError error) { + AxisService s = error.getService(); + if (s == null || s == service) { + onTransportError(error.getException()); + } + } + }; + transportErrorSource.addErrorListener(errorListener); } else { transportErrorSource = null; } @@ -114,19 +127,25 @@ @TearDown @SuppressWarnings("unused") private void tearDown() throws Exception { if (transportErrorSource != null) { - transportErrorSource.removeErrorListener(this); + transportErrorSource.removeErrorListener(errorListener); } context.getAxisConfiguration().removeService(service.getName()); } - public void error(TransportError error) { - AxisService s = error.getService(); - if (s == null || s == service) { - onTransportError(error.getException()); - } - } - + /** + * Create an operation appropriate for the message exchange pattern implemented + * by the test endpoint. The operation returned should have a + * [EMAIL PROTECTED] MessageReceiver} set. + * + * @return the operation + */ protected abstract AxisOperation createOperation(); + /** + * Process a transport error. Note that this method will only be called if + * the underlying transport supports reporting of transport errors. + * + * @param ex the exception describing the transport error + */ protected abstract void onTransportError(Throwable ex); } Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/doclet/TestkitJavadocDoclet.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/doclet/TestkitJavadocDoclet.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/doclet/TestkitJavadocDoclet.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/doclet/TestkitJavadocDoclet.java Sun Nov 23 08:06:14 2008 @@ -26,12 +26,17 @@ import com.sun.javadoc.ClassDoc; import com.sun.javadoc.DocErrorReporter; +import com.sun.javadoc.LanguageVersion; import com.sun.javadoc.RootDoc; import com.sun.tools.doclets.standard.Standard; public class TestkitJavadocDoclet { private static File resourceInfoFile; + public static LanguageVersion languageVersion() { + return Standard.languageVersion(); + } + public static int optionLength(String option) { if (option.equals("-resource-info")) { return 2; Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/AsyncEndpoint.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/AsyncEndpoint.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/AsyncEndpoint.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/AsyncEndpoint.java Sun Nov 23 08:06:14 2008 @@ -22,6 +22,35 @@ import org.apache.axis2.transport.testkit.message.IncomingMessage; import org.apache.axis2.transport.testkit.name.Key; +/** + * Interface implemented by in-only test endpoints. + * <p> + * The endpoint must be ready to receive messages immediately after it + * has been set up. In particular implementations must not make the + * assumption that messages are only during a call to [EMAIL PROTECTED] #waitForMessage(int)}. + * Indeed, a typical test case will set up the endpoint, send a message and only + * afterwards call [EMAIL PROTECTED] #waitForMessage(int)}. + * <p> + * There are two strategies to guarantee this behavior: + * <ul> + * <li>The underlying transport internally queues incoming messages. + * In that case [EMAIL PROTECTED] #waitForMessage(int)} should simply poll + * for new messages. An example of this type of transport is + * the mail transport.</li> + * <li>The underlying transport requires that incoming messages are + * processed immediately. In that case the implementation should + * set up the required receiver or message processor and add + * incoming messages to an internal queue that is polled + * when [EMAIL PROTECTED] #waitForMessage(int)} is called. An example of + * this kind of transport is HTTP. Implementations can use + * [EMAIL PROTECTED] InOnlyEndpointSupport} to manage the message queue.</li> + * </ul> + * + * @see org.apache.axis2.transport.testkit.endpoint + * + * @param <M> + */ +// TODO: rename this to InOnlyEndpoint @Key("endpoint") public interface AsyncEndpoint<M> { /** Added: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOnlyEndpointSupport.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOnlyEndpointSupport.java?rev=720000&view=auto ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOnlyEndpointSupport.java (added) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOnlyEndpointSupport.java Sun Nov 23 08:06:14 2008 @@ -0,0 +1,69 @@ +/* + * 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.axis2.transport.testkit.endpoint; + +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.TimeUnit; + +import javax.mail.internet.ContentType; + +import org.apache.axis2.transport.testkit.message.IncomingMessage; + +public class InOnlyEndpointSupport<M> { + private final BlockingQueue<Event<M>> queue = new LinkedBlockingQueue<Event<M>>(); + + private interface Event<M> { + IncomingMessage<M> process() throws Throwable; + } + + public void putException(final Throwable ex) { + queue.add(new Event<M>() { + public IncomingMessage<M> process() throws Throwable { + throw ex; + } + }); + } + + public void putMessage(final ContentType contentType, final M data) { + queue.add(new Event<M>() { + public IncomingMessage<M> process() throws Throwable { + return new IncomingMessage<M>(contentType, data); + } + }); + } + + public void putMessage(final IncomingMessage<M> message) { + queue.add(new Event<M>() { + public IncomingMessage<M> process() throws Throwable { + return message; + } + }); + } + + public void clear() { + queue.clear(); + } + + public IncomingMessage<M> waitForMessage(int timeout) throws Throwable { + Event<M> event = queue.poll(timeout, TimeUnit.MILLISECONDS); + return event == null ? null : event.process(); + } +} Propchange: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOnlyEndpointSupport.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOutEndpoint.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOutEndpoint.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOutEndpoint.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/InOutEndpoint.java Sun Nov 23 08:06:14 2008 @@ -21,6 +21,11 @@ import org.apache.axis2.transport.testkit.name.Key; +/** + * Interface implemented by in-out test endpoints. + * + * @see org.apache.axis2.transport.testkit.endpoint + */ @Key("endpoint") public interface InOutEndpoint { void addEndpointErrorListener(EndpointErrorListener listener); Added: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/package-info.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/package-info.java?rev=720000&view=auto ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/package-info.java (added) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/package-info.java Sun Nov 23 08:06:14 2008 @@ -0,0 +1,41 @@ +/* + * 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. + */ + +/** + * Provides interface and support classes for test endpoints. + * <p> + * The test kit uses in-only and in-out test endpoints. See + * [EMAIL PROTECTED] org.apache.axis2.transport.testkit.endpoint.InOnlyEndpoint} and + * [EMAIL PROTECTED] org.apache.axis2.transport.testkit.endpoint.InOutEndpoint} for + * more details. + * <p> + * Note that an endpoint is assumed to be a lightweight test resource, i.e. + * setting up and tearing down an endpoint should be inexpensive to + * moderately expensive. If endpoint implementations require a server environment that is + * expensive to set up, this environment should be provided by a different test + * resource on which the endpoint implementations depend. This pattern is used for example + * by [EMAIL PROTECTED] org.apache.axis2.transport.testkit.axis2.endpoint.AxisTestEndpoint} and its subclasses + * which depend on [EMAIL PROTECTED] org.apache.axis2.transport.testkit.axis2.endpoint.AxisTestEndpointContext} + * to provide the server environment. + * <p> + * An endpoint implementation should use a dependency on the appropriate subclass of + * [EMAIL PROTECTED] org.apache.axis2.transport.testkit.channel.Channel} in order to get the + * required information to bind the endpoint to the underlying transport protocol. + */ +package org.apache.axis2.transport.testkit.endpoint; Propchange: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/endpoint/package-info.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/AndExpression.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/AndExpression.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/AndExpression.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/AndExpression.java Sun Nov 23 08:06:14 2008 @@ -21,6 +21,9 @@ import java.util.Map; +/** + * Implementation of the <em>and</em> (<tt>&</tt>) operator. + */ public class AndExpression implements FilterExpression { private final FilterExpression[] operands; Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/EqualityExpression.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/EqualityExpression.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/EqualityExpression.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/EqualityExpression.java Sun Nov 23 08:06:14 2008 @@ -21,6 +21,9 @@ import java.util.Map; +/** + * Implementation of the <em>equal</em> (<tt>=</tt>) operator. + */ public class EqualityExpression implements FilterExpression { private final String key; private final String value; Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/FilterExpression.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/FilterExpression.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/FilterExpression.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/FilterExpression.java Sun Nov 23 08:06:14 2008 @@ -21,6 +21,15 @@ import java.util.Map; +/** + * Interface representing an abstract filter expression. + */ public interface FilterExpression { + /** + * Evaluate the filter expression. + * + * @param map the data on which the filter expression is evaluated + * @return true if the data matches the filter represented by this object + */ boolean matches(Map<String,String> map); } Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/FilterExpressionParser.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/FilterExpressionParser.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/FilterExpressionParser.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/FilterExpressionParser.java Sun Nov 23 08:06:14 2008 @@ -30,6 +30,9 @@ import org.apache.directory.shared.ldap.filter.OrNode; import org.apache.directory.shared.ldap.filter.PresenceNode; +/** + * Parser for LDAP filter expressions. + */ public class FilterExpressionParser { private FilterExpressionParser() {} @@ -59,6 +62,13 @@ } } + /** + * Parse an LDAP filter expression. + * + * @param filter an LDAP filter as defined by <a href="http://www.ietf.org/rfc/rfc2254.txt">RFC2254</a> + * @return the parsed filter + * @throws ParseException if the filter is syntactically incorrect + */ public static FilterExpression parse(String filter) throws ParseException { return buildExpression(FilterParser.parse(filter)); } Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/NotExpression.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/NotExpression.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/NotExpression.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/NotExpression.java Sun Nov 23 08:06:14 2008 @@ -21,6 +21,9 @@ import java.util.Map; +/** + * Implementation of the <em>not</em> (<tt>!</tt>) operator. + */ public class NotExpression implements FilterExpression { private final FilterExpression operand; Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/OrExpression.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/OrExpression.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/OrExpression.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/OrExpression.java Sun Nov 23 08:06:14 2008 @@ -21,6 +21,9 @@ import java.util.Map; +/** + * Implementation of the <em>or</em> (<tt>|</tt>) operator. + */ public class OrExpression implements FilterExpression { private final FilterExpression[] operands; Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/PresenceExpression.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/PresenceExpression.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/PresenceExpression.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/PresenceExpression.java Sun Nov 23 08:06:14 2008 @@ -21,6 +21,9 @@ import java.util.Map; +/** + * Implementation of the <em>present</em> (<tt>=*</tt>) operator. + */ public class PresenceExpression implements FilterExpression { private final String key; Added: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/package-info.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/package-info.java?rev=720000&view=auto ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/package-info.java (added) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/package-info.java Sun Nov 23 08:06:14 2008 @@ -0,0 +1,30 @@ +/* + * 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. + */ + +/** + * Provides classes to evaluate LDAP filters against [EMAIL PROTECTED] java.util.Map} objects. + * <p> + * LDAP filter expressions are parsed using + * [EMAIL PROTECTED] org.apache.axis2.transport.testkit.filter.FilterExpressionParser#parse(String)}. + * The resulting [EMAIL PROTECTED] org.apache.axis2.transport.testkit.filter.FilterExpression} object can + * then be used to evaluate the filter against a given [EMAIL PROTECTED] java.util.Map} object. + * + * @see <a href="http://www.ietf.org/rfc/rfc2254.txt">RFC2254: The String Representation of LDAP Search Filters</a> + */ +package org.apache.axis2.transport.testkit.filter; \ No newline at end of file Propchange: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/filter/package-info.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JettyAsyncEndpoint.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JettyAsyncEndpoint.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JettyAsyncEndpoint.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/http/JettyAsyncEndpoint.java Sun Nov 23 08:06:14 2008 @@ -20,11 +20,9 @@ package org.apache.axis2.transport.testkit.http; import java.io.IOException; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; -import java.util.concurrent.TimeUnit; import org.apache.axis2.transport.testkit.endpoint.AsyncEndpoint; +import org.apache.axis2.transport.testkit.endpoint.InOnlyEndpointSupport; import org.apache.axis2.transport.testkit.message.IncomingMessage; import org.apache.axis2.transport.testkit.name.Name; import org.apache.axis2.transport.testkit.tests.Setup; @@ -35,27 +33,27 @@ @Name("jetty") public abstract class JettyAsyncEndpoint<M> extends JettyEndpoint implements AsyncEndpoint<M> { - private @Transient BlockingQueue<IncomingMessage<M>> queue; + private @Transient InOnlyEndpointSupport<M> support; @Setup @SuppressWarnings("unused") private void setUp() throws Exception { - queue = new LinkedBlockingQueue<IncomingMessage<M>>(); + support = new InOnlyEndpointSupport<M>(); } @Override protected void handle(String pathParams, HttpRequest request, HttpResponse response) throws HttpException, IOException { - queue.add(handle(request)); + support.putMessage(handle(request)); } protected abstract IncomingMessage<M> handle(HttpRequest request) throws HttpException, IOException; public void clear() throws Exception { - queue.clear(); + support.clear(); } public IncomingMessage<M> waitForMessage(int timeout) throws Throwable { - return queue.poll(timeout, TimeUnit.MILLISECONDS); + return support.waitForMessage(timeout); } } Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Acceptor.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Acceptor.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Acceptor.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Acceptor.java Sun Nov 23 08:06:14 2008 @@ -28,7 +28,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -public class Acceptor implements Runnable { +class Acceptor implements Runnable { private static final Log log = LogFactory.getLog(Acceptor.class); private final ServerSocket serverSocket; Modified: webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Relay.java URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Relay.java?rev=720000&r1=719999&r2=720000&view=diff ============================================================================== --- webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Relay.java (original) +++ webservices/commons/trunk/modules/transport/modules/testkit/src/main/java/org/apache/axis2/transport/testkit/util/tcpmon/Relay.java Sun Nov 23 08:06:14 2008 @@ -29,7 +29,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -public class Relay implements Runnable { +class Relay implements Runnable { private static final Log log = LogFactory.getLog(Relay.class); private final String tag;