You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kp...@apache.org on 2013/09/20 20:59:50 UTC
svn commit: r1525101 [14/21] - in /qpid/branches/linearstore/qpid: ./ bin/
cpp/ cpp/bindings/ cpp/bindings/qmf/ cpp/bindings/qmf/python/
cpp/bindings/qmf/ruby/ cpp/bindings/qmf/tests/ cpp/bindings/qmf2/
cpp/bindings/qmf2/examples/cpp/ cpp/bindings/qmf2...
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ChannelLogSubject.java Fri Sep 20 18:59:30 2013
@@ -20,20 +20,16 @@
*/
package org.apache.qpid.server.logging.subjects;
-import org.apache.qpid.server.AMQChannel;
-import org.apache.qpid.server.protocol.AMQProtocolSession;
-import org.apache.qpid.server.transport.ServerConnection;
-import org.apache.qpid.server.transport.ServerSession;
+import org.apache.qpid.server.protocol.AMQConnectionModel;
+import org.apache.qpid.server.protocol.AMQSessionModel;
import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CHANNEL_FORMAT;
public class ChannelLogSubject extends AbstractLogSubject
{
- public ChannelLogSubject(AMQChannel channel)
+ public ChannelLogSubject(AMQSessionModel session)
{
- AMQProtocolSession session = channel.getProtocolSession();
-
/**
* LOG FORMAT used by the AMQPConnectorActor follows
* ChannelLogSubject.CHANNEL_FORMAT : con:{0}({1}@{2}/{3})/ch:{4}.
@@ -47,39 +43,14 @@ public class ChannelLogSubject extends A
* 3 - Virtualhost
* 4 - Channel ID
*/
+ AMQConnectionModel connection = session.getConnectionModel();
setLogStringWithFormat(CHANNEL_FORMAT,
- session.getSessionID(),
- session.getAuthorizedPrincipal().getName(),
- session.getRemoteAddress(),
- session.getVirtualHost().getName(),
- channel.getChannelId());
- }
+ connection == null ? -1L : connection.getConnectionId(),
+ (connection == null || connection.getPrincipalAsString() == null) ? "?" : connection.getPrincipalAsString(),
+ (connection == null || connection.getRemoteAddressString() == null) ? "?" : connection.getRemoteAddressString(),
+ (connection == null || connection.getVirtualHostName() == null) ? "?" : connection.getVirtualHostName(),
+ session.getChannelId());
- public ChannelLogSubject(ServerSession session)
- {
- /**
- * LOG FORMAT used by the AMQPConnectorActor follows
- * ChannelLogSubject.CHANNEL_FORMAT : con:{0}({1}@{2}/{3})/ch:{4}.
- *
- * Uses a MessageFormat call to insert the required values according to
- * these indices:
- *
- * 0 - Connection ID
- * 1 - User ID
- * 2 - IP
- * 3 - Virtualhost
- * 4 - Channel ID
- */
- if(session.getConnection() instanceof ServerConnection)
- {
- ServerConnection connection = (ServerConnection) session.getConnection();
- setLogStringWithFormat(CHANNEL_FORMAT,
- connection == null ? -1L : connection.getConnectionId(),
- session.getAuthorizedPrincipal() == null ? "?" : session.getAuthorizedPrincipal().getName(),
- (connection == null || connection.getRemoteAddressString() == null) ? "?" : connection.getRemoteAddressString(),
- session.getVirtualHost().getName(),
- session.getChannel());
- }
}
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ConnectionLogSubject.java Fri Sep 20 18:59:30 2013
@@ -20,34 +20,33 @@
*/
package org.apache.qpid.server.logging.subjects;
-import org.apache.qpid.server.protocol.AMQProtocolSession;
+import java.text.MessageFormat;
+import org.apache.qpid.server.protocol.AMQConnectionModel;
import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.CONNECTION_FORMAT;
import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.SOCKET_FORMAT;
import static org.apache.qpid.server.logging.subjects.LogSubjectFormat.USER_FORMAT;
-import java.text.MessageFormat;
-
/** The Connection LogSubject */
public class ConnectionLogSubject extends AbstractLogSubject
{
- public ConnectionLogSubject(AMQProtocolSession session)
+ // The Session this Actor is representing
+ private AMQConnectionModel _session;
+
+ public ConnectionLogSubject(AMQConnectionModel session)
{
_session = session;
}
- // The Session this Actor is representing
- private AMQProtocolSession _session;
-
// Used to stop re-creating the _logString when we reach our final format
private boolean _upToDate = false;
/**
* Update the LogString as the Connection process proceeds.
- *
+ *
* When the Session has an authorized ID add that to the string.
- *
+ *
* When the Session then gains a Vhost add that to the string, at this point
* we can set upToDate = true as the _logString will not need to be updated
* from this point onwards.
@@ -56,44 +55,44 @@ public class ConnectionLogSubject extend
{
if (!_upToDate)
{
- if (_session.getAuthorizedPrincipal() != null)
+ if (_session.getPrincipalAsString() != null)
{
- if (_session.getVirtualHost() != null)
+ if (_session.getVirtualHostName() != null)
{
/**
* LOG FORMAT used by the AMQPConnectorActor follows
* ConnectionLogSubject.CONNECTION_FORMAT :
* con:{0}({1}@{2}/{3})
- *
+ *
* Uses a MessageFormat call to insert the required values
* according to these indices:
- *
+ *
* 0 - Connection ID 1 - User ID 2 - IP 3 - Virtualhost
*/
setLogString("[" + MessageFormat.format(CONNECTION_FORMAT,
- _session.getSessionID(),
- _session.getAuthorizedPrincipal().getName(),
- _session.getRemoteAddress(),
- _session.getVirtualHost().getName())
+ _session.getConnectionId(),
+ _session.getPrincipalAsString(),
+ _session.getRemoteAddressString(),
+ _session.getVirtualHostName())
+ "] ");
_upToDate = true;
- }
+ }
else
{
setLogString("[" + MessageFormat.format(USER_FORMAT,
- _session.getSessionID(),
- _session.getAuthorizedPrincipal().getName(),
- _session.getRemoteAddress())
+ _session.getConnectionId(),
+ _session.getPrincipalAsString(),
+ _session.getRemoteAddressString())
+ "] ");
}
- }
+ }
else
{
setLogString("[" + MessageFormat.format(SOCKET_FORMAT,
- _session.getSessionID(),
- _session.getRemoteAddress())
+ _session.getConnectionId(),
+ _session.getRemoteAddressString())
+ "] ");
}
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/ExchangeLogSubject.java Fri Sep 20 18:59:30 2013
@@ -32,6 +32,6 @@ public class ExchangeLogSubject extends
public ExchangeLogSubject(Exchange exchange, VirtualHost vhost)
{
setLogStringWithFormat(EXCHANGE_FORMAT, vhost.getName(),
- exchange.getTypeShortString(), exchange.getNameShortString());
+ exchange.getType().getType(), exchange.getName());
}
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/logging/subjects/MessageStoreLogSubject.java Fri Sep 20 18:59:30 2013
@@ -28,8 +28,10 @@ public class MessageStoreLogSubject exte
{
/** Create an MessageStoreLogSubject that Logs in the following format. */
- public MessageStoreLogSubject(VirtualHost vhost, String messageStoreName)
+ public MessageStoreLogSubject(String vhostName, String messageStoreName)
{
- setLogStringWithFormat(STORE_FORMAT, vhost.getName(), messageStoreName);
+ setLogStringWithFormat(STORE_FORMAT, vhostName, messageStoreName);
}
+
+
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/message/InboundMessage.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/message/InboundMessage.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/message/InboundMessage.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/message/InboundMessage.java Fri Sep 20 18:59:30 2013
@@ -21,13 +21,11 @@
package org.apache.qpid.server.message;
-import org.apache.qpid.framing.AMQShortString;
import org.apache.qpid.server.queue.Filterable;
public interface InboundMessage extends Filterable
{
String getRoutingKey();
- AMQShortString getRoutingKeyShortString();
AMQMessageHeader getMessageHeader();
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/AuthenticationProvider.java Fri Sep 20 18:59:30 2013
@@ -66,4 +66,15 @@ public interface AuthenticationProvider
*/
SubjectCreator getSubjectCreator();
+ /**
+ * Returns the preferences provider associated with this authentication provider
+ * @return PreferencesProvider
+ */
+ PreferencesProvider getPreferencesProvider();
+
+ /**
+ * Sets the preferences provider
+ * @param preferencesProvider
+ */
+ void setPreferencesProvider(PreferencesProvider preferencesProvider);
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Broker.java Fri Sep 20 18:59:30 2013
@@ -45,6 +45,7 @@ public interface Broker extends Configur
String SUPPORTED_VIRTUALHOST_TYPES = "supportedVirtualHostTypes";
String SUPPORTED_VIRTUALHOST_STORE_TYPES = "supportedVirtualHostStoreTypes";
String SUPPORTED_AUTHENTICATION_PROVIDERS = "supportedAuthenticationProviders";
+ String SUPPORTED_PREFERENCES_PROVIDERS_TYPES = "supportedPreferencesProviderTypes";
String CREATED = "created";
String DURABLE = "durable";
String ID = "id";
@@ -93,6 +94,7 @@ public interface Broker extends Configur
SUPPORTED_BROKER_STORE_TYPES,
SUPPORTED_VIRTUALHOST_STORE_TYPES,
SUPPORTED_AUTHENTICATION_PROVIDERS,
+ SUPPORTED_PREFERENCES_PROVIDERS_TYPES,
CREATED,
DURABLE,
ID,
@@ -183,4 +185,6 @@ public interface Broker extends Configur
TaskExecutor getTaskExecutor();
boolean isManagementMode();
+
+ AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress);
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/KeyStore.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/KeyStore.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/KeyStore.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/KeyStore.java Fri Sep 20 18:59:30 2013
@@ -20,9 +20,11 @@
*/
package org.apache.qpid.server.model;
+import java.security.GeneralSecurityException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import javax.net.ssl.KeyManager;
public interface KeyStore extends ConfiguredObject
{
@@ -64,4 +66,7 @@ public interface KeyStore extends Config
public String getPassword();
public void setPassword(String password);
+
+ public KeyManager[] getKeyManagers() throws GeneralSecurityException;
+
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Model.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Model.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Model.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Model.java Fri Sep 20 18:59:30 2013
@@ -70,6 +70,7 @@ public class Model
addRelationship(VirtualHost.class, VirtualHostAlias.class);
addRelationship(AuthenticationProvider.class, User.class);
+ addRelationship(AuthenticationProvider.class, PreferencesProvider.class);
addRelationship(User.class, GroupMember.class);
addRelationship(GroupProvider.class, Group.class);
@@ -77,12 +78,12 @@ public class Model
addRelationship(Connection.class, Session.class);
- addRelationship(Exchange.class, Binding.class);
- addRelationship(Exchange.class, Publisher.class);
-
addRelationship(Queue.class, Binding.class);
addRelationship(Queue.class, Consumer.class);
+ addRelationship(Exchange.class, Binding.class);
+ addRelationship(Exchange.class, Publisher.class);
+
addRelationship(Session.class, Consumer.class);
addRelationship(Session.class, Publisher.class);
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Queue.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Queue.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Queue.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/Queue.java Fri Sep 20 18:59:30 2013
@@ -89,6 +89,7 @@ public interface Queue extends Configure
public static final String EXCLUSIVE = "exclusive";
public static final String MESSAGE_GROUP_KEY = "messageGroupKey";
public static final String MESSAGE_GROUP_SHARED_GROUPS = "messageGroupSharedGroups";
+ public static final String MESSAGE_GROUP_DEFAULT_GROUP = "messageGroupDefaultGroup";
public static final String LVQ_KEY = "lvqKey";
public static final String MAXIMUM_DELIVERY_ATTEMPTS = "maximumDeliveryAttempts";
public static final String NO_LOCAL = "noLocal";
@@ -100,6 +101,10 @@ public interface Queue extends Configure
public static final String TYPE = "type";
public static final String PRIORITIES = "priorities";
+ public static final String CREATE_DLQ_ON_CREATION = "x-qpid-dlq-enabled"; // TODO - this value should change
+
+ public static final String FEDERATION_EXCLUDES = "federationExcludes";
+ public static final String FEDERATION_ID = "federationId";
public static final Collection<String> AVAILABLE_ATTRIBUTES =
@@ -134,6 +139,7 @@ public interface Queue extends Configure
PRIORITIES
));
+
//children
Collection<Binding> getBindings();
Collection<Consumer> getConsumers();
@@ -144,6 +150,6 @@ public interface Queue extends Configure
void visit(QueueEntryVisitor visitor);
void delete();
-
+
void setNotificationListener(QueueNotificationListener listener);
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/TrustStore.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/TrustStore.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/TrustStore.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/TrustStore.java Fri Sep 20 18:59:30 2013
@@ -20,9 +20,11 @@
*/
package org.apache.qpid.server.model;
+import java.security.GeneralSecurityException;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import javax.net.ssl.TrustManager;
public interface TrustStore extends ConfiguredObject
{
@@ -64,4 +66,8 @@ public interface TrustStore extends Conf
public String getPassword();
public void setPassword(String password);
+
+ public TrustManager[] getTrustManagers() throws GeneralSecurityException;
+
+
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/UUIDGenerator.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/UUIDGenerator.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/UUIDGenerator.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/UUIDGenerator.java Fri Sep 20 18:59:30 2013
@@ -92,4 +92,9 @@ public class UUIDGenerator
{
return createUUID(type, childName);
}
+
+ public static UUID generatePreferencesProviderUUID(String preferencesProviderName, String authenticationProviderName)
+ {
+ return createUUID(PreferencesProvider.class.getName(), authenticationProviderName, preferencesProviderName);
+ }
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/User.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/User.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/User.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/User.java Fri Sep 20 18:59:30 2013
@@ -24,6 +24,7 @@ package org.apache.qpid.server.model;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
+import java.util.Map;
public interface User extends ConfiguredObject
{
@@ -54,4 +55,11 @@ public interface User extends Configured
public void setPassword(String password);
+ public Map<String, Object> getPreferences();
+
+ public Object getPreference(String name);
+
+ public Map<String, Object> setPreferences(Map<String, Object> preferences);
+
+ public Map<String, Object> replacePreferences(Map<String, Object> newPreferences);
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/VirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/VirtualHost.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/VirtualHost.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/VirtualHost.java Fri Sep 20 18:59:30 2013
@@ -74,6 +74,8 @@ public interface VirtualHost extends Con
String STORE_TRANSACTION_OPEN_TIMEOUT_WARN = "storeTransactionOpenTimeoutWarn";
String STORE_TYPE = "storeType";
String STORE_PATH = "storePath";
+ String CONFIG_STORE_TYPE = "configStoreType";
+ String CONFIG_STORE_PATH = "configStorePath";
String SUPPORTED_EXCHANGE_TYPES = "supportedExchangeTypes";
String SUPPORTED_QUEUE_TYPES = "supportedQueueTypes";
String CREATED = "created";
@@ -107,6 +109,8 @@ public interface VirtualHost extends Con
QUEUE_MAXIMUM_DELIVERY_ATTEMPTS,
QUEUE_FLOW_CONTROL_SIZE_BYTES,
QUEUE_FLOW_RESUME_SIZE_BYTES,
+ CONFIG_STORE_TYPE,
+ CONFIG_STORE_PATH,
STORE_TYPE,
STORE_PATH,
STORE_TRANSACTION_IDLE_TIMEOUT_CLOSE,
@@ -120,6 +124,8 @@ public interface VirtualHost extends Con
QUEUE_ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES,
CONFIG_PATH));
+ int CURRENT_CONFIG_VERSION = 3;
+
//children
Collection<VirtualHostAlias> getAliases();
Collection<Connection> getConnections();
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AbstractAdapter.java Fri Sep 20 18:59:30 2013
@@ -39,7 +39,7 @@ import org.apache.qpid.server.configurat
import org.apache.qpid.server.configuration.updater.SetAttributeTask;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
-abstract class AbstractAdapter implements ConfiguredObject
+public abstract class AbstractAdapter implements ConfiguredObject
{
private static final Object ID = "id";
private final Map<String,Object> _attributes = new HashMap<String, Object>();
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AmqpPortAdapter.java Fri Sep 20 18:59:30 2013
@@ -21,18 +21,21 @@ package org.apache.qpid.server.model.ada
import static org.apache.qpid.transport.ConnectionSettings.WILDCARD_ADDRESS;
-import java.io.IOException;
import java.net.InetSocketAddress;
import java.security.GeneralSecurityException;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collection;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
+import javax.net.ssl.KeyManager;
import javax.net.ssl.SSLContext;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.logging.actors.CurrentActor;
@@ -46,10 +49,9 @@ import org.apache.qpid.server.model.Trus
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.protocol.AmqpProtocolVersion;
import org.apache.qpid.server.protocol.MultiVersionProtocolEngineFactory;
-import org.apache.qpid.server.util.MapValueConverter;
-import org.apache.qpid.ssl.SSLContextFactory;
import org.apache.qpid.transport.NetworkTransportConfiguration;
import org.apache.qpid.transport.network.IncomingNetworkTransport;
+import org.apache.qpid.transport.network.security.ssl.QpidMultipleTrustManager;
public class AmqpPortAdapter extends PortAdapter
{
@@ -136,8 +138,8 @@ public class AmqpPortAdapter extends Por
private SSLContext createSslContext()
{
KeyStore keyStore = getKeyStore();
-
Collection<TrustStore> trustStores = getTrustStores();
+
boolean needClientCert = (Boolean)getAttribute(NEED_CLIENT_AUTH) || (Boolean)getAttribute(WANT_CLIENT_AUTH);
if (needClientCert && trustStores.isEmpty())
{
@@ -145,44 +147,58 @@ public class AmqpPortAdapter extends Por
+ this.getName() + "' but no trust store defined");
}
- String keystorePath = (String)keyStore.getAttribute(KeyStore.PATH);
- String keystorePassword = keyStore.getPassword();
- String keystoreType = (String)keyStore.getAttribute(KeyStore.TYPE);
- String keyManagerFactoryAlgorithm = (String)keyStore.getAttribute(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM);
- String certAlias = (String)keyStore.getAttribute(KeyStore.CERTIFICATE_ALIAS);
-
- final SSLContext sslContext;
try
{
- if(! trustStores.isEmpty())
+ SSLContext sslContext = SSLContext.getInstance("TLS");
+ KeyManager[] keyManagers = keyStore.getKeyManagers();
+
+ TrustManager[] trustManagers;
+ if(trustStores == null || trustStores.isEmpty())
{
- Collection<SSLContextFactory.TrustStoreWrapper> trstWrappers = new ArrayList<SSLContextFactory.TrustStoreWrapper>();
- for (TrustStore trustStore : trustStores)
- {
- trstWrappers.add(new SSLContextFactory.TrustStoreWrapper((String)trustStore.getAttribute(TrustStore.PATH),
- trustStore.getPassword(),
- (String)trustStore.getAttribute(TrustStore.TYPE),
- (Boolean) trustStore.getAttribute(TrustStore.PEERS_ONLY),
- (String)trustStore.getAttribute(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM)));
- }
- sslContext = SSLContextFactory.buildClientContext(trstWrappers, keystorePath,
- keystorePassword, keystoreType,
- keyManagerFactoryAlgorithm, certAlias);
+ trustManagers = null;
+ }
+ else if(trustStores.size() == 1)
+ {
+ trustManagers = trustStores.iterator().next().getTrustManagers();
}
else
{
- sslContext = SSLContextFactory.buildServerContext(keystorePath, keystorePassword, keystoreType, keyManagerFactoryAlgorithm);
+ Collection<TrustManager> trustManagerList = new ArrayList<TrustManager>();
+ final QpidMultipleTrustManager mulTrustManager = new QpidMultipleTrustManager();
+
+ for(TrustStore ts : trustStores)
+ {
+ TrustManager[] managers = ts.getTrustManagers();
+ if(managers != null)
+ {
+ for(TrustManager manager : managers)
+ {
+ if(manager instanceof X509TrustManager)
+ {
+ mulTrustManager.addTrustManager((X509TrustManager)manager);
+ }
+ else
+ {
+ trustManagerList.add(manager);
+ }
+ }
+ }
+ }
+ if(!mulTrustManager.isEmpty())
+ {
+ trustManagerList.add(mulTrustManager);
+ }
+ trustManagers = trustManagerList.toArray(new TrustManager[trustManagerList.size()]);
}
+ sslContext.init(keyManagers, trustManagers, null);
+
+ return sslContext;
+
}
catch (GeneralSecurityException e)
{
throw new RuntimeException("Unable to create SSLContext for key or trust store", e);
}
- catch (IOException e)
- {
- throw new RuntimeException("Unable to create SSLContext - unable to load key/trust store", e);
- }
- return sslContext;
}
private AmqpProtocolVersion getDefaultAmqpSupportedReply()
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderAdapter.java Fri Sep 20 18:59:30 2013
@@ -43,6 +43,7 @@ import org.apache.qpid.server.model.Inte
import org.apache.qpid.server.model.LifetimePolicy;
import org.apache.qpid.server.model.PasswordCredentialManagingAuthenticationProvider;
import org.apache.qpid.server.model.Port;
+import org.apache.qpid.server.model.PreferencesProvider;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.model.Statistics;
import org.apache.qpid.server.model.UUIDGenerator;
@@ -51,11 +52,11 @@ import org.apache.qpid.server.model.Virt
import org.apache.qpid.server.plugin.AuthenticationManagerFactory;
import org.apache.qpid.server.plugin.QpidServiceLoader;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
-import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.security.SubjectCreator;
import org.apache.qpid.server.security.access.Operation;
import org.apache.qpid.server.security.auth.UsernamePrincipal;
import org.apache.qpid.server.security.auth.database.PrincipalDatabase;
+import org.apache.qpid.server.security.auth.manager.AnonymousAuthenticationManagerFactory;
import org.apache.qpid.server.security.auth.manager.AuthenticationManager;
import org.apache.qpid.server.security.auth.manager.PrincipalDatabaseAuthenticationManager;
import org.apache.qpid.server.security.SecurityManager;
@@ -70,9 +71,11 @@ public abstract class AuthenticationProv
protected Collection<String> _supportedAttributes;
protected Map<String, AuthenticationManagerFactory> _factories;
- private AtomicReference<State> _state;
+ private final AtomicReference<State> _state;
+ private PreferencesProviderCreator _preferencesProviderCreator;
+ private PreferencesProvider _preferencesProvider;
- private AuthenticationProviderAdapter(UUID id, Broker broker, final T authManager, Map<String, Object> attributes, Collection<String> attributeNames)
+ private AuthenticationProviderAdapter(UUID id, Broker broker, final T authManager, Map<String, Object> attributes, Collection<String> attributeNames, PreferencesProviderCreator preferencesProviderCreator)
{
super(id, null, null, broker.getTaskExecutor());
_authManager = authManager;
@@ -84,6 +87,8 @@ public abstract class AuthenticationProv
_state = new AtomicReference<State>(state);
addParent(Broker.class, broker);
+ _preferencesProviderCreator = preferencesProviderCreator;
+
// set attributes now after all attribute names are known
if (attributes != null)
{
@@ -210,9 +215,14 @@ public abstract class AuthenticationProv
return super.getAttribute(name);
}
+ @SuppressWarnings("unchecked")
@Override
public <C extends ConfiguredObject> Collection<C> getChildren(Class<C> clazz)
{
+ if (clazz == PreferencesProvider.class && _preferencesProvider != null)
+ {
+ return (Collection<C>)Collections.<PreferencesProvider>singleton(_preferencesProvider);
+ }
return Collections.emptySet();
}
@@ -240,6 +250,10 @@ public abstract class AuthenticationProv
{
_authManager.close();
_authManager.onDelete();
+ if (_preferencesProvider != null)
+ {
+ _preferencesProvider.setDesiredState(_preferencesProvider.getActualState(), State.DELETED);
+ }
return true;
}
else
@@ -254,6 +268,10 @@ public abstract class AuthenticationProv
try
{
_authManager.initialise();
+ if (_preferencesProvider != null)
+ {
+ _preferencesProvider.setDesiredState(_preferencesProvider.getActualState(), State.ACTIVE);
+ }
return true;
}
catch(RuntimeException e)
@@ -286,6 +304,10 @@ public abstract class AuthenticationProv
if (_state.compareAndSet(state, State.STOPPED))
{
_authManager.close();
+ if (_preferencesProvider != null)
+ {
+ _preferencesProvider.setDesiredState(_preferencesProvider.getActualState(), State.STOPPED);
+ }
return true;
}
else
@@ -397,24 +419,43 @@ public abstract class AuthenticationProv
}
}
- public static class SimpleAuthenticationProviderAdapter extends AuthenticationProviderAdapter<AuthenticationManager>
+ public PreferencesProvider getPreferencesProvider()
{
+ return _preferencesProvider;
+ }
- public SimpleAuthenticationProviderAdapter(
- UUID id, Broker broker, AuthenticationManager authManager, Map<String, Object> attributes, Collection<String> attributeNames)
+ public void setPreferencesProvider(PreferencesProvider provider)
+ {
+ if (AnonymousAuthenticationManagerFactory.PROVIDER_TYPE.equals(getAttribute(TYPE)))
{
- super(id, broker,authManager, attributes, attributeNames);
+ throw new IllegalConfigurationException("Cannot set preferences provider for anonymous authentication provider");
}
+ _preferencesProvider = provider;
+ }
- @Override
- public <C extends ConfiguredObject> C createChild(Class<C> childClass,
- Map<String, Object> attributes,
- ConfiguredObject... otherParents)
+ @SuppressWarnings("unchecked")
+ @Override
+ public <C extends ConfiguredObject> C addChild(Class<C> childClass, Map<String, Object> attributes, ConfiguredObject... otherParents)
+ {
+ if(childClass == PreferencesProvider.class)
{
- throw new UnsupportedOperationException();
+ String name = MapValueConverter.getStringAttribute(PreferencesProvider.NAME, attributes);
+ PreferencesProvider pp = _preferencesProviderCreator.create(UUIDGenerator.generatePreferencesProviderUUID(name, getName()), attributes, this);
+ pp.setDesiredState(State.INITIALISING, State.ACTIVE);
+ _preferencesProvider = pp;
+ return (C)pp;
}
+ throw new IllegalArgumentException("Cannot create child of class " + childClass.getSimpleName());
+ }
+ public static class SimpleAuthenticationProviderAdapter extends AuthenticationProviderAdapter<AuthenticationManager>
+ {
+ public SimpleAuthenticationProviderAdapter(
+ UUID id, Broker broker, AuthenticationManager authManager, Map<String, Object> attributes, Collection<String> attributeNames, PreferencesProviderCreator preferencesProviderCreator)
+ {
+ super(id, broker,authManager, attributes, attributeNames, preferencesProviderCreator);
+ }
}
public static class PrincipalDatabaseAuthenticationManagerAdapter
@@ -422,9 +463,9 @@ public abstract class AuthenticationProv
implements PasswordCredentialManagingAuthenticationProvider
{
public PrincipalDatabaseAuthenticationManagerAdapter(
- UUID id, Broker broker, PrincipalDatabaseAuthenticationManager authManager, Map<String, Object> attributes, Collection<String> attributeNames)
+ UUID id, Broker broker, PrincipalDatabaseAuthenticationManager authManager, Map<String, Object> attributes, Collection<String> attributeNames, PreferencesProviderCreator preferencesProviderCreator)
{
- super(id, broker, authManager, attributes, attributeNames);
+ super(id, broker, authManager, attributes, attributeNames, preferencesProviderCreator);
}
@Override
@@ -507,7 +548,7 @@ public abstract class AuthenticationProv
if(createUser(username, password,null))
{
@SuppressWarnings("unchecked")
- C pricipalAdapter = (C) new PrincipalAdapter(p, getTaskExecutor());
+ C pricipalAdapter = (C) new PrincipalAdapter(p);
return pricipalAdapter;
}
else
@@ -529,7 +570,7 @@ public abstract class AuthenticationProv
Collection<User> principals = new ArrayList<User>(users.size());
for(Principal user : users)
{
- principals.add(new PrincipalAdapter(user, getTaskExecutor()));
+ principals.add(new PrincipalAdapter(user));
}
@SuppressWarnings("unchecked")
Collection<C> unmodifiablePrincipals = (Collection<C>) Collections.unmodifiableCollection(principals);
@@ -544,22 +585,33 @@ public abstract class AuthenticationProv
@Override
protected void childAdded(ConfiguredObject child)
{
- // no-op, prevent storing users in the broker store
+ if (child instanceof User)
+ {
+ // no-op, prevent storing users in the broker store
+ return;
+ }
+ super.childAdded(child);
}
@Override
protected void childRemoved(ConfiguredObject child)
{
- // no-op, as per above, users are not in the store
+ if (child instanceof User)
+ {
+ // no-op, as per above, users are not in the store
+ return;
+ }
+ super.childRemoved(child);
}
private class PrincipalAdapter extends AbstractAdapter implements User
{
private final Principal _user;
- public PrincipalAdapter(Principal user, TaskExecutor taskExecutor)
+ public PrincipalAdapter(Principal user)
{
- super(UUIDGenerator.generateUserUUID(PrincipalDatabaseAuthenticationManagerAdapter.this.getName(), user.getName()), taskExecutor);
+ super(UUIDGenerator.generateUserUUID(PrincipalDatabaseAuthenticationManagerAdapter.this.getName(), user.getName()),
+ PrincipalDatabaseAuthenticationManagerAdapter.this.getTaskExecutor());
_user = user;
}
@@ -699,7 +751,13 @@ public abstract class AuthenticationProv
{
try
{
- deleteUser(_user.getName());
+ String userName = _user.getName();
+ deleteUser(userName);
+ PreferencesProvider preferencesProvider = getPreferencesProvider();
+ if (preferencesProvider != null)
+ {
+ preferencesProvider.deletePreferences(userName);
+ }
}
catch (AccountNotFoundException e)
{
@@ -709,6 +767,60 @@ public abstract class AuthenticationProv
}
return false;
}
+
+ @Override
+ public Map<String, Object> getPreferences()
+ {
+ PreferencesProvider preferencesProvider = getPreferencesProvider();
+ if (preferencesProvider == null)
+ {
+ return null;
+ }
+ return preferencesProvider.getPreferences(this.getName());
+ }
+
+ @Override
+ public Object getPreference(String name)
+ {
+ Map<String, Object> preferences = getPreferences();
+ if (preferences == null)
+ {
+ return null;
+ }
+ return preferences.get(name);
+ }
+
+ @Override
+ public Map<String, Object> setPreferences(Map<String, Object> preferences)
+ {
+ PreferencesProvider preferencesProvider = getPreferencesProvider();
+ if (preferencesProvider == null)
+ {
+ return null;
+ }
+ return preferencesProvider.setPreferences(this.getName(), preferences);
+ }
+
+ @Override
+ public Map<String, Object> replacePreferences(Map<String, Object> newPreferences)
+ {
+ PreferencesProvider preferencesProvider = getPreferencesProvider();
+ if (preferencesProvider == null)
+ {
+ return null;
+ }
+ Map<String, Object> preferences = preferencesProvider.deletePreferences(this.getName());
+ preferencesProvider.setPreferences(this.getName(), newPreferences);
+ return preferences;
+ }
+
+ private PreferencesProvider getPreferencesProvider()
+ {
+ return PrincipalDatabaseAuthenticationManagerAdapter.this.getPreferencesProvider();
+ }
+
}
+
}
+
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/AuthenticationProviderFactory.java Fri Sep 20 18:59:30 2013
@@ -42,9 +42,11 @@ public class AuthenticationProviderFacto
{
private final Iterable<AuthenticationManagerFactory> _factories;
private Collection<String> _supportedAuthenticationProviders;
+ private final PreferencesProviderCreator _preferencesProviderCreator;
- public AuthenticationProviderFactory(QpidServiceLoader<AuthenticationManagerFactory> authManagerFactoryServiceLoader)
+ public AuthenticationProviderFactory(QpidServiceLoader<AuthenticationManagerFactory> authManagerFactoryServiceLoader, PreferencesProviderCreator preferencesProviderCreator)
{
+ _preferencesProviderCreator = preferencesProviderCreator;
_factories = authManagerFactoryServiceLoader.atLeastOneInstanceOf(AuthenticationManagerFactory.class);
List<String> supportedAuthenticationProviders = new ArrayList<String>();
for (AuthenticationManagerFactory factory : _factories)
@@ -89,11 +91,11 @@ public class AuthenticationProviderFacto
if (manager instanceof PrincipalDatabaseAuthenticationManager)
{
authenticationProvider = new PrincipalDatabaseAuthenticationManagerAdapter(id, broker,
- (PrincipalDatabaseAuthenticationManager) manager, attributes, factory.getAttributeNames());
+ (PrincipalDatabaseAuthenticationManager) manager, attributes, factory.getAttributeNames(), _preferencesProviderCreator);
}
else
{
- authenticationProvider = new SimpleAuthenticationProviderAdapter(id, broker, manager, attributes, factory.getAttributeNames());
+ authenticationProvider = new SimpleAuthenticationProviderAdapter(id, broker, manager, attributes, factory.getAttributeNames(), _preferencesProviderCreator);
}
return authenticationProvider;
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/BrokerAdapter.java Fri Sep 20 18:59:30 2013
@@ -178,7 +178,7 @@ public class BrokerAdapter extends Abstr
private final GroupProviderFactory _groupProviderFactory;
private final AuthenticationProviderFactory _authenticationProviderFactory;
private final AccessControlProviderFactory _accessControlProviderFactory;
-
+ private final PreferencesProviderCreator _preferencesProviderCreator;
private final PortFactory _portFactory;
private final SecurityManager _securityManager;
@@ -191,8 +191,8 @@ public class BrokerAdapter extends Abstr
public BrokerAdapter(UUID id, Map<String, Object> attributes, StatisticsGatherer statisticsGatherer, VirtualHostRegistry virtualHostRegistry,
LogRecorder logRecorder, RootMessageLogger rootMessageLogger, AuthenticationProviderFactory authenticationProviderFactory,
- GroupProviderFactory groupProviderFactory, AccessControlProviderFactory accessControlProviderFactory, PortFactory portFactory, TaskExecutor taskExecutor,
- ConfigurationEntryStore brokerStore, BrokerOptions brokerOptions)
+ GroupProviderFactory groupProviderFactory, AccessControlProviderFactory accessControlProviderFactory, PortFactory portFactory,
+ PreferencesProviderCreator preferencesProviderCreatory, TaskExecutor taskExecutor, ConfigurationEntryStore brokerStore, BrokerOptions brokerOptions)
{
super(id, DEFAULTS, MapValueConverter.convert(attributes, ATTRIBUTE_TYPES), taskExecutor);
_statisticsGatherer = statisticsGatherer;
@@ -201,6 +201,7 @@ public class BrokerAdapter extends Abstr
_rootMessageLogger = rootMessageLogger;
_statistics = new StatisticsAdapter(statisticsGatherer);
_authenticationProviderFactory = authenticationProviderFactory;
+ _preferencesProviderCreator = preferencesProviderCreatory;
_groupProviderFactory = groupProviderFactory;
_accessControlProviderFactory = accessControlProviderFactory;
_portFactory = portFactory;
@@ -213,7 +214,7 @@ public class BrokerAdapter extends Abstr
{
AuthenticationManager authManager = new SimpleAuthenticationManager(BrokerOptions.MANAGEMENT_MODE_USER_NAME, _brokerOptions.getManagementModePassword());
AuthenticationProvider authenticationProvider = new SimpleAuthenticationProviderAdapter(UUID.randomUUID(), this,
- authManager, Collections.<String, Object> emptyMap(), Collections.<String> emptySet());
+ authManager, Collections.<String, Object> emptyMap(), Collections.<String> emptySet(), _preferencesProviderCreator);
_managementAuthenticationProvider = authenticationProvider;
}
}
@@ -783,6 +784,10 @@ public class BrokerAdapter extends Abstr
{
return _authenticationProviderFactory.getSupportedAuthenticationProviders();
}
+ else if (SUPPORTED_PREFERENCES_PROVIDERS_TYPES.equals(name))
+ {
+ return _preferencesProviderCreator.getSupportedPreferencesProviders();
+ }
else if (MODEL_VERSION.equals(name))
{
return Model.MODEL_VERSION;
@@ -1086,6 +1091,19 @@ public class BrokerAdapter extends Abstr
@Override
public SubjectCreator getSubjectCreator(SocketAddress localAddress)
{
+ AuthenticationProvider provider = getAuthenticationProvider(localAddress);
+
+ if(provider == null)
+ {
+ throw new IllegalConfigurationException("Unable to determine authentication provider for address: " + localAddress);
+ }
+
+ return provider.getSubjectCreator();
+ }
+
+ @Override
+ public AuthenticationProvider getAuthenticationProvider(SocketAddress localAddress)
+ {
InetSocketAddress inetSocketAddress = (InetSocketAddress)localAddress;
AuthenticationProvider provider = null;
Collection<Port> ports = getPorts();
@@ -1097,13 +1115,7 @@ public class BrokerAdapter extends Abstr
break;
}
}
-
- if(provider == null)
- {
- throw new IllegalConfigurationException("Unable to determine authentication provider for address: " + localAddress);
- }
-
- return provider.getSubjectCreator();
+ return provider;
}
@Override
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ConnectionAdapter.java Fri Sep 20 18:59:30 2013
@@ -190,7 +190,7 @@ final class ConnectionAdapter extends Ab
}
else if(name.equals(INCOMING))
{
-
+ return true;
}
else if(name.equals(LOCAL_ADDRESS))
{
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/ExchangeAdapter.java Fri Sep 20 18:59:30 2013
@@ -30,9 +30,7 @@ import java.util.Map;
import org.apache.qpid.AMQException;
import org.apache.qpid.AMQInternalException;
import org.apache.qpid.AMQSecurityException;
-import org.apache.qpid.protocol.AMQConstant;
import org.apache.qpid.server.binding.Binding;
-import org.apache.qpid.server.exchange.ExchangeRegistry;
import org.apache.qpid.server.model.ConfiguredObject;
import org.apache.qpid.server.model.Exchange;
import org.apache.qpid.server.model.LifetimePolicy;
@@ -42,7 +40,6 @@ import org.apache.qpid.server.model.Stat
import org.apache.qpid.server.model.Statistics;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.util.MapValueConverter;
-import org.apache.qpid.server.virtualhost.ExchangeIsAlternateException;
import org.apache.qpid.server.virtualhost.RequiredExchangeException;
import org.apache.qpid.server.virtualhost.VirtualHost;
@@ -90,7 +87,7 @@ final class ExchangeAdapter extends Abst
public String getExchangeType()
{
- return _exchange.getType().getName().toString();
+ return _exchange.getType().getType();
}
public Collection<org.apache.qpid.server.model.Binding> getBindings()
@@ -357,7 +354,7 @@ final class ExchangeAdapter extends Abst
}
else if(TYPE.equals(name))
{
- return _exchange.getType().getName().asString();
+ return _exchange.getTypeName();
}
return super.getAttribute(name);
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/KeyStoreAdapter.java Fri Sep 20 18:59:30 2013
@@ -20,8 +20,10 @@
*/
package org.apache.qpid.server.model.adapter;
+import java.io.IOException;
import java.lang.reflect.Type;
import java.security.AccessControlException;
+import java.security.GeneralSecurityException;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.cert.Certificate;
@@ -32,6 +34,7 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
+import javax.net.ssl.KeyManager;
import javax.net.ssl.KeyManagerFactory;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
@@ -42,6 +45,7 @@ import org.apache.qpid.server.model.Port
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.security.access.Operation;
import org.apache.qpid.server.util.MapValueConverter;
+import org.apache.qpid.transport.network.security.ssl.QpidClientX509KeyManager;
import org.apache.qpid.transport.network.security.ssl.SSLUtil;
public class KeyStoreAdapter extends AbstractKeyStoreAdapter implements KeyStore
@@ -210,4 +214,41 @@ public class KeyStoreAdapter extends Abs
+ keyManagerFactoryAlgorithm);
}
}
+
+ public KeyManager[] getKeyManagers() throws GeneralSecurityException
+ {
+ String keyStorePath = (String)getAttribute(KeyStore.PATH);
+ String keyStorePassword = getPassword();
+ String keyStoreType = (String)getAttribute(KeyStore.TYPE);
+ String keyManagerFactoryAlgorithm = (String)getAttribute(KeyStore.KEY_MANAGER_FACTORY_ALGORITHM);
+ String certAlias = (String)getAttribute(KeyStore.CERTIFICATE_ALIAS);
+
+ try
+ {
+ if (certAlias != null)
+ {
+ return new KeyManager[] {
+ new QpidClientX509KeyManager( certAlias, keyStorePath, keyStoreType, keyStorePassword,
+ keyManagerFactoryAlgorithm)
+ };
+
+ }
+ else
+ {
+ final java.security.KeyStore ks = SSLUtil.getInitializedKeyStore(keyStorePath, keyStorePassword, keyStoreType);
+
+ char[] keyStoreCharPassword = keyStorePassword == null ? null : keyStorePassword.toCharArray();
+
+ final KeyManagerFactory kmf = KeyManagerFactory.getInstance(keyManagerFactoryAlgorithm);
+
+ kmf.init(ks, keyStoreCharPassword);
+
+ return kmf.getKeyManagers();
+ }
+ }
+ catch (IOException e)
+ {
+ throw new GeneralSecurityException(e);
+ }
+ }
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/QueueAdapter.java Fri Sep 20 18:59:30 2013
@@ -66,25 +66,6 @@ final class QueueAdapter extends Abstrac
put(DESCRIPTION, String.class);
}});
- static final Map<String, String> ATTRIBUTE_MAPPINGS = new HashMap<String, String>();
- static
- {
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.ALERT_REPEAT_GAP, AMQQueueFactory.X_QPID_MINIMUM_ALERT_REPEAT_GAP);
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.ALERT_THRESHOLD_MESSAGE_AGE, AMQQueueFactory.X_QPID_MAXIMUM_MESSAGE_AGE);
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.ALERT_THRESHOLD_MESSAGE_SIZE, AMQQueueFactory.X_QPID_MAXIMUM_MESSAGE_SIZE);
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.ALERT_THRESHOLD_QUEUE_DEPTH_MESSAGES, AMQQueueFactory.X_QPID_MAXIMUM_MESSAGE_COUNT);
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.ALERT_THRESHOLD_QUEUE_DEPTH_BYTES, AMQQueueFactory.X_QPID_MAXIMUM_QUEUE_DEPTH);
-
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.MAXIMUM_DELIVERY_ATTEMPTS, AMQQueueFactory.X_QPID_MAXIMUM_DELIVERY_COUNT);
-
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.QUEUE_FLOW_CONTROL_SIZE_BYTES, AMQQueueFactory.X_QPID_CAPACITY);
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.QUEUE_FLOW_RESUME_SIZE_BYTES, AMQQueueFactory.X_QPID_FLOW_RESUME_CAPACITY);
-
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.SORT_KEY, AMQQueueFactory.QPID_QUEUE_SORT_KEY);
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.LVQ_KEY, AMQQueueFactory.QPID_LAST_VALUE_QUEUE_KEY);
- QueueAdapter.ATTRIBUTE_MAPPINGS.put(Queue.PRIORITIES, AMQQueueFactory.X_QPID_PRIORITIES);
- }
-
private final AMQQueue _queue;
private final Map<Binding, BindingAdapter> _bindingAdapters =
new HashMap<Binding, BindingAdapter>();
@@ -190,15 +171,7 @@ final class QueueAdapter extends Abstrac
{
try
{
- QueueRegistry queueRegistry = _queue.getVirtualHost().getQueueRegistry();
- synchronized(queueRegistry)
- {
- _queue.delete();
- if (_queue.isDurable())
- {
- DurableConfigurationStoreHelper.removeQueue(_queue.getVirtualHost().getDurableConfigurationStore(), _queue);
- }
- }
+ _queue.getVirtualHost().removeQueue(_queue);
}
catch(AMQException e)
{
@@ -414,13 +387,12 @@ final class QueueAdapter extends Abstrac
}
else if(MESSAGE_GROUP_KEY.equals(name))
{
- return _queue.getArguments().get(SimpleAMQQueue.QPID_GROUP_HEADER_KEY);
+ return _queue.getAttribute(MESSAGE_GROUP_KEY);
}
else if(MESSAGE_GROUP_SHARED_GROUPS.equals(name))
{
//We only return the boolean value if message groups are actually in use
- return getAttribute(MESSAGE_GROUP_KEY) == null ? null :
- SimpleAMQQueue.SHARED_MSG_GROUP_ARG_VALUE.equals(_queue.getArguments().get(SimpleAMQQueue.QPID_SHARED_MSG_GROUP));
+ return getAttribute(MESSAGE_GROUP_KEY) == null ? null : _queue.getAttribute(MESSAGE_GROUP_SHARED_GROUPS);
}
else if(LVQ_KEY.equals(name))
{
@@ -439,7 +411,7 @@ final class QueueAdapter extends Abstrac
}
else if(OWNER.equals(name))
{
- return _queue.getOwner() == null ? null : _queue.getOwner().asString();
+ return _queue.getOwner();
}
else if(QUEUE_FLOW_CONTROL_SIZE_BYTES.equals(name))
{
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/TrustStoreAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/TrustStoreAdapter.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/TrustStoreAdapter.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/TrustStoreAdapter.java Fri Sep 20 18:59:30 2013
@@ -20,8 +20,11 @@
*/
package org.apache.qpid.server.model.adapter;
+import java.io.IOException;
import java.lang.reflect.Type;
import java.security.AccessControlException;
+import java.security.GeneralSecurityException;
+import java.security.KeyStore;
import java.security.NoSuchAlgorithmException;
import java.util.ArrayList;
import java.util.Collection;
@@ -30,8 +33,10 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
+import javax.net.ssl.TrustManager;
import javax.net.ssl.TrustManagerFactory;
+import javax.net.ssl.X509TrustManager;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.IntegrityViolationException;
@@ -40,6 +45,8 @@ import org.apache.qpid.server.model.Stat
import org.apache.qpid.server.model.TrustStore;
import org.apache.qpid.server.security.access.Operation;
import org.apache.qpid.server.util.MapValueConverter;
+import org.apache.qpid.transport.network.security.ssl.QpidMultipleTrustManager;
+import org.apache.qpid.transport.network.security.ssl.QpidPeersOnlyTrustManager;
import org.apache.qpid.transport.network.security.ssl.SSLUtil;
public class TrustStoreAdapter extends AbstractKeyStoreAdapter implements TrustStore
@@ -189,4 +196,60 @@ public class TrustStoreAdapter extends A
throw new IllegalConfigurationException("Unknown trustManagerFactoryAlgorithm: " + trustManagerFactoryAlgorithm);
}
}
+
+ public TrustManager[] getTrustManagers() throws GeneralSecurityException
+ {
+ String trustStorePath = (String)getAttribute(TrustStore.PATH);
+ String trustStorePassword = getPassword();
+ String trustStoreType = (String)getAttribute(TrustStore.TYPE);
+ String trustManagerFactoryAlgorithm = (String)getAttribute(TrustStore.TRUST_MANAGER_FACTORY_ALGORITHM);
+
+ try
+ {
+ KeyStore ts = SSLUtil.getInitializedKeyStore(trustStorePath, trustStorePassword, trustStoreType);
+ final TrustManagerFactory tmf = TrustManagerFactory
+ .getInstance(trustManagerFactoryAlgorithm);
+ tmf.init(ts);
+ final Collection<TrustManager> trustManagersCol = new ArrayList<TrustManager>();
+ final QpidMultipleTrustManager mulTrustManager = new QpidMultipleTrustManager();
+ TrustManager[] delegateManagers = tmf.getTrustManagers();
+ for (TrustManager tm : delegateManagers)
+ {
+ if (tm instanceof X509TrustManager)
+ {
+ if (Boolean.TRUE.equals(getAttribute(PEERS_ONLY)))
+ {
+ // truststore is supposed to trust only clients which peers certificates
+ // are directly in the store. CA signing will not be considered.
+ mulTrustManager.addTrustManager(new QpidPeersOnlyTrustManager(ts, (X509TrustManager) tm));
+ }
+ else
+ {
+ mulTrustManager.addTrustManager((X509TrustManager) tm);
+ }
+ }
+ else
+ {
+ trustManagersCol.add(tm);
+ }
+ }
+ if (! mulTrustManager.isEmpty())
+ {
+ trustManagersCol.add(mulTrustManager);
+ }
+
+ if (trustManagersCol.isEmpty())
+ {
+ return null;
+ }
+ else
+ {
+ return trustManagersCol.toArray(new TrustManager[trustManagersCol.size()]);
+ }
+ }
+ catch (IOException e)
+ {
+ throw new GeneralSecurityException(e);
+ }
+ }
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/model/adapter/VirtualHostAdapter.java Fri Sep 20 18:59:30 2013
@@ -41,12 +41,9 @@ import org.apache.commons.configuration.
import org.apache.commons.configuration.SystemConfiguration;
import org.apache.log4j.Logger;
import org.apache.qpid.AMQException;
-import org.apache.qpid.framing.FieldTable;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.VirtualHostConfiguration;
import org.apache.qpid.server.configuration.XmlConfigurationUtilities.MyConfiguration;
-import org.apache.qpid.server.connection.IConnectionRegistry;
-import org.apache.qpid.server.exchange.ExchangeRegistry;
import org.apache.qpid.server.message.ServerMessage;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
@@ -68,14 +65,13 @@ import org.apache.qpid.server.plugin.Exc
import org.apache.qpid.server.protocol.AMQConnectionModel;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.queue.AMQQueueFactory;
+import org.apache.qpid.server.queue.QueueArgumentsConverter;
import org.apache.qpid.server.queue.QueueEntry;
-import org.apache.qpid.server.queue.QueueRegistry;
import org.apache.qpid.server.queue.SimpleAMQQueue;
import org.apache.qpid.server.security.SecurityManager;
import org.apache.qpid.server.security.access.Operation;
import org.apache.qpid.server.security.auth.AuthenticatedPrincipal;
import org.apache.qpid.server.stats.StatisticsGatherer;
-import org.apache.qpid.server.store.DurableConfigurationStoreHelper;
import org.apache.qpid.server.store.MessageStore;
import org.apache.qpid.server.txn.LocalTransaction;
import org.apache.qpid.server.txn.ServerTransaction;
@@ -86,6 +82,7 @@ import org.apache.qpid.server.virtualhos
import org.apache.qpid.server.virtualhost.UnknownExchangeException;
import org.apache.qpid.server.virtualhost.VirtualHostListener;
import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
+import org.apache.qpid.server.virtualhost.plugins.QueueExistsException;
public final class VirtualHostAdapter extends AbstractAdapter implements VirtualHost, VirtualHostListener
{
@@ -203,7 +200,7 @@ public final class VirtualHostAdapter ex
private void populateQueues()
{
- Collection<AMQQueue> actualQueues = _virtualHost.getQueueRegistry().getQueues();
+ Collection<AMQQueue> actualQueues = _virtualHost.getQueues();
if ( actualQueues != null )
{
synchronized(_queueAdapters)
@@ -399,7 +396,7 @@ public final class VirtualHostAdapter ex
}
if (queueType == QueueType.LVQ && attributes.get(Queue.LVQ_KEY) == null)
{
- attributes.put(Queue.LVQ_KEY, AMQQueueFactory.QPID_LVQ_KEY);
+ attributes.put(Queue.LVQ_KEY, AMQQueueFactory.QPID_DEFAULT_LVQ_KEY);
}
else if (queueType == QueueType.PRIORITY && attributes.get(Queue.PRIORITIES) == null)
{
@@ -415,7 +412,7 @@ public final class VirtualHostAdapter ex
{
String key = MapValueConverter.getStringAttribute(Queue.MESSAGE_GROUP_KEY, attributes);
attributes.remove(Queue.MESSAGE_GROUP_KEY);
- attributes.put(SimpleAMQQueue.QPID_GROUP_HEADER_KEY, key);
+ attributes.put(QueueArgumentsConverter.QPID_GROUP_HEADER_KEY, key);
}
if (attributes.containsKey(Queue.MESSAGE_GROUP_SHARED_GROUPS))
@@ -423,7 +420,7 @@ public final class VirtualHostAdapter ex
if(MapValueConverter.getBooleanAttribute(Queue.MESSAGE_GROUP_SHARED_GROUPS, attributes))
{
attributes.remove(Queue.MESSAGE_GROUP_SHARED_GROUPS);
- attributes.put(SimpleAMQQueue.QPID_SHARED_MSG_GROUP, SimpleAMQQueue.SHARED_MSG_GROUP_ARG_VALUE);
+ attributes.put(QueueArgumentsConverter.QPID_SHARED_MSG_GROUP, SimpleAMQQueue.SHARED_MSG_GROUP_ARG_VALUE);
}
}
@@ -440,15 +437,6 @@ public final class VirtualHostAdapter ex
attributes.remove(Queue.LIFETIME_POLICY);
attributes.remove(Queue.TIME_TO_LIVE);
- List<String> attrNames = new ArrayList<String>(attributes.keySet());
- for(String attr : attrNames)
- {
- if(QueueAdapter.ATTRIBUTE_MAPPINGS.containsKey(attr))
- {
- attributes.put(QueueAdapter.ATTRIBUTE_MAPPINGS.get(attr),attributes.remove(attr));
- }
- }
-
return createQueue(name, state, durable, exclusive, lifetime, ttl, attributes);
}
@@ -472,33 +460,26 @@ public final class VirtualHostAdapter ex
owner = authenticatedPrincipal.getName();
}
}
+
+ final boolean autoDelete = lifetime == LifetimePolicy.AUTO_DELETE;
+
try
{
- QueueRegistry queueRegistry = _virtualHost.getQueueRegistry();
- synchronized (queueRegistry)
- {
- if(_virtualHost.getQueueRegistry().getQueue(name)!=null)
- {
- throw new IllegalArgumentException("Queue with name "+name+" already exists");
- }
- AMQQueue queue =
- AMQQueueFactory.createAMQQueueImpl(UUIDGenerator.generateQueueUUID(name, _virtualHost.getName()), name,
- durable, owner, lifetime == LifetimePolicy.AUTO_DELETE,
- exclusive, _virtualHost, attributes);
- if(durable)
- {
- DurableConfigurationStoreHelper.createQueue(_virtualHost.getDurableConfigurationStore(),
- queue,
- FieldTable.convertToFieldTable(attributes));
- }
- synchronized (_queueAdapters)
- {
- return _queueAdapters.get(queue);
- }
+ AMQQueue queue =
+ _virtualHost.createQueue(UUIDGenerator.generateQueueUUID(name, _virtualHost.getName()), name,
+ durable, owner, autoDelete, exclusive, autoDelete && exclusive, attributes);
+
+ synchronized (_queueAdapters)
+ {
+ return _queueAdapters.get(queue);
}
}
+ catch(QueueExistsException qe)
+ {
+ throw new IllegalArgumentException("Queue with name "+name+" already exists");
+ }
catch(AMQException e)
{
throw new IllegalArgumentException(e);
@@ -784,7 +765,7 @@ public final class VirtualHostAdapter ex
for(ExchangeType<? extends org.apache.qpid.server.exchange.Exchange> type : types)
{
- exchangeTypes.add(type.getName().asString());
+ exchangeTypes.add(type.getType());
}
return Collections.unmodifiableCollection(exchangeTypes);
}
@@ -938,7 +919,7 @@ public final class VirtualHostAdapter ex
List<String> types = new ArrayList<String>();
for(@SuppressWarnings("rawtypes") ExchangeType type : _virtualHost.getExchangeTypes())
{
- types.add(type.getName().asString());
+ types.add(type.getType());
}
return Collections.unmodifiableCollection(types);
}
@@ -1057,7 +1038,7 @@ public final class VirtualHostAdapter ex
{
if(VirtualHost.QUEUE_COUNT.equals(name))
{
- return _vhost.getQueueRegistry().getQueues().size();
+ return _vhost.getQueues().size();
}
else if(VirtualHost.EXCHANGE_COUNT.equals(name))
{
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/plugin/ExchangeType.java Fri Sep 20 18:59:30 2013
@@ -30,8 +30,9 @@ import org.apache.qpid.server.virtualhos
public interface ExchangeType<T extends Exchange> extends Pluggable
{
public String getType();
- public AMQShortString getName();
- public T newInstance(UUID id, VirtualHost host, AMQShortString name,
+
+ public T newInstance(UUID id, VirtualHost host, String name,
boolean durable, boolean autoDelete) throws AMQException;
- public AMQShortString getDefaultExchangeName();
+
+ public String getDefaultExchangeName();
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/AMQConnectionModel.java Fri Sep 20 18:59:30 2013
@@ -92,4 +92,6 @@ public interface AMQConnectionModel exte
void stop();
boolean isStopped();
+
+ String getVirtualHostName();
}
Modified: qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java
URL: http://svn.apache.org/viewvc/qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java?rev=1525101&r1=1525100&r2=1525101&view=diff
==============================================================================
--- qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java (original)
+++ qpid/branches/linearstore/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngine.java Fri Sep 20 18:59:30 2013
@@ -37,8 +37,7 @@ import org.apache.qpid.server.logging.me
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Transport;
-import org.apache.qpid.server.transport.ServerConnection;
-import org.apache.qpid.transport.ConnectionDelegate;
+import org.apache.qpid.server.plugin.ProtocolEngineCreator;
import org.apache.qpid.transport.Sender;
import org.apache.qpid.transport.network.NetworkConnection;
import org.apache.qpid.transport.network.security.SSLStatus;
@@ -55,6 +54,7 @@ public class MultiVersionProtocolEngine
private final boolean _needClientAuth;
private final Port _port;
private final Transport _transport;
+ private final ProtocolEngineCreator[] _creators;
private Set<AmqpProtocolVersion> _supported;
private String _fqdn;
@@ -69,7 +69,7 @@ public class MultiVersionProtocolEngine
SSLContext sslContext, boolean wantClientAuth, boolean needClientAuth,
final Set<AmqpProtocolVersion> supported,
final AmqpProtocolVersion defaultSupportedReply,
- Port port, Transport transport, final long id)
+ Port port, Transport transport, final long id, ProtocolEngineCreator[] creators)
{
if(defaultSupportedReply != null && !supported.contains(defaultSupportedReply))
{
@@ -86,6 +86,7 @@ public class MultiVersionProtocolEngine
_needClientAuth = needClientAuth;
_port = port;
_transport = transport;
+ _creators = creators;
}
@@ -142,73 +143,6 @@ public class MultiVersionProtocolEngine
private static final int MINIMUM_REQUIRED_HEADER_BYTES = 8;
- private static final byte[] AMQP_0_8_HEADER =
- new byte[] { (byte) 'A',
- (byte) 'M',
- (byte) 'Q',
- (byte) 'P',
- (byte) 1,
- (byte) 1,
- (byte) 8,
- (byte) 0
- };
-
- private static final byte[] AMQP_0_9_HEADER =
- new byte[] { (byte) 'A',
- (byte) 'M',
- (byte) 'Q',
- (byte) 'P',
- (byte) 1,
- (byte) 1,
- (byte) 0,
- (byte) 9
- };
-
- private static final byte[] AMQP_0_9_1_HEADER =
- new byte[] { (byte) 'A',
- (byte) 'M',
- (byte) 'Q',
- (byte) 'P',
- (byte) 0,
- (byte) 0,
- (byte) 9,
- (byte) 1
- };
-
-
- private static final byte[] AMQP_0_10_HEADER =
- new byte[] { (byte) 'A',
- (byte) 'M',
- (byte) 'Q',
- (byte) 'P',
- (byte) 1,
- (byte) 1,
- (byte) 0,
- (byte) 10
- };
-
- private static final byte[] AMQP_1_0_0_HEADER =
- new byte[] { (byte) 'A',
- (byte) 'M',
- (byte) 'Q',
- (byte) 'P',
- (byte) 0,
- (byte) 1,
- (byte) 0,
- (byte) 0
- };
-
- private static final byte[] AMQP_SASL_1_0_0_HEADER =
- new byte[] { (byte) 'A',
- (byte) 'M',
- (byte) 'Q',
- (byte) 'P',
- (byte) 3,
- (byte) 1,
- (byte) 0,
- (byte) 0
- };
-
public void setNetworkConnection(NetworkConnection networkConnection)
{
setNetworkConnection(networkConnection, networkConnection.getSender());
@@ -242,144 +176,6 @@ public class MultiVersionProtocolEngine
}
- private static interface DelegateCreator
- {
- AmqpProtocolVersion getVersion();
- byte[] getHeaderIdentifier();
- ServerProtocolEngine getProtocolEngine();
- }
-
- private DelegateCreator creator_0_8 = new DelegateCreator()
- {
-
- public AmqpProtocolVersion getVersion()
- {
- return AmqpProtocolVersion.v0_8;
- }
-
- public byte[] getHeaderIdentifier()
- {
- return AMQP_0_8_HEADER;
- }
-
- public ServerProtocolEngine getProtocolEngine()
- {
- return new AMQProtocolEngine(_broker, _network, _id, _port, _transport);
- }
- };
-
- private DelegateCreator creator_0_9 = new DelegateCreator()
- {
-
- public AmqpProtocolVersion getVersion()
- {
- return AmqpProtocolVersion.v0_9;
- }
-
-
- public byte[] getHeaderIdentifier()
- {
- return AMQP_0_9_HEADER;
- }
-
- public ServerProtocolEngine getProtocolEngine()
- {
- return new AMQProtocolEngine(_broker, _network, _id, _port, _transport);
- }
- };
-
- private DelegateCreator creator_0_9_1 = new DelegateCreator()
- {
-
- public AmqpProtocolVersion getVersion()
- {
- return AmqpProtocolVersion.v0_9_1;
- }
-
-
- public byte[] getHeaderIdentifier()
- {
- return AMQP_0_9_1_HEADER;
- }
-
- public ServerProtocolEngine getProtocolEngine()
- {
- return new AMQProtocolEngine(_broker, _network, _id, _port, _transport);
- }
- };
-
-
- private DelegateCreator creator_0_10 = new DelegateCreator()
- {
-
- public AmqpProtocolVersion getVersion()
- {
- return AmqpProtocolVersion.v0_10;
- }
-
-
- public byte[] getHeaderIdentifier()
- {
- return AMQP_0_10_HEADER;
- }
-
- public ServerProtocolEngine getProtocolEngine()
- {
- final ConnectionDelegate connDelegate = new org.apache.qpid.server.transport.ServerConnectionDelegate(_broker,
- _fqdn, _broker.getSubjectCreator(getLocalAddress()));
-
- ServerConnection conn = new ServerConnection(_id);
-
- conn.setConnectionDelegate(connDelegate);
- conn.setRemoteAddress(_network.getRemoteAddress());
- conn.setLocalAddress(_network.getLocalAddress());
- return new ProtocolEngine_0_10( conn, _network, _port, _transport);
- }
- };
-
- private DelegateCreator creator_1_0_0 = new DelegateCreator()
- {
-
- public AmqpProtocolVersion getVersion()
- {
- return AmqpProtocolVersion.v1_0_0;
- }
-
-
- public byte[] getHeaderIdentifier()
- {
- return AMQP_1_0_0_HEADER;
- }
-
- public ServerProtocolEngine getProtocolEngine()
- {
- return new ProtocolEngine_1_0_0(_network, _broker, _id, _port, _transport);
- }
- };
-
- private DelegateCreator creator_1_0_0_SASL = new DelegateCreator()
- {
-
- public AmqpProtocolVersion getVersion()
- {
- return AmqpProtocolVersion.v1_0_0;
- }
-
-
- public byte[] getHeaderIdentifier()
- {
- return AMQP_SASL_1_0_0_HEADER;
- }
-
- public ServerProtocolEngine getProtocolEngine()
- {
- return new ProtocolEngine_1_0_0_SASL(_network, _broker, _id, _port, _transport);
- }
- };
-
- private final DelegateCreator[] _creators =
- new DelegateCreator[] { creator_0_8, creator_0_9, creator_0_9_1, creator_0_10, creator_1_0_0_SASL, creator_1_0_0 };
-
private class ClosedDelegateProtocolEngine implements ServerProtocolEngine
{
@@ -521,7 +317,7 @@ public class MultiVersionProtocolEngine
}
if(equal)
{
- newDelegate = _creators[i].getProtocolEngine();
+ newDelegate = _creators[i].newProtocolEngine(_broker, _network, _port, _transport, _id);
}
}
@@ -662,7 +458,7 @@ public class MultiVersionProtocolEngine
{
_decryptEngine = new MultiVersionProtocolEngine(_broker, null, false, false, _supported,
- _defaultSupportedReply, _port, Transport.SSL, _id);
+ _defaultSupportedReply, _port, Transport.SSL, _id, _creators);
_engine = _sslContext.createSSLEngine();
_engine.setUseClientMode(false);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org