You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rg...@apache.org on 2011/08/22 22:14:38 UTC

svn commit: r1160414 [1/3] - in /qpid/branches/rg-amqp-1-0-sandbox/qpid/java: ./ broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ broker/etc/ broker/src/main/java/org/apache/qpid/server/ broker/src/main/java/org/apache/qpid/server/co...

Author: rgodfrey
Date: Mon Aug 22 20:14:35 2011
New Revision: 1160414

URL: http://svn.apache.org/viewvc?rev=1160414&view=rev
Log:
NO-JIRA : Merge to 1-0 sandbox branch from current HEAD - r1160304

Added:
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/OsgiSystemPackageUtil.java
      - copied unchanged from r1160374, qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/OsgiSystemPackageUtil.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/OsgiSystemPackages.properties
      - copied unchanged from r1160374, qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/OsgiSystemPackages.properties
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/signal/
      - copied from r1160374, qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/signal/
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/signal/SignalHandlerTask.java
      - copied unchanged from r1160374, qpid/trunk/qpid/java/broker/src/main/java/org/apache/qpid/server/signal/SignalHandlerTask.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/OsgiSystemPackageUtilTest.java
      - copied unchanged from r1160374, qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/OsgiSystemPackageUtilTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/signal/
      - copied from r1160374, qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/signal/
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/signal/SignalHandlerTaskTest.java
      - copied unchanged from r1160374, qpid/trunk/qpid/java/broker/src/test/java/org/apache/qpid/server/signal/SignalHandlerTaskTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client-plugins/
      - copied from r1160374, qpid/trunk/qpid/java/client-plugins/
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client-plugins/.gitignore
      - copied unchanged from r1160374, qpid/trunk/qpid/java/client-plugins/.gitignore
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client-plugins/README.txt
      - copied unchanged from r1160374, qpid/trunk/qpid/java/client-plugins/README.txt
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/util/ClassLoadingAwareObjectInputStream.java
      - copied unchanged from r1160374, qpid/trunk/qpid/java/client/src/main/java/org/apache/qpid/client/util/ClassLoadingAwareObjectInputStream.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/test/java/org/apache/qpid/client/util/
      - copied from r1160374, qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/client/util/
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/test/java/org/apache/qpid/client/util/ClassLoadingAwareObjectInputStreamTest.java
      - copied unchanged from r1160374, qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/client/util/ClassLoadingAwareObjectInputStreamTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/ObjectMessageUnitTest.java
      - copied unchanged from r1160374, qpid/trunk/qpid/java/client/src/test/java/org/apache/qpid/test/unit/client/message/ObjectMessageUnitTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/SSLStatus.java
      - copied unchanged from r1160374, qpid/trunk/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/SSLStatus.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/test/java/org/apache/qpid/ssl/
      - copied from r1160374, qpid/trunk/qpid/java/common/src/test/java/org/apache/qpid/ssl/
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/test/java/org/apache/qpid/ssl/SSLContextFactoryTest.java
      - copied unchanged from r1160374, qpid/trunk/qpid/java/common/src/test/java/org/apache/qpid/ssl/SSLContextFactoryTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQSSLConnectionTest.java
      - copied unchanged from r1160374, qpid/trunk/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQSSLConnectionTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/test_resources/ssl/java_broker.crt
      - copied unchanged from r1160374, qpid/trunk/qpid/java/test-profiles/test_resources/ssl/java_broker.crt
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/test_resources/ssl/java_broker.req
      - copied unchanged from r1160374, qpid/trunk/qpid/java/test-profiles/test_resources/ssl/java_broker.req
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/test_resources/ssl/java_broker_keystore.jks
      - copied unchanged from r1160374, qpid/trunk/qpid/java/test-profiles/test_resources/ssl/java_broker_keystore.jks
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/test_resources/ssl/java_client_keystore.jks
      - copied unchanged from r1160374, qpid/trunk/qpid/java/test-profiles/test_resources/ssl/java_client_keystore.jks
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/test_resources/ssl/java_client_truststore.jks
      - copied unchanged from r1160374, qpid/trunk/qpid/java/test-profiles/test_resources/ssl/java_client_truststore.jks
