diff options
Diffstat (limited to 'java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java')
-rwxr-xr-x | java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java | 48 |
1 files changed, 33 insertions, 15 deletions
diff --git a/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java b/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java index 7e327b221f..75358c42d9 100755 --- a/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java +++ b/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java @@ -20,38 +20,56 @@ */ package org.apache.qpid.server.protocol; -import java.util.Set; -import java.util.concurrent.atomic.AtomicLong; - import org.apache.qpid.protocol.ProtocolEngineFactory; -import org.apache.qpid.protocol.ServerProtocolEngine; +import org.apache.qpid.protocol.ProtocolEngine; +import org.apache.qpid.transport.NetworkDriver; import org.apache.qpid.server.registry.ApplicationRegistry; import org.apache.qpid.server.registry.IApplicationRegistry; -import org.apache.qpid.transport.network.NetworkConnection; + +import java.util.Set; +import java.util.Arrays; +import java.util.HashSet; public class MultiVersionProtocolEngineFactory implements ProtocolEngineFactory { - private static final AtomicLong ID_GENERATOR = new AtomicLong(0); + ; + + + public enum VERSION { v0_8, v0_9, v0_9_1, v0_10 }; + + private static final Set<VERSION> ALL_VERSIONS = new HashSet<VERSION>(Arrays.asList(VERSION.values())); private final IApplicationRegistry _appRegistry; private final String _fqdn; - private final Set<AmqpProtocolVersion> _supported; + private final Set<VERSION> _supported; + - public MultiVersionProtocolEngineFactory(String fqdn, Set<AmqpProtocolVersion> supportedVersions) + public MultiVersionProtocolEngineFactory() { - _appRegistry = ApplicationRegistry.getInstance(); - _fqdn = fqdn; - _supported = supportedVersions; + this(1, "localhost", ALL_VERSIONS); } - public ServerProtocolEngine newProtocolEngine(NetworkConnection network) + public MultiVersionProtocolEngineFactory(String fqdn, Set<VERSION> versions) { - return new MultiVersionProtocolEngine(_appRegistry, _fqdn, _supported, network, ID_GENERATOR.getAndIncrement()); + this(1, fqdn, versions); } - public ServerProtocolEngine newProtocolEngine() + + public MultiVersionProtocolEngineFactory(String fqdn) { - return new MultiVersionProtocolEngine(_appRegistry, _fqdn, _supported, ID_GENERATOR.getAndIncrement()); + this(1, fqdn, ALL_VERSIONS); } + public MultiVersionProtocolEngineFactory(int instance, String fqdn, Set<VERSION> supportedVersions) + { + _appRegistry = ApplicationRegistry.getInstance(instance); + _fqdn = fqdn; + _supported = supportedVersions; + } + + + public ProtocolEngine newProtocolEngine(NetworkDriver networkDriver) + { + return new MultiVersionProtocolEngine(_appRegistry, _fqdn, _supported, networkDriver); + } } |