activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From clebertsuco...@apache.org
Subject [1/3] activemq-artemis git commit: ARTEMIS-1159 Fixes and Improvements to the AMQP test client.
Date Thu, 11 May 2017 20:53:46 GMT
Repository: activemq-artemis
Updated Branches:
  refs/heads/master a98dccb35 -> b7b79e5df


http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/4ad78c7f/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableDelivery.java
----------------------------------------------------------------------
diff --git a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableDelivery.java
b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableDelivery.java
deleted file mode 100644
index 5545884..0000000
--- a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableDelivery.java
+++ /dev/null
@@ -1,179 +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.activemq.transport.amqp.client.util;
-
-import org.apache.qpid.proton.amqp.transport.DeliveryState;
-import org.apache.qpid.proton.engine.Delivery;
-import org.apache.qpid.proton.engine.Link;
-import org.apache.qpid.proton.engine.Receiver;
-import org.apache.qpid.proton.engine.Record;
-import org.apache.qpid.proton.engine.Sender;
-
-/**
- * Unmodifiable Delivery wrapper used to prevent test code from accidentally
- * modifying Delivery state.
- */
-public class UnmodifiableDelivery implements Delivery {
-
-   private final Delivery delivery;
-
-   public UnmodifiableDelivery(Delivery delivery) {
-      this.delivery = delivery;
-   }
-
-   @Override
-   public byte[] getTag() {
-      return delivery.getTag();
-   }
-
-   @Override
-   public Link getLink() {
-      if (delivery.getLink() instanceof Sender) {
-         return new UnmodifiableSender((Sender) delivery.getLink());
-      } else if (delivery.getLink() instanceof Receiver) {
-         return new UnmodifiableReceiver((Receiver) delivery.getLink());
-      } else {
-         throw new IllegalStateException("Delivery has unknown link type");
-      }
-   }
-
-   /* waiting Pull Request sent
-   @Override
-   public int getDataLength() {
-      return delivery.getDataLength();
-   } */
-
-   @Override
-   public int available() {
-      return delivery.available();
-   }
-
-   @Override
-   public DeliveryState getLocalState() {
-      return delivery.getLocalState();
-   }
-
-   @Override
-   public DeliveryState getRemoteState() {
-      return delivery.getRemoteState();
-   }
-
-   @Override
-   public int getMessageFormat() {
-      return delivery.getMessageFormat();
-   }
-
-   @Override
-   public void disposition(DeliveryState state) {
-      throw new UnsupportedOperationException("Cannot alter the Delivery state");
-   }
-
-   @Override
-   public void settle() {
-      throw new UnsupportedOperationException("Cannot alter the Delivery state");
-   }
-
-   @Override
-   public boolean isSettled() {
-      return delivery.isSettled();
-   }
-
-   @Override
-   public boolean remotelySettled() {
-      return delivery.remotelySettled();
-   }
-
-   @Override
-   public void free() {
-      throw new UnsupportedOperationException("Cannot alter the Delivery state");
-   }
-
-   @Override
-   public Delivery getWorkNext() {
-      return new UnmodifiableDelivery(delivery.getWorkNext());
-   }
-
-   @Override
-   public Delivery next() {
-      return new UnmodifiableDelivery(delivery.next());
-   }
-
-   @Override
-   public boolean isWritable() {
-      return delivery.isWritable();
-   }
-
-   @Override
-   public boolean isReadable() {
-      return delivery.isReadable();
-   }
-
-   @Override
-   public void setContext(Object o) {
-      throw new UnsupportedOperationException("Cannot alter the Delivery state");
-   }
-
-   @Override
-   public Object getContext() {
-      return delivery.getContext();
-   }
-
-   @Override
-   public boolean isUpdated() {
-      return delivery.isUpdated();
-   }
-
-   @Override
-   public void clear() {
-      throw new UnsupportedOperationException("Cannot alter the Delivery state");
-   }
-
-   @Override
-   public boolean isPartial() {
-      return delivery.isPartial();
-   }
-
-   @Override
-   public int pending() {
-      return delivery.pending();
-   }
-
-   @Override
-   public boolean isBuffered() {
-      return delivery.isBuffered();
-   }
-
-   @Override
-   public Record attachments() {
-      return delivery.attachments();
-   }
-
-   @Override
-   public DeliveryState getDefaultDeliveryState() {
-      return delivery.getDefaultDeliveryState();
-   }
-
-   @Override
-   public void setDefaultDeliveryState(DeliveryState state) {
-      throw new UnsupportedOperationException("Cannot alter the Delivery");
-   }
-
-   @Override
-   public void setMessageFormat(int messageFormat) {
-      throw new UnsupportedOperationException("Cannot alter the Delivery");
-   }
-}

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/4ad78c7f/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableLink.java
----------------------------------------------------------------------
diff --git a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableLink.java
b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableLink.java
deleted file mode 100644
index 7e4319d..0000000
--- a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableLink.java
+++ /dev/null
@@ -1,306 +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.activemq.transport.amqp.client.util;
-
-import java.util.EnumSet;
-import java.util.Map;
-
-import org.apache.qpid.proton.amqp.Symbol;
-import org.apache.qpid.proton.amqp.transport.ErrorCondition;
-import org.apache.qpid.proton.amqp.transport.ReceiverSettleMode;
-import org.apache.qpid.proton.amqp.transport.SenderSettleMode;
-import org.apache.qpid.proton.amqp.transport.Source;
-import org.apache.qpid.proton.amqp.transport.Target;
-import org.apache.qpid.proton.engine.Delivery;
-import org.apache.qpid.proton.engine.EndpointState;
-import org.apache.qpid.proton.engine.Link;
-import org.apache.qpid.proton.engine.Receiver;
-import org.apache.qpid.proton.engine.Record;
-import org.apache.qpid.proton.engine.Sender;
-import org.apache.qpid.proton.engine.Session;
-
-/**
- * Unmodifiable Session wrapper used to prevent test code from accidentally
- * modifying Session state.
- */
-public class UnmodifiableLink implements Link {
-
-   private final Link link;
-
-   public UnmodifiableLink(Link link) {
-      this.link = link;
-   }
-
-   @Override
-   public EndpointState getLocalState() {
-      return link.getLocalState();
-   }
-
-   @Override
-   public EndpointState getRemoteState() {
-      return link.getRemoteState();
-   }
-
-   @Override
-   public ErrorCondition getCondition() {
-      return link.getCondition();
-   }
-
-   @Override
-   public void setCondition(ErrorCondition condition) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public ErrorCondition getRemoteCondition() {
-      return link.getRemoteCondition();
-   }
-
-   @Override
-   public void free() {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public void open() {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public void close() {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public void setContext(Object o) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public Object getContext() {
-      return link.getContext();
-   }
-
-   @Override
-   public String getName() {
-      return link.getName();
-   }
-
-   @Override
-   public Delivery delivery(byte[] tag) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public Delivery delivery(byte[] tag, int offset, int length) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public Delivery head() {
-      return new UnmodifiableDelivery(link.head());
-   }
-
-   @Override
-   public Delivery current() {
-      return new UnmodifiableDelivery(link.current());
-   }
-
-   @Override
-   public boolean advance() {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public Source getSource() {
-      // TODO Figure out a simple way to wrap the odd Source types in Proton-J
-      return link.getSource();
-   }
-
-   @Override
-   public Target getTarget() {
-      // TODO Figure out a simple way to wrap the odd Source types in Proton-J
-      return link.getTarget();
-   }
-
-   @Override
-   public void setSource(Source address) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public void setTarget(Target address) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public Source getRemoteSource() {
-      // TODO Figure out a simple way to wrap the odd Source types in Proton-J
-      return link.getRemoteSource();
-   }
-
-   @Override
-   public Target getRemoteTarget() {
-      // TODO Figure out a simple way to wrap the odd Target types in Proton-J
-      return link.getRemoteTarget();
-   }
-
-   @Override
-   public Link next(EnumSet<EndpointState> local, EnumSet<EndpointState> remote)
{
-      Link next = link.next(local, remote);
-
-      if (next != null) {
-         if (next instanceof Sender) {
-            next = new UnmodifiableSender((Sender) next);
-         } else {
-            next = new UnmodifiableReceiver((Receiver) next);
-         }
-      }
-
-      return next;
-   }
-
-   @Override
-   public int getCredit() {
-      return link.getCredit();
-   }
-
-   @Override
-   public int getQueued() {
-      return link.getQueued();
-   }
-
-   @Override
-   public int getUnsettled() {
-      return link.getUnsettled();
-   }
-
-   @Override
-   public Session getSession() {
-      return new UnmodifiableSession(link.getSession());
-   }
-
-   @Override
-   public SenderSettleMode getSenderSettleMode() {
-      return link.getSenderSettleMode();
-   }
-
-   @Override
-   public void setSenderSettleMode(SenderSettleMode senderSettleMode) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public SenderSettleMode getRemoteSenderSettleMode() {
-      return link.getRemoteSenderSettleMode();
-   }
-
-   @Override
-   public ReceiverSettleMode getReceiverSettleMode() {
-      return link.getReceiverSettleMode();
-   }
-
-   @Override
-   public void setReceiverSettleMode(ReceiverSettleMode receiverSettleMode) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public ReceiverSettleMode getRemoteReceiverSettleMode() {
-      return link.getRemoteReceiverSettleMode();
-   }
-
-   @Override
-   public void setRemoteSenderSettleMode(SenderSettleMode remoteSenderSettleMode) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public int drained() {
-      return link.drained();  // TODO - Is this a mutating call?
-   }
-
-   @Override
-   public int getRemoteCredit() {
-      return link.getRemoteCredit();
-   }
-
-   @Override
-   public boolean getDrain() {
-      return link.getDrain();
-   }
-
-   @Override
-   public void detach() {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public boolean detached() {
-      return link.detached();
-   }
-
-   @Override
-   public Record attachments() {
-      return link.attachments();
-   }
-
-   @Override
-   public Map<Symbol, Object> getProperties() {
-      return link.getProperties();
-   }
-
-   @Override
-   public void setProperties(Map<Symbol, Object> properties) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public Map<Symbol, Object> getRemoteProperties() {
-      return link.getRemoteProperties();
-   }
-
-   @Override
-   public Symbol[] getDesiredCapabilities() {
-      return link.getDesiredCapabilities();
-   }
-
-   @Override
-   public Symbol[] getOfferedCapabilities() {
-      return link.getOfferedCapabilities();
-   }
-
-   @Override
-   public Symbol[] getRemoteDesiredCapabilities() {
-      return link.getRemoteDesiredCapabilities();
-   }
-
-   @Override
-   public Symbol[] getRemoteOfferedCapabilities() {
-      return link.getRemoteOfferedCapabilities();
-   }
-
-   @Override
-   public void setDesiredCapabilities(Symbol[] capabilities) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public void setOfferedCapabilities(Symbol[] capabilities) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-}

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/4ad78c7f/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableProxy.java
----------------------------------------------------------------------
diff --git a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableProxy.java
b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableProxy.java
new file mode 100644
index 0000000..25e6e6c
--- /dev/null
+++ b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableProxy.java
@@ -0,0 +1,167 @@
+/*
+ * 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.activemq.transport.amqp.client.util;
+
+import java.lang.reflect.InvocationHandler;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.nio.ByteBuffer;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Map;
+
+import org.apache.qpid.proton.engine.Connection;
+import org.apache.qpid.proton.engine.Delivery;
+import org.apache.qpid.proton.engine.Link;
+import org.apache.qpid.proton.engine.Receiver;
+import org.apache.qpid.proton.engine.Sasl;
+import org.apache.qpid.proton.engine.Sender;
+import org.apache.qpid.proton.engine.Session;
+import org.apache.qpid.proton.engine.Transport;
+
+/**
+ * Utility that creates proxy objects for the Proton objects which won't allow any mutating
+ * operations to be applied so that the test code does not interact with the proton engine
+ * outside the client serialization thread.
+ */
+public final class UnmodifiableProxy {
+
+   private static ArrayList<String> blacklist = new ArrayList<>();
+
+   // These methods are mutating but don't take an arguments so they
+   // aren't automatically filtered out. We will have to keep an eye
+   // on proton API in the future and modify this list as it evolves.
+   static {
+      blacklist.add("close");
+      blacklist.add("free");
+      blacklist.add("open");
+      blacklist.add("sasl");
+      blacklist.add("session");
+      blacklist.add("close_head");
+      blacklist.add("close_tail");
+      blacklist.add("outputConsumed");
+      blacklist.add("process");
+      blacklist.add("processInput");
+      blacklist.add("unbind");
+      blacklist.add("settle");
+      blacklist.add("clear");
+      blacklist.add("detach");
+      blacklist.add("abort");
+   }
+
+   private UnmodifiableProxy() {
+   }
+
+   public static Transport transportProxy(final Transport target) {
+      Transport wrap = wrap(Transport.class, target);
+      return wrap;
+   }
+
+   public static Sasl saslProxy(final Sasl target) {
+      return wrap(Sasl.class, target);
+   }
+
+   public static Connection connectionProxy(final Connection target) {
+      return wrap(Connection.class, target);
+   }
+
+   public static Session sessionProxy(final Session target) {
+      return wrap(Session.class, target);
+   }
+
+   public static Delivery deliveryProxy(final Delivery target) {
+      return wrap(Delivery.class, target);
+   }
+
+   public static Link linkProxy(final Link target) {
+      return wrap(Link.class, target);
+   }
+
+   public static Receiver receiverProxy(final Receiver target) {
+      return wrap(Receiver.class, target);
+   }
+
+   public static Sender senderProxy(final Sender target) {
+      return wrap(Sender.class, target);
+   }
+
+   private static boolean isProtonType(Class<?> clazz) {
+      String packageName = clazz.getPackage().getName();
+
+      if (packageName.startsWith("org.apache.qpid.proton.")) {
+         return true;
+      }
+
+      return false;
+   }
+
+   private static <T> T wrap(Class<T> type, final Object target) {
+      return type.cast(java.lang.reflect.Proxy.newProxyInstance(type.getClassLoader(), new
Class[] {type}, new InvocationHandler() {
+         @Override
+         public Object invoke(Object o, Method method, Object[] objects) throws Throwable
{
+            if ("toString".equals(method.getName()) && method.getParameterTypes().length
== 0) {
+               return "Unmodifiable proxy -> (" + method.invoke(target, objects) + ")";
+            }
+
+            // Don't let methods that mutate be invoked.
+            if (method.getParameterTypes().length > 0) {
+               throw new UnsupportedOperationException("Cannot mutate outside the Client
work thread");
+            }
+
+            if (blacklist.contains(method.getName())) {
+               throw new UnsupportedOperationException("Cannot mutate outside the Client
work thread");
+            }
+
+            Class<?> returnType = method.getReturnType();
+
+            try {
+               Object result = method.invoke(target, objects);
+               if (result == null) {
+                  return null;
+               }
+
+               if (returnType.isPrimitive() || returnType.isArray() || Object.class.equals(returnType))
{
+                  // Skip any other checks
+               } else if (returnType.isAssignableFrom(ByteBuffer.class)) {
+                  // Buffers are modifiable but we can just return null to indicate
+                  // there's nothing there to access.
+                  result = null;
+               } else if (returnType.isAssignableFrom(Map.class)) {
+                  // Prevent return of modifiable maps
+                  result = Collections.unmodifiableMap((Map<?, ?>) result);
+               } else if (isProtonType(returnType) && returnType.isInterface()) {
+
+                  // Can't handle the crazy Source / Target types yet as there's two
+                  // different types for Source and Target the result can't be cast to
+                  // the one people actually want to use.
+                  if (!returnType.getName().equals("org.apache.qpid.proton.amqp.transport.Source")
+                     && !returnType.getName().equals("org.apache.qpid.proton.amqp.messaging.Source")
+                     && !returnType.getName().equals("org.apache.qpid.proton.amqp.transport.Target")
+                     && !returnType.getName().equals("org.apache.qpid.proton.amqp.messaging.Target"))
{
+
+                     result = wrap(returnType, result);
+                  }
+               }
+
+               return result;
+            } catch (InvocationTargetException e) {
+               throw e.getTargetException();
+            }
+         }
+      }));
+   }
+}

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/4ad78c7f/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableReceiver.java
----------------------------------------------------------------------
diff --git a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableReceiver.java
b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableReceiver.java
deleted file mode 100644
index f447d87..0000000
--- a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableReceiver.java
+++ /dev/null
@@ -1,65 +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.activemq.transport.amqp.client.util;
-
-import org.apache.qpid.proton.codec.WritableBuffer;
-import org.apache.qpid.proton.engine.Receiver;
-
-/**
- * Unmodifiable Receiver wrapper used to prevent test code from accidentally
- * modifying Receiver state.
- */
-public class UnmodifiableReceiver extends UnmodifiableLink implements Receiver {
-
-   private final Receiver receiver;
-
-   public UnmodifiableReceiver(Receiver receiver) {
-      super(receiver);
-
-      this.receiver = receiver;
-   }
-
-   @Override
-   public void flow(int credits) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public int recv(byte[] bytes, int offset, int size) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public int recv(WritableBuffer buffer) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public void drain(int credit) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public boolean draining() {
-      return receiver.draining();
-   }
-
-   @Override
-   public void setDrain(boolean drain) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-}

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/4ad78c7f/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableSender.java
----------------------------------------------------------------------
diff --git a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableSender.java
b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableSender.java
deleted file mode 100644
index 3c67f68..0000000
--- a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableSender.java
+++ /dev/null
@@ -1,51 +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.activemq.transport.amqp.client.util;
-
-import org.apache.qpid.proton.codec.ReadableBuffer;
-import org.apache.qpid.proton.engine.Sender;
-
-/**
- * Unmodifiable Sender wrapper used to prevent test code from accidentally
- * modifying Sender state.
- */
-public class UnmodifiableSender extends UnmodifiableLink implements Sender {
-
-   public UnmodifiableSender(Sender sender) {
-      super(sender);
-   }
-
-   @Override
-   public void offer(int credits) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public int send(byte[] bytes, int offset, int length) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public int send(ReadableBuffer buffer) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public void abort() {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-}

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/4ad78c7f/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableSession.java
----------------------------------------------------------------------
diff --git a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableSession.java
b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableSession.java
deleted file mode 100644
index 3fc26cb..0000000
--- a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableSession.java
+++ /dev/null
@@ -1,198 +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.activemq.transport.amqp.client.util;
-
-import java.util.EnumSet;
-import java.util.Map;
-
-import org.apache.qpid.proton.amqp.Symbol;
-import org.apache.qpid.proton.amqp.transport.ErrorCondition;
-import org.apache.qpid.proton.engine.Connection;
-import org.apache.qpid.proton.engine.EndpointState;
-import org.apache.qpid.proton.engine.Receiver;
-import org.apache.qpid.proton.engine.Record;
-import org.apache.qpid.proton.engine.Sender;
-import org.apache.qpid.proton.engine.Session;
-
-/**
- * Unmodifiable Session wrapper used to prevent test code from accidentally
- * modifying Session state.
- */
-public class UnmodifiableSession implements Session {
-
-   private final Session session;
-
-   public UnmodifiableSession(Session session) {
-      this.session = session;
-   }
-
-   @Override
-   public EndpointState getLocalState() {
-      return session.getLocalState();
-   }
-
-   @Override
-   public EndpointState getRemoteState() {
-      return session.getRemoteState();
-   }
-
-   @Override
-   public ErrorCondition getCondition() {
-      return session.getCondition();
-   }
-
-   @Override
-   public void setCondition(ErrorCondition condition) {
-      throw new UnsupportedOperationException("Cannot alter the Session");
-   }
-
-   @Override
-   public ErrorCondition getRemoteCondition() {
-      return session.getRemoteCondition();
-   }
-
-   @Override
-   public void free() {
-      throw new UnsupportedOperationException("Cannot alter the Session");
-   }
-
-   @Override
-   public void open() {
-      throw new UnsupportedOperationException("Cannot alter the Session");
-   }
-
-   @Override
-   public void close() {
-      throw new UnsupportedOperationException("Cannot alter the Session");
-   }
-
-   @Override
-   public void setContext(Object o) {
-      throw new UnsupportedOperationException("Cannot alter the Session");
-   }
-
-   @Override
-   public Object getContext() {
-      return session.getContext();
-   }
-
-   @Override
-   public Sender sender(String name) {
-      throw new UnsupportedOperationException("Cannot alter the Session");
-   }
-
-   @Override
-   public Receiver receiver(String name) {
-      throw new UnsupportedOperationException("Cannot alter the Session");
-   }
-
-   @Override
-   public Session next(EnumSet<EndpointState> local, EnumSet<EndpointState> remote)
{
-      Session next = session.next(local, remote);
-      if (next != null) {
-         next = new UnmodifiableSession(next);
-      }
-
-      return next;
-   }
-
-   @Override
-   public Connection getConnection() {
-      return new UnmodifiableConnection(session.getConnection());
-   }
-
-   @Override
-   public int getIncomingCapacity() {
-      return session.getIncomingCapacity();
-   }
-
-   @Override
-   public void setIncomingCapacity(int bytes) {
-      throw new UnsupportedOperationException("Cannot alter the Session");
-   }
-
-   @Override
-   public int getIncomingBytes() {
-      return session.getIncomingBytes();
-   }
-
-   @Override
-   public int getOutgoingBytes() {
-      return session.getOutgoingBytes();
-   }
-
-   @Override
-   public Record attachments() {
-      return session.attachments();
-   }
-
-   @Override
-   public long getOutgoingWindow() {
-      return session.getOutgoingWindow();
-   }
-
-   @Override
-   public void setOutgoingWindow(long outgoingWindowSize) {
-      throw new UnsupportedOperationException("Cannot alter the Session");
-   }
-
-
-   @Override
-   public Symbol[] getDesiredCapabilities() {
-      return session.getDesiredCapabilities();
-   }
-
-   @Override
-   public Symbol[] getOfferedCapabilities() {
-      return session.getOfferedCapabilities();
-   }
-
-   @Override
-   public Map<Symbol, Object> getProperties() {
-      return session.getProperties();
-   }
-
-   @Override
-   public Symbol[] getRemoteDesiredCapabilities() {
-      return session.getRemoteDesiredCapabilities();
-   }
-
-   @Override
-   public Symbol[] getRemoteOfferedCapabilities() {
-      return session.getRemoteOfferedCapabilities();
-   }
-
-   @Override
-   public Map<Symbol, Object> getRemoteProperties() {
-      return session.getRemoteProperties();
-   }
-
-   @Override
-   public void setDesiredCapabilities(Symbol[] capabilities) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public void setOfferedCapabilities(Symbol[] capabilities) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-
-   @Override
-   public void setProperties(Map<Symbol, Object> capabilities) {
-      throw new UnsupportedOperationException("Cannot alter the Link state");
-   }
-}

http://git-wip-us.apache.org/repos/asf/activemq-artemis/blob/4ad78c7f/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableTransport.java
----------------------------------------------------------------------
diff --git a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableTransport.java
b/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableTransport.java
deleted file mode 100644
index 5e305f4..0000000
--- a/tests/artemis-test-support/src/main/java/org/apache/activemq/transport/amqp/client/util/UnmodifiableTransport.java
+++ /dev/null
@@ -1,274 +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.activemq.transport.amqp.client.util;
-
-import java.nio.ByteBuffer;
-
-import org.apache.qpid.proton.amqp.transport.ErrorCondition;
-import org.apache.qpid.proton.engine.Connection;
-import org.apache.qpid.proton.engine.EndpointState;
-import org.apache.qpid.proton.engine.Record;
-import org.apache.qpid.proton.engine.Sasl;
-import org.apache.qpid.proton.engine.Ssl;
-import org.apache.qpid.proton.engine.SslDomain;
-import org.apache.qpid.proton.engine.SslPeerDetails;
-import org.apache.qpid.proton.engine.Transport;
-import org.apache.qpid.proton.engine.TransportException;
-import org.apache.qpid.proton.engine.TransportResult;
-
-/**
- * Unmodifiable Transport wrapper used to prevent test code from accidentally
- * modifying Transport state.
- */
-public class UnmodifiableTransport implements Transport {
-
-   private final Transport transport;
-
-   public UnmodifiableTransport(Transport transport) {
-      this.transport = transport;
-   }
-
-   @Override
-   public void close() {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void free() {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public Object getContext() {
-      return null;
-   }
-
-   @Override
-   public EndpointState getLocalState() {
-      return transport.getLocalState();
-   }
-
-   @Override
-   public ErrorCondition getRemoteCondition() {
-      return transport.getRemoteCondition();
-   }
-
-   @Override
-   public EndpointState getRemoteState() {
-      return transport.getRemoteState();
-   }
-
-   @Override
-   public void open() {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void setCondition(ErrorCondition arg0) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void setContext(Object arg0) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void bind(Connection arg0) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public int capacity() {
-      return transport.capacity();
-   }
-
-   @Override
-   public void close_head() {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void close_tail() {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public int getChannelMax() {
-      return transport.getChannelMax();
-   }
-
-   @Override
-   public ErrorCondition getCondition() {
-      return transport.getCondition();
-   }
-
-   @Override
-   public int getIdleTimeout() {
-      return transport.getIdleTimeout();
-   }
-
-   @Override
-   public ByteBuffer getInputBuffer() {
-      return null;
-   }
-
-   @Override
-   public int getMaxFrameSize() {
-      return transport.getMaxFrameSize();
-   }
-
-   @Override
-   public ByteBuffer getOutputBuffer() {
-      return null;
-   }
-
-   @Override
-   public int getRemoteChannelMax() {
-      return transport.getRemoteChannelMax();
-   }
-
-   @Override
-   public int getRemoteIdleTimeout() {
-      return transport.getRemoteIdleTimeout();
-   }
-
-   @Override
-   public int getRemoteMaxFrameSize() {
-      return transport.getRemoteMaxFrameSize();
-   }
-
-   @Override
-   public ByteBuffer head() {
-      return null;
-   }
-
-   @Override
-   public int input(byte[] arg0, int arg1, int arg2) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public boolean isClosed() {
-      return transport.isClosed();
-   }
-
-   @Override
-   public int output(byte[] arg0, int arg1, int arg2) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void outputConsumed() {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public int pending() {
-      return transport.pending();
-   }
-
-   @Override
-   public void pop(int arg0) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void process() throws TransportException {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public TransportResult processInput() {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public Sasl sasl() throws IllegalStateException {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void setChannelMax(int arg0) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void setIdleTimeout(int arg0) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void setMaxFrameSize(int arg0) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public Ssl ssl(SslDomain arg0) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public Ssl ssl(SslDomain arg0, SslPeerDetails arg1) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public ByteBuffer tail() {
-      return null;
-   }
-
-   @Override
-   public long tick(long arg0) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void trace(int arg0) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public void unbind() {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public Record attachments() {
-      return transport.attachments();
-   }
-
-   @Override
-   public long getFramesInput() {
-      return transport.getFramesInput();
-   }
-
-   @Override
-   public long getFramesOutput() {
-      return transport.getFramesOutput();
-   }
-
-   @Override
-   public void setEmitFlowEventOnSend(boolean emitFlowEventOnSend) {
-      throw new UnsupportedOperationException("Cannot alter the Transport");
-   }
-
-   @Override
-   public boolean isEmitFlowEventOnSend() {
-      return transport.isEmitFlowEventOnSend();
-   }
-}


Mime
View raw message