Removed:
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/MockPluginManager.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/SSLConfiguration.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/old_test/
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/test_resources/ssl/certstore.jks
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/test_resources/ssl/keystore.jks
Modified:
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ExtrasTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/etc/config.xml
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ConfigurationFileApplicationRegistry.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/JCAProvider.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/PluginTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/build.xml
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/XAConnectionImpl.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/message/JMSObjectMessage.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/jms/BrokerDetails.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/jms/failover/FailoverExchangeMethod.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/test/java/org/apache/qpid/client/MockAMQConnection.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/test/java/org/apache/qpid/client/message/TestMessageHelper.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/test/java/org/apache/qpid/test/unit/jndi/ConnectionFactoryTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common.xml
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/ssl/SSLContextFactory.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/IncomingNetworkTransport.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/OutgoingNetworkTransport.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/io/IoNetworkTransport.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MinaNetworkHandler.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/mina/MinaNetworkTransport.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/SecurityLayer.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/QpidClientX509KeyManager.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLReceiver.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLSender.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/main/java/org/apache/qpid/transport/network/security/ssl/SSLUtil.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/test/java/org/apache/qpid/test/utils/QpidTestCase.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/test/java/org/apache/qpid/transport/network/TransportTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/test/java/org/apache/qpid/transport/network/io/IoAcceptor.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/common/src/test/java/org/apache/qpid/transport/network/io/IoTransport.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/perftests/src/main/java/org/apache/qpid/config/AMQConnectionFactoryInitialiser.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/etc/config-systests-settings.xml
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/client/ssl/SSLTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/failover/FailoverMethodTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/logging/BrokerLoggingTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/server/security/acl/AbstractACLTestCase.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/client/failover/FailoverTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/AMQConnectionTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/CloseAfterConnectionFailureTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/unit/client/connection/ConnectionTest.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/systests/src/main/java/org/apache/qpid/test/utils/QpidBrokerTestCase.java
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/CPPExcludes
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/JavaExcludes
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/cpp.ssl.excludes
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/cpp.ssl.testprofile
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/java-dby-spawn.0-9-1.testprofile
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/java-dby.0-9-1.testprofile
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/java-mms-spawn.0-9-1.testprofile
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/java-mms.0-9-1.testprofile
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/log4j-test.xml
    qpid/branches/rg-amqp-1-0-sandbox/qpid/java/test-profiles/testprofile.defaults

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ExtrasTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ExtrasTest.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ExtrasTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker-plugins/extras/src/test/java/org/apache/qpid/server/plugins/ExtrasTest.java Mon Aug 22 20:14:35 2011
@@ -67,7 +67,7 @@ public class ExtrasTest extends TestCase
     
     public void testNoExchanges() throws Exception
     {
-        PluginManager manager = new PluginManager("/path/to/nowhere", "/tmp");
+        PluginManager manager = new PluginManager("/path/to/nowhere", "/tmp", null);
         Map<String, ExchangeType<?>> exchanges = manager.getExchanges();
         assertTrue("Exchanges found", exchanges.isEmpty());
     }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/etc/config.xml
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/etc/config.xml?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/etc/config.xml (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/etc/config.xml Mon Aug 22 20:14:35 2011
@@ -33,12 +33,12 @@
              To disasble Non-SSL port set sslOnly to true -->
         <ssl>
             <enabled>false</enabled>
+            <port>5671</port>
             <sslOnly>false</sslOnly>
             <keystorePath>/path/to/keystore.ks</keystorePath>
             <keystorePassword>keystorepass</keystorePassword>
         </ssl>
         <port>5672</port>
-        <sslport>8672</sslport>
         <socketReceiveBuffer>262144</socketReceiveBuffer>
         <socketSendBuffer>262144</socketSendBuffer>
     </connector>

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/Broker.java Mon Aug 22 20:14:35 2011
@@ -34,6 +34,8 @@ import java.util.Properties;
 import java.util.Set;
 import java.util.logging.*;
 
+import javax.net.ssl.SSLContext;
+
 import org.apache.log4j.PropertyConfigurator;
 import org.apache.log4j.xml.QpidLog4JConfigurator;
 import org.apache.qpid.server.configuration.ServerConfiguration;
@@ -46,8 +48,8 @@ import org.apache.qpid.server.logging.ac
 import org.apache.qpid.server.logging.actors.GenericActor;
 import org.apache.qpid.server.logging.management.LoggingManagementMBean;
 import org.apache.qpid.server.logging.messages.BrokerMessages;
-import org.apache.qpid.server.protocol.MultiVersionProtocolEngineFactory;
 import org.apache.qpid.server.protocol.AmqpProtocolVersion;
+import org.apache.qpid.server.protocol.MultiVersionProtocolEngineFactory;
 import org.apache.qpid.server.registry.ApplicationRegistry;
 import org.apache.qpid.server.registry.ConfigurationFileApplicationRegistry;
 import org.apache.qpid.server.transport.QpidAcceptor;
@@ -115,7 +117,7 @@ public class Broker
 
         configureLogging(logConfigFile, options.getLogWatchFrequency());
 
-        ConfigurationFileApplicationRegistry config = new ConfigurationFileApplicationRegistry(configFile);
+        ConfigurationFileApplicationRegistry config = new ConfigurationFileApplicationRegistry(configFile, options.getBundleContext());
         ServerConfiguration serverConfig = config.getConfiguration();
         updateManagementPort(serverConfig, options.getJmxPort());
 
@@ -199,57 +201,41 @@ public class Broker
             {
                 for(int port : ports)
                 {
-                    Set<AmqpProtocolVersion> supported = EnumSet.allOf(AmqpProtocolVersion.class);
-
-                    if(exclude_0_10.contains(port))
-                    {
-                        supported.remove(AmqpProtocolVersion.v0_10);
-                    }
-
-                    if(exclude_0_9_1.contains(port))
-                    {
-                        supported.remove(AmqpProtocolVersion.v0_9_1);
-                    }
-                    if(exclude_0_9.contains(port))
-                    {
-                        supported.remove(AmqpProtocolVersion.v0_9);
-                    }
-                    if(exclude_0_8.contains(port))
-                    {
-                        supported.remove(AmqpProtocolVersion.v0_8);
-                    }
-
-                    NetworkTransportConfiguration settings = 
-                        new ServerNetworkTransportConfiguration(serverConfig, port, bindAddress.getHostName(), Transport.TCP);
-
-                    IncomingNetworkTransport transport = Transport.getIncomingTransportInstance();
-                    MultiVersionProtocolEngineFactory protocolEngineFactory =
-                        new MultiVersionProtocolEngineFactory(hostName, supported);
+                    final Set<AmqpProtocolVersion> supported = 
+                                    getSupportedVersions(port, exclude_0_10, exclude_0_9_1, exclude_0_9, exclude_0_8);
+                    final NetworkTransportConfiguration settings = 
+                                    new ServerNetworkTransportConfiguration(serverConfig, port, bindAddress.getHostName(), Transport.TCP);
+
+                    final IncomingNetworkTransport transport = Transport.getIncomingTransportInstance();
+                    final MultiVersionProtocolEngineFactory protocolEngineFactory =
+                                    new MultiVersionProtocolEngineFactory(hostName, supported);
 
                     transport.accept(settings, protocolEngineFactory, null);
                     ApplicationRegistry.getInstance().addAcceptor(new InetSocketAddress(bindAddress, port),
-                            new QpidAcceptor(transport,"TCP"));
+                                    new QpidAcceptor(transport,"TCP"));
                     CurrentActor.get().message(BrokerMessages.LISTENING("TCP", port));
                 }
             }
 
             if (serverConfig.getEnableSSL())
             {
-                String keystorePath = serverConfig.getKeystorePath();
-                String keystorePassword = serverConfig.getKeystorePassword();
-                String certType = serverConfig.getCertType();
-                SSLContextFactory sslFactory = 
-                    new SSLContextFactory(keystorePath, keystorePassword, certType);
+                final String keystorePath = serverConfig.getKeystorePath();
+                final String keystorePassword = serverConfig.getKeystorePassword();
+                final String certType = serverConfig.getCertType();
+                final SSLContext sslContext = SSLContextFactory.buildServerContext(keystorePath, keystorePassword, certType);
 
                 for(int sslPort : sslPorts)
                 {
-                    NetworkTransportConfiguration settings = 
+                    final Set<AmqpProtocolVersion> supported = 
+                                    getSupportedVersions(sslPort, exclude_0_10, exclude_0_9_1, exclude_0_9, exclude_0_8);
+                    final NetworkTransportConfiguration settings = 
                         new ServerNetworkTransportConfiguration(serverConfig, sslPort, bindAddress.getHostName(), Transport.TCP);
 
-                    IncomingNetworkTransport transport = new MinaNetworkTransport();
-
-                    transport.accept(settings, new MultiVersionProtocolEngineFactory(), sslFactory);
+                    final IncomingNetworkTransport transport = new MinaNetworkTransport();
+                    final MultiVersionProtocolEngineFactory protocolEngineFactory =
+                                    new MultiVersionProtocolEngineFactory(hostName, supported);
 
+                    transport.accept(settings, protocolEngineFactory, sslContext);
                     ApplicationRegistry.getInstance().addAcceptor(new InetSocketAddress(bindAddress, sslPort),
                             new QpidAcceptor(transport,"TCP"));
                     CurrentActor.get().message(BrokerMessages.LISTENING("TCP/SSL", sslPort));
@@ -265,6 +251,32 @@ public class Broker
         }
     }
 
+    private static Set<AmqpProtocolVersion> getSupportedVersions(final int port, final Set<Integer> exclude_0_10,
+                                                                final Set<Integer> exclude_0_9_1, final Set<Integer> exclude_0_9, 
+                                                                final Set<Integer> exclude_0_8)
+    {
+        final EnumSet<AmqpProtocolVersion> supported = EnumSet.allOf(AmqpProtocolVersion.class);
+
+        if(exclude_0_10.contains(port))
+        {
+            supported.remove(AmqpProtocolVersion.v0_10);
+        }
+        if(exclude_0_9_1.contains(port))
+        {
+            supported.remove(AmqpProtocolVersion.v0_9_1);
+        }
+        if(exclude_0_9.contains(port))
+        {
+            supported.remove(AmqpProtocolVersion.v0_9);
+        }
+        if(exclude_0_8.contains(port))
+        {
+            supported.remove(AmqpProtocolVersion.v0_8);
+        }
+
+        return supported;
+    }
+    
     private File getConfigFile(final String fileName,
                                final String defaultFileName,
                                final String qpidHome, boolean throwOnFileNotFound) throws InitException

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/BrokerOptions.java Mon Aug 22 20:14:35 2011
@@ -26,6 +26,8 @@ import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
 
+import org.osgi.framework.BundleContext;
+
 public class BrokerOptions
 {
     /** serialVersionUID */
@@ -51,9 +53,11 @@ public class BrokerOptions
     private String _logConfigFile;
     private String _bind;
     private Integer _jmxPort;
+    private BundleContext _bundleContext;
 
     private Integer _logWatchFrequency = 0;
 
+
     public void addPort(final int port)
     {
         _ports.add(port);
@@ -149,4 +153,14 @@ public class BrokerOptions
     {
         _logWatchFrequency = logWatchFrequency;
     }
+
+    public BundleContext getBundleContext()
+    {
+        return _bundleContext ;
+    }
+
+    public void setBundleContext(final BundleContext bundleContext)
+    {
+        _bundleContext = bundleContext;
+    }
 }
\ No newline at end of file

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/configuration/ServerConfiguration.java Mon Aug 22 20:14:35 2011
@@ -39,17 +39,13 @@ import org.apache.commons.configuration.
 import org.apache.commons.configuration.SystemConfiguration;
 import org.apache.commons.configuration.XMLConfiguration;
 import org.apache.log4j.Logger;
-import org.apache.qpid.server.configuration.management.ConfigurationManagementMBean;
 import org.apache.qpid.server.configuration.plugins.ConfigurationPlugin;
 import org.apache.qpid.server.registry.ApplicationRegistry;
+import org.apache.qpid.server.signal.SignalHandlerTask;
 import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
-import org.apache.qpid.transport.NetworkTransportConfiguration;
 
-import sun.misc.Signal;
-import sun.misc.SignalHandler;
-
-public class ServerConfiguration extends ConfigurationPlugin implements SignalHandler
+public class ServerConfiguration extends ConfigurationPlugin
 {
     protected static final Logger _logger = Logger.getLogger(ServerConfiguration.class);
 
@@ -60,7 +56,7 @@ public class ServerConfiguration extends
 
     public static final int DEFAULT_FRAME_SIZE = 65536;
     public static final int DEFAULT_PORT = 5672;
-    public static final int DEFAULT_SSL_PORT = 8672;
+    public static final int DEFAULT_SSL_PORT = 5671;
     public static final long DEFAULT_HOUSEKEEPING_PERIOD = 30000L;
     public static final int DEFAULT_JMXPORT = 8999;
 
@@ -75,10 +71,6 @@ public class ServerConfiguration extends
     private File _configFile;
     private File _vhostsFile;
 
-    private Logger _log = Logger.getLogger(this.getClass());
-
-    private ConfigurationManagementMBean _mbean;
-
     // Map of environment variables to config items
     private static final Map<String, String> envVarMap = new HashMap<String, String>();
 
@@ -137,15 +129,26 @@ public class ServerConfiguration extends
     {
         this(parseConfig(configurationURL));
         _configFile = configurationURL;
-        try
+
+        SignalHandlerTask hupReparseTask = new SignalHandlerTask()
         {
-            Signal sig = new sun.misc.Signal("HUP");
-            sun.misc.Signal.handle(sig, this);
-        }
-        catch (Exception e)
+            public void handle()
+            {
+                try
+                {
+                    reparseConfigFileSecuritySections();
+                }
+                catch (ConfigurationException e)
+                {
+                    _logger.error("Could not reload configuration file security sections", e);
+                }
+            }
+        };
+
+        if(!hupReparseTask.register("HUP"))
         {
-            _logger.info("Signal HUP not supported for OS: " + System.getProperty("os.name"));
-            // We're on something that doesn't handle SIGHUP, how sad, Windows.
+            _logger.info("Unable to register Signal HUP handler to reload security configuration.");
+            _logger.info("Signal HUP not supported for this OS / JVM combination - " + SignalHandlerTask.getPlatformDescription());
         }
     }
 
@@ -416,18 +419,6 @@ public class ServerConfiguration extends
         return _configFile == null ? "" : _configFile.getAbsolutePath();
     }
 
