From c8964b3a66902e53961a90a2fa49e09aa3a1f88e Mon Sep 17 00:00:00 2001 From: Bartosz Spyrko-Smietanko Date: Mon, 22 May 2017 14:02:00 +0100 Subject: [PATCH] [WFLY-8432] Fixing review issues --- .../activemq/ActiveMQServerService.java | 2 +- .../activemq/logging/MessagingLogger.java | 4 +- ...onnectionFactoryClientMappingTestCase.java | 78 ++++++++++++++++++- .../jms/ActiveMQProviderJMSOperations.java | 36 +-------- .../integration/common/jms/JMSOperations.java | 8 +- 5 files changed, 81 insertions(+), 47 deletions(-) diff --git a/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/ActiveMQServerService.java b/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/ActiveMQServerService.java index a434d9125d83..f8776fa30980 100644 --- a/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/ActiveMQServerService.java +++ b/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/ActiveMQServerService.java @@ -227,7 +227,7 @@ public synchronized void start(final StartContext context) throws StartException port = clientMapping.getDestinationPort(); if (socketBinding.getClientMappings().size() > 1) { - MessagingLogger.ROOT_LOGGER.multipleClientMappingsFound(tc.getName(), host, port); + MessagingLogger.ROOT_LOGGER.multipleClientMappingsFound(socketBinding.getName(), tc.getName(), host, port); } } else { InetSocketAddress sa = socketBinding.getSocketAddress(); diff --git a/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/logging/MessagingLogger.java b/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/logging/MessagingLogger.java index 857b66b6d9e0..dee0cb95e0af 100644 --- a/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/logging/MessagingLogger.java +++ b/messaging-activemq/src/main/java/org/wildfly/extension/messaging/activemq/logging/MessagingLogger.java @@ -849,6 +849,6 @@ public interface MessagingLogger extends BasicLogger { void jdbcDatabaseDialectDetectionFailed(String databaseDialects); @LogMessage(level = WARN) - @Message(id = 95, value = "Multiple client-mapping found for ActiveMQ [%s] transport configuration. Using configuration: [host: %s, port %s]") - void multipleClientMappingsFound(String transportConfigName, String host, int port); + @Message(id = 95, value = "Multiple client-mapping found in [%s] socket binding used by ActiveMQ [%s] transport configuration. Using address: [host: %s, port %s]") + void multipleClientMappingsFound(String socketBindingName, String transportConfigName, String host, int port); } diff --git a/testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/messaging/mgmt/ConnectionFactoryClientMappingTestCase.java b/testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/messaging/mgmt/ConnectionFactoryClientMappingTestCase.java index 6e9618ac161d..9dbaa2248147 100644 --- a/testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/messaging/mgmt/ConnectionFactoryClientMappingTestCase.java +++ b/testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/messaging/mgmt/ConnectionFactoryClientMappingTestCase.java @@ -1,3 +1,19 @@ +/* + * Copyright 2017 Red Hat, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + package org.jboss.as.test.integration.messaging.mgmt; import org.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants; @@ -6,10 +22,13 @@ import org.jboss.arquillian.junit.Arquillian; import org.jboss.as.arquillian.api.ServerSetup; import org.jboss.as.arquillian.api.ServerSetupTask; +import org.jboss.as.arquillian.container.ManagementClient; +import org.jboss.as.controller.client.helpers.ClientConstants; import org.jboss.as.test.integration.common.jms.JMSOperations; import org.jboss.as.test.integration.common.jms.JMSOperationsProvider; import org.jboss.as.test.shared.ServerReload; import org.jboss.dmr.ModelNode; +import org.jboss.logging.Logger; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.EmptyAsset; import org.jboss.shrinkwrap.api.asset.StringAsset; @@ -19,8 +38,13 @@ import javax.annotation.Resource; import javax.jms.ConnectionFactory; +import java.io.IOException; import java.util.Map; +import static org.jboss.as.controller.client.helpers.ClientConstants.*; +import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.OP; +import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.OP_ADDR; +import static org.jboss.as.controller.descriptions.ModelDescriptionConstants.WRITE_ATTRIBUTE_OPERATION; import static org.junit.Assert.assertEquals; /** @@ -33,12 +57,14 @@ public class ConnectionFactoryClientMappingTestCase { private static final String CONNECTION_FACTORY_JNDI_NAME = "java:jboss/exported/jms/TestConnectionFactory"; static class SetupTask implements ServerSetupTask { + private static final Logger logger = Logger.getLogger(ConnectionFactoryClientMappingTestCase.SetupTask.class); + @Override public void setup(org.jboss.as.arquillian.container.ManagementClient managementClient, String s) throws Exception { JMSOperations ops = JMSOperationsProvider.getInstance(managementClient.getControllerClient()); - ops.addSocketBinding("test-binding", clientMapping("test", "8000")); - ops.addJmsConnector("http-test-connector", "test-binding", "http-acceptor"); + addSocketBinding(managementClient, "test-binding", clientMapping("test", "8000")); + ops.addHttpConnector("http-test-connector", "test-binding", "http-acceptor"); ModelNode attr = new ModelNode(); attr.get("connectors").add("http-test-connector"); ops.addJmsConnectionFactory("TestConnectionFactory", CONNECTION_FACTORY_JNDI_NAME, attr); @@ -58,11 +84,55 @@ public void tearDown(org.jboss.as.arquillian.container.ManagementClient manageme JMSOperations ops = JMSOperationsProvider.getInstance(managementClient.getControllerClient()); ops.removeJmsConnectionFactory("TestConnectionFactory"); - ops.removeJmsConnector("http-test-connector"); - ops.removeSocketBinding("test-binding"); + ops.removeHttpConnector("http-test-connector"); + removeSocketBinding(managementClient, "test-binding"); ServerReload.executeReloadAndWaitForCompletion(managementClient.getControllerClient()); } + + private void addSocketBinding(ManagementClient managementClient, String bindingName, ModelNode clientMapping) throws Exception { + ModelNode address = new ModelNode(); + address.add("socket-binding-group", "standard-sockets"); + address.add("socket-binding", bindingName); + + ModelNode socketBindingOp = new ModelNode(); + socketBindingOp.get(OP).set(ADD); + socketBindingOp.get(OP_ADDR).set(address); + + execute(managementClient, socketBindingOp); + + ModelNode clientMappingOp = new ModelNode(); + clientMappingOp.get(OP).set(WRITE_ATTRIBUTE_OPERATION); + clientMappingOp.get(OP_ADDR).set(address); + clientMappingOp.get(NAME).set("client-mappings"); + clientMappingOp.get(VALUE).add(clientMapping); + + execute(managementClient, clientMappingOp); + } + + private void removeSocketBinding(ManagementClient managementClient, String bindingName) throws Exception { + ModelNode address = new ModelNode(); + address.add("socket-binding-group", "standard-sockets"); + + ModelNode socketBindingOp = new ModelNode(); + socketBindingOp.get(OP).set(REMOVE_OPERATION); + socketBindingOp.get(OP_ADDR).set(address); + + execute(managementClient, socketBindingOp); + } + + static void execute(ManagementClient managementClient, final ModelNode operation) throws IOException { + ModelNode result = managementClient.getControllerClient().execute(operation); + if (result.hasDefined(ClientConstants.OUTCOME) && ClientConstants.SUCCESS.equals(result.get(ClientConstants.OUTCOME).asString())) { + logger.trace("Operation successful for update = " + operation.toString()); + } else if (result.hasDefined(ClientConstants.FAILURE_DESCRIPTION)) { + final String failureDesc = result.get(ClientConstants.FAILURE_DESCRIPTION).toString(); + throw new RuntimeException(failureDesc); + } else { + throw new RuntimeException("Operation not successful; outcome = " + result.get(ClientConstants.OUTCOME)); + } + } + } @Deployment(testable = true) diff --git a/testsuite/shared/src/main/java/org/jboss/as/test/integration/common/jms/ActiveMQProviderJMSOperations.java b/testsuite/shared/src/main/java/org/jboss/as/test/integration/common/jms/ActiveMQProviderJMSOperations.java index afbe6b96f9bc..d073f2275e1a 100644 --- a/testsuite/shared/src/main/java/org/jboss/as/test/integration/common/jms/ActiveMQProviderJMSOperations.java +++ b/testsuite/shared/src/main/java/org/jboss/as/test/integration/common/jms/ActiveMQProviderJMSOperations.java @@ -34,7 +34,6 @@ import org.jboss.as.arquillian.container.ManagementClient; import org.jboss.as.controller.client.ModelControllerClient; -import org.jboss.as.controller.client.helpers.ClientConstants; import org.jboss.dmr.ModelNode; import org.jboss.dmr.Property; @@ -236,7 +235,7 @@ public void removeSystemProperties() { } @Override - public void addJmsConnector(String connectorName, String socketBinding, String endpoint) { + public void addHttpConnector(String connectorName, String socketBinding, String endpoint) { ModelNode address = getServerAddress() .add("http-connector", connectorName); @@ -248,40 +247,9 @@ public void addJmsConnector(String connectorName, String socketBinding, String e } @Override - public void removeJmsConnector(String connectorName) { + public void removeHttpConnector(String connectorName) { ModelNode address = getServerAddress() .add("http-connector", connectorName); executeOperation(address, REMOVE_OPERATION, null); } - - @Override - public void addSocketBinding(String bindingName, ModelNode... clientMappings) { - ModelNode address = new ModelNode(); - address.add("socket-binding-group", "standard-sockets"); - address.add("socket-binding", bindingName); - - ModelNode operation = new ModelNode(); - operation.get(OP).set(ClientConstants.ADD); - operation.get(OP_ADDR).set(address); - - executeOperation(address, ADD, null); - - if (clientMappings != null) { - for (ModelNode clientMapping : clientMappings) { - ModelNode attributes = new ModelNode(); - attributes.get("name").set("client-mappings"); - attributes.get("value").add(clientMapping); - - executeOperation(address, WRITE_ATTRIBUTE_OPERATION, attributes); - } - } - } - - @Override - public void removeSocketBinding(String bindingName) { - ModelNode address = new ModelNode(); - address.add("socket-binding-group", "standard-sockets"); - address.add("socket-binding", "test-binding"); - executeOperation(address, REMOVE_OPERATION, null); - } } diff --git a/testsuite/shared/src/main/java/org/jboss/as/test/integration/common/jms/JMSOperations.java b/testsuite/shared/src/main/java/org/jboss/as/test/integration/common/jms/JMSOperations.java index 6c1c304f67f8..754121370634 100644 --- a/testsuite/shared/src/main/java/org/jboss/as/test/integration/common/jms/JMSOperations.java +++ b/testsuite/shared/src/main/java/org/jboss/as/test/integration/common/jms/JMSOperations.java @@ -67,9 +67,9 @@ public interface JMSOperations { void close(); - void addJmsConnector(String connectorName, String socketBinding, String endpoint); + void addHttpConnector(String connectorName, String socketBinding, String endpoint); - void removeJmsConnector(String connectorName); + void removeHttpConnector(String connectorName); /** * Set system properties for the given destination and resourceAdapter. @@ -79,8 +79,4 @@ public interface JMSOperations { void setSystemProperties(String destination, String resourceAdapter); void removeSystemProperties(); - - void addSocketBinding(String bindingName, ModelNode... clientMappings); - - void removeSocketBinding(String bindingName); }