diff options
| author | Keith Wall <kwall@apache.org> | 2015-03-03 14:56:40 +0000 |
|---|---|---|
| committer | Keith Wall <kwall@apache.org> | 2015-03-03 14:56:40 +0000 |
| commit | 9dc57fe738f366d875c2319dafdfa2c50ce2f20b (patch) | |
| tree | be6634866a966f358fcb1ba6ba29dfb5c9c340c1 /qpid/java/systests/src | |
| parent | fe37626d4fd8fb3ee5b3146a5159024a3d6d3357 (diff) | |
| download | qpid-python-9dc57fe738f366d875c2319dafdfa2c50ce2f20b.tar.gz | |
merge from trunk
git-svn-id: https://svn.apache.org/repos/asf/qpid/branches/QPID-6262-JavaBrokerNIO@1663717 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java/systests/src')
16 files changed, 402 insertions, 117 deletions
diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java index e609d73268..19708353aa 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/Asserts.java @@ -76,6 +76,9 @@ public class Asserts ConfiguredObject.DESCRIPTION, ConfiguredObject.CONTEXT, ConfiguredObject.DESIRED_STATE, + VirtualHost.ENABLED_CONNECTION_VALIDATORS, + VirtualHost.DISABLED_CONNECTION_VALIDATORS, + VirtualHost.GLOBAL_ADDRESS_DOMAINS, VirtualHost.TYPE); assertEquals("Unexpected value of attribute " + VirtualHost.NAME, @@ -126,7 +129,9 @@ public class Asserts Queue.MESSAGE_GROUP_SHARED_GROUPS, PriorityQueue.PRIORITIES, ConfiguredObject.CONTEXT, - ConfiguredObject.DESIRED_STATE); + ConfiguredObject.DESIRED_STATE, + Queue.DEFAULT_FILTERS, + Queue.ENSURE_NONDESTRUCTIVE_CONSUMERS); assertEquals("Unexpected value of queue attribute " + Queue.NAME, queueName, queueData.get(Queue.NAME)); assertNotNull("Unexpected value of queue attribute " + Queue.ID, queueData.get(Queue.ID)); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java index df87432344..91447677a5 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/QpidRestTestCase.java @@ -36,7 +36,6 @@ import org.apache.qpid.test.utils.TestBrokerConfiguration; public class QpidRestTestCase extends QpidBrokerTestCase { - public static final String ANONYMOUS_AUTHENTICATION_PROVIDER = "testAnonymous"; public static final String EXTERNAL_AUTHENTICATION_PROVIDER = "testExternal"; public static final String TEST1_VIRTUALHOST = "test"; @@ -88,11 +87,6 @@ public class QpidRestTestCase extends QpidBrokerTestCase config.removeObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_JMX_PORT); config.removeObjectConfiguration(Port.class, TestBrokerConfiguration.ENTRY_NAME_RMI_PORT); - Map<String, Object> anonymousProviderAttributes = new HashMap<String, Object>(); - anonymousProviderAttributes.put(AuthenticationProvider.TYPE, AnonymousAuthenticationManager.PROVIDER_TYPE); - anonymousProviderAttributes.put(AuthenticationProvider.NAME, ANONYMOUS_AUTHENTICATION_PROVIDER); - config.addObjectConfiguration(AuthenticationProvider.class, anonymousProviderAttributes); - config.setObjectAttribute(AuthenticationProvider.class, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER, "secureOnlyMechanisms", "{}"); diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java index 469e6ce52b..67978a264e 100644 --- a/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/systest/rest/RestTestHelper.java @@ -31,10 +31,11 @@ import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; +import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; -import java.net.URLDecoder; +import java.net.URLEncoder; import java.security.GeneralSecurityException; import java.security.KeyStore; import java.util.Collections; @@ -303,7 +304,7 @@ public class RestTestHelper public void createNewGroupMember(String groupProviderName, String groupName, String memberName, int responseCode) throws IOException { HttpURLConnection connection = openManagementConnection( - "groupmember/" + URLDecoder.decode(groupProviderName, "UTF-8") + "/"+ URLDecoder.decode(groupName, "UTF-8") + "/" + URLDecoder.decode(memberName, "UTF-8"), + "groupmember/" + encodeAsUTF(groupProviderName) + "/"+ encodeAsUTF(groupName) + "/" + encodeAsUTF(memberName), "PUT"); Map<String, Object> groupMemberData = new HashMap<String, Object>(); @@ -323,7 +324,7 @@ public class RestTestHelper public void removeMemberFromGroup(String groupProviderName, String groupName, String memberName, int responseCode) throws IOException { HttpURLConnection connection = openManagementConnection( - "groupmember/" + URLDecoder.decode(groupProviderName, "UTF-8") + "/"+ URLDecoder.decode(groupName, "UTF-8") + "/" + URLDecoder.decode(memberName, "UTF-8"), + "groupmember/" + encodeAsUTF(groupProviderName) + "/"+ encodeAsUTF(groupName) + "/" + encodeAsUTF(memberName), "DELETE"); Assert.assertEquals("Unexpected response code", responseCode, connection.getResponseCode()); @@ -356,7 +357,7 @@ public class RestTestHelper public void createGroup(String groupName, String groupProviderName, int responseCode) throws IOException { HttpURLConnection connection = openManagementConnection( - "group/" + URLDecoder.decode(groupProviderName, "UTF-8") + "/"+ URLDecoder.decode(groupName, "UTF-8"), + "group/" + encodeAsUTF(groupProviderName) + "/"+ encodeAsUTF(groupName), "PUT"); Map<String, Object> groupData = new HashMap<String, Object>(); @@ -389,7 +390,7 @@ public class RestTestHelper public void removeGroup(String groupName, String groupProviderName, int responseCode) throws IOException { HttpURLConnection connection = openManagementConnection( - "group/" + URLDecoder.decode(groupProviderName, "UTF-8") + "/"+ URLDecoder.decode(groupName, "UTF-8"), + "group/" + encodeAsUTF(groupProviderName) + "/"+ encodeAsUTF(groupName), "DELETE"); Assert.assertEquals("Unexpected response code", responseCode, connection.getResponseCode()); @@ -575,4 +576,20 @@ public class RestTestHelper } } + public String encode(String value, String encoding) throws UnsupportedEncodingException + { + return URLEncoder.encode(value, encoding).replace("+", "%20"); + } + + public String encodeAsUTF(String value) + { + try + { + return encode(value, "UTF8"); + } + catch(UnsupportedEncodingException e) + { + throw new RuntimeException("Unsupported encoding UTF8", e); + } + } } diff --git a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java index 9a3308603b..9bcc2cb3ae 100755 --- a/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java +++ b/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java @@ -59,6 +59,7 @@ import org.apache.qpid.exchange.ExchangeDefaults; import org.apache.qpid.framing.AMQShortString; import org.apache.qpid.jms.BrokerDetails; import org.apache.qpid.jms.ConnectionURL; +import org.apache.qpid.server.Broker; import org.apache.qpid.server.BrokerOptions; import org.apache.qpid.server.configuration.BrokerProperties; import org.apache.qpid.server.configuration.updater.TaskExecutor; @@ -189,6 +190,19 @@ public class QpidBrokerTestCase extends QpidTestCase _brokerConfigurations = new HashMap<Integer, TestBrokerConfiguration>(); initialiseSpawnedBrokerLogConfigFile(); _brokerCommandTemplate = BROKER_COMMAND_TEMPLATE; + + + if (JAVA.equals(_brokerLanguage)) + { + try + { + Broker.populateSystemPropertiesFromDefaults(null); + } + catch (IOException ioe) + { + throw new RuntimeException("Failed to load Java broker system properties", ioe); + } + } } public TestBrokerConfiguration getBrokerConfiguration(int port) diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/ArrivalTimeFilterTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/ArrivalTimeFilterTest.java new file mode 100644 index 0000000000..9a5982e65d --- /dev/null +++ b/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/ArrivalTimeFilterTest.java @@ -0,0 +1,107 @@ +/* + * + * 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.qpid.server.queue; + +import javax.jms.Connection; +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Queue; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.apache.qpid.AMQException; +import org.apache.qpid.client.AMQDestination; +import org.apache.qpid.client.AMQSession; +import org.apache.qpid.framing.AMQShortString; +import org.apache.qpid.test.utils.QpidBrokerTestCase; + +public class ArrivalTimeFilterTest extends QpidBrokerTestCase +{ + + private String _queueName; + private Connection _connection; + private Session _session; + private Queue _queue; + + protected void setUp() throws Exception + { + super.setUp(); + + _queueName = getTestQueueName(); + _connection = getConnection(); + _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + _connection.start(); + } + + + public void testArrivalTime0() throws AMQException, JMSException, InterruptedException + { + createDestinationWithFilter(0); + final MessageProducer prod = _session.createProducer(_queue); + TextMessage textMessage = _session.createTextMessage("hello"); + prod.send(textMessage); + + Thread.sleep(100); + + MessageConsumer cons = _session.createConsumer(_queue); + + assertNull("Message should not be received", cons.receive(500)); + + textMessage = _session.createTextMessage("hello"); + prod.send( textMessage); + + Message receivedMsg = cons.receive(500); + assertNotNull("Message should be received", receivedMsg); + } + + + public void testArrivalTime1000() throws AMQException, JMSException, InterruptedException + { + createDestinationWithFilter(1000); + final MessageProducer prod = _session.createProducer(_queue); + TextMessage textMessage = _session.createTextMessage("hello"); + prod.send(textMessage); + + Thread.sleep(100); + + MessageConsumer cons = _session.createConsumer(_queue); + + assertNotNull("Message should be received", cons.receive(500)); + + textMessage = _session.createTextMessage("hello"); + prod.send( textMessage); + + Message receivedMsg = cons.receive(500); + assertNotNull("Message should be received", receivedMsg); + } + + private void createDestinationWithFilter(final int period) throws AMQException, JMSException + { + ((AMQSession<?,?>) _session).createQueue(new AMQShortString(_queueName), false, true, false, null); + Queue queue = new org.apache.qpid.client.AMQQueue("amq.direct", _queueName); + ((AMQSession<?,?>) _session).declareAndBind((AMQDestination)queue); + _queue = _session.createQueue("direct://amq.direct/"+_queueName+"/"+_queueName+"?x-qpid-replay-period='"+period+"0'"); + } + + +} diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/DefaultFiltersTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/DefaultFiltersTest.java new file mode 100644 index 0000000000..b676e653ac --- /dev/null +++ b/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/DefaultFiltersTest.java @@ -0,0 +1,116 @@ +/* + * + * 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.qpid.server.queue; + +import java.util.HashMap; +import java.util.Map; + +import javax.jms.Connection; +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Queue; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.apache.qpid.AMQException; +import org.apache.qpid.client.AMQDestination; +import org.apache.qpid.client.AMQSession; +import org.apache.qpid.framing.AMQShortString; +import org.apache.qpid.test.utils.QpidBrokerTestCase; + +public class DefaultFiltersTest extends QpidBrokerTestCase +{ + + private String _queueName; + private Connection _connection; + private Session _session; + private Queue _queue; + + protected void setUp() throws Exception + { + super.setUp(); + + _queueName = getTestQueueName(); + _connection = getConnection(); + _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + _connection.start(); + } + + private void createQueueWithDefaultFilter(String selector) throws AMQException + { + final Map<String,Object> arguments = new HashMap<>(); + selector = selector.replace("\\", "\\\\"); + selector = selector.replace("\"", "\\\""); + + arguments.put("qpid.default_filters","{ \"x-filter-jms-selector\" : { \"x-filter-jms-selector\" : [ \""+selector+"\" ] } }"); + ((AMQSession<?,?>) _session).createQueue(new AMQShortString(_queueName), false, true, false, arguments); + _queue = new org.apache.qpid.client.AMQQueue("amq.direct", _queueName); + ((AMQSession<?,?>) _session).declareAndBind((AMQDestination)_queue); + } + + public void testDefaultFilterIsApplied() throws AMQException, JMSException + { + createQueueWithDefaultFilter("foo = 1"); + final MessageProducer prod = _session.createProducer(_queue); + TextMessage textMessage = _session.createTextMessage("hello"); + textMessage.setIntProperty("foo", 0); + prod.send(textMessage); + + MessageConsumer cons = _session.createConsumer(_queue); + + assertNull("Message with foo=0 should not be received", cons.receive(500)); + + textMessage = _session.createTextMessage("hello"); + textMessage.setIntProperty("foo", 1); + prod.send( textMessage); + + Message receivedMsg = cons.receive(500); + assertNotNull("Message with foo=1 should be received", receivedMsg); + assertEquals("Property foo not as expected", 1, receivedMsg.getIntProperty("foo")); + } + + + public void testDefaultFilterIsOverridden() throws AMQException, JMSException + { + createQueueWithDefaultFilter("foo = 1"); + final MessageProducer prod = _session.createProducer(_queue); + TextMessage textMessage = _session.createTextMessage("hello"); + textMessage.setIntProperty("foo", 0); + prod.send(textMessage); + + MessageConsumer cons = _session.createConsumer(_queue, "foo = 0"); + + Message receivedMsg = cons.receive(500); + assertNotNull("Message with foo=0 should be received", receivedMsg); + assertEquals("Property foo not as expected", 0, receivedMsg.getIntProperty("foo")); + + + textMessage = _session.createTextMessage("hello"); + textMessage.setIntProperty("foo", 1); + prod.send(textMessage); + + assertNull("Message with foo=1 should not be received", cons.receive(500)); + + } + +} diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/EnsureNondestructiveConsumersTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/EnsureNondestructiveConsumersTest.java new file mode 100644 index 0000000000..59f267cfbd --- /dev/null +++ b/qpid/java/systests/src/test/java/org/apache/qpid/server/queue/EnsureNondestructiveConsumersTest.java @@ -0,0 +1,116 @@ +/* + * + * 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.qpid.server.queue; + +import java.util.HashMap; +import java.util.Map; + +import javax.jms.Connection; +import javax.jms.JMSException; +import javax.jms.Message; +import javax.jms.MessageConsumer; +import javax.jms.MessageProducer; +import javax.jms.Queue; +import javax.jms.Session; +import javax.jms.TextMessage; + +import org.apache.qpid.AMQException; +import org.apache.qpid.client.AMQDestination; +import org.apache.qpid.client.AMQSession; +import org.apache.qpid.framing.AMQShortString; +import org.apache.qpid.test.utils.QpidBrokerTestCase; + +public class EnsureNondestructiveConsumersTest extends QpidBrokerTestCase +{ + + private String _queueName; + private Connection _connection; + private Session _session; + private Queue _queue; + + protected void setUp() throws Exception + { + super.setUp(); + + _queueName = getTestQueueName(); + _connection = getConnection(); + _session = _connection.createSession(false, Session.AUTO_ACKNOWLEDGE); + _connection.start(); + } + + private void createQueueEnsureNondestructiveConsumerOption(boolean ensureNonDestructiveConsumer) throws AMQException + { + final Map<String,Object> arguments = new HashMap<>(); + + arguments.put("qpid.ensure_nondestructive_consumers", String.valueOf(ensureNonDestructiveConsumer)); + ((AMQSession<?,?>) _session).createQueue(new AMQShortString(_queueName), false, true, false, arguments); + _queue = new org.apache.qpid.client.AMQQueue("amq.direct", _queueName); + ((AMQSession<?,?>) _session).declareAndBind((AMQDestination)_queue); + } + + public void testEnsureNondestructiveConsumers() throws AMQException, JMSException + { + createQueueEnsureNondestructiveConsumerOption(true); + final MessageProducer prod = _session.createProducer(_queue); + TextMessage textMessage; + + for(int i = 0; i < 5; i++) + { + textMessage = _session.createTextMessage("hello"); + textMessage.setIntProperty("msgID", i); + prod.send(textMessage); + } + + MessageConsumer cons1 = _session.createConsumer(_queue); + + for(int i = 0; i < 5 ; i++) + { + Message receivedMsg = cons1.receive(500); + assertNotNull("Message "+i+" not received", receivedMsg); + assertEquals("Unexpected message", i, receivedMsg.getIntProperty("msgID")); + } + + assertNull("Unexpected message arrived", cons1.receive(500)); + + MessageConsumer cons2 = _session.createConsumer(_queue); + + for(int i = 0; i < 5 ; i++) + { + Message receivedMsg = cons2.receive(500); + assertNotNull("Message "+i+" not received", receivedMsg); + assertEquals("Unexpected message", i, receivedMsg.getIntProperty("msgID")); + } + + assertNull("Unexpected message arrived", cons2.receive(500)); + + textMessage = _session.createTextMessage("hello"); + textMessage.setIntProperty("msgID", 6); + prod.send(textMessage); + + assertNotNull("Message not received on first consumer", cons1.receive(500)); + assertNotNull("Message not received on second consumer", cons2.receive(500)); + + assertNull("Unexpected message arrived", cons1.receive(500)); + assertNull("Unexpected message arrived", cons2.receive(500)); + + } + +} diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/management/jmx/MBeanLifeCycleTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/management/jmx/MBeanLifeCycleTest.java index 71f911627e..761ef74ad0 100644 --- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/management/jmx/MBeanLifeCycleTest.java +++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/management/jmx/MBeanLifeCycleTest.java @@ -35,7 +35,6 @@ import org.apache.qpid.server.model.Port; import org.apache.qpid.server.model.VirtualHost; import org.apache.qpid.server.model.State; import org.apache.qpid.server.model.VirtualHostNode; -import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManager; import org.apache.qpid.server.virtualhost.ProvidedStoreVirtualHostImpl; import org.apache.qpid.server.virtualhostnode.memory.MemoryVirtualHostNode; import org.apache.qpid.systest.rest.QpidRestTestCase; @@ -63,11 +62,6 @@ public class MBeanLifeCycleTest extends QpidRestTestCase config.addHttpManagementConfiguration(); config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.PORT, getRestTestHelper().getHttpPort()); - Map<String, Object> anonymousProviderAttributes = new HashMap<String, Object>(); - anonymousProviderAttributes.put(AuthenticationProvider.TYPE, AnonymousAuthenticationManager.PROVIDER_TYPE); - anonymousProviderAttributes.put(AuthenticationProvider.NAME, ANONYMOUS_AUTHENTICATION_PROVIDER); - config.addObjectConfiguration(AuthenticationProvider.class, anonymousProviderAttributes); - // set password authentication provider on http port for the tests config.setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java index 2467705903..dd93a917c0 100644 --- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java +++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/AuthenticationProviderRestTest.java @@ -46,16 +46,11 @@ public class AuthenticationProviderRestTest extends QpidRestTestCase { List<Map<String, Object>> providerDetails = getRestTestHelper().getJsonAsList("authenticationprovider"); assertNotNull("Providers details cannot be null", providerDetails); - assertEquals("Unexpected number of providers", 2, providerDetails.size()); + assertEquals("Unexpected number of providers", 1, providerDetails.size()); for (Map<String, Object> provider : providerDetails) { boolean managesPrincipals = true; String type = PlainPasswordDatabaseAuthenticationManager.PROVIDER_TYPE; - if (ANONYMOUS_AUTHENTICATION_PROVIDER.equals(provider.get(AuthenticationProvider.NAME))) - { - type = AnonymousAuthenticationManager.PROVIDER_TYPE; - managesPrincipals = false; - } assertProvider(managesPrincipals, type , provider); Map<String, Object> data = getRestTestHelper().getJsonAsSingletonList("authenticationprovider/" + provider.get(AuthenticationProvider.NAME)); @@ -258,53 +253,6 @@ public class AuthenticationProviderRestTest extends QpidRestTestCase } } - public void testCreateAndDeletePasswordAuthenticationProviderWithNonExistingFile() throws Exception - { - stopBroker(); - getBrokerConfiguration().setSaved(false); - getBrokerConfiguration().removeObjectConfiguration(AuthenticationProvider.class, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); - getBrokerConfiguration().setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT, Port.AUTHENTICATION_PROVIDER, ANONYMOUS_AUTHENTICATION_PROVIDER); - getBrokerConfiguration().setObjectAttribute(Port.class, TestBrokerConfiguration.ENTRY_NAME_HTTP_PORT, Port.AUTHENTICATION_PROVIDER, ANONYMOUS_AUTHENTICATION_PROVIDER); - - startBroker(); - - File file = new File(TMP_FOLDER + File.separator + getTestName()); - if (file.exists()) - { - file.delete(); - } - assertFalse("File " + file.getAbsolutePath() + " should not exist", file.exists()); - - // create provider - String providerName = "test-provider"; - Map<String, Object> attributes = new HashMap<String, Object>(); - attributes.put(AuthenticationProvider.NAME, providerName); - attributes.put(AuthenticationProvider.TYPE, PlainPasswordDatabaseAuthenticationManager.PROVIDER_TYPE); - attributes.put(ExternalFileBasedAuthenticationManager.PATH, file.getAbsolutePath()); - - int responseCode = getRestTestHelper().submitRequest("authenticationprovider/" + providerName, "PUT", attributes); - assertEquals("Password provider was not created", 201, responseCode); - - - Map<String, Object> providerDetails = getRestTestHelper().getJsonAsSingletonList("authenticationprovider/" + providerName); - assertNotNull("Providers details cannot be null", providerDetails); - assertEquals("Unexpected name", providerName, providerDetails.get(AuthenticationProvider.NAME)); - assertEquals("Unexpected type", PlainPasswordDatabaseAuthenticationManager.PROVIDER_TYPE, providerDetails.get(AuthenticationProvider.TYPE)); - assertEquals("Unexpected path", file.getAbsolutePath(), providerDetails.get( - ExternalFileBasedAuthenticationManager.PATH)); - - assertTrue("User file should be created", file.exists()); - - responseCode = getRestTestHelper().submitRequest("authenticationprovider/" + providerName , "DELETE"); - assertEquals("Unexpected response code for provider deletion", 200, responseCode); - - List<Map<String, Object>> providers = getRestTestHelper().getJsonAsList("authenticationprovider/" + providerName); - assertNotNull("Providers details cannot be null", providers); - assertEquals("Unexpected number of providers", 0, providers.size()); - - assertFalse("File " + file.getAbsolutePath() + " should be deleted", file.exists()); - } - private void assertProvider(boolean managesPrincipals, String type, Map<String, Object> provider) { Asserts.assertAttributesPresent(provider, BrokerModel.getInstance().getTypeRegistry().getAttributeNames( diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ConnectionRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ConnectionRestTest.java index 439e592a7e..2142004411 100644 --- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ConnectionRestTest.java +++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ConnectionRestTest.java @@ -21,7 +21,6 @@ package org.apache.qpid.systest.rest; import java.io.IOException; -import java.net.URLDecoder; import java.util.List; import java.util.Map; @@ -112,7 +111,7 @@ public class ConnectionRestTest extends QpidRestTestCase String connectionName = getConnectionName(); Map<String, Object> connectionDetails = getRestTestHelper().getJsonAsSingletonList("connection/test/test/" - + URLDecoder.decode(connectionName, "UTF-8")); + + getRestTestHelper().encodeAsUTF(connectionName)); assertConnection(connectionDetails); } @@ -124,7 +123,7 @@ public class ConnectionRestTest extends QpidRestTestCase List<Map<String, Object>> connections = getRestTestHelper().getJsonAsList("connection/test/test"); assertEquals("Unexpected number of connections before deletion", 1, connections.size()); - String connectionUrl = "connection/test/test/" + URLDecoder.decode(connectionName, "UTF-8"); + String connectionUrl = "connection/test/test/" + getRestTestHelper().encodeAsUTF(connectionName); getRestTestHelper().submitRequest(connectionUrl, "DELETE", HttpServletResponse.SC_OK); connections = getRestTestHelper().getJsonAsList("connection/test/test"); @@ -161,7 +160,7 @@ public class ConnectionRestTest extends QpidRestTestCase String connectionName = getConnectionName(); List<Map<String, Object>> sessions = getRestTestHelper().getJsonAsList("session/test/test/" - + URLDecoder.decode(connectionName, "UTF-8")); + + getRestTestHelper().encodeAsUTF(connectionName)); assertEquals("Unexpected number of sessions", 1, sessions.size()); assertSession(sessions.get(0), (AMQSession<?, ?>) _session); } @@ -172,7 +171,7 @@ public class ConnectionRestTest extends QpidRestTestCase String connectionName = getConnectionName(); List<Map<String, Object>> sessions = getRestTestHelper().getJsonAsList("session/test/test/" - + URLDecoder.decode(connectionName, "UTF-8") + "/" + ((AMQSession<?, ?>) _session).getChannelId()); + + getRestTestHelper().encodeAsUTF(connectionName) + "/" + ((AMQSession<?, ?>) _session).getChannelId()); assertEquals("Unexpected number of sessions", 1, sessions.size()); assertSession(sessions.get(0), (AMQSession<?, ?>) _session); } @@ -187,7 +186,8 @@ public class ConnectionRestTest extends QpidRestTestCase String connectionName = getConnectionName(); List<Map<String, Object>> sessions = getRestTestHelper().getJsonAsList("session/test/test/" - + URLDecoder.decode(connectionName, "UTF-8") + "/" + ((AMQSession<?, ?>) _session).getChannelId()); + + getRestTestHelper().encodeAsUTF(connectionName) + + "/" + ((AMQSession<?, ?>) _session).getChannelId()); assertEquals("Unexpected number of sessions", 1, sessions.size()); final Map<String, Object> sessionData = sessions.get(0); diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ExchangeRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ExchangeRestTest.java index 51cb6dde1a..39e3c5c7c3 100644 --- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ExchangeRestTest.java +++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/ExchangeRestTest.java @@ -20,7 +20,6 @@ */ package org.apache.qpid.systest.rest; -import java.net.URLDecoder; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -65,7 +64,7 @@ public class ExchangeRestTest extends QpidRestTestCase for (String exchangeName : EXPECTED_EXCHANGES) { Map<String, Object> exchange = getRestTestHelper().getJsonAsSingletonList("exchange/test/test/" - + URLDecoder.decode(exchangeName, "UTF-8")); + + getRestTestHelper().encodeAsUTF(exchangeName)); assertExchange(exchangeName, exchange); } } diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java index a3bf1ab3cb..fbf00339ce 100644 --- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java +++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/KeyStoreRestTest.java @@ -55,7 +55,7 @@ public class KeyStoreRestTest extends QpidRestTestCase Map<String, Object> keystore = keyStores.get(0); assertEquals("Unexpected name", TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE, keystore.get(KeyStore.NAME)); - assertEquals("unexpected path to key store", AbstractConfiguredObject.SECURED_STRING_VALUE, keystore.get(FileKeyStore.STORE_URL)); + assertEquals("unexpected path to key store", ConfiguredObject.OVER_SIZED_ATTRIBUTE_ALTERNATIVE_TEXT, keystore.get(FileKeyStore.STORE_URL)); assertEquals("unexpected (dummy) password of default systests key store", AbstractConfiguredObject.SECURED_STRING_VALUE, keystore.get(FileKeyStore.PASSWORD)); assertEquals("unexpected type of default systests key store", java.security.KeyStore.getDefaultType(), keystore.get(FileKeyStore.KEY_STORE_TYPE)); assertFalse("should not be a certificateAlias attribute", keystore.containsKey(FileKeyStore.CERTIFICATE_ALIAS)); @@ -77,7 +77,7 @@ public class KeyStoreRestTest extends QpidRestTestCase Map<String, Object> keystore = keyStores.get(0); assertEquals("Unexpected name", name, keystore.get(KeyStore.NAME)); - assertEquals("unexpected path to key store", AbstractConfiguredObject.SECURED_STRING_VALUE, keystore.get(FileKeyStore.STORE_URL)); + assertEquals("unexpected path to key store", TestSSLConstants.KEYSTORE, keystore.get(FileKeyStore.STORE_URL)); assertEquals("unexpected password", AbstractConfiguredObject.SECURED_STRING_VALUE, keystore.get(FileKeyStore.PASSWORD)); assertEquals("unexpected alias", certAlias, keystore.get(FileKeyStore.CERTIFICATE_ALIAS)); } @@ -125,7 +125,7 @@ public class KeyStoreRestTest extends QpidRestTestCase List<Map<String, Object>> keyStores = assertNumberOfKeyStores(1); Map<String, Object> keystore = keyStores.get(0); assertEquals("Unexpected name", TestBrokerConfiguration.ENTRY_NAME_SSL_KEYSTORE, keystore.get(KeyStore.NAME)); - assertEquals("unexpected path to key store", AbstractConfiguredObject.SECURED_STRING_VALUE, keystore.get(FileKeyStore.STORE_URL)); + assertEquals("unexpected path to key store", ConfiguredObject.OVER_SIZED_ATTRIBUTE_ALTERNATIVE_TEXT, keystore.get(FileKeyStore.STORE_URL)); assertEquals("unexpected (dummy) password of default systests key store", AbstractConfiguredObject.SECURED_STRING_VALUE, keystore.get(FileKeyStore.PASSWORD)); assertFalse("should not be a certificateAlias attribute", keystore.containsKey(FileKeyStore.CERTIFICATE_ALIAS)); } @@ -151,7 +151,7 @@ public class KeyStoreRestTest extends QpidRestTestCase Map<String, Object> keystore = keyStores.get(0); assertEquals("Unexpected name", name, keystore.get(KeyStore.NAME)); - assertEquals("unexpected data", AbstractConfiguredObject.SECURED_STRING_VALUE, keystore.get(FileKeyStore.STORE_URL)); + assertEquals("unexpected data", TestSSLConstants.UNTRUSTED_KEYSTORE, keystore.get(FileKeyStore.STORE_URL)); assertEquals("unexpected password", AbstractConfiguredObject.SECURED_STRING_VALUE, keystore.get(FileKeyStore.PASSWORD)); assertEquals("unexpected alias", null, keystore.get(FileKeyStore.CERTIFICATE_ALIAS)); } diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/PortRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/PortRestTest.java index 538bd3b32a..4394d55294 100644 --- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/PortRestTest.java +++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/PortRestTest.java @@ -21,7 +21,6 @@ package org.apache.qpid.systest.rest; import java.net.ServerSocket; -import java.net.URLDecoder; import java.util.Arrays; import java.util.Collection; import java.util.Collections; @@ -71,7 +70,7 @@ public class PortRestTest extends QpidRestTestCase { String portName = (String) portMap.get(Port.NAME); assertNotNull("Port name attribute is not found", portName); - Map<String, Object> portData = getRestTestHelper().getJsonAsSingletonList("port/" + URLDecoder.decode(portName, "UTF-8")); + Map<String, Object> portData = getRestTestHelper().getJsonAsSingletonList("port/" + getRestTestHelper().encodeAsUTF(portName)); assertNotNull("Port " + portName + " is not found", portData); Asserts.assertPortAttributes(portData); } @@ -319,12 +318,12 @@ public class PortRestTest extends QpidRestTestCase attributes = new HashMap<String, Object>(); attributes.put(Port.NAME, portName); - attributes.put(Port.AUTHENTICATION_PROVIDER, ANONYMOUS_AUTHENTICATION_PROVIDER); + attributes.put(Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); responseCode = getRestTestHelper().submitRequest("port/" + portName, "PUT", attributes); assertEquals("Unexpected response when trying to change auth provider to existing one", 200, responseCode); Map<String, Object> port = getRestTestHelper().getJsonAsSingletonList("port/" + portName); - assertEquals("Unexpected auth provider", ANONYMOUS_AUTHENTICATION_PROVIDER, port.get(Port.AUTHENTICATION_PROVIDER)); + assertEquals("Unexpected auth provider", TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER, port.get(Port.AUTHENTICATION_PROVIDER)); } public void testDefaultAmqpPortIsQuiescedWhenInManagementMode() throws Exception @@ -335,14 +334,14 @@ public class PortRestTest extends QpidRestTestCase getRestTestHelper().setUsernameAndPassword(BrokerOptions.MANAGEMENT_MODE_USER_NAME, MANAGEMENT_MODE_PASSWORD); String ampqPortName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT; - Map<String, Object> portData = getRestTestHelper().getJsonAsSingletonList("port/" + URLDecoder.decode(ampqPortName, "UTF-8")); + Map<String, Object> portData = getRestTestHelper().getJsonAsSingletonList("port/" + getRestTestHelper().encodeAsUTF(ampqPortName)); Asserts.assertPortAttributes(portData, State.QUIESCED); } public void testNewPortErroredIfPortNumberInUse() throws Exception { String ampqPortName = TestBrokerConfiguration.ENTRY_NAME_AMQP_PORT; - Map<String, Object> portData = getRestTestHelper().getJsonAsSingletonList("port/" + URLDecoder.decode(ampqPortName, "UTF-8")); + Map<String, Object> portData = getRestTestHelper().getJsonAsSingletonList("port/" + getRestTestHelper().encodeAsUTF(ampqPortName)); int amqpPort = (Integer)portData.get(Port.PORT); ServerSocket socket = new ServerSocket(0); @@ -360,7 +359,7 @@ public class PortRestTest extends QpidRestTestCase int responseCode = getRestTestHelper().submitRequest("port/" + newPortName, "PUT", attributes); assertEquals("Unexpected response code for port creation", 409, responseCode); - List<Map<String,Object>> ports = getRestTestHelper().getJsonAsList("port/" + URLDecoder.decode(newPortName, "UTF-8")); + List<Map<String,Object>> ports = getRestTestHelper().getJsonAsList("port/" + getRestTestHelper().encodeAsUTF(newPortName)); assertTrue("Port should not be created", ports.isEmpty()); } } diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/QueueRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/QueueRestTest.java index baebc9a28e..70450d57bf 100644 --- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/QueueRestTest.java +++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/QueueRestTest.java @@ -21,7 +21,6 @@ package org.apache.qpid.systest.rest; import java.io.IOException; -import java.net.URLDecoder; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -197,7 +196,7 @@ public class QueueRestTest extends QpidRestTestCase bindingData.put(Binding.EXCHANGE, exchangeName); bindingData.put(Binding.QUEUE, queueName); - String url = "binding/test/test/" + URLDecoder.decode(exchangeName, "UTF-8") + "/" + queueName + "/" + bindingName; + String url = "binding/test/test/" + getRestTestHelper().encodeAsUTF(exchangeName) + "/" + queueName + "/" + bindingName; int responseCode = getRestTestHelper().submitRequest(url, "PUT", bindingData); assertEquals("Unexpected response code", 201, responseCode); } diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/StructureRestTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/StructureRestTest.java index daefc05e2a..b6973359a3 100644 --- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/StructureRestTest.java +++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/StructureRestTest.java @@ -53,7 +53,7 @@ public class StructureRestTest extends QpidRestTestCase @SuppressWarnings("unchecked") List<Map<String, Object>> providers = (List<Map<String, Object>>) structure.get("authenticationproviders"); - assertEquals("Unexpected number of authentication providers", 2, providers.size()); + assertEquals("Unexpected number of authentication providers", 1, providers.size()); for (String nodeName : EXPECTED_VIRTUALHOSTS) { diff --git a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java index c05e95c4d4..1b958f728f 100644 --- a/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java +++ b/qpid/java/systests/src/test/java/org/apache/qpid/systest/rest/acl/BrokerACLTest.java @@ -244,29 +244,6 @@ public class BrokerACLTest extends QpidRestTestCase assertPortDoesNotExist(portName); } - // TODO: test disabled until allowing the updating of active ports outside management mode - public void DISABLED_testSetPortAttributesAllowed() throws Exception - { - getRestTestHelper().setUsernameAndPassword(ALLOWED_USER, ALLOWED_USER); - - String portName = getTestName(); - - int responseCode = createPort(portName); - assertEquals("Port creation should be allowed", 201, responseCode); - - assertPortExists(portName); - - - Map<String, Object> attributes = new HashMap<String, Object>(); - attributes.put(Port.NAME, portName); - attributes.put(Port.AUTHENTICATION_PROVIDER, ANONYMOUS_AUTHENTICATION_PROVIDER); - responseCode = getRestTestHelper().submitRequest("port/" + portName, "PUT", attributes); - assertEquals("Setting of port attribites should be allowed", 200, responseCode); - - Map<String, Object> port = getRestTestHelper().getJsonAsSingletonList("port/" + portName); - assertEquals("Unexpected authentication provider attribute value", ANONYMOUS_AUTHENTICATION_PROVIDER, - port.get(Port.AUTHENTICATION_PROVIDER)); - } public void testSetPortAttributesDenied() throws Exception { @@ -284,7 +261,7 @@ public class BrokerACLTest extends QpidRestTestCase Map<String, Object> attributes = new HashMap<String, Object>(); attributes.put(Port.NAME, portName); attributes.put(Port.PROTOCOLS, Arrays.asList(Protocol.AMQP_0_9)); - attributes.put(Port.AUTHENTICATION_PROVIDER, ANONYMOUS_AUTHENTICATION_PROVIDER); + attributes.put(Port.AUTHENTICATION_PROVIDER, TestBrokerConfiguration.ENTRY_NAME_AUTHENTICATION_PROVIDER); responseCode = getRestTestHelper().submitRequest("port/" + portName, "PUT", attributes); assertEquals("Setting of port attribites should be denied", 403, responseCode); |