-    public void handle(Signal arg0)
-    {
-        try
-        {
-            reparseConfigFileSecuritySections();
-        }
-        catch (ConfigurationException e)
-        {
-             _logger.error("Could not reload configuration file security sections", e);
-        }
-    }
-
     public void reparseConfigFileSecuritySections() throws ConfigurationException
     {
         if (_configFile != null)
@@ -688,12 +679,12 @@ public class ServerConfiguration extends
 
     public String getKeystorePath()
     {
-        return getStringValue("connector.ssl.keystorePath", "none");
+        return getStringValue("connector.ssl.keystorePath");
     }
 
     public String getKeystorePassword()
     {
-        return getStringValue("connector.ssl.keystorePassword", "none");
+        return getStringValue("connector.ssl.keystorePassword");
     }
 
     public String getCertType()

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/plugins/PluginManager.java Mon Aug 22 20:14:35 2011
@@ -30,18 +30,22 @@ import static org.osgi.framework.Constan
 import static org.osgi.framework.Constants.FRAMEWORK_SYSTEMPACKAGES;
 
 import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
 import java.util.IdentityHashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Properties;
 
 import org.apache.commons.configuration.ConfigurationException;
 import org.apache.felix.framework.Felix;
 import org.apache.felix.framework.util.StringMap;
 import org.apache.log4j.Logger;
 import org.apache.qpid.common.Closeable;
+import org.apache.qpid.common.QpidProperties;
 import org.apache.qpid.server.configuration.TopicConfiguration;
 import org.apache.qpid.server.configuration.plugins.ConfigurationPluginFactory;
 import org.apache.qpid.server.configuration.plugins.SlowConsumerDetectionConfiguration.SlowConsumerDetectionConfigurationFactory;
@@ -59,8 +63,11 @@ import org.apache.qpid.server.virtualhos
 import org.apache.qpid.server.virtualhost.plugins.VirtualHostPluginFactory;
 import org.apache.qpid.server.virtualhost.plugins.policies.TopicDeletePolicy;
 import org.apache.qpid.slowconsumerdetection.policies.SlowConsumerPolicyPluginFactory;
+import org.apache.qpid.util.FileUtils;
 import org.osgi.framework.BundleActivator;
+import org.osgi.framework.BundleContext;
 import org.osgi.framework.BundleException;
+import org.osgi.framework.Version;
 import org.osgi.framework.launch.Framework;
 import org.osgi.util.tracker.ServiceTracker;
 
@@ -73,7 +80,6 @@ public class PluginManager implements Cl
     private static final Logger _logger = Logger.getLogger(PluginManager.class);
 
     private static final int FELIX_STOP_TIMEOUT = 30000;
-    private static final String QPID_VER_SUFFIX = "version=0.13,";
 
     private Framework _felix;
 
@@ -92,7 +98,50 @@ public class PluginManager implements Cl
     private Map<String, SlowConsumerPolicyPluginFactory> _policyPlugins = new HashMap<String, SlowConsumerPolicyPluginFactory>();
     private Map<String, AuthenticationManagerPluginFactory<? extends Plugin>> _authenticationManagerPlugins = new HashMap<String, AuthenticationManagerPluginFactory<? extends Plugin>>();
 
-    public PluginManager(String pluginPath, String cachePath) throws Exception
+    /** The default name of the OSGI system package list. */
+    private static final String DEFAULT_RESOURCE_NAME = "org/apache/qpid/server/plugins/OsgiSystemPackages.properties";
+    
+    /** The name of the override system property that holds the name of the OSGI system package list. */
+    private static final String FILE_PROPERTY = "qpid.osgisystempackages.properties";
+    
+    private static final String OSGI_SYSTEM_PACKAGES;
+    
+    static 
+    {
+        final String filename = System.getProperty(FILE_PROPERTY);
+        final InputStream is = FileUtils.openFileOrDefaultResource(filename, DEFAULT_RESOURCE_NAME,
+                    PluginManager.class.getClassLoader());
+        
+        try
+        {
+            Version qpidReleaseVersion;
+            try
+            {
+                qpidReleaseVersion = Version.parseVersion(QpidProperties.getReleaseVersion());
+            }
+            catch (IllegalArgumentException iae)
+            {
+                qpidReleaseVersion = null;
+            }
+            
+            final Properties p  = new Properties();
+            p.load(is);
+            
+            final OsgiSystemPackageUtil osgiSystemPackageUtil = new OsgiSystemPackageUtil(qpidReleaseVersion, (Map)p);
+            
+            OSGI_SYSTEM_PACKAGES = osgiSystemPackageUtil.getFormattedSystemPackageString();
+            
+            _logger.debug("List of OSGi system packages to be added: " + OSGI_SYSTEM_PACKAGES);
+        }
+        catch (IOException e)
+        {
+            _logger.error("Error reading OSGI system package list", e);
+            throw new ExceptionInInitializerError(e);
+        }
+    }
+    
+    
+    public PluginManager(String pluginPath, String cachePath, BundleContext bundleContext) throws Exception
     {
         // Store all non-OSGi plugins
         // A little gross that we have to add them here, but not all the plugins are OSGIfied
@@ -131,127 +180,97 @@ public class PluginManager implements Cl
             _authenticationManagerPlugins.put(pluginFactory.getPluginName(), pluginFactory);
         }
 
-        // Check the plugin directory path is set and exist
-        if (pluginPath == null)
+        if(bundleContext == null)
         {
-            return;
-        }
-        File pluginDir = new File(pluginPath);
-        if (!pluginDir.exists())
-        {
-            return;
-        } 
-
-        // Setup OSGi configuration propery map
-        StringMap configMap = new StringMap(false);
-
-        // Add the bundle provided service interface package and the core OSGi
-        // packages to be exported from the class path via the system bundle.
-        configMap.put(FRAMEWORK_SYSTEMPACKAGES,
-                "org.osgi.framework; version=1.3.0," +
-                "org.osgi.service.packageadmin; version=1.2.0," +
-                "org.osgi.service.startlevel; version=1.0.0," +
-                "org.osgi.service.url; version=1.0.0," +
-                "org.osgi.util.tracker; version=1.0.0," +
-                "org.apache.qpid.junit.extensions.util; " + QPID_VER_SUFFIX +
-                "org.apache.qpid; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.common; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.exchange; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.framing; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.management.common.mbeans.annotations; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.protocol; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.binding; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.configuration; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.configuration.plugins; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.configuration.management; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.exchange; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.logging; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.logging.actors; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.logging.subjects; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.management; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.persistent; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.plugins; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.protocol; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.queue; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.registry; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.security; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.security.access; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.security.access.plugins; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.virtualhost; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.server.virtualhost.plugins; " + QPID_VER_SUFFIX +
-                "org.apache.qpid.util; " + QPID_VER_SUFFIX +
-                "org.apache.commons.configuration; version=1.0.0," +
-                "org.apache.commons.lang; version=1.0.0," +
-                "org.apache.commons.lang.builder; version=1.0.0," +
-                "org.apache.commons.logging; version=1.0.0," +
-                "org.apache.log4j; version=1.2.12," +
-                "javax.management.openmbean; version=1.0.0," +
-                "javax.management; version=1.0.0," +
-                "javax.security.auth; version=1.0.0"
-            );
-        
-        // No automatic shutdown hook
-        configMap.put("felix.shutdown.hook", "false");
-        
-        // Add system activator
-        List<BundleActivator> activators = new ArrayList<BundleActivator>();
-        _activator = new Activator();
-        activators.add(_activator);
-        configMap.put(SYSTEMBUNDLE_ACTIVATORS_PROP, activators);
+            // Check the plugin directory path is set and exist
+            if (pluginPath == null)
+            {
+                _logger.info("No plugin path specified, no plugins will be loaded.");
+                return;
+            }
+            File pluginDir = new File(pluginPath);
+            if (!pluginDir.exists())
+            {
+                _logger.warn("Plugin dir : "  + pluginDir + " does not exist.");
+                return;
+            }
 
-        if (cachePath != null)
-        {
-            File cacheDir = new File(cachePath);
-            if (!cacheDir.exists() && cacheDir.canWrite())
+            // Add the bundle provided service interface package and the core OSGi
+            // packages to be exported from the class path via the system bundle.
+
+            // Setup OSGi configuration property map
+            final StringMap configMap = new StringMap(false);
+            configMap.put(FRAMEWORK_SYSTEMPACKAGES, OSGI_SYSTEM_PACKAGES);
+
+            // No automatic shutdown hook
+            configMap.put("felix.shutdown.hook", "false");
+
+            // Add system activator
+            List<BundleActivator> activators = new ArrayList<BundleActivator>();
+            _activator = new Activator();
+            activators.add(_activator);
+            configMap.put(SYSTEMBUNDLE_ACTIVATORS_PROP, activators);
+
+            if (cachePath != null)
             {
-                _logger.info("Creating plugin cache directory: " + cachePath);
-                cacheDir.mkdir();
+                File cacheDir = new File(cachePath);
+                if (!cacheDir.exists() && cacheDir.canWrite())
+                {
+                    _logger.info("Creating plugin cache directory: " + cachePath);
+                    cacheDir.mkdir();
+                }
+
+                // Set plugin cache directory and empty it
+                _logger.info("Cache bundles in directory " + cachePath);
+                configMap.put(FRAMEWORK_STORAGE, cachePath);
             }
-            
-            // Set plugin cache directory and empty it
-            _logger.info("Cache bundles in directory " + cachePath);
-            configMap.put(FRAMEWORK_STORAGE, cachePath);
-        }
-        configMap.put(FRAMEWORK_STORAGE_CLEAN, FRAMEWORK_STORAGE_CLEAN_ONFIRSTINIT);
-        
-        // Set directory with plugins to auto-deploy
-        _logger.info("Auto deploying bundles from directory " + pluginPath);
-        configMap.put(AUTO_DEPLOY_DIR_PROPERY, pluginPath);
-        configMap.put(AUTO_DEPLOY_ACTION_PROPERY, AUTO_DEPLOY_INSTALL_VALUE + "," + AUTO_DEPLOY_START_VALUE);        
-        
-        // Start plugin manager and trackers
-        _felix = new Felix(configMap);
-        try
-        {
-            _logger.info("Starting plugin manager...");
-            _felix.init();
-	        process(configMap, _felix.getBundleContext());
-            _felix.start();
-            _logger.info("Started plugin manager");
+            configMap.put(FRAMEWORK_STORAGE_CLEAN, FRAMEWORK_STORAGE_CLEAN_ONFIRSTINIT);
+
+            // Set directory with plugins to auto-deploy
+            _logger.info("Auto deploying bundles from directory " + pluginPath);
+            configMap.put(AUTO_DEPLOY_DIR_PROPERY, pluginPath);
+            configMap.put(AUTO_DEPLOY_ACTION_PROPERY, AUTO_DEPLOY_INSTALL_VALUE + "," + AUTO_DEPLOY_START_VALUE);
+
+            // Start plugin manager
+            _felix = new Felix(configMap);
+            try
+            {
+                _logger.info("Starting plugin manager framework");
+                _felix.init();
+                process(configMap, _felix.getBundleContext());
+                _felix.start();
+                _logger.info("Started plugin manager framework");
+            }
+            catch (BundleException e)
+            {
+                throw new ConfigurationException("Could not start plugin manager: " + e.getMessage(), e);
+            }
+
+            bundleContext = _activator.getContext();
         }
-        catch (BundleException e)
+        else
         {
-            throw new ConfigurationException("Could not start plugin manager: " + e.getMessage(), e);
+            _logger.info("Using the specified external BundleContext");
         }
-        
+
         // TODO save trackers in a map, keyed by class name
         
-        _exchangeTracker = new ServiceTracker(_activator.getContext(), ExchangeType.class.getName(), null);
+        _exchangeTracker = new ServiceTracker(bundleContext, ExchangeType.class.getName(), null);
         _exchangeTracker.open();
 
-        _securityTracker = new ServiceTracker(_activator.getContext(), SecurityPluginFactory.class.getName(), null);
+        _securityTracker = new ServiceTracker(bundleContext, SecurityPluginFactory.class.getName(), null);
         _securityTracker.open();
 
-        _configTracker = new ServiceTracker(_activator.getContext(), ConfigurationPluginFactory.class.getName(), null);
+        _configTracker = new ServiceTracker(bundleContext, ConfigurationPluginFactory.class.getName(), null);
         _configTracker.open();
 
-        _virtualHostTracker = new ServiceTracker(_activator.getContext(), VirtualHostPluginFactory.class.getName(), null);
+        _virtualHostTracker = new ServiceTracker(bundleContext, VirtualHostPluginFactory.class.getName(), null);
         _virtualHostTracker.open();
  
-        _policyTracker = new ServiceTracker(_activator.getContext(), SlowConsumerPolicyPluginFactory.class.getName(), null);
+        _policyTracker = new ServiceTracker(bundleContext, SlowConsumerPolicyPluginFactory.class.getName(), null);
         _policyTracker.open();
         
-        _authenticationManagerTracker = new ServiceTracker(_activator.getContext(), AuthenticationManagerPluginFactory.class.getName(), null);
+        _authenticationManagerTracker = new ServiceTracker(bundleContext, AuthenticationManagerPluginFactory.class.getName(), null);
         _authenticationManagerTracker.open();
 
         _logger.info("Opened service trackers");
@@ -331,21 +350,21 @@ public class PluginManager implements Cl
 
     public void close()
     {
-        if (_felix != null)
+        try
         {
-            try
-            {
-                // Close all bundle trackers
-                _exchangeTracker.close();
-                _securityTracker.close();
-                _configTracker.close();
-                _virtualHostTracker.close();
-                _policyTracker.close();
-                _authenticationManagerTracker.close();
-            }
-            finally
+            // Close all bundle trackers
+            _exchangeTracker.close();
+            _securityTracker.close();
+            _configTracker.close();
+            _virtualHostTracker.close();
+            _policyTracker.close();
+            _authenticationManagerTracker.close();
+        }
+        finally
+        {
+            if (_felix != null)
             {
-                _logger.info("Stopping plugin manager");
+                _logger.info("Stopping plugin manager framework");
                 try
                 {
                     // FIXME should be stopAndWait() but hangs VM, need upgrade in felix
@@ -364,7 +383,12 @@ public class PluginManager implements Cl
                 {
                     // Ignore
                 }
-                _logger.info("Stopped plugin manager");
+                _logger.info("Stopped plugin manager framework");
+            }
+            else
+            {
+                _logger.info("Plugin manager was started with an external BundleContext, " +
+                             "skipping remaining shutdown tasks");
             }
         }
     }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/protocol/MultiVersionProtocolEngineFactory.java Mon Aug 22 20:14:35 2011
@@ -20,7 +20,6 @@
 */
 package org.apache.qpid.server.protocol;
 
-import java.util.EnumSet;
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicLong;
 
@@ -32,23 +31,12 @@ import org.apache.qpid.transport.network
 
 public class MultiVersionProtocolEngineFactory implements ProtocolEngineFactory
 {
-    private static final Set<AmqpProtocolVersion> ALL_VERSIONS = EnumSet.allOf(AmqpProtocolVersion.class);
     private static final AtomicLong ID_GENERATOR = new AtomicLong(0);
 
     private final IApplicationRegistry _appRegistry;
     private final String _fqdn;
     private final Set<AmqpProtocolVersion> _supported;
 
-    public MultiVersionProtocolEngineFactory()
-    {
-        this("localhost", ALL_VERSIONS);
-    }
-
-    public MultiVersionProtocolEngineFactory(String fqdn)
-    {
-        this(fqdn, ALL_VERSIONS);
-    }
-
     public MultiVersionProtocolEngineFactory(String fqdn, Set<AmqpProtocolVersion> supportedVersions)
     {
         _appRegistry = ApplicationRegistry.getInstance();

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ApplicationRegistry.java Mon Aug 22 20:14:35 2011
@@ -65,6 +65,7 @@ import org.apache.qpid.server.transport.
 import org.apache.qpid.server.virtualhost.VirtualHost;
 import org.apache.qpid.server.virtualhost.VirtualHostImpl;
 import org.apache.qpid.server.virtualhost.VirtualHostRegistry;
+import org.osgi.framework.BundleContext;
 
 
 /**
@@ -111,6 +112,8 @@ public abstract class ApplicationRegistr
     private boolean _statisticsEnabled = false;
     private StatisticsCounter _messagesDelivered, _dataDelivered, _messagesReceived, _dataReceived;
 
+    private BundleContext _bundleContext;
+
     static
     {
         Runtime.getRuntime().addShutdownHook(new Thread(new ShutdownService()));
@@ -209,7 +212,13 @@ public abstract class ApplicationRegistr
 
     protected ApplicationRegistry(ServerConfiguration configuration)
     {
+        this(configuration, null);
+    }
+
+    protected ApplicationRegistry(ServerConfiguration configuration, BundleContext bundleContext)
+    {
         _configuration = configuration;
+        _bundleContext = bundleContext;
     }
 
     public void configure() throws ConfigurationException
@@ -218,7 +227,7 @@ public abstract class ApplicationRegistr
 
         try
         {
-            _pluginManager = new PluginManager(_configuration.getPluginDirectory(), _configuration.getCacheDirectory());
+            _pluginManager = new PluginManager(_configuration.getPluginDirectory(), _configuration.getCacheDirectory(), _bundleContext);
         }
         catch (Exception e)
         {

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ConfigurationFileApplicationRegistry.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ConfigurationFileApplicationRegistry.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ConfigurationFileApplicationRegistry.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/registry/ConfigurationFileApplicationRegistry.java Mon Aug 22 20:14:35 2011
@@ -29,12 +29,18 @@ import org.apache.qpid.server.logging.ac
 import org.apache.qpid.server.logging.actors.CurrentActor;
 import org.apache.qpid.server.management.JMXManagedObjectRegistry;
 import org.apache.qpid.server.management.NoopManagedObjectRegistry;
+import org.osgi.framework.BundleContext;
 
 public class ConfigurationFileApplicationRegistry extends ApplicationRegistry
 {
     public ConfigurationFileApplicationRegistry(File configurationURL) throws ConfigurationException
     {
-        super(new ServerConfiguration(configurationURL));
+        this(configurationURL, null);
+    }
+
+    public ConfigurationFileApplicationRegistry(File configurationURL, BundleContext bundleContext) throws ConfigurationException
+    {
+        super(new ServerConfiguration(configurationURL), bundleContext);
     }
 
     @Override

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/JCAProvider.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/JCAProvider.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/JCAProvider.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/security/auth/sasl/JCAProvider.java Mon Aug 22 20:14:35 2011
@@ -21,12 +21,11 @@
 package org.apache.qpid.server.security.auth.sasl;
 
 import java.security.Provider;
-import java.security.Security;
 import java.util.Map;
 
 import javax.security.sasl.SaslServerFactory;
 
-public final class JCAProvider extends Provider
+public class JCAProvider extends Provider
 {
     public JCAProvider(String name, Map<String, Class<? extends SaslServerFactory>> providerMap)
     {

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/main/java/org/apache/qpid/server/subscription/Subscription_0_10.java Mon Aug 22 20:14:35 2011
@@ -109,15 +109,15 @@ public class Subscription_0_10 implement
     private final MessageAcquireMode _acquireMode;
     private MessageFlowMode _flowMode;
     private final ServerSession _session;
-    private AtomicBoolean _stopped = new AtomicBoolean(true);
+    private final AtomicBoolean _stopped = new AtomicBoolean(true);
     private static final Struct[] EMPTY_STRUCT_ARRAY = new Struct[0];
 
     private LogActor _logActor;
-    private Map<String, Object> _properties = new ConcurrentHashMap<String, Object>();
+    private final Map<String, Object> _properties = new ConcurrentHashMap<String, Object>();
     private UUID _id;
     private String _traceExclude;
     private String _trace;
-    private long _createTime = System.currentTimeMillis();
+    private final long _createTime = System.currentTimeMillis();
     private final AtomicLong _deliveredCount = new AtomicLong(0);
     private final Map<String, Object> _arguments;
 
@@ -711,13 +711,22 @@ public class Subscription_0_10 implement
 
     public void stop()
     {
-        if(_state.compareAndSet(State.ACTIVE, State.SUSPENDED))
+        try
         {
-            _stateListener.stateChange(this, State.ACTIVE, State.SUSPENDED);
+            getSendLock();
+
+            if(_state.compareAndSet(State.ACTIVE, State.SUSPENDED))
+            {
+                _stateListener.stateChange(this, State.ACTIVE, State.SUSPENDED);
+            }
+            _stopped.set(true);
+            FlowCreditManager_0_10 creditManager = getCreditManager();
+            creditManager.clearCredit();
+        }
+        finally
+        {
+            releaseSendLock();
         }
-        _stopped.set(true);
-        FlowCreditManager_0_10 creditManager = getCreditManager();
-        creditManager.clearCredit();
     }
 
     public void addCredit(MessageCreditUnit unit, long value)

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/configuration/ServerConfigurationTest.java Mon Aug 22 20:14:35 2011
@@ -511,7 +511,7 @@ public class ServerConfigurationTest ext
     {
         // Check default
         _serverConfig.initialise();
-        assertEquals("none", _serverConfig.getKeystorePath());
+        assertNull(_serverConfig.getKeystorePath());
 
         // Check value we set
         _config.setProperty("connector.ssl.keystorePath", "a");
@@ -524,7 +524,7 @@ public class ServerConfigurationTest ext
     {
         // Check default
         _serverConfig.initialise();
-        assertEquals("none", _serverConfig.getKeystorePassword());
+        assertNull(_serverConfig.getKeystorePassword());
 
         // Check value we set
         _config.setProperty("connector.ssl.keystorePassword", "a");

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/PluginTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/PluginTest.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/PluginTest.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/broker/src/test/java/org/apache/qpid/server/plugins/PluginTest.java Mon Aug 22 20:14:35 2011
@@ -49,7 +49,7 @@ public class PluginTest extends Internal
     
     public void testNoExchanges() throws Exception
     {
-        PluginManager manager = new PluginManager("/path/to/nowhere", "/tmp");
+        PluginManager manager = new PluginManager("/path/to/nowhere", "/tmp", null);
         Map<String, ExchangeType<?>> exchanges = manager.getExchanges();
         assertTrue("Exchanges found", exchanges.isEmpty());
     }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/build.xml
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/build.xml?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/build.xml (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/build.xml Mon Aug 22 20:14:35 2011
@@ -23,7 +23,7 @@
   <import file="common.xml"/>
 
   <findSubProjects name="broker-plugins" dir="broker-plugins"/>
-  <findSubProjects name="client-plugins" dir="client-plugins" erroronmissingdir="false"/>
+  <findSubProjects name="client-plugins" dir="client-plugins"/>
   <findSubProjects name="management" dir="management" excludes="common,example"/>
 
   <property name="modules.core"       value="junit-toolkit common management/common amqp-1-0-common broker client amqp-1-0-client amqp-1-0-client-jms tools"/>

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQBrokerDetails.java Mon Aug 22 20:14:35 2011
@@ -26,7 +26,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.qpid.jms.BrokerDetails;
-import org.apache.qpid.jms.ConnectionURL;
+import org.apache.qpid.transport.ConnectionSettings;
 import org.apache.qpid.url.URLHelper;
 import org.apache.qpid.url.URLSyntaxException;
 
@@ -38,8 +38,6 @@ public class AMQBrokerDetails implements
 
     private Map<String, String> _options = new HashMap<String, String>();
 
-    private SSLConfiguration _sslConfiguration;
-
     public AMQBrokerDetails(){}
     
     public AMQBrokerDetails(String url) throws URLSyntaxException
@@ -200,11 +198,10 @@ public class AMQBrokerDetails implements
         }
     }
 
-    public AMQBrokerDetails(String host, int port, SSLConfiguration sslConfiguration)
+    public AMQBrokerDetails(String host, int port)
     {
         _host = host;
         _port = port;
-        _sslConfiguration = sslConfiguration;
     }
 
     public String getHost()
@@ -280,16 +277,6 @@ public class AMQBrokerDetails implements
         setProperty(OPTIONS_CONNECT_TIMEOUT, Long.toString(timeout));
     }
 
-    public SSLConfiguration getSSLConfiguration()
-    {
-        return _sslConfiguration;
-    }
-
-    public void setSSLConfiguration(SSLConfiguration sslConfig)
-    {
-        _sslConfiguration = sslConfig;
-    }
-
     public String toString()
     {
         StringBuffer sb = new StringBuffer();
@@ -316,9 +303,8 @@ public class AMQBrokerDetails implements
 
         return _host.equalsIgnoreCase(bd.getHost()) &&
                (_port == bd.getPort()) &&
-               _transport.equalsIgnoreCase(bd.getTransport()) &&
-               compareSSLConfigurations(bd.getSSLConfiguration());
-        //todo do we need to compare all the options as well?
+               _transport.equalsIgnoreCase(bd.getTransport());
+        //TODO do we need to compare all the options as well?
     }
 
     @Override
@@ -359,24 +345,6 @@ public class AMQBrokerDetails implements
         return optionsURL.toString();
     }
 
-    // Do we need to do a more in-depth comparison?
-    private boolean compareSSLConfigurations(SSLConfiguration other)
-    {
-        boolean retval = false;
-        if (_sslConfiguration == null &&
-                other == null)
-        {
-            retval = true;
-        }
-        else if (_sslConfiguration != null &&
-                other != null)
-        {
-            retval = true;
-        }
-
-        return retval;
-    }
-
     public static String checkTransport(String broker)
     {
         if ((!broker.contains("://")))
@@ -398,4 +366,82 @@ public class AMQBrokerDetails implements
     {
         _options = props;
     }
+
+    public ConnectionSettings buildConnectionSettings()
+    {
+        ConnectionSettings conSettings = new ConnectionSettings();
+
+        conSettings.setHost(getHost());
+        conSettings.setPort(getPort());
+
+        // ------------ sasl options ---------------
+        if (getProperty(BrokerDetails.OPTIONS_SASL_MECHS) != null)
+        {
+            conSettings.setSaslMechs(
+                    getProperty(BrokerDetails.OPTIONS_SASL_MECHS));
+        }
+
+        // Sun SASL Kerberos client uses the
+        // protocol + servername as the service key.
+
+        if (getProperty(BrokerDetails.OPTIONS_SASL_PROTOCOL_NAME) != null)
+        {
+            conSettings.setSaslProtocol(
+                    getProperty(BrokerDetails.OPTIONS_SASL_PROTOCOL_NAME));
+        }
+
+
+        if (getProperty(BrokerDetails.OPTIONS_SASL_SERVER_NAME) != null)
+        {
+            conSettings.setSaslServerName(
+                    getProperty(BrokerDetails.OPTIONS_SASL_SERVER_NAME));
+        }
+
+        conSettings.setUseSASLEncryption(
+                getBooleanProperty(BrokerDetails.OPTIONS_SASL_ENCRYPTION));
+
+        // ------------- ssl options ---------------------
+        conSettings.setUseSSL(getBooleanProperty(BrokerDetails.OPTIONS_SSL));
+
+        if (getProperty(BrokerDetails.OPTIONS_TRUST_STORE) != null)
+        {
+            conSettings.setTrustStorePath(
+                    getProperty(BrokerDetails.OPTIONS_TRUST_STORE));
+        }
+
+        if (getProperty(BrokerDetails.OPTIONS_TRUST_STORE_PASSWORD) != null)
+        {
+            conSettings.setTrustStorePassword(
+                    getProperty(BrokerDetails.OPTIONS_TRUST_STORE_PASSWORD));
+        }
+
+        if (getProperty(BrokerDetails.OPTIONS_KEY_STORE) != null)
+        {
+            conSettings.setKeyStorePath(
+                    getProperty(BrokerDetails.OPTIONS_KEY_STORE));
+        }
+
+        if (getProperty(BrokerDetails.OPTIONS_KEY_STORE_PASSWORD) != null)
+        {
+            conSettings.setKeyStorePassword(
+                    getProperty(BrokerDetails.OPTIONS_KEY_STORE_PASSWORD));
+        }
+
+        if (getProperty(BrokerDetails.OPTIONS_SSL_CERT_ALIAS) != null)
+        {
+            conSettings.setCertAlias(
+                    getProperty(BrokerDetails.OPTIONS_SSL_CERT_ALIAS));
+        }
+        // ----------------------------
+
+        conSettings.setVerifyHostname(getBooleanProperty(BrokerDetails.OPTIONS_SSL_VERIFY_HOSTNAME));
+
+        if (getProperty(BrokerDetails.OPTIONS_TCP_NO_DELAY) != null)
+        {
+            conSettings.setTcpNodelay(
+                    getBooleanProperty(BrokerDetails.OPTIONS_TCP_NO_DELAY));
+        }
+
+        return conSettings;
+    }
 }

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnection.java Mon Aug 22 20:14:35 2011
@@ -147,9 +147,6 @@ public class AMQConnection extends Close
      */
     private QpidConnectionMetaData _connectionMetaData;
 
-    /** Configuration info for SSL */
-    private SSLConfiguration _sslConfiguration;
-
     private AMQShortString _defaultTopicExchangeName = ExchangeDefaults.TOPIC_EXCHANGE_NAME;
     private AMQShortString _defaultQueueExchangeName = ExchangeDefaults.DIRECT_EXCHANGE_NAME;
     private AMQShortString _temporaryTopicExchangeName = ExchangeDefaults.TOPIC_EXCHANGE_NAME;
@@ -194,68 +191,27 @@ public class AMQConnection extends Close
         this(new AMQConnectionURL(
                 ConnectionURL.AMQ_PROTOCOL + "://" + username + ":" + password + "@"
                 + ((clientName == null) ? "" : clientName) + "/" + virtualHost + "?brokerlist='"
-                + AMQBrokerDetails.checkTransport(broker) + "'"), null);
-    }
-
-    /**
-     * @param broker      brokerdetails
-     * @param username    username
-     * @param password    password
-     * @param clientName  clientid
-     * @param virtualHost virtualhost
-     *
-     * @throws AMQException
-     * @throws URLSyntaxException
-     */
-    public AMQConnection(String broker, String username, String password, String clientName, String virtualHost,
-                         SSLConfiguration sslConfig) throws AMQException, URLSyntaxException
-    {
-        this(new AMQConnectionURL(
-                ConnectionURL.AMQ_PROTOCOL + "://" + username + ":" + password + "@"
-                + ((clientName == null) ? "" : clientName) + "/" + virtualHost + "?brokerlist='"
-                + AMQBrokerDetails.checkTransport(broker) + "'"), sslConfig);
+                + AMQBrokerDetails.checkTransport(broker) + "'"));
     }
 
     public AMQConnection(String host, int port, String username, String password, String clientName, String virtualHost)
             throws AMQException, URLSyntaxException
     {
-        this(host, port, false, username, password, clientName, virtualHost, null);
-    }
-
-    public AMQConnection(String host, int port, String username, String password, String clientName, String virtualHost,
-                         SSLConfiguration sslConfig) throws AMQException, URLSyntaxException
-    {
-        this(host, port, false, username, password, clientName, virtualHost, sslConfig);
-    }
-
-    public AMQConnection(String host, int port, boolean useSSL, String username, String password, String clientName,
-                         String virtualHost, SSLConfiguration sslConfig) throws AMQException, URLSyntaxException
-    {
         this(new AMQConnectionURL(
-                useSSL
-                ? (ConnectionURL.AMQ_PROTOCOL + "://" + username + ":" + password + "@"
-                   + ((clientName == null) ? "" : clientName) + virtualHost + "?brokerlist='tcp://" + host + ":" + port
-                   + "'" + "," + BrokerDetails.OPTIONS_SSL + "='true'")
-                : (ConnectionURL.AMQ_PROTOCOL + "://" + username + ":" + password + "@"
-                   + ((clientName == null) ? "" : clientName) + virtualHost + "?brokerlist='tcp://" + host + ":" + port
-                   + "'" + "," + BrokerDetails.OPTIONS_SSL + "='false'")), sslConfig);
+                   ConnectionURL.AMQ_PROTOCOL + "://" + username + ":" + password + "@"
+                   + ((clientName == null) ? "" : clientName) + virtualHost + "?brokerlist='tcp://" + host + ":" + port + "'"));
     }
 
     public AMQConnection(String connection) throws AMQException, URLSyntaxException
     {
-        this(new AMQConnectionURL(connection), null);
-    }
-
-    public AMQConnection(String connection, SSLConfiguration sslConfig) throws AMQException, URLSyntaxException
-    {
-        this(new AMQConnectionURL(connection), sslConfig);
+        this(new AMQConnectionURL(connection));
     }
 
     /**
      * @todo Some horrible stuff going on here with setting exceptions to be non-null to detect if an exception
      * was thrown during the connection! Intention not clear. Use a flag anyway, not exceptions... Will fix soon.
      */
-    public AMQConnection(ConnectionURL connectionURL, SSLConfiguration sslConfig) throws AMQException
+    public AMQConnection(ConnectionURL connectionURL) throws AMQException
     {
         if (connectionURL == null)
         {
@@ -350,7 +306,6 @@ public class AMQConnection extends Close
             _logger.info("Connection:" + connectionURL);
         }
 
-        _sslConfiguration = sslConfig;
         _connectionURL = connectionURL;
 
         _clientName = connectionURL.getClientName();
@@ -548,7 +503,7 @@ public class AMQConnection extends Close
 
     public boolean attemptReconnection(String host, int port)
     {
-        BrokerDetails bd = new AMQBrokerDetails(host, port, _sslConfiguration);
+        BrokerDetails bd = new AMQBrokerDetails(host, port);
 
         _failoverPolicy.setBroker(bd);
 
@@ -1376,11 +1331,6 @@ public class AMQConnection extends Close
                              AMQConnectionFactory.class.getName(), null); // factory location
     }
 
-    public SSLConfiguration getSSLConfiguration()
-    {
-        return _sslConfiguration;
-    }
-
     public AMQShortString getDefaultTopicExchangeName()
     {
         return _defaultTopicExchangeName;

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_0_10.java Mon Aug 22 20:14:35 2011
@@ -191,8 +191,7 @@ public class AMQConnectionDelegate_0_10 
                         + _conn.getPassword());
             }
 
