ARTEMIS-2403 Adding test with clientID on retry after exceptions
This commit is contained in:
parent
741fd433c0
commit
705f1db17b
|
@ -37,10 +37,14 @@ public class InputAbstract extends ActionAbstract {
|
|||
@Option(name = "--silent", description = "It will disable all the inputs, and it would make a best guess for any required input")
|
||||
private boolean silentInput = false;
|
||||
|
||||
private boolean isSilentInput() {
|
||||
public boolean isSilentInput() {
|
||||
return silentInput || !inputEnabled;
|
||||
}
|
||||
|
||||
public void setSilentInput(boolean isSilent) {
|
||||
this.silentInput = isSilent;
|
||||
}
|
||||
|
||||
protected boolean inputBoolean(String propertyName, String prompt, boolean silentDefault) {
|
||||
if (isSilentInput()) {
|
||||
return silentDefault;
|
||||
|
|
|
@ -44,6 +44,38 @@ public class ConnectionAbstract extends InputAbstract {
|
|||
@Option(name = "--protocol", description = "Protocol used. Valid values are amqp or core. Default=core.")
|
||||
String protocol = "core";
|
||||
|
||||
public String getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
public void setUser(String user) {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public String getPassword() {
|
||||
return password;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public String getClientID() {
|
||||
return clientID;
|
||||
}
|
||||
|
||||
public void setClientID(String clientID) {
|
||||
this.clientID = clientID;
|
||||
}
|
||||
|
||||
public String getProtocol() {
|
||||
return protocol;
|
||||
}
|
||||
|
||||
public void setProtocol(String protocol) {
|
||||
this.protocol = protocol;
|
||||
}
|
||||
|
||||
protected ConnectionFactory createConnectionFactory() throws Exception {
|
||||
if (protocol.equals("core")) {
|
||||
return createCoreConnectionFactory();
|
||||
|
@ -103,7 +135,9 @@ public class ConnectionAbstract extends InputAbstract {
|
|||
return cf;
|
||||
} catch (JMSSecurityException e) {
|
||||
// if a security exception will get the user and password through an input
|
||||
context.err.println("Connection failed::" + e.getMessage());
|
||||
if (context != null) {
|
||||
context.err.println("Connection failed::" + e.getMessage());
|
||||
}
|
||||
userPassword();
|
||||
cf = new ActiveMQConnectionFactory(brokerURL, user, password);
|
||||
if (clientID != null) {
|
||||
|
@ -112,7 +146,9 @@ public class ConnectionAbstract extends InputAbstract {
|
|||
return cf;
|
||||
} catch (JMSException e) {
|
||||
// if a connection exception will ask for the URL, user and password
|
||||
context.err.println("Connection failed::" + e.getMessage());
|
||||
if (context != null) {
|
||||
context.err.println("Connection failed::" + e.getMessage());
|
||||
}
|
||||
brokerURL = input("--url", "Type in the broker URL for a retry (e.g. tcp://localhost:61616)", brokerURL);
|
||||
userPassword();
|
||||
cf = new ActiveMQConnectionFactory(brokerURL, user, password);
|
||||
|
|
|
@ -90,14 +90,6 @@ public class StatQueue extends AbstractAction {
|
|||
this.maxRows = maxRows;
|
||||
}
|
||||
|
||||
public void setUser(String user) {
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
public void setPassword(String password) {
|
||||
this.password = password;
|
||||
}
|
||||
|
||||
public void setverbose(boolean verbose) {
|
||||
this.verbose = verbose;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
* 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.cli.test;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
import org.apache.activemq.artemis.api.core.Pair;
|
||||
import org.apache.activemq.artemis.api.core.management.ActiveMQServerControl;
|
||||
import org.apache.activemq.artemis.cli.Artemis;
|
||||
import org.apache.activemq.artemis.cli.commands.Run;
|
||||
import org.apache.activemq.artemis.cli.commands.messages.ConnectionAbstract;
|
||||
import org.apache.activemq.artemis.core.server.ActiveMQServer;
|
||||
import org.apache.activemq.artemis.core.server.management.ManagementContext;
|
||||
import org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class RetryCLIClientIDTest extends CliTestBase {
|
||||
|
||||
@Test
|
||||
public void testWrongUserAndPass() throws Exception {
|
||||
try {
|
||||
Run.setEmbedded(true);
|
||||
File instance1 = new File(temporaryFolder.getRoot(), "instance_user");
|
||||
System.setProperty("java.security.auth.login.config", instance1.getAbsolutePath() + "/etc/login.config");
|
||||
Artemis.main("create", instance1.getAbsolutePath(), "--silent", "--no-autotune", "--no-web", "--no-amqp-acceptor", "--no-mqtt-acceptor", "--no-stomp-acceptor", "--no-hornetq-acceptor", "--user", "dumb", "--password", "dumber", "--require-login");
|
||||
System.setProperty("artemis.instance", instance1.getAbsolutePath());
|
||||
Object result = Artemis.internalExecute("run");
|
||||
ActiveMQServer activeMQServer = ((Pair<ManagementContext, ActiveMQServer>) result).getB();
|
||||
ActiveMQServerControl activeMQServerControl = activeMQServer.getActiveMQServerControl();
|
||||
|
||||
ConnectionTest test = new ConnectionTest();
|
||||
test.setSilentInput(true);
|
||||
test.setClientID("someClientID");
|
||||
ActiveMQConnectionFactory cf = test.newCF();
|
||||
Assert.assertEquals("someClientID", cf.getClientID());
|
||||
|
||||
} finally {
|
||||
stopServer();
|
||||
}
|
||||
}
|
||||
|
||||
private class ConnectionTest extends ConnectionAbstract {
|
||||
|
||||
public ActiveMQConnectionFactory newCF() {
|
||||
return createCoreConnectionFactory();
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue