[hornetq-commits] JBoss hornetq SVN: r8721 - in trunk: examples/common/config and 171 other directories.

do-not-reply at jboss.org do-not-reply at jboss.org
Tue Jan 5 14:49:41 EST 2010


Author: timfox
Date: 2010-01-05 14:49:35 -0500 (Tue, 05 Jan 2010)
New Revision: 8721

Added:
   trunk/src/main/org/hornetq/api/core/management/ManagementHelper.java
   trunk/src/main/org/hornetq/core/config/Configuration.java
   trunk/src/main/org/hornetq/core/config/impl/ConfigurationImpl.java
   trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java
   trunk/src/main/org/hornetq/core/server/HornetQServers.java
   trunk/src/main/org/hornetq/core/server/cluster/BridgeConfiguration.java
   trunk/src/main/org/hornetq/core/server/cluster/BroadcastGroupConfiguration.java
   trunk/src/main/org/hornetq/core/server/cluster/ClusterConnectionConfiguration.java
   trunk/src/main/org/hornetq/core/server/cluster/DiscoveryGroupConfiguration.java
   trunk/src/main/org/hornetq/core/server/cluster/DivertConfiguration.java
   trunk/src/main/org/hornetq/core/server/cluster/QueueConfiguration.java
   trunk/src/main/org/hornetq/jms/bridge/ConnectionFactoryFactory.java
   trunk/src/main/org/hornetq/jms/bridge/DestinationFactory.java
   trunk/src/main/org/hornetq/jms/bridge/JMSBridge.java
   trunk/src/main/org/hornetq/jms/bridge/JMSBridgeControl.java
   trunk/src/main/org/hornetq/jms/bridge/QualityOfServiceMode.java
   trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java
   trunk/src/main/org/hornetq/jms/bridge/impl/JNDIConnectionFactoryFactory.java
   trunk/src/main/org/hornetq/jms/bridge/impl/JNDIDestinationFactory.java
   trunk/src/main/org/hornetq/jms/bridge/impl/JNDIFactorySupport.java
   trunk/src/main/org/hornetq/jms/server/JMSServerManager.java
   trunk/src/main/org/hornetq/jms/server/config/ConnectionFactoryConfiguration.java
   trunk/src/main/org/hornetq/jms/server/config/JMSConfiguration.java
   trunk/src/main/org/hornetq/jms/server/config/QueueConfiguration.java
   trunk/src/main/org/hornetq/jms/server/config/TopicConfiguration.java
   trunk/src/main/org/hornetq/jms/server/config/impl/ConnectionFactoryConfigurationImpl.java
   trunk/src/main/org/hornetq/jms/server/config/impl/JMSConfigurationImpl.java
   trunk/src/main/org/hornetq/jms/server/config/impl/QueueConfigurationImpl.java
   trunk/src/main/org/hornetq/jms/server/config/impl/TopicConfigurationImpl.java
   trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java
Removed:
   trunk/src/main/org/hornetq/api/core/config/Configuration.java
   trunk/src/main/org/hornetq/api/core/config/ConfigurationImpl.java
   trunk/src/main/org/hornetq/api/core/config/FileConfiguration.java
   trunk/src/main/org/hornetq/api/core/config/cluster/
   trunk/src/main/org/hornetq/api/core/management/client/
   trunk/src/main/org/hornetq/api/core/server/
   trunk/src/main/org/hornetq/api/jms/bridge/ConnectionFactoryFactory.java
   trunk/src/main/org/hornetq/api/jms/bridge/DestinationFactory.java
   trunk/src/main/org/hornetq/api/jms/bridge/JMSBridge.java
   trunk/src/main/org/hornetq/api/jms/bridge/JMSBridgeControl.java
   trunk/src/main/org/hornetq/api/jms/bridge/JMSBridgeImpl.java
   trunk/src/main/org/hornetq/api/jms/bridge/JNDIConnectionFactoryFactory.java
   trunk/src/main/org/hornetq/api/jms/bridge/JNDIDestinationFactory.java
   trunk/src/main/org/hornetq/api/jms/bridge/JNDIFactorySupport.java
   trunk/src/main/org/hornetq/api/jms/bridge/QualityOfServiceMode.java
   trunk/src/main/org/hornetq/api/jms/config/
   trunk/src/main/org/hornetq/api/jms/server/
Modified:
   trunk/docs/user-manual/en/embedding-hornetq.xml
   trunk/docs/user-manual/en/jms-bridge.xml
   trunk/docs/user-manual/en/management.xml
   trunk/docs/user-manual/en/using-server.xml
   trunk/examples/common/config/hornetq-example-beans.xml
   trunk/examples/core/embedded-remote/src/org/hornetq/core/example/EmbeddedServer.java
   trunk/examples/core/embedded/src/org/hornetq/core/example/EmbeddedExample.java
   trunk/examples/core/microcontainer/server0/hornetq-beans.xml
   trunk/examples/core/perf/server0/hornetq-beans.xml
   trunk/examples/jms/applet/server0/hornetq-beans.xml
   trunk/examples/jms/application-layer-failover/server0/hornetq-beans.xml
   trunk/examples/jms/application-layer-failover/server1/hornetq-beans.xml
   trunk/examples/jms/bridge/server0/hornetq-beans.xml
   trunk/examples/jms/bridge/server1/hornetq-beans.xml
   trunk/examples/jms/browser/server0/hornetq-beans.xml
   trunk/examples/jms/client-kickoff/server0/hornetq-beans.xml
   trunk/examples/jms/client-side-load-balancing/server0/hornetq-beans.xml
   trunk/examples/jms/client-side-load-balancing/server1/hornetq-beans.xml
   trunk/examples/jms/client-side-load-balancing/server2/hornetq-beans.xml
   trunk/examples/jms/clustered-durable-subscription/server0/hornetq-beans.xml
   trunk/examples/jms/clustered-durable-subscription/server1/hornetq-beans.xml
   trunk/examples/jms/clustered-grouping/server0/hornetq-beans.xml
   trunk/examples/jms/clustered-grouping/server1/hornetq-beans.xml
   trunk/examples/jms/clustered-grouping/server2/hornetq-beans.xml
   trunk/examples/jms/clustered-queue/server0/hornetq-beans.xml
   trunk/examples/jms/clustered-queue/server1/hornetq-beans.xml
   trunk/examples/jms/clustered-topic/server0/hornetq-beans.xml
   trunk/examples/jms/clustered-topic/server1/hornetq-beans.xml
   trunk/examples/jms/consumer-rate-limit/server0/hornetq-beans.xml
   trunk/examples/jms/dead-letter/server0/hornetq-beans.xml
   trunk/examples/jms/delayed-redelivery/server0/hornetq-beans.xml
   trunk/examples/jms/divert/server0/hornetq-beans.xml
   trunk/examples/jms/divert/server1/hornetq-beans.xml
   trunk/examples/jms/durable-subscription/server0/hornetq-beans.xml
   trunk/examples/jms/embedded/src/org/hornetq/jms/example/EmbeddedExample.java
   trunk/examples/jms/expiry/server0/hornetq-beans.xml
   trunk/examples/jms/http-transport/server0/hornetq-beans.xml
   trunk/examples/jms/instantiate-connection-factory/server0/hornetq-beans.xml
   trunk/examples/jms/interceptor/server0/hornetq-beans.xml
   trunk/examples/jms/jaas/server0/hornetq-beans.xml
   trunk/examples/jms/jms-bridge/server0/hornetq-beans.xml
   trunk/examples/jms/jms-bridge/server1/hornetq-beans.xml
   trunk/examples/jms/jmx/server0/hornetq-beans.xml
   trunk/examples/jms/large-message/server0/hornetq-beans.xml
   trunk/examples/jms/last-value-queue/server0/hornetq-beans.xml
   trunk/examples/jms/management-notifications/server0/hornetq-beans.xml
   trunk/examples/jms/management/server0/hornetq-beans.xml
   trunk/examples/jms/message-counters/server0/hornetq-beans.xml
   trunk/examples/jms/message-group/server0/hornetq-beans.xml
   trunk/examples/jms/message-group2/server0/hornetq-beans.xml
   trunk/examples/jms/message-priority/server0/hornetq-beans.xml
   trunk/examples/jms/no-consumer-buffering/server0/hornetq-beans.xml
   trunk/examples/jms/non-transaction-failover/server0/hornetq-beans.xml
   trunk/examples/jms/non-transaction-failover/server1/hornetq-beans.xml
   trunk/examples/jms/paging/server0/hornetq-beans.xml
   trunk/examples/jms/perf/server0/hornetq-beans.xml
   trunk/examples/jms/pre-acknowledge/server0/hornetq-beans.xml
   trunk/examples/jms/producer-rate-limit/server0/hornetq-beans.xml
   trunk/examples/jms/queue-message-redistribution/server0/hornetq-beans.xml
   trunk/examples/jms/queue-message-redistribution/server1/hornetq-beans.xml
   trunk/examples/jms/queue-requestor/server0/hornetq-beans.xml
   trunk/examples/jms/queue-selector/server0/hornetq-beans.xml
   trunk/examples/jms/queue/server0/hornetq-beans.xml
   trunk/examples/jms/reattach-node/server0/hornetq-beans.xml
   trunk/examples/jms/request-reply/server0/hornetq-beans.xml
   trunk/examples/jms/scheduled-message/server0/hornetq-beans.xml
   trunk/examples/jms/security/server0/hornetq-beans.xml
   trunk/examples/jms/send-acknowledgements/server0/hornetq-beans.xml
   trunk/examples/jms/ssl-enabled/server0/hornetq-beans.xml
   trunk/examples/jms/static-selector-jms/server0/hornetq-beans.xml
   trunk/examples/jms/static-selector/server0/hornetq-beans.xml
   trunk/examples/jms/symmetric-cluster/server0/hornetq-beans.xml
   trunk/examples/jms/symmetric-cluster/server1/hornetq-beans.xml
   trunk/examples/jms/symmetric-cluster/server2/hornetq-beans.xml
   trunk/examples/jms/symmetric-cluster/server3/hornetq-beans.xml
   trunk/examples/jms/symmetric-cluster/server4/hornetq-beans.xml
   trunk/examples/jms/symmetric-cluster/server5/hornetq-beans.xml
   trunk/examples/jms/temp-queue/server0/hornetq-beans.xml
   trunk/examples/jms/topic-hierarchies/server0/hornetq-beans.xml
   trunk/examples/jms/topic-selector-example1/server0/hornetq-beans.xml
   trunk/examples/jms/topic-selector-example2/server0/hornetq-beans.xml
   trunk/examples/jms/topic/server0/hornetq-beans.xml
   trunk/examples/jms/transaction-failover/server0/hornetq-beans.xml
   trunk/examples/jms/transaction-failover/server1/hornetq-beans.xml
   trunk/examples/jms/transactional/server0/hornetq-beans.xml
   trunk/examples/jms/xa-heuristic/server0/hornetq-beans.xml
   trunk/examples/jms/xa-receive/server0/hornetq-beans.xml
   trunk/examples/jms/xa-send/server0/hornetq-beans.xml
   trunk/examples/jms/xa-with-jta/server0/hornetq-beans.xml
   trunk/examples/soak/normal/server0/hornetq-beans.xml
   trunk/src/config/jboss-as/clustered/hornetq-jboss-beans.xml
   trunk/src/config/jboss-as/non-clustered/hornetq-jboss-beans.xml
   trunk/src/config/stand-alone/clustered/hornetq-beans.xml
   trunk/src/config/stand-alone/non-clustered/hornetq-beans.xml
   trunk/src/config/trunk/clustered/hornetq-beans.xml
   trunk/src/config/trunk/non-clustered/hornetq-beans.xml
   trunk/src/main/org/hornetq/api/core/management/HornetQServerControl.java
   trunk/src/main/org/hornetq/api/core/management/ObjectNameBuilder.java
   trunk/src/main/org/hornetq/api/jms/management/JMSManagementHelper.java
   trunk/src/main/org/hornetq/core/deployers/impl/QueueDeployer.java
   trunk/src/main/org/hornetq/core/journal/impl/AIOSequentialFileFactory.java
   trunk/src/main/org/hornetq/core/journal/impl/NIOSequentialFileFactory.java
   trunk/src/main/org/hornetq/core/management/impl/BridgeControlImpl.java
   trunk/src/main/org/hornetq/core/management/impl/BroadcastGroupControlImpl.java
   trunk/src/main/org/hornetq/core/management/impl/ClusterConnectionControlImpl.java
   trunk/src/main/org/hornetq/core/management/impl/DiscoveryGroupControlImpl.java
   trunk/src/main/org/hornetq/core/management/impl/DivertControlImpl.java
   trunk/src/main/org/hornetq/core/management/impl/HornetQServerControlImpl.java
   trunk/src/main/org/hornetq/core/messagecounter/impl/MessageCounterManagerImpl.java
   trunk/src/main/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java
   trunk/src/main/org/hornetq/core/postoffice/impl/PostOfficeImpl.java
   trunk/src/main/org/hornetq/core/remoting/server/impl/RemotingServiceImpl.java
   trunk/src/main/org/hornetq/core/replication/impl/ReplicationEndpointImpl.java
   trunk/src/main/org/hornetq/core/security/impl/SecurityStoreImpl.java
   trunk/src/main/org/hornetq/core/server/HornetQServer.java
   trunk/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java
   trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterConnectionImpl.java
   trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java
   trunk/src/main/org/hornetq/core/server/group/impl/LocalGroupingHandler.java
   trunk/src/main/org/hornetq/core/server/group/impl/RemoteGroupingHandler.java
   trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
   trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java
   trunk/src/main/org/hornetq/core/server/impl/ServerSessionImpl.java
   trunk/src/main/org/hornetq/core/server/management/ManagementService.java
   trunk/src/main/org/hornetq/core/server/management/NotificationService.java
   trunk/src/main/org/hornetq/core/server/management/impl/ManagementServiceImpl.java
   trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeControlImpl.java
   trunk/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java
   trunk/src/main/org/hornetq/jms/server/impl/JMSServerDeployer.java
   trunk/src/main/org/hornetq/jms/server/management/JMSManagementService.java
   trunk/src/main/org/hornetq/jms/server/management/impl/JMSManagementServiceImpl.java
   trunk/src/main/org/hornetq/service/HornetQFileConfigurationService.java
   trunk/src/main/org/hornetq/service/HornetQFileConfigurationServiceMBean.java
   trunk/src/main/org/hornetq/service/HornetQJMSStarterService.java
   trunk/src/main/org/hornetq/service/HornetQStarterService.java
   trunk/tests/jms-tests/config/hornetq-beans.xml
   trunk/tests/jms-tests/config/test-beans.xml
   trunk/tests/jms-tests/src/org/hornetq/jms/tests/HornetQServerTestCase.java
   trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/ConfigurationHelper.java
   trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/container/LocalTestServer.java
   trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/container/Server.java
   trunk/tests/joram-tests/src/org/hornetq/jms/HornetQAdmin.java
   trunk/tests/joram-tests/src/org/hornetq/jms/SpawnedJMSServer.java
   trunk/tests/src/org/hornetq/tests/integration/DuplicateDetectionTest.java
   trunk/tests/src/org/hornetq/tests/integration/String64KLimitTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/ConsumerCloseTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/CoreClientTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/DeadLetterAddressTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/ExpiryAddressTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/FailureDeadlockTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/HeuristicXATest.java
   trunk/tests/src/org/hornetq/tests/integration/client/HornetQCrashTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/JournalCrashTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/LargeMessageTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/MessageGroupingConnectionFactoryTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/MessageGroupingTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/MessagePriorityTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/NewDeadLetterAddressTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/PagingTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/ProducerCloseTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/ReceiveImmediateTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/RedeliveryConsumerTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/RequestorTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/SessionCloseTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/SessionClosedOnRemotingConnectionFailureTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/SessionFactoryTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/TemporaryQueueTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/TransactionDurabilityTest.java
   trunk/tests/src/org/hornetq/tests/integration/client/WildCardRoutingTest.java
   trunk/tests/src/org/hornetq/tests/integration/clientcrash/ClientTestBase.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeReconnectTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeStartTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTestBase.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusteredGroupingTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/failover/FailoverTestBase.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/failover/GroupingFailoverReplicationTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/failover/GroupingFailoverSharedServerTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/failover/NettyReplicatedFailoverTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/failover/PagingFailoverTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedAsynchronousFailoverTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedNettyAsynchronousFailoverTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedPagingFailoverTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/MultiThreadRandomReattachTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/NettyMultiThreadRandomReattachTest.java
   trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/RandomReattachTest.java
   trunk/tests/src/org/hornetq/tests/integration/divert/DivertTest.java
   trunk/tests/src/org/hornetq/tests/integration/divert/PersistentDivertTest.java
   trunk/tests/src/org/hornetq/tests/integration/http/CoreClientOverHttpTest.java
   trunk/tests/src/org/hornetq/tests/integration/http/NettyHttpTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/FloodServerTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/HornetQConnectionFactoryTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/ManualReconnectionToSingleServerTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/bridge/BridgeTestBase.java
   trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeReconnectionTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSReconnectTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/connection/ExceptionListenerTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/divert/DivertAndACKClientTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerStartStopTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/config/JMSConfigurationTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControl2Test.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlUsingJMSTest.java
   trunk/tests/src/org/hornetq/tests/integration/journal/AIOJournalCompactTest.java
   trunk/tests/src/org/hornetq/tests/integration/journal/AIOJournalImplTest.java
   trunk/tests/src/org/hornetq/tests/integration/journal/ValidateTransactionHealthTest.java
   trunk/tests/src/org/hornetq/tests/integration/logging/LogDelegateTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/AcceptorControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/AddressControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/AddressControlUsingCoreTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlUsingCoreTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/BroadcastGroupControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControl2Test.java
   trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/CoreMessagingProxy.java
   trunk/tests/src/org/hornetq/tests/integration/management/DiscoveryGroupControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/DivertControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/HornetQServerControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/HornetQServerControlUsingCoreTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/JMXDomainTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/ManagementHelperTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/ManagementServiceImplTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/NotificationTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/QueueControlTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementTestBase.java
   trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithConfiguredAdminUserTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithDefaultConfigurationTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithModifiedConfigurationTest.java
   trunk/tests/src/org/hornetq/tests/integration/management/SecurityNotificationTest.java
   trunk/tests/src/org/hornetq/tests/integration/paging/PageCrashTest.java
   trunk/tests/src/org/hornetq/tests/integration/persistence/RestartSMTest.java
   trunk/tests/src/org/hornetq/tests/integration/remoting/NetworkAddressTestBase.java
   trunk/tests/src/org/hornetq/tests/integration/remoting/PingTest.java
   trunk/tests/src/org/hornetq/tests/integration/remoting/SynchronousCloseTest.java
   trunk/tests/src/org/hornetq/tests/integration/replication/ReplicationTest.java
   trunk/tests/src/org/hornetq/tests/integration/scheduling/DelayedMessageTest.java
   trunk/tests/src/org/hornetq/tests/integration/scheduling/ScheduledMessageTest.java
   trunk/tests/src/org/hornetq/tests/integration/security/NettySecurityClientTest.java
   trunk/tests/src/org/hornetq/tests/integration/security/SecurityTest.java
   trunk/tests/src/org/hornetq/tests/integration/server/ExpiryRunnerTest.java
   trunk/tests/src/org/hornetq/tests/integration/server/LVQRecoveryTest.java
   trunk/tests/src/org/hornetq/tests/integration/server/LVQTest.java
   trunk/tests/src/org/hornetq/tests/integration/server/PredefinedQueueTest.java
   trunk/tests/src/org/hornetq/tests/integration/ssl/CoreClientOverSSLTest.java
   trunk/tests/src/org/hornetq/tests/integration/xa/BasicXaRecoveryTest.java
   trunk/tests/src/org/hornetq/tests/integration/xa/BasicXaTest.java
   trunk/tests/src/org/hornetq/tests/integration/xa/XaTimeoutTest.java
   trunk/tests/src/org/hornetq/tests/opt/SendTest.java
   trunk/tests/src/org/hornetq/tests/performance/paging/MeasurePagingMultiThreadTest.java
   trunk/tests/src/org/hornetq/tests/stress/journal/CompactingStressTest.java
   trunk/tests/src/org/hornetq/tests/stress/journal/LargeJournalStressTest.java
   trunk/tests/src/org/hornetq/tests/stress/journal/MultiThreadConsumerStressTest.java
   trunk/tests/src/org/hornetq/tests/stress/journal/NIOMultiThreadCompactorStressTest.java
   trunk/tests/src/org/hornetq/tests/stress/paging/PageStressTest.java
   trunk/tests/src/org/hornetq/tests/stress/remote/PingStressTest.java
   trunk/tests/src/org/hornetq/tests/timing/jms/bridge/impl/JMSBridgeImplTest.java
   trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationImplTest.java
   trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationValidationTest.java
   trunk/tests/src/org/hornetq/tests/unit/core/config/impl/DefaultsFileConfigurationTest.java
   trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java
   trunk/tests/src/org/hornetq/tests/unit/core/deployers/impl/QueueDeployerTest.java
   trunk/tests/src/org/hornetq/tests/unit/core/postoffice/impl/DuplicateDetectionUnitTest.java
   trunk/tests/src/org/hornetq/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java
   trunk/tests/src/org/hornetq/tests/unit/core/remoting/impl/netty/NettyAcceptorTest.java
   trunk/tests/src/org/hornetq/tests/unit/jms/misc/ManifestTest.java
   trunk/tests/src/org/hornetq/tests/util/JMSTestBase.java
   trunk/tests/src/org/hornetq/tests/util/ListJournal.java
   trunk/tests/src/org/hornetq/tests/util/ServiceTestBase.java
Log:
removed most of the server stuff from the api

Modified: trunk/docs/user-manual/en/embedding-hornetq.xml
===================================================================
--- trunk/docs/user-manual/en/embedding-hornetq.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/docs/user-manual/en/embedding-hornetq.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -36,8 +36,8 @@
         <para>Create the configuration object - this contains configuration information for a
             HornetQ. If you want to configure it from a file on the classpath, use <literal
                 >FileConfigurationImpl</literal></para>
-        <programlisting>import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.FileConfiguration;
+        <programlisting>import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.FileConfiguration;
 
 ...
 
@@ -51,8 +51,8 @@
         <para>The acceptors are configured through <literal>ConfigurationImpl</literal>. Just add
             the <literal>NettyAcceptorFactory</literal> on the transports the same way you would
             through the main configuration file.</para>
-        <programlisting>import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
+        <programlisting>import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 
 ...
 
@@ -99,7 +99,7 @@
    
    &lt;!-- The core configuration -->
    &lt;bean name="Configuration" 
-         class="org.hornetq.api.core.config.FileConfiguration">
+         class="org.hornetq.core.config.impl.FileConfiguration">
    &lt;/bean>
 
    	&lt;!-- The core server -->

Modified: trunk/docs/user-manual/en/jms-bridge.xml
===================================================================
--- trunk/docs/user-manual/en/jms-bridge.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/docs/user-manual/en/jms-bridge.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -347,7 +347,7 @@
                 HornetQ that looks up the connection factory using JNDI. For other Application
                 Servers or JMS providers a new implementation may have to be provided. This can
                 easily be done by implementing the interface <literal
-                    >org.hornetq.api.jms.bridge.ConnectionFactoryFactory</literal>.</para>
+                    >org.hornetq.jms.bridge.ConnectionFactoryFactory</literal>.</para>
         </section>
         <section>
             <title>Source and Target Destination Factories</title>
@@ -355,7 +355,7 @@
             <para>In the configuration example above, we have used the default provided by HornetQ
                 that looks up the destination using JNDI.</para>
             <para>A new implementation can be provided by implementing <literal
-                    >org.hornetq.api.jms.bridge.DestinationFactory</literal> interface.</para>
+                    >org.hornetq.jms.bridge.DestinationFactory</literal> interface.</para>
         </section>
         <section id="quality-of-service">
             <title>Quality Of Service</title>

Modified: trunk/docs/user-manual/en/management.xml
===================================================================
--- trunk/docs/user-manual/en/management.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/docs/user-manual/en/management.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -588,7 +588,7 @@
          retrieve the result of the operation (if any) stored in the reply's body. For portability,
          results are returned as a <ulink url="http://json.org">JSON</ulink> String rather than Java
          Serialization (the <literal
-            >org.hornetq.api.core.management.client.ManagementHelper</literal> can be used to
+            >org.hornetq.api.core.management.ManagementHelper</literal> can be used to
          convert the JSON string to Java objects).</para>
       <para>These steps can be simplified to make it easier to invoke management operations using
          Core messages:</para>
@@ -602,7 +602,7 @@
          </listitem>
          <listitem>
             <para>Use the helper class <literal
-                  >org.hornetq.api.core.management.client.ManagementHelper</literal> to fill the
+                  >org.hornetq.api.core.management.ManagementHelper</literal> to fill the
                message with the management properties</para>
          </listitem>
          <listitem>
@@ -610,7 +610,7 @@
          </listitem>
          <listitem>
             <para>Use the helper class <literal
-                  >org.hornetq.api.core.management.client.ManagementHelper</literal> to retrieve
+                  >org.hornetq.api.core.management.ManagementHelper</literal> to retrieve
                the operation result from the management reply</para>
          </listitem>
       </orderedlist>

Modified: trunk/docs/user-manual/en/using-server.xml
===================================================================
--- trunk/docs/user-manual/en/using-server.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/docs/user-manual/en/using-server.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -219,7 +219,7 @@
 &lt;/bean&gt; 
 
 &lt;!-- The core configuration --&gt;
-&lt;bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"&gt;
+&lt;bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"&gt;
 &lt;/bean&gt;
 
 &lt;!-- The security manager --&gt;
@@ -248,7 +248,7 @@
 
 &lt;!-- The JMS server --&gt;
 &lt;bean name="JMSServerManager" 
-      class="org.hornetq.api.jms.server.JMSServerManagerImpl"&gt;
+      class="org.hornetq.jms.server.impl.JMSServerManagerImpl"&gt;
    &lt;constructor&gt;         
       &lt;parameter&gt;
          &lt;inject bean="HornetQServer"/&gt;

Modified: trunk/examples/common/config/hornetq-example-beans.xml
===================================================================
--- trunk/examples/common/config/hornetq-example-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/common/config/hornetq-example-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
       </constructor>
    </bean>
    
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!--<bean name="HornetQSecurityManager" class="org.hornetq.core.security.impl.JBossASSecurityManager"/>-->
 
@@ -80,7 +80,7 @@
       </property>
    </bean>
    
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>
          <parameter>
             <inject bean="HornetQServer" property="serverManagement"/>

Modified: trunk/examples/core/embedded/src/org/hornetq/core/example/EmbeddedExample.java
===================================================================
--- trunk/examples/core/embedded/src/org/hornetq/core/example/EmbeddedExample.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/core/embedded/src/org/hornetq/core/example/EmbeddedExample.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,13 +21,13 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 
 /**
  * 

Modified: trunk/examples/core/embedded-remote/src/org/hornetq/core/example/EmbeddedServer.java
===================================================================
--- trunk/examples/core/embedded-remote/src/org/hornetq/core/example/EmbeddedServer.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/core/embedded-remote/src/org/hornetq/core/example/EmbeddedServer.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,11 +15,11 @@
 
 import java.util.HashSet;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 
 /**

Modified: trunk/examples/core/microcontainer/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/core/microcontainer/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/core/microcontainer/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -9,7 +9,7 @@
    </bean>
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">

Modified: trunk/examples/core/perf/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/core/perf/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/core/perf/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -3,7 +3,7 @@
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
       
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>   
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>   
 
    <!-- The core server -->
    <bean name="HornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">

Modified: trunk/examples/jms/applet/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/applet/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/applet/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/application-layer-failover/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/application-layer-failover/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/application-layer-failover/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/application-layer-failover/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/application-layer-failover/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/application-layer-failover/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/bridge/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/bridge/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/bridge/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/bridge/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/bridge/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/bridge/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/browser/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/browser/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/browser/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/client-kickoff/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/client-kickoff/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/client-kickoff/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/client-side-load-balancing/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/client-side-load-balancing/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/client-side-load-balancing/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/client-side-load-balancing/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/client-side-load-balancing/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/client-side-load-balancing/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/client-side-load-balancing/server2/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/client-side-load-balancing/server2/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/client-side-load-balancing/server2/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/clustered-durable-subscription/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/clustered-durable-subscription/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/clustered-durable-subscription/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/clustered-durable-subscription/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/clustered-durable-subscription/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/clustered-durable-subscription/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/clustered-grouping/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/clustered-grouping/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/clustered-grouping/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/clustered-grouping/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/clustered-grouping/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/clustered-grouping/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/clustered-grouping/server2/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/clustered-grouping/server2/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/clustered-grouping/server2/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/clustered-queue/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/clustered-queue/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/clustered-queue/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/clustered-queue/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/clustered-queue/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/clustered-queue/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/clustered-topic/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/clustered-topic/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/clustered-topic/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/clustered-topic/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/clustered-topic/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/clustered-topic/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/consumer-rate-limit/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/consumer-rate-limit/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/consumer-rate-limit/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/dead-letter/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/dead-letter/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/dead-letter/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/delayed-redelivery/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/delayed-redelivery/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/delayed-redelivery/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/divert/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/divert/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/divert/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/divert/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/divert/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/divert/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/durable-subscription/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/durable-subscription/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/durable-subscription/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/embedded/src/org/hornetq/jms/example/EmbeddedExample.java
===================================================================
--- trunk/examples/jms/embedded/src/org/hornetq/jms/example/EmbeddedExample.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/embedded/src/org/hornetq/jms/example/EmbeddedExample.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,21 +25,21 @@
 import javax.naming.Context;
 import javax.naming.InitialContext;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
-import org.hornetq.api.jms.config.ConnectionFactoryConfiguration;
-import org.hornetq.api.jms.config.ConnectionFactoryConfigurationImpl;
-import org.hornetq.api.jms.config.JMSConfiguration;
-import org.hornetq.api.jms.config.JMSConfigurationImpl;
-import org.hornetq.api.jms.config.QueueConfiguration;
-import org.hornetq.api.jms.config.QueueConfigurationImpl;
-import org.hornetq.api.jms.server.JMSServerManager;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
+import org.hornetq.jms.server.JMSServerManager;
+import org.hornetq.jms.server.config.ConnectionFactoryConfiguration;
+import org.hornetq.jms.server.config.JMSConfiguration;
+import org.hornetq.jms.server.config.QueueConfiguration;
+import org.hornetq.jms.server.config.impl.ConnectionFactoryConfigurationImpl;
+import org.hornetq.jms.server.config.impl.JMSConfigurationImpl;
+import org.hornetq.jms.server.config.impl.QueueConfigurationImpl;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.jnp.server.Main;
 import org.jnp.server.NamingBeanImpl;
 

Modified: trunk/examples/jms/expiry/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/expiry/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/expiry/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/http-transport/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/http-transport/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/http-transport/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/instantiate-connection-factory/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/instantiate-connection-factory/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/instantiate-connection-factory/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/interceptor/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/interceptor/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/interceptor/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/jaas/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/jaas/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/jaas/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager using JAAS -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.JAASSecurityManager">
@@ -81,7 +81,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/jms-bridge/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/jms-bridge/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/jms-bridge/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -28,7 +28,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -54,7 +54,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/jms-bridge/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/jms-bridge/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/jms-bridge/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -28,7 +28,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -54,7 +54,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/jmx/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/jmx/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/jmx/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/large-message/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/large-message/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/large-message/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/last-value-queue/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/last-value-queue/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/last-value-queue/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/management/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/management/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/management/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/management-notifications/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/management-notifications/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/management-notifications/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/message-counters/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/message-counters/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/message-counters/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/message-group/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/message-group/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/message-group/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/message-group2/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/message-group2/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/message-group2/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/message-priority/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/message-priority/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/message-priority/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/no-consumer-buffering/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/no-consumer-buffering/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/no-consumer-buffering/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/non-transaction-failover/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/non-transaction-failover/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/non-transaction-failover/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/non-transaction-failover/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/non-transaction-failover/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/non-transaction-failover/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/paging/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/paging/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/paging/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/perf/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/perf/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/perf/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,7 +16,7 @@
    </bean>
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The core server -->
    <bean name="HornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">
@@ -30,7 +30,7 @@
    </bean>
 
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/pre-acknowledge/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/pre-acknowledge/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/pre-acknowledge/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/producer-rate-limit/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/producer-rate-limit/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/producer-rate-limit/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/queue/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/queue/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/queue/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/queue-message-redistribution/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/queue-message-redistribution/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/queue-message-redistribution/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/queue-message-redistribution/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/queue-message-redistribution/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/queue-message-redistribution/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/queue-requestor/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/queue-requestor/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/queue-requestor/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/queue-selector/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/queue-selector/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/queue-selector/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/reattach-node/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/reattach-node/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/reattach-node/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/request-reply/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/request-reply/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/request-reply/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/scheduled-message/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/scheduled-message/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/scheduled-message/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/security/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/security/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/security/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/send-acknowledgements/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/send-acknowledgements/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/send-acknowledgements/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/ssl-enabled/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/ssl-enabled/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/ssl-enabled/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/static-selector/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/static-selector/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/static-selector/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/static-selector-jms/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/static-selector-jms/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/static-selector-jms/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/symmetric-cluster/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/symmetric-cluster/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/symmetric-cluster/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/symmetric-cluster/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/symmetric-cluster/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/symmetric-cluster/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/symmetric-cluster/server2/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/symmetric-cluster/server2/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/symmetric-cluster/server2/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/symmetric-cluster/server3/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/symmetric-cluster/server3/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/symmetric-cluster/server3/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/symmetric-cluster/server4/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/symmetric-cluster/server4/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/symmetric-cluster/server4/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/symmetric-cluster/server5/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/symmetric-cluster/server5/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/symmetric-cluster/server5/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/temp-queue/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/temp-queue/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/temp-queue/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/topic/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/topic/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/topic/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/topic-hierarchies/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/topic-hierarchies/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/topic-hierarchies/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/topic-selector-example1/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/topic-selector-example1/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/topic-selector-example1/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/topic-selector-example2/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/topic-selector-example2/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/topic-selector-example2/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/transaction-failover/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/transaction-failover/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/transaction-failover/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/transaction-failover/server1/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/transaction-failover/server1/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/transaction-failover/server1/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/transactional/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/transactional/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/transactional/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/xa-heuristic/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/xa-heuristic/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/xa-heuristic/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/xa-receive/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/xa-receive/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/xa-receive/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/xa-send/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/xa-send/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/xa-send/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/jms/xa-with-jta/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/jms/xa-with-jta/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/jms/xa-with-jta/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.spi.core.security.HornetQSecurityManagerImpl">
@@ -48,7 +48,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/examples/soak/normal/server0/hornetq-beans.xml
===================================================================
--- trunk/examples/soak/normal/server0/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/examples/soak/normal/server0/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,7 +16,7 @@
    </bean>
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>
 
    <!-- The core server -->
    <bean name="HornetQServer" class="org.hornetq.core.server.impl.HornetQServerImpl">
@@ -30,7 +30,7 @@
    </bean>
 
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/src/config/jboss-as/clustered/hornetq-jboss-beans.xml
===================================================================
--- trunk/src/config/jboss-as/clustered/hornetq-jboss-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/config/jboss-as/clustered/hornetq-jboss-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -9,7 +9,7 @@
    </bean>
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>   
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>   
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.integration.jboss.security.JBossASSecurityManager">
@@ -36,7 +36,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/src/config/jboss-as/non-clustered/hornetq-jboss-beans.xml
===================================================================
--- trunk/src/config/jboss-as/non-clustered/hornetq-jboss-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/config/jboss-as/non-clustered/hornetq-jboss-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -9,7 +9,7 @@
    </bean>
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration"/>   
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration"/>   
 
 	<!-- The security manager -->
    <bean name="HornetQSecurityManager" class="org.hornetq.integration.jboss.security.JBossASSecurityManager">
@@ -36,7 +36,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/src/config/stand-alone/clustered/hornetq-beans.xml
===================================================================
--- trunk/src/config/stand-alone/clustered/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/config/stand-alone/clustered/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration">
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">
    </bean>
 
     <!-- The security manager -->
@@ -49,7 +49,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/src/config/stand-alone/non-clustered/hornetq-beans.xml
===================================================================
--- trunk/src/config/stand-alone/non-clustered/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/config/stand-alone/non-clustered/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration">
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">
    </bean>
 
 	<!-- The security manager -->
@@ -49,7 +49,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/src/config/trunk/clustered/hornetq-beans.xml
===================================================================
--- trunk/src/config/trunk/clustered/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/config/trunk/clustered/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration">
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">
    </bean>
 
     <!-- The security manager -->
@@ -49,7 +49,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/src/config/trunk/non-clustered/hornetq-beans.xml
===================================================================
--- trunk/src/config/trunk/non-clustered/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/config/trunk/non-clustered/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration">
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">
    </bean>
 
 	<!-- The security manager -->
@@ -49,7 +49,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Deleted: trunk/src/main/org/hornetq/api/core/config/Configuration.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/config/Configuration.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/core/config/Configuration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,805 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.core.config;
-
-import java.io.Serializable;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
-import org.hornetq.api.core.interceptor.Interceptor;
-import org.hornetq.core.server.JournalType;
-import org.hornetq.core.server.group.impl.GroupingHandlerConfiguration;
-import org.hornetq.spi.core.logging.LogDelegateFactory;
-
-/**
- * 
- * A Configuration is used to configure HornetQ servers.
- * 
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- *
- */
-public interface Configuration extends Serializable
-{
-   // General attributes -------------------------------------------------------------------
-
-   /**
-    * Returns whether this server is clustered.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_CLUSTERED}.
-    */
-   boolean isClustered();
-
-   /**
-    * Sets whether this server is clustered or not.
-    */
-   void setClustered(boolean clustered);
-
-   /**
-    * Returns whether delivery count is persisted before messages are delivered to the consumers.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_PERSIST_DELIVERY_COUNT_BEFORE_DELIVERY}.
-    */
-   boolean isPersistDeliveryCountBeforeDelivery();
-
-   /**
-    * Sets whether delivery count is persisted before messages are delivered to consumers.
-    */
-   void setPersistDeliveryCountBeforeDelivery(boolean persistDeliveryCountBeforeDelivery);
-
-   /**
-    * Returns {@code true} if this server is a backup, {@code false} if it is a live server.
-    * <br>
-    * If a backup server has been activated, returns {@code false}.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_BACKUP}.
-    */
-   boolean isBackup();
-
-   /**
-    * Sets whether this server is a backup or not.
-    */
-   void setBackup(boolean backup);
-
-   /**
-    * Returns whether this server shares its data store with a corresponding live or backup server.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_SHARED_STORE}.
-    */
-   boolean isSharedStore();
-
-   /**
-    * Sets whether this server shares its data store with a backup or live server.
-    */
-   void setSharedStore(boolean sharedStore);
-
-   /**
-    * Returns whether this server will use files to configure and deploy its resources.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_FILE_DEPLOYMENT_ENABLED}.
-    */
-   boolean isFileDeploymentEnabled();
-
-   /**
-    * Sets whether this server will use files to configure and deploy its resources.
-    */
-   void setFileDeploymentEnabled(boolean enable);
-
-   /**
-    * Returns whether this server is using persistence and store data.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_PERSISTENCE_ENABLED}.
-    */
-   boolean isPersistenceEnabled();
-
-   /**
-    * Sets whether this server is using persistence and store data.
-    */
-   void setPersistenceEnabled(boolean enable);
-
-   /**
-    * Returns the period (in milliseconds) to scan configuration files used by deployment.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_FILE_DEPLOYER_SCAN_PERIOD}.
-    */
-   long getFileDeployerScanPeriod();
-
-   /**
-    * Sets the period  to scan configuration files used by deployment.
-    */
-   void setFileDeployerScanPeriod(long period);
-
-   /**
-    * Returns the maximum number of threads in the thread pool of this server.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_THREAD_POOL_MAX_SIZE}.
-    */
-   int getThreadPoolMaxSize();
-
-   /**
-    * Sets the maximum number of threads in the thread pool of this server.
-    */
-   void setThreadPoolMaxSize(int maxSize);
-
-   /**
-    * Returns the maximum number of threads in the <em>scheduled</em> thread pool of this server.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE}.
-    */
-   int getScheduledThreadPoolMaxSize();
-
-   /**
-    * Sets the maximum number of threads in the <em>scheduled</em> thread pool of this server.
-    */
-   void setScheduledThreadPoolMaxSize(int maxSize);
-
-   /**
-    * Returns the interval time (in milliseconds) to invalidate security credentials.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_SECURITY_INVALIDATION_INTERVAL}.
-    */
-   long getSecurityInvalidationInterval();
-
-   /**
-    * Sets the interval time (in milliseconds) to invalidate security credentials.
-    */
-   void setSecurityInvalidationInterval(long interval);
-
-   /**
-    * Returns whether security is enabled for this server.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_SECURITY_ENABLED}.
-    */
-   boolean isSecurityEnabled();
-
-   /**
-    * Sets whether security is enabled for this server.
-    */
-   void setSecurityEnabled(boolean enabled);
-
-   /**
-    * Returns whether this server is manageable using JMX or not.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JMX_MANAGEMENT_ENABLED}.
-    */
-   boolean isJMXManagementEnabled();
-
-   /**
-    * Sets whether this server is manageable using JMX or not.
-    */
-   void setJMXManagementEnabled(boolean enabled);
-
-   /**
-    * Returns the domain used by JMX MBeans (provided JMX management is enabled).
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JMX_DOMAIN}.
-    */
-   String getJMXDomain();
-
-   /**
-    * Sets the domain used by JMX MBeans (provided JMX management is enabled).
-    * 
-    * Changing this JMX domain is required if multiple HornetQ servers are run inside
-    * the same JVM and all servers are using the same MBeanServer.
-    */
-   void setJMXDomain(String domain);
-
-   /**
-    * Returns the list of interceptors classes used by this server.
-    */
-   List<String> getInterceptorClassNames();
-
-   /**
-    * Sets the list of interceptors classes used by this server.
-    * <br />
-    * Classes must implement {@link Interceptor}.
-    */
-   void setInterceptorClassNames(List<String> interceptors);
-
-   /**
-    * Returns the connection time to live.
-    * <br>
-    * This value overrides the connection time to live <em>sent by the client</em>.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_CONNECTION_TTL_OVERRIDE}.
-    */
-   long getConnectionTTLOverride();
-
-   /**
-    * Sets the connection time to live.
-    */
-   void setConnectionTTLOverride(long ttl);
-
-   /**
-    * Returns whether code coming from connection is executed asynchronously or not.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_ASYNC_CONNECTION_EXECUTION_ENABLED}.
-    */
-   boolean isAsyncConnectionExecutionEnabled();
-
-   /**
-    * Sets whether code coming from connection is executed asynchronously or not.
-    */
-   void setEnabledAsyncConnectionExecution(boolean enabled);
-
-   /**
-    * Returns the acceptors configured for this server.
-    */
-   Set<TransportConfiguration> getAcceptorConfigurations();
-
-   /**
-    * Sets the acceptors configured for this server.
-    */
-   void setAcceptorConfigurations(Set<TransportConfiguration> infos);
-
-   /**
-    * Returns the connectors configured for this server.
-    */
-   Map<String, TransportConfiguration> getConnectorConfigurations();
-
-   /**
-    * Sets the connectors configured for this server.
-    */
-   void setConnectorConfigurations(Map<String, TransportConfiguration> infos);
-
-   /**
-    * Returns the name of the connector used to connect to the backup.
-    * <br>
-    * If this server has no backup or is itself a backup, the value is {@code null}.
-    */
-   String getBackupConnectorName();
-
-   /**
-    * Sets the name of the connector used to connect to the backup.
-    */
-   void setBackupConnectorName(String name);
-
-   /**
-    * Returns the broadcast groups configured for this server.
-    */
-   List<BroadcastGroupConfiguration> getBroadcastGroupConfigurations();
-
-   /**
-    * Sets the broadcast groups configured for this server.
-    */
-   void setBroadcastGroupConfigurations(List<BroadcastGroupConfiguration> configs);
-
-   /**
-    * Returns the discovery groups configured for this server.
-    */
-   Map<String, DiscoveryGroupConfiguration> getDiscoveryGroupConfigurations();
-
-   /**
-    * Sets the discovery groups configured for this server.
-    */
-   void setDiscoveryGroupConfigurations(Map<String, DiscoveryGroupConfiguration> configs);
-
-   /**
-    * Returns the grouping handler configured for this server.
-    */
-   GroupingHandlerConfiguration getGroupingHandlerConfiguration();
-
-   /**
-    * Sets the grouping handler configured for this server.
-    */
-   void setGroupingHandlerConfiguration(GroupingHandlerConfiguration groupingHandlerConfiguration);
-
-   /**
-    * Returns the bridges configured for this server.
-    */
-   List<BridgeConfiguration> getBridgeConfigurations();
-
-   /**
-    * Sets the bridges configured for this server.
-    */
-   void setBridgeConfigurations(final List<BridgeConfiguration> configs);
-
-   /**
-    * Returns the diverts configured for this server.
-    */
-   List<DivertConfiguration> getDivertConfigurations();
-
-   /**
-    * Sets the diverts configured for this server.
-    */
-   void setDivertConfigurations(final List<DivertConfiguration> configs);
-
-   /**
-    * Returns the cluster connections configured for this server.
-    */
-   List<ClusterConnectionConfiguration> getClusterConfigurations();
-
-   /**
-    * Sets the cluster connections configured for this server.
-    */
-   void setClusterConfigurations(final List<ClusterConnectionConfiguration> configs);
-
-   /**
-    * Returns the queues configured for this server.
-    */
-   List<QueueConfiguration> getQueueConfigurations();
-
-   /**
-    * Sets the queues configured for this server.
-    */
-   void setQueueConfigurations(final List<QueueConfiguration> configs);
-
-   /**
-    * Returns the management address of this server.
-    * <br>
-    * Clients can send management messages to this address to manage this server.
-    * <br>
-    * Default value is "hornetq.management".
-    */
-    SimpleString getManagementAddress();
-
-    /**
-     * Sets the management address of this server.
-     */
-   void setManagementAddress(SimpleString address);
-
-   /**
-    * Returns the management notification address of this server.
-    * <br>
-    * Clients can bind queues to this address to receive management notifications emitted by this server.
-    * <br>
-    * Default value is "hornetq.notifications".
-    */
-   SimpleString getManagementNotificationAddress();
-
-   /**
-    * Sets the management notification address of this server.
-    */
-   void setManagementNotificationAddress(SimpleString address);
-
-   /**
-    * Returns the management cluster user for this server.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_MANAGEMENT_CLUSTER_USER}.
-    */
-   String getManagementClusterUser();
-
-   /**
-    * Sets the management cluster user for this server.
-    */
-   void setManagementClusterUser(String user);
-
-   /**
-    * Returns the management cluster password for this server.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_MANAGEMENT_CLUSTER_PASSWORD}.
-    */
-   String getManagementClusterPassword();
-
-   /**
-    * Sets the management cluster password for this server.
-    */
-   void setManagementClusterPassword(String password);
-
-   /**
-    * Returns the size of the cache for pre-creating message IDs.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_ID_CACHE_SIZE}.
-    */
-   int getIDCacheSize();
-
-   /**
-    * Sets the size of the cache for pre-creating message IDs.
-    */
-   void setIDCacheSize(int idCacheSize);
-
-   /**
-    * Returns whether message ID cache is persisted.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_PERSIST_ID_CACHE}.
-    */
-   boolean isPersistIDCache();
-
-   /**
-    * Sets whether message ID cache is persisted.
-    */
-   void setPersistIDCache(boolean persist);
-
-   /**
-    * Returns the name of the {@link LogDelegateFactory} implementation used by this server
-    * for logging.
-    * <br>
-    * Default value is "org.hornetq.core.logging.impl.JULLogDelegateFactory"
-    */
-   String getLogDelegateFactoryClassName();
-
-   /**
-    * Sets the name of the {@link LogDelegateFactory} implementation used by this server
-    * for logging.
-    */
-   void setLogDelegateFactoryClassName(String className);
-
-   // Journal related attributes ------------------------------------------------------------
-
-   /**
-    * Returns the file system directory used to store bindings.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_BINDINGS_DIRECTORY}.
-    */
-   String getBindingsDirectory();
-
-   /**
-    * Sets the file system directory used to store bindings.
-    */
-   void setBindingsDirectory(String dir);
-
-   /**
-    * Returns the file system directory used to store journal log.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_DIR}.
-    */
-   String getJournalDirectory();
-
-   /**
-    * Sets the file system directory used to store journal log.
-    */
-   void setJournalDirectory(String dir);
-
-   /**
-    * Returns the type of journal used by this server (either {@code NIO} or {@code ASYNCIO}).
-    * <br>
-    * Default value is ASYNCIO.
-    */
-   JournalType getJournalType();
-
-   /**
-    * Sets the type of journal used by this server (either {@code NIO} or {@code ASYNCIO}).
-    */
-   void setJournalType(JournalType type);
-
-   /**
-    * Returns whether the journal is synchronized when receiving transactional data.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_SYNC_TRANSACTIONAL}.
-    */
-   boolean isJournalSyncTransactional();
-
-   /**
-    * Sets whether the journal is synchronized when receiving transactional data.
-    */
-   void setJournalSyncTransactional(boolean sync);
-
-   /**
-    * Returns whether the journal is synchronized when receiving non-transactional data.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_SYNC_NON_TRANSACTIONAL}.
-    */
-   boolean isJournalSyncNonTransactional();
-
-   /**
-    * Sets whether the journal is synchronized when receiving non-transactional data.
-    */
-   void setJournalSyncNonTransactional(boolean sync);
-
-   /**
-    * Returns the size (in bytes) of each journal files.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_FILE_SIZE}.
-    */
-   int getJournalFileSize();
-
-   /**
-    * Sets the size (in bytes) of each journal files.
-    */
-   void setJournalFileSize(int size);
-
-   /**
-    * Returns the minimal number of journal files before compacting.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_COMPACT_MIN_FILES}.
-    */
-   int getJournalCompactMinFiles();
-
-   /**
-    * Sets the minimal number of journal files before compacting.
-    */
-   void setJournalCompactMinFiles(int minFiles);
-
-   /**
-    * Returns the percentage of live data before compacting the journal.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_COMPACT_PERCENTAGE}.
-    */
-   int getJournalCompactPercentage();
-
-   /**
-    * Sets the percentage of live data before compacting the journal.
-    */
-   void setJournalCompactPercentage(int percentage);
-
-   /**
-    * Returns the number of journal files to pre-create.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_MIN_FILES}.
-    */
-   int getJournalMinFiles();
-
-   /**
-    * Sets the number of journal files to pre-create.
-    */
-   void setJournalMinFiles(int files);
-
-   // AIO and NIO need different values for these params
-
-   /**
-    * Returns the maximum number of write requests that can be in the AIO queue at any given time.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_MAX_IO_AIO}.
-    */
-   int getJournalMaxIO_AIO();
-
-   /**
-    * Sets the maximum number of write requests that can be in the AIO queue at any given time.
-    */
-   void setJournalMaxIO_AIO(int journalMaxIO);
-
-   /**
-    * Returns the timeout (in nanoseconds) used to flush buffers in the AIO queue.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_BUFFER_TIMEOUT_AIO}.
-    */
-   int getJournalBufferTimeout_AIO();
-
-   /**
-    * Sets the timeout (in nanoseconds) used to flush buffers in the AIO queue.
-    */
-   void setJournalBufferTimeout_AIO(int journalBufferTimeout);
-
-   /**
-    * Returns the buffer size (in bytes) for AIO.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_BUFFER_SIZE_AIO}.
-    */
-   int getJournalBufferSize_AIO();
-
-   /**
-    * Sets the buffer size (in bytes) for AIO.
-    */
-   void setJournalBufferSize_AIO(int journalBufferSize);
-
-   /**
-    * Returns the maximum number of write requests for NIO journal.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_MAX_IO_NIO}.
-    */
-   int getJournalMaxIO_NIO();
-
-   /**
-    * Sets the maximum number of write requests for NIO journal.
-    */
-   void setJournalMaxIO_NIO(int journalMaxIO);
-
-   /**
-    * Returns the timeout (in nanoseconds) used to flush buffers in the NIO.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_BUFFER_TIMEOUT_NIO}.
-    */
-   int getJournalBufferTimeout_NIO();
-
-   /**
-    * Sets the timeout (in nanoseconds) used to flush buffers in the NIO.
-    */
-   void setJournalBufferTimeout_NIO(int journalBufferTimeout);
-
-   /**
-    * Returns the buffer size (in bytes) for NIO.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_JOURNAL_BUFFER_SIZE_NIO}.
-    */
-   int getJournalBufferSize_NIO();
-
-   /**
-    * Sets the buffer size (in bytes) for NIO.
-    */
-   void setJournalBufferSize_NIO(int journalBufferSize);
-
-   /**
-    * Returns whether the bindings directory is created on this server startup.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_CREATE_BINDINGS_DIR}.
-    */
-   boolean isCreateBindingsDir();
-
-   /**
-    * Sets whether the bindings directory is created on this server startup.
-    */
-   void setCreateBindingsDir(boolean create);
-
-   /**
-    * Returns whether the journal directory is created on this server startup.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_CREATE_JOURNAL_DIR}.
-    */
-   boolean isCreateJournalDir();
-
-   /**
-    * Sets whether the journal directory is created on this server startup.
-    */
-   void setCreateJournalDir(boolean create);
-
-   // Undocumented attributes
-
-   boolean isLogJournalWriteRate();
-
-   void setLogJournalWriteRate(boolean rate);
-
-   int getJournalPerfBlastPages();
-
-   void setJournalPerfBlastPages(int pages);
-
-   long getServerDumpInterval();
-
-   void setServerDumpInterval(long interval);
-
-   int getMemoryWarningThreshold();
-
-   void setMemoryWarningThreshold(int memoryWarningThreshold);
-
-   long getMemoryMeasureInterval();
-
-   void setMemoryMeasureInterval(long memoryMeasureInterval);
-
-   boolean isRunSyncSpeedTest();
-
-   void setRunSyncSpeedTest(boolean run);
-
-   // Paging Properties --------------------------------------------------------------------
-
-   /**
-    * Returns the file system directory used to store paging files.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_PAGING_DIR}.
-    */
-   String getPagingDirectory();
-
-   /**
-    * Sets the file system directory used to store paging files.
-    */
-   void setPagingDirectory(String dir);
-
-   // Large Messages Properties ------------------------------------------------------------
-
-   /**
-    * Returns the file system directory used to store large messages.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_LARGE_MESSAGES_DIR}.
-    */
-   String getLargeMessagesDirectory();
-
-   /**
-    * Sets the file system directory used to store large messages.
-    */
-   void setLargeMessagesDirectory(String directory);
-
-   // Other Properties ---------------------------------------------------------------------
-
-   /**
-    * Returns whether wildcard routing is supported by this server.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_WILDCARD_ROUTING_ENABLED}.
-    */
-   boolean isWildcardRoutingEnabled();
-
-   /**
-    * Sets whether wildcard routing is supported by this server.
-    */
-   void setWildcardRoutingEnabled(boolean enabled);
-
-   /**
-    * Returns the timeout (in milliseconds) after which transactions is removed 
-    * from the resource manager after it was created.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_TRANSACTION_TIMEOUT}.
-    */
-   long getTransactionTimeout();
-
-   /**
-    * Sets the timeout (in milliseconds) after which transactions is removed 
-    * from the resource manager after it was created.
-    */
-   void setTransactionTimeout(long timeout);
-
-   /**
-    * Returns whether message counter is enabled for this server.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_MESSAGE_COUNTER_ENABLED}.
-    */
-   boolean isMessageCounterEnabled();
-
-   /**
-    * Sets whether message counter is enabled for this server.
-    */
-   void setMessageCounterEnabled(boolean enabled);
-
-   /**
-    * Returns the sample period (in milliseconds) to take message counter snapshot.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_MESSAGE_COUNTER_SAMPLE_PERIOD}.
-    */
-   long getMessageCounterSamplePeriod();
-
-   /**
-    * Sets the sample period to take message counter snapshot.
-    * 
-    * @param period value must be greater than 1000ms
-    */
-   void setMessageCounterSamplePeriod(long period);
-
-   /**
-    * Returns the maximum number of days kept in memory for message counter.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_MESSAGE_COUNTER_MAX_DAY_HISTORY}.
-    */
-   int getMessageCounterMaxDayHistory();
-
-   /**
-    * Sets the maximum number of days kept in memory for message counter.
-    * 
-    * @param maxDayHistory value must be greater than 0
-    */
-   void setMessageCounterMaxDayHistory(int maxDayHistory);
-
-   /**
-    * Returns the frequency (in milliseconds)  to scan transactions to detect which transactions 
-    * have timed out.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_TRANSACTION_TIMEOUT_SCAN_PERIOD}.
-    */
-   long getTransactionTimeoutScanPeriod();
-
-   /**
-    * Sets the frequency (in milliseconds)  to scan transactions to detect which transactions 
-    * have timed out.
-    */
-   void setTransactionTimeoutScanPeriod(long period);
-
-   /**
-    * Returns the frequency (in milliseconds)  to scan messages to detect which messages 
-    * have expired.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_MESSAGE_EXPIRY_SCAN_PERIOD}.
-    */
-   long getMessageExpiryScanPeriod();
-
-   /**
-    * Sets the frequency (in milliseconds)  to scan messages to detect which messages 
-    * have expired.
-    */
-   void setMessageExpiryScanPeriod(long messageExpiryScanPeriod);
-
-   /**
-    * Returns the priority of the thread used to scan message expiration.
-    * <br>
-    * Default value is {@value org.hornetq.api.core.config.ConfigurationImpl#DEFAULT_MESSAGE_EXPIRY_THREAD_PRIORITY}.
-    */
-   int getMessageExpiryThreadPriority();
-
-   /**
-    * Sets the priority of the thread used to scan message expiration.
-    */
-   void setMessageExpiryThreadPriority(int messageExpiryThreadPriority);
-
-}

Deleted: trunk/src/main/org/hornetq/api/core/config/ConfigurationImpl.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/config/ConfigurationImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/core/config/ConfigurationImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,1277 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.core.config;
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
-import org.hornetq.core.logging.impl.JULLogDelegateFactory;
-import org.hornetq.core.server.JournalType;
-import org.hornetq.core.server.group.impl.GroupingHandlerConfiguration;
-
-/**
- * @author <a href="mailto:ataylor at redhat.com>Andy Taylor</a>
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- */
-public class ConfigurationImpl implements Configuration
-{
-   // Constants ------------------------------------------------------------------------------
-
-   private static final long serialVersionUID = 4077088945050267843L;
-
-   public static final boolean DEFAULT_CLUSTERED = false;
-
-   public static final boolean DEFAULT_PERSIST_DELIVERY_COUNT_BEFORE_DELIVERY = false;
-
-   public static final boolean DEFAULT_BACKUP = false;
-
-   public static final boolean DEFAULT_SHARED_STORE = false;
-
-   public static final boolean DEFAULT_FILE_DEPLOYMENT_ENABLED = false;
-
-   public static final boolean DEFAULT_PERSISTENCE_ENABLED = true;
-
-   public static final long DEFAULT_FILE_DEPLOYER_SCAN_PERIOD = 5000;
-
-   public static final int DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE = 5;
-
-   public static final int DEFAULT_THREAD_POOL_MAX_SIZE = -1;
-
-   public static final long DEFAULT_SECURITY_INVALIDATION_INTERVAL = 10000;
-
-   public static final boolean DEFAULT_SECURITY_ENABLED = true;
-
-   public static final boolean DEFAULT_JMX_MANAGEMENT_ENABLED = true;
-
-   public static final String DEFAULT_JMX_DOMAIN = "org.hornetq";
-
-   public static final long DEFAULT_CONNECTION_TTL_OVERRIDE = -1;
-
-   public static final boolean DEFAULT_ASYNC_CONNECTION_EXECUTION_ENABLED = false;
-
-   public static final String DEFAULT_BINDINGS_DIRECTORY = "data/bindings";
-
-   public static final boolean DEFAULT_CREATE_BINDINGS_DIR = true;
-
-   public static final String DEFAULT_JOURNAL_DIR = "data/journal";
-
-   public static final String DEFAULT_PAGING_DIR = "data/paging";
-
-   public static final String DEFAULT_LARGE_MESSAGES_DIR = "data/largemessages";
-
-   public static final boolean DEFAULT_CREATE_JOURNAL_DIR = true;
-
-   public static final JournalType DEFAULT_JOURNAL_TYPE = JournalType.ASYNCIO;
-
-   public static final boolean DEFAULT_JOURNAL_SYNC_TRANSACTIONAL = true;
-
-   public static final boolean DEFAULT_JOURNAL_SYNC_NON_TRANSACTIONAL = true;
-
-   public static final int DEFAULT_JOURNAL_FILE_SIZE = 10485760;
-
-   public static final int DEFAULT_JOURNAL_COMPACT_MIN_FILES = 10;
-
-   public static final int DEFAULT_JOURNAL_COMPACT_PERCENTAGE = 30;
-
-   public static final int DEFAULT_JOURNAL_MIN_FILES = 2;
-
-   // AIO and NIO need to have different defaults for some values
-
-   public static final int DEFAULT_JOURNAL_MAX_IO_AIO = 500;
-
-   public static final int DEFAULT_JOURNAL_BUFFER_TIMEOUT_AIO = (int)(1000000000d / 2000);
-
-   public static final int DEFAULT_JOURNAL_BUFFER_SIZE_AIO = 490 * 1024;
-
-   public static final int DEFAULT_JOURNAL_MAX_IO_NIO = 1;
-
-   public static final int DEFAULT_JOURNAL_BUFFER_TIMEOUT_NIO = (int)(1000000000d / 300);
-
-   public static final int DEFAULT_JOURNAL_BUFFER_SIZE_NIO = 490 * 1024;
-
-   public static final boolean DEFAULT_JOURNAL_LOG_WRITE_RATE = false;
-
-   public static final int DEFAULT_JOURNAL_PERF_BLAST_PAGES = -1;
-
-   public static final boolean DEFAULT_RUN_SYNC_SPEED_TEST = false;
-
-   public static final boolean DEFAULT_WILDCARD_ROUTING_ENABLED = true;
-
-   public static final boolean DEFAULT_MESSAGE_COUNTER_ENABLED = false;
-
-   public static final long DEFAULT_MESSAGE_COUNTER_SAMPLE_PERIOD = 10000;
-
-   public static final int DEFAULT_MESSAGE_COUNTER_MAX_DAY_HISTORY = 10;
-
-   public static final long DEFAULT_TRANSACTION_TIMEOUT = 300000; // 5 minutes
-
-   public static final long DEFAULT_TRANSACTION_TIMEOUT_SCAN_PERIOD = 1000;
-
-   public static final SimpleString DEFAULT_MANAGEMENT_ADDRESS = new SimpleString("hornetq.management");
-
-   public static final SimpleString DEFAULT_MANAGEMENT_NOTIFICATION_ADDRESS = new SimpleString("hornetq.notifications");
-
-   public static final String DEFAULT_MANAGEMENT_CLUSTER_USER = "HORNETQ.MANAGEMENT.ADMIN.USER";
-
-   public static final String DEFAULT_MANAGEMENT_CLUSTER_PASSWORD = "CHANGE ME!!";
-
-   public static final long DEFAULT_BROADCAST_PERIOD = 1000;
-
-   public static final long DEFAULT_BROADCAST_REFRESH_TIMEOUT = 10000;
-
-   public static final long DEFAULT_MESSAGE_EXPIRY_SCAN_PERIOD = 30000;
-
-   public static final int DEFAULT_MESSAGE_EXPIRY_THREAD_PRIORITY = 3;
-
-   public static final int DEFAULT_ID_CACHE_SIZE = 2000;
-
-   public static final boolean DEFAULT_PERSIST_ID_CACHE = true;
-
-   public static final boolean DEFAULT_CLUSTER_DUPLICATE_DETECTION = true;
-
-   public static final boolean DEFAULT_CLUSTER_FORWARD_WHEN_NO_CONSUMERS = false;
-
-   public static final int DEFAULT_CLUSTER_MAX_HOPS = 1;
-
-   public static final long DEFAULT_CLUSTER_RETRY_INTERVAL = 500;
-
-   public static final boolean DEFAULT_DIVERT_EXCLUSIVE = false;
-
-   public static final boolean DEFAULT_BRIDGE_DUPLICATE_DETECTION = true;
-
-   public static final int DEFAULT_BRIDGE_RECONNECT_ATTEMPTS = -1;
-
-   public static final long DEFAULT_SERVER_DUMP_INTERVAL = -1;
-
-   public static final int DEFAULT_MEMORY_WARNING_THRESHOLD = 25;
-
-   public static final long DEFAULT_MEMORY_MEASURE_INTERVAL = -1; // in milliseconds
-
-   public static final String DEFAULT_LOG_DELEGATE_FACTORY_CLASS_NAME = JULLogDelegateFactory.class.getCanonicalName();
-
-   // Attributes -----------------------------------------------------------------------------
-
-   protected boolean clustered = ConfigurationImpl.DEFAULT_CLUSTERED;
-
-   protected boolean backup = ConfigurationImpl.DEFAULT_BACKUP;
-
-   protected boolean sharedStore = ConfigurationImpl.DEFAULT_SHARED_STORE;
-
-   protected boolean fileDeploymentEnabled = ConfigurationImpl.DEFAULT_FILE_DEPLOYMENT_ENABLED;
-
-   protected boolean persistenceEnabled = ConfigurationImpl.DEFAULT_PERSISTENCE_ENABLED;
-
-   protected long fileDeploymentScanPeriod = ConfigurationImpl.DEFAULT_FILE_DEPLOYER_SCAN_PERIOD;
-
-   protected boolean persistDeliveryCountBeforeDelivery = ConfigurationImpl.DEFAULT_PERSIST_DELIVERY_COUNT_BEFORE_DELIVERY;
-
-   protected int scheduledThreadPoolMaxSize = ConfigurationImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE;
-
-   protected int threadPoolMaxSize = ConfigurationImpl.DEFAULT_THREAD_POOL_MAX_SIZE;
-
-   protected long securityInvalidationInterval = ConfigurationImpl.DEFAULT_SECURITY_INVALIDATION_INTERVAL;
-
-   protected boolean securityEnabled = ConfigurationImpl.DEFAULT_SECURITY_ENABLED;
-
-   protected boolean jmxManagementEnabled = ConfigurationImpl.DEFAULT_JMX_MANAGEMENT_ENABLED;
-
-   protected String jmxDomain = ConfigurationImpl.DEFAULT_JMX_DOMAIN;
-
-   protected long connectionTTLOverride = ConfigurationImpl.DEFAULT_CONNECTION_TTL_OVERRIDE;
-
-   protected boolean asyncConnectionExecutionEnabled = ConfigurationImpl.DEFAULT_ASYNC_CONNECTION_EXECUTION_ENABLED;
-
-   protected long messageExpiryScanPeriod = ConfigurationImpl.DEFAULT_MESSAGE_EXPIRY_SCAN_PERIOD;
-
-   protected int messageExpiryThreadPriority = ConfigurationImpl.DEFAULT_MESSAGE_EXPIRY_THREAD_PRIORITY;
-
-   protected int idCacheSize = ConfigurationImpl.DEFAULT_ID_CACHE_SIZE;
-
-   protected boolean persistIDCache = ConfigurationImpl.DEFAULT_PERSIST_ID_CACHE;
-
-   protected String logDelegateFactoryClassName = ConfigurationImpl.DEFAULT_LOG_DELEGATE_FACTORY_CLASS_NAME;
-
-   protected List<String> interceptorClassNames = new ArrayList<String>();
-
-   protected Map<String, TransportConfiguration> connectorConfigs = new HashMap<String, TransportConfiguration>();
-
-   protected Set<TransportConfiguration> acceptorConfigs = new HashSet<TransportConfiguration>();
-
-   protected String backupConnectorName;
-
-   protected List<BridgeConfiguration> bridgeConfigurations = new ArrayList<BridgeConfiguration>();
-
-   protected List<DivertConfiguration> divertConfigurations = new ArrayList<DivertConfiguration>();
-
-   protected List<ClusterConnectionConfiguration> clusterConfigurations = new ArrayList<ClusterConnectionConfiguration>();
-
-   protected List<QueueConfiguration> queueConfigurations = new ArrayList<QueueConfiguration>();
-
-   protected List<BroadcastGroupConfiguration> broadcastGroupConfigurations = new ArrayList<BroadcastGroupConfiguration>();
-
-   protected Map<String, DiscoveryGroupConfiguration> discoveryGroupConfigurations = new LinkedHashMap<String, DiscoveryGroupConfiguration>();
-
-   // Paging related attributes ------------------------------------------------------------
-
-   protected String pagingDirectory = ConfigurationImpl.DEFAULT_PAGING_DIR;
-
-   // File related attributes -----------------------------------------------------------
-
-   protected String largeMessagesDirectory = ConfigurationImpl.DEFAULT_LARGE_MESSAGES_DIR;
-
-   protected String bindingsDirectory = ConfigurationImpl.DEFAULT_BINDINGS_DIRECTORY;
-
-   protected boolean createBindingsDir = ConfigurationImpl.DEFAULT_CREATE_BINDINGS_DIR;
-
-   protected String journalDirectory = ConfigurationImpl.DEFAULT_JOURNAL_DIR;
-
-   protected boolean createJournalDir = ConfigurationImpl.DEFAULT_CREATE_JOURNAL_DIR;
-
-   public JournalType journalType = ConfigurationImpl.DEFAULT_JOURNAL_TYPE;
-
-   protected boolean journalSyncTransactional = ConfigurationImpl.DEFAULT_JOURNAL_SYNC_TRANSACTIONAL;
-
-   protected boolean journalSyncNonTransactional = ConfigurationImpl.DEFAULT_JOURNAL_SYNC_NON_TRANSACTIONAL;
-
-   protected int journalCompactMinFiles = ConfigurationImpl.DEFAULT_JOURNAL_COMPACT_MIN_FILES;
-
-   protected int journalCompactPercentage = ConfigurationImpl.DEFAULT_JOURNAL_COMPACT_PERCENTAGE;
-
-   protected int journalFileSize = ConfigurationImpl.DEFAULT_JOURNAL_FILE_SIZE;
-
-   protected int journalMinFiles = ConfigurationImpl.DEFAULT_JOURNAL_MIN_FILES;
-
-   // AIO and NIO need different values for these attributes
-
-   protected int journalMaxIO_AIO = ConfigurationImpl.DEFAULT_JOURNAL_MAX_IO_AIO;
-
-   protected int journalBufferTimeout_AIO = ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_TIMEOUT_AIO;
-
-   protected int journalBufferSize_AIO = ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_SIZE_AIO;
-
-   protected int journalMaxIO_NIO = ConfigurationImpl.DEFAULT_JOURNAL_MAX_IO_NIO;
-
-   protected int journalBufferTimeout_NIO = ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_TIMEOUT_NIO;
-
-   protected int journalBufferSize_NIO = ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_SIZE_NIO;
-
-   protected boolean logJournalWriteRate = ConfigurationImpl.DEFAULT_JOURNAL_LOG_WRITE_RATE;
-
-   protected int journalPerfBlastPages = ConfigurationImpl.DEFAULT_JOURNAL_PERF_BLAST_PAGES;
-
-   protected boolean runSyncSpeedTest = ConfigurationImpl.DEFAULT_RUN_SYNC_SPEED_TEST;
-
-   protected boolean wildcardRoutingEnabled = ConfigurationImpl.DEFAULT_WILDCARD_ROUTING_ENABLED;
-
-   protected boolean messageCounterEnabled = ConfigurationImpl.DEFAULT_MESSAGE_COUNTER_ENABLED;
-
-   protected long messageCounterSamplePeriod = ConfigurationImpl.DEFAULT_MESSAGE_COUNTER_SAMPLE_PERIOD;
-
-   protected int messageCounterMaxDayHistory = ConfigurationImpl.DEFAULT_MESSAGE_COUNTER_MAX_DAY_HISTORY;
-
-   protected long transactionTimeout = ConfigurationImpl.DEFAULT_TRANSACTION_TIMEOUT;
-
-   protected long transactionTimeoutScanPeriod = ConfigurationImpl.DEFAULT_TRANSACTION_TIMEOUT_SCAN_PERIOD;
-
-   protected SimpleString managementAddress = ConfigurationImpl.DEFAULT_MANAGEMENT_ADDRESS;
-
-   protected SimpleString managementNotificationAddress = ConfigurationImpl.DEFAULT_MANAGEMENT_NOTIFICATION_ADDRESS;
-
-   protected String managementClusterUser = ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER;
-
-   protected String managementClusterPassword = ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_PASSWORD;
-
-   protected long serverDumpInterval = ConfigurationImpl.DEFAULT_SERVER_DUMP_INTERVAL;
-
-   // percentage of free memory which triggers warning from the memory manager
-   protected int memoryWarningThreshold = ConfigurationImpl.DEFAULT_MEMORY_WARNING_THRESHOLD;
-
-   protected long memoryMeasureInterval = ConfigurationImpl.DEFAULT_MEMORY_MEASURE_INTERVAL;
-
-   protected GroupingHandlerConfiguration groupingHandlerConfiguration;
-
-   // Public -------------------------------------------------------------------------
-
-   public boolean isClustered()
-   {
-      return clustered;
-   }
-
-   public void setClustered(final boolean clustered)
-   {
-      this.clustered = clustered;
-   }
-
-   public boolean isBackup()
-   {
-      return backup;
-   }
-
-   public boolean isFileDeploymentEnabled()
-   {
-      return fileDeploymentEnabled;
-   }
-
-   public void setFileDeploymentEnabled(final boolean enable)
-   {
-      fileDeploymentEnabled = enable;
-   }
-
-   public boolean isPersistenceEnabled()
-   {
-      return persistenceEnabled;
-   }
-
-   public void setPersistenceEnabled(final boolean enable)
-   {
-      persistenceEnabled = enable;
-   }
-
-   public long getFileDeployerScanPeriod()
-   {
-      return fileDeploymentScanPeriod;
-   }
-
-   public void setFileDeployerScanPeriod(final long period)
-   {
-      fileDeploymentScanPeriod = period;
-   }
-
-   /**
-    * @return the persistDeliveryCountBeforeDelivery
-    */
-   public boolean isPersistDeliveryCountBeforeDelivery()
-   {
-      return persistDeliveryCountBeforeDelivery;
-   }
-
-   public void setPersistDeliveryCountBeforeDelivery(final boolean persistDeliveryCountBeforeDelivery)
-   {
-      this.persistDeliveryCountBeforeDelivery = persistDeliveryCountBeforeDelivery;
-   }
-
-   public void setBackup(final boolean backup)
-   {
-      this.backup = backup;
-   }
-
-   public boolean isSharedStore()
-   {
-      return sharedStore;
-   }
-
-   public void setSharedStore(final boolean sharedStore)
-   {
-      this.sharedStore = sharedStore;
-   }
-
-   public int getScheduledThreadPoolMaxSize()
-   {
-      return scheduledThreadPoolMaxSize;
-   }
-
-   public void setScheduledThreadPoolMaxSize(final int maxSize)
-   {
-      scheduledThreadPoolMaxSize = maxSize;
-   }
-
-   public int getThreadPoolMaxSize()
-   {
-      return threadPoolMaxSize;
-   }
-
-   public void setThreadPoolMaxSize(final int maxSize)
-   {
-      threadPoolMaxSize = maxSize;
-   }
-
-   public long getSecurityInvalidationInterval()
-   {
-      return securityInvalidationInterval;
-   }
-
-   public void setSecurityInvalidationInterval(final long interval)
-   {
-      securityInvalidationInterval = interval;
-   }
-
-   public long getConnectionTTLOverride()
-   {
-      return connectionTTLOverride;
-   }
-
-   public void setConnectionTTLOverride(final long ttl)
-   {
-      connectionTTLOverride = ttl;
-   }
-
-   public boolean isAsyncConnectionExecutionEnabled()
-   {
-      return asyncConnectionExecutionEnabled;
-   }
-
-   public void setEnabledAsyncConnectionExecution(final boolean enabled)
-   {
-      asyncConnectionExecutionEnabled = enabled;
-   }
-
-   public List<String> getInterceptorClassNames()
-   {
-      return interceptorClassNames;
-   }
-
-   public void setInterceptorClassNames(final List<String> interceptors)
-   {
-      interceptorClassNames = interceptors;
-   }
-
-   public Set<TransportConfiguration> getAcceptorConfigurations()
-   {
-      return acceptorConfigs;
-   }
-
-   public void setAcceptorConfigurations(final Set<TransportConfiguration> infos)
-   {
-      acceptorConfigs = infos;
-   }
-
-   public Map<String, TransportConfiguration> getConnectorConfigurations()
-   {
-      return connectorConfigs;
-   }
-
-   public void setConnectorConfigurations(final Map<String, TransportConfiguration> infos)
-   {
-      connectorConfigs = infos;
-   }
-
-   public String getBackupConnectorName()
-   {
-      return backupConnectorName;
-   }
-
-   public void setBackupConnectorName(final String backupConnectorName)
-   {
-      this.backupConnectorName = backupConnectorName;
-   }
-
-   public GroupingHandlerConfiguration getGroupingHandlerConfiguration()
-   {
-      return groupingHandlerConfiguration;
-   }
-
-   public void setGroupingHandlerConfiguration(final GroupingHandlerConfiguration groupingHandlerConfiguration)
-   {
-      this.groupingHandlerConfiguration = groupingHandlerConfiguration;
-   }
-
-   public List<BridgeConfiguration> getBridgeConfigurations()
-   {
-      return bridgeConfigurations;
-   }
-
-   public void setBridgeConfigurations(final List<BridgeConfiguration> configs)
-   {
-      bridgeConfigurations = configs;
-   }
-
-   public List<BroadcastGroupConfiguration> getBroadcastGroupConfigurations()
-   {
-      return broadcastGroupConfigurations;
-   }
-
-   public void setBroadcastGroupConfigurations(final List<BroadcastGroupConfiguration> configs)
-   {
-      broadcastGroupConfigurations = configs;
-   }
-
-   public List<ClusterConnectionConfiguration> getClusterConfigurations()
-   {
-      return clusterConfigurations;
-   }
-
-   public void setClusterConfigurations(final List<ClusterConnectionConfiguration> configs)
-   {
-      clusterConfigurations = configs;
-   }
-
-   public List<DivertConfiguration> getDivertConfigurations()
-   {
-      return divertConfigurations;
-   }
-
-   public void setDivertConfigurations(final List<DivertConfiguration> configs)
-   {
-      divertConfigurations = configs;
-   }
-
-   public List<QueueConfiguration> getQueueConfigurations()
-   {
-      return queueConfigurations;
-   }
-
-   public void setQueueConfigurations(final List<QueueConfiguration> configs)
-   {
-      queueConfigurations = configs;
-   }
-
-   public Map<String, DiscoveryGroupConfiguration> getDiscoveryGroupConfigurations()
-   {
-      return discoveryGroupConfigurations;
-   }
-
-   public void setDiscoveryGroupConfigurations(final Map<String, DiscoveryGroupConfiguration> discoveryGroupConfigurations)
-   {
-      this.discoveryGroupConfigurations = discoveryGroupConfigurations;
-   }
-
-   public int getIDCacheSize()
-   {
-      return idCacheSize;
-   }
-
-   public void setIDCacheSize(final int idCacheSize)
-   {
-      this.idCacheSize = idCacheSize;
-   }
-
-   public boolean isPersistIDCache()
-   {
-      return persistIDCache;
-   }
-
-   public void setPersistIDCache(final boolean persist)
-   {
-      persistIDCache = persist;
-   }
-
-   public String getBindingsDirectory()
-   {
-      return bindingsDirectory;
-   }
-
-   public void setBindingsDirectory(final String dir)
-   {
-      bindingsDirectory = dir;
-   }
-
-   public String getJournalDirectory()
-   {
-      return journalDirectory;
-   }
-
-   public void setJournalDirectory(final String dir)
-   {
-      journalDirectory = dir;
-   }
-
-   public JournalType getJournalType()
-   {
-      return journalType;
-   }
-
-   public void setPagingDirectory(final String dir)
-   {
-      pagingDirectory = dir;
-   }
-
-   public String getPagingDirectory()
-   {
-      return pagingDirectory;
-   }
-
-   public void setJournalType(final JournalType type)
-   {
-      journalType = type;
-   }
-
-   public boolean isJournalSyncTransactional()
-   {
-      return journalSyncTransactional;
-   }
-
-   public void setJournalSyncTransactional(final boolean sync)
-   {
-      journalSyncTransactional = sync;
-   }
-
-   public boolean isJournalSyncNonTransactional()
-   {
-      return journalSyncNonTransactional;
-   }
-
-   public void setJournalSyncNonTransactional(final boolean sync)
-   {
-      journalSyncNonTransactional = sync;
-   }
-
-   public int getJournalFileSize()
-   {
-      return journalFileSize;
-   }
-
-   public void setJournalFileSize(final int size)
-   {
-      journalFileSize = size;
-   }
-
-   public int getJournalMinFiles()
-   {
-      return journalMinFiles;
-   }
-
-   public void setJournalMinFiles(final int files)
-   {
-      journalMinFiles = files;
-   }
-
-   public boolean isLogJournalWriteRate()
-   {
-      return logJournalWriteRate;
-   }
-
-   public void setLogJournalWriteRate(final boolean logJournalWriteRate)
-   {
-      this.logJournalWriteRate = logJournalWriteRate;
-   }
-
-   public int getJournalPerfBlastPages()
-   {
-      return journalPerfBlastPages;
-   }
-
-   public void setJournalPerfBlastPages(final int journalPerfBlastPages)
-   {
-      this.journalPerfBlastPages = journalPerfBlastPages;
-   }
-
-   public boolean isRunSyncSpeedTest()
-   {
-      return runSyncSpeedTest;
-   }
-
-   public void setRunSyncSpeedTest(final boolean run)
-   {
-      runSyncSpeedTest = run;
-   }
-
-   public boolean isCreateBindingsDir()
-   {
-      return createBindingsDir;
-   }
-
-   public void setCreateBindingsDir(final boolean create)
-   {
-      createBindingsDir = create;
-   }
-
-   public boolean isCreateJournalDir()
-   {
-      return createJournalDir;
-   }
-
-   public void setCreateJournalDir(final boolean create)
-   {
-      createJournalDir = create;
-   }
-
-   public boolean isWildcardRoutingEnabled()
-   {
-      return wildcardRoutingEnabled;
-   }
-
-   public void setWildcardRoutingEnabled(final boolean enabled)
-   {
-      wildcardRoutingEnabled = enabled;
-   }
-
-   public long getTransactionTimeout()
-   {
-      return transactionTimeout;
-   }
-
-   public void setTransactionTimeout(final long timeout)
-   {
-      transactionTimeout = timeout;
-   }
-
-   public long getTransactionTimeoutScanPeriod()
-   {
-      return transactionTimeoutScanPeriod;
-   }
-
-   public void setTransactionTimeoutScanPeriod(final long period)
-   {
-      transactionTimeoutScanPeriod = period;
-   }
-
-   public long getMessageExpiryScanPeriod()
-   {
-      return messageExpiryScanPeriod;
-   }
-
-   public void setMessageExpiryScanPeriod(final long messageExpiryScanPeriod)
-   {
-      this.messageExpiryScanPeriod = messageExpiryScanPeriod;
-   }
-
-   public int getMessageExpiryThreadPriority()
-   {
-      return messageExpiryThreadPriority;
-   }
-
-   public void setMessageExpiryThreadPriority(final int messageExpiryThreadPriority)
-   {
-      this.messageExpiryThreadPriority = messageExpiryThreadPriority;
-   }
-
-   public boolean isSecurityEnabled()
-   {
-      return securityEnabled;
-   }
-
-   public void setSecurityEnabled(final boolean enabled)
-   {
-      securityEnabled = enabled;
-   }
-
-   public boolean isJMXManagementEnabled()
-   {
-      return jmxManagementEnabled;
-   }
-
-   public void setJMXManagementEnabled(final boolean enabled)
-   {
-      jmxManagementEnabled = enabled;
-   }
-
-   public String getJMXDomain()
-   {
-      return jmxDomain;
-   }
-
-   public void setJMXDomain(final String domain)
-   {
-      jmxDomain = domain;
-   }
-
-   public String getLargeMessagesDirectory()
-   {
-      return largeMessagesDirectory;
-   }
-
-   public void setLargeMessagesDirectory(final String directory)
-   {
-      largeMessagesDirectory = directory;
-   }
-
-   public boolean isMessageCounterEnabled()
-   {
-      return messageCounterEnabled;
-   }
-
-   public void setMessageCounterEnabled(final boolean enabled)
-   {
-      messageCounterEnabled = enabled;
-   }
-
-   public long getMessageCounterSamplePeriod()
-   {
-      return messageCounterSamplePeriod;
-   }
-   
-   public void setMessageCounterSamplePeriod(long period)
-   {
-      this.messageCounterSamplePeriod = period;
-   }
-
-   public int getMessageCounterMaxDayHistory()
-   {
-      return messageCounterMaxDayHistory;
-   }
-
-   public void setMessageCounterMaxDayHistory(final int maxDayHistory)
-   {
-      messageCounterMaxDayHistory = maxDayHistory;
-   }
-
-   public SimpleString getManagementAddress()
-   {
-      return managementAddress;
-   }
-
-   public void setManagementAddress(final SimpleString address)
-   {
-      managementAddress = address;
-   }
-
-   public SimpleString getManagementNotificationAddress()
-   {
-      return managementNotificationAddress;
-   }
-
-   public void setManagementNotificationAddress(final SimpleString address)
-   {
-      managementNotificationAddress = address;
-   }
-
-   public String getManagementClusterUser()
-   {
-      return managementClusterUser;
-   }
-
-   public void setManagementClusterUser(final String user)
-   {
-      managementClusterUser = user;
-   }
-
-   public String getManagementClusterPassword()
-   {
-      return managementClusterPassword;
-   }
-
-   public void setManagementClusterPassword(final String clusterPassword)
-   {
-      managementClusterPassword = clusterPassword;
-   }
-
-   public int getJournalCompactMinFiles()
-   {
-      return journalCompactMinFiles;
-   }
-
-   public int getJournalCompactPercentage()
-   {
-      return journalCompactPercentage;
-   }
-
-   public void setJournalCompactMinFiles(final int minFiles)
-   {
-      journalCompactMinFiles = minFiles;
-   }
-
-   public void setJournalCompactPercentage(final int percentage)
-   {
-      journalCompactPercentage = percentage;
-   }
-
-   public long getServerDumpInterval()
-   {
-      return serverDumpInterval;
-   }
-
-   public void setServerDumpInterval(final long intervalInMilliseconds)
-   {
-      serverDumpInterval = intervalInMilliseconds;
-   }
-
-   public int getMemoryWarningThreshold()
-   {
-      return memoryWarningThreshold;
-   }
-
-   public void setMemoryWarningThreshold(final int memoryWarningThreshold)
-   {
-      this.memoryWarningThreshold = memoryWarningThreshold;
-   }
-
-   public long getMemoryMeasureInterval()
-   {
-      return memoryMeasureInterval;
-   }
-
-   public void setMemoryMeasureInterval(final long memoryMeasureInterval)
-   {
-      this.memoryMeasureInterval = memoryMeasureInterval;
-   }
-
-   public String getLogDelegateFactoryClassName()
-   {
-      return logDelegateFactoryClassName;
-   }
-
-   public void setLogDelegateFactoryClassName(final String className)
-   {
-      logDelegateFactoryClassName = className;
-   }
-
-   public int getJournalMaxIO_AIO()
-   {
-      return journalMaxIO_AIO;
-   }
-
-   public void setJournalMaxIO_AIO(final int journalMaxIO)
-   {
-      journalMaxIO_AIO = journalMaxIO;
-   }
-
-   public int getJournalBufferTimeout_AIO()
-   {
-      return journalBufferTimeout_AIO;
-   }
-
-   public void setJournalBufferTimeout_AIO(final int journalBufferTimeout)
-   {
-      journalBufferTimeout_AIO = journalBufferTimeout;
-   }
-
-   public int getJournalBufferSize_AIO()
-   {
-      return journalBufferSize_AIO;
-   }
-
-   public void setJournalBufferSize_AIO(final int journalBufferSize)
-   {
-      journalBufferSize_AIO = journalBufferSize;
-   }
-
-   public int getJournalMaxIO_NIO()
-   {
-      return journalMaxIO_NIO;
-   }
-
-   public void setJournalMaxIO_NIO(final int journalMaxIO)
-   {
-      journalMaxIO_NIO = journalMaxIO;
-   }
-
-   public int getJournalBufferTimeout_NIO()
-   {
-      return journalBufferTimeout_NIO;
-   }
-
-   public void setJournalBufferTimeout_NIO(final int journalBufferTimeout)
-   {
-      journalBufferTimeout_NIO = journalBufferTimeout;
-   }
-
-   public int getJournalBufferSize_NIO()
-   {
-      return journalBufferSize_NIO;
-   }
-
-   public void setJournalBufferSize_NIO(final int journalBufferSize)
-   {
-      journalBufferSize_NIO = journalBufferSize;
-   }
-
-   @Override
-   public boolean equals(final Object obj)
-   {
-      if (this == obj)
-      {
-         return true;
-      }
-      if (obj == null)
-      {
-         return false;
-      }
-      if (getClass() != obj.getClass())
-      {
-         return false;
-      }
-      ConfigurationImpl other = (ConfigurationImpl)obj;
-      if (asyncConnectionExecutionEnabled != other.asyncConnectionExecutionEnabled)
-      {
-         return false;
-      }
-      if (backup != other.backup)
-      {
-         return false;
-      }
-      if (sharedStore != other.sharedStore)
-      {
-         return false;
-      }
-      if (backupConnectorName == null)
-      {
-         if (other.backupConnectorName != null)
-         {
-            return false;
-         }
-      }
-      else if (!backupConnectorName.equals(other.backupConnectorName))
-      {
-         return false;
-      }
-      if (bindingsDirectory == null)
-      {
-         if (other.bindingsDirectory != null)
-         {
-            return false;
-         }
-      }
-      else if (!bindingsDirectory.equals(other.bindingsDirectory))
-      {
-         return false;
-      }
-
-      if (clustered != other.clustered)
-      {
-         return false;
-      }
-      if (connectionTTLOverride != other.connectionTTLOverride)
-      {
-         return false;
-      }
-      if (createBindingsDir != other.createBindingsDir)
-      {
-         return false;
-      }
-      if (createJournalDir != other.createJournalDir)
-      {
-         return false;
-      }
-
-      if (fileDeploymentEnabled != other.fileDeploymentEnabled)
-      {
-         return false;
-      }
-      if (fileDeploymentScanPeriod != other.fileDeploymentScanPeriod)
-      {
-         return false;
-      }
-      if (idCacheSize != other.idCacheSize)
-      {
-         return false;
-      }
-      if (jmxManagementEnabled != other.jmxManagementEnabled)
-      {
-         return false;
-      }
-      if (journalBufferSize_AIO != other.journalBufferSize_AIO)
-      {
-         return false;
-      }
-      if (journalBufferTimeout_AIO != other.journalBufferTimeout_AIO)
-      {
-         return false;
-      }
-      if (journalMaxIO_AIO != other.journalMaxIO_AIO)
-      {
-         return false;
-      }
-      if (journalBufferSize_NIO != other.journalBufferSize_NIO)
-      {
-         return false;
-      }
-      if (journalBufferTimeout_NIO != other.journalBufferTimeout_NIO)
-      {
-         return false;
-      }
-      if (journalMaxIO_NIO != other.journalMaxIO_NIO)
-      {
-         return false;
-      }
-      if (journalCompactMinFiles != other.journalCompactMinFiles)
-      {
-         return false;
-      }
-      if (journalCompactPercentage != other.journalCompactPercentage)
-      {
-         return false;
-      }
-      if (journalDirectory == null)
-      {
-         if (other.journalDirectory != null)
-         {
-            return false;
-         }
-      }
-      else if (!journalDirectory.equals(other.journalDirectory))
-      {
-         return false;
-      }
-      if (journalFileSize != other.journalFileSize)
-      {
-         return false;
-      }
-
-      if (journalMinFiles != other.journalMinFiles)
-      {
-         return false;
-      }
-      if (journalPerfBlastPages != other.journalPerfBlastPages)
-      {
-         return false;
-      }
-      if (journalSyncNonTransactional != other.journalSyncNonTransactional)
-      {
-         return false;
-      }
-      if (journalSyncTransactional != other.journalSyncTransactional)
-      {
-         return false;
-      }
-      if (journalType == null)
-      {
-         if (other.journalType != null)
-         {
-            return false;
-         }
-      }
-      else if (!journalType.equals(other.journalType))
-      {
-         return false;
-      }
-      if (largeMessagesDirectory == null)
-      {
-         if (other.largeMessagesDirectory != null)
-         {
-            return false;
-         }
-      }
-      else if (!largeMessagesDirectory.equals(other.largeMessagesDirectory))
-      {
-         return false;
-      }
-      if (logJournalWriteRate != other.logJournalWriteRate)
-      {
-         return false;
-      }
-      if (managementAddress == null)
-      {
-         if (other.managementAddress != null)
-         {
-            return false;
-         }
-      }
-      else if (!managementAddress.equals(other.managementAddress))
-      {
-         return false;
-      }
-      if (managementClusterPassword == null)
-      {
-         if (other.managementClusterPassword != null)
-         {
-            return false;
-         }
-      }
-      else if (!managementClusterPassword.equals(other.managementClusterPassword))
-      {
-         return false;
-      }
-      if (managementClusterUser == null)
-      {
-         if (other.managementClusterUser != null)
-         {
-            return false;
-         }
-      }
-      else if (!managementClusterUser.equals(other.managementClusterUser))
-      {
-         return false;
-      }
-      if (managementNotificationAddress == null)
-      {
-         if (other.managementNotificationAddress != null)
-         {
-            return false;
-         }
-      }
-      else if (!managementNotificationAddress.equals(other.managementNotificationAddress))
-      {
-         return false;
-      }
-      if (messageCounterEnabled != other.messageCounterEnabled)
-      {
-         return false;
-      }
-      if (messageCounterMaxDayHistory != other.messageCounterMaxDayHistory)
-      {
-         return false;
-      }
-      if (messageCounterSamplePeriod != other.messageCounterSamplePeriod)
-      {
-         return false;
-      }
-      if (messageExpiryScanPeriod != other.messageExpiryScanPeriod)
-      {
-         return false;
-      }
-      if (messageExpiryThreadPriority != other.messageExpiryThreadPriority)
-      {
-         return false;
-      }
-      if (pagingDirectory == null)
-      {
-         if (other.pagingDirectory != null)
-         {
-            return false;
-         }
-      }
-      else if (!pagingDirectory.equals(other.pagingDirectory))
-      {
-         return false;
-      }
-      if (persistDeliveryCountBeforeDelivery != other.persistDeliveryCountBeforeDelivery)
-      {
-         return false;
-      }
-      if (persistIDCache != other.persistIDCache)
-      {
-         return false;
-      }
-      if (persistenceEnabled != other.persistenceEnabled)
-      {
-         return false;
-      }
-      if (scheduledThreadPoolMaxSize != other.scheduledThreadPoolMaxSize)
-      {
-         return false;
-      }
-      if (securityEnabled != other.securityEnabled)
-      {
-         return false;
-      }
-      if (securityInvalidationInterval != other.securityInvalidationInterval)
-      {
-         return false;
-      }
-      if (serverDumpInterval != other.serverDumpInterval)
-      {
-         return false;
-      }
-      if (threadPoolMaxSize != other.threadPoolMaxSize)
-      {
-         return false;
-      }
-      if (transactionTimeout != other.transactionTimeout)
-      {
-         return false;
-      }
-      if (transactionTimeoutScanPeriod != other.transactionTimeoutScanPeriod)
-      {
-         return false;
-      }
-      if (wildcardRoutingEnabled != other.wildcardRoutingEnabled)
-      {
-         return false;
-      }
-      return true;
-   }
-
-}

Deleted: trunk/src/main/org/hornetq/api/core/config/FileConfiguration.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/config/FileConfiguration.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/core/config/FileConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,847 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.core.config;
-
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.hornetq.api.Pair;
-import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
-import org.hornetq.core.config.impl.Validators;
-import org.hornetq.core.logging.Logger;
-import org.hornetq.core.server.JournalType;
-import org.hornetq.core.server.group.impl.GroupingHandlerConfiguration;
-import org.hornetq.utils.XMLConfigurationUtil;
-import org.hornetq.utils.XMLUtil;
-import org.w3c.dom.Element;
-import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
-import org.w3c.dom.NodeList;
-
-/**
- * ConfigurationImpl
- * This class allows the Configuration class to be configured via a config file.
- *
- * @author <a href="ataylor at redhat.com">Andy Taylor</a>
- * @author <a href="tim.fox at jboss.com">Tim Fox</a>
- */
-public class FileConfiguration extends ConfigurationImpl
-{
-   private static final long serialVersionUID = -4766689627675039596L;
-
-   private static final Logger log = Logger.getLogger(FileConfiguration.class);
-
-   // Constants ------------------------------------------------------------------------
-
-   private static final String DEFAULT_CONFIGURATION_URL = "hornetq-configuration.xml";
-
-   private static final String CONFIGURATION_SCHEMA_URL = "schema/hornetq-configuration.xsd";
-
-   // For a bridge confirmations must be activated or send acknowledgements won't return
-
-   public static final int DEFAULT_CONFIRMATION_WINDOW_SIZE = 1024 * 1024;
-
-   // Static --------------------------------------------------------------------------
-
-   // Attributes ----------------------------------------------------------------------
-
-   private String configurationUrl = FileConfiguration.DEFAULT_CONFIGURATION_URL;
-
-   private boolean started;
-
-   // Public -------------------------------------------------------------------------
-
-   public synchronized void start() throws Exception
-   {
-      if (started)
-      {
-         return;
-      }
-
-      URL url = getClass().getClassLoader().getResource(configurationUrl);
-      FileConfiguration.log.debug("Loading server configuration from " + url);
-
-      Reader reader = new InputStreamReader(url.openStream());
-      String xml = org.hornetq.utils.XMLUtil.readerToString(reader);
-      xml = XMLUtil.replaceSystemProps(xml);
-      Element e = org.hornetq.utils.XMLUtil.stringToElement(xml);
-      org.hornetq.utils.XMLUtil.validate(e, FileConfiguration.CONFIGURATION_SCHEMA_URL);
-
-      clustered = XMLConfigurationUtil.getBoolean(e, "clustered", clustered);
-
-      backup = XMLConfigurationUtil.getBoolean(e, "backup", backup);
-
-      sharedStore = XMLConfigurationUtil.getBoolean(e, "shared-store", sharedStore);
-
-      // Defaults to true when using FileConfiguration
-      fileDeploymentEnabled = XMLConfigurationUtil.getBoolean(e, "file-deployment-enabled", true);
-
-      persistenceEnabled = XMLConfigurationUtil.getBoolean(e, "persistence-enabled", persistenceEnabled);
-
-      persistDeliveryCountBeforeDelivery = XMLConfigurationUtil.getBoolean(e,
-                                                                           "persist-delivery-count-before-delivery",
-                                                                           persistDeliveryCountBeforeDelivery);
-
-      // NOTE! All the defaults come from the super class
-
-      scheduledThreadPoolMaxSize = XMLConfigurationUtil.getInteger(e,
-                                                                   "scheduled-thread-pool-max-size",
-                                                                   scheduledThreadPoolMaxSize,
-                                                                   Validators.GT_ZERO);
-
-      threadPoolMaxSize = XMLConfigurationUtil.getInteger(e,
-                                                          "thread-pool-max-size",
-                                                          threadPoolMaxSize,
-                                                          Validators.MINUS_ONE_OR_GT_ZERO);
-
-      securityEnabled = XMLConfigurationUtil.getBoolean(e, "security-enabled", securityEnabled);
-
-      jmxManagementEnabled = XMLConfigurationUtil.getBoolean(e, "jmx-management-enabled", jmxManagementEnabled);
-
-      jmxDomain = XMLConfigurationUtil.getString(e, "jmx-domain", jmxDomain, Validators.NOT_NULL_OR_EMPTY);
-
-      securityInvalidationInterval = XMLConfigurationUtil.getLong(e,
-                                                                  "security-invalidation-interval",
-                                                                  securityInvalidationInterval,
-                                                                  Validators.GT_ZERO);
-
-      connectionTTLOverride = XMLConfigurationUtil.getLong(e,
-                                                           "connection-ttl-override",
-                                                           connectionTTLOverride,
-                                                           Validators.MINUS_ONE_OR_GT_ZERO);
-
-      asyncConnectionExecutionEnabled = XMLConfigurationUtil.getBoolean(e,
-                                                                        "async-connection-execution-enabled",
-                                                                        asyncConnectionExecutionEnabled);
-
-      transactionTimeout = XMLConfigurationUtil.getLong(e,
-                                                        "transaction-timeout",
-                                                        transactionTimeout,
-                                                        Validators.GT_ZERO);
-
-      transactionTimeoutScanPeriod = XMLConfigurationUtil.getLong(e,
-                                                                  "transaction-timeout-scan-period",
-                                                                  transactionTimeoutScanPeriod,
-                                                                  Validators.GT_ZERO);
-
-      messageExpiryScanPeriod = XMLConfigurationUtil.getLong(e,
-                                                             "message-expiry-scan-period",
-                                                             messageExpiryScanPeriod,
-                                                             Validators.GT_ZERO);
-
-      messageExpiryThreadPriority = XMLConfigurationUtil.getInteger(e,
-                                                                    "message-expiry-thread-priority",
-                                                                    messageExpiryThreadPriority,
-                                                                    Validators.THREAD_PRIORITY_RANGE);
-
-      idCacheSize = XMLConfigurationUtil.getInteger(e, "id-cache-size", idCacheSize, Validators.GT_ZERO);
-
-      persistIDCache = XMLConfigurationUtil.getBoolean(e, "persist-id-cache", persistIDCache);
-
-      managementAddress = new SimpleString(XMLConfigurationUtil.getString(e,
-                                                                          "management-address",
-                                                                          managementAddress.toString(),
-                                                                          Validators.NOT_NULL_OR_EMPTY));
-
-      managementNotificationAddress = new SimpleString(XMLConfigurationUtil.getString(e,
-                                                                                      "management-notification-address",
-                                                                                      managementNotificationAddress.toString(),
-                                                                                      Validators.NOT_NULL_OR_EMPTY));
-
-      managementClusterPassword = XMLConfigurationUtil.getString(e,
-                                                                 "management-cluster-password",
-                                                                 managementClusterPassword,
-                                                                 Validators.NOT_NULL_OR_EMPTY);
-
-      managementClusterUser = XMLConfigurationUtil.getString(e,
-                                                             "management-cluster-user",
-                                                             managementClusterUser,
-                                                             Validators.NOT_NULL_OR_EMPTY);
-
-      logDelegateFactoryClassName = XMLConfigurationUtil.getString(e,
-                                                                   "log-delegate-factory-class-name",
-                                                                   logDelegateFactoryClassName,
-                                                                   Validators.NOT_NULL_OR_EMPTY);
-
-      NodeList interceptorNodes = e.getElementsByTagName("remoting-interceptors");
-
-      ArrayList<String> interceptorList = new ArrayList<String>();
-
-      if (interceptorNodes.getLength() > 0)
-      {
-         NodeList interceptors = interceptorNodes.item(0).getChildNodes();
-
-         for (int i = 0; i < interceptors.getLength(); i++)
-         {
-            if ("class-name".equalsIgnoreCase(interceptors.item(i).getNodeName()))
-            {
-               String clazz = interceptors.item(i).getTextContent();
-
-               interceptorList.add(clazz);
-            }
-         }
-      }
-
-      interceptorClassNames = interceptorList;
-
-      NodeList backups = e.getElementsByTagName("backup-connector-ref");
-
-      // There should be only one - this will be enforced by the DTD
-
-      if (backups.getLength() > 0)
-      {
-         Node backupNode = backups.item(0);
-
-         backupConnectorName = backupNode.getAttributes().getNamedItem("connector-name").getNodeValue();
-      }
-
-      NodeList connectorNodes = e.getElementsByTagName("connector");
-
-      for (int i = 0; i < connectorNodes.getLength(); i++)
-      {
-         Element connectorNode = (Element)connectorNodes.item(i);
-
-         TransportConfiguration connectorConfig = parseTransportConfiguration(connectorNode);
-
-         if (connectorConfig.getName() == null)
-         {
-            FileConfiguration.log.warn("Cannot deploy a connector with no name specified.");
-
-            continue;
-         }
-
-         if (connectorConfigs.containsKey(connectorConfig.getName()))
-         {
-            FileConfiguration.log.warn("There is already a connector with name " + connectorConfig.getName() +
-                                       " deployed. This one will not be deployed.");
-
-            continue;
-         }
-
-         connectorConfigs.put(connectorConfig.getName(), connectorConfig);
-      }
-
-      NodeList acceptorNodes = e.getElementsByTagName("acceptor");
-
-      for (int i = 0; i < acceptorNodes.getLength(); i++)
-      {
-         Element acceptorNode = (Element)acceptorNodes.item(i);
-
-         TransportConfiguration acceptorConfig = parseTransportConfiguration(acceptorNode);
-
-         acceptorConfigs.add(acceptorConfig);
-      }
-
-      NodeList bgNodes = e.getElementsByTagName("broadcast-group");
-
-      for (int i = 0; i < bgNodes.getLength(); i++)
-      {
-         Element bgNode = (Element)bgNodes.item(i);
-
-         parseBroadcastGroupConfiguration(bgNode);
-      }
-
-      NodeList dgNodes = e.getElementsByTagName("discovery-group");
-
-      for (int i = 0; i < dgNodes.getLength(); i++)
-      {
-         Element dgNode = (Element)dgNodes.item(i);
-
-         parseDiscoveryGroupConfiguration(dgNode);
-      }
-
-      NodeList brNodes = e.getElementsByTagName("bridge");
-
-      for (int i = 0; i < brNodes.getLength(); i++)
-      {
-         Element mfNode = (Element)brNodes.item(i);
-
-         parseBridgeConfiguration(mfNode);
-      }
-
-      NodeList gaNodes = e.getElementsByTagName("grouping-handler");
-
-      for (int i = 0; i < gaNodes.getLength(); i++)
-      {
-         Element gaNode = (Element)gaNodes.item(i);
-
-         parseGroupingHandlerConfiguration(gaNode);
-      }
-
-      NodeList ccNodes = e.getElementsByTagName("cluster-connection");
-
-      for (int i = 0; i < ccNodes.getLength(); i++)
-      {
-         Element ccNode = (Element)ccNodes.item(i);
-
-         parseClusterConnectionConfiguration(ccNode);
-      }
-
-      NodeList dvNodes = e.getElementsByTagName("divert");
-
-      for (int i = 0; i < dvNodes.getLength(); i++)
-      {
-         Element dvNode = (Element)dvNodes.item(i);
-
-         parseDivertConfiguration(dvNode);
-      }
-
-      // Persistence config
-
-      largeMessagesDirectory = XMLConfigurationUtil.getString(e,
-                                                              "large-messages-directory",
-                                                              largeMessagesDirectory,
-                                                              Validators.NOT_NULL_OR_EMPTY);
-
-      bindingsDirectory = XMLConfigurationUtil.getString(e,
-                                                         "bindings-directory",
-                                                         bindingsDirectory,
-                                                         Validators.NOT_NULL_OR_EMPTY);
-
-      createBindingsDir = XMLConfigurationUtil.getBoolean(e, "create-bindings-dir", createBindingsDir);
-
-      journalDirectory = XMLConfigurationUtil.getString(e,
-                                                        "journal-directory",
-                                                        journalDirectory,
-                                                        Validators.NOT_NULL_OR_EMPTY);
-
-      pagingDirectory = XMLConfigurationUtil.getString(e,
-                                                       "paging-directory",
-                                                       pagingDirectory,
-                                                       Validators.NOT_NULL_OR_EMPTY);
-
-      createJournalDir = XMLConfigurationUtil.getBoolean(e, "create-journal-dir", createJournalDir);
-
-      String s = XMLConfigurationUtil.getString(e, "journal-type", journalType.toString(), Validators.JOURNAL_TYPE);
-
-      if (s.equals(JournalType.NIO.toString()))
-      {
-         journalType = JournalType.NIO;
-      }
-      else if (s.equals(JournalType.ASYNCIO.toString()))
-      {
-         journalType = JournalType.ASYNCIO;
-      }
-
-      journalSyncTransactional = XMLConfigurationUtil.getBoolean(e,
-                                                                 "journal-sync-transactional",
-                                                                 journalSyncTransactional);
-
-      journalSyncNonTransactional = XMLConfigurationUtil.getBoolean(e,
-                                                                    "journal-sync-non-transactional",
-                                                                    journalSyncNonTransactional);
-
-      journalFileSize = XMLConfigurationUtil.getInteger(e, "journal-file-size", journalFileSize, Validators.GT_ZERO);
-
-      int journalBufferTimeout = XMLConfigurationUtil.getInteger(e,
-                                                                 "journal-buffer-timeout",
-                                                                 journalType == JournalType.ASYNCIO ? ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_TIMEOUT_AIO
-                                                                                                   : ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_TIMEOUT_NIO,
-                                                                 Validators.GT_ZERO);
-
-      int journalBufferSize = XMLConfigurationUtil.getInteger(e,
-                                                              "journal-buffer-size",
-                                                              journalType == JournalType.ASYNCIO ? ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_SIZE_AIO
-                                                                                                : ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_SIZE_NIO,
-                                                              Validators.GT_ZERO);
-
-      int journalMaxIO = XMLConfigurationUtil.getInteger(e,
-                                                         "journal-max-io",
-                                                         journalType == JournalType.ASYNCIO ? ConfigurationImpl.DEFAULT_JOURNAL_MAX_IO_AIO
-                                                                                           : ConfigurationImpl.DEFAULT_JOURNAL_MAX_IO_NIO,
-                                                         Validators.GT_ZERO);
-
-      if (journalType == JournalType.ASYNCIO)
-      {
-         journalBufferTimeout_AIO = journalBufferTimeout;
-         journalBufferSize_AIO = journalBufferSize;
-         journalMaxIO_AIO = journalMaxIO;
-      }
-      else
-      {
-         journalBufferTimeout_NIO = journalBufferTimeout;
-         journalBufferSize_NIO = journalBufferSize;
-         journalMaxIO_NIO = journalMaxIO;
-      }
-
-      journalMinFiles = XMLConfigurationUtil.getInteger(e, "journal-min-files", journalMinFiles, Validators.GT_ZERO);
-
-      journalCompactMinFiles = XMLConfigurationUtil.getInteger(e,
-                                                               "journal-compact-min-files",
-                                                               journalCompactMinFiles,
-                                                               Validators.GE_ZERO);
-
-      journalCompactPercentage = XMLConfigurationUtil.getInteger(e,
-                                                                 "journal-compact-percentage",
-                                                                 journalCompactPercentage,
-                                                                 Validators.PERCENTAGE);
-
-      logJournalWriteRate = XMLConfigurationUtil.getBoolean(e,
-                                                            "log-journal-write-rate",
-                                                            ConfigurationImpl.DEFAULT_JOURNAL_LOG_WRITE_RATE);
-
-      journalPerfBlastPages = XMLConfigurationUtil.getInteger(e,
-                                                              "perf-blast-pages",
-                                                              ConfigurationImpl.DEFAULT_JOURNAL_PERF_BLAST_PAGES,
-                                                              Validators.MINUS_ONE_OR_GT_ZERO);
-
-      runSyncSpeedTest = XMLConfigurationUtil.getBoolean(e, "run-sync-speed-test", runSyncSpeedTest);
-
-      wildcardRoutingEnabled = XMLConfigurationUtil.getBoolean(e, "wild-card-routing-enabled", wildcardRoutingEnabled);
-
-      messageCounterEnabled = XMLConfigurationUtil.getBoolean(e, "message-counter-enabled", messageCounterEnabled);
-
-      messageCounterSamplePeriod = XMLConfigurationUtil.getLong(e,
-                                                                "message-counter-sample-period",
-                                                                messageCounterSamplePeriod,
-                                                                Validators.GT_ZERO);
-
-      messageCounterMaxDayHistory = XMLConfigurationUtil.getInteger(e,
-                                                                    "message-counter-max-day-history",
-                                                                    messageCounterMaxDayHistory,
-                                                                    Validators.GT_ZERO);
-
-      serverDumpInterval = XMLConfigurationUtil.getLong(e,
-                                                        "server-dump-interval",
-                                                        serverDumpInterval,
-                                                        Validators.MINUS_ONE_OR_GT_ZERO); // in
-      // milliseconds
-
-      memoryWarningThreshold = XMLConfigurationUtil.getInteger(e,
-                                                               "memory-warning-threshold",
-                                                               memoryWarningThreshold,
-                                                               Validators.PERCENTAGE);
-
-      memoryMeasureInterval = XMLConfigurationUtil.getLong(e,
-                                                           "memory-measure-interval",
-                                                           memoryMeasureInterval,
-                                                           Validators.MINUS_ONE_OR_GT_ZERO); // in
-
-      started = true;
-   }
-
-   public synchronized void stop() throws Exception
-   {
-      started = false;
-   }
-
-   public String getConfigurationUrl()
-   {
-      return configurationUrl;
-   }
-
-   public void setConfigurationUrl(final String configurationUrl)
-   {
-      this.configurationUrl = configurationUrl;
-   }
-
-   // Private -------------------------------------------------------------------------
-
-   private TransportConfiguration parseTransportConfiguration(final Element e)
-   {
-      Node nameNode = e.getAttributes().getNamedItem("name");
-
-      String name = nameNode != null ? nameNode.getNodeValue() : null;
-
-      String clazz = XMLConfigurationUtil.getString(e, "factory-class", null, Validators.NOT_NULL_OR_EMPTY);
-
-      Map<String, Object> params = new HashMap<String, Object>();
-
-      NodeList paramsNodes = e.getElementsByTagName("param");
-
-      for (int i = 0; i < paramsNodes.getLength(); i++)
-      {
-         Node paramNode = paramsNodes.item(i);
-         NamedNodeMap attributes = paramNode.getAttributes();
-
-         Node nkey = attributes.getNamedItem("key");
-
-         String key = nkey.getTextContent();
-
-         Node nValue = attributes.getNamedItem("value");
-
-         params.put(key, nValue.getTextContent());
-      }
-
-      return new TransportConfiguration(clazz, params, name);
-   }
-
-   private void parseBroadcastGroupConfiguration(final Element e)
-   {
-      String name = e.getAttribute("name");
-
-      String localAddress = XMLConfigurationUtil.getString(e, "local-bind-address", null, Validators.NO_CHECK);
-
-      int localBindPort = XMLConfigurationUtil.getInteger(e, "local-bind-port", -1, Validators.MINUS_ONE_OR_GT_ZERO);
-
-      String groupAddress = XMLConfigurationUtil.getString(e, "group-address", null, Validators.NOT_NULL_OR_EMPTY);
-
-      int groupPort = XMLConfigurationUtil.getInteger(e, "group-port", -1, Validators.GT_ZERO);
-
-      long broadcastPeriod = XMLConfigurationUtil.getLong(e,
-                                                          "broadcast-period",
-                                                          ConfigurationImpl.DEFAULT_BROADCAST_PERIOD,
-                                                          Validators.GT_ZERO);
-
-      NodeList children = e.getChildNodes();
-
-      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
-
-      for (int j = 0; j < children.getLength(); j++)
-      {
-         Node child = children.item(j);
-
-         if (child.getNodeName().equals("connector-ref"))
-         {
-            String connectorName = child.getAttributes().getNamedItem("connector-name").getNodeValue();
-
-            Node backupConnectorNode = child.getAttributes().getNamedItem("backup-connector-name");
-
-            String backupConnectorName = null;
-
-            if (backupConnectorNode != null)
-            {
-               backupConnectorName = backupConnectorNode.getNodeValue();
-            }
-
-            Pair<String, String> connectorInfo = new Pair<String, String>(connectorName, backupConnectorName);
-
-            connectorNames.add(connectorInfo);
-         }
-      }
-
-      BroadcastGroupConfiguration config = new BroadcastGroupConfiguration(name,
-                                                                           localAddress,
-                                                                           localBindPort,
-                                                                           groupAddress,
-                                                                           groupPort,
-                                                                           broadcastPeriod,
-                                                                           connectorNames);
-
-      broadcastGroupConfigurations.add(config);
-   }
-
-   private void parseDiscoveryGroupConfiguration(final Element e)
-   {
-      String name = e.getAttribute("name");
-
-      String groupAddress = XMLConfigurationUtil.getString(e, "group-address", null, Validators.NOT_NULL_OR_EMPTY);
-
-      int groupPort = XMLConfigurationUtil.getInteger(e, "group-port", -1, Validators.MINUS_ONE_OR_GT_ZERO);
-
-      long refreshTimeout = XMLConfigurationUtil.getLong(e,
-                                                         "refresh-timeout",
-                                                         ConfigurationImpl.DEFAULT_BROADCAST_REFRESH_TIMEOUT,
-                                                         Validators.GT_ZERO);
-
-      DiscoveryGroupConfiguration config = new DiscoveryGroupConfiguration(name,
-                                                                           groupAddress,
-                                                                           groupPort,
-                                                                           refreshTimeout);
-
-      if (discoveryGroupConfigurations.containsKey(name))
-      {
-         FileConfiguration.log.warn("There is already a discovery group with name " + name +
-                                    " deployed. This one will not be deployed.");
-
-         return;
-      }
-      else
-      {
-         discoveryGroupConfigurations.put(name, config);
-      }
-   }
-
-   private void parseClusterConnectionConfiguration(final Element e)
-   {
-      String name = e.getAttribute("name");
-
-      String address = XMLConfigurationUtil.getString(e, "address", null, Validators.NOT_NULL_OR_EMPTY);
-
-      boolean duplicateDetection = XMLConfigurationUtil.getBoolean(e,
-                                                                   "use-duplicate-detection",
-                                                                   ConfigurationImpl.DEFAULT_CLUSTER_DUPLICATE_DETECTION);
-
-      boolean forwardWhenNoConsumers = XMLConfigurationUtil.getBoolean(e,
-                                                                       "forward-when-no-consumers",
-                                                                       ConfigurationImpl.DEFAULT_CLUSTER_FORWARD_WHEN_NO_CONSUMERS);
-
-      int maxHops = XMLConfigurationUtil.getInteger(e,
-                                                    "max-hops",
-                                                    ConfigurationImpl.DEFAULT_CLUSTER_MAX_HOPS,
-                                                    Validators.GE_ZERO);
-
-      long retryInterval = XMLConfigurationUtil.getLong(e,
-                                                        "retry-interval",
-                                                        ConfigurationImpl.DEFAULT_CLUSTER_RETRY_INTERVAL,
-                                                        Validators.GT_ZERO);
-
-      int confirmationWindowSize = XMLConfigurationUtil.getInteger(e,
-                                                                   "confirmation-window-size",
-                                                                   FileConfiguration.DEFAULT_CONFIRMATION_WINDOW_SIZE,
-                                                                   Validators.GT_ZERO);
-
-      String discoveryGroupName = null;
-
-      List<Pair<String, String>> connectorPairs = new ArrayList<Pair<String, String>>();
-
-      NodeList children = e.getChildNodes();
-
-      for (int j = 0; j < children.getLength(); j++)
-      {
-         Node child = children.item(j);
-
-         if (child.getNodeName().equals("discovery-group-ref"))
-         {
-            discoveryGroupName = child.getAttributes().getNamedItem("discovery-group-name").getNodeValue();
-         }
-         else if (child.getNodeName().equals("connector-ref"))
-         {
-            String connectorName = child.getAttributes().getNamedItem("connector-name").getNodeValue();
-
-            Node backupNode = child.getAttributes().getNamedItem("backup-connector-name");
-
-            String backupConnectorName = null;
-
-            if (backupNode != null)
-            {
-               backupConnectorName = backupNode.getNodeValue();
-            }
-
-            Pair<String, String> connectorPair = new Pair<String, String>(connectorName, backupConnectorName);
-
-            connectorPairs.add(connectorPair);
-         }
-      }
-
-      ClusterConnectionConfiguration config;
-
-      if (discoveryGroupName == null)
-      {
-         config = new ClusterConnectionConfiguration(name,
-                                                     address,
-                                                     retryInterval,
-                                                     duplicateDetection,
-                                                     forwardWhenNoConsumers,
-                                                     maxHops,
-                                                     confirmationWindowSize,
-                                                     connectorPairs);
-      }
-      else
-      {
-         config = new ClusterConnectionConfiguration(name,
-                                                     address,
-                                                     retryInterval,
-                                                     duplicateDetection,
-                                                     forwardWhenNoConsumers,
-                                                     maxHops,
-                                                     confirmationWindowSize,
-                                                     discoveryGroupName);
-      }
-
-      clusterConfigurations.add(config);
-   }
-
-   private void parseGroupingHandlerConfiguration(final Element node)
-   {
-      String name = node.getAttribute("name");
-      String type = XMLConfigurationUtil.getString(node, "type", null, Validators.NOT_NULL_OR_EMPTY);
-      String address = XMLConfigurationUtil.getString(node, "address", null, Validators.NOT_NULL_OR_EMPTY);
-      Integer timeout = XMLConfigurationUtil.getInteger(node,
-                                                        "timeout",
-                                                        GroupingHandlerConfiguration.DEFAULT_TIMEOUT,
-                                                        Validators.GT_ZERO);
-      groupingHandlerConfiguration = new GroupingHandlerConfiguration(new SimpleString(name),
-                                                                      type.equals(GroupingHandlerConfiguration.TYPE.LOCAL.getType()) ? GroupingHandlerConfiguration.TYPE.LOCAL
-                                                                                                                                    : GroupingHandlerConfiguration.TYPE.REMOTE,
-                                                                      new SimpleString(address),
-                                                                      timeout);
-   }
-
-   private void parseBridgeConfiguration(final Element brNode)
-   {
-      String name = brNode.getAttribute("name");
-
-      String queueName = XMLConfigurationUtil.getString(brNode, "queue-name", null, Validators.NOT_NULL_OR_EMPTY);
-
-      String forwardingAddress = XMLConfigurationUtil.getString(brNode,
-                                                                "forwarding-address",
-                                                                null,
-                                                                Validators.NOT_NULL_OR_EMPTY);
-
-      String transformerClassName = XMLConfigurationUtil.getString(brNode,
-                                                                   "transformer-class-name",
-                                                                   null,
-                                                                   Validators.NO_CHECK);
-
-      long retryInterval = XMLConfigurationUtil.getLong(brNode,
-                                                        "retry-interval",
-                                                        ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
-                                                        Validators.GT_ZERO);
-
-      // Default bridge conf
-      int confirmationWindowSize = XMLConfigurationUtil.getInteger(brNode,
-                                                                   "confirmation-window-size",
-                                                                   FileConfiguration.DEFAULT_CONFIRMATION_WINDOW_SIZE,
-                                                                   Validators.GT_ZERO);
-
-      double retryIntervalMultiplier = XMLConfigurationUtil.getDouble(brNode,
-                                                                      "retry-interval-multiplier",
-                                                                      ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
-                                                                      Validators.GT_ZERO);
-
-      int reconnectAttempts = XMLConfigurationUtil.getInteger(brNode,
-                                                              "reconnect-attempts",
-                                                              ConfigurationImpl.DEFAULT_BRIDGE_RECONNECT_ATTEMPTS,
-                                                              Validators.MINUS_ONE_OR_GE_ZERO);
-
-      boolean failoverOnServerShutdown = XMLConfigurationUtil.getBoolean(brNode,
-                                                                         "failover-on-server-shutdown",
-                                                                         ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
-
-      boolean useDuplicateDetection = XMLConfigurationUtil.getBoolean(brNode,
-                                                                      "use-duplicate-detection",
-                                                                      ConfigurationImpl.DEFAULT_BRIDGE_DUPLICATE_DETECTION);
-
-      String filterString = null;
-
-      Pair<String, String> connectorPair = null;
-
-      String discoveryGroupName = null;
-
-      NodeList children = brNode.getChildNodes();
-
-      for (int j = 0; j < children.getLength(); j++)
-      {
-         Node child = children.item(j);
-
-         if (child.getNodeName().equals("filter"))
-         {
-            filterString = child.getAttributes().getNamedItem("string").getNodeValue();
-         }
-         else if (child.getNodeName().equals("discovery-group-ref"))
-         {
-            discoveryGroupName = child.getAttributes().getNamedItem("discovery-group-name").getNodeValue();
-         }
-         else if (child.getNodeName().equals("connector-ref"))
-         {
-            String connectorName = child.getAttributes().getNamedItem("connector-name").getNodeValue();
-
-            Node backupNode = child.getAttributes().getNamedItem("backup-connector-name");
-
-            String backupConnectorName = null;
-
-            if (backupNode != null)
-            {
-               backupConnectorName = backupNode.getNodeValue();
-            }
-
-            connectorPair = new Pair<String, String>(connectorName, backupConnectorName);
-         }
-      }
-
-      BridgeConfiguration config;
-
-      if (connectorPair != null)
-      {
-         config = new BridgeConfiguration(name,
-                                          queueName,
-                                          forwardingAddress,
-                                          filterString,
-                                          transformerClassName,
-                                          retryInterval,
-                                          retryIntervalMultiplier,
-                                          reconnectAttempts,
-                                          failoverOnServerShutdown,
-                                          useDuplicateDetection,
-                                          confirmationWindowSize,
-                                          ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
-                                          connectorPair);
-      }
-      else
-      {
-         config = new BridgeConfiguration(name,
-                                          queueName,
-                                          forwardingAddress,
-                                          filterString,
-                                          transformerClassName,
-                                          retryInterval,
-                                          retryIntervalMultiplier,
-                                          reconnectAttempts,
-                                          failoverOnServerShutdown,
-                                          useDuplicateDetection,
-                                          confirmationWindowSize,
-                                          ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
-                                          discoveryGroupName);
-      }
-
-      bridgeConfigurations.add(config);
-   }
-
-   private void parseDivertConfiguration(final Element e)
-   {
-      String name = e.getAttribute("name");
-
-      String routingName = XMLConfigurationUtil.getString(e, "routing-name", null, Validators.NO_CHECK);
-
-      String address = XMLConfigurationUtil.getString(e, "address", null, Validators.NOT_NULL_OR_EMPTY);
-
-      String forwardingAddress = XMLConfigurationUtil.getString(e,
-                                                                "forwarding-address",
-                                                                null,
-                                                                Validators.NOT_NULL_OR_EMPTY);
-
-      boolean exclusive = XMLConfigurationUtil.getBoolean(e, "exclusive", ConfigurationImpl.DEFAULT_DIVERT_EXCLUSIVE);
-
-      String transformerClassName = XMLConfigurationUtil.getString(e,
-                                                                   "transformer-class-name",
-                                                                   null,
-                                                                   Validators.NO_CHECK);
-
-      String filterString = null;
-
-      NodeList children = e.getChildNodes();
-
-      for (int j = 0; j < children.getLength(); j++)
-      {
-         Node child = children.item(j);
-
-         if (child.getNodeName().equals("filter"))
-         {
-            filterString = child.getAttributes().getNamedItem("string").getNodeValue();
-         }
-      }
-
-      DivertConfiguration config = new DivertConfiguration(name,
-                                                           routingName,
-                                                           address,
-                                                           forwardingAddress,
-                                                           exclusive,
-                                                           filterString,
-                                                           transformerClassName);
-
-      divertConfigurations.add(config);
-   }
-}

Modified: trunk/src/main/org/hornetq/api/core/management/HornetQServerControl.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/management/HornetQServerControl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/core/management/HornetQServerControl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,8 +15,8 @@
 
 import javax.management.MBeanOperationInfo;
 
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.server.management.Operation;
 import org.hornetq.core.server.management.Parameter;
 

Copied: trunk/src/main/org/hornetq/api/core/management/ManagementHelper.java (from rev 8720, trunk/src/main/org/hornetq/api/core/management/client/ManagementHelper.java)
===================================================================
--- trunk/src/main/org/hornetq/api/core/management/ManagementHelper.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/api/core/management/ManagementHelper.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,407 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.api.core.management;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import org.hornetq.api.SimpleString;
+import org.hornetq.api.core.message.Message;
+import org.hornetq.core.logging.Logger;
+import org.hornetq.utils.json.JSONArray;
+import org.hornetq.utils.json.JSONObject;
+
+/*
+ * 
+ * Operation params and results are encoded as JSON arrays
+ * 
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * @version <tt>$Revision$</tt>
+ */
+public class ManagementHelper
+{
+   // Constants -----------------------------------------------------
+
+   private static final Logger log = Logger.getLogger(ManagementHelper.class);
+
+   public static final SimpleString HDR_RESOURCE_NAME = new SimpleString("_HQ_ResourceName");
+
+   public static final SimpleString HDR_ATTRIBUTE = new SimpleString("_HQ_Attribute");
+
+   public static final SimpleString HDR_OPERATION_NAME = new SimpleString("_HQ_OperationName");
+
+   public static final SimpleString HDR_OPERATION_SUCCEEDED = new SimpleString("_HQ_OperationSucceeded");
+
+   public static final SimpleString HDR_NOTIFICATION_TYPE = new SimpleString("_HQ_NotifType");
+
+   public static final SimpleString HDR_NOTIFICATION_TIMESTAMP = new SimpleString("_HQ_NotifTimestamp");
+
+   public static final SimpleString HDR_ROUTING_NAME = new SimpleString("_HQ_RoutingName");
+
+   public static final SimpleString HDR_CLUSTER_NAME = new SimpleString("_HQ_ClusterName");
+
+   public static final SimpleString HDR_ADDRESS = new SimpleString("_HQ_Address");
+
+   public static final SimpleString HDR_BINDING_ID = new SimpleString("_HQ_Binding_ID");
+
+   public static final SimpleString HDR_BINDING_TYPE = new SimpleString("_HQ_Binding_Type");
+
+   public static final SimpleString HDR_FILTERSTRING = new SimpleString("_HQ_FilterString");
+
+   public static final SimpleString HDR_DISTANCE = new SimpleString("_HQ_Distance");
+
+   public static final SimpleString HDR_CONSUMER_COUNT = new SimpleString("_HQ_ConsumerCount");
+
+   public static final SimpleString HDR_USER = new SimpleString("_HQ_User");
+
+   public static final SimpleString HDR_CHECK_TYPE = new SimpleString("_HQ_CheckType");
+
+   public static final SimpleString HDR_PROPOSAL_GROUP_ID = new SimpleString("_JBM_ProposalGroupId");
+
+   public static final SimpleString HDR_PROPOSAL_VALUE = new SimpleString("_JBM_ProposalValue");
+
+   public static final SimpleString HDR_PROPOSAL_ALT_VALUE = new SimpleString("_JBM_ProposalAltValue");
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   public static void putAttribute(final Message message, final String resourceName, final String attribute)
+   {
+      message.putStringProperty(ManagementHelper.HDR_RESOURCE_NAME, new SimpleString(resourceName));
+      message.putStringProperty(ManagementHelper.HDR_ATTRIBUTE, new SimpleString(attribute));
+   }
+
+   public static void putOperationInvocation(final Message message,
+                                             final String resourceName,
+                                             final String operationName) throws Exception
+   {
+      ManagementHelper.putOperationInvocation(message, resourceName, operationName, (Object[])null);
+   }
+
+   public static void putOperationInvocation(final Message message,
+                                             final String resourceName,
+                                             final String operationName,
+                                             final Object... parameters) throws Exception
+   {
+      // store the name of the operation in the headers
+      message.putStringProperty(ManagementHelper.HDR_RESOURCE_NAME, new SimpleString(resourceName));
+      message.putStringProperty(ManagementHelper.HDR_OPERATION_NAME, new SimpleString(operationName));
+
+      // and the params go in the body, since might be too large for header
+
+      String paramString;
+
+      if (parameters != null)
+      {
+         JSONArray jsonArray = ManagementHelper.toJSONArray(parameters);
+
+         paramString = jsonArray.toString();
+      }
+      else
+      {
+         paramString = null;
+      }
+
+      message.getBodyBuffer().writeNullableString(paramString);
+   }
+
+   private static JSONArray toJSONArray(final Object[] array) throws Exception
+   {
+      JSONArray jsonArray = new JSONArray();
+
+      for (Object parameter : array)
+      {
+         if (parameter instanceof Map)
+         {
+            Map<String, Object> map = (Map<String, Object>)parameter;
+
+            JSONObject jsonObject = new JSONObject();
+
+            for (Map.Entry<String, Object> entry : map.entrySet())
+            {
+               String key = entry.getKey();
+
+               Object val = entry.getValue();
+
+               if (val != null)
+               {
+                  if (val.getClass().isArray())
+                  {
+                     val = ManagementHelper.toJSONArray((Object[])val);
+                  }
+                  else
+                  {
+                     ManagementHelper.checkType(val);
+                  }
+               }
+
+               jsonObject.put(key, val);
+            }
+
+            jsonArray.put(jsonObject);
+         }
+         else
+         {
+            if (parameter != null)
+            {
+               Class clz = parameter.getClass();
+
+               if (clz.isArray())
+               {
+                  Object[] innerArray = (Object[])parameter;
+
+                  jsonArray.put(ManagementHelper.toJSONArray(innerArray));
+               }
+               else
+               {
+                  ManagementHelper.checkType(parameter);
+
+                  jsonArray.put(parameter);
+               }
+            }
+            else
+            {
+               jsonArray.put((Object)null);
+            }
+         }
+      }
+
+      return jsonArray;
+   }
+
+   private static Object[] fromJSONArray(final JSONArray jsonArray) throws Exception
+   {
+      Object[] array = new Object[jsonArray.length()];
+
+      for (int i = 0; i < jsonArray.length(); i++)
+      {
+         Object val = jsonArray.get(i);
+
+         if (val instanceof JSONArray)
+         {
+            Object[] inner = ManagementHelper.fromJSONArray((JSONArray)val);
+
+            array[i] = inner;
+         }
+         else if (val instanceof JSONObject)
+         {
+            JSONObject jsonObject = (JSONObject)val;
+
+            Map<String, Object> map = new HashMap<String, Object>();
+
+            Iterator<String> iter = jsonObject.keys();
+
+            while (iter.hasNext())
+            {
+               String key = iter.next();
+
+               Object innerVal = jsonObject.get(key);
+
+               if (innerVal instanceof JSONArray)
+               {
+                  innerVal = ManagementHelper.fromJSONArray(((JSONArray)innerVal));
+               }
+               else if (innerVal instanceof JSONObject)
+               {
+                  Map<String, Object> innerMap = new HashMap<String, Object>();
+                  JSONObject o = (JSONObject)innerVal;
+                  Iterator it = o.keys();
+                  while (it.hasNext())
+                  {
+                     String k = (String)it.next();
+                     innerMap.put(k, o.get(k));
+                  }
+                  innerVal = innerMap;
+               }
+               else if (innerVal instanceof Integer)
+               {
+                  innerVal = ((Integer)innerVal).longValue();
+               }
+
+               map.put(key, innerVal);
+            }
+
+            array[i] = map;
+         }
+         else
+         {
+            if (val == JSONObject.NULL)
+            {
+               array[i] = null;
+            }
+            else
+            {
+               array[i] = val;
+            }
+         }
+      }
+
+      return array;
+   }
+
+   private static void checkType(final Object param)
+   {
+      if (param instanceof Integer == false && param instanceof Long == false &&
+          param instanceof Double == false &&
+          param instanceof String == false &&
+          param instanceof Boolean == false &&
+          param instanceof Map == false &&
+          param instanceof Byte == false &&
+          param instanceof Short == false)
+      {
+         throw new IllegalArgumentException("Params for management operations must be of the following type: " + "int long double String boolean Map or array thereof " +
+                                            " but found " +
+                                            param.getClass().getName());
+      }
+   }
+
+   public static Object[] retrieveOperationParameters(final Message message) throws Exception
+   {
+      String jsonString = message.getBodyBuffer().readNullableString();
+
+      if (jsonString != null)
+      {
+         JSONArray jsonArray = new JSONArray(jsonString);
+
+         return ManagementHelper.fromJSONArray(jsonArray);
+      }
+      else
+      {
+         return null;
+      }
+   }
+
+   public static boolean isOperationResult(final Message message)
+   {
+      return message.containsProperty(ManagementHelper.HDR_OPERATION_SUCCEEDED);
+   }
+
+   public static boolean isAttributesResult(final Message message)
+   {
+      return !ManagementHelper.isOperationResult(message);
+   }
+
+   public static void storeResult(final Message message, final Object result) throws Exception
+   {
+      String resultString;
+
+      if (result != null)
+      {
+         // Result is stored in body, also encoded as JSON array of length 1
+
+         JSONArray jsonArray = ManagementHelper.toJSONArray(new Object[] { result });
+
+         resultString = jsonArray.toString();
+      }
+      else
+      {
+         resultString = null;
+      }
+
+      message.getBodyBuffer().writeNullableString(resultString);
+   }
+
+   public static Object[] getResults(final Message message) throws Exception
+   {
+      String jsonString = message.getBodyBuffer().readNullableString();
+
+      if (jsonString != null)
+      {
+         JSONArray jsonArray = new JSONArray(jsonString);
+
+         Object[] res = ManagementHelper.fromJSONArray(jsonArray);
+
+         return res;
+      }
+      else
+      {
+         return null;
+      }
+   }
+
+   public static Object getResult(final Message message) throws Exception
+   {
+      Object[] res = ManagementHelper.getResults(message);
+
+      if (res != null)
+      {
+         return res[0];
+      }
+      else
+      {
+         return null;
+      }
+   }
+
+   public static boolean hasOperationSucceeded(final Message message)
+   {
+      if (!ManagementHelper.isOperationResult(message))
+      {
+         return false;
+      }
+      if (message.containsProperty(ManagementHelper.HDR_OPERATION_SUCCEEDED))
+      {
+         return message.getBooleanProperty(ManagementHelper.HDR_OPERATION_SUCCEEDED);
+      }
+      return false;
+   }
+
+   public static Map<String, Object> fromCommaSeparatedKeyValues(final String str) throws Exception
+   {
+      if (str == null || str.trim().length() == 0)
+      {
+         return Collections.emptyMap();
+      }
+
+      // create a JSON array with 1 object:
+      JSONArray array = new JSONArray("[{" + str + "}]");
+      Map<String, Object> params = (Map<String, Object>)ManagementHelper.fromJSONArray(array)[0];
+      return params;
+   }
+
+   public static Object[] fromCommaSeparatedArrayOfCommaSeparatedKeyValues(final String str) throws Exception
+   {
+      if (str == null || str.trim().length() == 0)
+      {
+         return new Object[0];
+      }
+
+      String s = str;
+
+      // if there is a single item, we wrap it in to make it a JSON object
+      if (!s.trim().startsWith("{"))
+      {
+         s = "{" + s + "}";
+      }
+      JSONArray array = new JSONArray("[" + s + "]");
+      return ManagementHelper.fromJSONArray(array);
+   }
+
+   // Constructors --------------------------------------------------
+
+   // Public --------------------------------------------------------
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+}

Modified: trunk/src/main/org/hornetq/api/core/management/ObjectNameBuilder.java
===================================================================
--- trunk/src/main/org/hornetq/api/core/management/ObjectNameBuilder.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/core/management/ObjectNameBuilder.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,11 +16,11 @@
 import javax.management.ObjectName;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.jms.management.ConnectionFactoryControl;
 import org.hornetq.api.jms.management.JMSQueueControl;
 import org.hornetq.api.jms.management.JMSServerControl;
 import org.hornetq.api.jms.management.TopicControl;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 
 /**
  * Helper class to build ObjectNames for HornetQ resources.

Deleted: trunk/src/main/org/hornetq/api/jms/bridge/ConnectionFactoryFactory.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/bridge/ConnectionFactoryFactory.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/jms/bridge/ConnectionFactoryFactory.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,30 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.jms.bridge;
-
-import javax.jms.ConnectionFactory;
-
-/**
- * A ConnectionFactoryFactory
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision$</tt>
- *
- * $Id$
- *
- */
-public interface ConnectionFactoryFactory
-{
-   ConnectionFactory createConnectionFactory() throws Exception;
-}

Deleted: trunk/src/main/org/hornetq/api/jms/bridge/DestinationFactory.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/bridge/DestinationFactory.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/jms/bridge/DestinationFactory.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,29 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.jms.bridge;
-
-import javax.jms.Destination;
-
-/**
- * 
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision: $</tt>10 Oct 2007
- *
- * $Id: $
- *
- */
-public interface DestinationFactory
-{
-   Destination createDestination() throws Exception;
-}

Deleted: trunk/src/main/org/hornetq/api/jms/bridge/JMSBridge.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/bridge/JMSBridge.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/jms/bridge/JMSBridge.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,112 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.jms.bridge;
-
-import javax.transaction.TransactionManager;
-
-import org.hornetq.core.server.HornetQComponent;
-
-/**
- * 
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public interface JMSBridge extends HornetQComponent
-{
-   void pause() throws Exception;
-
-   void resume() throws Exception;
-
-   DestinationFactory getSourceDestinationFactory();
-
-   void setSourceDestinationFactory(DestinationFactory dest);
-
-   DestinationFactory getTargetDestinationFactory();
-
-   void setTargetDestinationFactory(DestinationFactory dest);
-
-   String getSourceUsername();
-
-   void setSourceUsername(String name);
-
-   String getSourcePassword();
-
-   void setSourcePassword(String pwd);
-
-   String getTargetUsername();
-
-   void setTargetUsername(String name);
-
-   String getTargetPassword();
-
-   void setTargetPassword(String pwd);
-
-   String getSelector();
-
-   void setSelector(String selector);
-
-   long getFailureRetryInterval();
-
-   void setFailureRetryInterval(long interval);
-
-   int getMaxRetries();
-
-   void setMaxRetries(int retries);
-
-   QualityOfServiceMode getQualityOfServiceMode();
-
-   void setQualityOfServiceMode(QualityOfServiceMode mode);
-
-   int getMaxBatchSize();
-
-   void setMaxBatchSize(int size);
-
-   long getMaxBatchTime();
-
-   void setMaxBatchTime(long time);
-
-   String getSubscriptionName();
-
-   void setSubscriptionName(String subname);
-
-   String getClientID();
-
-   void setClientID(String clientID);
-
-   String getTransactionManagerLocatorClass();
-
-   void setTransactionManagerLocatorClass(String transactionManagerLocatorClass);
-
-   String getTransactionManagerLocatorMethod();
-
-   void setTransactionManagerLocatorMethod(String transactionManagerLocatorMethod);
-
-   boolean isAddMessageIDInHeader();
-
-   void setAddMessageIDInHeader(boolean value);
-
-   boolean isPaused();
-
-   boolean isFailed();
-
-   void setSourceConnectionFactoryFactory(ConnectionFactoryFactory cff);
-
-   void setTargetConnectionFactoryFactory(ConnectionFactoryFactory cff);
-
-   void setTransactionManager(TransactionManager tm);
-
-}
\ No newline at end of file

Deleted: trunk/src/main/org/hornetq/api/jms/bridge/JMSBridgeControl.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/bridge/JMSBridgeControl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/jms/bridge/JMSBridgeControl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,94 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.jms.bridge;
-
-import org.hornetq.api.core.management.HornetQComponentControl;
-
-/**
- * A JMSBridgeControl
- *
- * @author <a href="jose at voxeo.com">Jose de Castro</a>
- *
- */
-public interface JMSBridgeControl extends HornetQComponentControl
-{
-   void pause() throws Exception;
-
-   void resume() throws Exception;
-
-   String getSourceUsername();
-
-   void setSourceUsername(String name);
-
-   String getSourcePassword();
-
-   void setSourcePassword(String pwd);
-
-   String getTargetUsername();
-
-   void setTargetUsername(String name);
-
-   String getTargetPassword();
-
-   void setTargetPassword(String pwd);
-
-   String getSelector();
-
-   void setSelector(String selector);
-
-   long getFailureRetryInterval();
-
-   void setFailureRetryInterval(long interval);
-
-   int getMaxRetries();
-
-   void setMaxRetries(int retries);
-
-   String getQualityOfServiceMode();
-
-   void setQualityOfServiceMode(String mode);
-
-   int getMaxBatchSize();
-
-   void setMaxBatchSize(int size);
-
-   long getMaxBatchTime();
-
-   void setMaxBatchTime(long time);
-
-   String getSubscriptionName();
-
-   void setSubscriptionName(String subname);
-
-   String getClientID();
-
-   void setClientID(String clientID);
-
-   String getTransactionManagerLocatorClass();
-
-   void setTransactionManagerLocatorClass(String transactionManagerLocatorClass);
-
-   String getTransactionManagerLocatorMethod();
-
-   void setTransactionManagerLocatorMethod(String transactionManagerLocatorMethod);
-
-   boolean isAddMessageIDInHeader();
-
-   void setAddMessageIDInHeader(boolean value);
-
-   boolean isPaused();
-
-   boolean isFailed();
-
-}

Deleted: trunk/src/main/org/hornetq/api/jms/bridge/JMSBridgeImpl.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/bridge/JMSBridgeImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/jms/bridge/JMSBridgeImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,2004 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.jms.bridge;
-
-import java.lang.reflect.Method;
-import java.util.Enumeration;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.LinkedList;
-import java.util.Map;
-
-import javax.jms.Connection;
-import javax.jms.ConnectionFactory;
-import javax.jms.Destination;
-import javax.jms.ExceptionListener;
-import javax.jms.JMSException;
-import javax.jms.Message;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageProducer;
-import javax.jms.Session;
-import javax.jms.Topic;
-import javax.jms.XAConnection;
-import javax.jms.XAConnectionFactory;
-import javax.jms.XASession;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import javax.management.StandardMBean;
-import javax.transaction.Transaction;
-import javax.transaction.TransactionManager;
-import javax.transaction.xa.XAResource;
-
-import org.hornetq.api.core.client.ClientSession;
-import org.hornetq.api.jms.HornetQMessageConstants;
-import org.hornetq.core.logging.Logger;
-import org.hornetq.core.server.HornetQComponent;
-import org.hornetq.jms.bridge.impl.JMSBridgeControlImpl;
-import org.hornetq.jms.client.HornetQSession;
-
-/**
- * 
- * A JMSBridge
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision:4566 $</tt>
- *
- * $Id:JMSBridge.java 4566 2008-06-24 08:01:35Z jmesnil $
- *
- */
-public class JMSBridgeImpl implements HornetQComponent, JMSBridge
-{
-   private static final Logger log;
-
-   private static boolean trace;
-
-   static
-   {
-      log = Logger.getLogger(JMSBridgeImpl.class);
-
-      JMSBridgeImpl.trace = JMSBridgeImpl.log.isTraceEnabled();
-   }
-
-   private static final int TEN_YEARS = 60 * 60 * 24 * 365 * 10; // in ms
-
-   private final Object lock = new Object();
-
-   private String sourceUsername;
-
-   private String sourcePassword;
-
-   private String targetUsername;
-
-   private String targetPassword;
-
-   private TransactionManager tm;
-
-   private String selector;
-
-   private long failureRetryInterval;
-
-   private int maxRetries;
-
-   private QualityOfServiceMode qualityOfServiceMode;
-
-   private int maxBatchSize;
-
-   private long maxBatchTime;
-
-   private String subName;
-
-   private String clientID;
-
-   private volatile boolean addMessageIDInHeader;
-
-   private boolean started;
-
-   private final LinkedList<Message> messages;
-
-   private ConnectionFactoryFactory sourceCff;
-
-   private ConnectionFactoryFactory targetCff;
-
-   private DestinationFactory sourceDestinationFactory;
-
-   private DestinationFactory targetDestinationFactory;
-
-   private Connection sourceConn;
-
-   private Connection targetConn;
-
-   private Destination sourceDestination;
-
-   private Destination targetDestination;
-
-   private Session sourceSession;
-
-   private Session targetSession;
-
-   private MessageConsumer sourceConsumer;
-
-   private MessageProducer targetProducer;
-
-   private BatchTimeChecker timeChecker;
-
-   private Thread checkerThread;
-
-   private Thread sourceReceiver;
-
-   private long batchExpiryTime;
-
-   private boolean paused;
-
-   private Transaction tx;
-
-   private boolean failed;
-
-   private int forwardMode;
-
-   private String transactionManagerLocatorClass = "org.hornetq.integration.jboss.tm.JBoss5TransactionManagerLocator";
-
-   private String transactionManagerLocatorMethod = "getTm";
-
-   private MBeanServer mbeanServer;
-
-   private ObjectName objectName;
-
-   private static final int FORWARD_MODE_XA = 0;
-
-   private static final int FORWARD_MODE_LOCALTX = 1;
-
-   private static final int FORWARD_MODE_NONTX = 2;
-
-   /*
-    * Constructor for MBean
-    */
-   public JMSBridgeImpl()
-   {
-      messages = new LinkedList<Message>();
-   }
-
-   public JMSBridgeImpl(final ConnectionFactoryFactory sourceCff,
-                        final ConnectionFactoryFactory targetCff,
-                        final DestinationFactory sourceDestinationFactory,
-                        final DestinationFactory targetDestinationFactory,
-                        final String sourceUsername,
-                        final String sourcePassword,
-                        final String targetUsername,
-                        final String targetPassword,
-                        final String selector,
-                        final long failureRetryInterval,
-                        final int maxRetries,
-                        final QualityOfServiceMode qosMode,
-                        final int maxBatchSize,
-                        final long maxBatchTime,
-                        final String subName,
-                        final String clientID,
-                        final boolean addMessageIDInHeader)
-   {
-
-      this(sourceCff,
-           targetCff,
-           sourceDestinationFactory,
-           targetDestinationFactory,
-           sourceUsername,
-           sourcePassword,
-           targetUsername,
-           targetPassword,
-           selector,
-           failureRetryInterval,
-           maxRetries,
-           qosMode,
-           maxBatchSize,
-           maxBatchTime,
-           subName,
-           clientID,
-           addMessageIDInHeader,
-           null,
-           null);
-   }
-
-   public JMSBridgeImpl(final ConnectionFactoryFactory sourceCff,
-                        final ConnectionFactoryFactory targetCff,
-                        final DestinationFactory sourceDestinationFactory,
-                        final DestinationFactory targetDestinationFactory,
-                        final String sourceUsername,
-                        final String sourcePassword,
-                        final String targetUsername,
-                        final String targetPassword,
-                        final String selector,
-                        final long failureRetryInterval,
-                        final int maxRetries,
-                        final QualityOfServiceMode qosMode,
-                        final int maxBatchSize,
-                        final long maxBatchTime,
-                        final String subName,
-                        final String clientID,
-                        final boolean addMessageIDInHeader,
-                        final MBeanServer mbeanServer,
-                        final String objectName)
-   {
-      this();
-
-      this.sourceCff = sourceCff;
-
-      this.targetCff = targetCff;
-
-      this.sourceDestinationFactory = sourceDestinationFactory;
-
-      this.targetDestinationFactory = targetDestinationFactory;
-
-      this.sourceUsername = sourceUsername;
-
-      this.sourcePassword = sourcePassword;
-
-      this.targetUsername = targetUsername;
-
-      this.targetPassword = targetPassword;
-
-      this.selector = selector;
-
-      this.failureRetryInterval = failureRetryInterval;
-
-      this.maxRetries = maxRetries;
-
-      qualityOfServiceMode = qosMode;
-
-      this.maxBatchSize = maxBatchSize;
-
-      this.maxBatchTime = maxBatchTime;
-
-      this.subName = subName;
-
-      this.clientID = clientID;
-
-      this.addMessageIDInHeader = addMessageIDInHeader;
-
-      checkParams();
-
-      if (mbeanServer != null)
-      {
-         if (objectName != null)
-         {
-            this.mbeanServer = mbeanServer;
-
-            try
-            {
-               JMSBridgeControlImpl controlBean = new JMSBridgeControlImpl(this);
-               this.objectName = ObjectName.getInstance(objectName);
-               StandardMBean mbean = new StandardMBean(controlBean, JMSBridgeControl.class);
-               mbeanServer.registerMBean(mbean, this.objectName);
-               JMSBridgeImpl.log.debug("Registered JMSBridge instance as: " + this.objectName.getCanonicalName());
-            }
-            catch (Exception e)
-            {
-               throw new IllegalStateException("Failed to register JMSBridge MBean", e);
-            }
-         }
-         else
-         {
-            throw new IllegalArgumentException("objectName is required when specifying an MBeanServer");
-         }
-      }
-
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Created " + this);
-      }
-   }
-
-   // HornetQComponent overrides --------------------------------------------------
-
-   public synchronized void start() throws Exception
-   {
-      if (started)
-      {
-         JMSBridgeImpl.log.warn("Attempt to start, but is already started");
-         return;
-      }
-
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Starting " + this);
-      }
-
-      checkParams();
-
-      TransactionManager tm = getTm();
-
-      // There may already be a JTA transaction associated to the thread
-
-      boolean ok;
-
-      Transaction toResume = null;
-      try
-      {
-         toResume = tm.suspend();
-
-         ok = setupJMSObjects();
-      }
-      finally
-      {
-         if (toResume != null)
-         {
-            tm.resume(toResume);
-         }
-      }
-
-      if (ok)
-      {
-         // start the source connection
-
-         sourceConn.start();
-
-         started = true;
-
-         if (maxBatchTime != -1)
-         {
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Starting time checker thread");
-            }
-
-            timeChecker = new BatchTimeChecker();
-
-            checkerThread = new Thread(timeChecker, "jmsbridge-checker-thread");
-
-            batchExpiryTime = System.currentTimeMillis() + maxBatchTime;
-
-            checkerThread.start();
-
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Started time checker thread");
-            }
-         }
-
-         sourceReceiver = new SourceReceiver();
-         sourceReceiver.start();
-
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Started " + this);
-         }
-      }
-      else
-      {
-         JMSBridgeImpl.log.warn("Failed to start bridge");
-         handleFailureOnStartup();
-      }
-
-   }
-
-   public synchronized void stop() throws Exception
-   {
-      if (!started)
-      {
-         JMSBridgeImpl.log.warn("Attempt to stop, but is already stopped");
-         return;
-      }
-
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Stopping " + this);
-      }
-
-      synchronized (lock)
-      {
-         started = false;
-
-         // This must be inside sync block
-         if (checkerThread != null)
-         {
-            checkerThread.interrupt();
-         }
-
-         if (sourceReceiver != null)
-         {
-            sourceReceiver.interrupt();
-         }
-      }
-
-      // This must be outside sync block
-      if (checkerThread != null)
-      {
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Waiting for checker thread to finish");
-         }
-
-         checkerThread.join();
-
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Checker thread has finished");
-         }
-      }
-
-      // This must be outside sync block
-      if (sourceReceiver != null)
-      {
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Waiting for source receiver thread to finish");
-         }
-
-         sourceReceiver.join();
-
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Source receiver thread has finished");
-         }
-      }
-
-      if (tx != null)
-      {
-         // Terminate any transaction
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Rolling back remaining tx");
-         }
-
-         try
-         {
-            tx.rollback();
-         }
-         catch (Exception ignore)
-         {
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Failed to rollback", ignore);
-            }
-         }
-
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Rolled back remaining tx");
-         }
-      }
-
-      try
-      {
-         sourceConn.close();
-      }
-      catch (Exception ignore)
-      {
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Failed to close source conn", ignore);
-         }
-      }
-
-      if (targetConn != null)
-      {
-         try
-         {
-            targetConn.close();
-         }
-         catch (Exception ignore)
-         {
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Failed to close target conn", ignore);
-            }
-         }
-      }
-
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Stopped " + this);
-      }
-   }
-
-   public synchronized boolean isStarted()
-   {
-      return started;
-   }
-
-   public void destroy()
-   {
-      if (mbeanServer != null && objectName != null)
-      {
-         try
-         {
-            mbeanServer.unregisterMBean(objectName);
-         }
-         catch (Exception e)
-         {
-            JMSBridgeImpl.log.warn("Failed to unregisted JMS Bridge " + objectName);
-         }
-      }
-   }
-
-   // JMSBridge implementation ------------------------------------------------------------
-
-   public synchronized void pause() throws Exception
-   {
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Pausing " + this);
-      }
-
-      synchronized (lock)
-      {
-         paused = true;
-
-         sourceConn.stop();
-      }
-
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Paused " + this);
-      }
-   }
-
-   public synchronized void resume() throws Exception
-   {
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Resuming " + this);
-      }
-
-      synchronized (lock)
-      {
-         paused = false;
-
-         sourceConn.start();
-      }
-
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Resumed " + this);
-      }
-   }
-
-   public DestinationFactory getSourceDestinationFactory()
-   {
-      return sourceDestinationFactory;
-   }
-
-   public void setSourceDestinationFactory(final DestinationFactory dest)
-   {
-      checkBridgeNotStarted();
-      JMSBridgeImpl.checkNotNull(dest, "TargetDestinationFactory");
-
-      sourceDestinationFactory = dest;
-   }
-
-   public DestinationFactory getTargetDestinationFactory()
-   {
-      return targetDestinationFactory;
-   }
-
-   public void setTargetDestinationFactory(final DestinationFactory dest)
-   {
-      checkBridgeNotStarted();
-      JMSBridgeImpl.checkNotNull(dest, "TargetDestinationFactory");
-
-      targetDestinationFactory = dest;
-   }
-
-   public String getSourceUsername()
-   {
-      return sourceUsername;
-   }
-
-   public synchronized void setSourceUsername(final String name)
-   {
-      checkBridgeNotStarted();
-
-      sourceUsername = name;
-   }
-
-   public synchronized String getSourcePassword()
-   {
-      return sourcePassword;
-   }
-
-   public synchronized void setSourcePassword(final String pwd)
-   {
-      checkBridgeNotStarted();
-
-      sourcePassword = pwd;
-   }
-
-   public synchronized String getTargetUsername()
-   {
-      return targetUsername;
-   }
-
-   public synchronized void setTargetUsername(final String name)
-   {
-      checkBridgeNotStarted();
-
-      targetUsername = name;
-   }
-
-   public synchronized String getTargetPassword()
-   {
-      return targetPassword;
-   }
-
-   public synchronized void setTargetPassword(final String pwd)
-   {
-      checkBridgeNotStarted();
-
-      targetPassword = pwd;
-   }
-
-   public synchronized String getSelector()
-   {
-      return selector;
-   }
-
-   public synchronized void setSelector(final String selector)
-   {
-      checkBridgeNotStarted();
-
-      this.selector = selector;
-   }
-
-   public synchronized long getFailureRetryInterval()
-   {
-      return failureRetryInterval;
-   }
-
-   public synchronized void setFailureRetryInterval(final long interval)
-   {
-      checkBridgeNotStarted();
-      if (interval < 1)
-      {
-         throw new IllegalArgumentException("FailureRetryInterval must be >= 1");
-      }
-
-      failureRetryInterval = interval;
-   }
-
-   public synchronized int getMaxRetries()
-   {
-      return maxRetries;
-   }
-
-   public synchronized void setMaxRetries(final int retries)
-   {
-      checkBridgeNotStarted();
-      JMSBridgeImpl.checkValidValue(retries, "MaxRetries");
-
-      maxRetries = retries;
-   }
-
-   public synchronized QualityOfServiceMode getQualityOfServiceMode()
-   {
-      return qualityOfServiceMode;
-   }
-
-   public synchronized void setQualityOfServiceMode(final QualityOfServiceMode mode)
-   {
-      checkBridgeNotStarted();
-      JMSBridgeImpl.checkNotNull(mode, "QualityOfServiceMode");
-
-      qualityOfServiceMode = mode;
-   }
-
-   public synchronized int getMaxBatchSize()
-   {
-      return maxBatchSize;
-   }
-
-   public synchronized void setMaxBatchSize(final int size)
-   {
-      checkBridgeNotStarted();
-      JMSBridgeImpl.checkMaxBatchSize(size);
-
-      maxBatchSize = size;
-   }
-
-   public synchronized long getMaxBatchTime()
-   {
-      return maxBatchTime;
-   }
-
-   public synchronized void setMaxBatchTime(final long time)
-   {
-      checkBridgeNotStarted();
-      JMSBridgeImpl.checkValidValue(time, "MaxBatchTime");
-
-      maxBatchTime = time;
-   }
-
-   public synchronized String getSubscriptionName()
-   {
-      return subName;
-   }
-
-   public synchronized void setSubscriptionName(final String subname)
-   {
-      checkBridgeNotStarted();
-      subName = subname;
-   }
-
-   public synchronized String getClientID()
-   {
-      return clientID;
-   }
-
-   public synchronized void setClientID(final String clientID)
-   {
-      checkBridgeNotStarted();
-
-      this.clientID = clientID;
-   }
-
-   public String getTransactionManagerLocatorClass()
-   {
-      return transactionManagerLocatorClass;
-   }
-
-   public void setTransactionManagerLocatorClass(final String transactionManagerLocatorClass)
-   {
-      checkBridgeNotStarted();
-      this.transactionManagerLocatorClass = transactionManagerLocatorClass;
-   }
-
-   public String getTransactionManagerLocatorMethod()
-   {
-      return transactionManagerLocatorMethod;
-   }
-
-   public void setTransactionManagerLocatorMethod(final String transactionManagerLocatorMethod)
-   {
-      this.transactionManagerLocatorMethod = transactionManagerLocatorMethod;
-   }
-
-   public boolean isAddMessageIDInHeader()
-   {
-      return addMessageIDInHeader;
-   }
-
-   public void setAddMessageIDInHeader(final boolean value)
-   {
-      addMessageIDInHeader = value;
-   }
-
-   public synchronized boolean isPaused()
-   {
-      return paused;
-   }
-
-   public synchronized boolean isFailed()
-   {
-      return failed;
-   }
-
-   public synchronized void setSourceConnectionFactoryFactory(final ConnectionFactoryFactory cff)
-   {
-      checkBridgeNotStarted();
-      JMSBridgeImpl.checkNotNull(cff, "SourceConnectionFactoryFactory");
-
-      sourceCff = cff;
-   }
-
-   public synchronized void setTargetConnectionFactoryFactory(final ConnectionFactoryFactory cff)
-   {
-      checkBridgeNotStarted();
-      JMSBridgeImpl.checkNotNull(cff, "TargetConnectionFactoryFactory");
-
-      targetCff = cff;
-   }
-
-   public void setTransactionManager(final TransactionManager tm)
-   {
-      this.tm = tm;
-   }
-
-   // Public ---------------------------------------------------------------------------
-
-   // Private -------------------------------------------------------------------
-
-   private void checkParams()
-   {
-      JMSBridgeImpl.checkNotNull(sourceCff, "sourceCff");
-      JMSBridgeImpl.checkNotNull(targetCff, "targetCff");
-      JMSBridgeImpl.checkNotNull(sourceDestinationFactory, "sourceDestinationFactory");
-      JMSBridgeImpl.checkNotNull(targetDestinationFactory, "targetDestinationFactory");
-      JMSBridgeImpl.checkValidValue(failureRetryInterval, "failureRetryInterval");
-      JMSBridgeImpl.checkValidValue(maxRetries, "maxRetries");
-      if (failureRetryInterval == -1 && maxRetries > 0)
-      {
-         throw new IllegalArgumentException("If failureRetryInterval == -1 maxRetries must be set to -1");
-      }
-      JMSBridgeImpl.checkMaxBatchSize(maxBatchSize);
-      JMSBridgeImpl.checkValidValue(maxBatchTime, "maxBatchTime");
-      JMSBridgeImpl.checkNotNull(qualityOfServiceMode, "qualityOfServiceMode");
-   }
-
-   /**
-    * Check the object is not null
-    * 
-    * @throws IllegalArgumentException if the object is null
-    */
-   private static void checkNotNull(final Object obj, final String name)
-   {
-      if (obj == null)
-      {
-         throw new IllegalArgumentException(name + " cannot be null");
-      }
-   }
-
-   /**
-    * Check the bridge is not started
-    * 
-    * @throws IllegalStateException if the bridge is started
-    */
-   private void checkBridgeNotStarted()
-   {
-      if (started)
-      {
-         throw new IllegalStateException("Cannot set bridge attributes while it is started");
-      }
-   }
-
-   /**
-    * Check that value is either equals to -1 or greater than 0
-    * 
-    * @throws IllegalArgumentException if the value is not valid
-    */
-   private static void checkValidValue(final long value, final String name)
-   {
-      if (!(value == -1 || value > 0))
-      {
-         throw new IllegalArgumentException(name + " must be > 0 or -1");
-      }
-   }
-
-   private static void checkMaxBatchSize(final int size)
-   {
-      if (!(size >= 1))
-      {
-         throw new IllegalArgumentException("maxBatchSize must be >= 1");
-      }
-   }
-
-   private void enlistResources(final Transaction tx) throws Exception
-   {
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Enlisting resources in tx");
-      }
-
-      XAResource resSource = ((XASession)sourceSession).getXAResource();
-
-      tx.enlistResource(resSource);
-
-      XAResource resDest = ((XASession)targetSession).getXAResource();
-
-      tx.enlistResource(resDest);
-
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Enlisted resources in tx");
-      }
-   }
-
-   private void delistResources(final Transaction tx)
-   {
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Delisting resources from tx");
-      }
-
-      XAResource resSource = ((XASession)sourceSession).getXAResource();
-
-      try
-      {
-         tx.delistResource(resSource, XAResource.TMSUCCESS);
-      }
-      catch (Exception e)
-      {
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Failed to delist source resource", e);
-         }
-      }
-
-      XAResource resDest = ((XASession)targetSession).getXAResource();
-
-      try
-      {
-         tx.delistResource(resDest, XAResource.TMSUCCESS);
-      }
-      catch (Exception e)
-      {
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Failed to delist target resource", e);
-         }
-      }
-
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Delisted resources from tx");
-      }
-   }
-
-   private Transaction startTx() throws Exception
-   {
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Starting JTA transaction");
-      }
-
-      TransactionManager tm = getTm();
-
-      // Set timeout to a large value since we do not want to time out while waiting for messages
-      // to arrive - 10 years should be enough
-      tm.setTransactionTimeout(JMSBridgeImpl.TEN_YEARS);
-
-      tm.begin();
-
-      Transaction tx = tm.getTransaction();
-
-      // Remove the association between current thread - we don't want it
-      // we will be committing /rolling back directly on the transaction object
-
-      tm.suspend();
-
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Started JTA transaction");
-      }
-
-      return tx;
-   }
-
-   private TransactionManager getTm()
-   {
-      if (tm == null)
-      {
-         try
-         {
-            ClassLoader loader = Thread.currentThread().getContextClassLoader();
-            Class aClass = loader.loadClass(transactionManagerLocatorClass);
-            Object o = aClass.newInstance();
-            Method m = aClass.getMethod(transactionManagerLocatorMethod);
-            tm = (TransactionManager)m.invoke(o);
-         }
-         catch (Exception e)
-         {
-            throw new IllegalStateException("unable to create TransactionManager from " + transactionManagerLocatorClass +
-                                                     "." +
-                                                     transactionManagerLocatorMethod,
-                                            e);
-         }
-
-         if (tm == null)
-         {
-            throw new IllegalStateException("Cannot locate a transaction manager");
-         }
-      }
-
-      return tm;
-   }
-
-   private Connection createConnection(final String username, final String password, final ConnectionFactoryFactory cff) throws Exception
-   {
-      Connection conn;
-
-      ConnectionFactory cf = cff.createConnectionFactory();
-
-      if (qualityOfServiceMode == QualityOfServiceMode.ONCE_AND_ONLY_ONCE && !(cf instanceof XAConnectionFactory))
-      {
-         throw new IllegalArgumentException("Connection factory must be XAConnectionFactory");
-      }
-
-      if (username == null)
-      {
-         if (qualityOfServiceMode == QualityOfServiceMode.ONCE_AND_ONLY_ONCE)
-         {
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Creating an XA connection");
-            }
-            conn = ((XAConnectionFactory)cf).createXAConnection();
-         }
-         else
-         {
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Creating a non XA connection");
-            }
-            conn = cf.createConnection();
-         }
-      }
-      else
-      {
-         if (qualityOfServiceMode == QualityOfServiceMode.ONCE_AND_ONLY_ONCE)
-         {
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Creating an XA connection");
-            }
-            conn = ((XAConnectionFactory)cf).createXAConnection(username, password);
-         }
-         else
-         {
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Creating a non XA connection");
-            }
-            conn = cf.createConnection(username, password);
-         }
-      }
-
-      return conn;
-   }
-
-   /*
-    * Source and target on same server
-    * --------------------------------
-    * If the source and target destinations are on the same server (same resource manager) then,
-    * in order to get ONCE_AND_ONLY_ONCE, we simply need to consuming and send in a single
-    * local JMS transaction.
-    * 
-    * We actually use a single local transacted session for the other QoS modes too since this
-    * is more performant than using DUPS_OK_ACKNOWLEDGE or AUTO_ACKNOWLEDGE session ack modes, so effectively
-    * the QoS is upgraded.
-    * 
-    * Source and target on different server
-    * -------------------------------------
-    * If the source and target destinations are on a different servers (different resource managers) then:
-    * 
-    * If desired QoS is ONCE_AND_ONLY_ONCE, then we start a JTA transaction and enlist the consuming and sending
-    * XAResources in that.
-    * 
-    * If desired QoS is DUPLICATES_OK then, we use CLIENT_ACKNOWLEDGE for the consuming session and
-    * AUTO_ACKNOWLEDGE (this is ignored) for the sending session if the maxBatchSize == 1, otherwise we
-    * use a local transacted session for the sending session where maxBatchSize > 1, since this is more performant
-    * When bridging a batch, we make sure to manually acknowledge the consuming session, if it is CLIENT_ACKNOWLEDGE
-    * *after* the batch has been sent
-    * 
-    * If desired QoS is AT_MOST_ONCE then, if maxBatchSize == 1, we use AUTO_ACKNOWLEDGE for the consuming session,
-    * and AUTO_ACKNOWLEDGE for the sending session.
-    * If maxBatchSize > 1, we use CLIENT_ACKNOWLEDGE for the consuming session and a local transacted session for the
-    * sending session.
-    * 
-    * When bridging a batch, we make sure to manually acknowledge the consuming session, if it is CLIENT_ACKNOWLEDGE
-    * *before* the batch has been sent
-    * 
-    */
-   private boolean setupJMSObjects()
-   {
-      try
-      {
-         if (sourceCff == targetCff)
-         {
-            // Source and target destinations are on the server - we can get once and only once
-            // just using a local transacted session
-            // everything becomes once and only once
-
-            forwardMode = JMSBridgeImpl.FORWARD_MODE_LOCALTX;
-         }
-         else
-         {
-            // Different servers
-            if (qualityOfServiceMode == QualityOfServiceMode.ONCE_AND_ONLY_ONCE)
-            {
-               // Use XA
-
-               forwardMode = JMSBridgeImpl.FORWARD_MODE_XA;
-            }
-            else
-            {
-               forwardMode = JMSBridgeImpl.FORWARD_MODE_NONTX;
-            }
-         }
-
-         // Lookup the destinations
-         sourceDestination = sourceDestinationFactory.createDestination();
-
-         targetDestination = targetDestinationFactory.createDestination();
-
-         sourceConn = createConnection(sourceUsername, sourcePassword, sourceCff);
-
-         if (forwardMode != JMSBridgeImpl.FORWARD_MODE_LOCALTX)
-         {
-            targetConn = createConnection(targetUsername, targetPassword, targetCff);
-
-            targetConn.setExceptionListener(new BridgeExceptionListener());
-         }
-
-         if (clientID != null)
-         {
-            sourceConn.setClientID(clientID);
-         }
-
-         sourceConn.setExceptionListener(new BridgeExceptionListener());
-
-         Session sess;
-
-         if (forwardMode == JMSBridgeImpl.FORWARD_MODE_LOCALTX)
-         {
-            // We simply use a single local transacted session for consuming and sending
-
-            sourceSession = sourceConn.createSession(true, Session.SESSION_TRANSACTED);
-
-            sess = sourceSession;
-         }
-         else
-         {
-            if (forwardMode == JMSBridgeImpl.FORWARD_MODE_XA)
-            {
-               // Create an XASession for consuming from the source
-               if (JMSBridgeImpl.trace)
-               {
-                  JMSBridgeImpl.log.trace("Creating XA source session");
-               }
-
-               sourceSession = ((XAConnection)sourceConn).createXASession();
-
-               sess = ((XASession)sourceSession).getSession();
-            }
-            else
-            {
-               if (JMSBridgeImpl.trace)
-               {
-                  JMSBridgeImpl.log.trace("Creating non XA source session");
-               }
-
-               // Create a standard session for consuming from the source
-
-               // We use ack mode client ack
-
-               sourceSession = sourceConn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
-
-               sess = sourceSession;
-            }
-         }
-
-         if (forwardMode == JMSBridgeImpl.FORWARD_MODE_XA && sourceSession instanceof HornetQSession)
-         {
-            HornetQSession jsession = (HornetQSession)sourceSession;
-
-            ClientSession clientSession = jsession.getCoreSession();
-
-            // clientSession.setTreatAsNonTransactedWhenNotEnlisted(false);
-         }
-
-         if (subName == null)
-         {
-            if (selector == null)
-            {
-               sourceConsumer = sess.createConsumer(sourceDestination);
-            }
-            else
-            {
-               sourceConsumer = sess.createConsumer(sourceDestination, selector, false);
-            }
-         }
-         else
-         {
-            // Durable subscription
-            if (selector == null)
-            {
-               sourceConsumer = sess.createDurableSubscriber((Topic)sourceDestination, subName);
-            }
-            else
-            {
-               sourceConsumer = sess.createDurableSubscriber((Topic)sourceDestination, subName, selector, false);
-            }
-         }
-
-         // Now the sending session
-
-         if (forwardMode != JMSBridgeImpl.FORWARD_MODE_LOCALTX)
-         {
-            if (forwardMode == JMSBridgeImpl.FORWARD_MODE_XA)
-            {
-               if (JMSBridgeImpl.trace)
-               {
-                  JMSBridgeImpl.log.trace("Creating XA dest session");
-               }
-
-               // Create an XA sesion for sending to the destination
-
-               targetSession = ((XAConnection)targetConn).createXASession();
-
-               sess = ((XASession)targetSession).getSession();
-            }
-            else
-            {
-               if (JMSBridgeImpl.trace)
-               {
-                  JMSBridgeImpl.log.trace("Creating non XA dest session");
-               }
-
-               // Create a standard session for sending to the target
-
-               // If batch size > 1 we use a transacted session since is more efficient
-
-               boolean transacted = maxBatchSize > 1;
-
-               targetSession = targetConn.createSession(transacted, transacted ? Session.SESSION_TRANSACTED
-                                                                              : Session.AUTO_ACKNOWLEDGE);
-
-               sess = targetSession;
-            }
-         }
-
-         if (forwardMode == JMSBridgeImpl.FORWARD_MODE_XA)
-         {
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Starting JTA transaction");
-            }
-
-            tx = startTx();
-
-            enlistResources(tx);
-         }
-
-         targetProducer = sess.createProducer(null);
-
-         return true;
-      }
-      catch (Exception e)
-      {
-         // We shouldn't log this, as it's expected when trying to connect when target/source is not available
-
-         // If this fails we should attempt to cleanup or we might end up in some weird state
-
-         cleanup();
-
-         return false;
-      }
-   }
-
-   private void cleanup()
-   {
-      // Stop the source connection
-      try
-      {
-         sourceConn.stop();
-      }
-      catch (Throwable ignore)
-      {
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Failed to stop source connection", ignore);
-         }
-      }
-
-      if (tx != null)
-      {
-         try
-         {
-            delistResources(tx);
-         }
-         catch (Throwable ignore)
-         {
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Failed to delist resources", ignore);
-            }
-         }
-         try
-         {
-            // Terminate the tx
-            tx.rollback();
-         }
-         catch (Throwable ignore)
-         {
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Failed to rollback", ignore);
-            }
-         }
-      }
-
-      // Close the old objects
-      try
-      {
-         sourceConn.close();
-      }
-      catch (Throwable ignore)
-      {
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Failed to close source connection", ignore);
-         }
-      }
-      try
-      {
-         if (targetConn != null)
-         {
-            targetConn.close();
-         }
-      }
-      catch (Throwable ignore)
-      {
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Failed to close target connection", ignore);
-         }
-      }
-   }
-
-   private void pause(final long interval)
-   {
-      long start = System.currentTimeMillis();
-      while (System.currentTimeMillis() - start < failureRetryInterval)
-      {
-         try
-         {
-            Thread.sleep(failureRetryInterval);
-         }
-         catch (InterruptedException ex)
-         {
-         }
-      }
-   }
-
-   private boolean setupJMSObjectsWithRetry()
-   {
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Setting up connections");
-      }
-
-      int count = 0;
-
-      while (true)
-      {
-         boolean ok = setupJMSObjects();
-
-         if (ok)
-         {
-            return true;
-         }
-
-         count++;
-
-         if (maxRetries != -1 && count == maxRetries)
-         {
-            break;
-         }
-
-         JMSBridgeImpl.log.info("Failed to set up JMS bridge connections. Most probably the source or target servers are unavailable. Will retry after a pause of " + failureRetryInterval +
-                                " ms");
-
-         pause(failureRetryInterval);
-      }
-
-      // If we get here then we exceeded maxRetries
-      return false;
-   }
-
-   private void sendBatch()
-   {
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Sending batch of " + messages.size() + " messages");
-      }
-
-      if (paused)
-      {
-         // Don't send now
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Paused, so not sending now");
-         }
-
-         return;
-      }
-
-      if (forwardMode == JMSBridgeImpl.FORWARD_MODE_LOCALTX)
-      {
-         sendBatchLocalTx();
-      }
-      else if (forwardMode == JMSBridgeImpl.FORWARD_MODE_XA)
-      {
-         sendBatchXA();
-      }
-      else
-      {
-         sendBatchNonTransacted();
-      }
-   }
-
-   private void sendBatchNonTransacted()
-   {
-      try
-      {
-         if (qualityOfServiceMode == QualityOfServiceMode.ONCE_AND_ONLY_ONCE)
-         {
-            // We client ack before sending
-
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Client acking source session");
-            }
-
-            ((Message)messages.getLast()).acknowledge();
-
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Client acked source session");
-            }
-         }
-
-         sendMessages();
-
-         if (maxBatchSize > 1)
-         {
-            // The sending session is transacted - we need to commit it
-
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Committing target session");
-            }
-
-            targetSession.commit();
-
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Committed source session");
-            }
-         }
-
-         if (qualityOfServiceMode == QualityOfServiceMode.DUPLICATES_OK)
-         {
-            // We client ack after sending
-
-            // Note we could actually use Session.DUPS_OK_ACKNOWLEDGE here
-            // For a slightly less strong delivery guarantee
-
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Client acking source session");
-            }
-
-            messages.getLast().acknowledge();
-
-            if (JMSBridgeImpl.trace)
-            {
-               JMSBridgeImpl.log.trace("Client acked source session");
-            }
-         }
-
-         // Clear the messages
-         messages.clear();
-      }
-      catch (Exception e)
-      {
-         JMSBridgeImpl.log.warn("Failed to send + acknowledge batch, closing JMS objects", e);
-
-         handleFailureOnSend();
-      }
-   }
-
-   private void sendBatchXA()
-   {
-      try
-      {
-         sendMessages();
-
-         // Commit the JTA transaction and start another
-
-         delistResources(tx);
-
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Committing JTA transaction");
-         }
-
-         tx.commit();
-
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Committed JTA transaction");
-         }
-
-         tx = startTx();
-
-         enlistResources(tx);
-
-         // Clear the messages
-         messages.clear();
-      }
-      catch (Exception e)
-      {
-         JMSBridgeImpl.log.warn("Failed to send + acknowledge batch, closing JMS objects", e);
-
-         handleFailureOnSend();
-      }
-   }
-
-   private void sendBatchLocalTx()
-   {
-      try
-      {
-         sendMessages();
-
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Committing source session");
-         }
-
-         sourceSession.commit();
-
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Committed source session");
-         }
-
-         // Clear the messages
-         messages.clear();
-      }
-      catch (Exception e)
-      {
-         JMSBridgeImpl.log.warn("Failed to send + acknowledge batch, closing JMS objects", e);
-
-         handleFailureOnSend();
-      }
-   }
-
-   private void sendMessages() throws Exception
-   {
-      Iterator iter = messages.iterator();
-
-      Message msg = null;
-
-      while (iter.hasNext())
-      {
-         msg = (Message)iter.next();
-
-         if (addMessageIDInHeader)
-         {
-            addMessageIDInHeader(msg);
-         }
-
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Sending message " + msg);
-         }
-
-         // Make sure the correct time to live gets propagated
-
-         long timeToLive = msg.getJMSExpiration();
-
-         if (timeToLive != 0)
-         {
-            timeToLive -= System.currentTimeMillis();
-
-            if (timeToLive <= 0)
-            {
-               timeToLive = 1; // Should have already expired - set to 1 so it expires when it is consumed or delivered
-            }
-         }
-
-         targetProducer.send(targetDestination, msg, msg.getJMSDeliveryMode(), msg.getJMSPriority(), timeToLive);
-
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Sent message " + msg);
-         }
-      }
-   }
-
-   private void handleFailureOnSend()
-   {
-      handleFailure(new FailureHandler());
-   }
-
-   private void handleFailureOnStartup()
-   {
-      handleFailure(new StartupFailureHandler());
-   }
-
-   private void handleFailure(final Runnable failureHandler)
-   {
-      failed = true;
-
-      // Failure must be handled on a separate thread to the calling thread (either onMessage or start).
-      // In the case of onMessage we can't close the connection from inside the onMessage method
-      // since it will block waiting for onMessage to complete. In the case of start we want to return
-      // from the call before the connections are reestablished so that the caller is not blocked unnecessarily.
-      Thread t = new Thread(failureHandler, "jmsbridge-failurehandler-thread");
-
-      t.start();
-   }
-
-   private void addMessageIDInHeader(final Message msg) throws Exception
-   {
-      // We concatenate the old message id as a header in the message
-      // This allows the target to then use this as the JMSCorrelationID of any response message
-      // thus enabling a distributed request-response pattern.
-      // Each bridge (if there are more than one) in the chain can concatenate the message id
-      // So in the case of multiple bridges having routed the message this can be used in a multi-hop
-      // distributed request/response
-      if (JMSBridgeImpl.trace)
-      {
-         JMSBridgeImpl.log.trace("Adding old message id in Message header");
-      }
-
-      JMSBridgeImpl.copyProperties(msg);
-
-      String val = null;
-
-      val = msg.getStringProperty(HornetQMessageConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
-
-      if (val == null)
-      {
-         val = msg.getJMSMessageID();
-      }
-      else
-      {
-         StringBuffer sb = new StringBuffer(val);
-
-         sb.append(",").append(msg.getJMSMessageID());
-
-         val = sb.toString();
-      }
-
-      msg.setStringProperty(HornetQMessageConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST, val);
-   }
-
-   /*
-    * JMS does not let you add a property on received message without first
-    * calling clearProperties, so we need to save and re-add all the old properties so we
-    * don't lose them!!
-    */
-   private static void copyProperties(final Message msg) throws JMSException
-   {
-      Enumeration en = msg.getPropertyNames();
-
-      Map<String, Object> oldProps = null;
-
-      while (en.hasMoreElements())
-      {
-         String propName = (String)en.nextElement();
-
-         if (oldProps == null)
-         {
-            oldProps = new HashMap<String, Object>();
-         }
-
-         oldProps.put(propName, msg.getObjectProperty(propName));
-      }
-
-      msg.clearProperties();
-
-      if (oldProps != null)
-      {
-         Iterator oldPropsIter = oldProps.entrySet().iterator();
-
-         while (oldPropsIter.hasNext())
-         {
-            Map.Entry entry = (Map.Entry)oldPropsIter.next();
-
-            String propName = (String)entry.getKey();
-
-            msg.setObjectProperty(propName, entry.getValue());
-         }
-      }
-   }
-
-   // Inner classes ---------------------------------------------------------------
-
-   /**
-    * We use a Thread which polls the sourceDestination instead of a MessageListener
-    * to ensure that message delivery does not happen concurrently with
-    * transaction enlistment of the XAResource (see HORNETQ-27)
-    *
-    */
-   private final class SourceReceiver extends Thread
-   {
-      SourceReceiver()
-      {
-         super("jmsbridge-source-receiver-thread");
-      }
-
-      @Override
-      public void run()
-      {
-         while (started)
-         {
-            synchronized (lock)
-            {
-               if (paused || failed)
-               {
-                  try
-                  {
-                     lock.wait(500);
-                  }
-                  catch (InterruptedException e)
-                  {
-                     if (JMSBridgeImpl.trace)
-                     {
-                        JMSBridgeImpl.log.trace(this + " thread was interrupted");
-                     }
-                  }
-                  continue;
-               }
-
-               Message msg = null;
-               try
-               {
-                  msg = sourceConsumer.receive(1000);
-               }
-               catch (JMSException jmse)
-               {
-                  if (JMSBridgeImpl.trace)
-                  {
-                     JMSBridgeImpl.log.trace(this + " exception while receiving a message", jmse);
-                  }
-               }
-
-               if (msg == null)
-               {
-                  try
-                  {
-                     lock.wait(500);
-                  }
-                  catch (InterruptedException e)
-                  {
-                     if (JMSBridgeImpl.trace)
-                     {
-                        JMSBridgeImpl.log.trace(this + " thread was interrupted");
-                     }
-                  }
-                  continue;
-               }
-
-               if (JMSBridgeImpl.trace)
-               {
-                  JMSBridgeImpl.log.trace(this + " received message " + msg);
-               }
-
-               messages.add(msg);
-
-               batchExpiryTime = System.currentTimeMillis() + maxBatchTime;
-
-               if (JMSBridgeImpl.trace)
-               {
-                  JMSBridgeImpl.log.trace(this + " rescheduled batchExpiryTime to " + batchExpiryTime);
-               }
-
-               if (maxBatchSize != -1 && messages.size() >= maxBatchSize)
-               {
-                  if (JMSBridgeImpl.trace)
-                  {
-                     JMSBridgeImpl.log.trace(this + " maxBatchSize has been reached so sending batch");
-                  }
-
-                  sendBatch();
-
-                  if (JMSBridgeImpl.trace)
-                  {
-                     JMSBridgeImpl.log.trace(this + " sent batch");
-                  }
-               }
-            }
-         }
-      }
-   }
-
-   private class FailureHandler implements Runnable
-   {
-      /**
-       * Start the source connection - note the source connection must not be started before
-       * otherwise messages will be received and ignored
-       */
-      protected void startSourceConnection()
-      {
-         try
-         {
-            sourceConn.start();
-         }
-         catch (JMSException e)
-         {
-            JMSBridgeImpl.log.error("Failed to start source connection", e);
-         }
-      }
-
-      protected void succeeded()
-      {
-         JMSBridgeImpl.log.info("Succeeded in reconnecting to servers");
-
-         synchronized (lock)
-         {
-            failed = false;
-
-            startSourceConnection();
-         }
-      }
-
-      protected void failed()
-      {
-         // We haven't managed to recreate connections or maxRetries = 0
-         JMSBridgeImpl.log.warn("Unable to set up connections, bridge will be stopped");
-
-         try
-         {
-            stop();
-         }
-         catch (Exception ignore)
-         {
-         }
-      }
-
-      public void run()
-      {
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace("Failure handler running");
-         }
-
-         // Clear the messages
-         messages.clear();
-
-         cleanup();
-
-         boolean ok = false;
-
-         if (maxRetries > 0 || maxRetries == -1)
-         {
-            JMSBridgeImpl.log.warn("Will retry after a pause of " + failureRetryInterval + " ms");
-
-            pause(failureRetryInterval);
-
-            // Now we try
-            ok = setupJMSObjectsWithRetry();
-         }
-
-         if (!ok)
-         {
-            failed();
-         }
-         else
-         {
-            succeeded();
-         }
-      }
-   }
-
-   private class StartupFailureHandler extends FailureHandler
-   {
-      protected void failed()
-      {
-         // Don't call super
-         JMSBridgeImpl.log.warn("Unable to set up connections, bridge will not be started");
-      }
-
-      protected void succeeded()
-      {
-         // Don't call super - a bit ugly in this case but better than taking the lock twice.
-         JMSBridgeImpl.log.info("Succeeded in connecting to servers");
-
-         synchronized (lock)
-         {
-            failed = false;
-            started = true;
-
-            // Start the source connection - note the source connection must not be started before
-            // otherwise messages will be received and ignored
-
-            try
-            {
-               sourceConn.start();
-            }
-            catch (JMSException e)
-            {
-               JMSBridgeImpl.log.error("Failed to start source connection", e);
-            }
-         }
-      }
-   }
-
-   private class BatchTimeChecker implements Runnable
-   {
-      public void run()
-      {
-         if (JMSBridgeImpl.trace)
-         {
-            JMSBridgeImpl.log.trace(this + " running");
-         }
-
-         synchronized (lock)
-         {
-            while (started)
-            {
-               long toWait = batchExpiryTime - System.currentTimeMillis();
-
-               if (toWait <= 0)
-               {
-                  if (JMSBridgeImpl.trace)
-                  {
-                     JMSBridgeImpl.log.trace(this + " waited enough");
-                  }
-
-                  synchronized (lock)
-                  {
-                     if (!failed && !messages.isEmpty())
-                     {
-                        if (JMSBridgeImpl.trace)
-                        {
-                           JMSBridgeImpl.log.trace(this + " got some messages so sending batch");
-                        }
-
-                        sendBatch();
-
-                        if (JMSBridgeImpl.trace)
-                        {
-                           JMSBridgeImpl.log.trace(this + " sent batch");
-                        }
-                     }
-                  }
-
-                  batchExpiryTime = System.currentTimeMillis() + maxBatchTime;
-               }
-               else
-               {
-                  try
-                  {
-                     if (JMSBridgeImpl.trace)
-                     {
-                        JMSBridgeImpl.log.trace(this + " waiting for " + toWait);
-                     }
-
-                     lock.wait(toWait);
-
-                     if (JMSBridgeImpl.trace)
-                     {
-                        JMSBridgeImpl.log.trace(this + " woke up");
-                     }
-                  }
-                  catch (InterruptedException e)
-                  {
-                     // Ignore
-                     if (JMSBridgeImpl.trace)
-                     {
-                        JMSBridgeImpl.log.trace(this + " thread was interrupted");
-                     }
-                  }
-
-               }
-            }
-         }
-      }
-   }
-
-   private class BridgeExceptionListener implements ExceptionListener
-   {
-      public void onException(final JMSException e)
-      {
-         JMSBridgeImpl.log.warn("Detected failure on bridge connection");
-
-         synchronized (lock)
-         {
-            if (failed)
-            {
-               // The failure has already been detected and is being handled
-               if (JMSBridgeImpl.trace)
-               {
-                  JMSBridgeImpl.log.trace("Failure recovery already in progress");
-               }
-            }
-            else
-            {
-               handleFailure(new FailureHandler());
-            }
-         }
-      }
-   }
-}

Deleted: trunk/src/main/org/hornetq/api/jms/bridge/JNDIConnectionFactoryFactory.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/bridge/JNDIConnectionFactoryFactory.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/jms/bridge/JNDIConnectionFactoryFactory.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,42 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.jms.bridge;
-
-import java.util.Hashtable;
-
-import javax.jms.ConnectionFactory;
-
-
-/**
- * A JNDIConnectionFactoryFactory
- *
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision:4566 $</tt>
- *
- * $Id:JNDIConnectionFactoryFactory.java 4566 2008-06-24 08:01:35Z jmesnil $
- *
- */
-public class JNDIConnectionFactoryFactory extends JNDIFactorySupport implements ConnectionFactoryFactory
-{
-   public JNDIConnectionFactoryFactory(final Hashtable jndiProperties, final String lookup)
-   {
-      super(jndiProperties, lookup);
-   }
-
-   public ConnectionFactory createConnectionFactory() throws Exception
-   {
-      return (ConnectionFactory)createObject();
-   }
-
-}

Deleted: trunk/src/main/org/hornetq/api/jms/bridge/JNDIDestinationFactory.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/bridge/JNDIDestinationFactory.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/jms/bridge/JNDIDestinationFactory.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,40 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.jms.bridge;
-
-import java.util.Hashtable;
-
-import javax.jms.Destination;
-
-
-/**
- * 
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision: $</tt>10 Oct 2007
- *
- * $Id: $
- *
- */
-public class JNDIDestinationFactory extends JNDIFactorySupport implements DestinationFactory
-{
-   public JNDIDestinationFactory(final Hashtable jndiProperties, final String lookup)
-   {
-      super(jndiProperties, lookup);
-   }
-
-   public Destination createDestination() throws Exception
-   {
-      return (Destination)createObject();
-   }
-}

Deleted: trunk/src/main/org/hornetq/api/jms/bridge/JNDIFactorySupport.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/bridge/JNDIFactorySupport.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/jms/bridge/JNDIFactorySupport.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,69 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.jms.bridge;
-
-import java.util.Hashtable;
-
-import javax.naming.InitialContext;
-
-/**
- * 
- * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
- * @version <tt>$Revision: $</tt>10 Oct 2007
- *
- * $Id: $
- *
- */
-public abstract class JNDIFactorySupport
-{
-   protected Hashtable jndiProperties;
-
-   protected String lookup;
-
-   protected JNDIFactorySupport(final Hashtable jndiProperties, final String lookup)
-   {
-      this.jndiProperties = jndiProperties;
-
-      this.lookup = lookup;
-   }
-
-   protected Object createObject() throws Exception
-   {
-      InitialContext ic = null;
-
-      Object obj = null;
-
-      try
-      {
-         if (jndiProperties == null)
-         {
-            ic = new InitialContext();
-         }
-         else
-         {
-            ic = new InitialContext(jndiProperties);
-         }
-
-         obj = ic.lookup(lookup);
-      }
-      finally
-      {
-         if (ic != null)
-         {
-            ic.close();
-         }
-      }
-      return obj;
-   }
-}

Deleted: trunk/src/main/org/hornetq/api/jms/bridge/QualityOfServiceMode.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/bridge/QualityOfServiceMode.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/jms/bridge/QualityOfServiceMode.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,102 +0,0 @@
-/*
- * Copyright 2009 Red Hat, Inc.
- * Red Hat licenses this file to you under the Apache License, version
- * 2.0 (the "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *    http://www.apache.org/licenses/LICENSE-2.0
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- * implied.  See the License for the specific language governing
- * permissions and limitations under the License.
- */
-
-package org.hornetq.api.jms.bridge;
-
-/**
- * <h3>Quality of server (QoS) levels</h3>
- * 
- * <h4>QOS_AT_MOST_ONCE</h4>
- * 
- * With this QoS mode messages will reach the destination from the source at
- * most once. The messages are consumed from the source and acknowledged before
- * sending to the destination. Therefore there is a possibility that if failure
- * occurs between removing them from the source and them arriving at the
- * destination they could be lost. Hence delivery will occur at most once. This
- * mode is avilable for both persistent and non persistent messages.
- * 
- * <h4>QOS_DUPLICATES_OK</h4>
- * 
- * With this QoS mode, the messages are consumed from the source and then
- * acknowledged after they have been successfully sent to the destination.
- * Therefore there is a possibility that if failure occurs after sending to the
- * destination but before acknowledging them, they could be sent again when the
- * system recovers. I.e. the destination might receive duplicates after a
- * failure. This mode is available for both persistent and non persistent
- * messages.
- * 
- * <h4>QOS_ONCE_AND_ONLY_ONCE</h4>
- * 
- * This QoS mode ensures messages will reach the destination from the source
- * once and only once. (Sometimes this mode is known as "exactly once"). If both
- * the source and the destination are on the same HornetQ server
- * instance then this can be achieved by sending and acknowledging the messages
- * in the same local transaction. If the source and destination are on different
- * servers this is achieved by enlisting the sending and consuming sessions in a
- * JTA transaction. The JTA transaction is controlled by JBoss Transactions JTA
- * implementation which is a fully recovering transaction manager, thus
- * providing a very high degree of durability. If JTA is required then both
- * supplied connection factories need to be XAConnectionFactory implementations.
- * This mode is only available for persistent messages. This is likely to be the
- * slowest mode since it requires extra persistence for the transaction logging.
- * 
- * Note: For a specific application it may possible to provide once and only
- * once semantics without using the QOS_ONCE_AND_ONLY_ONCE QoS level. This can
- * be done by using the QOS_DUPLICATES_OK mode and then checking for duplicates
- * at the destination and discarding them. Some JMS servers provide automatic
- * duplicate message detection functionality, or this may be possible to
- * implement on the application level by maintaining a cache of received message
- * ids on disk and comparing received messages to them. The cache would only be
- * valid for a certain period of time so this approach is not as watertight as
- * using QOS_ONCE_AND_ONLY_ONCE but may be a good choice depending on your
- * specific application.
- * 
- * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
- * 
- * @version <tt>$Revision$</tt>
- * 
- */
-public enum QualityOfServiceMode
-{
-   AT_MOST_ONCE(0), DUPLICATES_OK(1), ONCE_AND_ONLY_ONCE(2);
-
-   private final int value;
-
-   QualityOfServiceMode(final int value)
-   {
-      this.value = value;
-   }
-
-   public int intValue()
-   {
-      return value;
-   }
-
-   public static QualityOfServiceMode valueOf(final int value)
-   {
-      if (value == AT_MOST_ONCE.value)
-      {
-         return AT_MOST_ONCE;
-      }
-      if (value == DUPLICATES_OK.value)
-      {
-         return DUPLICATES_OK;
-      }
-      if (value == ONCE_AND_ONLY_ONCE.value)
-      {
-         return ONCE_AND_ONLY_ONCE;
-      }
-      throw new IllegalArgumentException("invalid QualityOfServiceMode value: " + value);
-   }
-
-}

Modified: trunk/src/main/org/hornetq/api/jms/management/JMSManagementHelper.java
===================================================================
--- trunk/src/main/org/hornetq/api/jms/management/JMSManagementHelper.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/api/jms/management/JMSManagementHelper.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,7 +16,7 @@
 import javax.jms.JMSException;
 import javax.jms.Message;
 
-import org.hornetq.api.core.management.client.ManagementHelper;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.jms.client.HornetQMessage;
 
 /*

Copied: trunk/src/main/org/hornetq/core/config/Configuration.java (from rev 8720, trunk/src/main/org/hornetq/api/core/config/Configuration.java)
===================================================================
--- trunk/src/main/org/hornetq/core/config/Configuration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/core/config/Configuration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,807 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.config;
+
+import java.io.Serializable;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.hornetq.api.SimpleString;
+import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.api.core.interceptor.Interceptor;
+import org.hornetq.core.config.impl.ConfigurationImpl;
+import org.hornetq.core.server.JournalType;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
+import org.hornetq.core.server.cluster.DivertConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
+import org.hornetq.core.server.group.impl.GroupingHandlerConfiguration;
+import org.hornetq.spi.core.logging.LogDelegateFactory;
+
+/**
+ * 
+ * A Configuration is used to configure HornetQ servers.
+ * 
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ *
+ */
+public interface Configuration extends Serializable
+{
+   // General attributes -------------------------------------------------------------------
+
+   /**
+    * Returns whether this server is clustered.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_CLUSTERED}.
+    */
+   boolean isClustered();
+
+   /**
+    * Sets whether this server is clustered or not.
+    */
+   void setClustered(boolean clustered);
+
+   /**
+    * Returns whether delivery count is persisted before messages are delivered to the consumers.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_PERSIST_DELIVERY_COUNT_BEFORE_DELIVERY}.
+    */
+   boolean isPersistDeliveryCountBeforeDelivery();
+
+   /**
+    * Sets whether delivery count is persisted before messages are delivered to consumers.
+    */
+   void setPersistDeliveryCountBeforeDelivery(boolean persistDeliveryCountBeforeDelivery);
+
+   /**
+    * Returns {@code true} if this server is a backup, {@code false} if it is a live server.
+    * <br>
+    * If a backup server has been activated, returns {@code false}.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_BACKUP}.
+    */
+   boolean isBackup();
+
+   /**
+    * Sets whether this server is a backup or not.
+    */
+   void setBackup(boolean backup);
+
+   /**
+    * Returns whether this server shares its data store with a corresponding live or backup server.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_SHARED_STORE}.
+    */
+   boolean isSharedStore();
+
+   /**
+    * Sets whether this server shares its data store with a backup or live server.
+    */
+   void setSharedStore(boolean sharedStore);
+
+   /**
+    * Returns whether this server will use files to configure and deploy its resources.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_FILE_DEPLOYMENT_ENABLED}.
+    */
+   boolean isFileDeploymentEnabled();
+
+   /**
+    * Sets whether this server will use files to configure and deploy its resources.
+    */
+   void setFileDeploymentEnabled(boolean enable);
+
+   /**
+    * Returns whether this server is using persistence and store data.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_PERSISTENCE_ENABLED}.
+    */
+   boolean isPersistenceEnabled();
+
+   /**
+    * Sets whether this server is using persistence and store data.
+    */
+   void setPersistenceEnabled(boolean enable);
+
+   /**
+    * Returns the period (in milliseconds) to scan configuration files used by deployment.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_FILE_DEPLOYER_SCAN_PERIOD}.
+    */
+   long getFileDeployerScanPeriod();
+
+   /**
+    * Sets the period  to scan configuration files used by deployment.
+    */
+   void setFileDeployerScanPeriod(long period);
+
+   /**
+    * Returns the maximum number of threads in the thread pool of this server.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_THREAD_POOL_MAX_SIZE}.
+    */
+   int getThreadPoolMaxSize();
+
+   /**
+    * Sets the maximum number of threads in the thread pool of this server.
+    */
+   void setThreadPoolMaxSize(int maxSize);
+
+   /**
+    * Returns the maximum number of threads in the <em>scheduled</em> thread pool of this server.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE}.
+    */
+   int getScheduledThreadPoolMaxSize();
+
+   /**
+    * Sets the maximum number of threads in the <em>scheduled</em> thread pool of this server.
+    */
+   void setScheduledThreadPoolMaxSize(int maxSize);
+
+   /**
+    * Returns the interval time (in milliseconds) to invalidate security credentials.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_SECURITY_INVALIDATION_INTERVAL}.
+    */
+   long getSecurityInvalidationInterval();
+
+   /**
+    * Sets the interval time (in milliseconds) to invalidate security credentials.
+    */
+   void setSecurityInvalidationInterval(long interval);
+
+   /**
+    * Returns whether security is enabled for this server.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_SECURITY_ENABLED}.
+    */
+   boolean isSecurityEnabled();
+
+   /**
+    * Sets whether security is enabled for this server.
+    */
+   void setSecurityEnabled(boolean enabled);
+
+   /**
+    * Returns whether this server is manageable using JMX or not.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JMX_MANAGEMENT_ENABLED}.
+    */
+   boolean isJMXManagementEnabled();
+
+   /**
+    * Sets whether this server is manageable using JMX or not.
+    */
+   void setJMXManagementEnabled(boolean enabled);
+
+   /**
+    * Returns the domain used by JMX MBeans (provided JMX management is enabled).
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JMX_DOMAIN}.
+    */
+   String getJMXDomain();
+
+   /**
+    * Sets the domain used by JMX MBeans (provided JMX management is enabled).
+    * 
+    * Changing this JMX domain is required if multiple HornetQ servers are run inside
+    * the same JVM and all servers are using the same MBeanServer.
+    */
+   void setJMXDomain(String domain);
+
+   /**
+    * Returns the list of interceptors classes used by this server.
+    */
+   List<String> getInterceptorClassNames();
+
+   /**
+    * Sets the list of interceptors classes used by this server.
+    * <br />
+    * Classes must implement {@link Interceptor}.
+    */
+   void setInterceptorClassNames(List<String> interceptors);
+
+   /**
+    * Returns the connection time to live.
+    * <br>
+    * This value overrides the connection time to live <em>sent by the client</em>.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_CONNECTION_TTL_OVERRIDE}.
+    */
+   long getConnectionTTLOverride();
+
+   /**
+    * Sets the connection time to live.
+    */
+   void setConnectionTTLOverride(long ttl);
+
+   /**
+    * Returns whether code coming from connection is executed asynchronously or not.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_ASYNC_CONNECTION_EXECUTION_ENABLED}.
+    */
+   boolean isAsyncConnectionExecutionEnabled();
+
+   /**
+    * Sets whether code coming from connection is executed asynchronously or not.
+    */
+   void setEnabledAsyncConnectionExecution(boolean enabled);
+
+   /**
+    * Returns the acceptors configured for this server.
+    */
+   Set<TransportConfiguration> getAcceptorConfigurations();
+
+   /**
+    * Sets the acceptors configured for this server.
+    */
+   void setAcceptorConfigurations(Set<TransportConfiguration> infos);
+
+   /**
+    * Returns the connectors configured for this server.
+    */
+   Map<String, TransportConfiguration> getConnectorConfigurations();
+
+   /**
+    * Sets the connectors configured for this server.
+    */
+   void setConnectorConfigurations(Map<String, TransportConfiguration> infos);
+
+   /**
+    * Returns the name of the connector used to connect to the backup.
+    * <br>
+    * If this server has no backup or is itself a backup, the value is {@code null}.
+    */
+   String getBackupConnectorName();
+
+   /**
+    * Sets the name of the connector used to connect to the backup.
+    */
+   void setBackupConnectorName(String name);
+
+   /**
+    * Returns the broadcast groups configured for this server.
+    */
+   List<BroadcastGroupConfiguration> getBroadcastGroupConfigurations();
+
+   /**
+    * Sets the broadcast groups configured for this server.
+    */
+   void setBroadcastGroupConfigurations(List<BroadcastGroupConfiguration> configs);
+
+   /**
+    * Returns the discovery groups configured for this server.
+    */
+   Map<String, DiscoveryGroupConfiguration> getDiscoveryGroupConfigurations();
+
+   /**
+    * Sets the discovery groups configured for this server.
+    */
+   void setDiscoveryGroupConfigurations(Map<String, DiscoveryGroupConfiguration> configs);
+
+   /**
+    * Returns the grouping handler configured for this server.
+    */
+   GroupingHandlerConfiguration getGroupingHandlerConfiguration();
+
+   /**
+    * Sets the grouping handler configured for this server.
+    */
+   void setGroupingHandlerConfiguration(GroupingHandlerConfiguration groupingHandlerConfiguration);
+
+   /**
+    * Returns the bridges configured for this server.
+    */
+   List<BridgeConfiguration> getBridgeConfigurations();
+
+   /**
+    * Sets the bridges configured for this server.
+    */
+   void setBridgeConfigurations(final List<BridgeConfiguration> configs);
+
+   /**
+    * Returns the diverts configured for this server.
+    */
+   List<DivertConfiguration> getDivertConfigurations();
+
+   /**
+    * Sets the diverts configured for this server.
+    */
+   void setDivertConfigurations(final List<DivertConfiguration> configs);
+
+   /**
+    * Returns the cluster connections configured for this server.
+    */
+   List<ClusterConnectionConfiguration> getClusterConfigurations();
+
+   /**
+    * Sets the cluster connections configured for this server.
+    */
+   void setClusterConfigurations(final List<ClusterConnectionConfiguration> configs);
+
+   /**
+    * Returns the queues configured for this server.
+    */
+   List<QueueConfiguration> getQueueConfigurations();
+
+   /**
+    * Sets the queues configured for this server.
+    */
+   void setQueueConfigurations(final List<QueueConfiguration> configs);
+
+   /**
+    * Returns the management address of this server.
+    * <br>
+    * Clients can send management messages to this address to manage this server.
+    * <br>
+    * Default value is "hornetq.management".
+    */
+    SimpleString getManagementAddress();
+
+    /**
+     * Sets the management address of this server.
+     */
+   void setManagementAddress(SimpleString address);
+
+   /**
+    * Returns the management notification address of this server.
+    * <br>
+    * Clients can bind queues to this address to receive management notifications emitted by this server.
+    * <br>
+    * Default value is "hornetq.notifications".
+    */
+   SimpleString getManagementNotificationAddress();
+
+   /**
+    * Sets the management notification address of this server.
+    */
+   void setManagementNotificationAddress(SimpleString address);
+
+   /**
+    * Returns the management cluster user for this server.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_MANAGEMENT_CLUSTER_USER}.
+    */
+   String getManagementClusterUser();
+
+   /**
+    * Sets the management cluster user for this server.
+    */
+   void setManagementClusterUser(String user);
+
+   /**
+    * Returns the management cluster password for this server.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_MANAGEMENT_CLUSTER_PASSWORD}.
+    */
+   String getManagementClusterPassword();
+
+   /**
+    * Sets the management cluster password for this server.
+    */
+   void setManagementClusterPassword(String password);
+
+   /**
+    * Returns the size of the cache for pre-creating message IDs.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_ID_CACHE_SIZE}.
+    */
+   int getIDCacheSize();
+
+   /**
+    * Sets the size of the cache for pre-creating message IDs.
+    */
+   void setIDCacheSize(int idCacheSize);
+
+   /**
+    * Returns whether message ID cache is persisted.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_PERSIST_ID_CACHE}.
+    */
+   boolean isPersistIDCache();
+
+   /**
+    * Sets whether message ID cache is persisted.
+    */
+   void setPersistIDCache(boolean persist);
+
+   /**
+    * Returns the name of the {@link LogDelegateFactory} implementation used by this server
+    * for logging.
+    * <br>
+    * Default value is "org.hornetq.core.logging.impl.JULLogDelegateFactory"
+    */
+   String getLogDelegateFactoryClassName();
+
+   /**
+    * Sets the name of the {@link LogDelegateFactory} implementation used by this server
+    * for logging.
+    */
+   void setLogDelegateFactoryClassName(String className);
+
+   // Journal related attributes ------------------------------------------------------------
+
+   /**
+    * Returns the file system directory used to store bindings.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_BINDINGS_DIRECTORY}.
+    */
+   String getBindingsDirectory();
+
+   /**
+    * Sets the file system directory used to store bindings.
+    */
+   void setBindingsDirectory(String dir);
+
+   /**
+    * Returns the file system directory used to store journal log.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_DIR}.
+    */
+   String getJournalDirectory();
+
+   /**
+    * Sets the file system directory used to store journal log.
+    */
+   void setJournalDirectory(String dir);
+
+   /**
+    * Returns the type of journal used by this server (either {@code NIO} or {@code ASYNCIO}).
+    * <br>
+    * Default value is ASYNCIO.
+    */
+   JournalType getJournalType();
+
+   /**
+    * Sets the type of journal used by this server (either {@code NIO} or {@code ASYNCIO}).
+    */
+   void setJournalType(JournalType type);
+
+   /**
+    * Returns whether the journal is synchronized when receiving transactional data.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_SYNC_TRANSACTIONAL}.
+    */
+   boolean isJournalSyncTransactional();
+
+   /**
+    * Sets whether the journal is synchronized when receiving transactional data.
+    */
+   void setJournalSyncTransactional(boolean sync);
+
+   /**
+    * Returns whether the journal is synchronized when receiving non-transactional data.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_SYNC_NON_TRANSACTIONAL}.
+    */
+   boolean isJournalSyncNonTransactional();
+
+   /**
+    * Sets whether the journal is synchronized when receiving non-transactional data.
+    */
+   void setJournalSyncNonTransactional(boolean sync);
+
+   /**
+    * Returns the size (in bytes) of each journal files.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_FILE_SIZE}.
+    */
+   int getJournalFileSize();
+
+   /**
+    * Sets the size (in bytes) of each journal files.
+    */
+   void setJournalFileSize(int size);
+
+   /**
+    * Returns the minimal number of journal files before compacting.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_COMPACT_MIN_FILES}.
+    */
+   int getJournalCompactMinFiles();
+
+   /**
+    * Sets the minimal number of journal files before compacting.
+    */
+   void setJournalCompactMinFiles(int minFiles);
+
+   /**
+    * Returns the percentage of live data before compacting the journal.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_COMPACT_PERCENTAGE}.
+    */
+   int getJournalCompactPercentage();
+
+   /**
+    * Sets the percentage of live data before compacting the journal.
+    */
+   void setJournalCompactPercentage(int percentage);
+
+   /**
+    * Returns the number of journal files to pre-create.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_MIN_FILES}.
+    */
+   int getJournalMinFiles();
+
+   /**
+    * Sets the number of journal files to pre-create.
+    */
+   void setJournalMinFiles(int files);
+
+   // AIO and NIO need different values for these params
+
+   /**
+    * Returns the maximum number of write requests that can be in the AIO queue at any given time.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_MAX_IO_AIO}.
+    */
+   int getJournalMaxIO_AIO();
+
+   /**
+    * Sets the maximum number of write requests that can be in the AIO queue at any given time.
+    */
+   void setJournalMaxIO_AIO(int journalMaxIO);
+
+   /**
+    * Returns the timeout (in nanoseconds) used to flush buffers in the AIO queue.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_BUFFER_TIMEOUT_AIO}.
+    */
+   int getJournalBufferTimeout_AIO();
+
+   /**
+    * Sets the timeout (in nanoseconds) used to flush buffers in the AIO queue.
+    */
+   void setJournalBufferTimeout_AIO(int journalBufferTimeout);
+
+   /**
+    * Returns the buffer size (in bytes) for AIO.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_BUFFER_SIZE_AIO}.
+    */
+   int getJournalBufferSize_AIO();
+
+   /**
+    * Sets the buffer size (in bytes) for AIO.
+    */
+   void setJournalBufferSize_AIO(int journalBufferSize);
+
+   /**
+    * Returns the maximum number of write requests for NIO journal.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_MAX_IO_NIO}.
+    */
+   int getJournalMaxIO_NIO();
+
+   /**
+    * Sets the maximum number of write requests for NIO journal.
+    */
+   void setJournalMaxIO_NIO(int journalMaxIO);
+
+   /**
+    * Returns the timeout (in nanoseconds) used to flush buffers in the NIO.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_BUFFER_TIMEOUT_NIO}.
+    */
+   int getJournalBufferTimeout_NIO();
+
+   /**
+    * Sets the timeout (in nanoseconds) used to flush buffers in the NIO.
+    */
+   void setJournalBufferTimeout_NIO(int journalBufferTimeout);
+
+   /**
+    * Returns the buffer size (in bytes) for NIO.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_JOURNAL_BUFFER_SIZE_NIO}.
+    */
+   int getJournalBufferSize_NIO();
+
+   /**
+    * Sets the buffer size (in bytes) for NIO.
+    */
+   void setJournalBufferSize_NIO(int journalBufferSize);
+
+   /**
+    * Returns whether the bindings directory is created on this server startup.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_CREATE_BINDINGS_DIR}.
+    */
+   boolean isCreateBindingsDir();
+
+   /**
+    * Sets whether the bindings directory is created on this server startup.
+    */
+   void setCreateBindingsDir(boolean create);
+
+   /**
+    * Returns whether the journal directory is created on this server startup.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_CREATE_JOURNAL_DIR}.
+    */
+   boolean isCreateJournalDir();
+
+   /**
+    * Sets whether the journal directory is created on this server startup.
+    */
+   void setCreateJournalDir(boolean create);
+
+   // Undocumented attributes
+
+   boolean isLogJournalWriteRate();
+
+   void setLogJournalWriteRate(boolean rate);
+
+   int getJournalPerfBlastPages();
+
+   void setJournalPerfBlastPages(int pages);
+
+   long getServerDumpInterval();
+
+   void setServerDumpInterval(long interval);
+
+   int getMemoryWarningThreshold();
+
+   void setMemoryWarningThreshold(int memoryWarningThreshold);
+
+   long getMemoryMeasureInterval();
+
+   void setMemoryMeasureInterval(long memoryMeasureInterval);
+
+   boolean isRunSyncSpeedTest();
+
+   void setRunSyncSpeedTest(boolean run);
+
+   // Paging Properties --------------------------------------------------------------------
+
+   /**
+    * Returns the file system directory used to store paging files.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_PAGING_DIR}.
+    */
+   String getPagingDirectory();
+
+   /**
+    * Sets the file system directory used to store paging files.
+    */
+   void setPagingDirectory(String dir);
+
+   // Large Messages Properties ------------------------------------------------------------
+
+   /**
+    * Returns the file system directory used to store large messages.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_LARGE_MESSAGES_DIR}.
+    */
+   String getLargeMessagesDirectory();
+
+   /**
+    * Sets the file system directory used to store large messages.
+    */
+   void setLargeMessagesDirectory(String directory);
+
+   // Other Properties ---------------------------------------------------------------------
+
+   /**
+    * Returns whether wildcard routing is supported by this server.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_WILDCARD_ROUTING_ENABLED}.
+    */
+   boolean isWildcardRoutingEnabled();
+
+   /**
+    * Sets whether wildcard routing is supported by this server.
+    */
+   void setWildcardRoutingEnabled(boolean enabled);
+
+   /**
+    * Returns the timeout (in milliseconds) after which transactions is removed 
+    * from the resource manager after it was created.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_TRANSACTION_TIMEOUT}.
+    */
+   long getTransactionTimeout();
+
+   /**
+    * Sets the timeout (in milliseconds) after which transactions is removed 
+    * from the resource manager after it was created.
+    */
+   void setTransactionTimeout(long timeout);
+
+   /**
+    * Returns whether message counter is enabled for this server.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_MESSAGE_COUNTER_ENABLED}.
+    */
+   boolean isMessageCounterEnabled();
+
+   /**
+    * Sets whether message counter is enabled for this server.
+    */
+   void setMessageCounterEnabled(boolean enabled);
+
+   /**
+    * Returns the sample period (in milliseconds) to take message counter snapshot.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_MESSAGE_COUNTER_SAMPLE_PERIOD}.
+    */
+   long getMessageCounterSamplePeriod();
+
+   /**
+    * Sets the sample period to take message counter snapshot.
+    * 
+    * @param period value must be greater than 1000ms
+    */
+   void setMessageCounterSamplePeriod(long period);
+
+   /**
+    * Returns the maximum number of days kept in memory for message counter.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_MESSAGE_COUNTER_MAX_DAY_HISTORY}.
+    */
+   int getMessageCounterMaxDayHistory();
+
+   /**
+    * Sets the maximum number of days kept in memory for message counter.
+    * 
+    * @param maxDayHistory value must be greater than 0
+    */
+   void setMessageCounterMaxDayHistory(int maxDayHistory);
+
+   /**
+    * Returns the frequency (in milliseconds)  to scan transactions to detect which transactions 
+    * have timed out.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_TRANSACTION_TIMEOUT_SCAN_PERIOD}.
+    */
+   long getTransactionTimeoutScanPeriod();
+
+   /**
+    * Sets the frequency (in milliseconds)  to scan transactions to detect which transactions 
+    * have timed out.
+    */
+   void setTransactionTimeoutScanPeriod(long period);
+
+   /**
+    * Returns the frequency (in milliseconds)  to scan messages to detect which messages 
+    * have expired.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_MESSAGE_EXPIRY_SCAN_PERIOD}.
+    */
+   long getMessageExpiryScanPeriod();
+
+   /**
+    * Sets the frequency (in milliseconds)  to scan messages to detect which messages 
+    * have expired.
+    */
+   void setMessageExpiryScanPeriod(long messageExpiryScanPeriod);
+
+   /**
+    * Returns the priority of the thread used to scan message expiration.
+    * <br>
+    * Default value is {@value org.hornetq.core.config.impl.ConfigurationImpl#DEFAULT_MESSAGE_EXPIRY_THREAD_PRIORITY}.
+    */
+   int getMessageExpiryThreadPriority();
+
+   /**
+    * Sets the priority of the thread used to scan message expiration.
+    */
+   void setMessageExpiryThreadPriority(int messageExpiryThreadPriority);
+
+}

Copied: trunk/src/main/org/hornetq/core/config/impl/ConfigurationImpl.java (from rev 8720, trunk/src/main/org/hornetq/api/core/config/ConfigurationImpl.java)
===================================================================
--- trunk/src/main/org/hornetq/core/config/impl/ConfigurationImpl.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/core/config/impl/ConfigurationImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,1279 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.config.impl;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import org.hornetq.api.SimpleString;
+import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.logging.impl.JULLogDelegateFactory;
+import org.hornetq.core.server.JournalType;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
+import org.hornetq.core.server.cluster.DivertConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
+import org.hornetq.core.server.group.impl.GroupingHandlerConfiguration;
+
+/**
+ * @author <a href="mailto:ataylor at redhat.com>Andy Taylor</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ */
+public class ConfigurationImpl implements Configuration
+{
+   // Constants ------------------------------------------------------------------------------
+
+   private static final long serialVersionUID = 4077088945050267843L;
+
+   public static final boolean DEFAULT_CLUSTERED = false;
+
+   public static final boolean DEFAULT_PERSIST_DELIVERY_COUNT_BEFORE_DELIVERY = false;
+
+   public static final boolean DEFAULT_BACKUP = false;
+
+   public static final boolean DEFAULT_SHARED_STORE = false;
+
+   public static final boolean DEFAULT_FILE_DEPLOYMENT_ENABLED = false;
+
+   public static final boolean DEFAULT_PERSISTENCE_ENABLED = true;
+
+   public static final long DEFAULT_FILE_DEPLOYER_SCAN_PERIOD = 5000;
+
+   public static final int DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE = 5;
+
+   public static final int DEFAULT_THREAD_POOL_MAX_SIZE = -1;
+
+   public static final long DEFAULT_SECURITY_INVALIDATION_INTERVAL = 10000;
+
+   public static final boolean DEFAULT_SECURITY_ENABLED = true;
+
+   public static final boolean DEFAULT_JMX_MANAGEMENT_ENABLED = true;
+
+   public static final String DEFAULT_JMX_DOMAIN = "org.hornetq";
+
+   public static final long DEFAULT_CONNECTION_TTL_OVERRIDE = -1;
+
+   public static final boolean DEFAULT_ASYNC_CONNECTION_EXECUTION_ENABLED = false;
+
+   public static final String DEFAULT_BINDINGS_DIRECTORY = "data/bindings";
+
+   public static final boolean DEFAULT_CREATE_BINDINGS_DIR = true;
+
+   public static final String DEFAULT_JOURNAL_DIR = "data/journal";
+
+   public static final String DEFAULT_PAGING_DIR = "data/paging";
+
+   public static final String DEFAULT_LARGE_MESSAGES_DIR = "data/largemessages";
+
+   public static final boolean DEFAULT_CREATE_JOURNAL_DIR = true;
+
+   public static final JournalType DEFAULT_JOURNAL_TYPE = JournalType.ASYNCIO;
+
+   public static final boolean DEFAULT_JOURNAL_SYNC_TRANSACTIONAL = true;
+
+   public static final boolean DEFAULT_JOURNAL_SYNC_NON_TRANSACTIONAL = true;
+
+   public static final int DEFAULT_JOURNAL_FILE_SIZE = 10485760;
+
+   public static final int DEFAULT_JOURNAL_COMPACT_MIN_FILES = 10;
+
+   public static final int DEFAULT_JOURNAL_COMPACT_PERCENTAGE = 30;
+
+   public static final int DEFAULT_JOURNAL_MIN_FILES = 2;
+
+   // AIO and NIO need to have different defaults for some values
+
+   public static final int DEFAULT_JOURNAL_MAX_IO_AIO = 500;
+
+   public static final int DEFAULT_JOURNAL_BUFFER_TIMEOUT_AIO = (int)(1000000000d / 2000);
+
+   public static final int DEFAULT_JOURNAL_BUFFER_SIZE_AIO = 490 * 1024;
+
+   public static final int DEFAULT_JOURNAL_MAX_IO_NIO = 1;
+
+   public static final int DEFAULT_JOURNAL_BUFFER_TIMEOUT_NIO = (int)(1000000000d / 300);
+
+   public static final int DEFAULT_JOURNAL_BUFFER_SIZE_NIO = 490 * 1024;
+
+   public static final boolean DEFAULT_JOURNAL_LOG_WRITE_RATE = false;
+
+   public static final int DEFAULT_JOURNAL_PERF_BLAST_PAGES = -1;
+
+   public static final boolean DEFAULT_RUN_SYNC_SPEED_TEST = false;
+
+   public static final boolean DEFAULT_WILDCARD_ROUTING_ENABLED = true;
+
+   public static final boolean DEFAULT_MESSAGE_COUNTER_ENABLED = false;
+
+   public static final long DEFAULT_MESSAGE_COUNTER_SAMPLE_PERIOD = 10000;
+
+   public static final int DEFAULT_MESSAGE_COUNTER_MAX_DAY_HISTORY = 10;
+
+   public static final long DEFAULT_TRANSACTION_TIMEOUT = 300000; // 5 minutes
+
+   public static final long DEFAULT_TRANSACTION_TIMEOUT_SCAN_PERIOD = 1000;
+
+   public static final SimpleString DEFAULT_MANAGEMENT_ADDRESS = new SimpleString("hornetq.management");
+
+   public static final SimpleString DEFAULT_MANAGEMENT_NOTIFICATION_ADDRESS = new SimpleString("hornetq.notifications");
+
+   public static final String DEFAULT_MANAGEMENT_CLUSTER_USER = "HORNETQ.MANAGEMENT.ADMIN.USER";
+
+   public static final String DEFAULT_MANAGEMENT_CLUSTER_PASSWORD = "CHANGE ME!!";
+
+   public static final long DEFAULT_BROADCAST_PERIOD = 1000;
+
+   public static final long DEFAULT_BROADCAST_REFRESH_TIMEOUT = 10000;
+
+   public static final long DEFAULT_MESSAGE_EXPIRY_SCAN_PERIOD = 30000;
+
+   public static final int DEFAULT_MESSAGE_EXPIRY_THREAD_PRIORITY = 3;
+
+   public static final int DEFAULT_ID_CACHE_SIZE = 2000;
+
+   public static final boolean DEFAULT_PERSIST_ID_CACHE = true;
+
+   public static final boolean DEFAULT_CLUSTER_DUPLICATE_DETECTION = true;
+
+   public static final boolean DEFAULT_CLUSTER_FORWARD_WHEN_NO_CONSUMERS = false;
+
+   public static final int DEFAULT_CLUSTER_MAX_HOPS = 1;
+
+   public static final long DEFAULT_CLUSTER_RETRY_INTERVAL = 500;
+
+   public static final boolean DEFAULT_DIVERT_EXCLUSIVE = false;
+
+   public static final boolean DEFAULT_BRIDGE_DUPLICATE_DETECTION = true;
+
+   public static final int DEFAULT_BRIDGE_RECONNECT_ATTEMPTS = -1;
+
+   public static final long DEFAULT_SERVER_DUMP_INTERVAL = -1;
+
+   public static final int DEFAULT_MEMORY_WARNING_THRESHOLD = 25;
+
+   public static final long DEFAULT_MEMORY_MEASURE_INTERVAL = -1; // in milliseconds
+
+   public static final String DEFAULT_LOG_DELEGATE_FACTORY_CLASS_NAME = JULLogDelegateFactory.class.getCanonicalName();
+
+   // Attributes -----------------------------------------------------------------------------
+
+   protected boolean clustered = ConfigurationImpl.DEFAULT_CLUSTERED;
+
+   protected boolean backup = ConfigurationImpl.DEFAULT_BACKUP;
+
+   protected boolean sharedStore = ConfigurationImpl.DEFAULT_SHARED_STORE;
+
+   protected boolean fileDeploymentEnabled = ConfigurationImpl.DEFAULT_FILE_DEPLOYMENT_ENABLED;
+
+   protected boolean persistenceEnabled = ConfigurationImpl.DEFAULT_PERSISTENCE_ENABLED;
+
+   protected long fileDeploymentScanPeriod = ConfigurationImpl.DEFAULT_FILE_DEPLOYER_SCAN_PERIOD;
+
+   protected boolean persistDeliveryCountBeforeDelivery = ConfigurationImpl.DEFAULT_PERSIST_DELIVERY_COUNT_BEFORE_DELIVERY;
+
+   protected int scheduledThreadPoolMaxSize = ConfigurationImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE;
+
+   protected int threadPoolMaxSize = ConfigurationImpl.DEFAULT_THREAD_POOL_MAX_SIZE;
+
+   protected long securityInvalidationInterval = ConfigurationImpl.DEFAULT_SECURITY_INVALIDATION_INTERVAL;
+
+   protected boolean securityEnabled = ConfigurationImpl.DEFAULT_SECURITY_ENABLED;
+
+   protected boolean jmxManagementEnabled = ConfigurationImpl.DEFAULT_JMX_MANAGEMENT_ENABLED;
+
+   protected String jmxDomain = ConfigurationImpl.DEFAULT_JMX_DOMAIN;
+
+   protected long connectionTTLOverride = ConfigurationImpl.DEFAULT_CONNECTION_TTL_OVERRIDE;
+
+   protected boolean asyncConnectionExecutionEnabled = ConfigurationImpl.DEFAULT_ASYNC_CONNECTION_EXECUTION_ENABLED;
+
+   protected long messageExpiryScanPeriod = ConfigurationImpl.DEFAULT_MESSAGE_EXPIRY_SCAN_PERIOD;
+
+   protected int messageExpiryThreadPriority = ConfigurationImpl.DEFAULT_MESSAGE_EXPIRY_THREAD_PRIORITY;
+
+   protected int idCacheSize = ConfigurationImpl.DEFAULT_ID_CACHE_SIZE;
+
+   protected boolean persistIDCache = ConfigurationImpl.DEFAULT_PERSIST_ID_CACHE;
+
+   protected String logDelegateFactoryClassName = ConfigurationImpl.DEFAULT_LOG_DELEGATE_FACTORY_CLASS_NAME;
+
+   protected List<String> interceptorClassNames = new ArrayList<String>();
+
+   protected Map<String, TransportConfiguration> connectorConfigs = new HashMap<String, TransportConfiguration>();
+
+   protected Set<TransportConfiguration> acceptorConfigs = new HashSet<TransportConfiguration>();
+
+   protected String backupConnectorName;
+
+   protected List<BridgeConfiguration> bridgeConfigurations = new ArrayList<BridgeConfiguration>();
+
+   protected List<DivertConfiguration> divertConfigurations = new ArrayList<DivertConfiguration>();
+
+   protected List<ClusterConnectionConfiguration> clusterConfigurations = new ArrayList<ClusterConnectionConfiguration>();
+
+   protected List<QueueConfiguration> queueConfigurations = new ArrayList<QueueConfiguration>();
+
+   protected List<BroadcastGroupConfiguration> broadcastGroupConfigurations = new ArrayList<BroadcastGroupConfiguration>();
+
+   protected Map<String, DiscoveryGroupConfiguration> discoveryGroupConfigurations = new LinkedHashMap<String, DiscoveryGroupConfiguration>();
+
+   // Paging related attributes ------------------------------------------------------------
+
+   protected String pagingDirectory = ConfigurationImpl.DEFAULT_PAGING_DIR;
+
+   // File related attributes -----------------------------------------------------------
+
+   protected String largeMessagesDirectory = ConfigurationImpl.DEFAULT_LARGE_MESSAGES_DIR;
+
+   protected String bindingsDirectory = ConfigurationImpl.DEFAULT_BINDINGS_DIRECTORY;
+
+   protected boolean createBindingsDir = ConfigurationImpl.DEFAULT_CREATE_BINDINGS_DIR;
+
+   protected String journalDirectory = ConfigurationImpl.DEFAULT_JOURNAL_DIR;
+
+   protected boolean createJournalDir = ConfigurationImpl.DEFAULT_CREATE_JOURNAL_DIR;
+
+   public JournalType journalType = ConfigurationImpl.DEFAULT_JOURNAL_TYPE;
+
+   protected boolean journalSyncTransactional = ConfigurationImpl.DEFAULT_JOURNAL_SYNC_TRANSACTIONAL;
+
+   protected boolean journalSyncNonTransactional = ConfigurationImpl.DEFAULT_JOURNAL_SYNC_NON_TRANSACTIONAL;
+
+   protected int journalCompactMinFiles = ConfigurationImpl.DEFAULT_JOURNAL_COMPACT_MIN_FILES;
+
+   protected int journalCompactPercentage = ConfigurationImpl.DEFAULT_JOURNAL_COMPACT_PERCENTAGE;
+
+   protected int journalFileSize = ConfigurationImpl.DEFAULT_JOURNAL_FILE_SIZE;
+
+   protected int journalMinFiles = ConfigurationImpl.DEFAULT_JOURNAL_MIN_FILES;
+
+   // AIO and NIO need different values for these attributes
+
+   protected int journalMaxIO_AIO = ConfigurationImpl.DEFAULT_JOURNAL_MAX_IO_AIO;
+
+   protected int journalBufferTimeout_AIO = ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_TIMEOUT_AIO;
+
+   protected int journalBufferSize_AIO = ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_SIZE_AIO;
+
+   protected int journalMaxIO_NIO = ConfigurationImpl.DEFAULT_JOURNAL_MAX_IO_NIO;
+
+   protected int journalBufferTimeout_NIO = ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_TIMEOUT_NIO;
+
+   protected int journalBufferSize_NIO = ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_SIZE_NIO;
+
+   protected boolean logJournalWriteRate = ConfigurationImpl.DEFAULT_JOURNAL_LOG_WRITE_RATE;
+
+   protected int journalPerfBlastPages = ConfigurationImpl.DEFAULT_JOURNAL_PERF_BLAST_PAGES;
+
+   protected boolean runSyncSpeedTest = ConfigurationImpl.DEFAULT_RUN_SYNC_SPEED_TEST;
+
+   protected boolean wildcardRoutingEnabled = ConfigurationImpl.DEFAULT_WILDCARD_ROUTING_ENABLED;
+
+   protected boolean messageCounterEnabled = ConfigurationImpl.DEFAULT_MESSAGE_COUNTER_ENABLED;
+
+   protected long messageCounterSamplePeriod = ConfigurationImpl.DEFAULT_MESSAGE_COUNTER_SAMPLE_PERIOD;
+
+   protected int messageCounterMaxDayHistory = ConfigurationImpl.DEFAULT_MESSAGE_COUNTER_MAX_DAY_HISTORY;
+
+   protected long transactionTimeout = ConfigurationImpl.DEFAULT_TRANSACTION_TIMEOUT;
+
+   protected long transactionTimeoutScanPeriod = ConfigurationImpl.DEFAULT_TRANSACTION_TIMEOUT_SCAN_PERIOD;
+
+   protected SimpleString managementAddress = ConfigurationImpl.DEFAULT_MANAGEMENT_ADDRESS;
+
+   protected SimpleString managementNotificationAddress = ConfigurationImpl.DEFAULT_MANAGEMENT_NOTIFICATION_ADDRESS;
+
+   protected String managementClusterUser = ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_USER;
+
+   protected String managementClusterPassword = ConfigurationImpl.DEFAULT_MANAGEMENT_CLUSTER_PASSWORD;
+
+   protected long serverDumpInterval = ConfigurationImpl.DEFAULT_SERVER_DUMP_INTERVAL;
+
+   // percentage of free memory which triggers warning from the memory manager
+   protected int memoryWarningThreshold = ConfigurationImpl.DEFAULT_MEMORY_WARNING_THRESHOLD;
+
+   protected long memoryMeasureInterval = ConfigurationImpl.DEFAULT_MEMORY_MEASURE_INTERVAL;
+
+   protected GroupingHandlerConfiguration groupingHandlerConfiguration;
+
+   // Public -------------------------------------------------------------------------
+
+   public boolean isClustered()
+   {
+      return clustered;
+   }
+
+   public void setClustered(final boolean clustered)
+   {
+      this.clustered = clustered;
+   }
+
+   public boolean isBackup()
+   {
+      return backup;
+   }
+
+   public boolean isFileDeploymentEnabled()
+   {
+      return fileDeploymentEnabled;
+   }
+
+   public void setFileDeploymentEnabled(final boolean enable)
+   {
+      fileDeploymentEnabled = enable;
+   }
+
+   public boolean isPersistenceEnabled()
+   {
+      return persistenceEnabled;
+   }
+
+   public void setPersistenceEnabled(final boolean enable)
+   {
+      persistenceEnabled = enable;
+   }
+
+   public long getFileDeployerScanPeriod()
+   {
+      return fileDeploymentScanPeriod;
+   }
+
+   public void setFileDeployerScanPeriod(final long period)
+   {
+      fileDeploymentScanPeriod = period;
+   }
+
+   /**
+    * @return the persistDeliveryCountBeforeDelivery
+    */
+   public boolean isPersistDeliveryCountBeforeDelivery()
+   {
+      return persistDeliveryCountBeforeDelivery;
+   }
+
+   public void setPersistDeliveryCountBeforeDelivery(final boolean persistDeliveryCountBeforeDelivery)
+   {
+      this.persistDeliveryCountBeforeDelivery = persistDeliveryCountBeforeDelivery;
+   }
+
+   public void setBackup(final boolean backup)
+   {
+      this.backup = backup;
+   }
+
+   public boolean isSharedStore()
+   {
+      return sharedStore;
+   }
+
+   public void setSharedStore(final boolean sharedStore)
+   {
+      this.sharedStore = sharedStore;
+   }
+
+   public int getScheduledThreadPoolMaxSize()
+   {
+      return scheduledThreadPoolMaxSize;
+   }
+
+   public void setScheduledThreadPoolMaxSize(final int maxSize)
+   {
+      scheduledThreadPoolMaxSize = maxSize;
+   }
+
+   public int getThreadPoolMaxSize()
+   {
+      return threadPoolMaxSize;
+   }
+
+   public void setThreadPoolMaxSize(final int maxSize)
+   {
+      threadPoolMaxSize = maxSize;
+   }
+
+   public long getSecurityInvalidationInterval()
+   {
+      return securityInvalidationInterval;
+   }
+
+   public void setSecurityInvalidationInterval(final long interval)
+   {
+      securityInvalidationInterval = interval;
+   }
+
+   public long getConnectionTTLOverride()
+   {
+      return connectionTTLOverride;
+   }
+
+   public void setConnectionTTLOverride(final long ttl)
+   {
+      connectionTTLOverride = ttl;
+   }
+
+   public boolean isAsyncConnectionExecutionEnabled()
+   {
+      return asyncConnectionExecutionEnabled;
+   }
+
+   public void setEnabledAsyncConnectionExecution(final boolean enabled)
+   {
+      asyncConnectionExecutionEnabled = enabled;
+   }
+
+   public List<String> getInterceptorClassNames()
+   {
+      return interceptorClassNames;
+   }
+
+   public void setInterceptorClassNames(final List<String> interceptors)
+   {
+      interceptorClassNames = interceptors;
+   }
+
+   public Set<TransportConfiguration> getAcceptorConfigurations()
+   {
+      return acceptorConfigs;
+   }
+
+   public void setAcceptorConfigurations(final Set<TransportConfiguration> infos)
+   {
+      acceptorConfigs = infos;
+   }
+
+   public Map<String, TransportConfiguration> getConnectorConfigurations()
+   {
+      return connectorConfigs;
+   }
+
+   public void setConnectorConfigurations(final Map<String, TransportConfiguration> infos)
+   {
+      connectorConfigs = infos;
+   }
+
+   public String getBackupConnectorName()
+   {
+      return backupConnectorName;
+   }
+
+   public void setBackupConnectorName(final String backupConnectorName)
+   {
+      this.backupConnectorName = backupConnectorName;
+   }
+
+   public GroupingHandlerConfiguration getGroupingHandlerConfiguration()
+   {
+      return groupingHandlerConfiguration;
+   }
+
+   public void setGroupingHandlerConfiguration(final GroupingHandlerConfiguration groupingHandlerConfiguration)
+   {
+      this.groupingHandlerConfiguration = groupingHandlerConfiguration;
+   }
+
+   public List<BridgeConfiguration> getBridgeConfigurations()
+   {
+      return bridgeConfigurations;
+   }
+
+   public void setBridgeConfigurations(final List<BridgeConfiguration> configs)
+   {
+      bridgeConfigurations = configs;
+   }
+
+   public List<BroadcastGroupConfiguration> getBroadcastGroupConfigurations()
+   {
+      return broadcastGroupConfigurations;
+   }
+
+   public void setBroadcastGroupConfigurations(final List<BroadcastGroupConfiguration> configs)
+   {
+      broadcastGroupConfigurations = configs;
+   }
+
+   public List<ClusterConnectionConfiguration> getClusterConfigurations()
+   {
+      return clusterConfigurations;
+   }
+
+   public void setClusterConfigurations(final List<ClusterConnectionConfiguration> configs)
+   {
+      clusterConfigurations = configs;
+   }
+
+   public List<DivertConfiguration> getDivertConfigurations()
+   {
+      return divertConfigurations;
+   }
+
+   public void setDivertConfigurations(final List<DivertConfiguration> configs)
+   {
+      divertConfigurations = configs;
+   }
+
+   public List<QueueConfiguration> getQueueConfigurations()
+   {
+      return queueConfigurations;
+   }
+
+   public void setQueueConfigurations(final List<QueueConfiguration> configs)
+   {
+      queueConfigurations = configs;
+   }
+
+   public Map<String, DiscoveryGroupConfiguration> getDiscoveryGroupConfigurations()
+   {
+      return discoveryGroupConfigurations;
+   }
+
+   public void setDiscoveryGroupConfigurations(final Map<String, DiscoveryGroupConfiguration> discoveryGroupConfigurations)
+   {
+      this.discoveryGroupConfigurations = discoveryGroupConfigurations;
+   }
+
+   public int getIDCacheSize()
+   {
+      return idCacheSize;
+   }
+
+   public void setIDCacheSize(final int idCacheSize)
+   {
+      this.idCacheSize = idCacheSize;
+   }
+
+   public boolean isPersistIDCache()
+   {
+      return persistIDCache;
+   }
+
+   public void setPersistIDCache(final boolean persist)
+   {
+      persistIDCache = persist;
+   }
+
+   public String getBindingsDirectory()
+   {
+      return bindingsDirectory;
+   }
+
+   public void setBindingsDirectory(final String dir)
+   {
+      bindingsDirectory = dir;
+   }
+
+   public String getJournalDirectory()
+   {
+      return journalDirectory;
+   }
+
+   public void setJournalDirectory(final String dir)
+   {
+      journalDirectory = dir;
+   }
+
+   public JournalType getJournalType()
+   {
+      return journalType;
+   }
+
+   public void setPagingDirectory(final String dir)
+   {
+      pagingDirectory = dir;
+   }
+
+   public String getPagingDirectory()
+   {
+      return pagingDirectory;
+   }
+
+   public void setJournalType(final JournalType type)
+   {
+      journalType = type;
+   }
+
+   public boolean isJournalSyncTransactional()
+   {
+      return journalSyncTransactional;
+   }
+
+   public void setJournalSyncTransactional(final boolean sync)
+   {
+      journalSyncTransactional = sync;
+   }
+
+   public boolean isJournalSyncNonTransactional()
+   {
+      return journalSyncNonTransactional;
+   }
+
+   public void setJournalSyncNonTransactional(final boolean sync)
+   {
+      journalSyncNonTransactional = sync;
+   }
+
+   public int getJournalFileSize()
+   {
+      return journalFileSize;
+   }
+
+   public void setJournalFileSize(final int size)
+   {
+      journalFileSize = size;
+   }
+
+   public int getJournalMinFiles()
+   {
+      return journalMinFiles;
+   }
+
+   public void setJournalMinFiles(final int files)
+   {
+      journalMinFiles = files;
+   }
+
+   public boolean isLogJournalWriteRate()
+   {
+      return logJournalWriteRate;
+   }
+
+   public void setLogJournalWriteRate(final boolean logJournalWriteRate)
+   {
+      this.logJournalWriteRate = logJournalWriteRate;
+   }
+
+   public int getJournalPerfBlastPages()
+   {
+      return journalPerfBlastPages;
+   }
+
+   public void setJournalPerfBlastPages(final int journalPerfBlastPages)
+   {
+      this.journalPerfBlastPages = journalPerfBlastPages;
+   }
+
+   public boolean isRunSyncSpeedTest()
+   {
+      return runSyncSpeedTest;
+   }
+
+   public void setRunSyncSpeedTest(final boolean run)
+   {
+      runSyncSpeedTest = run;
+   }
+
+   public boolean isCreateBindingsDir()
+   {
+      return createBindingsDir;
+   }
+
+   public void setCreateBindingsDir(final boolean create)
+   {
+      createBindingsDir = create;
+   }
+
+   public boolean isCreateJournalDir()
+   {
+      return createJournalDir;
+   }
+
+   public void setCreateJournalDir(final boolean create)
+   {
+      createJournalDir = create;
+   }
+
+   public boolean isWildcardRoutingEnabled()
+   {
+      return wildcardRoutingEnabled;
+   }
+
+   public void setWildcardRoutingEnabled(final boolean enabled)
+   {
+      wildcardRoutingEnabled = enabled;
+   }
+
+   public long getTransactionTimeout()
+   {
+      return transactionTimeout;
+   }
+
+   public void setTransactionTimeout(final long timeout)
+   {
+      transactionTimeout = timeout;
+   }
+
+   public long getTransactionTimeoutScanPeriod()
+   {
+      return transactionTimeoutScanPeriod;
+   }
+
+   public void setTransactionTimeoutScanPeriod(final long period)
+   {
+      transactionTimeoutScanPeriod = period;
+   }
+
+   public long getMessageExpiryScanPeriod()
+   {
+      return messageExpiryScanPeriod;
+   }
+
+   public void setMessageExpiryScanPeriod(final long messageExpiryScanPeriod)
+   {
+      this.messageExpiryScanPeriod = messageExpiryScanPeriod;
+   }
+
+   public int getMessageExpiryThreadPriority()
+   {
+      return messageExpiryThreadPriority;
+   }
+
+   public void setMessageExpiryThreadPriority(final int messageExpiryThreadPriority)
+   {
+      this.messageExpiryThreadPriority = messageExpiryThreadPriority;
+   }
+
+   public boolean isSecurityEnabled()
+   {
+      return securityEnabled;
+   }
+
+   public void setSecurityEnabled(final boolean enabled)
+   {
+      securityEnabled = enabled;
+   }
+
+   public boolean isJMXManagementEnabled()
+   {
+      return jmxManagementEnabled;
+   }
+
+   public void setJMXManagementEnabled(final boolean enabled)
+   {
+      jmxManagementEnabled = enabled;
+   }
+
+   public String getJMXDomain()
+   {
+      return jmxDomain;
+   }
+
+   public void setJMXDomain(final String domain)
+   {
+      jmxDomain = domain;
+   }
+
+   public String getLargeMessagesDirectory()
+   {
+      return largeMessagesDirectory;
+   }
+
+   public void setLargeMessagesDirectory(final String directory)
+   {
+      largeMessagesDirectory = directory;
+   }
+
+   public boolean isMessageCounterEnabled()
+   {
+      return messageCounterEnabled;
+   }
+
+   public void setMessageCounterEnabled(final boolean enabled)
+   {
+      messageCounterEnabled = enabled;
+   }
+
+   public long getMessageCounterSamplePeriod()
+   {
+      return messageCounterSamplePeriod;
+   }
+   
+   public void setMessageCounterSamplePeriod(long period)
+   {
+      this.messageCounterSamplePeriod = period;
+   }
+
+   public int getMessageCounterMaxDayHistory()
+   {
+      return messageCounterMaxDayHistory;
+   }
+
+   public void setMessageCounterMaxDayHistory(final int maxDayHistory)
+   {
+      messageCounterMaxDayHistory = maxDayHistory;
+   }
+
+   public SimpleString getManagementAddress()
+   {
+      return managementAddress;
+   }
+
+   public void setManagementAddress(final SimpleString address)
+   {
+      managementAddress = address;
+   }
+
+   public SimpleString getManagementNotificationAddress()
+   {
+      return managementNotificationAddress;
+   }
+
+   public void setManagementNotificationAddress(final SimpleString address)
+   {
+      managementNotificationAddress = address;
+   }
+
+   public String getManagementClusterUser()
+   {
+      return managementClusterUser;
+   }
+
+   public void setManagementClusterUser(final String user)
+   {
+      managementClusterUser = user;
+   }
+
+   public String getManagementClusterPassword()
+   {
+      return managementClusterPassword;
+   }
+
+   public void setManagementClusterPassword(final String clusterPassword)
+   {
+      managementClusterPassword = clusterPassword;
+   }
+
+   public int getJournalCompactMinFiles()
+   {
+      return journalCompactMinFiles;
+   }
+
+   public int getJournalCompactPercentage()
+   {
+      return journalCompactPercentage;
+   }
+
+   public void setJournalCompactMinFiles(final int minFiles)
+   {
+      journalCompactMinFiles = minFiles;
+   }
+
+   public void setJournalCompactPercentage(final int percentage)
+   {
+      journalCompactPercentage = percentage;
+   }
+
+   public long getServerDumpInterval()
+   {
+      return serverDumpInterval;
+   }
+
+   public void setServerDumpInterval(final long intervalInMilliseconds)
+   {
+      serverDumpInterval = intervalInMilliseconds;
+   }
+
+   public int getMemoryWarningThreshold()
+   {
+      return memoryWarningThreshold;
+   }
+
+   public void setMemoryWarningThreshold(final int memoryWarningThreshold)
+   {
+      this.memoryWarningThreshold = memoryWarningThreshold;
+   }
+
+   public long getMemoryMeasureInterval()
+   {
+      return memoryMeasureInterval;
+   }
+
+   public void setMemoryMeasureInterval(final long memoryMeasureInterval)
+   {
+      this.memoryMeasureInterval = memoryMeasureInterval;
+   }
+
+   public String getLogDelegateFactoryClassName()
+   {
+      return logDelegateFactoryClassName;
+   }
+
+   public void setLogDelegateFactoryClassName(final String className)
+   {
+      logDelegateFactoryClassName = className;
+   }
+
+   public int getJournalMaxIO_AIO()
+   {
+      return journalMaxIO_AIO;
+   }
+
+   public void setJournalMaxIO_AIO(final int journalMaxIO)
+   {
+      journalMaxIO_AIO = journalMaxIO;
+   }
+
+   public int getJournalBufferTimeout_AIO()
+   {
+      return journalBufferTimeout_AIO;
+   }
+
+   public void setJournalBufferTimeout_AIO(final int journalBufferTimeout)
+   {
+      journalBufferTimeout_AIO = journalBufferTimeout;
+   }
+
+   public int getJournalBufferSize_AIO()
+   {
+      return journalBufferSize_AIO;
+   }
+
+   public void setJournalBufferSize_AIO(final int journalBufferSize)
+   {
+      journalBufferSize_AIO = journalBufferSize;
+   }
+
+   public int getJournalMaxIO_NIO()
+   {
+      return journalMaxIO_NIO;
+   }
+
+   public void setJournalMaxIO_NIO(final int journalMaxIO)
+   {
+      journalMaxIO_NIO = journalMaxIO;
+   }
+
+   public int getJournalBufferTimeout_NIO()
+   {
+      return journalBufferTimeout_NIO;
+   }
+
+   public void setJournalBufferTimeout_NIO(final int journalBufferTimeout)
+   {
+      journalBufferTimeout_NIO = journalBufferTimeout;
+   }
+
+   public int getJournalBufferSize_NIO()
+   {
+      return journalBufferSize_NIO;
+   }
+
+   public void setJournalBufferSize_NIO(final int journalBufferSize)
+   {
+      journalBufferSize_NIO = journalBufferSize;
+   }
+
+   @Override
+   public boolean equals(final Object obj)
+   {
+      if (this == obj)
+      {
+         return true;
+      }
+      if (obj == null)
+      {
+         return false;
+      }
+      if (getClass() != obj.getClass())
+      {
+         return false;
+      }
+      ConfigurationImpl other = (ConfigurationImpl)obj;
+      if (asyncConnectionExecutionEnabled != other.asyncConnectionExecutionEnabled)
+      {
+         return false;
+      }
+      if (backup != other.backup)
+      {
+         return false;
+      }
+      if (sharedStore != other.sharedStore)
+      {
+         return false;
+      }
+      if (backupConnectorName == null)
+      {
+         if (other.backupConnectorName != null)
+         {
+            return false;
+         }
+      }
+      else if (!backupConnectorName.equals(other.backupConnectorName))
+      {
+         return false;
+      }
+      if (bindingsDirectory == null)
+      {
+         if (other.bindingsDirectory != null)
+         {
+            return false;
+         }
+      }
+      else if (!bindingsDirectory.equals(other.bindingsDirectory))
+      {
+         return false;
+      }
+
+      if (clustered != other.clustered)
+      {
+         return false;
+      }
+      if (connectionTTLOverride != other.connectionTTLOverride)
+      {
+         return false;
+      }
+      if (createBindingsDir != other.createBindingsDir)
+      {
+         return false;
+      }
+      if (createJournalDir != other.createJournalDir)
+      {
+         return false;
+      }
+
+      if (fileDeploymentEnabled != other.fileDeploymentEnabled)
+      {
+         return false;
+      }
+      if (fileDeploymentScanPeriod != other.fileDeploymentScanPeriod)
+      {
+         return false;
+      }
+      if (idCacheSize != other.idCacheSize)
+      {
+         return false;
+      }
+      if (jmxManagementEnabled != other.jmxManagementEnabled)
+      {
+         return false;
+      }
+      if (journalBufferSize_AIO != other.journalBufferSize_AIO)
+      {
+         return false;
+      }
+      if (journalBufferTimeout_AIO != other.journalBufferTimeout_AIO)
+      {
+         return false;
+      }
+      if (journalMaxIO_AIO != other.journalMaxIO_AIO)
+      {
+         return false;
+      }
+      if (journalBufferSize_NIO != other.journalBufferSize_NIO)
+      {
+         return false;
+      }
+      if (journalBufferTimeout_NIO != other.journalBufferTimeout_NIO)
+      {
+         return false;
+      }
+      if (journalMaxIO_NIO != other.journalMaxIO_NIO)
+      {
+         return false;
+      }
+      if (journalCompactMinFiles != other.journalCompactMinFiles)
+      {
+         return false;
+      }
+      if (journalCompactPercentage != other.journalCompactPercentage)
+      {
+         return false;
+      }
+      if (journalDirectory == null)
+      {
+         if (other.journalDirectory != null)
+         {
+            return false;
+         }
+      }
+      else if (!journalDirectory.equals(other.journalDirectory))
+      {
+         return false;
+      }
+      if (journalFileSize != other.journalFileSize)
+      {
+         return false;
+      }
+
+      if (journalMinFiles != other.journalMinFiles)
+      {
+         return false;
+      }
+      if (journalPerfBlastPages != other.journalPerfBlastPages)
+      {
+         return false;
+      }
+      if (journalSyncNonTransactional != other.journalSyncNonTransactional)
+      {
+         return false;
+      }
+      if (journalSyncTransactional != other.journalSyncTransactional)
+      {
+         return false;
+      }
+      if (journalType == null)
+      {
+         if (other.journalType != null)
+         {
+            return false;
+         }
+      }
+      else if (!journalType.equals(other.journalType))
+      {
+         return false;
+      }
+      if (largeMessagesDirectory == null)
+      {
+         if (other.largeMessagesDirectory != null)
+         {
+            return false;
+         }
+      }
+      else if (!largeMessagesDirectory.equals(other.largeMessagesDirectory))
+      {
+         return false;
+      }
+      if (logJournalWriteRate != other.logJournalWriteRate)
+      {
+         return false;
+      }
+      if (managementAddress == null)
+      {
+         if (other.managementAddress != null)
+         {
+            return false;
+         }
+      }
+      else if (!managementAddress.equals(other.managementAddress))
+      {
+         return false;
+      }
+      if (managementClusterPassword == null)
+      {
+         if (other.managementClusterPassword != null)
+         {
+            return false;
+         }
+      }
+      else if (!managementClusterPassword.equals(other.managementClusterPassword))
+      {
+         return false;
+      }
+      if (managementClusterUser == null)
+      {
+         if (other.managementClusterUser != null)
+         {
+            return false;
+         }
+      }
+      else if (!managementClusterUser.equals(other.managementClusterUser))
+      {
+         return false;
+      }
+      if (managementNotificationAddress == null)
+      {
+         if (other.managementNotificationAddress != null)
+         {
+            return false;
+         }
+      }
+      else if (!managementNotificationAddress.equals(other.managementNotificationAddress))
+      {
+         return false;
+      }
+      if (messageCounterEnabled != other.messageCounterEnabled)
+      {
+         return false;
+      }
+      if (messageCounterMaxDayHistory != other.messageCounterMaxDayHistory)
+      {
+         return false;
+      }
+      if (messageCounterSamplePeriod != other.messageCounterSamplePeriod)
+      {
+         return false;
+      }
+      if (messageExpiryScanPeriod != other.messageExpiryScanPeriod)
+      {
+         return false;
+      }
+      if (messageExpiryThreadPriority != other.messageExpiryThreadPriority)
+      {
+         return false;
+      }
+      if (pagingDirectory == null)
+      {
+         if (other.pagingDirectory != null)
+         {
+            return false;
+         }
+      }
+      else if (!pagingDirectory.equals(other.pagingDirectory))
+      {
+         return false;
+      }
+      if (persistDeliveryCountBeforeDelivery != other.persistDeliveryCountBeforeDelivery)
+      {
+         return false;
+      }
+      if (persistIDCache != other.persistIDCache)
+      {
+         return false;
+      }
+      if (persistenceEnabled != other.persistenceEnabled)
+      {
+         return false;
+      }
+      if (scheduledThreadPoolMaxSize != other.scheduledThreadPoolMaxSize)
+      {
+         return false;
+      }
+      if (securityEnabled != other.securityEnabled)
+      {
+         return false;
+      }
+      if (securityInvalidationInterval != other.securityInvalidationInterval)
+      {
+         return false;
+      }
+      if (serverDumpInterval != other.serverDumpInterval)
+      {
+         return false;
+      }
+      if (threadPoolMaxSize != other.threadPoolMaxSize)
+      {
+         return false;
+      }
+      if (transactionTimeout != other.transactionTimeout)
+      {
+         return false;
+      }
+      if (transactionTimeoutScanPeriod != other.transactionTimeoutScanPeriod)
+      {
+         return false;
+      }
+      if (wildcardRoutingEnabled != other.wildcardRoutingEnabled)
+      {
+         return false;
+      }
+      return true;
+   }
+
+}

Copied: trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/core/config/FileConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/core/config/impl/FileConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,847 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.config.impl;
+
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.hornetq.api.Pair;
+import org.hornetq.api.SimpleString;
+import org.hornetq.api.core.client.ClientSessionFactoryImpl;
+import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.core.logging.Logger;
+import org.hornetq.core.server.JournalType;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
+import org.hornetq.core.server.cluster.DivertConfiguration;
+import org.hornetq.core.server.group.impl.GroupingHandlerConfiguration;
+import org.hornetq.utils.XMLConfigurationUtil;
+import org.hornetq.utils.XMLUtil;
+import org.w3c.dom.Element;
+import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+/**
+ * ConfigurationImpl
+ * This class allows the Configuration class to be configured via a config file.
+ *
+ * @author <a href="ataylor at redhat.com">Andy Taylor</a>
+ * @author <a href="tim.fox at jboss.com">Tim Fox</a>
+ */
+public class FileConfiguration extends ConfigurationImpl
+{
+   private static final long serialVersionUID = -4766689627675039596L;
+
+   private static final Logger log = Logger.getLogger(FileConfiguration.class);
+
+   // Constants ------------------------------------------------------------------------
+
+   private static final String DEFAULT_CONFIGURATION_URL = "hornetq-configuration.xml";
+
+   private static final String CONFIGURATION_SCHEMA_URL = "schema/hornetq-configuration.xsd";
+
+   // For a bridge confirmations must be activated or send acknowledgements won't return
+
+   public static final int DEFAULT_CONFIRMATION_WINDOW_SIZE = 1024 * 1024;
+
+   // Static --------------------------------------------------------------------------
+
+   // Attributes ----------------------------------------------------------------------
+
+   private String configurationUrl = FileConfiguration.DEFAULT_CONFIGURATION_URL;
+
+   private boolean started;
+
+   // Public -------------------------------------------------------------------------
+
+   public synchronized void start() throws Exception
+   {
+      if (started)
+      {
+         return;
+      }
+
+      URL url = getClass().getClassLoader().getResource(configurationUrl);
+      FileConfiguration.log.debug("Loading server configuration from " + url);
+
+      Reader reader = new InputStreamReader(url.openStream());
+      String xml = org.hornetq.utils.XMLUtil.readerToString(reader);
+      xml = XMLUtil.replaceSystemProps(xml);
+      Element e = org.hornetq.utils.XMLUtil.stringToElement(xml);
+      org.hornetq.utils.XMLUtil.validate(e, FileConfiguration.CONFIGURATION_SCHEMA_URL);
+
+      clustered = XMLConfigurationUtil.getBoolean(e, "clustered", clustered);
+
+      backup = XMLConfigurationUtil.getBoolean(e, "backup", backup);
+
+      sharedStore = XMLConfigurationUtil.getBoolean(e, "shared-store", sharedStore);
+
+      // Defaults to true when using FileConfiguration
+      fileDeploymentEnabled = XMLConfigurationUtil.getBoolean(e, "file-deployment-enabled", true);
+
+      persistenceEnabled = XMLConfigurationUtil.getBoolean(e, "persistence-enabled", persistenceEnabled);
+
+      persistDeliveryCountBeforeDelivery = XMLConfigurationUtil.getBoolean(e,
+                                                                           "persist-delivery-count-before-delivery",
+                                                                           persistDeliveryCountBeforeDelivery);
+
+      // NOTE! All the defaults come from the super class
+
+      scheduledThreadPoolMaxSize = XMLConfigurationUtil.getInteger(e,
+                                                                   "scheduled-thread-pool-max-size",
+                                                                   scheduledThreadPoolMaxSize,
+                                                                   Validators.GT_ZERO);
+
+      threadPoolMaxSize = XMLConfigurationUtil.getInteger(e,
+                                                          "thread-pool-max-size",
+                                                          threadPoolMaxSize,
+                                                          Validators.MINUS_ONE_OR_GT_ZERO);
+
+      securityEnabled = XMLConfigurationUtil.getBoolean(e, "security-enabled", securityEnabled);
+
+      jmxManagementEnabled = XMLConfigurationUtil.getBoolean(e, "jmx-management-enabled", jmxManagementEnabled);
+
+      jmxDomain = XMLConfigurationUtil.getString(e, "jmx-domain", jmxDomain, Validators.NOT_NULL_OR_EMPTY);
+
+      securityInvalidationInterval = XMLConfigurationUtil.getLong(e,
+                                                                  "security-invalidation-interval",
+                                                                  securityInvalidationInterval,
+                                                                  Validators.GT_ZERO);
+
+      connectionTTLOverride = XMLConfigurationUtil.getLong(e,
+                                                           "connection-ttl-override",
+                                                           connectionTTLOverride,
+                                                           Validators.MINUS_ONE_OR_GT_ZERO);
+
+      asyncConnectionExecutionEnabled = XMLConfigurationUtil.getBoolean(e,
+                                                                        "async-connection-execution-enabled",
+                                                                        asyncConnectionExecutionEnabled);
+
+      transactionTimeout = XMLConfigurationUtil.getLong(e,
+                                                        "transaction-timeout",
+                                                        transactionTimeout,
+                                                        Validators.GT_ZERO);
+
+      transactionTimeoutScanPeriod = XMLConfigurationUtil.getLong(e,
+                                                                  "transaction-timeout-scan-period",
+                                                                  transactionTimeoutScanPeriod,
+                                                                  Validators.GT_ZERO);
+
+      messageExpiryScanPeriod = XMLConfigurationUtil.getLong(e,
+                                                             "message-expiry-scan-period",
+                                                             messageExpiryScanPeriod,
+                                                             Validators.GT_ZERO);
+
+      messageExpiryThreadPriority = XMLConfigurationUtil.getInteger(e,
+                                                                    "message-expiry-thread-priority",
+                                                                    messageExpiryThreadPriority,
+                                                                    Validators.THREAD_PRIORITY_RANGE);
+
+      idCacheSize = XMLConfigurationUtil.getInteger(e, "id-cache-size", idCacheSize, Validators.GT_ZERO);
+
+      persistIDCache = XMLConfigurationUtil.getBoolean(e, "persist-id-cache", persistIDCache);
+
+      managementAddress = new SimpleString(XMLConfigurationUtil.getString(e,
+                                                                          "management-address",
+                                                                          managementAddress.toString(),
+                                                                          Validators.NOT_NULL_OR_EMPTY));
+
+      managementNotificationAddress = new SimpleString(XMLConfigurationUtil.getString(e,
+                                                                                      "management-notification-address",
+                                                                                      managementNotificationAddress.toString(),
+                                                                                      Validators.NOT_NULL_OR_EMPTY));
+
+      managementClusterPassword = XMLConfigurationUtil.getString(e,
+                                                                 "management-cluster-password",
+                                                                 managementClusterPassword,
+                                                                 Validators.NOT_NULL_OR_EMPTY);
+
+      managementClusterUser = XMLConfigurationUtil.getString(e,
+                                                             "management-cluster-user",
+                                                             managementClusterUser,
+                                                             Validators.NOT_NULL_OR_EMPTY);
+
+      logDelegateFactoryClassName = XMLConfigurationUtil.getString(e,
+                                                                   "log-delegate-factory-class-name",
+                                                                   logDelegateFactoryClassName,
+                                                                   Validators.NOT_NULL_OR_EMPTY);
+
+      NodeList interceptorNodes = e.getElementsByTagName("remoting-interceptors");
+
+      ArrayList<String> interceptorList = new ArrayList<String>();
+
+      if (interceptorNodes.getLength() > 0)
+      {
+         NodeList interceptors = interceptorNodes.item(0).getChildNodes();
+
+         for (int i = 0; i < interceptors.getLength(); i++)
+         {
+            if ("class-name".equalsIgnoreCase(interceptors.item(i).getNodeName()))
+            {
+               String clazz = interceptors.item(i).getTextContent();
+
+               interceptorList.add(clazz);
+            }
+         }
+      }
+
+      interceptorClassNames = interceptorList;
+
+      NodeList backups = e.getElementsByTagName("backup-connector-ref");
+
+      // There should be only one - this will be enforced by the DTD
+
+      if (backups.getLength() > 0)
+      {
+         Node backupNode = backups.item(0);
+
+         backupConnectorName = backupNode.getAttributes().getNamedItem("connector-name").getNodeValue();
+      }
+
+      NodeList connectorNodes = e.getElementsByTagName("connector");
+
+      for (int i = 0; i < connectorNodes.getLength(); i++)
+      {
+         Element connectorNode = (Element)connectorNodes.item(i);
+
+         TransportConfiguration connectorConfig = parseTransportConfiguration(connectorNode);
+
+         if (connectorConfig.getName() == null)
+         {
+            FileConfiguration.log.warn("Cannot deploy a connector with no name specified.");
+
+            continue;
+         }
+
+         if (connectorConfigs.containsKey(connectorConfig.getName()))
+         {
+            FileConfiguration.log.warn("There is already a connector with name " + connectorConfig.getName() +
+                                       " deployed. This one will not be deployed.");
+
+            continue;
+         }
+
+         connectorConfigs.put(connectorConfig.getName(), connectorConfig);
+      }
+
+      NodeList acceptorNodes = e.getElementsByTagName("acceptor");
+
+      for (int i = 0; i < acceptorNodes.getLength(); i++)
+      {
+         Element acceptorNode = (Element)acceptorNodes.item(i);
+
+         TransportConfiguration acceptorConfig = parseTransportConfiguration(acceptorNode);
+
+         acceptorConfigs.add(acceptorConfig);
+      }
+
+      NodeList bgNodes = e.getElementsByTagName("broadcast-group");
+
+      for (int i = 0; i < bgNodes.getLength(); i++)
+      {
+         Element bgNode = (Element)bgNodes.item(i);
+
+         parseBroadcastGroupConfiguration(bgNode);
+      }
+
+      NodeList dgNodes = e.getElementsByTagName("discovery-group");
+
+      for (int i = 0; i < dgNodes.getLength(); i++)
+      {
+         Element dgNode = (Element)dgNodes.item(i);
+
+         parseDiscoveryGroupConfiguration(dgNode);
+      }
+
+      NodeList brNodes = e.getElementsByTagName("bridge");
+
+      for (int i = 0; i < brNodes.getLength(); i++)
+      {
+         Element mfNode = (Element)brNodes.item(i);
+
+         parseBridgeConfiguration(mfNode);
+      }
+
+      NodeList gaNodes = e.getElementsByTagName("grouping-handler");
+
+      for (int i = 0; i < gaNodes.getLength(); i++)
+      {
+         Element gaNode = (Element)gaNodes.item(i);
+
+         parseGroupingHandlerConfiguration(gaNode);
+      }
+
+      NodeList ccNodes = e.getElementsByTagName("cluster-connection");
+
+      for (int i = 0; i < ccNodes.getLength(); i++)
+      {
+         Element ccNode = (Element)ccNodes.item(i);
+
+         parseClusterConnectionConfiguration(ccNode);
+      }
+
+      NodeList dvNodes = e.getElementsByTagName("divert");
+
+      for (int i = 0; i < dvNodes.getLength(); i++)
+      {
+         Element dvNode = (Element)dvNodes.item(i);
+
+         parseDivertConfiguration(dvNode);
+      }
+
+      // Persistence config
+
+      largeMessagesDirectory = XMLConfigurationUtil.getString(e,
+                                                              "large-messages-directory",
+                                                              largeMessagesDirectory,
+                                                              Validators.NOT_NULL_OR_EMPTY);
+
+      bindingsDirectory = XMLConfigurationUtil.getString(e,
+                                                         "bindings-directory",
+                                                         bindingsDirectory,
+                                                         Validators.NOT_NULL_OR_EMPTY);
+
+      createBindingsDir = XMLConfigurationUtil.getBoolean(e, "create-bindings-dir", createBindingsDir);
+
+      journalDirectory = XMLConfigurationUtil.getString(e,
+                                                        "journal-directory",
+                                                        journalDirectory,
+                                                        Validators.NOT_NULL_OR_EMPTY);
+
+      pagingDirectory = XMLConfigurationUtil.getString(e,
+                                                       "paging-directory",
+                                                       pagingDirectory,
+                                                       Validators.NOT_NULL_OR_EMPTY);
+
+      createJournalDir = XMLConfigurationUtil.getBoolean(e, "create-journal-dir", createJournalDir);
+
+      String s = XMLConfigurationUtil.getString(e, "journal-type", journalType.toString(), Validators.JOURNAL_TYPE);
+
+      if (s.equals(JournalType.NIO.toString()))
+      {
+         journalType = JournalType.NIO;
+      }
+      else if (s.equals(JournalType.ASYNCIO.toString()))
+      {
+         journalType = JournalType.ASYNCIO;
+      }
+
+      journalSyncTransactional = XMLConfigurationUtil.getBoolean(e,
+                                                                 "journal-sync-transactional",
+                                                                 journalSyncTransactional);
+
+      journalSyncNonTransactional = XMLConfigurationUtil.getBoolean(e,
+                                                                    "journal-sync-non-transactional",
+                                                                    journalSyncNonTransactional);
+
+      journalFileSize = XMLConfigurationUtil.getInteger(e, "journal-file-size", journalFileSize, Validators.GT_ZERO);
+
+      int journalBufferTimeout = XMLConfigurationUtil.getInteger(e,
+                                                                 "journal-buffer-timeout",
+                                                                 journalType == JournalType.ASYNCIO ? ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_TIMEOUT_AIO
+                                                                                                   : ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_TIMEOUT_NIO,
+                                                                 Validators.GT_ZERO);
+
+      int journalBufferSize = XMLConfigurationUtil.getInteger(e,
+                                                              "journal-buffer-size",
+                                                              journalType == JournalType.ASYNCIO ? ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_SIZE_AIO
+                                                                                                : ConfigurationImpl.DEFAULT_JOURNAL_BUFFER_SIZE_NIO,
+                                                              Validators.GT_ZERO);
+
+      int journalMaxIO = XMLConfigurationUtil.getInteger(e,
+                                                         "journal-max-io",
+                                                         journalType == JournalType.ASYNCIO ? ConfigurationImpl.DEFAULT_JOURNAL_MAX_IO_AIO
+                                                                                           : ConfigurationImpl.DEFAULT_JOURNAL_MAX_IO_NIO,
+                                                         Validators.GT_ZERO);
+
+      if (journalType == JournalType.ASYNCIO)
+      {
+         journalBufferTimeout_AIO = journalBufferTimeout;
+         journalBufferSize_AIO = journalBufferSize;
+         journalMaxIO_AIO = journalMaxIO;
+      }
+      else
+      {
+         journalBufferTimeout_NIO = journalBufferTimeout;
+         journalBufferSize_NIO = journalBufferSize;
+         journalMaxIO_NIO = journalMaxIO;
+      }
+
+      journalMinFiles = XMLConfigurationUtil.getInteger(e, "journal-min-files", journalMinFiles, Validators.GT_ZERO);
+
+      journalCompactMinFiles = XMLConfigurationUtil.getInteger(e,
+                                                               "journal-compact-min-files",
+                                                               journalCompactMinFiles,
+                                                               Validators.GE_ZERO);
+
+      journalCompactPercentage = XMLConfigurationUtil.getInteger(e,
+                                                                 "journal-compact-percentage",
+                                                                 journalCompactPercentage,
+                                                                 Validators.PERCENTAGE);
+
+      logJournalWriteRate = XMLConfigurationUtil.getBoolean(e,
+                                                            "log-journal-write-rate",
+                                                            ConfigurationImpl.DEFAULT_JOURNAL_LOG_WRITE_RATE);
+
+      journalPerfBlastPages = XMLConfigurationUtil.getInteger(e,
+                                                              "perf-blast-pages",
+                                                              ConfigurationImpl.DEFAULT_JOURNAL_PERF_BLAST_PAGES,
+                                                              Validators.MINUS_ONE_OR_GT_ZERO);
+
+      runSyncSpeedTest = XMLConfigurationUtil.getBoolean(e, "run-sync-speed-test", runSyncSpeedTest);
+
+      wildcardRoutingEnabled = XMLConfigurationUtil.getBoolean(e, "wild-card-routing-enabled", wildcardRoutingEnabled);
+
+      messageCounterEnabled = XMLConfigurationUtil.getBoolean(e, "message-counter-enabled", messageCounterEnabled);
+
+      messageCounterSamplePeriod = XMLConfigurationUtil.getLong(e,
+                                                                "message-counter-sample-period",
+                                                                messageCounterSamplePeriod,
+                                                                Validators.GT_ZERO);
+
+      messageCounterMaxDayHistory = XMLConfigurationUtil.getInteger(e,
+                                                                    "message-counter-max-day-history",
+                                                                    messageCounterMaxDayHistory,
+                                                                    Validators.GT_ZERO);
+
+      serverDumpInterval = XMLConfigurationUtil.getLong(e,
+                                                        "server-dump-interval",
+                                                        serverDumpInterval,
+                                                        Validators.MINUS_ONE_OR_GT_ZERO); // in
+      // milliseconds
+
+      memoryWarningThreshold = XMLConfigurationUtil.getInteger(e,
+                                                               "memory-warning-threshold",
+                                                               memoryWarningThreshold,
+                                                               Validators.PERCENTAGE);
+
+      memoryMeasureInterval = XMLConfigurationUtil.getLong(e,
+                                                           "memory-measure-interval",
+                                                           memoryMeasureInterval,
+                                                           Validators.MINUS_ONE_OR_GT_ZERO); // in
+
+      started = true;
+   }
+
+   public synchronized void stop() throws Exception
+   {
+      started = false;
+   }
+
+   public String getConfigurationUrl()
+   {
+      return configurationUrl;
+   }
+
+   public void setConfigurationUrl(final String configurationUrl)
+   {
+      this.configurationUrl = configurationUrl;
+   }
+
+   // Private -------------------------------------------------------------------------
+
+   private TransportConfiguration parseTransportConfiguration(final Element e)
+   {
+      Node nameNode = e.getAttributes().getNamedItem("name");
+
+      String name = nameNode != null ? nameNode.getNodeValue() : null;
+
+      String clazz = XMLConfigurationUtil.getString(e, "factory-class", null, Validators.NOT_NULL_OR_EMPTY);
+
+      Map<String, Object> params = new HashMap<String, Object>();
+
+      NodeList paramsNodes = e.getElementsByTagName("param");
+
+      for (int i = 0; i < paramsNodes.getLength(); i++)
+      {
+         Node paramNode = paramsNodes.item(i);
+         NamedNodeMap attributes = paramNode.getAttributes();
+
+         Node nkey = attributes.getNamedItem("key");
+
+         String key = nkey.getTextContent();
+
+         Node nValue = attributes.getNamedItem("value");
+
+         params.put(key, nValue.getTextContent());
+      }
+
+      return new TransportConfiguration(clazz, params, name);
+   }
+
+   private void parseBroadcastGroupConfiguration(final Element e)
+   {
+      String name = e.getAttribute("name");
+
+      String localAddress = XMLConfigurationUtil.getString(e, "local-bind-address", null, Validators.NO_CHECK);
+
+      int localBindPort = XMLConfigurationUtil.getInteger(e, "local-bind-port", -1, Validators.MINUS_ONE_OR_GT_ZERO);
+
+      String groupAddress = XMLConfigurationUtil.getString(e, "group-address", null, Validators.NOT_NULL_OR_EMPTY);
+
+      int groupPort = XMLConfigurationUtil.getInteger(e, "group-port", -1, Validators.GT_ZERO);
+
+      long broadcastPeriod = XMLConfigurationUtil.getLong(e,
+                                                          "broadcast-period",
+                                                          ConfigurationImpl.DEFAULT_BROADCAST_PERIOD,
+                                                          Validators.GT_ZERO);
+
+      NodeList children = e.getChildNodes();
+
+      List<Pair<String, String>> connectorNames = new ArrayList<Pair<String, String>>();
+
+      for (int j = 0; j < children.getLength(); j++)
+      {
+         Node child = children.item(j);
+
+         if (child.getNodeName().equals("connector-ref"))
+         {
+            String connectorName = child.getAttributes().getNamedItem("connector-name").getNodeValue();
+
+            Node backupConnectorNode = child.getAttributes().getNamedItem("backup-connector-name");
+
+            String backupConnectorName = null;
+
+            if (backupConnectorNode != null)
+            {
+               backupConnectorName = backupConnectorNode.getNodeValue();
+            }
+
+            Pair<String, String> connectorInfo = new Pair<String, String>(connectorName, backupConnectorName);
+
+            connectorNames.add(connectorInfo);
+         }
+      }
+
+      BroadcastGroupConfiguration config = new BroadcastGroupConfiguration(name,
+                                                                           localAddress,
+                                                                           localBindPort,
+                                                                           groupAddress,
+                                                                           groupPort,
+                                                                           broadcastPeriod,
+                                                                           connectorNames);
+
+      broadcastGroupConfigurations.add(config);
+   }
+
+   private void parseDiscoveryGroupConfiguration(final Element e)
+   {
+      String name = e.getAttribute("name");
+
+      String groupAddress = XMLConfigurationUtil.getString(e, "group-address", null, Validators.NOT_NULL_OR_EMPTY);
+
+      int groupPort = XMLConfigurationUtil.getInteger(e, "group-port", -1, Validators.MINUS_ONE_OR_GT_ZERO);
+
+      long refreshTimeout = XMLConfigurationUtil.getLong(e,
+                                                         "refresh-timeout",
+                                                         ConfigurationImpl.DEFAULT_BROADCAST_REFRESH_TIMEOUT,
+                                                         Validators.GT_ZERO);
+
+      DiscoveryGroupConfiguration config = new DiscoveryGroupConfiguration(name,
+                                                                           groupAddress,
+                                                                           groupPort,
+                                                                           refreshTimeout);
+
+      if (discoveryGroupConfigurations.containsKey(name))
+      {
+         FileConfiguration.log.warn("There is already a discovery group with name " + name +
+                                    " deployed. This one will not be deployed.");
+
+         return;
+      }
+      else
+      {
+         discoveryGroupConfigurations.put(name, config);
+      }
+   }
+
+   private void parseClusterConnectionConfiguration(final Element e)
+   {
+      String name = e.getAttribute("name");
+
+      String address = XMLConfigurationUtil.getString(e, "address", null, Validators.NOT_NULL_OR_EMPTY);
+
+      boolean duplicateDetection = XMLConfigurationUtil.getBoolean(e,
+                                                                   "use-duplicate-detection",
+                                                                   ConfigurationImpl.DEFAULT_CLUSTER_DUPLICATE_DETECTION);
+
+      boolean forwardWhenNoConsumers = XMLConfigurationUtil.getBoolean(e,
+                                                                       "forward-when-no-consumers",
+                                                                       ConfigurationImpl.DEFAULT_CLUSTER_FORWARD_WHEN_NO_CONSUMERS);
+
+      int maxHops = XMLConfigurationUtil.getInteger(e,
+                                                    "max-hops",
+                                                    ConfigurationImpl.DEFAULT_CLUSTER_MAX_HOPS,
+                                                    Validators.GE_ZERO);
+
+      long retryInterval = XMLConfigurationUtil.getLong(e,
+                                                        "retry-interval",
+                                                        ConfigurationImpl.DEFAULT_CLUSTER_RETRY_INTERVAL,
+                                                        Validators.GT_ZERO);
+
+      int confirmationWindowSize = XMLConfigurationUtil.getInteger(e,
+                                                                   "confirmation-window-size",
+                                                                   FileConfiguration.DEFAULT_CONFIRMATION_WINDOW_SIZE,
+                                                                   Validators.GT_ZERO);
+
+      String discoveryGroupName = null;
+
+      List<Pair<String, String>> connectorPairs = new ArrayList<Pair<String, String>>();
+
+      NodeList children = e.getChildNodes();
+
+      for (int j = 0; j < children.getLength(); j++)
+      {
+         Node child = children.item(j);
+
+         if (child.getNodeName().equals("discovery-group-ref"))
+         {
+            discoveryGroupName = child.getAttributes().getNamedItem("discovery-group-name").getNodeValue();
+         }
+         else if (child.getNodeName().equals("connector-ref"))
+         {
+            String connectorName = child.getAttributes().getNamedItem("connector-name").getNodeValue();
+
+            Node backupNode = child.getAttributes().getNamedItem("backup-connector-name");
+
+            String backupConnectorName = null;
+
+            if (backupNode != null)
+            {
+               backupConnectorName = backupNode.getNodeValue();
+            }
+
+            Pair<String, String> connectorPair = new Pair<String, String>(connectorName, backupConnectorName);
+
+            connectorPairs.add(connectorPair);
+         }
+      }
+
+      ClusterConnectionConfiguration config;
+
+      if (discoveryGroupName == null)
+      {
+         config = new ClusterConnectionConfiguration(name,
+                                                     address,
+                                                     retryInterval,
+                                                     duplicateDetection,
+                                                     forwardWhenNoConsumers,
+                                                     maxHops,
+                                                     confirmationWindowSize,
+                                                     connectorPairs);
+      }
+      else
+      {
+         config = new ClusterConnectionConfiguration(name,
+                                                     address,
+                                                     retryInterval,
+                                                     duplicateDetection,
+                                                     forwardWhenNoConsumers,
+                                                     maxHops,
+                                                     confirmationWindowSize,
+                                                     discoveryGroupName);
+      }
+
+      clusterConfigurations.add(config);
+   }
+
+   private void parseGroupingHandlerConfiguration(final Element node)
+   {
+      String name = node.getAttribute("name");
+      String type = XMLConfigurationUtil.getString(node, "type", null, Validators.NOT_NULL_OR_EMPTY);
+      String address = XMLConfigurationUtil.getString(node, "address", null, Validators.NOT_NULL_OR_EMPTY);
+      Integer timeout = XMLConfigurationUtil.getInteger(node,
+                                                        "timeout",
+                                                        GroupingHandlerConfiguration.DEFAULT_TIMEOUT,
+                                                        Validators.GT_ZERO);
+      groupingHandlerConfiguration = new GroupingHandlerConfiguration(new SimpleString(name),
+                                                                      type.equals(GroupingHandlerConfiguration.TYPE.LOCAL.getType()) ? GroupingHandlerConfiguration.TYPE.LOCAL
+                                                                                                                                    : GroupingHandlerConfiguration.TYPE.REMOTE,
+                                                                      new SimpleString(address),
+                                                                      timeout);
+   }
+
+   private void parseBridgeConfiguration(final Element brNode)
+   {
+      String name = brNode.getAttribute("name");
+
+      String queueName = XMLConfigurationUtil.getString(brNode, "queue-name", null, Validators.NOT_NULL_OR_EMPTY);
+
+      String forwardingAddress = XMLConfigurationUtil.getString(brNode,
+                                                                "forwarding-address",
+                                                                null,
+                                                                Validators.NOT_NULL_OR_EMPTY);
+
+      String transformerClassName = XMLConfigurationUtil.getString(brNode,
+                                                                   "transformer-class-name",
+                                                                   null,
+                                                                   Validators.NO_CHECK);
+
+      long retryInterval = XMLConfigurationUtil.getLong(brNode,
+                                                        "retry-interval",
+                                                        ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL,
+                                                        Validators.GT_ZERO);
+
+      // Default bridge conf
+      int confirmationWindowSize = XMLConfigurationUtil.getInteger(brNode,
+                                                                   "confirmation-window-size",
+                                                                   FileConfiguration.DEFAULT_CONFIRMATION_WINDOW_SIZE,
+                                                                   Validators.GT_ZERO);
+
+      double retryIntervalMultiplier = XMLConfigurationUtil.getDouble(brNode,
+                                                                      "retry-interval-multiplier",
+                                                                      ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER,
+                                                                      Validators.GT_ZERO);
+
+      int reconnectAttempts = XMLConfigurationUtil.getInteger(brNode,
+                                                              "reconnect-attempts",
+                                                              ConfigurationImpl.DEFAULT_BRIDGE_RECONNECT_ATTEMPTS,
+                                                              Validators.MINUS_ONE_OR_GE_ZERO);
+
+      boolean failoverOnServerShutdown = XMLConfigurationUtil.getBoolean(brNode,
+                                                                         "failover-on-server-shutdown",
+                                                                         ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN);
+
+      boolean useDuplicateDetection = XMLConfigurationUtil.getBoolean(brNode,
+                                                                      "use-duplicate-detection",
+                                                                      ConfigurationImpl.DEFAULT_BRIDGE_DUPLICATE_DETECTION);
+
+      String filterString = null;
+
+      Pair<String, String> connectorPair = null;
+
+      String discoveryGroupName = null;
+
+      NodeList children = brNode.getChildNodes();
+
+      for (int j = 0; j < children.getLength(); j++)
+      {
+         Node child = children.item(j);
+
+         if (child.getNodeName().equals("filter"))
+         {
+            filterString = child.getAttributes().getNamedItem("string").getNodeValue();
+         }
+         else if (child.getNodeName().equals("discovery-group-ref"))
+         {
+            discoveryGroupName = child.getAttributes().getNamedItem("discovery-group-name").getNodeValue();
+         }
+         else if (child.getNodeName().equals("connector-ref"))
+         {
+            String connectorName = child.getAttributes().getNamedItem("connector-name").getNodeValue();
+
+            Node backupNode = child.getAttributes().getNamedItem("backup-connector-name");
+
+            String backupConnectorName = null;
+
+            if (backupNode != null)
+            {
+               backupConnectorName = backupNode.getNodeValue();
+            }
+
+            connectorPair = new Pair<String, String>(connectorName, backupConnectorName);
+         }
+      }
+
+      BridgeConfiguration config;
+
+      if (connectorPair != null)
+      {
+         config = new BridgeConfiguration(name,
+                                          queueName,
+                                          forwardingAddress,
+                                          filterString,
+                                          transformerClassName,
+                                          retryInterval,
+                                          retryIntervalMultiplier,
+                                          reconnectAttempts,
+                                          failoverOnServerShutdown,
+                                          useDuplicateDetection,
+                                          confirmationWindowSize,
+                                          ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
+                                          connectorPair);
+      }
+      else
+      {
+         config = new BridgeConfiguration(name,
+                                          queueName,
+                                          forwardingAddress,
+                                          filterString,
+                                          transformerClassName,
+                                          retryInterval,
+                                          retryIntervalMultiplier,
+                                          reconnectAttempts,
+                                          failoverOnServerShutdown,
+                                          useDuplicateDetection,
+                                          confirmationWindowSize,
+                                          ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD,
+                                          discoveryGroupName);
+      }
+
+      bridgeConfigurations.add(config);
+   }
+
+   private void parseDivertConfiguration(final Element e)
+   {
+      String name = e.getAttribute("name");
+
+      String routingName = XMLConfigurationUtil.getString(e, "routing-name", null, Validators.NO_CHECK);
+
+      String address = XMLConfigurationUtil.getString(e, "address", null, Validators.NOT_NULL_OR_EMPTY);
+
+      String forwardingAddress = XMLConfigurationUtil.getString(e,
+                                                                "forwarding-address",
+                                                                null,
+                                                                Validators.NOT_NULL_OR_EMPTY);
+
+      boolean exclusive = XMLConfigurationUtil.getBoolean(e, "exclusive", ConfigurationImpl.DEFAULT_DIVERT_EXCLUSIVE);
+
+      String transformerClassName = XMLConfigurationUtil.getString(e,
+                                                                   "transformer-class-name",
+                                                                   null,
+                                                                   Validators.NO_CHECK);
+
+      String filterString = null;
+
+      NodeList children = e.getChildNodes();
+
+      for (int j = 0; j < children.getLength(); j++)
+      {
+         Node child = children.item(j);
+
+         if (child.getNodeName().equals("filter"))
+         {
+            filterString = child.getAttributes().getNamedItem("string").getNodeValue();
+         }
+      }
+
+      DivertConfiguration config = new DivertConfiguration(name,
+                                                           routingName,
+                                                           address,
+                                                           forwardingAddress,
+                                                           exclusive,
+                                                           filterString,
+                                                           transformerClassName);
+
+      divertConfigurations.add(config);
+   }
+}

Modified: trunk/src/main/org/hornetq/core/deployers/impl/QueueDeployer.java
===================================================================
--- trunk/src/main/org/hornetq/core/deployers/impl/QueueDeployer.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/deployers/impl/QueueDeployer.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -13,9 +13,9 @@
 
 package org.hornetq.core.deployers.impl;
 
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.api.core.management.HornetQServerControl;
 import org.hornetq.core.deployers.DeploymentManager;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 

Modified: trunk/src/main/org/hornetq/core/journal/impl/AIOSequentialFileFactory.java
===================================================================
--- trunk/src/main/org/hornetq/core/journal/impl/AIOSequentialFileFactory.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/journal/impl/AIOSequentialFileFactory.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,9 +19,9 @@
 import java.util.concurrent.Executors;
 import java.util.concurrent.TimeUnit;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.core.asyncio.BufferCallback;
 import org.hornetq.core.asyncio.impl.AsynchronousFileImpl;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.journal.SequentialFile;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.utils.HornetQThreadFactory;

Modified: trunk/src/main/org/hornetq/core/journal/impl/NIOSequentialFileFactory.java
===================================================================
--- trunk/src/main/org/hornetq/core/journal/impl/NIOSequentialFileFactory.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/journal/impl/NIOSequentialFileFactory.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,7 +15,7 @@
 
 import java.nio.ByteBuffer;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.journal.SequentialFile;
 import org.hornetq.core.journal.SequentialFileFactory;
 import org.hornetq.core.logging.Logger;

Modified: trunk/src/main/org/hornetq/core/management/impl/BridgeControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/impl/BridgeControlImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/management/impl/BridgeControlImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,11 +15,11 @@
 
 import javax.management.MBeanOperationInfo;
 
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
 import org.hornetq.api.core.management.AddressControl;
 import org.hornetq.api.core.management.BridgeControl;
 import org.hornetq.core.persistence.StorageManager;
 import org.hornetq.core.server.cluster.Bridge;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
 
 /**
  * A BridgeControl

Modified: trunk/src/main/org/hornetq/core/management/impl/BroadcastGroupControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/impl/BroadcastGroupControlImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/management/impl/BroadcastGroupControlImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,11 +16,11 @@
 import javax.management.MBeanOperationInfo;
 
 import org.hornetq.api.Pair;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
 import org.hornetq.api.core.management.AddressControl;
 import org.hornetq.api.core.management.BroadcastGroupControl;
 import org.hornetq.core.persistence.StorageManager;
 import org.hornetq.core.server.cluster.BroadcastGroup;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
 import org.hornetq.utils.json.JSONArray;
 import org.hornetq.utils.json.JSONObject;
 

Modified: trunk/src/main/org/hornetq/core/management/impl/ClusterConnectionControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/impl/ClusterConnectionControlImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/management/impl/ClusterConnectionControlImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,11 +19,11 @@
 import javax.management.MBeanOperationInfo;
 
 import org.hornetq.api.Pair;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
 import org.hornetq.api.core.management.AddressControl;
 import org.hornetq.api.core.management.ClusterConnectionControl;
 import org.hornetq.core.persistence.StorageManager;
 import org.hornetq.core.server.cluster.ClusterConnection;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
 import org.hornetq.utils.json.JSONArray;
 import org.hornetq.utils.json.JSONObject;
 

Modified: trunk/src/main/org/hornetq/core/management/impl/DiscoveryGroupControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/impl/DiscoveryGroupControlImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/management/impl/DiscoveryGroupControlImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,11 +15,11 @@
 
 import javax.management.MBeanOperationInfo;
 
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
 import org.hornetq.api.core.management.AddressControl;
 import org.hornetq.api.core.management.DiscoveryGroupControl;
 import org.hornetq.core.cluster.DiscoveryGroup;
 import org.hornetq.core.persistence.StorageManager;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
 
 /**
  * A AcceptorControl

Modified: trunk/src/main/org/hornetq/core/management/impl/DivertControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/impl/DivertControlImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/management/impl/DivertControlImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,10 +15,10 @@
 
 import javax.management.MBeanOperationInfo;
 
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
 import org.hornetq.api.core.management.DivertControl;
 import org.hornetq.core.persistence.StorageManager;
 import org.hornetq.core.server.Divert;
+import org.hornetq.core.server.cluster.DivertConfiguration;
 
 /**
  * A DivertControl

Modified: trunk/src/main/org/hornetq/core/management/impl/HornetQServerControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/management/impl/HornetQServerControlImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/management/impl/HornetQServerControlImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -34,13 +34,13 @@
 import javax.transaction.xa.Xid;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.management.AddressControl;
 import org.hornetq.api.core.management.HornetQServerControl;
 import org.hornetq.api.core.management.NotificationType;
 import org.hornetq.api.core.management.QueueControl;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.messagecounter.MessageCounterManager;
 import org.hornetq.core.messagecounter.impl.MessageCounterManagerImpl;

Modified: trunk/src/main/org/hornetq/core/messagecounter/impl/MessageCounterManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/messagecounter/impl/MessageCounterManagerImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/messagecounter/impl/MessageCounterManagerImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,7 +21,7 @@
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.TimeUnit;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.messagecounter.MessageCounter;
 import org.hornetq.core.messagecounter.MessageCounterManager;

Modified: trunk/src/main/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java
===================================================================
--- trunk/src/main/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/persistence/impl/journal/JournalStorageManager.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -28,9 +28,9 @@
 import org.hornetq.api.SimpleString;
 import org.hornetq.api.core.buffers.HornetQBuffer;
 import org.hornetq.api.core.buffers.HornetQBuffers;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.message.Message;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.filter.Filter;
 import org.hornetq.core.journal.EncodingSupport;
 import org.hornetq.core.journal.IOAsyncTask;

Modified: trunk/src/main/org/hornetq/core/postoffice/impl/PostOfficeImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/postoffice/impl/PostOfficeImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/postoffice/impl/PostOfficeImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -27,8 +27,8 @@
 
 import org.hornetq.api.SimpleString;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.NotificationType;
-import org.hornetq.api.core.management.client.ManagementHelper;
 import org.hornetq.api.core.message.Message;
 import org.hornetq.core.filter.Filter;
 import org.hornetq.core.journal.IOAsyncTask;

Modified: trunk/src/main/org/hornetq/core/remoting/server/impl/RemotingServiceImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/remoting/server/impl/RemotingServiceImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/remoting/server/impl/RemotingServiceImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,10 +24,10 @@
 
 import org.hornetq.api.core.buffers.HornetQBuffer;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.interceptor.Interceptor;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.Channel;
 import org.hornetq.core.remoting.ChannelHandler;

Modified: trunk/src/main/org/hornetq/core/replication/impl/ReplicationEndpointImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/replication/impl/ReplicationEndpointImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/replication/impl/ReplicationEndpointImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -17,8 +17,8 @@
 import java.util.concurrent.ConcurrentMap;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.journal.Journal;
 import org.hornetq.core.journal.JournalLoadInformation;
 import org.hornetq.core.logging.Logger;

Modified: trunk/src/main/org/hornetq/core/security/impl/SecurityStoreImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/security/impl/SecurityStoreImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/security/impl/SecurityStoreImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,8 +21,8 @@
 
 import org.hornetq.api.SimpleString;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.NotificationType;
-import org.hornetq.api.core.management.client.ManagementHelper;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.security.CheckType;
 import org.hornetq.core.security.Role;

Modified: trunk/src/main/org/hornetq/core/server/HornetQServer.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/HornetQServer.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/HornetQServer.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,7 +19,7 @@
 import javax.management.MBeanServer;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.management.impl.HornetQServerControlImpl;
 import org.hornetq.core.persistence.StorageManager;
 import org.hornetq.core.postoffice.PostOffice;

Copied: trunk/src/main/org/hornetq/core/server/HornetQServers.java (from rev 8720, trunk/src/main/org/hornetq/api/core/server/HornetQServers.java)
===================================================================
--- trunk/src/main/org/hornetq/core/server/HornetQServers.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/core/server/HornetQServers.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,96 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.server;
+
+import java.lang.management.ManagementFactory;
+
+import javax.management.MBeanServer;
+
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.logging.Logger;
+import org.hornetq.core.server.impl.HornetQServerImpl;
+import org.hornetq.spi.core.security.HornetQSecurityManager;
+import org.hornetq.spi.core.security.HornetQSecurityManagerImpl;
+
+/**
+ * HornetQServers is a factory class for instantiating HornetQServer instances.
+ * 
+ * This class should be used when you want to instantiate a HornetQServer instance for embedding in
+ * your own application, as opposed to directly instantiating an implementing instance.
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 24 Jan 2009 15:17:18
+ *
+ *
+ */
+public class HornetQServers
+{
+   private static final Logger log = Logger.getLogger(HornetQServers.class);
+
+   public static HornetQServer newHornetQServer(final Configuration config, final boolean enablePersistence)
+   {
+      HornetQSecurityManager securityManager = new HornetQSecurityManagerImpl();
+
+      HornetQServer server = HornetQServers.newHornetQServer(config,
+                                                      ManagementFactory.getPlatformMBeanServer(),
+                                                      securityManager,
+                                                      enablePersistence);
+
+      return server;
+   }
+
+   public static HornetQServer newHornetQServer(final Configuration config)
+   {
+      return HornetQServers.newHornetQServer(config, config.isPersistenceEnabled());
+   }
+
+   public static HornetQServer newHornetQServer(final Configuration config,
+                                                final MBeanServer mbeanServer,
+                                                final boolean enablePersistence)
+   {
+      HornetQSecurityManager securityManager = new HornetQSecurityManagerImpl();
+
+      HornetQServer server = HornetQServers.newHornetQServer(config, mbeanServer, securityManager, enablePersistence);
+
+      return server;
+   }
+
+   public static HornetQServer newHornetQServer(final Configuration config, final MBeanServer mbeanServer)
+   {
+      return HornetQServers.newHornetQServer(config, mbeanServer, true);
+   }
+
+   public static HornetQServer newHornetQServer(final Configuration config,
+                                                final MBeanServer mbeanServer,
+                                                final HornetQSecurityManager securityManager)
+   {
+      HornetQServer server = HornetQServers.newHornetQServer(config, mbeanServer, securityManager, true);
+
+      return server;
+   }
+
+   public static HornetQServer newHornetQServer(final Configuration config,
+                                                final MBeanServer mbeanServer,
+                                                final HornetQSecurityManager securityManager,
+                                                final boolean enablePersistence)
+   {
+      config.setPersistenceEnabled(enablePersistence);
+
+      HornetQServer server = new HornetQServerImpl(config, mbeanServer, securityManager);
+
+      return server;
+   }
+
+}

Copied: trunk/src/main/org/hornetq/core/server/cluster/BridgeConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/core/config/cluster/BridgeConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/BridgeConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/core/server/cluster/BridgeConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,294 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.server.cluster;
+
+import java.io.Serializable;
+
+import org.hornetq.api.Pair;
+
+/**
+ * A BridgeConfiguration
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 13 Jan 2009 09:32:43
+ *
+ *
+ */
+public class BridgeConfiguration implements Serializable
+{
+   private static final long serialVersionUID = -1057244274380572226L;
+
+   private String name;
+
+   private String queueName;
+
+   private String forwardingAddress;
+
+   private String filterString;
+
+   private Pair<String, String> connectorPair;
+
+   private String discoveryGroupName;
+
+   private String transformerClassName;
+
+   private long retryInterval;
+
+   private double retryIntervalMultiplier;
+
+   private int reconnectAttempts;
+
+   private boolean failoverOnServerShutdown;
+
+   private boolean useDuplicateDetection;
+
+   private int confirmationWindowSize;
+
+   private final long clientFailureCheckPeriod;
+
+   public BridgeConfiguration(final String name,
+                              final String queueName,
+                              final String forwardingAddress,
+                              final String filterString,
+                              final String transformerClassName,
+                              final long retryInterval,
+                              final double retryIntervalMultiplier,
+                              final int reconnectAttempts,
+                              final boolean failoverOnServerShutdown,
+                              final boolean useDuplicateDetection,
+                              final int confirmationWindowSize,
+                              final long clientFailureCheckPeriod,
+                              final Pair<String, String> connectorPair)
+   {
+      this.name = name;
+      this.queueName = queueName;
+      this.forwardingAddress = forwardingAddress;
+      this.filterString = filterString;
+      this.transformerClassName = transformerClassName;
+      this.retryInterval = retryInterval;
+      this.retryIntervalMultiplier = retryIntervalMultiplier;
+      this.reconnectAttempts = reconnectAttempts;
+      this.failoverOnServerShutdown = failoverOnServerShutdown;
+      this.useDuplicateDetection = useDuplicateDetection;
+      this.confirmationWindowSize = confirmationWindowSize;
+      this.clientFailureCheckPeriod = clientFailureCheckPeriod;
+      this.connectorPair = connectorPair;
+      discoveryGroupName = null;
+   }
+
+   public BridgeConfiguration(final String name,
+                              final String queueName,
+                              final String forwardingAddress,
+                              final String filterString,
+                              final String transformerClassName,
+                              final long retryInterval,
+                              final double retryIntervalMultiplier,
+                              final int reconnectAttempts,
+                              final boolean failoverOnServerShutdown,
+                              final boolean useDuplicateDetection,
+                              final int confirmationWindowSize,
+                              final long clientFailureCheckPeriod,
+                              final String discoveryGroupName)
+   {
+      this.name = name;
+      this.queueName = queueName;
+      this.forwardingAddress = forwardingAddress;
+      this.filterString = filterString;
+      this.transformerClassName = transformerClassName;
+      this.retryInterval = retryInterval;
+      this.retryIntervalMultiplier = retryIntervalMultiplier;
+      this.reconnectAttempts = reconnectAttempts;
+      this.failoverOnServerShutdown = failoverOnServerShutdown;
+      this.useDuplicateDetection = useDuplicateDetection;
+      this.confirmationWindowSize = confirmationWindowSize;
+      this.clientFailureCheckPeriod = clientFailureCheckPeriod;
+      connectorPair = null;
+      this.discoveryGroupName = discoveryGroupName;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public String getQueueName()
+   {
+      return queueName;
+   }
+
+   public String getForwardingAddress()
+   {
+      return forwardingAddress;
+   }
+
+   public String getFilterString()
+   {
+      return filterString;
+   }
+
+   public String getTransformerClassName()
+   {
+      return transformerClassName;
+   }
+
+   public Pair<String, String> getConnectorPair()
+   {
+      return connectorPair;
+   }
+
+   public String getDiscoveryGroupName()
+   {
+      return discoveryGroupName;
+   }
+
+   public long getRetryInterval()
+   {
+      return retryInterval;
+   }
+
+   public double getRetryIntervalMultiplier()
+   {
+      return retryIntervalMultiplier;
+   }
+
+   public int getReconnectAttempts()
+   {
+      return reconnectAttempts;
+   }
+
+   public boolean isFailoverOnServerShutdown()
+   {
+      return failoverOnServerShutdown;
+   }
+
+   public boolean isUseDuplicateDetection()
+   {
+      return useDuplicateDetection;
+   }
+
+   public int getConfirmationWindowSize()
+   {
+      return confirmationWindowSize;
+   }
+
+   public long getClientFailureCheckPeriod()
+   {
+      return clientFailureCheckPeriod;
+   }
+
+   /**
+    * @param name the name to set
+    */
+   public void setName(final String name)
+   {
+      this.name = name;
+   }
+
+   /**
+    * @param queueName the queueName to set
+    */
+   public void setQueueName(final String queueName)
+   {
+      this.queueName = queueName;
+   }
+
+   /**
+    * @param forwardingAddress the forwardingAddress to set
+    */
+   public void setForwardingAddress(final String forwardingAddress)
+   {
+      this.forwardingAddress = forwardingAddress;
+   }
+
+   /**
+    * @param filterString the filterString to set
+    */
+   public void setFilterString(final String filterString)
+   {
+      this.filterString = filterString;
+   }
+
+   /**
+    * @param connectorPair the connectorPair to set
+    */
+   public void setConnectorPair(final Pair<String, String> connectorPair)
+   {
+      this.connectorPair = connectorPair;
+   }
+
+   /**
+    * @param discoveryGroupName the discoveryGroupName to set
+    */
+   public void setDiscoveryGroupName(final String discoveryGroupName)
+   {
+      this.discoveryGroupName = discoveryGroupName;
+   }
+
+   /**
+    * @param transformerClassName the transformerClassName to set
+    */
+   public void setTransformerClassName(final String transformerClassName)
+   {
+      this.transformerClassName = transformerClassName;
+   }
+
+   /**
+    * @param retryInterval the retryInterval to set
+    */
+   public void setRetryInterval(final long retryInterval)
+   {
+      this.retryInterval = retryInterval;
+   }
+
+   /**
+    * @param retryIntervalMultiplier the retryIntervalMultiplier to set
+    */
+   public void setRetryIntervalMultiplier(final double retryIntervalMultiplier)
+   {
+      this.retryIntervalMultiplier = retryIntervalMultiplier;
+   }
+
+   /**
+    * @param reconnectAttempts the reconnectAttempts to set
+    */
+   public void setReconnectAttempts(final int reconnectAttempts)
+   {
+      this.reconnectAttempts = reconnectAttempts;
+   }
+
+   /**
+    * @param failoverOnServerShutdown the failoverOnServerShutdown to set
+    */
+   public void setFailoverOnServerShutdown(final boolean failoverOnServerShutdown)
+   {
+      this.failoverOnServerShutdown = failoverOnServerShutdown;
+   }
+
+   /**
+    * @param useDuplicateDetection the useDuplicateDetection to set
+    */
+   public void setUseDuplicateDetection(final boolean useDuplicateDetection)
+   {
+      this.useDuplicateDetection = useDuplicateDetection;
+   }
+
+   /**
+    * @param confirmationWindowSize the confirmationWindowSize to set
+    */
+   public void setConfirmationWindowSize(final int confirmationWindowSize)
+   {
+      this.confirmationWindowSize = confirmationWindowSize;
+   }
+}

Copied: trunk/src/main/org/hornetq/core/server/cluster/BroadcastGroupConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/core/config/cluster/BroadcastGroupConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/BroadcastGroupConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/core/server/cluster/BroadcastGroupConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.server.cluster;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.hornetq.api.Pair;
+import org.hornetq.core.logging.Logger;
+
+/**
+ * A BroadcastGroupConfiguration
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 18 Nov 2008 08:44:30
+ *
+ */
+public class BroadcastGroupConfiguration implements Serializable
+{
+   private static final long serialVersionUID = 1052413739064253955L;
+
+   private static final Logger log = Logger.getLogger(BroadcastGroupConfiguration.class);
+
+   private String name;
+
+   private String localBindAddress;
+
+   private int localBindPort;
+
+   private String groupAddress;
+
+   private int groupPort;
+
+   private long broadcastPeriod;
+
+   private List<Pair<String, String>> connectorInfos;
+
+   public BroadcastGroupConfiguration(final String name,
+                                      final String localBindAddress,
+                                      final int localBindPort,
+                                      final String groupAddress,
+                                      final int groupPort,
+                                      final long broadcastPeriod,
+                                      final List<Pair<String, String>> connectorInfos)
+   {
+      super();
+      this.name = name;
+      this.localBindAddress = localBindAddress;
+      this.localBindPort = localBindPort;
+      this.groupAddress = groupAddress;
+      this.groupPort = groupPort;
+      this.broadcastPeriod = broadcastPeriod;
+      this.connectorInfos = connectorInfos;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public String getLocalBindAddress()
+   {
+      return localBindAddress;
+   }
+
+   public int getLocalBindPort()
+   {
+      return localBindPort;
+   }
+
+   public String getGroupAddress()
+   {
+      return groupAddress;
+   }
+
+   public int getGroupPort()
+   {
+      return groupPort;
+   }
+
+   public long getBroadcastPeriod()
+   {
+      return broadcastPeriod;
+   }
+
+   public List<Pair<String, String>> getConnectorInfos()
+   {
+      return connectorInfos;
+   }
+
+   /**
+    * @param name the name to set
+    */
+   public void setName(final String name)
+   {
+      this.name = name;
+   }
+
+   /**
+    * @param localBindAddress the localBindAddress to set
+    */
+   public void setLocalBindAddress(final String localBindAddress)
+   {
+      this.localBindAddress = localBindAddress;
+   }
+
+   /**
+    * @param localBindPort the localBindPort to set
+    */
+   public void setLocalBindPort(final int localBindPort)
+   {
+      this.localBindPort = localBindPort;
+   }
+
+   /**
+    * @param groupAddress the groupAddress to set
+    */
+   public void setGroupAddress(final String groupAddress)
+   {
+      this.groupAddress = groupAddress;
+   }
+
+   /**
+    * @param groupPort the groupPort to set
+    */
+   public void setGroupPort(final int groupPort)
+   {
+      this.groupPort = groupPort;
+   }
+
+   /**
+    * @param broadcastPeriod the broadcastPeriod to set
+    */
+   public void setBroadcastPeriod(final long broadcastPeriod)
+   {
+      this.broadcastPeriod = broadcastPeriod;
+   }
+
+   /**
+    * @param connectorInfos the connectorInfos to set
+    */
+   public void setConnectorInfos(final List<Pair<String, String>> connectorInfos)
+   {
+      this.connectorInfos = connectorInfos;
+   }
+
+}

Copied: trunk/src/main/org/hornetq/core/server/cluster/ClusterConnectionConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/core/config/cluster/ClusterConnectionConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/ClusterConnectionConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/core/server/cluster/ClusterConnectionConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,136 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.server.cluster;
+
+import java.io.Serializable;
+import java.util.List;
+
+import org.hornetq.api.Pair;
+
+/**
+ * A ClusterConnectionConfiguration
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 13 Jan 2009 09:42:17
+ *
+ *
+ */
+public class ClusterConnectionConfiguration implements Serializable
+{
+   private static final long serialVersionUID = 8948303813427795935L;
+
+   private final String name;
+
+   private final String address;
+
+   private final long retryInterval;
+
+   private final boolean duplicateDetection;
+
+   private final boolean forwardWhenNoConsumers;
+
+   private final List<Pair<String, String>> staticConnectorNamePairs;
+
+   private final String discoveryGroupName;
+
+   private final int maxHops;
+
+   private final int confirmationWindowSize;
+
+   public ClusterConnectionConfiguration(final String name,
+                                         final String address,
+                                         final long retryInterval,
+                                         final boolean duplicateDetection,
+                                         final boolean forwardWhenNoConsumers,
+                                         final int maxHops,
+                                         final int confirmationWindowSize,
+                                         final List<Pair<String, String>> staticConnectorNamePairs)
+   {
+      this.name = name;
+      this.address = address;
+      this.retryInterval = retryInterval;
+      this.staticConnectorNamePairs = staticConnectorNamePairs;
+      this.duplicateDetection = duplicateDetection;
+      this.forwardWhenNoConsumers = forwardWhenNoConsumers;
+      discoveryGroupName = null;
+      this.maxHops = maxHops;
+      this.confirmationWindowSize = confirmationWindowSize;
+   }
+
+   public ClusterConnectionConfiguration(final String name,
+                                         final String address,
+                                         final long retryInterval,
+                                         final boolean duplicateDetection,
+                                         final boolean forwardWhenNoConsumers,
+                                         final int maxHops,
+                                         final int confirmationWindowSize,
+                                         final String discoveryGroupName)
+   {
+      this.name = name;
+      this.address = address;
+      this.retryInterval = retryInterval;
+      this.duplicateDetection = duplicateDetection;
+      this.forwardWhenNoConsumers = forwardWhenNoConsumers;
+      this.discoveryGroupName = discoveryGroupName;
+      staticConnectorNamePairs = null;
+      this.maxHops = maxHops;
+      this.confirmationWindowSize = confirmationWindowSize;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public String getAddress()
+   {
+      return address;
+   }
+
+   public boolean isDuplicateDetection()
+   {
+      return duplicateDetection;
+   }
+
+   public boolean isForwardWhenNoConsumers()
+   {
+      return forwardWhenNoConsumers;
+   }
+
+   public int getMaxHops()
+   {
+      return maxHops;
+   }
+
+   public int getConfirmationWindowSize()
+   {
+      return confirmationWindowSize;
+   }
+
+   public List<Pair<String, String>> getStaticConnectorNamePairs()
+   {
+      return staticConnectorNamePairs;
+   }
+
+   public String getDiscoveryGroupName()
+   {
+      return discoveryGroupName;
+   }
+
+   public long getRetryInterval()
+   {
+      return retryInterval;
+   }
+}

Copied: trunk/src/main/org/hornetq/core/server/cluster/DiscoveryGroupConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/core/config/cluster/DiscoveryGroupConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/DiscoveryGroupConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/core/server/cluster/DiscoveryGroupConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.server.cluster;
+
+import java.io.Serializable;
+
+/**
+ * A DiscoveryGroupConfiguration
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 18 Nov 2008 08:47:30
+ *
+ *
+ */
+public class DiscoveryGroupConfiguration implements Serializable
+{
+   private static final long serialVersionUID = 8657206421727863400L;
+
+   private String name;
+
+   private String groupAddress;
+
+   private int groupPort;
+
+   private long refreshTimeout;
+
+   public DiscoveryGroupConfiguration(final String name,
+                                      final String groupAddress,
+                                      final int groupPort,
+                                      final long refreshTimeout)
+   {
+      this.name = name;
+      this.groupAddress = groupAddress;
+      this.groupPort = groupPort;
+      this.refreshTimeout = refreshTimeout;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public String getGroupAddress()
+   {
+      return groupAddress;
+   }
+
+   public int getGroupPort()
+   {
+      return groupPort;
+   }
+
+   public long getRefreshTimeout()
+   {
+      return refreshTimeout;
+   }
+
+   /**
+    * @param name the name to set
+    */
+   public void setName(final String name)
+   {
+      this.name = name;
+   }
+
+   /**
+    * @param groupAddress the groupAddress to set
+    */
+   public void setGroupAddress(final String groupAddress)
+   {
+      this.groupAddress = groupAddress;
+   }
+
+   /**
+    * @param groupPort the groupPort to set
+    */
+   public void setGroupPort(final int groupPort)
+   {
+      this.groupPort = groupPort;
+   }
+
+   /**
+    * @param refreshTimeout the refreshTimeout to set
+    */
+   public void setRefreshTimeout(final long refreshTimeout)
+   {
+      this.refreshTimeout = refreshTimeout;
+   }
+}

Copied: trunk/src/main/org/hornetq/core/server/cluster/DivertConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/core/config/cluster/DivertConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/DivertConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/core/server/cluster/DivertConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.server.cluster;
+
+import java.io.Serializable;
+
+import org.hornetq.core.logging.Logger;
+import org.hornetq.utils.UUIDGenerator;
+
+/**
+ * A DivertConfiguration
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 13 Jan 2009 09:36:19
+ *
+ *
+ */
+public class DivertConfiguration implements Serializable
+{
+   private static final long serialVersionUID = 6910543740464269629L;
+
+   private static final Logger log = Logger.getLogger(DivertConfiguration.class);
+
+   private String name;
+
+   private String routingName;
+
+   private String address;
+
+   private String forwardingAddress;
+
+   private boolean exclusive;
+
+   private String filterString;
+
+   private String transformerClassName;
+
+   public DivertConfiguration(final String name,
+                              final String routingName,
+                              final String address,
+                              final String forwardingAddress,
+                              final boolean exclusive,
+                              final String filterString,
+                              final String transformerClassName)
+   {
+      this.name = name;
+      if (routingName == null)
+      {
+         this.routingName = UUIDGenerator.getInstance().generateStringUUID();
+      }
+      else
+      {
+         this.routingName = routingName;
+      }
+      this.address = address;
+      this.forwardingAddress = forwardingAddress;
+      this.exclusive = exclusive;
+      this.filterString = filterString;
+      this.transformerClassName = transformerClassName;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public String getRoutingName()
+   {
+      return routingName;
+   }
+
+   public String getAddress()
+   {
+      return address;
+   }
+
+   public String getForwardingAddress()
+   {
+      return forwardingAddress;
+   }
+
+   public boolean isExclusive()
+   {
+      return exclusive;
+   }
+
+   public String getFilterString()
+   {
+      return filterString;
+   }
+
+   public String getTransformerClassName()
+   {
+      return transformerClassName;
+   }
+
+   /**
+    * @param name the name to set
+    */
+   public void setName(final String name)
+   {
+      this.name = name;
+   }
+
+   /**
+    * @param routingName the routingName to set
+    */
+   public void setRoutingName(final String routingName)
+   {
+      this.routingName = routingName;
+   }
+
+   /**
+    * @param address the address to set
+    */
+   public void setAddress(final String address)
+   {
+      this.address = address;
+   }
+
+   /**
+    * @param forwardingAddress the forwardingAddress to set
+    */
+   public void setForwardingAddress(final String forwardingAddress)
+   {
+      this.forwardingAddress = forwardingAddress;
+   }
+
+   /**
+    * @param exclusive the exclusive to set
+    */
+   public void setExclusive(final boolean exclusive)
+   {
+      this.exclusive = exclusive;
+   }
+
+   /**
+    * @param filterString the filterString to set
+    */
+   public void setFilterString(final String filterString)
+   {
+      this.filterString = filterString;
+   }
+
+   /**
+    * @param transformerClassName the transformerClassName to set
+    */
+   public void setTransformerClassName(final String transformerClassName)
+   {
+      this.transformerClassName = transformerClassName;
+   }
+}

Copied: trunk/src/main/org/hornetq/core/server/cluster/QueueConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/core/config/cluster/QueueConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/QueueConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/core/server/cluster/QueueConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.core.server.cluster;
+
+import java.io.Serializable;
+
+/**
+ * A QueueConfiguration
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * 
+ * Created 13 Jan 2009 09:39:21
+ *
+ *
+ */
+public class QueueConfiguration implements Serializable
+{
+   private static final long serialVersionUID = 650404974977490254L;
+
+   private String address;
+
+   private String name;
+
+   private String filterString;
+
+   private boolean durable;
+
+   public QueueConfiguration(final String address, final String name, final String filterString, final boolean durable)
+   {
+      this.address = address;
+      this.name = name;
+      this.filterString = filterString;
+      this.durable = durable;
+   }
+
+   public String getAddress()
+   {
+      return address;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public String getFilterString()
+   {
+      return filterString;
+   }
+
+   public boolean isDurable()
+   {
+      return durable;
+   }
+
+   /**
+    * @param address the address to set
+    */
+   public void setAddress(final String address)
+   {
+      this.address = address;
+   }
+
+   /**
+    * @param name the name to set
+    */
+   public void setName(final String name)
+   {
+      this.name = name;
+   }
+
+   /**
+    * @param filterString the filterString to set
+    */
+   public void setFilterString(final String filterString)
+   {
+      this.filterString = filterString;
+   }
+
+   /**
+    * @param durable the durable to set
+    */
+   public void setDurable(final boolean durable)
+   {
+      this.durable = durable;
+   }
+}

Modified: trunk/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/cluster/impl/BridgeImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -31,9 +31,9 @@
 import org.hornetq.api.core.client.SessionFailureListener;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.NotificationType;
 import org.hornetq.api.core.management.ResourceNames;
-import org.hornetq.api.core.management.client.ManagementHelper;
 import org.hornetq.api.core.message.Message;
 import org.hornetq.core.client.impl.ClientSessionInternal;
 import org.hornetq.core.filter.Filter;

Modified: trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterConnectionImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterConnectionImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterConnectionImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -28,8 +28,8 @@
 import org.hornetq.api.SimpleString;
 import org.hornetq.api.core.client.ClientMessage;
 import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.NotificationType;
-import org.hornetq.api.core.management.client.ManagementHelper;
 import org.hornetq.core.cluster.DiscoveryEntry;
 import org.hornetq.core.cluster.DiscoveryGroup;
 import org.hornetq.core.cluster.DiscoveryListener;

Modified: trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/cluster/impl/ClusterManagerImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -27,23 +27,23 @@
 
 import org.hornetq.api.Pair;
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
 import org.hornetq.core.cluster.DiscoveryGroup;
 import org.hornetq.core.cluster.impl.DiscoveryGroupImpl;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.postoffice.Binding;
 import org.hornetq.core.postoffice.PostOffice;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.Queue;
 import org.hornetq.core.server.cluster.Bridge;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
 import org.hornetq.core.server.cluster.BroadcastGroup;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
 import org.hornetq.core.server.cluster.ClusterConnection;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
 import org.hornetq.core.server.cluster.ClusterManager;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
 import org.hornetq.core.server.cluster.Transformer;
 import org.hornetq.core.server.management.ManagementService;
 import org.hornetq.utils.UUID;

Modified: trunk/src/main/org/hornetq/core/server/group/impl/LocalGroupingHandler.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/group/impl/LocalGroupingHandler.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/group/impl/LocalGroupingHandler.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -17,8 +17,8 @@
 import java.util.concurrent.ConcurrentHashMap;
 
 import org.hornetq.api.SimpleString;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.NotificationType;
-import org.hornetq.api.core.management.client.ManagementHelper;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.persistence.StorageManager;
 import org.hornetq.core.postoffice.BindingType;

Modified: trunk/src/main/org/hornetq/core/server/group/impl/RemoteGroupingHandler.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/group/impl/RemoteGroupingHandler.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/group/impl/RemoteGroupingHandler.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,8 +24,8 @@
 import java.util.logging.Logger;
 
 import org.hornetq.api.SimpleString;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.NotificationType;
-import org.hornetq.api.core.management.client.ManagementHelper;
 import org.hornetq.core.postoffice.BindingType;
 import org.hornetq.core.server.group.GroupingHandler;
 import org.hornetq.core.server.management.ManagementService;

Modified: trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/impl/HornetQServerImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -36,14 +36,12 @@
 import org.hornetq.api.SimpleString;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.core.client.impl.FailoverManager;
 import org.hornetq.core.client.impl.FailoverManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.deployers.Deployer;
 import org.hornetq.core.deployers.DeploymentManager;
 import org.hornetq.core.deployers.impl.AddressSettingsDeployer;
@@ -93,6 +91,8 @@
 import org.hornetq.core.server.QueueFactory;
 import org.hornetq.core.server.ServerSession;
 import org.hornetq.core.server.cluster.ClusterManager;
+import org.hornetq.core.server.cluster.DivertConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.core.server.cluster.Transformer;
 import org.hornetq.core.server.cluster.impl.ClusterManagerImpl;
 import org.hornetq.core.server.group.GroupingHandler;

Modified: trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/impl/ServerConsumerImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,8 +24,8 @@
 import org.hornetq.api.core.buffers.HornetQBuffer;
 import org.hornetq.api.core.buffers.HornetQBuffers;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.NotificationType;
-import org.hornetq.api.core.management.client.ManagementHelper;
 import org.hornetq.core.client.impl.ClientConsumerImpl;
 import org.hornetq.core.filter.Filter;
 import org.hornetq.core.logging.Logger;

Modified: trunk/src/main/org/hornetq/core/server/impl/ServerSessionImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/impl/ServerSessionImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/impl/ServerSessionImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -30,7 +30,7 @@
 
 import org.hornetq.api.SimpleString;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.management.client.ManagementHelper;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.core.client.impl.ClientMessageImpl;
 import org.hornetq.core.filter.Filter;
 import org.hornetq.core.filter.impl.FilterImpl;

Modified: trunk/src/main/org/hornetq/core/server/management/ManagementService.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/management/ManagementService.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/management/ManagementService.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,15 +19,10 @@
 import javax.management.ObjectName;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
 import org.hornetq.api.core.management.ObjectNameBuilder;
 import org.hornetq.core.cluster.DiscoveryGroup;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.management.impl.HornetQServerControlImpl;
 import org.hornetq.core.messagecounter.MessageCounterManager;
 import org.hornetq.core.paging.PagingManager;
@@ -42,8 +37,13 @@
 import org.hornetq.core.server.QueueFactory;
 import org.hornetq.core.server.ServerMessage;
 import org.hornetq.core.server.cluster.Bridge;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
 import org.hornetq.core.server.cluster.BroadcastGroup;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
 import org.hornetq.core.server.cluster.ClusterConnection;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
+import org.hornetq.core.server.cluster.DivertConfiguration;
 import org.hornetq.core.settings.HierarchicalRepository;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.core.transaction.ResourceManager;

Modified: trunk/src/main/org/hornetq/core/server/management/NotificationService.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/management/NotificationService.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/management/NotificationService.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -13,7 +13,7 @@
 
 package org.hornetq.core.server.management;
 
-import org.hornetq.api.core.management.client.ManagementHelper;
+import org.hornetq.api.core.management.ManagementHelper;
 
 /**
  * A NotificationService

Modified: trunk/src/main/org/hornetq/core/server/management/impl/ManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/hornetq/core/server/management/impl/ManagementServiceImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/core/server/management/impl/ManagementServiceImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,24 +29,19 @@
 import javax.management.StandardMBean;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
 import org.hornetq.api.core.management.AcceptorControl;
 import org.hornetq.api.core.management.BridgeControl;
 import org.hornetq.api.core.management.BroadcastGroupControl;
 import org.hornetq.api.core.management.ClusterConnectionControl;
 import org.hornetq.api.core.management.DiscoveryGroupControl;
 import org.hornetq.api.core.management.DivertControl;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.ObjectNameBuilder;
 import org.hornetq.api.core.management.ResourceNames;
-import org.hornetq.api.core.management.client.ManagementHelper;
 import org.hornetq.core.cluster.DiscoveryGroup;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.management.impl.AcceptorControlImpl;
 import org.hornetq.core.management.impl.AddressControlImpl;
@@ -71,8 +66,13 @@
 import org.hornetq.core.server.QueueFactory;
 import org.hornetq.core.server.ServerMessage;
 import org.hornetq.core.server.cluster.Bridge;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
 import org.hornetq.core.server.cluster.BroadcastGroup;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
 import org.hornetq.core.server.cluster.ClusterConnection;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
+import org.hornetq.core.server.cluster.DivertConfiguration;
 import org.hornetq.core.server.impl.ServerMessageImpl;
 import org.hornetq.core.server.management.ManagementService;
 import org.hornetq.core.server.management.Notification;

Copied: trunk/src/main/org/hornetq/jms/bridge/ConnectionFactoryFactory.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/bridge/ConnectionFactoryFactory.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/ConnectionFactoryFactory.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/bridge/ConnectionFactoryFactory.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,30 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.bridge;
+
+import javax.jms.ConnectionFactory;
+
+/**
+ * A ConnectionFactoryFactory
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>$Revision$</tt>
+ *
+ * $Id$
+ *
+ */
+public interface ConnectionFactoryFactory
+{
+   ConnectionFactory createConnectionFactory() throws Exception;
+}

Copied: trunk/src/main/org/hornetq/jms/bridge/DestinationFactory.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/bridge/DestinationFactory.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/DestinationFactory.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/bridge/DestinationFactory.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.bridge;
+
+import javax.jms.Destination;
+
+/**
+ * 
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>$Revision: $</tt>10 Oct 2007
+ *
+ * $Id: $
+ *
+ */
+public interface DestinationFactory
+{
+   Destination createDestination() throws Exception;
+}

Copied: trunk/src/main/org/hornetq/jms/bridge/JMSBridge.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/bridge/JMSBridge.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/JMSBridge.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/bridge/JMSBridge.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,112 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.bridge;
+
+import javax.transaction.TransactionManager;
+
+import org.hornetq.core.server.HornetQComponent;
+
+/**
+ * 
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * 
+ * @version <tt>$Revision$</tt>
+ * 
+ */
+public interface JMSBridge extends HornetQComponent
+{
+   void pause() throws Exception;
+
+   void resume() throws Exception;
+
+   DestinationFactory getSourceDestinationFactory();
+
+   void setSourceDestinationFactory(DestinationFactory dest);
+
+   DestinationFactory getTargetDestinationFactory();
+
+   void setTargetDestinationFactory(DestinationFactory dest);
+
+   String getSourceUsername();
+
+   void setSourceUsername(String name);
+
+   String getSourcePassword();
+
+   void setSourcePassword(String pwd);
+
+   String getTargetUsername();
+
+   void setTargetUsername(String name);
+
+   String getTargetPassword();
+
+   void setTargetPassword(String pwd);
+
+   String getSelector();
+
+   void setSelector(String selector);
+
+   long getFailureRetryInterval();
+
+   void setFailureRetryInterval(long interval);
+
+   int getMaxRetries();
+
+   void setMaxRetries(int retries);
+
+   QualityOfServiceMode getQualityOfServiceMode();
+
+   void setQualityOfServiceMode(QualityOfServiceMode mode);
+
+   int getMaxBatchSize();
+
+   void setMaxBatchSize(int size);
+
+   long getMaxBatchTime();
+
+   void setMaxBatchTime(long time);
+
+   String getSubscriptionName();
+
+   void setSubscriptionName(String subname);
+
+   String getClientID();
+
+   void setClientID(String clientID);
+
+   String getTransactionManagerLocatorClass();
+
+   void setTransactionManagerLocatorClass(String transactionManagerLocatorClass);
+
+   String getTransactionManagerLocatorMethod();
+
+   void setTransactionManagerLocatorMethod(String transactionManagerLocatorMethod);
+
+   boolean isAddMessageIDInHeader();
+
+   void setAddMessageIDInHeader(boolean value);
+
+   boolean isPaused();
+
+   boolean isFailed();
+
+   void setSourceConnectionFactoryFactory(ConnectionFactoryFactory cff);
+
+   void setTargetConnectionFactoryFactory(ConnectionFactoryFactory cff);
+
+   void setTransactionManager(TransactionManager tm);
+
+}
\ No newline at end of file

Copied: trunk/src/main/org/hornetq/jms/bridge/JMSBridgeControl.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/bridge/JMSBridgeControl.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/JMSBridgeControl.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/bridge/JMSBridgeControl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.bridge;
+
+import org.hornetq.api.core.management.HornetQComponentControl;
+
+/**
+ * A JMSBridgeControl
+ *
+ * @author <a href="jose at voxeo.com">Jose de Castro</a>
+ *
+ */
+public interface JMSBridgeControl extends HornetQComponentControl
+{
+   void pause() throws Exception;
+
+   void resume() throws Exception;
+
+   String getSourceUsername();
+
+   void setSourceUsername(String name);
+
+   String getSourcePassword();
+
+   void setSourcePassword(String pwd);
+
+   String getTargetUsername();
+
+   void setTargetUsername(String name);
+
+   String getTargetPassword();
+
+   void setTargetPassword(String pwd);
+
+   String getSelector();
+
+   void setSelector(String selector);
+
+   long getFailureRetryInterval();
+
+   void setFailureRetryInterval(long interval);
+
+   int getMaxRetries();
+
+   void setMaxRetries(int retries);
+
+   String getQualityOfServiceMode();
+
+   void setQualityOfServiceMode(String mode);
+
+   int getMaxBatchSize();
+
+   void setMaxBatchSize(int size);
+
+   long getMaxBatchTime();
+
+   void setMaxBatchTime(long time);
+
+   String getSubscriptionName();
+
+   void setSubscriptionName(String subname);
+
+   String getClientID();
+
+   void setClientID(String clientID);
+
+   String getTransactionManagerLocatorClass();
+
+   void setTransactionManagerLocatorClass(String transactionManagerLocatorClass);
+
+   String getTransactionManagerLocatorMethod();
+
+   void setTransactionManagerLocatorMethod(String transactionManagerLocatorMethod);
+
+   boolean isAddMessageIDInHeader();
+
+   void setAddMessageIDInHeader(boolean value);
+
+   boolean isPaused();
+
+   boolean isFailed();
+
+}

Copied: trunk/src/main/org/hornetq/jms/bridge/QualityOfServiceMode.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/bridge/QualityOfServiceMode.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/QualityOfServiceMode.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/bridge/QualityOfServiceMode.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,102 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.bridge;
+
+/**
+ * <h3>Quality of server (QoS) levels</h3>
+ * 
+ * <h4>QOS_AT_MOST_ONCE</h4>
+ * 
+ * With this QoS mode messages will reach the destination from the source at
+ * most once. The messages are consumed from the source and acknowledged before
+ * sending to the destination. Therefore there is a possibility that if failure
+ * occurs between removing them from the source and them arriving at the
+ * destination they could be lost. Hence delivery will occur at most once. This
+ * mode is avilable for both persistent and non persistent messages.
+ * 
+ * <h4>QOS_DUPLICATES_OK</h4>
+ * 
+ * With this QoS mode, the messages are consumed from the source and then
+ * acknowledged after they have been successfully sent to the destination.
+ * Therefore there is a possibility that if failure occurs after sending to the
+ * destination but before acknowledging them, they could be sent again when the
+ * system recovers. I.e. the destination might receive duplicates after a
+ * failure. This mode is available for both persistent and non persistent
+ * messages.
+ * 
+ * <h4>QOS_ONCE_AND_ONLY_ONCE</h4>
+ * 
+ * This QoS mode ensures messages will reach the destination from the source
+ * once and only once. (Sometimes this mode is known as "exactly once"). If both
+ * the source and the destination are on the same HornetQ server
+ * instance then this can be achieved by sending and acknowledging the messages
+ * in the same local transaction. If the source and destination are on different
+ * servers this is achieved by enlisting the sending and consuming sessions in a
+ * JTA transaction. The JTA transaction is controlled by JBoss Transactions JTA
+ * implementation which is a fully recovering transaction manager, thus
+ * providing a very high degree of durability. If JTA is required then both
+ * supplied connection factories need to be XAConnectionFactory implementations.
+ * This mode is only available for persistent messages. This is likely to be the
+ * slowest mode since it requires extra persistence for the transaction logging.
+ * 
+ * Note: For a specific application it may possible to provide once and only
+ * once semantics without using the QOS_ONCE_AND_ONLY_ONCE QoS level. This can
+ * be done by using the QOS_DUPLICATES_OK mode and then checking for duplicates
+ * at the destination and discarding them. Some JMS servers provide automatic
+ * duplicate message detection functionality, or this may be possible to
+ * implement on the application level by maintaining a cache of received message
+ * ids on disk and comparing received messages to them. The cache would only be
+ * valid for a certain period of time so this approach is not as watertight as
+ * using QOS_ONCE_AND_ONLY_ONCE but may be a good choice depending on your
+ * specific application.
+ * 
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ * 
+ * @version <tt>$Revision$</tt>
+ * 
+ */
+public enum QualityOfServiceMode
+{
+   AT_MOST_ONCE(0), DUPLICATES_OK(1), ONCE_AND_ONLY_ONCE(2);
+
+   private final int value;
+
+   QualityOfServiceMode(final int value)
+   {
+      this.value = value;
+   }
+
+   public int intValue()
+   {
+      return value;
+   }
+
+   public static QualityOfServiceMode valueOf(final int value)
+   {
+      if (value == AT_MOST_ONCE.value)
+      {
+         return AT_MOST_ONCE;
+      }
+      if (value == DUPLICATES_OK.value)
+      {
+         return DUPLICATES_OK;
+      }
+      if (value == ONCE_AND_ONLY_ONCE.value)
+      {
+         return ONCE_AND_ONLY_ONCE;
+      }
+      throw new IllegalArgumentException("invalid QualityOfServiceMode value: " + value);
+   }
+
+}

Modified: trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeControlImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeControlImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,9 +15,9 @@
 
 import javax.management.StandardMBean;
 
-import org.hornetq.api.jms.bridge.JMSBridge;
-import org.hornetq.api.jms.bridge.JMSBridgeControl;
-import org.hornetq.api.jms.bridge.QualityOfServiceMode;
+import org.hornetq.jms.bridge.JMSBridge;
+import org.hornetq.jms.bridge.JMSBridgeControl;
+import org.hornetq.jms.bridge.QualityOfServiceMode;
 
 /**
  * A JMSBridgeControlImpl

Copied: trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/bridge/JMSBridgeImpl.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/bridge/impl/JMSBridgeImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,2008 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.bridge.impl;
+
+import java.lang.reflect.Method;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.Map;
+
+import javax.jms.Connection;
+import javax.jms.ConnectionFactory;
+import javax.jms.Destination;
+import javax.jms.ExceptionListener;
+import javax.jms.JMSException;
+import javax.jms.Message;
+import javax.jms.MessageConsumer;
+import javax.jms.MessageProducer;
+import javax.jms.Session;
+import javax.jms.Topic;
+import javax.jms.XAConnection;
+import javax.jms.XAConnectionFactory;
+import javax.jms.XASession;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.management.StandardMBean;
+import javax.transaction.Transaction;
+import javax.transaction.TransactionManager;
+import javax.transaction.xa.XAResource;
+
+import org.hornetq.api.core.client.ClientSession;
+import org.hornetq.api.jms.HornetQMessageConstants;
+import org.hornetq.core.logging.Logger;
+import org.hornetq.core.server.HornetQComponent;
+import org.hornetq.jms.bridge.ConnectionFactoryFactory;
+import org.hornetq.jms.bridge.DestinationFactory;
+import org.hornetq.jms.bridge.JMSBridge;
+import org.hornetq.jms.bridge.JMSBridgeControl;
+import org.hornetq.jms.bridge.QualityOfServiceMode;
+import org.hornetq.jms.client.HornetQSession;
+
+/**
+ * 
+ * A JMSBridge
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>$Revision:4566 $</tt>
+ *
+ * $Id:JMSBridge.java 4566 2008-06-24 08:01:35Z jmesnil $
+ *
+ */
+public class JMSBridgeImpl implements HornetQComponent, JMSBridge
+{
+   private static final Logger log;
+
+   private static boolean trace;
+
+   static
+   {
+      log = Logger.getLogger(JMSBridgeImpl.class);
+
+      JMSBridgeImpl.trace = JMSBridgeImpl.log.isTraceEnabled();
+   }
+
+   private static final int TEN_YEARS = 60 * 60 * 24 * 365 * 10; // in ms
+
+   private final Object lock = new Object();
+
+   private String sourceUsername;
+
+   private String sourcePassword;
+
+   private String targetUsername;
+
+   private String targetPassword;
+
+   private TransactionManager tm;
+
+   private String selector;
+
+   private long failureRetryInterval;
+
+   private int maxRetries;
+
+   private QualityOfServiceMode qualityOfServiceMode;
+
+   private int maxBatchSize;
+
+   private long maxBatchTime;
+
+   private String subName;
+
+   private String clientID;
+
+   private volatile boolean addMessageIDInHeader;
+
+   private boolean started;
+
+   private final LinkedList<Message> messages;
+
+   private ConnectionFactoryFactory sourceCff;
+
+   private ConnectionFactoryFactory targetCff;
+
+   private DestinationFactory sourceDestinationFactory;
+
+   private DestinationFactory targetDestinationFactory;
+
+   private Connection sourceConn;
+
+   private Connection targetConn;
+
+   private Destination sourceDestination;
+
+   private Destination targetDestination;
+
+   private Session sourceSession;
+
+   private Session targetSession;
+
+   private MessageConsumer sourceConsumer;
+
+   private MessageProducer targetProducer;
+
+   private BatchTimeChecker timeChecker;
+
+   private Thread checkerThread;
+
+   private Thread sourceReceiver;
+
+   private long batchExpiryTime;
+
+   private boolean paused;
+
+   private Transaction tx;
+
+   private boolean failed;
+
+   private int forwardMode;
+
+   private String transactionManagerLocatorClass = "org.hornetq.integration.jboss.tm.JBoss5TransactionManagerLocator";
+
+   private String transactionManagerLocatorMethod = "getTm";
+
+   private MBeanServer mbeanServer;
+
+   private ObjectName objectName;
+
+   private static final int FORWARD_MODE_XA = 0;
+
+   private static final int FORWARD_MODE_LOCALTX = 1;
+
+   private static final int FORWARD_MODE_NONTX = 2;
+
+   /*
+    * Constructor for MBean
+    */
+   public JMSBridgeImpl()
+   {
+      messages = new LinkedList<Message>();
+   }
+
+   public JMSBridgeImpl(final ConnectionFactoryFactory sourceCff,
+                        final ConnectionFactoryFactory targetCff,
+                        final DestinationFactory sourceDestinationFactory,
+                        final DestinationFactory targetDestinationFactory,
+                        final String sourceUsername,
+                        final String sourcePassword,
+                        final String targetUsername,
+                        final String targetPassword,
+                        final String selector,
+                        final long failureRetryInterval,
+                        final int maxRetries,
+                        final QualityOfServiceMode qosMode,
+                        final int maxBatchSize,
+                        final long maxBatchTime,
+                        final String subName,
+                        final String clientID,
+                        final boolean addMessageIDInHeader)
+   {
+
+      this(sourceCff,
+           targetCff,
+           sourceDestinationFactory,
+           targetDestinationFactory,
+           sourceUsername,
+           sourcePassword,
+           targetUsername,
+           targetPassword,
+           selector,
+           failureRetryInterval,
+           maxRetries,
+           qosMode,
+           maxBatchSize,
+           maxBatchTime,
+           subName,
+           clientID,
+           addMessageIDInHeader,
+           null,
+           null);
+   }
+
+   public JMSBridgeImpl(final ConnectionFactoryFactory sourceCff,
+                        final ConnectionFactoryFactory targetCff,
+                        final DestinationFactory sourceDestinationFactory,
+                        final DestinationFactory targetDestinationFactory,
+                        final String sourceUsername,
+                        final String sourcePassword,
+                        final String targetUsername,
+                        final String targetPassword,
+                        final String selector,
+                        final long failureRetryInterval,
+                        final int maxRetries,
+                        final QualityOfServiceMode qosMode,
+                        final int maxBatchSize,
+                        final long maxBatchTime,
+                        final String subName,
+                        final String clientID,
+                        final boolean addMessageIDInHeader,
+                        final MBeanServer mbeanServer,
+                        final String objectName)
+   {
+      this();
+
+      this.sourceCff = sourceCff;
+
+      this.targetCff = targetCff;
+
+      this.sourceDestinationFactory = sourceDestinationFactory;
+
+      this.targetDestinationFactory = targetDestinationFactory;
+
+      this.sourceUsername = sourceUsername;
+
+      this.sourcePassword = sourcePassword;
+
+      this.targetUsername = targetUsername;
+
+      this.targetPassword = targetPassword;
+
+      this.selector = selector;
+
+      this.failureRetryInterval = failureRetryInterval;
+
+      this.maxRetries = maxRetries;
+
+      qualityOfServiceMode = qosMode;
+
+      this.maxBatchSize = maxBatchSize;
+
+      this.maxBatchTime = maxBatchTime;
+
+      this.subName = subName;
+
+      this.clientID = clientID;
+
+      this.addMessageIDInHeader = addMessageIDInHeader;
+
+      checkParams();
+
+      if (mbeanServer != null)
+      {
+         if (objectName != null)
+         {
+            this.mbeanServer = mbeanServer;
+
+            try
+            {
+               JMSBridgeControlImpl controlBean = new JMSBridgeControlImpl(this);
+               this.objectName = ObjectName.getInstance(objectName);
+               StandardMBean mbean = new StandardMBean(controlBean, JMSBridgeControl.class);
+               mbeanServer.registerMBean(mbean, this.objectName);
+               JMSBridgeImpl.log.debug("Registered JMSBridge instance as: " + this.objectName.getCanonicalName());
+            }
+            catch (Exception e)
+            {
+               throw new IllegalStateException("Failed to register JMSBridge MBean", e);
+            }
+         }
+         else
+         {
+            throw new IllegalArgumentException("objectName is required when specifying an MBeanServer");
+         }
+      }
+
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Created " + this);
+      }
+   }
+
+   // HornetQComponent overrides --------------------------------------------------
+
+   public synchronized void start() throws Exception
+   {
+      if (started)
+      {
+         JMSBridgeImpl.log.warn("Attempt to start, but is already started");
+         return;
+      }
+
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Starting " + this);
+      }
+
+      checkParams();
+
+      TransactionManager tm = getTm();
+
+      // There may already be a JTA transaction associated to the thread
+
+      boolean ok;
+
+      Transaction toResume = null;
+      try
+      {
+         toResume = tm.suspend();
+
+         ok = setupJMSObjects();
+      }
+      finally
+      {
+         if (toResume != null)
+         {
+            tm.resume(toResume);
+         }
+      }
+
+      if (ok)
+      {
+         // start the source connection
+
+         sourceConn.start();
+
+         started = true;
+
+         if (maxBatchTime != -1)
+         {
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Starting time checker thread");
+            }
+
+            timeChecker = new BatchTimeChecker();
+
+            checkerThread = new Thread(timeChecker, "jmsbridge-checker-thread");
+
+            batchExpiryTime = System.currentTimeMillis() + maxBatchTime;
+
+            checkerThread.start();
+
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Started time checker thread");
+            }
+         }
+
+         sourceReceiver = new SourceReceiver();
+         sourceReceiver.start();
+
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Started " + this);
+         }
+      }
+      else
+      {
+         JMSBridgeImpl.log.warn("Failed to start bridge");
+         handleFailureOnStartup();
+      }
+
+   }
+
+   public synchronized void stop() throws Exception
+   {
+      if (!started)
+      {
+         JMSBridgeImpl.log.warn("Attempt to stop, but is already stopped");
+         return;
+      }
+
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Stopping " + this);
+      }
+
+      synchronized (lock)
+      {
+         started = false;
+
+         // This must be inside sync block
+         if (checkerThread != null)
+         {
+            checkerThread.interrupt();
+         }
+
+         if (sourceReceiver != null)
+         {
+            sourceReceiver.interrupt();
+         }
+      }
+
+      // This must be outside sync block
+      if (checkerThread != null)
+      {
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Waiting for checker thread to finish");
+         }
+
+         checkerThread.join();
+
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Checker thread has finished");
+         }
+      }
+
+      // This must be outside sync block
+      if (sourceReceiver != null)
+      {
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Waiting for source receiver thread to finish");
+         }
+
+         sourceReceiver.join();
+
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Source receiver thread has finished");
+         }
+      }
+
+      if (tx != null)
+      {
+         // Terminate any transaction
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Rolling back remaining tx");
+         }
+
+         try
+         {
+            tx.rollback();
+         }
+         catch (Exception ignore)
+         {
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Failed to rollback", ignore);
+            }
+         }
+
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Rolled back remaining tx");
+         }
+      }
+
+      try
+      {
+         sourceConn.close();
+      }
+      catch (Exception ignore)
+      {
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Failed to close source conn", ignore);
+         }
+      }
+
+      if (targetConn != null)
+      {
+         try
+         {
+            targetConn.close();
+         }
+         catch (Exception ignore)
+         {
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Failed to close target conn", ignore);
+            }
+         }
+      }
+
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Stopped " + this);
+      }
+   }
+
+   public synchronized boolean isStarted()
+   {
+      return started;
+   }
+
+   public void destroy()
+   {
+      if (mbeanServer != null && objectName != null)
+      {
+         try
+         {
+            mbeanServer.unregisterMBean(objectName);
+         }
+         catch (Exception e)
+         {
+            JMSBridgeImpl.log.warn("Failed to unregisted JMS Bridge " + objectName);
+         }
+      }
+   }
+
+   // JMSBridge implementation ------------------------------------------------------------
+
+   public synchronized void pause() throws Exception
+   {
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Pausing " + this);
+      }
+
+      synchronized (lock)
+      {
+         paused = true;
+
+         sourceConn.stop();
+      }
+
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Paused " + this);
+      }
+   }
+
+   public synchronized void resume() throws Exception
+   {
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Resuming " + this);
+      }
+
+      synchronized (lock)
+      {
+         paused = false;
+
+         sourceConn.start();
+      }
+
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Resumed " + this);
+      }
+   }
+
+   public DestinationFactory getSourceDestinationFactory()
+   {
+      return sourceDestinationFactory;
+   }
+
+   public void setSourceDestinationFactory(final DestinationFactory dest)
+   {
+      checkBridgeNotStarted();
+      JMSBridgeImpl.checkNotNull(dest, "TargetDestinationFactory");
+
+      sourceDestinationFactory = dest;
+   }
+
+   public DestinationFactory getTargetDestinationFactory()
+   {
+      return targetDestinationFactory;
+   }
+
+   public void setTargetDestinationFactory(final DestinationFactory dest)
+   {
+      checkBridgeNotStarted();
+      JMSBridgeImpl.checkNotNull(dest, "TargetDestinationFactory");
+
+      targetDestinationFactory = dest;
+   }
+
+   public String getSourceUsername()
+   {
+      return sourceUsername;
+   }
+
+   public synchronized void setSourceUsername(final String name)
+   {
+      checkBridgeNotStarted();
+
+      sourceUsername = name;
+   }
+
+   public synchronized String getSourcePassword()
+   {
+      return sourcePassword;
+   }
+
+   public synchronized void setSourcePassword(final String pwd)
+   {
+      checkBridgeNotStarted();
+
+      sourcePassword = pwd;
+   }
+
+   public synchronized String getTargetUsername()
+   {
+      return targetUsername;
+   }
+
+   public synchronized void setTargetUsername(final String name)
+   {
+      checkBridgeNotStarted();
+
+      targetUsername = name;
+   }
+
+   public synchronized String getTargetPassword()
+   {
+      return targetPassword;
+   }
+
+   public synchronized void setTargetPassword(final String pwd)
+   {
+      checkBridgeNotStarted();
+
+      targetPassword = pwd;
+   }
+
+   public synchronized String getSelector()
+   {
+      return selector;
+   }
+
+   public synchronized void setSelector(final String selector)
+   {
+      checkBridgeNotStarted();
+
+      this.selector = selector;
+   }
+
+   public synchronized long getFailureRetryInterval()
+   {
+      return failureRetryInterval;
+   }
+
+   public synchronized void setFailureRetryInterval(final long interval)
+   {
+      checkBridgeNotStarted();
+      if (interval < 1)
+      {
+         throw new IllegalArgumentException("FailureRetryInterval must be >= 1");
+      }
+
+      failureRetryInterval = interval;
+   }
+
+   public synchronized int getMaxRetries()
+   {
+      return maxRetries;
+   }
+
+   public synchronized void setMaxRetries(final int retries)
+   {
+      checkBridgeNotStarted();
+      JMSBridgeImpl.checkValidValue(retries, "MaxRetries");
+
+      maxRetries = retries;
+   }
+
+   public synchronized QualityOfServiceMode getQualityOfServiceMode()
+   {
+      return qualityOfServiceMode;
+   }
+
+   public synchronized void setQualityOfServiceMode(final QualityOfServiceMode mode)
+   {
+      checkBridgeNotStarted();
+      JMSBridgeImpl.checkNotNull(mode, "QualityOfServiceMode");
+
+      qualityOfServiceMode = mode;
+   }
+
+   public synchronized int getMaxBatchSize()
+   {
+      return maxBatchSize;
+   }
+
+   public synchronized void setMaxBatchSize(final int size)
+   {
+      checkBridgeNotStarted();
+      JMSBridgeImpl.checkMaxBatchSize(size);
+
+      maxBatchSize = size;
+   }
+
+   public synchronized long getMaxBatchTime()
+   {
+      return maxBatchTime;
+   }
+
+   public synchronized void setMaxBatchTime(final long time)
+   {
+      checkBridgeNotStarted();
+      JMSBridgeImpl.checkValidValue(time, "MaxBatchTime");
+
+      maxBatchTime = time;
+   }
+
+   public synchronized String getSubscriptionName()
+   {
+      return subName;
+   }
+
+   public synchronized void setSubscriptionName(final String subname)
+   {
+      checkBridgeNotStarted();
+      subName = subname;
+   }
+
+   public synchronized String getClientID()
+   {
+      return clientID;
+   }
+
+   public synchronized void setClientID(final String clientID)
+   {
+      checkBridgeNotStarted();
+
+      this.clientID = clientID;
+   }
+
+   public String getTransactionManagerLocatorClass()
+   {
+      return transactionManagerLocatorClass;
+   }
+
+   public void setTransactionManagerLocatorClass(final String transactionManagerLocatorClass)
+   {
+      checkBridgeNotStarted();
+      this.transactionManagerLocatorClass = transactionManagerLocatorClass;
+   }
+
+   public String getTransactionManagerLocatorMethod()
+   {
+      return transactionManagerLocatorMethod;
+   }
+
+   public void setTransactionManagerLocatorMethod(final String transactionManagerLocatorMethod)
+   {
+      this.transactionManagerLocatorMethod = transactionManagerLocatorMethod;
+   }
+
+   public boolean isAddMessageIDInHeader()
+   {
+      return addMessageIDInHeader;
+   }
+
+   public void setAddMessageIDInHeader(final boolean value)
+   {
+      addMessageIDInHeader = value;
+   }
+
+   public synchronized boolean isPaused()
+   {
+      return paused;
+   }
+
+   public synchronized boolean isFailed()
+   {
+      return failed;
+   }
+
+   public synchronized void setSourceConnectionFactoryFactory(final ConnectionFactoryFactory cff)
+   {
+      checkBridgeNotStarted();
+      JMSBridgeImpl.checkNotNull(cff, "SourceConnectionFactoryFactory");
+
+      sourceCff = cff;
+   }
+
+   public synchronized void setTargetConnectionFactoryFactory(final ConnectionFactoryFactory cff)
+   {
+      checkBridgeNotStarted();
+      JMSBridgeImpl.checkNotNull(cff, "TargetConnectionFactoryFactory");
+
+      targetCff = cff;
+   }
+
+   public void setTransactionManager(final TransactionManager tm)
+   {
+      this.tm = tm;
+   }
+
+   // Public ---------------------------------------------------------------------------
+
+   // Private -------------------------------------------------------------------
+
+   private void checkParams()
+   {
+      JMSBridgeImpl.checkNotNull(sourceCff, "sourceCff");
+      JMSBridgeImpl.checkNotNull(targetCff, "targetCff");
+      JMSBridgeImpl.checkNotNull(sourceDestinationFactory, "sourceDestinationFactory");
+      JMSBridgeImpl.checkNotNull(targetDestinationFactory, "targetDestinationFactory");
+      JMSBridgeImpl.checkValidValue(failureRetryInterval, "failureRetryInterval");
+      JMSBridgeImpl.checkValidValue(maxRetries, "maxRetries");
+      if (failureRetryInterval == -1 && maxRetries > 0)
+      {
+         throw new IllegalArgumentException("If failureRetryInterval == -1 maxRetries must be set to -1");
+      }
+      JMSBridgeImpl.checkMaxBatchSize(maxBatchSize);
+      JMSBridgeImpl.checkValidValue(maxBatchTime, "maxBatchTime");
+      JMSBridgeImpl.checkNotNull(qualityOfServiceMode, "qualityOfServiceMode");
+   }
+
+   /**
+    * Check the object is not null
+    * 
+    * @throws IllegalArgumentException if the object is null
+    */
+   private static void checkNotNull(final Object obj, final String name)
+   {
+      if (obj == null)
+      {
+         throw new IllegalArgumentException(name + " cannot be null");
+      }
+   }
+
+   /**
+    * Check the bridge is not started
+    * 
+    * @throws IllegalStateException if the bridge is started
+    */
+   private void checkBridgeNotStarted()
+   {
+      if (started)
+      {
+         throw new IllegalStateException("Cannot set bridge attributes while it is started");
+      }
+   }
+
+   /**
+    * Check that value is either equals to -1 or greater than 0
+    * 
+    * @throws IllegalArgumentException if the value is not valid
+    */
+   private static void checkValidValue(final long value, final String name)
+   {
+      if (!(value == -1 || value > 0))
+      {
+         throw new IllegalArgumentException(name + " must be > 0 or -1");
+      }
+   }
+
+   private static void checkMaxBatchSize(final int size)
+   {
+      if (!(size >= 1))
+      {
+         throw new IllegalArgumentException("maxBatchSize must be >= 1");
+      }
+   }
+
+   private void enlistResources(final Transaction tx) throws Exception
+   {
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Enlisting resources in tx");
+      }
+
+      XAResource resSource = ((XASession)sourceSession).getXAResource();
+
+      tx.enlistResource(resSource);
+
+      XAResource resDest = ((XASession)targetSession).getXAResource();
+
+      tx.enlistResource(resDest);
+
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Enlisted resources in tx");
+      }
+   }
+
+   private void delistResources(final Transaction tx)
+   {
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Delisting resources from tx");
+      }
+
+      XAResource resSource = ((XASession)sourceSession).getXAResource();
+
+      try
+      {
+         tx.delistResource(resSource, XAResource.TMSUCCESS);
+      }
+      catch (Exception e)
+      {
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Failed to delist source resource", e);
+         }
+      }
+
+      XAResource resDest = ((XASession)targetSession).getXAResource();
+
+      try
+      {
+         tx.delistResource(resDest, XAResource.TMSUCCESS);
+      }
+      catch (Exception e)
+      {
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Failed to delist target resource", e);
+         }
+      }
+
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Delisted resources from tx");
+      }
+   }
+
+   private Transaction startTx() throws Exception
+   {
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Starting JTA transaction");
+      }
+
+      TransactionManager tm = getTm();
+
+      // Set timeout to a large value since we do not want to time out while waiting for messages
+      // to arrive - 10 years should be enough
+      tm.setTransactionTimeout(JMSBridgeImpl.TEN_YEARS);
+
+      tm.begin();
+
+      Transaction tx = tm.getTransaction();
+
+      // Remove the association between current thread - we don't want it
+      // we will be committing /rolling back directly on the transaction object
+
+      tm.suspend();
+
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Started JTA transaction");
+      }
+
+      return tx;
+   }
+
+   private TransactionManager getTm()
+   {
+      if (tm == null)
+      {
+         try
+         {
+            ClassLoader loader = Thread.currentThread().getContextClassLoader();
+            Class aClass = loader.loadClass(transactionManagerLocatorClass);
+            Object o = aClass.newInstance();
+            Method m = aClass.getMethod(transactionManagerLocatorMethod);
+            tm = (TransactionManager)m.invoke(o);
+         }
+         catch (Exception e)
+         {
+            throw new IllegalStateException("unable to create TransactionManager from " + transactionManagerLocatorClass +
+                                                     "." +
+                                                     transactionManagerLocatorMethod,
+                                            e);
+         }
+
+         if (tm == null)
+         {
+            throw new IllegalStateException("Cannot locate a transaction manager");
+         }
+      }
+
+      return tm;
+   }
+
+   private Connection createConnection(final String username, final String password, final ConnectionFactoryFactory cff) throws Exception
+   {
+      Connection conn;
+
+      ConnectionFactory cf = cff.createConnectionFactory();
+
+      if (qualityOfServiceMode == QualityOfServiceMode.ONCE_AND_ONLY_ONCE && !(cf instanceof XAConnectionFactory))
+      {
+         throw new IllegalArgumentException("Connection factory must be XAConnectionFactory");
+      }
+
+      if (username == null)
+      {
+         if (qualityOfServiceMode == QualityOfServiceMode.ONCE_AND_ONLY_ONCE)
+         {
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Creating an XA connection");
+            }
+            conn = ((XAConnectionFactory)cf).createXAConnection();
+         }
+         else
+         {
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Creating a non XA connection");
+            }
+            conn = cf.createConnection();
+         }
+      }
+      else
+      {
+         if (qualityOfServiceMode == QualityOfServiceMode.ONCE_AND_ONLY_ONCE)
+         {
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Creating an XA connection");
+            }
+            conn = ((XAConnectionFactory)cf).createXAConnection(username, password);
+         }
+         else
+         {
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Creating a non XA connection");
+            }
+            conn = cf.createConnection(username, password);
+         }
+      }
+
+      return conn;
+   }
+
+   /*
+    * Source and target on same server
+    * --------------------------------
+    * If the source and target destinations are on the same server (same resource manager) then,
+    * in order to get ONCE_AND_ONLY_ONCE, we simply need to consuming and send in a single
+    * local JMS transaction.
+    * 
+    * We actually use a single local transacted session for the other QoS modes too since this
+    * is more performant than using DUPS_OK_ACKNOWLEDGE or AUTO_ACKNOWLEDGE session ack modes, so effectively
+    * the QoS is upgraded.
+    * 
+    * Source and target on different server
+    * -------------------------------------
+    * If the source and target destinations are on a different servers (different resource managers) then:
+    * 
+    * If desired QoS is ONCE_AND_ONLY_ONCE, then we start a JTA transaction and enlist the consuming and sending
+    * XAResources in that.
+    * 
+    * If desired QoS is DUPLICATES_OK then, we use CLIENT_ACKNOWLEDGE for the consuming session and
+    * AUTO_ACKNOWLEDGE (this is ignored) for the sending session if the maxBatchSize == 1, otherwise we
+    * use a local transacted session for the sending session where maxBatchSize > 1, since this is more performant
+    * When bridging a batch, we make sure to manually acknowledge the consuming session, if it is CLIENT_ACKNOWLEDGE
+    * *after* the batch has been sent
+    * 
+    * If desired QoS is AT_MOST_ONCE then, if maxBatchSize == 1, we use AUTO_ACKNOWLEDGE for the consuming session,
+    * and AUTO_ACKNOWLEDGE for the sending session.
+    * If maxBatchSize > 1, we use CLIENT_ACKNOWLEDGE for the consuming session and a local transacted session for the
+    * sending session.
+    * 
+    * When bridging a batch, we make sure to manually acknowledge the consuming session, if it is CLIENT_ACKNOWLEDGE
+    * *before* the batch has been sent
+    * 
+    */
+   private boolean setupJMSObjects()
+   {
+      try
+      {
+         if (sourceCff == targetCff)
+         {
+            // Source and target destinations are on the server - we can get once and only once
+            // just using a local transacted session
+            // everything becomes once and only once
+
+            forwardMode = JMSBridgeImpl.FORWARD_MODE_LOCALTX;
+         }
+         else
+         {
+            // Different servers
+            if (qualityOfServiceMode == QualityOfServiceMode.ONCE_AND_ONLY_ONCE)
+            {
+               // Use XA
+
+               forwardMode = JMSBridgeImpl.FORWARD_MODE_XA;
+            }
+            else
+            {
+               forwardMode = JMSBridgeImpl.FORWARD_MODE_NONTX;
+            }
+         }
+
+         // Lookup the destinations
+         sourceDestination = sourceDestinationFactory.createDestination();
+
+         targetDestination = targetDestinationFactory.createDestination();
+
+         sourceConn = createConnection(sourceUsername, sourcePassword, sourceCff);
+
+         if (forwardMode != JMSBridgeImpl.FORWARD_MODE_LOCALTX)
+         {
+            targetConn = createConnection(targetUsername, targetPassword, targetCff);
+
+            targetConn.setExceptionListener(new BridgeExceptionListener());
+         }
+
+         if (clientID != null)
+         {
+            sourceConn.setClientID(clientID);
+         }
+
+         sourceConn.setExceptionListener(new BridgeExceptionListener());
+
+         Session sess;
+
+         if (forwardMode == JMSBridgeImpl.FORWARD_MODE_LOCALTX)
+         {
+            // We simply use a single local transacted session for consuming and sending
+
+            sourceSession = sourceConn.createSession(true, Session.SESSION_TRANSACTED);
+
+            sess = sourceSession;
+         }
+         else
+         {
+            if (forwardMode == JMSBridgeImpl.FORWARD_MODE_XA)
+            {
+               // Create an XASession for consuming from the source
+               if (JMSBridgeImpl.trace)
+               {
+                  JMSBridgeImpl.log.trace("Creating XA source session");
+               }
+
+               sourceSession = ((XAConnection)sourceConn).createXASession();
+
+               sess = ((XASession)sourceSession).getSession();
+            }
+            else
+            {
+               if (JMSBridgeImpl.trace)
+               {
+                  JMSBridgeImpl.log.trace("Creating non XA source session");
+               }
+
+               // Create a standard session for consuming from the source
+
+               // We use ack mode client ack
+
+               sourceSession = sourceConn.createSession(false, Session.CLIENT_ACKNOWLEDGE);
+
+               sess = sourceSession;
+            }
+         }
+
+         if (forwardMode == JMSBridgeImpl.FORWARD_MODE_XA && sourceSession instanceof HornetQSession)
+         {
+            HornetQSession jsession = (HornetQSession)sourceSession;
+
+            ClientSession clientSession = jsession.getCoreSession();
+
+            // clientSession.setTreatAsNonTransactedWhenNotEnlisted(false);
+         }
+
+         if (subName == null)
+         {
+            if (selector == null)
+            {
+               sourceConsumer = sess.createConsumer(sourceDestination);
+            }
+            else
+            {
+               sourceConsumer = sess.createConsumer(sourceDestination, selector, false);
+            }
+         }
+         else
+         {
+            // Durable subscription
+            if (selector == null)
+            {
+               sourceConsumer = sess.createDurableSubscriber((Topic)sourceDestination, subName);
+            }
+            else
+            {
+               sourceConsumer = sess.createDurableSubscriber((Topic)sourceDestination, subName, selector, false);
+            }
+         }
+
+         // Now the sending session
+
+         if (forwardMode != JMSBridgeImpl.FORWARD_MODE_LOCALTX)
+         {
+            if (forwardMode == JMSBridgeImpl.FORWARD_MODE_XA)
+            {
+               if (JMSBridgeImpl.trace)
+               {
+                  JMSBridgeImpl.log.trace("Creating XA dest session");
+               }
+
+               // Create an XA sesion for sending to the destination
+
+               targetSession = ((XAConnection)targetConn).createXASession();
+
+               sess = ((XASession)targetSession).getSession();
+            }
+            else
+            {
+               if (JMSBridgeImpl.trace)
+               {
+                  JMSBridgeImpl.log.trace("Creating non XA dest session");
+               }
+
+               // Create a standard session for sending to the target
+
+               // If batch size > 1 we use a transacted session since is more efficient
+
+               boolean transacted = maxBatchSize > 1;
+
+               targetSession = targetConn.createSession(transacted, transacted ? Session.SESSION_TRANSACTED
+                                                                              : Session.AUTO_ACKNOWLEDGE);
+
+               sess = targetSession;
+            }
+         }
+
+         if (forwardMode == JMSBridgeImpl.FORWARD_MODE_XA)
+         {
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Starting JTA transaction");
+            }
+
+            tx = startTx();
+
+            enlistResources(tx);
+         }
+
+         targetProducer = sess.createProducer(null);
+
+         return true;
+      }
+      catch (Exception e)
+      {
+         // We shouldn't log this, as it's expected when trying to connect when target/source is not available
+
+         // If this fails we should attempt to cleanup or we might end up in some weird state
+
+         cleanup();
+
+         return false;
+      }
+   }
+
+   private void cleanup()
+   {
+      // Stop the source connection
+      try
+      {
+         sourceConn.stop();
+      }
+      catch (Throwable ignore)
+      {
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Failed to stop source connection", ignore);
+         }
+      }
+
+      if (tx != null)
+      {
+         try
+         {
+            delistResources(tx);
+         }
+         catch (Throwable ignore)
+         {
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Failed to delist resources", ignore);
+            }
+         }
+         try
+         {
+            // Terminate the tx
+            tx.rollback();
+         }
+         catch (Throwable ignore)
+         {
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Failed to rollback", ignore);
+            }
+         }
+      }
+
+      // Close the old objects
+      try
+      {
+         sourceConn.close();
+      }
+      catch (Throwable ignore)
+      {
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Failed to close source connection", ignore);
+         }
+      }
+      try
+      {
+         if (targetConn != null)
+         {
+            targetConn.close();
+         }
+      }
+      catch (Throwable ignore)
+      {
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Failed to close target connection", ignore);
+         }
+      }
+   }
+
+   private void pause(final long interval)
+   {
+      long start = System.currentTimeMillis();
+      while (System.currentTimeMillis() - start < failureRetryInterval)
+      {
+         try
+         {
+            Thread.sleep(failureRetryInterval);
+         }
+         catch (InterruptedException ex)
+         {
+         }
+      }
+   }
+
+   private boolean setupJMSObjectsWithRetry()
+   {
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Setting up connections");
+      }
+
+      int count = 0;
+
+      while (true)
+      {
+         boolean ok = setupJMSObjects();
+
+         if (ok)
+         {
+            return true;
+         }
+
+         count++;
+
+         if (maxRetries != -1 && count == maxRetries)
+         {
+            break;
+         }
+
+         JMSBridgeImpl.log.info("Failed to set up JMS bridge connections. Most probably the source or target servers are unavailable. Will retry after a pause of " + failureRetryInterval +
+                                " ms");
+
+         pause(failureRetryInterval);
+      }
+
+      // If we get here then we exceeded maxRetries
+      return false;
+   }
+
+   private void sendBatch()
+   {
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Sending batch of " + messages.size() + " messages");
+      }
+
+      if (paused)
+      {
+         // Don't send now
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Paused, so not sending now");
+         }
+
+         return;
+      }
+
+      if (forwardMode == JMSBridgeImpl.FORWARD_MODE_LOCALTX)
+      {
+         sendBatchLocalTx();
+      }
+      else if (forwardMode == JMSBridgeImpl.FORWARD_MODE_XA)
+      {
+         sendBatchXA();
+      }
+      else
+      {
+         sendBatchNonTransacted();
+      }
+   }
+
+   private void sendBatchNonTransacted()
+   {
+      try
+      {
+         if (qualityOfServiceMode == QualityOfServiceMode.ONCE_AND_ONLY_ONCE)
+         {
+            // We client ack before sending
+
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Client acking source session");
+            }
+
+            ((Message)messages.getLast()).acknowledge();
+
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Client acked source session");
+            }
+         }
+
+         sendMessages();
+
+         if (maxBatchSize > 1)
+         {
+            // The sending session is transacted - we need to commit it
+
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Committing target session");
+            }
+
+            targetSession.commit();
+
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Committed source session");
+            }
+         }
+
+         if (qualityOfServiceMode == QualityOfServiceMode.DUPLICATES_OK)
+         {
+            // We client ack after sending
+
+            // Note we could actually use Session.DUPS_OK_ACKNOWLEDGE here
+            // For a slightly less strong delivery guarantee
+
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Client acking source session");
+            }
+
+            messages.getLast().acknowledge();
+
+            if (JMSBridgeImpl.trace)
+            {
+               JMSBridgeImpl.log.trace("Client acked source session");
+            }
+         }
+
+         // Clear the messages
+         messages.clear();
+      }
+      catch (Exception e)
+      {
+         JMSBridgeImpl.log.warn("Failed to send + acknowledge batch, closing JMS objects", e);
+
+         handleFailureOnSend();
+      }
+   }
+
+   private void sendBatchXA()
+   {
+      try
+      {
+         sendMessages();
+
+         // Commit the JTA transaction and start another
+
+         delistResources(tx);
+
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Committing JTA transaction");
+         }
+
+         tx.commit();
+
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Committed JTA transaction");
+         }
+
+         tx = startTx();
+
+         enlistResources(tx);
+
+         // Clear the messages
+         messages.clear();
+      }
+      catch (Exception e)
+      {
+         JMSBridgeImpl.log.warn("Failed to send + acknowledge batch, closing JMS objects", e);
+
+         handleFailureOnSend();
+      }
+   }
+
+   private void sendBatchLocalTx()
+   {
+      try
+      {
+         sendMessages();
+
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Committing source session");
+         }
+
+         sourceSession.commit();
+
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Committed source session");
+         }
+
+         // Clear the messages
+         messages.clear();
+      }
+      catch (Exception e)
+      {
+         JMSBridgeImpl.log.warn("Failed to send + acknowledge batch, closing JMS objects", e);
+
+         handleFailureOnSend();
+      }
+   }
+
+   private void sendMessages() throws Exception
+   {
+      Iterator iter = messages.iterator();
+
+      Message msg = null;
+
+      while (iter.hasNext())
+      {
+         msg = (Message)iter.next();
+
+         if (addMessageIDInHeader)
+         {
+            addMessageIDInHeader(msg);
+         }
+
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Sending message " + msg);
+         }
+
+         // Make sure the correct time to live gets propagated
+
+         long timeToLive = msg.getJMSExpiration();
+
+         if (timeToLive != 0)
+         {
+            timeToLive -= System.currentTimeMillis();
+
+            if (timeToLive <= 0)
+            {
+               timeToLive = 1; // Should have already expired - set to 1 so it expires when it is consumed or delivered
+            }
+         }
+
+         targetProducer.send(targetDestination, msg, msg.getJMSDeliveryMode(), msg.getJMSPriority(), timeToLive);
+
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Sent message " + msg);
+         }
+      }
+   }
+
+   private void handleFailureOnSend()
+   {
+      handleFailure(new FailureHandler());
+   }
+
+   private void handleFailureOnStartup()
+   {
+      handleFailure(new StartupFailureHandler());
+   }
+
+   private void handleFailure(final Runnable failureHandler)
+   {
+      failed = true;
+
+      // Failure must be handled on a separate thread to the calling thread (either onMessage or start).
+      // In the case of onMessage we can't close the connection from inside the onMessage method
+      // since it will block waiting for onMessage to complete. In the case of start we want to return
+      // from the call before the connections are reestablished so that the caller is not blocked unnecessarily.
+      Thread t = new Thread(failureHandler, "jmsbridge-failurehandler-thread");
+
+      t.start();
+   }
+
+   private void addMessageIDInHeader(final Message msg) throws Exception
+   {
+      // We concatenate the old message id as a header in the message
+      // This allows the target to then use this as the JMSCorrelationID of any response message
+      // thus enabling a distributed request-response pattern.
+      // Each bridge (if there are more than one) in the chain can concatenate the message id
+      // So in the case of multiple bridges having routed the message this can be used in a multi-hop
+      // distributed request/response
+      if (JMSBridgeImpl.trace)
+      {
+         JMSBridgeImpl.log.trace("Adding old message id in Message header");
+      }
+
+      JMSBridgeImpl.copyProperties(msg);
+
+      String val = null;
+
+      val = msg.getStringProperty(HornetQMessageConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST);
+
+      if (val == null)
+      {
+         val = msg.getJMSMessageID();
+      }
+      else
+      {
+         StringBuffer sb = new StringBuffer(val);
+
+         sb.append(",").append(msg.getJMSMessageID());
+
+         val = sb.toString();
+      }
+
+      msg.setStringProperty(HornetQMessageConstants.JBOSS_MESSAGING_BRIDGE_MESSAGE_ID_LIST, val);
+   }
+
+   /*
+    * JMS does not let you add a property on received message without first
+    * calling clearProperties, so we need to save and re-add all the old properties so we
+    * don't lose them!!
+    */
+   private static void copyProperties(final Message msg) throws JMSException
+   {
+      Enumeration en = msg.getPropertyNames();
+
+      Map<String, Object> oldProps = null;
+
+      while (en.hasMoreElements())
+      {
+         String propName = (String)en.nextElement();
+
+         if (oldProps == null)
+         {
+            oldProps = new HashMap<String, Object>();
+         }
+
+         oldProps.put(propName, msg.getObjectProperty(propName));
+      }
+
+      msg.clearProperties();
+
+      if (oldProps != null)
+      {
+         Iterator oldPropsIter = oldProps.entrySet().iterator();
+
+         while (oldPropsIter.hasNext())
+         {
+            Map.Entry entry = (Map.Entry)oldPropsIter.next();
+
+            String propName = (String)entry.getKey();
+
+            msg.setObjectProperty(propName, entry.getValue());
+         }
+      }
+   }
+
+   // Inner classes ---------------------------------------------------------------
+
+   /**
+    * We use a Thread which polls the sourceDestination instead of a MessageListener
+    * to ensure that message delivery does not happen concurrently with
+    * transaction enlistment of the XAResource (see HORNETQ-27)
+    *
+    */
+   private final class SourceReceiver extends Thread
+   {
+      SourceReceiver()
+      {
+         super("jmsbridge-source-receiver-thread");
+      }
+
+      @Override
+      public void run()
+      {
+         while (started)
+         {
+            synchronized (lock)
+            {
+               if (paused || failed)
+               {
+                  try
+                  {
+                     lock.wait(500);
+                  }
+                  catch (InterruptedException e)
+                  {
+                     if (JMSBridgeImpl.trace)
+                     {
+                        JMSBridgeImpl.log.trace(this + " thread was interrupted");
+                     }
+                  }
+                  continue;
+               }
+
+               Message msg = null;
+               try
+               {
+                  msg = sourceConsumer.receive(1000);
+               }
+               catch (JMSException jmse)
+               {
+                  if (JMSBridgeImpl.trace)
+                  {
+                     JMSBridgeImpl.log.trace(this + " exception while receiving a message", jmse);
+                  }
+               }
+
+               if (msg == null)
+               {
+                  try
+                  {
+                     lock.wait(500);
+                  }
+                  catch (InterruptedException e)
+                  {
+                     if (JMSBridgeImpl.trace)
+                     {
+                        JMSBridgeImpl.log.trace(this + " thread was interrupted");
+                     }
+                  }
+                  continue;
+               }
+
+               if (JMSBridgeImpl.trace)
+               {
+                  JMSBridgeImpl.log.trace(this + " received message " + msg);
+               }
+
+               messages.add(msg);
+
+               batchExpiryTime = System.currentTimeMillis() + maxBatchTime;
+
+               if (JMSBridgeImpl.trace)
+               {
+                  JMSBridgeImpl.log.trace(this + " rescheduled batchExpiryTime to " + batchExpiryTime);
+               }
+
+               if (maxBatchSize != -1 && messages.size() >= maxBatchSize)
+               {
+                  if (JMSBridgeImpl.trace)
+                  {
+                     JMSBridgeImpl.log.trace(this + " maxBatchSize has been reached so sending batch");
+                  }
+
+                  sendBatch();
+
+                  if (JMSBridgeImpl.trace)
+                  {
+                     JMSBridgeImpl.log.trace(this + " sent batch");
+                  }
+               }
+            }
+         }
+      }
+   }
+
+   private class FailureHandler implements Runnable
+   {
+      /**
+       * Start the source connection - note the source connection must not be started before
+       * otherwise messages will be received and ignored
+       */
+      protected void startSourceConnection()
+      {
+         try
+         {
+            sourceConn.start();
+         }
+         catch (JMSException e)
+         {
+            JMSBridgeImpl.log.error("Failed to start source connection", e);
+         }
+      }
+
+      protected void succeeded()
+      {
+         JMSBridgeImpl.log.info("Succeeded in reconnecting to servers");
+
+         synchronized (lock)
+         {
+            failed = false;
+
+            startSourceConnection();
+         }
+      }
+
+      protected void failed()
+      {
+         // We haven't managed to recreate connections or maxRetries = 0
+         JMSBridgeImpl.log.warn("Unable to set up connections, bridge will be stopped");
+
+         try
+         {
+            stop();
+         }
+         catch (Exception ignore)
+         {
+         }
+      }
+
+      public void run()
+      {
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace("Failure handler running");
+         }
+
+         // Clear the messages
+         messages.clear();
+
+         cleanup();
+
+         boolean ok = false;
+
+         if (maxRetries > 0 || maxRetries == -1)
+         {
+            JMSBridgeImpl.log.warn("Will retry after a pause of " + failureRetryInterval + " ms");
+
+            pause(failureRetryInterval);
+
+            // Now we try
+            ok = setupJMSObjectsWithRetry();
+         }
+
+         if (!ok)
+         {
+            failed();
+         }
+         else
+         {
+            succeeded();
+         }
+      }
+   }
+
+   private class StartupFailureHandler extends FailureHandler
+   {
+      protected void failed()
+      {
+         // Don't call super
+         JMSBridgeImpl.log.warn("Unable to set up connections, bridge will not be started");
+      }
+
+      protected void succeeded()
+      {
+         // Don't call super - a bit ugly in this case but better than taking the lock twice.
+         JMSBridgeImpl.log.info("Succeeded in connecting to servers");
+
+         synchronized (lock)
+         {
+            failed = false;
+            started = true;
+
+            // Start the source connection - note the source connection must not be started before
+            // otherwise messages will be received and ignored
+
+            try
+            {
+               sourceConn.start();
+            }
+            catch (JMSException e)
+            {
+               JMSBridgeImpl.log.error("Failed to start source connection", e);
+            }
+         }
+      }
+   }
+
+   private class BatchTimeChecker implements Runnable
+   {
+      public void run()
+      {
+         if (JMSBridgeImpl.trace)
+         {
+            JMSBridgeImpl.log.trace(this + " running");
+         }
+
+         synchronized (lock)
+         {
+            while (started)
+            {
+               long toWait = batchExpiryTime - System.currentTimeMillis();
+
+               if (toWait <= 0)
+               {
+                  if (JMSBridgeImpl.trace)
+                  {
+                     JMSBridgeImpl.log.trace(this + " waited enough");
+                  }
+
+                  synchronized (lock)
+                  {
+                     if (!failed && !messages.isEmpty())
+                     {
+                        if (JMSBridgeImpl.trace)
+                        {
+                           JMSBridgeImpl.log.trace(this + " got some messages so sending batch");
+                        }
+
+                        sendBatch();
+
+                        if (JMSBridgeImpl.trace)
+                        {
+                           JMSBridgeImpl.log.trace(this + " sent batch");
+                        }
+                     }
+                  }
+
+                  batchExpiryTime = System.currentTimeMillis() + maxBatchTime;
+               }
+               else
+               {
+                  try
+                  {
+                     if (JMSBridgeImpl.trace)
+                     {
+                        JMSBridgeImpl.log.trace(this + " waiting for " + toWait);
+                     }
+
+                     lock.wait(toWait);
+
+                     if (JMSBridgeImpl.trace)
+                     {
+                        JMSBridgeImpl.log.trace(this + " woke up");
+                     }
+                  }
+                  catch (InterruptedException e)
+                  {
+                     // Ignore
+                     if (JMSBridgeImpl.trace)
+                     {
+                        JMSBridgeImpl.log.trace(this + " thread was interrupted");
+                     }
+                  }
+
+               }
+            }
+         }
+      }
+   }
+
+   private class BridgeExceptionListener implements ExceptionListener
+   {
+      public void onException(final JMSException e)
+      {
+         JMSBridgeImpl.log.warn("Detected failure on bridge connection");
+
+         synchronized (lock)
+         {
+            if (failed)
+            {
+               // The failure has already been detected and is being handled
+               if (JMSBridgeImpl.trace)
+               {
+                  JMSBridgeImpl.log.trace("Failure recovery already in progress");
+               }
+            }
+            else
+            {
+               handleFailure(new FailureHandler());
+            }
+         }
+      }
+   }
+}

Copied: trunk/src/main/org/hornetq/jms/bridge/impl/JNDIConnectionFactoryFactory.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/bridge/JNDIConnectionFactoryFactory.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/impl/JNDIConnectionFactoryFactory.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/bridge/impl/JNDIConnectionFactoryFactory.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.bridge.impl;
+
+import java.util.Hashtable;
+
+import javax.jms.ConnectionFactory;
+
+import org.hornetq.jms.bridge.ConnectionFactoryFactory;
+
+
+/**
+ * A JNDIConnectionFactoryFactory
+ *
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>$Revision:4566 $</tt>
+ *
+ * $Id:JNDIConnectionFactoryFactory.java 4566 2008-06-24 08:01:35Z jmesnil $
+ *
+ */
+public class JNDIConnectionFactoryFactory extends JNDIFactorySupport implements ConnectionFactoryFactory
+{
+   public JNDIConnectionFactoryFactory(final Hashtable jndiProperties, final String lookup)
+   {
+      super(jndiProperties, lookup);
+   }
+
+   public ConnectionFactory createConnectionFactory() throws Exception
+   {
+      return (ConnectionFactory)createObject();
+   }
+
+}

Copied: trunk/src/main/org/hornetq/jms/bridge/impl/JNDIDestinationFactory.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/bridge/JNDIDestinationFactory.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/impl/JNDIDestinationFactory.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/bridge/impl/JNDIDestinationFactory.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,42 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.bridge.impl;
+
+import java.util.Hashtable;
+
+import javax.jms.Destination;
+
+import org.hornetq.jms.bridge.DestinationFactory;
+
+
+/**
+ * 
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>$Revision: $</tt>10 Oct 2007
+ *
+ * $Id: $
+ *
+ */
+public class JNDIDestinationFactory extends JNDIFactorySupport implements DestinationFactory
+{
+   public JNDIDestinationFactory(final Hashtable jndiProperties, final String lookup)
+   {
+      super(jndiProperties, lookup);
+   }
+
+   public Destination createDestination() throws Exception
+   {
+      return (Destination)createObject();
+   }
+}

Copied: trunk/src/main/org/hornetq/jms/bridge/impl/JNDIFactorySupport.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/bridge/JNDIFactorySupport.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/bridge/impl/JNDIFactorySupport.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/bridge/impl/JNDIFactorySupport.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.bridge.impl;
+
+import java.util.Hashtable;
+
+import javax.naming.InitialContext;
+
+/**
+ * 
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ * @version <tt>$Revision: $</tt>10 Oct 2007
+ *
+ * $Id: $
+ *
+ */
+public abstract class JNDIFactorySupport
+{
+   protected Hashtable jndiProperties;
+
+   protected String lookup;
+
+   protected JNDIFactorySupport(final Hashtable jndiProperties, final String lookup)
+   {
+      this.jndiProperties = jndiProperties;
+
+      this.lookup = lookup;
+   }
+
+   protected Object createObject() throws Exception
+   {
+      InitialContext ic = null;
+
+      Object obj = null;
+
+      try
+      {
+         if (jndiProperties == null)
+         {
+            ic = new InitialContext();
+         }
+         else
+         {
+            ic = new InitialContext(jndiProperties);
+         }
+
+         obj = ic.lookup(lookup);
+      }
+      finally
+      {
+         if (ic != null)
+         {
+            ic.close();
+         }
+      }
+      return obj;
+   }
+}

Modified: trunk/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/jms/management/impl/JMSServerControlImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -30,13 +30,13 @@
 
 import org.hornetq.api.Pair;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.management.client.ManagementHelper;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.jms.management.ConnectionFactoryControl;
 import org.hornetq.api.jms.management.JMSQueueControl;
 import org.hornetq.api.jms.management.JMSServerControl;
 import org.hornetq.api.jms.management.TopicControl;
-import org.hornetq.api.jms.server.JMSServerManager;
 import org.hornetq.core.management.impl.MBeanInfoHelper;
+import org.hornetq.jms.server.JMSServerManager;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>

Copied: trunk/src/main/org/hornetq/jms/server/JMSServerManager.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/server/JMSServerManager.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/server/JMSServerManager.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/server/JMSServerManager.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,230 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.server;
+
+import java.util.List;
+
+import javax.naming.Context;
+
+import org.hornetq.api.Pair;
+import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.core.server.HornetQComponent;
+import org.hornetq.core.server.HornetQServer;
+
+/**
+ * The JMS Management interface.
+ * 
+ * @author <a href="ataylor at redhat.com">Andy Taylor</a>
+ * @author <a href="jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>
+ */
+public interface JMSServerManager extends HornetQComponent
+{
+   String getVersion();
+
+   /**
+    * Has the Server been started.
+    * 
+    * @return true if the server us running
+    */
+   boolean isStarted();
+
+   /**
+    * Creates a JMS Queue.
+    * 
+    * @param queueName
+    *           The name of the queue to create
+    * @param jndiBinding
+    *           the name of the binding for JNDI
+    * @param selectorString
+    * @param durable
+    * @return true if the queue is created or if it existed and was added to
+    *         JNDI
+    * @throws Exception
+    *            if problems were encountered creating the queue.
+    */
+   boolean createQueue(String queueName, String jndiBinding, String selectorString, boolean durable) throws Exception;
+
+   /**
+    * Creates a JMS Topic
+    * 
+    * @param topicName
+    *           the name of the topic
+    * @param jndiBinding
+    *           the name of the binding for JNDI
+    * @return true if the topic was created or if it existed and was added to
+    *         JNDI
+    * @throws Exception
+    *            if a problem occurred creating the topic
+    */
+   boolean createTopic(String topicName, String jndiBinding) throws Exception;
+
+   /**
+    * Remove the destination from JNDI.
+    * Calling this method does <em>not</em> destroy the destination.
+    * 
+    * @param name
+    *           the name of the destination to remove from JNDI
+    * @return true if removed
+    * @throws Exception
+    *            if a problem occurred removing the destination
+    */
+   boolean undeployDestination(String name) throws Exception;
+
+   /**
+    * destroys a queue and removes it from JNDI
+    * 
+    * @param name
+    *           the name of the queue to destroy
+    * @return true if destroyed
+    * @throws Exception
+    *            if a problem occurred destroying the queue
+    */
+   boolean destroyQueue(String name) throws Exception;
+
+   /**
+    * destroys a topic and removes it from JNDI
+    * 
+    * @param name
+    *           the name of the topic to destroy
+    * @return true if the topic was destroyed
+    * @throws Exception
+    *            if a problem occurred destroying the topic
+    */
+   boolean destroyTopic(String name) throws Exception;
+
+   void createConnectionFactory(String name, String discoveryAddress, int discoveryPort, List<String> jndiBindings) throws Exception;
+
+   void createConnectionFactory(String name,
+                                List<Pair<TransportConfiguration, TransportConfiguration>> connectorConfigs,
+                                List<String> jndiBindings) throws Exception;
+
+   void createConnectionFactory(String name,
+                                TransportConfiguration liveTC,
+                                TransportConfiguration backupTC,
+                                List<String> jndiBindings) throws Exception;
+
+   void createConnectionFactory(String name, TransportConfiguration liveTC, List<String> jndiBindings) throws Exception;
+
+   void createConnectionFactory(String name,
+                                String discoveryAddress,
+                                int discoveryPort,
+                                String clientID,
+                                List<String> jndiBindings) throws Exception;
+
+   void createConnectionFactory(String name,
+                                List<Pair<TransportConfiguration, TransportConfiguration>> connectorConfigs,
+                                String clientID,
+                                List<String> jndiBindings) throws Exception;
+
+   void createConnectionFactory(String name,
+                                TransportConfiguration liveTC,
+                                TransportConfiguration backupTC,
+                                String clientID,
+                                List<String> jndiBindings) throws Exception;
+
+   void createConnectionFactory(String name, TransportConfiguration liveTC, String clientID, List<String> jndiBindings) throws Exception;
+
+   void createConnectionFactory(String name,
+                                List<Pair<TransportConfiguration, TransportConfiguration>> connectorConfigs,
+                                String clientID,
+                                long clientFailureCheckPeriod,
+                                long connectionTTL,
+                                long callTimeout,
+                                boolean cacheLargeMessagesClient,
+                                int minLargeMessageSize,
+                                int consumerWindowSize,
+                                int consumerMaxRate,
+                                int confirmationWindowSize,
+                                int producerWindowSize,
+                                int producerMaxRate,
+                                boolean blockOnAcknowledge,
+                                boolean blockOnDurableSend,
+                                boolean blockOnNonDurableSend,
+                                boolean autoGroup,
+                                boolean preAcknowledge,
+                                String loadBalancingPolicyClassName,
+                                int transactionBatchSize,
+                                int dupsOKBatchSize,
+                                boolean useGlobalPools,
+                                int scheduledThreadPoolMaxSize,
+                                int threadPoolMaxSize,
+                                long retryInterval,
+                                double retryIntervalMultiplier,
+                                long maxRetryInterval,
+                                int reconnectAttempts,
+                                boolean failoverOnServerShutdown,
+                                String groupId,
+                                List<String> jndiBindings) throws Exception;
+
+   void createConnectionFactory(String name,
+                                String discoveryAddress,
+                                int discoveryPort,
+                                String clientID,
+                                long discoveryRefreshTimeout,
+                                long clientFailureCheckPeriod,
+                                long connectionTTL,
+                                long callTimeout,
+                                boolean cacheLargeMessagesClient,
+                                int minLargeMessageSize,
+                                int consumerWindowSize,
+                                int consumerMaxRate,
+                                int confirmationWindowSize,
+                                int producerWindowSize,
+                                int producerMaxRate,
+                                boolean blockOnAcknowledge,
+                                boolean blockOnDurableSend,
+                                boolean blockOnNonDurableSend,
+                                boolean autoGroup,
+                                boolean preAcknowledge,
+                                String loadBalancingPolicyClassName,
+                                int transactionBatchSize,
+                                int dupsOKBatchSize,
+                                long initialWaitTimeout,
+                                boolean useGlobalPools,
+                                int scheduledThreadPoolMaxSize,
+                                int threadPoolMaxSize,
+                                long retryInterval,
+                                double retryIntervalMultiplier,
+                                long maxRetryInterval,
+                                int reconnectAttempts,
+                                boolean failoverOnServerShutdown,
+                                String groupId,
+                                List<String> jndiBindings) throws Exception;
+
+   /**
+    * destroys a connection factory.
+    * 
+    * @param name
+    *           the name of the connection factory to destroy
+    * @return true if the connection factory was destroyed
+    * @throws Exception
+    *            if a problem occurred destroying the connection factory
+    */
+   boolean destroyConnectionFactory(String name) throws Exception;
+
+   String[] listRemoteAddresses() throws Exception;
+
+   String[] listRemoteAddresses(String ipAddress) throws Exception;
+
+   boolean closeConnectionsForAddress(String ipAddress) throws Exception;
+
+   String[] listConnectionIDs() throws Exception;
+
+   String[] listSessions(String connectionID) throws Exception;
+
+   void setContext(final Context context);
+
+   HornetQServer getHornetQServer();
+}

Copied: trunk/src/main/org/hornetq/jms/server/config/ConnectionFactoryConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/config/ConnectionFactoryConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/server/config/ConnectionFactoryConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/server/config/ConnectionFactoryConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,165 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.server.config;
+
+import java.util.List;
+
+import org.hornetq.api.Pair;
+import org.hornetq.api.core.config.TransportConfiguration;
+
+/**
+ * A ConnectionFactoryConfiguration
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ *
+ */
+public interface ConnectionFactoryConfiguration
+{
+   String getName();
+
+   String[] getBindings();
+
+   String getDiscoveryAddress();
+
+   void setDiscoveryAddress(String discoveryAddress);
+
+   int getDiscoveryPort();
+
+   void setDiscoveryPort(int discoveryPort);
+
+   List<Pair<TransportConfiguration, TransportConfiguration>> getConnectorConfigs();
+
+   void setConnectorConfigs(List<Pair<TransportConfiguration, TransportConfiguration>> connectorConfigs);
+
+   String getClientID();
+
+   void setClientID(String clientID);
+
+   long getDiscoveryRefreshTimeout();
+
+   void setDiscoveryRefreshTimeout(long discoveryRefreshTimeout);
+
+   long getClientFailureCheckPeriod();
+
+   void setClientFailureCheckPeriod(long clientFailureCheckPeriod);
+
+   long getConnectionTTL();
+
+   void setConnectionTTL(long connectionTTL);
+
+   long getCallTimeout();
+
+   void setCallTimeout(long callTimeout);
+
+   boolean isCacheLargeMessagesClient();
+
+   void setCacheLargeMessagesClient(boolean cacheLargeMessagesClient);
+
+   int getMinLargeMessageSize();
+
+   void setMinLargeMessageSize(int minLargeMessageSize);
+
+   int getConsumerWindowSize();
+
+   void setConsumerWindowSize(int consumerWindowSize);
+
+   int getConsumerMaxRate();
+
+   void setConsumerMaxRate(int consumerMaxRate);
+
+   int getConfirmationWindowSize();
+
+   void setConfirmationWindowSize(int confirmationWindowSize);
+
+   int getProducerWindowSize();
+
+   void setProducerWindowSize(int producerWindowSize);
+
+   int getProducerMaxRate();
+
+   void setProducerMaxRate(int producerMaxRate);
+
+   boolean isBlockOnAcknowledge();
+
+   void setBlockOnAcknowledge(boolean blockOnAcknowledge);
+
+   boolean isBlockOnDurableSend();
+
+   void setBlockOnDurableSend(boolean blockOnDurableSend);
+
+   boolean isBlockOnNonDurableSend();
+
+   void setBlockOnNonDurableSend(boolean blockOnNonDurableSend);
+
+   boolean isAutoGroup();
+
+   void setAutoGroup(boolean autoGroup);
+
+   boolean isPreAcknowledge();
+
+   void setPreAcknowledge(boolean preAcknowledge);
+
+   String getLoadBalancingPolicyClassName();
+
+   void setLoadBalancingPolicyClassName(String loadBalancingPolicyClassName);
+
+   int getTransactionBatchSize();
+
+   void setTransactionBatchSize(int transactionBatchSize);
+
+   int getDupsOKBatchSize();
+
+   void setDupsOKBatchSize(int dupsOKBatchSize);
+
+   long getInitialWaitTimeout();
+
+   void setInitialWaitTimeout(long initialWaitTimeout);
+
+   boolean isUseGlobalPools();
+
+   void setUseGlobalPools(boolean useGlobalPools);
+
+   int getScheduledThreadPoolMaxSize();
+
+   void setScheduledThreadPoolMaxSize(int scheduledThreadPoolMaxSize);
+
+   int getThreadPoolMaxSize();
+
+   void setThreadPoolMaxSize(int threadPoolMaxSize);
+
+   long getRetryInterval();
+
+   void setRetryInterval(long retryInterval);
+
+   double getRetryIntervalMultiplier();
+
+   void setRetryIntervalMultiplier(double retryIntervalMultiplier);
+
+   long getMaxRetryInterval();
+
+   void setMaxRetryInterval(long maxRetryInterval);
+
+   int getReconnectAttempts();
+
+   void setReconnectAttempts(int reconnectAttempts);
+
+   boolean isFailoverOnServerShutdown();
+
+   void setFailoverOnServerShutdown(boolean failoverOnServerShutdown);
+
+   String getGroupID();
+
+   void setGroupID(String groupID);
+}

Copied: trunk/src/main/org/hornetq/jms/server/config/JMSConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/config/JMSConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/server/config/JMSConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/server/config/JMSConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,38 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.server.config;
+
+import java.util.List;
+
+import javax.naming.Context;
+
+/**
+ * A JMSConfiguration
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ *
+ */
+public interface JMSConfiguration
+{
+   void setContext(Context context);
+
+   Context getContext();
+
+   List<QueueConfiguration> getQueueConfigurations();
+
+   List<TopicConfiguration> getTopicConfigurations();
+
+   List<ConnectionFactoryConfiguration> getConnectionFactoryConfigurations();
+}

Copied: trunk/src/main/org/hornetq/jms/server/config/QueueConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/config/QueueConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/server/config/QueueConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/server/config/QueueConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,32 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.server.config;
+
+/**
+ * A QeueConfiguration
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ *
+ */
+public interface QueueConfiguration
+{
+   String getName();
+
+   String getSelector();
+
+   boolean isDurable();
+
+   String[] getBindings();
+}

Copied: trunk/src/main/org/hornetq/jms/server/config/TopicConfiguration.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/config/TopicConfiguration.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/server/config/TopicConfiguration.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/server/config/TopicConfiguration.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,26 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.server.config;
+
+/**
+ * A TopicConfiguration
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ */
+public interface TopicConfiguration
+{
+   String getName();
+
+   String[] getBindings();
+}

Copied: trunk/src/main/org/hornetq/jms/server/config/impl/ConnectionFactoryConfigurationImpl.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/config/ConnectionFactoryConfigurationImpl.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/server/config/impl/ConnectionFactoryConfigurationImpl.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/server/config/impl/ConnectionFactoryConfigurationImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,507 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.server.config.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hornetq.api.Pair;
+import org.hornetq.api.core.client.ClientSessionFactoryImpl;
+import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.jms.server.config.ConnectionFactoryConfiguration;
+
+/**
+ * A ConnectionFactoryConfigurationImpl
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ *
+ */
+public class ConnectionFactoryConfigurationImpl implements ConnectionFactoryConfiguration
+{
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   private final String[] bindings;
+
+   private final String name;
+
+   private String discoveryAddress;
+
+   private int discoveryPort;
+
+   private List<Pair<TransportConfiguration, TransportConfiguration>> connectorConfigs;
+
+   private String clientID = null;
+
+   private long discoveryRefreshTimeout = ClientSessionFactoryImpl.DEFAULT_DISCOVERY_REFRESH_TIMEOUT;
+
+   private long clientFailureCheckPeriod = ClientSessionFactoryImpl.DEFAULT_CLIENT_FAILURE_CHECK_PERIOD;
+
+   private long connectionTTL = ClientSessionFactoryImpl.DEFAULT_CONNECTION_TTL;
+
+   private long callTimeout = ClientSessionFactoryImpl.DEFAULT_CALL_TIMEOUT;
+
+   private boolean cacheLargeMessagesClient = ClientSessionFactoryImpl.DEFAULT_CACHE_LARGE_MESSAGE_CLIENT;
+
+   private int minLargeMessageSize = ClientSessionFactoryImpl.DEFAULT_MIN_LARGE_MESSAGE_SIZE;
+
+   private int consumerWindowSize = ClientSessionFactoryImpl.DEFAULT_CONSUMER_WINDOW_SIZE;
+
+   private int consumerMaxRate = ClientSessionFactoryImpl.DEFAULT_CONSUMER_MAX_RATE;
+
+   private int confirmationWindowSize = ClientSessionFactoryImpl.DEFAULT_CONFIRMATION_WINDOW_SIZE;
+
+   private int producerWindowSize = ClientSessionFactoryImpl.DEFAULT_PRODUCER_WINDOW_SIZE;
+
+   private int producerMaxRate = ClientSessionFactoryImpl.DEFAULT_PRODUCER_MAX_RATE;
+
+   private boolean blockOnAcknowledge = ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_ACKNOWLEDGE;
+
+   private boolean blockOnDurableSend = ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_DURABLE_SEND;
+
+   private boolean blockOnNonDurableSend = ClientSessionFactoryImpl.DEFAULT_BLOCK_ON_NON_DURABLE_SEND;
+
+   private boolean autoGroup = ClientSessionFactoryImpl.DEFAULT_AUTO_GROUP;
+
+   private boolean preAcknowledge = ClientSessionFactoryImpl.DEFAULT_PRE_ACKNOWLEDGE;
+
+   private String loadBalancingPolicyClassName = ClientSessionFactoryImpl.DEFAULT_CONNECTION_LOAD_BALANCING_POLICY_CLASS_NAME;
+
+   private int transactionBatchSize = ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE;
+
+   private int dupsOKBatchSize = ClientSessionFactoryImpl.DEFAULT_ACK_BATCH_SIZE;
+
+   private long initialWaitTimeout = ClientSessionFactoryImpl.DEFAULT_DISCOVERY_INITIAL_WAIT_TIMEOUT;
+
+   private boolean useGlobalPools = ClientSessionFactoryImpl.DEFAULT_USE_GLOBAL_POOLS;
+
+   private int scheduledThreadPoolMaxSize = ClientSessionFactoryImpl.DEFAULT_SCHEDULED_THREAD_POOL_MAX_SIZE;
+
+   private int threadPoolMaxSize = ClientSessionFactoryImpl.DEFAULT_THREAD_POOL_MAX_SIZE;
+
+   private long retryInterval = ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL;
+
+   private double retryIntervalMultiplier = ClientSessionFactoryImpl.DEFAULT_RETRY_INTERVAL_MULTIPLIER;
+
+   private long maxRetryInterval = ClientSessionFactoryImpl.DEFAULT_MAX_RETRY_INTERVAL;
+
+   private int reconnectAttempts = ClientSessionFactoryImpl.DEFAULT_RECONNECT_ATTEMPTS;
+
+   private boolean failoverOnServerShutdown = ClientSessionFactoryImpl.DEFAULT_FAILOVER_ON_SERVER_SHUTDOWN;
+
+   private String groupID = null;
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   public ConnectionFactoryConfigurationImpl(final String name,
+                                             final String discoveryAddress,
+                                             final int discoveryPort,
+                                             final String... bindings)
+   {
+      this(name, bindings);
+      this.discoveryAddress = discoveryAddress;
+      this.discoveryPort = discoveryPort;
+   }
+
+   public ConnectionFactoryConfigurationImpl(final String name,
+                                             final TransportConfiguration liveConfig,
+                                             final String... bindings)
+   {
+      this(name, liveConfig, null, bindings);
+   }
+
+   public ConnectionFactoryConfigurationImpl(final String name,
+                                             final TransportConfiguration liveConfig,
+                                             final TransportConfiguration backupConfig,
+                                             final String... bindings)
+   {
+      this(name, bindings);
+      connectorConfigs = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
+      connectorConfigs.add(new Pair<TransportConfiguration, TransportConfiguration>(liveConfig, backupConfig));
+   }
+
+   public ConnectionFactoryConfigurationImpl(final String name,
+                                             final List<Pair<TransportConfiguration, TransportConfiguration>> transportConfigs,
+                                             final TransportConfiguration backupConfig,
+                                             final String... bindings)
+   {
+      this(name, bindings);
+      connectorConfigs = new ArrayList<Pair<TransportConfiguration, TransportConfiguration>>();
+      connectorConfigs.addAll(transportConfigs);
+   }
+
+   private ConnectionFactoryConfigurationImpl(final String name, final String... bindings)
+   {
+      this.name = name;
+      this.bindings = new String[bindings.length];
+      System.arraycopy(bindings, 0, this.bindings, 0, bindings.length);
+   }
+
+   // ConnectionFactoryConfiguration implementation -----------------
+
+   public String[] getBindings()
+   {
+      return bindings;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public String getDiscoveryAddress()
+   {
+      return discoveryAddress;
+   }
+
+   public void setDiscoveryAddress(final String discoveryAddress)
+   {
+      this.discoveryAddress = discoveryAddress;
+   }
+
+   public int getDiscoveryPort()
+   {
+      return discoveryPort;
+   }
+
+   public void setDiscoveryPort(final int discoveryPort)
+   {
+      this.discoveryPort = discoveryPort;
+   }
+
+   public List<Pair<TransportConfiguration, TransportConfiguration>> getConnectorConfigs()
+   {
+      return connectorConfigs;
+   }
+
+   public void setConnectorConfigs(final List<Pair<TransportConfiguration, TransportConfiguration>> connectorConfigs)
+   {
+      this.connectorConfigs = connectorConfigs;
+   }
+
+   public String getClientID()
+   {
+      return clientID;
+   }
+
+   public void setClientID(final String clientID)
+   {
+      this.clientID = clientID;
+   }
+
+   public long getDiscoveryRefreshTimeout()
+   {
+      return discoveryRefreshTimeout;
+   }
+
+   public void setDiscoveryRefreshTimeout(final long discoveryRefreshTimeout)
+   {
+      this.discoveryRefreshTimeout = discoveryRefreshTimeout;
+   }
+
+   public long getClientFailureCheckPeriod()
+   {
+      return clientFailureCheckPeriod;
+   }
+
+   public void setClientFailureCheckPeriod(final long clientFailureCheckPeriod)
+   {
+      this.clientFailureCheckPeriod = clientFailureCheckPeriod;
+   }
+
+   public long getConnectionTTL()
+   {
+      return connectionTTL;
+   }
+
+   public void setConnectionTTL(final long connectionTTL)
+   {
+      this.connectionTTL = connectionTTL;
+   }
+
+   public long getCallTimeout()
+   {
+      return callTimeout;
+   }
+
+   public void setCallTimeout(final long callTimeout)
+   {
+      this.callTimeout = callTimeout;
+   }
+
+   public boolean isCacheLargeMessagesClient()
+   {
+      return cacheLargeMessagesClient;
+   }
+
+   public void setCacheLargeMessagesClient(final boolean cacheLargeMessagesClient)
+   {
+      this.cacheLargeMessagesClient = cacheLargeMessagesClient;
+   }
+
+   public int getMinLargeMessageSize()
+   {
+      return minLargeMessageSize;
+   }
+
+   public void setMinLargeMessageSize(final int minLargeMessageSize)
+   {
+      this.minLargeMessageSize = minLargeMessageSize;
+   }
+
+   public int getConsumerWindowSize()
+   {
+      return consumerWindowSize;
+   }
+
+   public void setConsumerWindowSize(final int consumerWindowSize)
+   {
+      this.consumerWindowSize = consumerWindowSize;
+   }
+
+   public int getConsumerMaxRate()
+   {
+      return consumerMaxRate;
+   }
+
+   public void setConsumerMaxRate(final int consumerMaxRate)
+   {
+      this.consumerMaxRate = consumerMaxRate;
+   }
+
+   public int getConfirmationWindowSize()
+   {
+      return confirmationWindowSize;
+   }
+
+   public void setConfirmationWindowSize(final int confirmationWindowSize)
+   {
+      this.confirmationWindowSize = confirmationWindowSize;
+   }
+
+   public int getProducerMaxRate()
+   {
+      return producerMaxRate;
+   }
+
+   public void setProducerMaxRate(final int producerMaxRate)
+   {
+      this.producerMaxRate = producerMaxRate;
+   }
+
+   public int getProducerWindowSize()
+   {
+      return producerWindowSize;
+   }
+
+   public void setProducerWindowSize(final int producerWindowSize)
+   {
+      this.producerWindowSize = producerWindowSize;
+   }
+
+   public boolean isBlockOnAcknowledge()
+   {
+      return blockOnAcknowledge;
+   }
+
+   public void setBlockOnAcknowledge(final boolean blockOnAcknowledge)
+   {
+      this.blockOnAcknowledge = blockOnAcknowledge;
+   }
+
+   public boolean isBlockOnDurableSend()
+   {
+      return blockOnDurableSend;
+   }
+
+   public void setBlockOnDurableSend(final boolean blockOnDurableSend)
+   {
+      this.blockOnDurableSend = blockOnDurableSend;
+   }
+
+   public boolean isBlockOnNonDurableSend()
+   {
+      return blockOnNonDurableSend;
+   }
+
+   public void setBlockOnNonDurableSend(final boolean blockOnNonDurableSend)
+   {
+      this.blockOnNonDurableSend = blockOnNonDurableSend;
+   }
+
+   public boolean isAutoGroup()
+   {
+      return autoGroup;
+   }
+
+   public void setAutoGroup(final boolean autoGroup)
+   {
+      this.autoGroup = autoGroup;
+   }
+
+   public boolean isPreAcknowledge()
+   {
+      return preAcknowledge;
+   }
+
+   public void setPreAcknowledge(final boolean preAcknowledge)
+   {
+      this.preAcknowledge = preAcknowledge;
+   }
+
+   public String getLoadBalancingPolicyClassName()
+   {
+      return loadBalancingPolicyClassName;
+   }
+
+   public void setLoadBalancingPolicyClassName(final String loadBalancingPolicyClassName)
+   {
+      this.loadBalancingPolicyClassName = loadBalancingPolicyClassName;
+   }
+
+   public int getTransactionBatchSize()
+   {
+      return transactionBatchSize;
+   }
+
+   public void setTransactionBatchSize(final int transactionBatchSize)
+   {
+      this.transactionBatchSize = transactionBatchSize;
+   }
+
+   public int getDupsOKBatchSize()
+   {
+      return dupsOKBatchSize;
+   }
+
+   public void setDupsOKBatchSize(final int dupsOKBatchSize)
+   {
+      this.dupsOKBatchSize = dupsOKBatchSize;
+   }
+
+   public long getInitialWaitTimeout()
+   {
+      return initialWaitTimeout;
+   }
+
+   public void setInitialWaitTimeout(final long initialWaitTimeout)
+   {
+      this.initialWaitTimeout = initialWaitTimeout;
+   }
+
+   public boolean isUseGlobalPools()
+   {
+      return useGlobalPools;
+   }
+
+   public void setUseGlobalPools(final boolean useGlobalPools)
+   {
+      this.useGlobalPools = useGlobalPools;
+   }
+
+   public int getScheduledThreadPoolMaxSize()
+   {
+      return scheduledThreadPoolMaxSize;
+   }
+
+   public void setScheduledThreadPoolMaxSize(final int scheduledThreadPoolMaxSize)
+   {
+      this.scheduledThreadPoolMaxSize = scheduledThreadPoolMaxSize;
+   }
+
+   public int getThreadPoolMaxSize()
+   {
+      return threadPoolMaxSize;
+   }
+
+   public void setThreadPoolMaxSize(final int threadPoolMaxSize)
+   {
+      this.threadPoolMaxSize = threadPoolMaxSize;
+   }
+
+   public long getRetryInterval()
+   {
+      return retryInterval;
+   }
+
+   public void setRetryInterval(final long retryInterval)
+   {
+      this.retryInterval = retryInterval;
+   }
+
+   public double getRetryIntervalMultiplier()
+   {
+      return retryIntervalMultiplier;
+   }
+
+   public void setRetryIntervalMultiplier(final double retryIntervalMultiplier)
+   {
+      this.retryIntervalMultiplier = retryIntervalMultiplier;
+   }
+
+   public long getMaxRetryInterval()
+   {
+      return maxRetryInterval;
+   }
+
+   public void setMaxRetryInterval(final long maxRetryInterval)
+   {
+      this.maxRetryInterval = maxRetryInterval;
+   }
+
+   public int getReconnectAttempts()
+   {
+      return reconnectAttempts;
+   }
+
+   public void setReconnectAttempts(final int reconnectAttempts)
+   {
+      this.reconnectAttempts = reconnectAttempts;
+   }
+
+   public boolean isFailoverOnServerShutdown()
+   {
+      return failoverOnServerShutdown;
+   }
+
+   public void setFailoverOnServerShutdown(final boolean failoverOnServerShutdown)
+   {
+      this.failoverOnServerShutdown = failoverOnServerShutdown;
+   }
+
+   public String getGroupID()
+   {
+      return groupID;
+   }
+
+   public void setGroupID(final String groupID)
+   {
+      this.groupID = groupID;
+   }
+
+   // Public --------------------------------------------------------
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
+}

Copied: trunk/src/main/org/hornetq/jms/server/config/impl/JMSConfigurationImpl.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/config/JMSConfigurationImpl.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/server/config/impl/JMSConfigurationImpl.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/server/config/impl/JMSConfigurationImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.server.config.impl;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.naming.Context;
+
+import org.hornetq.jms.server.config.ConnectionFactoryConfiguration;
+import org.hornetq.jms.server.config.JMSConfiguration;
+import org.hornetq.jms.server.config.QueueConfiguration;
+import org.hornetq.jms.server.config.TopicConfiguration;
+
+
+/**
+ * A JMSConfigurationImpl
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ *
+ */
+public class JMSConfigurationImpl implements JMSConfiguration
+{
+
+   private final List<ConnectionFactoryConfiguration> connectionFactoryConfigurations = new ArrayList<ConnectionFactoryConfiguration>();
+
+   private final List<QueueConfiguration> queueConfigurations = new ArrayList<QueueConfiguration>();
+
+   private final List<TopicConfiguration> topicConfigurations = new ArrayList<TopicConfiguration>();
+
+   private Context context = null;
+
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   public JMSConfigurationImpl()
+   {
+   }
+
+   public JMSConfigurationImpl(final List<ConnectionFactoryConfiguration> connectionFactoryConfigurations,
+                               final List<QueueConfiguration> queueConfigurations,
+                               final List<TopicConfiguration> topicConfigurations)
+   {
+      this.connectionFactoryConfigurations.addAll(connectionFactoryConfigurations);
+      this.queueConfigurations.addAll(queueConfigurations);
+      this.topicConfigurations.addAll(topicConfigurations);
+   }
+
+   // JMSConfiguration implementation -------------------------------
+
+   public List<ConnectionFactoryConfiguration> getConnectionFactoryConfigurations()
+   {
+      return connectionFactoryConfigurations;
+   }
+
+   public List<QueueConfiguration> getQueueConfigurations()
+   {
+      return queueConfigurations;
+   }
+
+   public List<TopicConfiguration> getTopicConfigurations()
+   {
+      return topicConfigurations;
+   }
+
+   public Context getContext()
+   {
+      return context;
+   }
+
+   public void setContext(final Context context)
+   {
+      this.context = context;
+   }
+
+   // Public --------------------------------------------------------
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
+}

Copied: trunk/src/main/org/hornetq/jms/server/config/impl/QueueConfigurationImpl.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/config/QueueConfigurationImpl.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/server/config/impl/QueueConfigurationImpl.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/server/config/impl/QueueConfigurationImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,89 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.server.config.impl;
+
+import org.hornetq.jms.server.config.QueueConfiguration;
+
+
+/**
+ * A QueueConfigurationImpl
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ *
+ */
+public class QueueConfigurationImpl implements QueueConfiguration
+{
+
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   private final String name;
+
+   private final String selector;
+
+   private final boolean durable;
+
+   private final String[] bindings;
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   public QueueConfigurationImpl(final String name,
+                                 final String selector,
+                                 final boolean durable,
+                                 final String... bindings)
+   {
+      this.name = name;
+      this.selector = selector;
+      this.durable = durable;
+      this.bindings = new String[bindings.length];
+      System.arraycopy(bindings, 0, this.bindings, 0, bindings.length);
+   }
+
+   // QueueConfiguration implementation -----------------------------
+
+   public String[] getBindings()
+   {
+      return bindings;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   public String getSelector()
+   {
+      return selector;
+   }
+
+   public boolean isDurable()
+   {
+      return durable;
+   }
+
+   // Public --------------------------------------------------------
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
+}

Copied: trunk/src/main/org/hornetq/jms/server/config/impl/TopicConfigurationImpl.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/config/TopicConfigurationImpl.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/server/config/impl/TopicConfigurationImpl.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/server/config/impl/TopicConfigurationImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,70 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.server.config.impl;
+
+import org.hornetq.jms.server.config.TopicConfiguration;
+
+
+/**
+ * A TopicConfigurationImpl
+ *
+ * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>
+ *
+ *
+ */
+public class TopicConfigurationImpl implements TopicConfiguration
+{
+
+   // Constants -----------------------------------------------------
+
+   // Attributes ----------------------------------------------------
+
+   private final String name;
+
+   private final String[] bindings;
+
+   // Static --------------------------------------------------------
+
+   // Constructors --------------------------------------------------
+
+   public TopicConfigurationImpl(final String name, final String... bindings)
+   {
+      this.name = name;
+      this.bindings = new String[bindings.length];
+      System.arraycopy(bindings, 0, this.bindings, 0, bindings.length);
+   }
+
+   // TopicConfiguration implementation -----------------------------
+
+   public String[] getBindings()
+   {
+      return bindings;
+   }
+
+   public String getName()
+   {
+      return name;
+   }
+
+   // Public --------------------------------------------------------
+
+   // Package protected ---------------------------------------------
+
+   // Protected -----------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   // Inner classes -------------------------------------------------
+
+}

Modified: trunk/src/main/org/hornetq/jms/server/impl/JMSServerDeployer.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/impl/JMSServerDeployer.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/jms/server/impl/JMSServerDeployer.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -18,14 +18,14 @@
 
 import org.hornetq.api.Pair;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
-import org.hornetq.api.jms.server.JMSServerManager;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.config.impl.Validators;
 import org.hornetq.core.deployers.DeploymentManager;
 import org.hornetq.core.deployers.impl.XmlDeployer;
 import org.hornetq.core.logging.Logger;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
+import org.hornetq.jms.server.JMSServerManager;
 import org.hornetq.utils.XMLConfigurationUtil;
 import org.w3c.dom.Element;
 import org.w3c.dom.NamedNodeMap;

Copied: trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java (from rev 8720, trunk/src/main/org/hornetq/api/jms/server/JMSServerManagerImpl.java)
===================================================================
--- trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java	                        (rev 0)
+++ trunk/src/main/org/hornetq/jms/server/impl/JMSServerManagerImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -0,0 +1,862 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+
+package org.hornetq.jms.server.impl;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+import javax.naming.Context;
+import javax.naming.InitialContext;
+import javax.naming.NameNotFoundException;
+import javax.naming.NamingException;
+
+import org.hornetq.api.Pair;
+import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.api.jms.HornetQConnectionFactory;
+import org.hornetq.api.jms.HornetQQueue;
+import org.hornetq.api.jms.HornetQTopic;
+import org.hornetq.core.deployers.DeploymentManager;
+import org.hornetq.core.deployers.impl.FileDeploymentManager;
+import org.hornetq.core.deployers.impl.XmlDeployer;
+import org.hornetq.core.logging.Logger;
+import org.hornetq.core.server.ActivateCallback;
+import org.hornetq.core.server.HornetQServer;
+import org.hornetq.jms.client.SelectorTranslator;
+import org.hornetq.jms.server.JMSServerManager;
+import org.hornetq.jms.server.config.ConnectionFactoryConfiguration;
+import org.hornetq.jms.server.config.JMSConfiguration;
+import org.hornetq.jms.server.config.QueueConfiguration;
+import org.hornetq.jms.server.config.TopicConfiguration;
+import org.hornetq.jms.server.management.JMSManagementService;
+import org.hornetq.jms.server.management.impl.JMSManagementServiceImpl;
+
+/**
+ * A Deployer used to create and add to JNDI queues, topics and connection
+ * factories. Typically this would only be used in an app server env.
+ * 
+ * JMS Connection Factories & Destinations can be configured either
+ * using configuration files or using a JMSConfiguration object.
+ * 
+ * If configuration files are used, JMS resources are redeployed if the
+ * files content is changed.
+ * If a JMSConfiguration object is used, the JMS resources can not be
+ * redeployed.
+ *
+ * @author <a href="ataylor at redhat.com">Andy Taylor</a>
+ * @author <a href="jmesnil at redhat.com">Jeff Mesnil</a>
+ * @author <a href="tim.fox at jboss.com">Tim Fox</a>
+ */
+public class JMSServerManagerImpl implements JMSServerManager, ActivateCallback
+{
+   private static final Logger log = Logger.getLogger(JMSServerManagerImpl.class);
+
+   private static final String REJECT_FILTER = "__HQX=-1";
+
+   /**
+    * the context to bind to
+    */
+   private Context context;
+
+   private final Map<String, List<String>> destinations = new HashMap<String, List<String>>();
+
+   private final Map<String, HornetQConnectionFactory> connectionFactories = new HashMap<String, HornetQConnectionFactory>();
+
+   private final Map<String, List<String>> connectionFactoryBindings = new HashMap<String, List<String>>();
+
+   private final HornetQServer server;
+
+   private JMSManagementService jmsManagementService;
+
+   private XmlDeployer jmsDeployer;
+
+   private boolean started;
+
+   private boolean active;
+
+   private DeploymentManager deploymentManager;
+
+   private final String configFileName;
+
+   private boolean contextSet;
+
+   private JMSConfiguration config;
+
+   public JMSServerManagerImpl(final HornetQServer server) throws Exception
+   {
+      this.server = server;
+
+      configFileName = null;
+   }
+
+   public JMSServerManagerImpl(final HornetQServer server, final String configFileName) throws Exception
+   {
+      this.server = server;
+
+      this.configFileName = configFileName;
+   }
+
+   public JMSServerManagerImpl(final HornetQServer server, final JMSConfiguration configuration) throws Exception
+   {
+      this.server = server;
+
+      configFileName = null;
+
+      config = configuration;
+   }
+
+   // ActivateCallback implementation -------------------------------------
+
+   public synchronized void activated()
+   {
+      active = true;
+
+      jmsManagementService = new JMSManagementServiceImpl(server.getManagementService());
+
+      try
+      {
+         jmsManagementService.registerJMSServer(this);
+
+         // start the JMS deployer only if the configuration is not done using the JMSConfiguration object
+         if (config == null)
+         {
+            jmsDeployer = new JMSServerDeployer(this, deploymentManager, server.getConfiguration());
+
+            if (configFileName != null)
+            {
+               jmsDeployer.setConfigFileNames(new String[] { configFileName });
+            }
+
+            jmsDeployer.start();
+
+            deploymentManager.start();
+         }
+         else
+         {
+            deploy();
+         }
+      }
+      catch (Exception e)
+      {
+         JMSServerManagerImpl.log.error("Failed to start jms deployer", e);
+      }
+   }
+
+   // HornetQComponent implementation -----------------------------------
+
+   public synchronized void start() throws Exception
+   {
+      if (started)
+      {
+         return;
+      }
+
+      if (!contextSet)
+      {
+         context = new InitialContext();
+      }
+
+      deploymentManager = new FileDeploymentManager(server.getConfiguration().getFileDeployerScanPeriod());
+
+      server.registerActivateCallback(this);
+
+      server.start();
+
+      started = true;
+   }
+
+   public synchronized void stop() throws Exception
+   {
+      if (!started)
+      {
+         return;
+      }
+
+      if (jmsDeployer != null)
+      {
+         jmsDeployer.stop();
+      }
+
+      if (deploymentManager != null)
+      {
+         deploymentManager.stop();
+      }
+
+      for (String destination : destinations.keySet())
+      {
+         undeployDestination(destination);
+      }
+
+      for (String connectionFactory : new HashSet<String>(connectionFactories.keySet()))
+      {
+         destroyConnectionFactory(connectionFactory);
+      }
+
+      destinations.clear();
+      connectionFactories.clear();
+      connectionFactoryBindings.clear();
+
+      if (context != null)
+      {
+         context.close();
+      }
+
+      jmsManagementService.unregisterJMSServer();
+
+      jmsManagementService.stop();
+
+      server.stop();
+
+      started = false;
+   }
+
+   public boolean isStarted()
+   {
+      return server.getHornetQServerControl().isStarted();
+   }
+
+   // JMSServerManager implementation -------------------------------
+
+   public HornetQServer getHornetQServer()
+   {
+      return server;
+   }
+
+   public synchronized void setContext(final Context context)
+   {
+      this.context = context;
+
+      contextSet = true;
+   }
+
+   public synchronized String getVersion()
+   {
+      checkInitialised();
+
+      return server.getHornetQServerControl().getVersion();
+   }
+
+   public synchronized boolean createQueue(final String queueName,
+                                           final String jndiBinding,
+                                           final String selectorString,
+                                           final boolean durable) throws Exception
+   {
+      checkInitialised();
+      HornetQQueue jBossQueue = new HornetQQueue(queueName);
+
+      // Convert from JMS selector to core filter
+      String coreFilterString = null;
+
+      if (selectorString != null)
+      {
+         coreFilterString = SelectorTranslator.convertToHornetQFilterString(selectorString);
+      }
+
+      server.getHornetQServerControl().deployQueue(jBossQueue.getAddress(),
+                                                   jBossQueue.getAddress(),
+                                                   coreFilterString,
+                                                   durable);
+
+      boolean added = bindToJndi(jndiBinding, jBossQueue);
+
+      if (added)
+      {
+         addToDestinationBindings(queueName, jndiBinding);
+      }
+
+      jmsManagementService.registerQueue(jBossQueue, jndiBinding);
+      return added;
+   }
+
+   public synchronized boolean createTopic(final String topicName, final String jndiBinding) throws Exception
+   {
+      checkInitialised();
+      HornetQTopic jBossTopic = new HornetQTopic(topicName);
+      // We create a dummy subscription on the topic, that never receives messages - this is so we can perform JMS
+      // checks when routing messages to a topic that
+      // does not exist - otherwise we would not be able to distinguish from a non existent topic and one with no
+      // subscriptions - core has no notion of a topic
+      server.getHornetQServerControl().deployQueue(jBossTopic.getAddress(),
+                                                   jBossTopic.getAddress(),
+                                                   JMSServerManagerImpl.REJECT_FILTER,
+                                                   true);
+      boolean added = bindToJndi(jndiBinding, jBossTopic);
+      if (added)
+      {
+         addToDestinationBindings(topicName, jndiBinding);
+      }
+      jmsManagementService.registerTopic(jBossTopic, jndiBinding);
+      return added;
+   }
+
+   public synchronized boolean undeployDestination(final String name) throws Exception
+   {
+      checkInitialised();
+      List<String> jndiBindings = destinations.get(name);
+      if (jndiBindings == null || jndiBindings.size() == 0)
+      {
+         return false;
+      }
+      if (context != null)
+      {
+         Iterator<String> iter = jndiBindings.iterator();
+         while (iter.hasNext())
+         {
+            String jndiBinding = iter.next();
+            context.unbind(jndiBinding);
+            iter.remove();
+         }
+      }
+      return true;
+   }
+
+   public synchronized boolean destroyQueue(final String name) throws Exception
+   {
+      checkInitialised();
+      undeployDestination(name);
+
+      destinations.remove(name);
+      jmsManagementService.unregisterQueue(name);
+      server.getHornetQServerControl().destroyQueue(HornetQQueue.createAddressFromName(name).toString());
+
+      return true;
+   }
+
+   public synchronized boolean destroyTopic(final String name) throws Exception
+   {
+      checkInitialised();
+      undeployDestination(name);
+
+      destinations.remove(name);
+      jmsManagementService.unregisterTopic(name);
+      server.getHornetQServerControl().destroyQueue(HornetQTopic.createAddressFromName(name).toString());
+
+      return true;
+   }
+
+   public synchronized void createConnectionFactory(final String name,
+                                                    final List<Pair<TransportConfiguration, TransportConfiguration>> connectorConfigs,
+                                                    final List<String> jndiBindings) throws Exception
+   {
+      checkInitialised();
+      HornetQConnectionFactory cf = connectionFactories.get(name);
+      if (cf == null)
+      {
+         cf = new HornetQConnectionFactory(connectorConfigs);
+      }
+
+      bindConnectionFactory(cf, name, jndiBindings);
+   }
+
+   public synchronized void createConnectionFactory(final String name,
+                                                    final List<Pair<TransportConfiguration, TransportConfiguration>> connectorConfigs,
+                                                    final String clientID,
+                                                    final List<String> jndiBindings) throws Exception
+   {
+      checkInitialised();
+      HornetQConnectionFactory cf = connectionFactories.get(name);
+      if (cf == null)
+      {
+         cf = new HornetQConnectionFactory(connectorConfigs);
+         cf.setClientID(clientID);
+      }
+
+      bindConnectionFactory(cf, name, jndiBindings);
+   }
+
+   public synchronized void createConnectionFactory(final String name,
+                                                    final List<Pair<TransportConfiguration, TransportConfiguration>> connectorConfigs,
+                                                    final String clientID,
+                                                    final long clientFailureCheckPeriod,
+                                                    final long connectionTTL,
+                                                    final long callTimeout,
+                                                    final boolean cacheLargeMessagesClient,
+                                                    final int minLargeMessageSize,
+                                                    final int consumerWindowSize,
+                                                    final int consumerMaxRate,
+                                                    final int confirmationWindowSize,
+                                                    final int producerWindowSize,
+                                                    final int producerMaxRate,
+                                                    final boolean blockOnAcknowledge,
+                                                    final boolean blockOnDurableSend,
+                                                    final boolean blockOnNonDurableSend,
+                                                    final boolean autoGroup,
+                                                    final boolean preAcknowledge,
+                                                    final String loadBalancingPolicyClassName,
+                                                    final int transactionBatchSize,
+                                                    final int dupsOKBatchSize,
+                                                    final boolean useGlobalPools,
+                                                    final int scheduledThreadPoolMaxSize,
+                                                    final int threadPoolMaxSize,
+                                                    final long retryInterval,
+                                                    final double retryIntervalMultiplier,
+                                                    final long maxRetryInterval,
+                                                    final int reconnectAttempts,
+                                                    final boolean failoverOnServerShutdown,
+                                                    final String groupId,
+                                                    final List<String> jndiBindings) throws Exception
+   {
+      checkInitialised();
+      HornetQConnectionFactory cf = connectionFactories.get(name);
+      if (cf == null)
+      {
+         cf = new HornetQConnectionFactory(connectorConfigs);
+         cf.setClientID(clientID);
+         cf.setClientFailureCheckPeriod(clientFailureCheckPeriod);
+         cf.setConnectionTTL(connectionTTL);
+         cf.setCallTimeout(callTimeout);
+         cf.setCacheLargeMessagesClient(cacheLargeMessagesClient);
+         cf.setMinLargeMessageSize(minLargeMessageSize);
+         cf.setConsumerWindowSize(consumerWindowSize);
+         cf.setConsumerMaxRate(consumerMaxRate);
+         cf.setConfirmationWindowSize(confirmationWindowSize);
+         cf.setProducerWindowSize(producerWindowSize);
+         cf.setProducerMaxRate(producerMaxRate);
+         cf.setBlockOnAcknowledge(blockOnAcknowledge);
+         cf.setBlockOnDurableSend(blockOnDurableSend);
+         cf.setBlockOnNonDurableSend(blockOnNonDurableSend);
+         cf.setAutoGroup(autoGroup);
+         cf.setPreAcknowledge(preAcknowledge);
+         cf.setConnectionLoadBalancingPolicyClassName(loadBalancingPolicyClassName);
+         cf.setTransactionBatchSize(transactionBatchSize);
+         cf.setDupsOKBatchSize(dupsOKBatchSize);
+         cf.setUseGlobalPools(useGlobalPools);
+         cf.setScheduledThreadPoolMaxSize(scheduledThreadPoolMaxSize);
+         cf.setThreadPoolMaxSize(threadPoolMaxSize);
+         cf.setRetryInterval(retryInterval);
+         cf.setRetryIntervalMultiplier(retryIntervalMultiplier);
+         cf.setMaxRetryInterval(maxRetryInterval);
+         cf.setReconnectAttempts(reconnectAttempts);
+         cf.setFailoverOnServerShutdown(failoverOnServerShutdown);
+         cf.setGroupID(groupId);
+      }
+
+      bindConnectionFactory(cf, name, jndiBindings);
+   }
+
+   public synchronized void createConnectionFactory(final String name,
+                                                    final String discoveryAddress,
+                                                    final int discoveryPort,
+                                                    final String clientID,
+                                                    final long discoveryRefreshTimeout,
+                                                    final long clientFailureCheckPeriod,
+                                                    final long connectionTTL,
+                                                    final long callTimeout,
+                                                    final boolean cacheLargeMessagesClient,
+                                                    final int minLargeMessageSize,
+                                                    final int consumerWindowSize,
+                                                    final int consumerMaxRate,
+                                                    final int confirmationWindowSize,
+                                                    final int producerWindowSize,
+                                                    final int producerMaxRate,
+                                                    final boolean blockOnAcknowledge,
+                                                    final boolean blockOnDurableSend,
+                                                    final boolean blockOnNonDurableSend,
+                                                    final boolean autoGroup,
+                                                    final boolean preAcknowledge,
+                                                    final String loadBalancingPolicyClassName,
+                                                    final int transactionBatchSize,
+                                                    final int dupsOKBatchSize,
+                                                    final long initialWaitTimeout,
+                                                    final boolean useGlobalPools,
+                                                    final int scheduledThreadPoolMaxSize,
+                                                    final int threadPoolMaxSize,
+                                                    final long retryInterval,
+                                                    final double retryIntervalMultiplier,
+                                                    final long maxRetryInterval,
+                                                    final int reconnectAttempts,
+                                                    final boolean failoverOnServerShutdown,
+                                                    final String groupId,
+                                                    final List<String> jndiBindings) throws Exception
+   {
+      checkInitialised();
+      HornetQConnectionFactory cf = connectionFactories.get(name);
+      if (cf == null)
+      {
+         cf = new HornetQConnectionFactory(discoveryAddress, discoveryPort);
+         cf.setClientID(clientID);
+         cf.setDiscoveryRefreshTimeout(discoveryRefreshTimeout);
+         cf.setClientFailureCheckPeriod(clientFailureCheckPeriod);
+         cf.setConnectionTTL(connectionTTL);
+         cf.setCallTimeout(callTimeout);
+         cf.setCacheLargeMessagesClient(cacheLargeMessagesClient);
+         cf.setMinLargeMessageSize(minLargeMessageSize);
+         cf.setConsumerWindowSize(consumerWindowSize);
+         cf.setConsumerMaxRate(consumerMaxRate);
+         cf.setConfirmationWindowSize(confirmationWindowSize);
+         cf.setProducerWindowSize(producerWindowSize);
+         cf.setProducerMaxRate(producerMaxRate);
+         cf.setBlockOnAcknowledge(blockOnAcknowledge);
+         cf.setBlockOnDurableSend(blockOnDurableSend);
+         cf.setBlockOnNonDurableSend(blockOnNonDurableSend);
+         cf.setAutoGroup(autoGroup);
+         cf.setPreAcknowledge(preAcknowledge);
+         cf.setConnectionLoadBalancingPolicyClassName(loadBalancingPolicyClassName);
+         cf.setTransactionBatchSize(transactionBatchSize);
+         cf.setDupsOKBatchSize(dupsOKBatchSize);
+         cf.setDiscoveryInitialWaitTimeout(initialWaitTimeout);
+         cf.setUseGlobalPools(useGlobalPools);
+         cf.setScheduledThreadPoolMaxSize(scheduledThreadPoolMaxSize);
+         cf.setThreadPoolMaxSize(threadPoolMaxSize);
+         cf.setRetryInterval(retryInterval);
+         cf.setRetryIntervalMultiplier(retryIntervalMultiplier);
+         cf.setMaxRetryInterval(maxRetryInterval);
+         cf.setReconnectAttempts(reconnectAttempts);
+         cf.setFailoverOnServerShutdown(failoverOnServerShutdown);
+      }
+
+      bindConnectionFactory(cf, name, jndiBindings);
+   }
+
+   public synchronized void createConnectionFactory(final String name,
+                                                    final String discoveryAddress,
+                                                    final int discoveryPort,
+                                                    final List<String> jndiBindings) throws Exception
+   {
+      checkInitialised();
+      HornetQConnectionFactory cf = connectionFactories.get(name);
+      if (cf == null)
+      {
+         cf = new HornetQConnectionFactory(discoveryAddress, discoveryPort);
+      }
+
+      bindConnectionFactory(cf, name, jndiBindings);
+   }
+
+   public synchronized void createConnectionFactory(final String name,
+                                                    final String discoveryAddress,
+                                                    final int discoveryPort,
+                                                    final String clientID,
+                                                    final List<String> jndiBindings) throws Exception
+   {
+      checkInitialised();
+      HornetQConnectionFactory cf = connectionFactories.get(name);
+      if (cf == null)
+      {
+         cf = new HornetQConnectionFactory(discoveryAddress, discoveryPort);
+         cf.setClientID(clientID);
+      }
+
+      bindConnectionFactory(cf, name, jndiBindings);
+   }
+
+   public synchronized void createConnectionFactory(final String name,
+                                                    final TransportConfiguration liveTC,
+                                                    final List<String> jndiBindings) throws Exception
+   {
+      checkInitialised();
+      HornetQConnectionFactory cf = connectionFactories.get(name);
+      if (cf == null)
+      {
+         cf = new HornetQConnectionFactory(liveTC);
+      }
+
+      bindConnectionFactory(cf, name, jndiBindings);
+   }
+
+   public synchronized void createConnectionFactory(final String name,
+                                                    final TransportConfiguration liveTC,
+                                                    final String clientID,
+                                                    final List<String> jndiBindings) throws Exception
+   {
+      checkInitialised();
+      HornetQConnectionFactory cf = connectionFactories.get(name);
+      if (cf == null)
+      {
+         cf = new HornetQConnectionFactory(liveTC);
+         cf.setClientID(clientID);
+      }
+
+      bindConnectionFactory(cf, name, jndiBindings);
+   }
+
+   public synchronized void createConnectionFactory(final String name,
+                                                    final TransportConfiguration liveTC,
+                                                    final TransportConfiguration backupTC,
+                                                    final List<String> jndiBindings) throws Exception
+   {
+      checkInitialised();
+      HornetQConnectionFactory cf = connectionFactories.get(name);
+      if (cf == null)
+      {
+         cf = new HornetQConnectionFactory(liveTC, backupTC);
+      }
+
+      bindConnectionFactory(cf, name, jndiBindings);
+   }
+
+   public synchronized void createConnectionFactory(final String name,
+                                                    final TransportConfiguration liveTC,
+                                                    final TransportConfiguration backupTC,
+                                                    final String clientID,
+                                                    final List<String> jndiBindings) throws Exception
+   {
+      checkInitialised();
+      HornetQConnectionFactory cf = connectionFactories.get(name);
+      if (cf == null)
+      {
+         cf = new HornetQConnectionFactory(liveTC, backupTC);
+         cf.setClientID(clientID);
+      }
+
+      bindConnectionFactory(cf, name, jndiBindings);
+   }
+
+   public synchronized boolean destroyConnectionFactory(final String name) throws Exception
+   {
+      checkInitialised();
+      List<String> jndiBindings = connectionFactoryBindings.get(name);
+      if (jndiBindings == null || jndiBindings.size() == 0)
+      {
+         return false;
+      }
+      if (context != null)
+      {
+         for (String jndiBinding : jndiBindings)
+         {
+            try
+            {
+               context.unbind(jndiBinding);
+            }
+            catch (NameNotFoundException e)
+            {
+               // this is ok.
+            }
+         }
+      }
+      connectionFactoryBindings.remove(name);
+      connectionFactories.remove(name);
+
+      jmsManagementService.unregisterConnectionFactory(name);
+
+      return true;
+   }
+
+   public String[] listRemoteAddresses() throws Exception
+   {
+      checkInitialised();
+      return server.getHornetQServerControl().listRemoteAddresses();
+   }
+
+   public String[] listRemoteAddresses(final String ipAddress) throws Exception
+   {
+      checkInitialised();
+      return server.getHornetQServerControl().listRemoteAddresses(ipAddress);
+   }
+
+   public boolean closeConnectionsForAddress(final String ipAddress) throws Exception
+   {
+      checkInitialised();
+      return server.getHornetQServerControl().closeConnectionsForAddress(ipAddress);
+   }
+
+   public String[] listConnectionIDs() throws Exception
+   {
+      return server.getHornetQServerControl().listConnectionIDs();
+   }
+
+   public String[] listSessions(final String connectionID) throws Exception
+   {
+      checkInitialised();
+      return server.getHornetQServerControl().listSessions(connectionID);
+   }
+
+   // Public --------------------------------------------------------
+
+   // Private -------------------------------------------------------
+
+   private synchronized void checkInitialised()
+   {
+      if (!active)
+      {
+         throw new IllegalStateException("Cannot access JMS Server, core server is not yet active");
+      }
+   }
+
+   private void bindConnectionFactory(final HornetQConnectionFactory cf,
+                                      final String name,
+                                      final List<String> jndiBindings) throws Exception
+   {
+      for (String jndiBinding : jndiBindings)
+      {
+         bindToJndi(jndiBinding, cf);
+
+         if (connectionFactoryBindings.get(name) == null)
+         {
+            connectionFactoryBindings.put(name, new ArrayList<String>());
+         }
+         connectionFactoryBindings.get(name).add(jndiBinding);
+      }
+
+      jmsManagementService.registerConnectionFactory(name, cf, jndiBindings);
+   }
+
+   private boolean bindToJndi(final String jndiName, final Object objectToBind) throws NamingException
+   {
+      if (context != null)
+      {
+         String parentContext;
+         String jndiNameInContext;
+         int sepIndex = jndiName.lastIndexOf('/');
+         if (sepIndex == -1)
+         {
+            parentContext = "";
+         }
+         else
+         {
+            parentContext = jndiName.substring(0, sepIndex);
+         }
+         jndiNameInContext = jndiName.substring(sepIndex + 1);
+         try
+         {
+            context.lookup(jndiName);
+
+            JMSServerManagerImpl.log.warn("Binding for " + jndiName + " already exists");
+            return false;
+         }
+         catch (Throwable e)
+         {
+            // OK
+         }
+
+         Context c = org.hornetq.utils.JNDIUtil.createContext(context, parentContext);
+
+         c.rebind(jndiNameInContext, objectToBind);
+      }
+      return true;
+   }
+
+   private void addToDestinationBindings(final String destination, final String jndiBinding)
+   {
+      if (destinations.get(destination) == null)
+      {
+         destinations.put(destination, new ArrayList<String>());
+      }
+      destinations.get(destination).add(jndiBinding);
+   }
+
+   private void deploy() throws Exception
+   {
+      if (config == null)
+      {
+         return;
+      }
+
+      if (config.getContext() != null)
+      {
+         setContext(config.getContext());
+      }
+
+      List<ConnectionFactoryConfiguration> connectionFactoryConfigurations = config.getConnectionFactoryConfigurations();
+      for (ConnectionFactoryConfiguration config : connectionFactoryConfigurations)
+      {
+         if (config.getDiscoveryAddress() != null)
+         {
+            createConnectionFactory(config.getName(),
+                                    config.getDiscoveryAddress(),
+                                    config.getDiscoveryPort(),
+                                    config.getClientID(),
+                                    config.getDiscoveryRefreshTimeout(),
+                                    config.getClientFailureCheckPeriod(),
+                                    config.getConnectionTTL(),
+                                    config.getCallTimeout(),
+                                    config.isCacheLargeMessagesClient(),
+                                    config.getMinLargeMessageSize(),
+                                    config.getConsumerWindowSize(),
+                                    config.getConsumerMaxRate(),
+                                    config.getConfirmationWindowSize(),
+                                    config.getProducerWindowSize(),
+                                    config.getProducerMaxRate(),
+                                    config.isBlockOnAcknowledge(),
+                                    config.isBlockOnDurableSend(),
+                                    config.isBlockOnNonDurableSend(),
+                                    config.isAutoGroup(),
+                                    config.isPreAcknowledge(),
+                                    config.getLoadBalancingPolicyClassName(),
+                                    config.getTransactionBatchSize(),
+                                    config.getDupsOKBatchSize(),
+                                    config.getInitialWaitTimeout(),
+                                    config.isUseGlobalPools(),
+                                    config.getScheduledThreadPoolMaxSize(),
+                                    config.getThreadPoolMaxSize(),
+                                    config.getRetryInterval(),
+                                    config.getRetryIntervalMultiplier(),
+                                    config.getMaxRetryInterval(),
+                                    config.getReconnectAttempts(),
+                                    config.isFailoverOnServerShutdown(),
+                                    config.getGroupID(),
+                                    Arrays.asList(config.getBindings()));
+         }
+         else
+         {
+            createConnectionFactory(config.getName(),
+                                    config.getConnectorConfigs(),
+                                    config.getClientID(),
+                                    config.getClientFailureCheckPeriod(),
+                                    config.getConnectionTTL(),
+                                    config.getCallTimeout(),
+                                    config.isCacheLargeMessagesClient(),
+                                    config.getMinLargeMessageSize(),
+                                    config.getConsumerWindowSize(),
+                                    config.getConsumerMaxRate(),
+                                    config.getConfirmationWindowSize(),
+                                    config.getProducerWindowSize(),
+                                    config.getProducerMaxRate(),
+                                    config.isBlockOnAcknowledge(),
+                                    config.isBlockOnDurableSend(),
+                                    config.isBlockOnNonDurableSend(),
+                                    config.isAutoGroup(),
+                                    config.isPreAcknowledge(),
+                                    config.getLoadBalancingPolicyClassName(),
+                                    config.getTransactionBatchSize(),
+                                    config.getDupsOKBatchSize(),
+                                    config.isUseGlobalPools(),
+                                    config.getScheduledThreadPoolMaxSize(),
+                                    config.getThreadPoolMaxSize(),
+                                    config.getRetryInterval(),
+                                    config.getRetryIntervalMultiplier(),
+                                    config.getMaxRetryInterval(),
+                                    config.getReconnectAttempts(),
+                                    config.isFailoverOnServerShutdown(),
+                                    config.getGroupID(),
+                                    Arrays.asList(config.getBindings()));
+         }
+      }
+
+      List<QueueConfiguration> queueConfigs = config.getQueueConfigurations();
+      for (QueueConfiguration config : queueConfigs)
+      {
+         String[] bindings = config.getBindings();
+         for (String binding : bindings)
+         {
+            createQueue(config.getName(), binding, config.getSelector(), config.isDurable());
+         }
+      }
+
+      List<TopicConfiguration> topicConfigs = config.getTopicConfigurations();
+      for (TopicConfiguration config : topicConfigs)
+      {
+         String[] bindings = config.getBindings();
+         for (String binding : bindings)
+         {
+            createTopic(config.getName(), binding);
+         }
+      }
+   }
+
+}

Modified: trunk/src/main/org/hornetq/jms/server/management/JMSManagementService.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/management/JMSManagementService.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/jms/server/management/JMSManagementService.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,7 +19,7 @@
 import org.hornetq.api.jms.HornetQQueue;
 import org.hornetq.api.jms.HornetQTopic;
 import org.hornetq.api.jms.management.JMSServerControl;
-import org.hornetq.api.jms.server.JMSServerManager;
+import org.hornetq.jms.server.JMSServerManager;
 
 /**
  * @author <a href="mailto:jmesnil at redhat.com">Jeff Mesnil</a>

Modified: trunk/src/main/org/hornetq/jms/server/management/impl/JMSManagementServiceImpl.java
===================================================================
--- trunk/src/main/org/hornetq/jms/server/management/impl/JMSManagementServiceImpl.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/jms/server/management/impl/JMSManagementServiceImpl.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -27,7 +27,6 @@
 import org.hornetq.api.jms.management.JMSQueueControl;
 import org.hornetq.api.jms.management.JMSServerControl;
 import org.hornetq.api.jms.management.TopicControl;
-import org.hornetq.api.jms.server.JMSServerManager;
 import org.hornetq.core.messagecounter.MessageCounter;
 import org.hornetq.core.messagecounter.MessageCounterManager;
 import org.hornetq.core.server.management.ManagementService;
@@ -35,6 +34,7 @@
 import org.hornetq.jms.management.impl.JMSQueueControlImpl;
 import org.hornetq.jms.management.impl.JMSServerControlImpl;
 import org.hornetq.jms.management.impl.JMSTopicControlImpl;
+import org.hornetq.jms.server.JMSServerManager;
 import org.hornetq.jms.server.management.JMSManagementService;
 
 /*

Modified: trunk/src/main/org/hornetq/service/HornetQFileConfigurationService.java
===================================================================
--- trunk/src/main/org/hornetq/service/HornetQFileConfigurationService.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/service/HornetQFileConfigurationService.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -12,8 +12,8 @@
  */
 package org.hornetq.service;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.FileConfiguration;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.FileConfiguration;
 
 /**
  * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>

Modified: trunk/src/main/org/hornetq/service/HornetQFileConfigurationServiceMBean.java
===================================================================
--- trunk/src/main/org/hornetq/service/HornetQFileConfigurationServiceMBean.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/service/HornetQFileConfigurationServiceMBean.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -1,6 +1,6 @@
 package org.hornetq.service;
 
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 
 /**
  * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>

Modified: trunk/src/main/org/hornetq/service/HornetQJMSStarterService.java
===================================================================
--- trunk/src/main/org/hornetq/service/HornetQJMSStarterService.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/service/HornetQJMSStarterService.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -12,7 +12,7 @@
  */
 package org.hornetq.service;
 
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 
 /**
  * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>

Modified: trunk/src/main/org/hornetq/service/HornetQStarterService.java
===================================================================
--- trunk/src/main/org/hornetq/service/HornetQStarterService.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/src/main/org/hornetq/service/HornetQStarterService.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,8 +16,8 @@
 import javax.management.MBeanServer;
 import javax.management.ObjectName;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.impl.HornetQServerImpl;
 import org.hornetq.spi.core.security.HornetQSecurityManager;

Modified: trunk/tests/jms-tests/config/hornetq-beans.xml
===================================================================
--- trunk/tests/jms-tests/config/hornetq-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/jms-tests/config/hornetq-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean> 
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration">
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">
    </bean>
 
 	<!-- The security manager -->
@@ -49,7 +49,7 @@
    </bean>
    
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>         
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/tests/jms-tests/config/test-beans.xml
===================================================================
--- trunk/tests/jms-tests/config/test-beans.xml	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/jms-tests/config/test-beans.xml	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,7 +22,7 @@
    </bean>
 
    <!-- The core configuration -->
-   <bean name="Configuration" class="org.hornetq.api.core.config.FileConfiguration">
+   <bean name="Configuration" class="org.hornetq.core.config.impl.FileConfiguration">
    </bean>
 
 	<!-- The security manager -->
@@ -49,7 +49,7 @@
    </bean>
 
    <!-- The JMS server -->
-   <bean name="JMSServerManager" class="org.hornetq.api.jms.server.JMSServerManagerImpl">
+   <bean name="JMSServerManager" class="org.hornetq.jms.server.impl.JMSServerManagerImpl">
       <constructor>
          <parameter>
             <inject bean="HornetQServer"/>

Modified: trunk/tests/jms-tests/src/org/hornetq/jms/tests/HornetQServerTestCase.java
===================================================================
--- trunk/tests/jms-tests/src/org/hornetq/jms/tests/HornetQServerTestCase.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/jms-tests/src/org/hornetq/jms/tests/HornetQServerTestCase.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -35,10 +35,10 @@
 
 import com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple;
 
-import org.hornetq.api.jms.server.JMSServerManager;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.security.Role;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.jms.server.JMSServerManager;
 import org.hornetq.jms.tests.tools.ServerManagement;
 import org.hornetq.jms.tests.tools.container.Server;
 import org.hornetq.jms.tests.util.ProxyAssertSupport;

Modified: trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/ConfigurationHelper.java
===================================================================
--- trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/ConfigurationHelper.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/ConfigurationHelper.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -17,7 +17,7 @@
 import java.util.HashMap;
 import java.util.Hashtable;
 
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.kernel.spi.dependency.KernelControllerContextAware;
 

Modified: trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/container/LocalTestServer.java
===================================================================
--- trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/container/LocalTestServer.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/container/LocalTestServer.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -33,11 +33,11 @@
 import org.hornetq.api.core.management.ResourceNames;
 import org.hornetq.api.jms.management.JMSQueueControl;
 import org.hornetq.api.jms.management.TopicControl;
-import org.hornetq.api.jms.server.JMSServerManager;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.security.Role;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.integration.bootstrap.HornetQBootstrapServer;
+import org.hornetq.jms.server.JMSServerManager;
 import org.jboss.kernel.plugins.config.property.PropertyKernelConfig;
 
 /**

Modified: trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/container/Server.java
===================================================================
--- trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/container/Server.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/jms-tests/src/org/hornetq/jms/tests/tools/container/Server.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -20,9 +20,9 @@
 
 import javax.naming.InitialContext;
 
-import org.hornetq.api.jms.server.JMSServerManager;
 import org.hornetq.core.security.Role;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.jms.server.JMSServerManager;
 
 /**
  * The remote interface exposed by TestServer.

Modified: trunk/tests/joram-tests/src/org/hornetq/jms/HornetQAdmin.java
===================================================================
--- trunk/tests/joram-tests/src/org/hornetq/jms/HornetQAdmin.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/joram-tests/src/org/hornetq/jms/HornetQAdmin.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,10 +29,10 @@
 import org.hornetq.api.core.client.ClientRequestor;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.ResourceNames;
-import org.hornetq.api.core.management.client.ManagementHelper;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
 import org.hornetq.tests.util.SpawnedVMSupport;
 import org.objectweb.jtests.jms.admin.Admin;

Modified: trunk/tests/joram-tests/src/org/hornetq/jms/SpawnedJMSServer.java
===================================================================
--- trunk/tests/joram-tests/src/org/hornetq/jms/SpawnedJMSServer.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/joram-tests/src/org/hornetq/jms/SpawnedJMSServer.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,14 +19,14 @@
 
 import javax.naming.InitialContext;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
-import org.hornetq.api.jms.server.JMSServerManager;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
+import org.hornetq.jms.server.JMSServerManager;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.jnp.server.Main;
 import org.jnp.server.NamingBeanImpl;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/DuplicateDetectionTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/DuplicateDetectionTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/DuplicateDetectionTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,12 +25,12 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.message.Message;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.transaction.impl.XidImpl;
 import org.hornetq.tests.util.ServiceTestBase;
 import org.hornetq.utils.UUIDGenerator;

Modified: trunk/tests/src/org/hornetq/tests/integration/String64KLimitTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/String64KLimitTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/String64KLimitTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,13 +22,13 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/ConsumerCloseTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/ConsumerCloseTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/ConsumerCloseTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,15 +22,15 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.client.MessageHandler;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.ServiceTestBase;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/CoreClientTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/CoreClientTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/CoreClientTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -23,12 +23,12 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.jms.client.HornetQTextMessage;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/DeadLetterAddressTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/DeadLetterAddressTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/DeadLetterAddressTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,13 +24,13 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.message.Message;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.Queue;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.tests.util.RandomUtil;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/ExpiryAddressTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/ExpiryAddressTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/ExpiryAddressTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,13 +21,13 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.message.Message;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/FailureDeadlockTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/FailureDeadlockTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/FailureDeadlockTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -17,18 +17,18 @@
 import javax.jms.JMSException;
 import javax.jms.Session;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQConnectionFactory;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
 import org.hornetq.core.client.impl.ClientSessionInternal;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.RemotingConnection;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.jms.client.HornetQSession;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.integration.jms.server.management.NullInitialContext;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/HeuristicXATest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/HeuristicXATest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/HeuristicXATest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -28,8 +28,8 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.management.HornetQServerControl;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.Queue;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/HornetQCrashTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/HornetQCrashTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/HornetQCrashTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -9,13 +9,12 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.client.SendAcknowledgementHandler;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.interceptor.Interceptor;
 import org.hornetq.api.core.message.Message;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.Packet;
 import org.hornetq.core.remoting.RemotingConnection;
@@ -23,6 +22,7 @@
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.remoting.impl.wireformat.PacketImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 
 /**
  * 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/JournalCrashTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/JournalCrashTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/JournalCrashTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -23,8 +23,8 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.journal.PreparedTransactionInfo;
 import org.hornetq.core.journal.RecordInfo;
 import org.hornetq.core.journal.impl.JournalImpl;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/LargeMessageTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/LargeMessageTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/LargeMessageTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -27,9 +27,9 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.message.Message;
 import org.hornetq.core.client.impl.ClientConsumerInternal;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.persistence.impl.journal.JournalStorageManager;
 import org.hornetq.core.persistence.impl.journal.LargeServerMessageImpl;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/MessageGroupingConnectionFactoryTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/MessageGroupingConnectionFactoryTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/MessageGroupingConnectionFactoryTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -26,12 +26,12 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.client.MessageHandler;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.UnitTestCase;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/client/MessageGroupingTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/MessageGroupingTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/MessageGroupingTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,13 +29,13 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.client.MessageHandler;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.message.Message;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.transaction.impl.XidImpl;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/MessagePriorityTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/MessagePriorityTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/MessagePriorityTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,13 +22,13 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/NewDeadLetterAddressTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/NewDeadLetterAddressTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/NewDeadLetterAddressTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,11 +21,11 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/PagingTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/PagingTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/PagingTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -27,8 +27,8 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.message.Message;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.paging.impl.TestSupportPageStore;
 import org.hornetq.core.server.HornetQServer;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/ProducerCloseTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/ProducerCloseTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/ProducerCloseTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -18,14 +18,14 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.ServiceTestBase;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/ReceiveImmediateTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/ReceiveImmediateTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/ReceiveImmediateTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,11 +21,11 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.Queue;
 import org.hornetq.tests.util.ServiceTestBase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/RedeliveryConsumerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/RedeliveryConsumerTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/RedeliveryConsumerTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,8 +21,8 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.tests.util.ServiceTestBase;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/RequestorTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/RequestorTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/RequestorTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,15 +24,15 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.client.MessageHandler;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.core.client.impl.ClientMessageImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/SessionCloseTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/SessionCloseTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/SessionCloseTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,14 +24,14 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/SessionClosedOnRemotingConnectionFailureTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/SessionClosedOnRemotingConnectionFailureTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/SessionClosedOnRemotingConnectionFailureTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -20,16 +20,16 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.core.client.impl.ClientSessionInternal;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.RemotingConnection;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.UnitTestCase;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/client/SessionFactoryTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/SessionFactoryTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/SessionFactoryTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -27,15 +27,15 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.ServiceTestBase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/client/TemporaryQueueTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/TemporaryQueueTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/TemporaryQueueTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -26,11 +26,11 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.interceptor.Interceptor;
 import org.hornetq.core.client.impl.ClientSessionInternal;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.CloseListener;
 import org.hornetq.core.remoting.Packet;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/TransactionDurabilityTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/TransactionDurabilityTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/TransactionDurabilityTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,8 +21,8 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.tests.util.ServiceTestBase;

Modified: trunk/tests/src/org/hornetq/tests/integration/client/WildCardRoutingTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/client/WildCardRoutingTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/client/WildCardRoutingTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,11 +21,11 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.UnitTestCase;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/clientcrash/ClientTestBase.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/clientcrash/ClientTestBase.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/clientcrash/ClientTestBase.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,7 +15,7 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.tests.util.ServiceTestBase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeReconnectTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeReconnectTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeReconnectTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,8 +29,6 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.RemotingConnection;
@@ -38,6 +36,8 @@
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.cluster.Bridge;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.core.server.cluster.impl.BridgeImpl;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeStartTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeStartTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeStartTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,12 +29,12 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.cluster.Bridge;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
 import org.hornetq.tests.util.ServiceTestBase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,11 +29,11 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
 import org.hornetq.tests.util.ServiceTestBase;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTestBase.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTestBase.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeTestBase.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,12 +16,12 @@
 import java.util.ArrayList;
 import java.util.Map;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMConnector;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/bridge/BridgeWithDiscoveryGroupStartTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,13 +29,13 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.cluster.Bridge;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
 import org.hornetq.integration.transports.netty.TransportConstants;
 import org.hornetq.tests.util.ServiceTestBase;

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusterTestBase.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -32,14 +32,10 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
 import org.hornetq.api.core.message.Message;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.postoffice.Binding;
 import org.hornetq.core.postoffice.Bindings;
@@ -47,8 +43,12 @@
 import org.hornetq.core.postoffice.QueueBinding;
 import org.hornetq.core.postoffice.impl.LocalQueueBinding;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.JournalType;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
 import org.hornetq.core.server.cluster.ClusterConnection;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
 import org.hornetq.core.server.cluster.RemoteQueueBinding;
 import org.hornetq.core.server.group.GroupingHandler;
 import org.hornetq.core.server.group.impl.GroupingHandlerConfiguration;

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusteredGroupingTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusteredGroupingTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/distribution/ClusteredGroupingTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -18,8 +18,8 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.SimpleString;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.NotificationType;
-import org.hornetq.api.core.management.client.ManagementHelper;
 import org.hornetq.api.core.message.Message;
 import org.hornetq.core.server.group.GroupingHandler;
 import org.hornetq.core.server.group.impl.GroupBinding;

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/failover/FailoverTestBase.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/failover/FailoverTestBase.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/failover/FailoverTestBase.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -20,9 +20,9 @@
 
 import org.hornetq.api.SimpleString;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.core.client.impl.ClientSessionFactoryInternal;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.remoting.impl.invm.InVMConnector;
 import org.hornetq.core.remoting.impl.invm.InVMRegistry;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/failover/GroupingFailoverReplicationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/failover/GroupingFailoverReplicationTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/failover/GroupingFailoverReplicationTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -14,12 +14,12 @@
 
 import java.util.Map;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.JournalType;
 import org.hornetq.tests.util.ServiceTestBase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/failover/GroupingFailoverSharedServerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/failover/GroupingFailoverSharedServerTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/failover/GroupingFailoverSharedServerTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -14,11 +14,11 @@
 
 import java.util.Map;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.JournalType;
 import org.hornetq.tests.util.ServiceTestBase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/failover/NettyReplicatedFailoverTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/failover/NettyReplicatedFailoverTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/failover/NettyReplicatedFailoverTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -13,7 +13,7 @@
 
 package org.hornetq.tests.integration.cluster.failover;
 
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 
 /**
  * A NettyReplicatedFailoverTest

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/failover/PagingFailoverTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/failover/PagingFailoverTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/failover/PagingFailoverTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,11 +25,11 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.SessionFailureListener;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.core.client.impl.ClientSessionFactoryInternal;
 import org.hornetq.core.client.impl.ClientSessionInternal;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.remoting.RemotingConnection;
 import org.hornetq.core.replication.impl.ReplicationEndpointImpl;
 import org.hornetq.core.server.HornetQServer;

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedAsynchronousFailoverTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedAsynchronousFailoverTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedAsynchronousFailoverTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -13,7 +13,7 @@
 
 package org.hornetq.tests.integration.cluster.failover;
 
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 
 /**
  * A ReplicatedAsynchronousFailoverTest

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedNettyAsynchronousFailoverTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedNettyAsynchronousFailoverTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedNettyAsynchronousFailoverTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -13,7 +13,7 @@
 
 package org.hornetq.tests.integration.cluster.failover;
 
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 
 /**
  * A ReplicatedNettyAsynchronousFailoverTest

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedPagingFailoverTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedPagingFailoverTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/failover/ReplicatedPagingFailoverTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -13,7 +13,7 @@
 
 package org.hornetq.tests.integration.cluster.failover;
 
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 
 /**
  * A ReplicatedPagingFailoverTest

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/MultiThreadRandomReattachTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/MultiThreadRandomReattachTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/MultiThreadRandomReattachTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -14,11 +14,11 @@
 package org.hornetq.tests.integration.cluster.reattach;
 
 import org.hornetq.api.core.client.ClientMessage;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
+import org.hornetq.core.server.HornetQServers;
 
 /**
  * 

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/NettyMultiThreadRandomReattachTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/NettyMultiThreadRandomReattachTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/NettyMultiThreadRandomReattachTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -14,11 +14,11 @@
 package org.hornetq.tests.integration.cluster.reattach;
 
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.core.client.impl.ClientSessionFactoryInternal;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
+import org.hornetq.core.server.HornetQServers;
 
 /**
  * A NettyMultiThreadRandomReattachTest

Modified: trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/RandomReattachTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/RandomReattachTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/cluster/reattach/RandomReattachTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -30,15 +30,15 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.client.MessageHandler;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.core.client.impl.ClientSessionInternal;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.InVMRegistry;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.jms.client.HornetQTextMessage;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/divert/DivertTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/divert/DivertTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/divert/DivertTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,12 +25,12 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.DivertConfiguration;
 import org.hornetq.tests.util.ServiceTestBase;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/divert/PersistentDivertTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/divert/PersistentDivertTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/divert/PersistentDivertTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,12 +25,12 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.DivertConfiguration;
 import org.hornetq.tests.util.ServiceTestBase;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/http/CoreClientOverHttpTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/http/CoreClientOverHttpTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/http/CoreClientOverHttpTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -23,11 +23,11 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.TransportConstants;
 import org.hornetq.jms.client.HornetQTextMessage;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/http/NettyHttpTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/http/NettyHttpTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/http/NettyHttpTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -23,8 +23,8 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.core.buffers.HornetQBuffer;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.AbstractBufferHandler;
 import org.hornetq.integration.transports.netty.NettyAcceptor;
 import org.hornetq.integration.transports.netty.NettyConnector;

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/FloodServerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/FloodServerTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/FloodServerTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -26,16 +26,16 @@
 
 import org.hornetq.api.Pair;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQTopic;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.unit.util.InVMContext;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/HornetQConnectionFactoryTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/HornetQConnectionFactoryTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/HornetQConnectionFactoryTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -26,15 +26,15 @@
 import org.hornetq.api.Pair;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQConnectionFactory;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/ManualReconnectionToSingleServerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/ManualReconnectionToSingleServerTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/ManualReconnectionToSingleServerTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -32,21 +32,21 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
-import org.hornetq.api.jms.config.ConnectionFactoryConfiguration;
-import org.hornetq.api.jms.config.ConnectionFactoryConfigurationImpl;
-import org.hornetq.api.jms.config.JMSConfiguration;
-import org.hornetq.api.jms.config.JMSConfigurationImpl;
-import org.hornetq.api.jms.config.QueueConfigurationImpl;
-import org.hornetq.api.jms.server.JMSServerManager;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
+import org.hornetq.jms.server.JMSServerManager;
+import org.hornetq.jms.server.config.ConnectionFactoryConfiguration;
+import org.hornetq.jms.server.config.JMSConfiguration;
+import org.hornetq.jms.server.config.impl.ConnectionFactoryConfigurationImpl;
+import org.hornetq.jms.server.config.impl.JMSConfigurationImpl;
+import org.hornetq.jms.server.config.impl.QueueConfigurationImpl;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.unit.util.InVMContext;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/bridge/BridgeTestBase.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/bridge/BridgeTestBase.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/bridge/BridgeTestBase.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -34,25 +34,25 @@
 
 import com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionManagerImple;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.ResourceNames;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQConnectionFactory;
-import org.hornetq.api.jms.bridge.ConnectionFactoryFactory;
-import org.hornetq.api.jms.bridge.DestinationFactory;
-import org.hornetq.api.jms.bridge.QualityOfServiceMode;
 import org.hornetq.api.jms.management.JMSQueueControl;
 import org.hornetq.api.jms.management.TopicControl;
-import org.hornetq.api.jms.server.JMSServerManager;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.management.ManagementService;
+import org.hornetq.jms.bridge.ConnectionFactoryFactory;
+import org.hornetq.jms.bridge.DestinationFactory;
+import org.hornetq.jms.bridge.QualityOfServiceMode;
 import org.hornetq.jms.client.HornetQMessage;
+import org.hornetq.jms.server.JMSServerManager;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.unit.util.InVMContext;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeReconnectionTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeReconnectionTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeReconnectionTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -14,9 +14,9 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.jms.bridge.JMSBridgeImpl;
-import org.hornetq.api.jms.bridge.QualityOfServiceMode;
 import org.hornetq.core.logging.Logger;
+import org.hornetq.jms.bridge.QualityOfServiceMode;
+import org.hornetq.jms.bridge.impl.JMSBridgeImpl;
 
 /**
  * @author <a href="mailto:tim.fox at jboss.com">Tim Fox</a>

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/bridge/JMSBridgeTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -32,9 +32,9 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.jms.HornetQMessageConstants;
-import org.hornetq.api.jms.bridge.JMSBridgeImpl;
-import org.hornetq.api.jms.bridge.QualityOfServiceMode;
 import org.hornetq.core.logging.Logger;
+import org.hornetq.jms.bridge.QualityOfServiceMode;
+import org.hornetq.jms.bridge.impl.JMSBridgeImpl;
 
 /**
  * A JMSBridgeTest

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSFailoverTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -31,19 +31,19 @@
 
 import org.hornetq.api.SimpleString;
 import org.hornetq.api.core.client.ClientSession;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQConnectionFactory;
 import org.hornetq.api.jms.HornetQQueue;
 import org.hornetq.core.client.impl.ClientSessionInternal;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.RemotingConnection;
 import org.hornetq.core.remoting.impl.invm.InVMRegistry;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.jms.client.HornetQSession;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSReconnectTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSReconnectTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/cluster/JMSReconnectTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -30,19 +30,19 @@
 
 import org.hornetq.api.SimpleString;
 import org.hornetq.api.core.client.ClientSession;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQConnectionFactory;
 import org.hornetq.api.jms.HornetQQueue;
 import org.hornetq.api.jms.HornetQTopic;
 import org.hornetq.core.client.impl.ClientSessionInternal;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.RemotingConnection;
 import org.hornetq.core.remoting.impl.invm.InVMRegistry;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.jms.client.HornetQSession;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/connection/ExceptionListenerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/connection/ExceptionListenerTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/connection/ExceptionListenerTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,17 +22,17 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQConnectionFactory;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
 import org.hornetq.core.client.impl.ClientSessionInternal;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.jms.client.HornetQConnection;
 import org.hornetq.jms.client.HornetQSession;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.integration.jms.server.management.NullInitialContext;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/divert/DivertAndACKClientTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/divert/DivertAndACKClientTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/divert/DivertAndACKClientTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -26,10 +26,10 @@
 
 import org.hornetq.api.Pair;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
 import org.hornetq.api.jms.HornetQQueue;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.server.cluster.DivertConfiguration;
 import org.hornetq.tests.util.JMSTestBase;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerDeployerTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,18 +21,18 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.jms.HornetQConnectionFactory;
-import org.hornetq.api.jms.server.JMSServerManager;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.deployers.DeploymentManager;
 import org.hornetq.core.deployers.impl.FileDeploymentManager;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
+import org.hornetq.jms.server.JMSServerManager;
 import org.hornetq.jms.server.impl.JMSServerDeployer;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.unit.util.InVMContext;
 import org.hornetq.tests.util.ServiceTestBase;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerStartStopTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerStartStopTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/JMSServerStartStopTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,15 +22,15 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.FileConfiguration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.jms.HornetQConnectionFactory;
-import org.hornetq.api.jms.server.JMSServerManager;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.impl.FileConfiguration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.impl.HornetQServerImpl;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
+import org.hornetq.jms.server.JMSServerManager;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.spi.core.security.HornetQSecurityManager;
 import org.hornetq.spi.core.security.HornetQSecurityManagerImpl;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/config/JMSConfigurationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/config/JMSConfigurationTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/config/JMSConfigurationTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,20 +21,20 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.jms.config.ConnectionFactoryConfiguration;
-import org.hornetq.api.jms.config.ConnectionFactoryConfigurationImpl;
-import org.hornetq.api.jms.config.JMSConfiguration;
-import org.hornetq.api.jms.config.JMSConfigurationImpl;
-import org.hornetq.api.jms.config.QueueConfigurationImpl;
-import org.hornetq.api.jms.config.TopicConfiguration;
-import org.hornetq.api.jms.config.TopicConfigurationImpl;
-import org.hornetq.api.jms.server.JMSServerManager;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.impl.HornetQServerImpl;
+import org.hornetq.jms.server.JMSServerManager;
+import org.hornetq.jms.server.config.ConnectionFactoryConfiguration;
+import org.hornetq.jms.server.config.JMSConfiguration;
+import org.hornetq.jms.server.config.TopicConfiguration;
+import org.hornetq.jms.server.config.impl.ConnectionFactoryConfigurationImpl;
+import org.hornetq.jms.server.config.impl.JMSConfigurationImpl;
+import org.hornetq.jms.server.config.impl.QueueConfigurationImpl;
+import org.hornetq.jms.server.config.impl.TopicConfigurationImpl;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.unit.util.InVMContext;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.ServiceTestBase;

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -28,18 +28,18 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQConnectionFactory;
 import org.hornetq.api.jms.HornetQQueue;
 import org.hornetq.api.jms.management.JMSQueueControl;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.settings.impl.AddressSettings;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.integration.management.ManagementControlHelper;
 import org.hornetq.tests.integration.management.ManagementTestBase;
 import org.hornetq.tests.unit.util.InVMContext;

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSQueueControlUsingJMSTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,12 +19,12 @@
 import javax.jms.QueueSession;
 import javax.jms.Session;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.ResourceNames;
 import org.hornetq.api.jms.HornetQConnectionFactory;
 import org.hornetq.api.jms.HornetQQueue;
 import org.hornetq.api.jms.management.JMSQueueControl;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControl2Test.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControl2Test.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControl2Test.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,18 +24,18 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.management.JMSServerControl;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.integration.management.ManagementControlHelper;
 import org.hornetq.tests.integration.management.ManagementTestBase;
 import org.hornetq.tests.unit.util.InVMContext;

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -23,20 +23,20 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
 import org.hornetq.api.core.management.ObjectNameBuilder;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.management.JMSServerControl;
-import org.hornetq.api.jms.server.JMSServerManager;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
+import org.hornetq.jms.server.JMSServerManager;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.integration.management.ManagementControlHelper;
 import org.hornetq.tests.integration.management.ManagementTestBase;
 import org.hornetq.tests.unit.util.InVMContext;

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/JMSServerControlUsingJMSTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,12 +19,12 @@
 import javax.jms.QueueSession;
 import javax.jms.Session;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.ResourceNames;
 import org.hornetq.api.jms.HornetQConnectionFactory;
 import org.hornetq.api.jms.HornetQQueue;
 import org.hornetq.api.jms.management.JMSServerControl;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,16 +21,16 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQTopic;
 import org.hornetq.api.jms.management.SubscriptionInfo;
 import org.hornetq.api.jms.management.TopicControl;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.integration.management.ManagementControlHelper;
 import org.hornetq.tests.integration.management.ManagementTestBase;
 import org.hornetq.tests.util.RandomUtil;

Modified: trunk/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlUsingJMSTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlUsingJMSTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/jms/server/management/TopicControlUsingJMSTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,17 +21,17 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.ResourceNames;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQConnectionFactory;
 import org.hornetq.api.jms.HornetQQueue;
 import org.hornetq.api.jms.HornetQTopic;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.integration.management.ManagementTestBase;
 import org.hornetq.tests.util.RandomUtil;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/journal/AIOJournalCompactTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/journal/AIOJournalCompactTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/journal/AIOJournalCompactTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -17,7 +17,7 @@
 
 import junit.framework.TestSuite;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.journal.SequentialFileFactory;
 import org.hornetq.core.journal.impl.AIOSequentialFileFactory;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/journal/AIOJournalImplTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/journal/AIOJournalImplTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/journal/AIOJournalImplTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -18,8 +18,8 @@
 import junit.framework.Assert;
 import junit.framework.TestSuite;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.core.asyncio.impl.AsynchronousFileImpl;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.journal.SequentialFileFactory;
 import org.hornetq.core.journal.impl.AIOSequentialFileFactory;
 import org.hornetq.core.logging.Logger;

Modified: trunk/tests/src/org/hornetq/tests/integration/journal/ValidateTransactionHealthTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/journal/ValidateTransactionHealthTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/journal/ValidateTransactionHealthTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -20,8 +20,8 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.core.asyncio.impl.AsynchronousFileImpl;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.journal.Journal;
 import org.hornetq.core.journal.LoaderCallback;
 import org.hornetq.core.journal.PreparedTransactionInfo;

Modified: trunk/tests/src/org/hornetq/tests/integration/logging/LogDelegateTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/logging/LogDelegateTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/logging/LogDelegateTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,8 +15,8 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.logging.impl.JULLogDelegate;
 import org.hornetq.core.logging.impl.JULLogDelegateFactory;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/AcceptorControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/AcceptorControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/AcceptorControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,16 +21,16 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.AcceptorControl;
 import org.hornetq.api.core.management.NotificationType;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.management.Notification;
 import org.hornetq.tests.integration.SimpleNotificationService;
 import org.hornetq.tests.util.RandomUtil;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/AddressControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/AddressControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/AddressControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,17 +24,17 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.AddressControl;
 import org.hornetq.api.core.management.RoleInfo;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.security.CheckType;
 import org.hornetq.core.security.Role;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.tests.util.RandomUtil;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/management/AddressControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/AddressControlUsingCoreTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/AddressControlUsingCoreTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,17 +22,17 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.AddressControl;
 import org.hornetq.api.core.management.ResourceNames;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.security.CheckType;
 import org.hornetq.core.security.Role;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.RandomUtil;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,19 +24,19 @@
 import org.hornetq.api.Pair;
 import org.hornetq.api.SimpleString;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.api.core.management.BridgeControl;
 import org.hornetq.api.core.management.NotificationType;
 import org.hornetq.api.core.management.ObjectNameBuilder;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.core.server.management.Notification;
 import org.hornetq.tests.integration.SimpleNotificationService;
 import org.hornetq.tests.util.RandomUtil;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlUsingCoreTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/BridgeControlUsingCoreTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,18 +24,18 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.api.core.management.ObjectNameBuilder;
 import org.hornetq.api.core.management.ResourceNames;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.tests.util.RandomUtil;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/management/BroadcastGroupControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/BroadcastGroupControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/BroadcastGroupControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,14 +19,14 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.Pair;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
 import org.hornetq.api.core.management.BroadcastGroupControl;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.utils.json.JSONArray;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControl2Test.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControl2Test.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControl2Test.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,17 +25,17 @@
 
 import org.hornetq.api.Pair;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.api.core.management.ClusterConnectionControl;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
 import org.hornetq.integration.transports.netty.TransportConstants;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/ClusterConnectionControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,19 +25,19 @@
 
 import org.hornetq.api.Pair;
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.api.core.management.ClusterConnectionControl;
 import org.hornetq.api.core.management.NotificationType;
 import org.hornetq.api.core.management.ObjectNameBuilder;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.core.server.management.Notification;
 import org.hornetq.tests.integration.SimpleNotificationService;
 import org.hornetq.tests.util.RandomUtil;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/CoreMessagingProxy.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/CoreMessagingProxy.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/CoreMessagingProxy.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,8 +16,8 @@
 import org.hornetq.api.core.client.ClientMessage;
 import org.hornetq.api.core.client.ClientRequestor;
 import org.hornetq.api.core.client.ClientSession;
-import org.hornetq.api.core.config.ConfigurationImpl;
-import org.hornetq.api.core.management.client.ManagementHelper;
+import org.hornetq.api.core.management.ManagementHelper;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 
 /**
  * A MBeanUsingCoreMessage

Modified: trunk/tests/src/org/hornetq/tests/integration/management/DiscoveryGroupControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/DiscoveryGroupControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/DiscoveryGroupControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,14 +15,14 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
 import org.hornetq.api.core.management.DiscoveryGroupControl;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
 import org.hornetq.tests.util.RandomUtil;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/management/DivertControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/DivertControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/DivertControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,17 +16,17 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.api.core.management.DivertControl;
 import org.hornetq.api.core.management.ObjectNameBuilder;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.DivertConfiguration;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.tests.util.RandomUtil;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/management/HornetQServerControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/HornetQServerControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/HornetQServerControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,17 +19,17 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.HornetQServerControl;
 import org.hornetq.api.core.management.ObjectNameBuilder;
 import org.hornetq.api.core.management.QueueControl;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.messagecounter.impl.MessageCounterManagerImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.utils.json.JSONArray;
 import org.hornetq.utils.json.JSONObject;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/HornetQServerControlUsingCoreTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/HornetQServerControlUsingCoreTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/HornetQServerControlUsingCoreTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,10 +16,10 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.HornetQServerControl;
 import org.hornetq.api.core.management.ResourceNames;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/management/JMXDomainTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/JMXDomainTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/JMXDomainTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,14 +16,14 @@
 import java.util.HashMap;
 import java.util.Map;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.ObjectNameBuilder;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.TransportConstants;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 
 /**
  * A JMXDomainTest

Modified: trunk/tests/src/org/hornetq/tests/integration/management/ManagementHelperTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/ManagementHelperTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/ManagementHelperTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,7 +19,7 @@
 import junit.framework.Assert;
 import junit.framework.TestCase;
 
-import org.hornetq.api.core.management.client.ManagementHelper;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.message.Message;
 import org.hornetq.core.client.impl.ClientMessageImpl;
 import org.hornetq.core.logging.Logger;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/ManagementServiceImplTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/ManagementServiceImplTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/ManagementServiceImplTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,16 +16,16 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.management.AddressControl;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.QueueControl;
 import org.hornetq.api.core.management.ResourceNames;
-import org.hornetq.api.core.management.client.ManagementHelper;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.persistence.impl.nullpm.NullStorageManager;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.Queue;
 import org.hornetq.core.server.ServerMessage;
 import org.hornetq.core.server.impl.ServerMessageImpl;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/NotificationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/NotificationTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/NotificationTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,15 +25,15 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.management.client.ManagementHelper;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.api.core.management.ManagementHelper;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/management/QueueControlTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/QueueControlTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/QueueControlTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,19 +24,19 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.management.DayCounterInfo;
 import org.hornetq.api.core.management.HornetQServerControl;
 import org.hornetq.api.core.management.MessageCounterInfo;
 import org.hornetq.api.core.management.QueueControl;
 import org.hornetq.api.core.message.Message;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.messagecounter.impl.MessageCounterManagerImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.utils.json.JSONArray;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementTestBase.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementTestBase.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementTestBase.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -20,10 +20,10 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.api.core.management.ManagementHelper;
 import org.hornetq.api.core.management.ResourceNames;
-import org.hornetq.api.core.management.client.ManagementHelper;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithConfiguredAdminUserTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithConfiguredAdminUserTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithConfiguredAdminUserTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,13 +15,13 @@
 
 import java.util.Set;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.security.Role;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.settings.HierarchicalRepository;
 import org.hornetq.spi.core.security.HornetQSecurityManagerImpl;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithDefaultConfigurationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithDefaultConfigurationTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithDefaultConfigurationTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -13,12 +13,12 @@
 
 package org.hornetq.tests.integration.management;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 
 /**
  * A SecurityManagementTest

Modified: trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithModifiedConfigurationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithModifiedConfigurationTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/SecurityManagementWithModifiedConfigurationTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -13,11 +13,11 @@
 
 package org.hornetq.tests.integration.management;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 
 /**
  * A SecurityManagementTest

Modified: trunk/tests/src/org/hornetq/tests/integration/management/SecurityNotificationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/management/SecurityNotificationTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/management/SecurityNotificationTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -27,17 +27,17 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.management.client.ManagementHelper;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.api.core.management.ManagementHelper;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.security.CheckType;
 import org.hornetq.core.security.Role;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.spi.core.security.HornetQSecurityManager;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/paging/PageCrashTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/paging/PageCrashTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/paging/PageCrashTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,7 +29,7 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.paging.Page;
 import org.hornetq.core.paging.PagedMessage;
 import org.hornetq.core.paging.PagingManager;

Modified: trunk/tests/src/org/hornetq/tests/integration/persistence/RestartSMTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/persistence/RestartSMTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/persistence/RestartSMTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,7 +21,7 @@
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.persistence.GroupingInfo;
 import org.hornetq.core.persistence.QueueBindingInfo;

Modified: trunk/tests/src/org/hornetq/tests/integration/remoting/NetworkAddressTestBase.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/remoting/NetworkAddressTestBase.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/remoting/NetworkAddressTestBase.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,8 +29,8 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.tests.util.ServiceTestBase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/remoting/PingTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/remoting/PingTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/remoting/PingTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -23,12 +23,12 @@
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
 import org.hornetq.api.core.client.SessionFailureListener;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.interceptor.Interceptor;
 import org.hornetq.core.client.impl.ClientSessionFactoryInternal;
 import org.hornetq.core.client.impl.FailoverManagerImpl;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.CloseListener;
 import org.hornetq.core.remoting.Packet;

Modified: trunk/tests/src/org/hornetq/tests/integration/remoting/SynchronousCloseTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/remoting/SynchronousCloseTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/remoting/SynchronousCloseTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -18,8 +18,8 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;

Modified: trunk/tests/src/org/hornetq/tests/integration/replication/ReplicationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/replication/ReplicationTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/replication/ReplicationTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -33,12 +33,12 @@
 import org.hornetq.api.core.buffers.HornetQBuffers;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.interceptor.Interceptor;
 import org.hornetq.core.client.impl.FailoverManager;
 import org.hornetq.core.client.impl.FailoverManagerImpl;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.journal.EncodingSupport;
 import org.hornetq.core.journal.IOAsyncTask;
 import org.hornetq.core.journal.IOCompletion;

Modified: trunk/tests/src/org/hornetq/tests/integration/scheduling/DelayedMessageTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/scheduling/DelayedMessageTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/scheduling/DelayedMessageTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,7 +19,7 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.settings.impl.AddressSettings;

Modified: trunk/tests/src/org/hornetq/tests/integration/scheduling/ScheduledMessageTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/scheduling/ScheduledMessageTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/scheduling/ScheduledMessageTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -23,8 +23,8 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.message.Message;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.settings.impl.AddressSettings;

Modified: trunk/tests/src/org/hornetq/tests/integration/security/NettySecurityClientTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/security/NettySecurityClientTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/security/NettySecurityClientTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,11 +19,11 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
 import org.hornetq.tests.util.SpawnedVMSupport;

Modified: trunk/tests/src/org/hornetq/tests/integration/security/SecurityTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/security/SecurityTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/security/SecurityTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -37,8 +37,8 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.security.Role;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.Queue;

Modified: trunk/tests/src/org/hornetq/tests/integration/server/ExpiryRunnerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/server/ExpiryRunnerTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/server/ExpiryRunnerTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,11 +29,11 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.Queue;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/integration/server/LVQRecoveryTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/server/LVQRecoveryTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/server/LVQRecoveryTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,10 +24,10 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.message.Message;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.core.transaction.impl.XidImpl;

Modified: trunk/tests/src/org/hornetq/tests/integration/server/LVQTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/server/LVQTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/server/LVQTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,13 +21,13 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.message.Message;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/integration/server/PredefinedQueueTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/server/PredefinedQueueTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/server/PredefinedQueueTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,14 +25,14 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.postoffice.Bindings;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.tests.util.ServiceTestBase;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/integration/ssl/CoreClientOverSSLTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/ssl/CoreClientOverSSLTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/ssl/CoreClientOverSSLTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,13 +25,13 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.message.Message;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
 import org.hornetq.integration.transports.netty.TransportConstants;

Modified: trunk/tests/src/org/hornetq/tests/integration/xa/BasicXaRecoveryTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/xa/BasicXaRecoveryTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/xa/BasicXaRecoveryTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -27,8 +27,8 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.settings.impl.AddressSettings;

Modified: trunk/tests/src/org/hornetq/tests/integration/xa/BasicXaTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/xa/BasicXaTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/xa/BasicXaTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -30,8 +30,8 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.MessageHandler;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.settings.impl.AddressSettings;

Modified: trunk/tests/src/org/hornetq/tests/integration/xa/XaTimeoutTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/integration/xa/XaTimeoutTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/integration/xa/XaTimeoutTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -32,11 +32,11 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.Queue;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.core.transaction.Transaction;

Modified: trunk/tests/src/org/hornetq/tests/opt/SendTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/opt/SendTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/opt/SendTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -28,15 +28,15 @@
 import javax.jms.TextMessage;
 
 import org.hornetq.api.core.client.ClientSession;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQConnectionFactory;
 import org.hornetq.api.jms.HornetQQueue;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.JournalType;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;

Modified: trunk/tests/src/org/hornetq/tests/performance/paging/MeasurePagingMultiThreadTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/performance/paging/MeasurePagingMultiThreadTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/performance/paging/MeasurePagingMultiThreadTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,8 +21,8 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.tests.util.ServiceTestBase;

Modified: trunk/tests/src/org/hornetq/tests/stress/journal/CompactingStressTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/stress/journal/CompactingStressTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/stress/journal/CompactingStressTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -23,11 +23,11 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.message.Message;
 import org.hornetq.core.asyncio.impl.AsynchronousFileImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.JournalType;
 import org.hornetq.tests.util.ServiceTestBase;

Modified: trunk/tests/src/org/hornetq/tests/stress/journal/LargeJournalStressTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/stress/journal/LargeJournalStressTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/stress/journal/LargeJournalStressTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -23,9 +23,9 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.JournalType;
 import org.hornetq.tests.util.ServiceTestBase;

Modified: trunk/tests/src/org/hornetq/tests/stress/journal/MultiThreadConsumerStressTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/stress/journal/MultiThreadConsumerStressTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/stress/journal/MultiThreadConsumerStressTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,9 +24,9 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.JournalType;
 import org.hornetq.tests.util.ServiceTestBase;

Modified: trunk/tests/src/org/hornetq/tests/stress/journal/NIOMultiThreadCompactorStressTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/stress/journal/NIOMultiThreadCompactorStressTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/stress/journal/NIOMultiThreadCompactorStressTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -29,10 +29,10 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.core.asyncio.impl.AsynchronousFileImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.journal.PreparedTransactionInfo;
 import org.hornetq.core.journal.RecordInfo;
 import org.hornetq.core.journal.impl.JournalImpl;

Modified: trunk/tests/src/org/hornetq/tests/stress/paging/PageStressTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/stress/paging/PageStressTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/stress/paging/PageStressTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -23,8 +23,8 @@
 import org.hornetq.api.core.client.ClientProducer;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.server.HornetQServer;
 import org.hornetq.core.server.JournalType;
 import org.hornetq.core.settings.impl.AddressSettings;

Modified: trunk/tests/src/org/hornetq/tests/stress/remote/PingStressTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/stress/remote/PingStressTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/stress/remote/PingStressTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -18,10 +18,10 @@
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactory;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
 import org.hornetq.api.core.exception.HornetQException;
 import org.hornetq.api.core.interceptor.Interceptor;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.Packet;
 import org.hornetq.core.remoting.RemotingConnection;

Modified: trunk/tests/src/org/hornetq/tests/timing/jms/bridge/impl/JMSBridgeImplTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/timing/jms/bridge/impl/JMSBridgeImplTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/timing/jms/bridge/impl/JMSBridgeImplTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -40,21 +40,21 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
 import org.hornetq.api.jms.HornetQConnectionFactory;
 import org.hornetq.api.jms.HornetQQueue;
-import org.hornetq.api.jms.bridge.ConnectionFactoryFactory;
-import org.hornetq.api.jms.bridge.DestinationFactory;
-import org.hornetq.api.jms.bridge.JMSBridgeImpl;
-import org.hornetq.api.jms.bridge.QualityOfServiceMode;
-import org.hornetq.api.jms.server.JMSServerManager;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
+import org.hornetq.core.server.HornetQServers;
+import org.hornetq.jms.bridge.ConnectionFactoryFactory;
+import org.hornetq.jms.bridge.DestinationFactory;
+import org.hornetq.jms.bridge.QualityOfServiceMode;
+import org.hornetq.jms.bridge.impl.JMSBridgeImpl;
+import org.hornetq.jms.server.JMSServerManager;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.unit.util.InVMContext;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationImplTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationImplTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationImplTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -21,8 +21,8 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.server.JournalType;
 import org.hornetq.tests.util.RandomUtil;
 import org.hornetq.tests.util.UnitTestCase;

Modified: trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationValidationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationValidationTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/unit/core/config/impl/ConfigurationValidationTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,7 +15,7 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.FileConfiguration;
+import org.hornetq.core.config.impl.FileConfiguration;
 import org.hornetq.tests.util.UnitTestCase;
 import org.hornetq.utils.XMLUtil;
 import org.w3c.dom.Element;

Modified: trunk/tests/src/org/hornetq/tests/unit/core/config/impl/DefaultsFileConfigurationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/config/impl/DefaultsFileConfigurationTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/unit/core/config/impl/DefaultsFileConfigurationTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -17,9 +17,9 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
-import org.hornetq.api.core.config.FileConfiguration;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
+import org.hornetq.core.config.impl.FileConfiguration;
 
 /**
  * 

Modified: trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/unit/core/config/impl/FileConfigurationTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -16,15 +16,15 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.FileConfiguration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.config.cluster.BridgeConfiguration;
-import org.hornetq.api.core.config.cluster.BroadcastGroupConfiguration;
-import org.hornetq.api.core.config.cluster.ClusterConnectionConfiguration;
-import org.hornetq.api.core.config.cluster.DiscoveryGroupConfiguration;
-import org.hornetq.api.core.config.cluster.DivertConfiguration;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.FileConfiguration;
 import org.hornetq.core.server.JournalType;
+import org.hornetq.core.server.cluster.BridgeConfiguration;
+import org.hornetq.core.server.cluster.BroadcastGroupConfiguration;
+import org.hornetq.core.server.cluster.ClusterConnectionConfiguration;
+import org.hornetq.core.server.cluster.DiscoveryGroupConfiguration;
+import org.hornetq.core.server.cluster.DivertConfiguration;
 
 /**
  * @author <a href="ataylor at redhat.com">Andy Taylor</a>

Modified: trunk/tests/src/org/hornetq/tests/unit/core/deployers/impl/QueueDeployerTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/deployers/impl/QueueDeployerTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/unit/core/deployers/impl/QueueDeployerTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -18,11 +18,11 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.cluster.QueueConfiguration;
 import org.hornetq.api.core.management.HornetQServerControl;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.deployers.DeploymentManager;
 import org.hornetq.core.deployers.impl.QueueDeployer;
+import org.hornetq.core.server.cluster.QueueConfiguration;
 import org.hornetq.tests.util.UnitTestCase;
 import org.w3c.dom.Element;
 import org.w3c.dom.NodeList;

Modified: trunk/tests/src/org/hornetq/tests/unit/core/postoffice/impl/DuplicateDetectionUnitTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/postoffice/impl/DuplicateDetectionUnitTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/unit/core/postoffice/impl/DuplicateDetectionUnitTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,8 +25,8 @@
 
 import org.hornetq.api.Pair;
 import org.hornetq.api.SimpleString;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.paging.PageTransactionInfo;
 import org.hornetq.core.paging.PagingManager;
 import org.hornetq.core.paging.PagingStore;

Modified: trunk/tests/src/org/hornetq/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/unit/core/remoting/impl/netty/NettyAcceptorFactoryTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -19,8 +19,8 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.core.buffers.HornetQBuffer;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.AbstractBufferHandler;
 import org.hornetq.integration.transports.netty.NettyAcceptor;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;

Modified: trunk/tests/src/org/hornetq/tests/unit/core/remoting/impl/netty/NettyAcceptorTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/core/remoting/impl/netty/NettyAcceptorTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/unit/core/remoting/impl/netty/NettyAcceptorTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -20,8 +20,8 @@
 import junit.framework.Assert;
 
 import org.hornetq.api.core.buffers.HornetQBuffer;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.exception.HornetQException;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.remoting.impl.AbstractBufferHandler;
 import org.hornetq.integration.transports.netty.NettyAcceptor;
 import org.hornetq.integration.transports.netty.TransportConstants;

Modified: trunk/tests/src/org/hornetq/tests/unit/jms/misc/ManifestTest.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/unit/jms/misc/ManifestTest.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/unit/jms/misc/ManifestTest.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -24,10 +24,10 @@
 
 import junit.framework.Assert;
 
-import org.hornetq.api.core.config.ConfigurationImpl;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.jms.client.HornetQConnectionMetaData;
 import org.hornetq.tests.util.UnitTestCase;
 

Modified: trunk/tests/src/org/hornetq/tests/util/JMSTestBase.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/util/JMSTestBase.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/util/JMSTestBase.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -22,13 +22,13 @@
 
 import org.hornetq.api.Pair;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
-import org.hornetq.api.jms.server.JMSServerManagerImpl;
+import org.hornetq.core.config.Configuration;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;
 import org.hornetq.integration.transports.netty.NettyConnectorFactory;
+import org.hornetq.jms.server.impl.JMSServerManagerImpl;
 import org.hornetq.tests.unit.util.InVMContext;
 
 /**

Modified: trunk/tests/src/org/hornetq/tests/util/ListJournal.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/util/ListJournal.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/util/ListJournal.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -15,7 +15,7 @@
 
 import java.util.ArrayList;
 
-import org.hornetq.api.core.config.FileConfiguration;
+import org.hornetq.core.config.impl.FileConfiguration;
 import org.hornetq.core.journal.PreparedTransactionInfo;
 import org.hornetq.core.journal.RecordInfo;
 import org.hornetq.core.journal.impl.JournalImpl;

Modified: trunk/tests/src/org/hornetq/tests/util/ServiceTestBase.java
===================================================================
--- trunk/tests/src/org/hornetq/tests/util/ServiceTestBase.java	2010-01-05 17:41:42 UTC (rev 8720)
+++ trunk/tests/src/org/hornetq/tests/util/ServiceTestBase.java	2010-01-05 19:49:35 UTC (rev 8721)
@@ -25,14 +25,14 @@
 import org.hornetq.api.core.client.ClientMessage;
 import org.hornetq.api.core.client.ClientSession;
 import org.hornetq.api.core.client.ClientSessionFactoryImpl;
-import org.hornetq.api.core.config.Configuration;
-import org.hornetq.api.core.config.ConfigurationImpl;
 import org.hornetq.api.core.config.TransportConfiguration;
-import org.hornetq.api.core.server.HornetQServers;
+import org.hornetq.core.config.Configuration;
+import org.hornetq.core.config.impl.ConfigurationImpl;
 import org.hornetq.core.logging.Logger;
 import org.hornetq.core.remoting.impl.invm.InVMAcceptorFactory;
 import org.hornetq.core.remoting.impl.invm.InVMConnectorFactory;
 import org.hornetq.core.server.HornetQServer;
+import org.hornetq.core.server.HornetQServers;
 import org.hornetq.core.server.JournalType;
 import org.hornetq.core.settings.impl.AddressSettings;
 import org.hornetq.integration.transports.netty.NettyAcceptorFactory;



More information about the hornetq-commits mailing list