-            ConnectionSettings conSettings = new ConnectionSettings();
-            retriveConnectionSettings(conSettings,brokerDetail);
+            ConnectionSettings conSettings = retriveConnectionSettings(brokerDetail);
             _qpidConnection.connect(conSettings);
 
             _conn._connected = true;
@@ -352,77 +351,14 @@ public class AMQConnectionDelegate_0_10 
         return (String)_qpidConnection.getServerProperties().get(UUID_NAME);        
     }
     
-    private void retriveConnectionSettings(ConnectionSettings conSettings, BrokerDetails brokerDetail)
+    private ConnectionSettings retriveConnectionSettings(BrokerDetails brokerDetail)
     {
+        ConnectionSettings conSettings = brokerDetail.buildConnectionSettings();
 
-        conSettings.setHost(brokerDetail.getHost());
-        conSettings.setPort(brokerDetail.getPort());
         conSettings.setVhost(_conn.getVirtualHost());
         conSettings.setUsername(_conn.getUsername());
         conSettings.setPassword(_conn.getPassword());
         
-        // ------------ sasl options ---------------
-        if (brokerDetail.getProperty(BrokerDetails.OPTIONS_SASL_MECHS) != null)
-        {
-            conSettings.setSaslMechs(
-                    brokerDetail.getProperty(BrokerDetails.OPTIONS_SASL_MECHS));
-        }
-
-        // Sun SASL Kerberos client uses the
-        // protocol + servername as the service key.
-        
-        if (brokerDetail.getProperty(BrokerDetails.OPTIONS_SASL_PROTOCOL_NAME) != null)
-        {
-            conSettings.setSaslProtocol(
-                    brokerDetail.getProperty(BrokerDetails.OPTIONS_SASL_PROTOCOL_NAME));
-        }
-        
-        
-        if (brokerDetail.getProperty(BrokerDetails.OPTIONS_SASL_SERVER_NAME) != null)
-        {
-            conSettings.setSaslServerName(
-                    brokerDetail.getProperty(BrokerDetails.OPTIONS_SASL_SERVER_NAME));
-        }
-                        
-        conSettings.setUseSASLEncryption(
-                brokerDetail.getBooleanProperty(BrokerDetails.OPTIONS_SASL_ENCRYPTION));
-
-        // ------------- ssl options ---------------------
-        conSettings.setUseSSL(brokerDetail.getBooleanProperty(BrokerDetails.OPTIONS_SSL));
-        
-        if (brokerDetail.getProperty(BrokerDetails.OPTIONS_TRUST_STORE) != null)
-        {
-            conSettings.setTrustStorePath(
-                    brokerDetail.getProperty(BrokerDetails.OPTIONS_TRUST_STORE));
-        }
-
-        if (brokerDetail.getProperty(BrokerDetails.OPTIONS_TRUST_STORE_PASSWORD) != null)
-        {
-            conSettings.setTrustStorePassword(
-                    brokerDetail.getProperty(BrokerDetails.OPTIONS_TRUST_STORE_PASSWORD));
-        }
-        
-        if (brokerDetail.getProperty(BrokerDetails.OPTIONS_KEY_STORE) != null)
-        {
-            conSettings.setKeyStorePath(
-                    brokerDetail.getProperty(BrokerDetails.OPTIONS_KEY_STORE));
-        }
-        
-        if (brokerDetail.getProperty(BrokerDetails.OPTIONS_KEY_STORE_PASSWORD) != null)
-        {
-            conSettings.setKeyStorePassword(
-                    brokerDetail.getProperty(BrokerDetails.OPTIONS_KEY_STORE_PASSWORD));
-        }
-
-        if (brokerDetail.getProperty(BrokerDetails.OPTIONS_SSL_CERT_ALIAS) != null)
-        {
-            conSettings.setCertAlias(
-                    brokerDetail.getProperty(BrokerDetails.OPTIONS_SSL_CERT_ALIAS));
-        }
-        // ----------------------------
-        
-        conSettings.setVerifyHostname(brokerDetail.getBooleanProperty(BrokerDetails.OPTIONS_SSL_VERIFY_HOSTNAME));
-        
         // Pass client name from connection URL
         Map<String, Object> clientProps = new HashMap<String, Object>();
         try
@@ -434,14 +370,10 @@ public class AMQConnectionDelegate_0_10 
         {
             // Ignore
         }
-        
-        if (brokerDetail.getProperty(BrokerDetails.OPTIONS_TCP_NO_DELAY) != null)
-        {
-            conSettings.setTcpNodelay(
-                    brokerDetail.getBooleanProperty(BrokerDetails.OPTIONS_TCP_NO_DELAY));
-        }
-        
+
         conSettings.setHeartbeatInterval(getHeartbeatInterval(brokerDetail));
+
+        return conSettings;
     }
     
     // The idle_timeout prop is in milisecs while

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionDelegate_8_0.java Mon Aug 22 20:14:35 2011
@@ -23,6 +23,7 @@ package org.apache.qpid.client;
 import java.io.IOException;
 import java.net.ConnectException;
 import java.nio.channels.UnresolvedAddressException;
+import java.security.GeneralSecurityException;
 import java.text.MessageFormat;
 import java.util.ArrayList;
 import java.util.EnumSet;
@@ -31,6 +32,7 @@ import java.util.Set;
 
 import javax.jms.JMSException;
 import javax.jms.XASession;
+import javax.net.ssl.SSLContext;
 
 import org.apache.qpid.AMQException;
 import org.apache.qpid.client.failover.FailoverException;
@@ -93,20 +95,31 @@ public class AMQConnectionDelegate_8_0 i
 
         StateWaiter waiter = _conn._protocolHandler.createWaiter(openOrClosedStates);
 
-        ConnectionSettings settings = new ConnectionSettings();
-        settings.setHost(brokerDetail.getHost());
-        settings.setPort(brokerDetail.getPort());
+        ConnectionSettings settings = brokerDetail.buildConnectionSettings();
         settings.setProtocol(brokerDetail.getTransport());
 
-        SSLConfiguration sslConfig = _conn.getSSLConfiguration();
-        SSLContextFactory sslFactory = null;
-        if (sslConfig != null)
+        SSLContext sslContext = null;
+        if (settings.isUseSSL())
         {
-            sslFactory = new SSLContextFactory(sslConfig.getKeystorePath(), sslConfig.getKeystorePassword(), sslConfig.getCertType());
+            try
+            {
+                sslContext = SSLContextFactory.buildClientContext(
+                                settings.getTrustStorePath(),
+                                settings.getTrustStorePassword(),
+                                settings.getTrustStoreCertType(),
+                                settings.getKeyStorePath(),
+                                settings.getKeyStorePassword(),
+                                settings.getKeyStoreCertType(),
+                                settings.getCertAlias());
+            }
+            catch (GeneralSecurityException e)
+            {
+                throw new AMQException("Unable to create SSLContext: " + e.getMessage(), e);
+            }
         }
 
         OutgoingNetworkTransport transport = Transport.getOutgoingTransportInstance(getProtocolVersion());
-        NetworkConnection network = transport.connect(settings, _conn._protocolHandler, sslFactory);
+        NetworkConnection network = transport.connect(settings, _conn._protocolHandler, sslContext);
         _conn._protocolHandler.setNetworkConnection(network);
         _conn._protocolHandler.getProtocolSession().init();
         // this blocks until the connection has been set up or when an error

Modified: qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java
URL: http://svn.apache.org/viewvc/qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java?rev=1160414&r1=1160413&r2=1160414&view=diff
==============================================================================
--- qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java (original)
+++ qpid/branches/rg-amqp-1-0-sandbox/qpid/java/client/src/main/java/org/apache/qpid/client/AMQConnectionFactory.java Mon Aug 22 20:14:35 2011
@@ -44,210 +44,34 @@ public class AMQConnectionFactory implem
                                              ObjectFactory, Referenceable, XATopicConnectionFactory,
                                              XAQueueConnectionFactory, XAConnectionFactory
 {
-    private String _host;
-    private int _port;
-    private String _defaultUsername;
-    private String _defaultPassword;
-    private String _virtualPath;
+    private final ConnectionURL _connectionDetails;
 
-    private ConnectionURL _connectionDetails;
-    private SSLConfiguration _sslConfig;
-
-    public AMQConnectionFactory()
+    public AMQConnectionFactory(final String url) throws URLSyntaxException
     {
-    }
-
-    /**
-     * This is the Only constructor used!
-     * It is used form the context and from the JNDI objects.
-     */
-    public AMQConnectionFactory(String url) throws URLSyntaxException
-    {
-        _connectionDetails = new AMQConnectionURL(url);
-    }
-
-    /**
-     * This constructor is never used!
-     */
-    public AMQConnectionFactory(ConnectionURL url)
-    {
-        _connectionDetails = url;
-    }
-
-    /**
-     * This constructor is never used!
-     */
-    public AMQConnectionFactory(String broker, String username, String password, String clientName, String virtualHost)
-            throws URLSyntaxException
-    {
-        this(new AMQConnectionURL(
-                ConnectionURL.AMQ_PROTOCOL + "://" + username + ":" + password + "@" + clientName + "/" + virtualHost + "?brokerlist='" + broker + "'"));
-    }
-
-    /**
-     * This constructor is never used!
-     */
-    public AMQConnectionFactory(String host, int port, String virtualPath)
-    {
-        this(host, port, "guest", "guest", virtualPath);
-    }
-
-    /**
-     * This constructor is never used!
-     */
-    public AMQConnectionFactory(String host, int port, String defaultUsername, String defaultPassword,
-                                String virtualPath)
-    {
-        _host = host;
-        _port = port;
-        _defaultUsername = defaultUsername;
-        _defaultPassword = defaultPassword;
-        _virtualPath = virtualPath;
-
-//todo when setting Host/Port has been resolved then we can use this otherwise those methods won't work with the following line.
-//        _connectionDetails = new AMQConnectionURL(
-//                ConnectionURL.AMQ_PROTOCOL + "://" +
-//                        _defaultUsername + ":" + _defaultPassword + "@" +
-//                        virtualPath + "?brokerlist='tcp://" + host + ":" + port + "'");
-    }
-
-    /**
-     * @return The _defaultPassword.
-     */
-    public final String getDefaultPassword(String password)
-    {
-        if (_connectionDetails != null)
-        {
-            return _connectionDetails.getPassword();
-        }
-        else
-        {
-            return _defaultPassword;
-        }
-    }
-
-    /**
-     * @param password The _defaultPassword to set.
-     */
-    public final void setDefaultPassword(String password)
-    {
-        if (_connectionDetails != null)
+        if (url == null)
         {
-            _connectionDetails.setPassword(password);
+            throw new IllegalArgumentException("url cannot be null");
         }
-        _defaultPassword = password;
-    }
-
-    /**
-     * Getter for SSLConfiguration
-     *
-     * @return SSLConfiguration if set, otherwise null
-     */
-    public final SSLConfiguration getSSLConfiguration()
-    {
-        return _sslConfig;
-    }
-
-    /**
-     * Setter for SSLConfiguration
-     *
-     * @param sslConfig config to store
-     */
-    public final void setSSLConfiguration(SSLConfiguration sslConfig)
-    {
-        _sslConfig = sslConfig;
-    }
 
-    /**
-     * @return The _defaultPassword.
-     */
-    public final String getDefaultUsername(String password)
-    {
-        if (_connectionDetails != null)
-        {
-            return _connectionDetails.getUsername();
-        }
-        else
-        {
-            return _defaultUsername;
-        }
+        _connectionDetails = new AMQConnectionURL(url);
     }
 
-    /**
-     * @param username The _defaultUsername to set.
-     */
-    public final void setDefaultUsername(String username)
+    public AMQConnectionFactory(ConnectionURL url)
     {
-        if (_connectionDetails != null)
+        if (url == null)
         {
-            _connectionDetails.setUsername(username);
+            throw new IllegalArgumentException("url cannot be null");
         }
-        _defaultUsername = username;
-    }
-
-    /**
-     * @return The _host .
-     */
-    public final String getHost()
-    {
-        //todo this doesn't make sense in a multi broker URL as we have no current as that is done by AMQConnection
-        return _host;
-    }
 
-    /**
-     * @param host The _host to set.
-     */
-    public final void setHost(String host)
-    {
-        //todo if _connectionDetails is set then run _connectionDetails.addBrokerDetails()
-        // Should perhaps have this method changed to setBroker(host,port)
-        _host = host;
-    }
-
-    /**
-     * @return _port The _port to set.
-     */
-    public final int getPort()
-    {
-        //todo see getHost
-        return _port;
-    }
-
-    /**
-     * @param port The port to set.
-     */
-    public final void setPort(int port)
-    {
-        //todo see setHost
-        _port = port;
+        _connectionDetails = url;
     }
 
     /**
-     * @return he _virtualPath.
+     * @return the virtualPath of the connection details.
      */
     public final String getVirtualPath()
     {
-        if (_connectionDetails != null)
-        {
-            return _connectionDetails.getVirtualHost();
-        }
-        else
-        {
-            return _virtualPath;
-        }
-    }
-
-    /**
-     * @param path The _virtualPath to set.
-     */
-    public final void setVirtualPath(String path)
-    {
-        if (_connectionDetails != null)
-        {
-            _connectionDetails.setVirtualHost(path);
-        }
-
-        _virtualPath = path;
+        return _connectionDetails.getVirtualHost();
     }
 
     public static String getUniqueClientID()
@@ -267,19 +91,11 @@ public class AMQConnectionFactory implem
     {
         try
         {
-            if (_connectionDetails != null)
-            {
-                if (_connectionDetails.getClientName() == null || _connectionDetails.getClientName().equals(""))
-                {
-                    _connectionDetails.setClientName(getUniqueClientID());
-                }
-                return new AMQConnection(_connectionDetails, _sslConfig);
-            }
-            else
+            if (_connectionDetails.getClientName() == null || _connectionDetails.getClientName().equals(""))
             {
-                return new AMQConnection(_host, _port, _defaultUsername, _defaultPassword, getUniqueClientID(),
-                                         _virtualPath);
+                _connectionDetails.setClientName(getUniqueClientID());
             }
+            return new AMQConnection(_connectionDetails);
         }
         catch (Exception e)
         {
@@ -288,8 +104,6 @@ public class AMQConnectionFactory implem
             jmse.initCause(e);
             throw jmse;
         }
-
-
     }
 
     public Connection createConnection(String userName, String password) throws JMSException
@@ -301,25 +115,18 @@ public class AMQConnectionFactory implem
     {
         try
         {
-            if (_connectionDetails != null)
+            _connectionDetails.setUsername(userName);
+            _connectionDetails.setPassword(password);
+            
+            if (id != null && !id.equals(""))
             {
-                _connectionDetails.setUsername(userName);
-                _connectionDetails.setPassword(password);
-                
-                if (id != null && !id.equals(""))
-                {
-                    _connectionDetails.setClientName(id);
-                } 
-                else if (_connectionDetails.getClientName() == null || _connectionDetails.getClientName().equals(""))
-                {
-                    _connectionDetails.setClientName(getUniqueClientID());
-                }
-                return new AMQConnection(_connectionDetails, _sslConfig);
-            }
-            else
+                _connectionDetails.setClientName(id);
+            } 
+            else if (_connectionDetails.getClientName() == null || _connectionDetails.getClientName().equals(""))
             {
-                return new AMQConnection(_host, _port, userName, password, (id != null ? id : getUniqueClientID()), _virtualPath);
+                _connectionDetails.setClientName(getUniqueClientID());
             }
+            return new AMQConnection(_connectionDetails);
         }
         catch (Exception e)
         {
@@ -361,12 +168,6 @@ public class AMQConnectionFactory implem
         return _connectionDetails.toString();
     }
 
-
-    public final void setConnectionURLString(String url) throws URLSyntaxException
-    {
-        _connectionDetails = new AMQConnectionURL(url);
-    }
-
     /**
      * JNDI interface to create objects from References.
      *
@@ -457,7 +258,7 @@ public class AMQConnectionFactory implem
     {
         try
         {
-            return new XAConnectionImpl(_connectionDetails, _sslConfig);
+            return new XAConnectionImpl(_connectionDetails);
         }
         catch (Exception e)
         {



---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:commits-subscribe@qpid.apache.org