You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kw...@apache.org on 2015/01/27 16:00:16 UTC
svn commit: r1655057 [3/8] - in /qpid/branches/QPID-6262-JavaBrokerNIO: ./
qpid/ qpid/cpp/examples/messaging/ qpid/cpp/src/
qpid/cpp/src/qpid/amqp_0_10/ qpid/cpp/src/qpid/broker/
qpid/cpp/src/qpid/broker/amqp/ qpid/cpp/src/qpid/client/amqp0_10/ qpid/cp...
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBSystemConfigImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBSystemConfigImpl.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBSystemConfigImpl.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/BDBSystemConfigImpl.java Tue Jan 27 15:00:13 2015
@@ -20,7 +20,8 @@
*/
package org.apache.qpid.server.store.berkeleydb;
-import org.apache.qpid.server.BrokerOptions;
+import java.util.Map;
+
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.logging.EventLogger;
import org.apache.qpid.server.logging.LogRecorder;
@@ -49,10 +50,10 @@ public class BDBSystemConfigImpl extends
public BDBSystemConfigImpl(final TaskExecutor taskExecutor,
final EventLogger eventLogger,
final LogRecorder logRecorder,
- final BrokerOptions brokerOptions,
+ final Map<String,Object> attributes,
final BrokerShutdownProvider brokerShutdownProvider)
{
- super(taskExecutor, eventLogger, logRecorder, brokerOptions, brokerShutdownProvider);
+ super(taskExecutor, eventLogger, logRecorder, attributes, brokerShutdownProvider);
}
@Override
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/CoalescingCommiter.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/CoalescingCommiter.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/CoalescingCommiter.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/CoalescingCommiter.java Tue Jan 27 15:00:13 2015
@@ -50,14 +50,17 @@ public class CoalescingCommiter implemen
public void stop()
{
_commitThread.close();
- try
+ if (Thread.currentThread() != _commitThread)
{
- _commitThread.join();
- }
- catch (InterruptedException ie)
- {
- Thread.currentThread().interrupt();
- throw new RuntimeException("Commit thread has not shutdown", ie);
+ try
+ {
+ _commitThread.join();
+ }
+ catch (InterruptedException ie)
+ {
+ Thread.currentThread().interrupt();
+ throw new RuntimeException("Commit thread has not shutdown", ie);
+ }
}
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacade.java Tue Jan 27 15:00:13 2015
@@ -392,6 +392,13 @@ public class ReplicatedEnvironmentFacade
}
}
+ if (dbe instanceof UnknownMasterException)
+ {
+ // when Master transits into Unknown state ( for example, due to mastership transfer)
+ // we need to abort any ongoing je operation without halting the Broker or VHN/VH
+ return new ConnectionScopedRuntimeException(String.format("Environment '%s' cannot finish JE operation because master is unknown", getNodeName()), dbe);
+ }
+
boolean restart = (noMajority || dbe instanceof RestartRequiredException);
if (restart)
{
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHost.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHost.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAReplicaVirtualHost.java Tue Jan 27 15:00:13 2015
@@ -19,456 +19,17 @@
package org.apache.qpid.server.virtualhost.berkeleydb;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-import java.util.concurrent.ScheduledFuture;
-
-import org.apache.qpid.server.connection.IConnectionRegistry;
import org.apache.qpid.server.exchange.ExchangeImpl;
-import org.apache.qpid.server.logging.EventLogger;
-import org.apache.qpid.server.message.MessageDestination;
-import org.apache.qpid.server.message.MessageSource;
-import org.apache.qpid.server.model.AbstractConfiguredObject;
-import org.apache.qpid.server.model.BrokerModel;
-import org.apache.qpid.server.model.ConfiguredObject;
-import org.apache.qpid.server.model.Connection;
-import org.apache.qpid.server.model.Exchange;
-import org.apache.qpid.server.model.ManagedAttributeField;
-import org.apache.qpid.server.model.ManagedObject;
-import org.apache.qpid.server.model.ManagedObjectFactoryConstructor;
-import org.apache.qpid.server.model.Queue;
-import org.apache.qpid.server.model.State;
-import org.apache.qpid.server.model.VirtualHost;
-import org.apache.qpid.server.model.VirtualHostAlias;
-import org.apache.qpid.server.model.VirtualHostNode;
-import org.apache.qpid.server.protocol.LinkRegistry;
import org.apache.qpid.server.queue.AMQQueue;
-import org.apache.qpid.server.stats.StatisticsCounter;
-import org.apache.qpid.server.store.DurableConfigurationStore;
-import org.apache.qpid.server.store.MessageStore;
-import org.apache.qpid.server.txn.DtxRegistry;
-import org.apache.qpid.server.virtualhost.ExchangeIsAlternateException;
-import org.apache.qpid.server.virtualhost.HouseKeepingTask;
-import org.apache.qpid.server.virtualhost.RequiredExchangeException;
+import org.apache.qpid.server.virtualhost.NonStandardVirtualHost;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
/**
Object that represents the VirtualHost whilst the VirtualHostNode is in the replica role. The
real virtualhost will be elsewhere in the group.
*/
-@ManagedObject( category = false, type = "BDB_HA_REPLICA", register = false )
-public class BDBHAReplicaVirtualHost extends AbstractConfiguredObject<BDBHAReplicaVirtualHost>
- implements VirtualHostImpl<BDBHAReplicaVirtualHost, AMQQueue<?>, ExchangeImpl<?>>,
- VirtualHost<BDBHAReplicaVirtualHost,AMQQueue<?>, ExchangeImpl<?>>
+public interface BDBHAReplicaVirtualHost<X extends BDBHAReplicaVirtualHost<X>>
+ extends VirtualHostImpl<X, AMQQueue<?>, ExchangeImpl<?>>,
+ NonStandardVirtualHost<X,AMQQueue<?>,ExchangeImpl<?>>
{
- private final StatisticsCounter _messagesDelivered, _dataDelivered, _messagesReceived, _dataReceived;
-
- @ManagedAttributeField
- private boolean _queue_deadLetterQueueEnabled;
-
- @ManagedAttributeField
- private long _housekeepingCheckPeriod;
-
- @ManagedAttributeField
- private long _storeTransactionIdleTimeoutClose;
-
- @ManagedAttributeField
- private long _storeTransactionIdleTimeoutWarn;
-
- @ManagedAttributeField
- private long _storeTransactionOpenTimeoutClose;
-
- @ManagedAttributeField
- private long _storeTransactionOpenTimeoutWarn;
- @ManagedAttributeField
- private int _housekeepingThreadCount;
-
- @ManagedObjectFactoryConstructor
- public BDBHAReplicaVirtualHost(final Map<String, Object> attributes, VirtualHostNode<?> virtualHostNode)
- {
- super(parentsMap(virtualHostNode), attributes);
-
- _messagesDelivered = new StatisticsCounter("messages-delivered-" + getName());
- _dataDelivered = new StatisticsCounter("bytes-delivered-" + getName());
- _messagesReceived = new StatisticsCounter("messages-received-" + getName());
- _dataReceived = new StatisticsCounter("bytes-received-" + getName());
- setState(State.UNAVAILABLE);
- }
-
- @Override
- protected void validateChange(final ConfiguredObject<?> proxyForValidation, final Set<String> changedAttributes)
- {
- super.validateChange(proxyForValidation, changedAttributes);
-
- throwUnsupportedForReplica();
- }
-
- @Override
- public String getModelVersion()
- {
- return BrokerModel.MODEL_VERSION;
- }
-
- @Override
- protected <C extends ConfiguredObject> C addChild(final Class<C> childClass,
- final Map<String, Object> attributes,
- final ConfiguredObject... otherParents)
- {
- throwUnsupportedForReplica();
- return null;
- }
-
- @Override
- public ExchangeImpl createExchange(final Map<String, Object> attributes)
- {
- throwUnsupportedForReplica();
- return null;
- }
-
- @Override
- public void removeExchange(final ExchangeImpl<?> exchange, final boolean force)
- throws ExchangeIsAlternateException, RequiredExchangeException
- {
- throwUnsupportedForReplica();
- }
-
- @Override
- public MessageDestination getMessageDestination(final String name)
- {
- return null;
- }
-
- @Override
- public ExchangeImpl<?> getExchange(final String name)
- {
- return null;
- }
-
- @Override
- public AMQQueue<?> createQueue(final Map<String, Object> attributes)
- {
- throwUnsupportedForReplica();
- return null;
- }
-
- @Override
- public void executeTransaction(final TransactionalOperation op)
- {
- throwUnsupportedForReplica();
- }
-
- @Override
- public Collection<String> getExchangeTypeNames()
- {
- return getObjectFactory().getSupportedTypes(Exchange.class);
- }
-
- @Override
- public Collection<String> getSupportedExchangeTypes()
- {
- return getObjectFactory().getSupportedTypes(Exchange.class);
- }
-
- @Override
- public Collection<String> getSupportedQueueTypes()
- {
- return getObjectFactory().getSupportedTypes(Queue.class);
- }
-
- @Override
- public boolean isQueue_deadLetterQueueEnabled()
- {
- return false;
- }
-
- @Override
- public long getHousekeepingCheckPeriod()
- {
- return 0;
- }
-
- @Override
- public long getStoreTransactionIdleTimeoutClose()
- {
- return 0;
- }
-
- @Override
- public long getStoreTransactionIdleTimeoutWarn()
- {
- return 0;
- }
-
- @Override
- public long getStoreTransactionOpenTimeoutClose()
- {
- return 0;
- }
-
- @Override
- public long getStoreTransactionOpenTimeoutWarn()
- {
- return 0;
- }
-
- @Override
- public int getHousekeepingThreadCount()
- {
- return 0;
- }
-
- @Override
- public long getQueueCount()
- {
- return 0;
- }
-
- @Override
- public long getExchangeCount()
- {
- return 0;
- }
-
- @Override
- public long getConnectionCount()
- {
- return 0;
- }
-
- @Override
- public long getBytesIn()
- {
- return 0;
- }
-
- @Override
- public long getBytesOut()
- {
- return 0;
- }
-
- @Override
- public long getMessagesIn()
- {
- return 0;
- }
-
- @Override
- public long getMessagesOut()
- {
- return 0;
- }
-
- @Override
- public Collection<VirtualHostAlias> getAliases()
- {
- return Collections.emptyList();
- }
-
- @Override
- public Collection<Connection> getConnections()
- {
- return Collections.emptyList();
- }
-
- @Override
- public IConnectionRegistry getConnectionRegistry()
- {
- return null;
- }
-
- @Override
- public AMQQueue<?> getQueue(final String name)
- {
- return null;
- }
-
- @Override
- public MessageSource getMessageSource(final String name)
- {
- return null;
- }
-
- @Override
- public AMQQueue<?> getQueue(final UUID id)
- {
- return null;
- }
-
- @Override
- public Collection<AMQQueue<?>> getQueues()
- {
- return Collections.emptyList();
- }
-
- @Override
- public int removeQueue(final AMQQueue<?> queue)
- {
- throwUnsupportedForReplica();
- return 0;
- }
-
- @Override
- public Collection<ExchangeImpl<?>> getExchanges()
- {
- return Collections.emptyList();
- }
-
- @Override
- public DurableConfigurationStore getDurableConfigurationStore()
- {
- return null;
- }
-
- @Override
- public ExchangeImpl<?> getExchange(final UUID id)
- {
- return null;
- }
-
- @Override
- public MessageDestination getDefaultDestination()
- {
- return null;
- }
-
- @Override
- public MessageStore getMessageStore()
- {
- return null;
- }
-
- @Override
- public void setTargetSize(final long targetSize)
- {
-
- }
-
- @Override
- public long getTotalQueueDepthBytes()
- {
- return 0l;
- }
-
- @Override
- public org.apache.qpid.server.security.SecurityManager getSecurityManager()
- {
- return null;
- }
-
- @Override
- public void scheduleHouseKeepingTask(final long period, final HouseKeepingTask task)
- {
- }
-
- @Override
- public long getHouseKeepingTaskCount()
- {
- return 0;
- }
-
- @Override
- public long getHouseKeepingCompletedTaskCount()
- {
- return 0;
- }
-
- @Override
- public int getHouseKeepingPoolSize()
- {
- return 0;
- }
-
- @Override
- public void setHouseKeepingPoolSize(final int newSize)
- {
- }
-
- @Override
- public int getHouseKeepingActiveCount()
- {
- return 0;
- }
-
- @Override
- public DtxRegistry getDtxRegistry()
- {
- return null;
- }
-
- @Override
- public LinkRegistry getLinkRegistry(final String remoteContainerId)
- {
- return null;
- }
-
- @Override
- public ScheduledFuture<?> scheduleTask(final long delay, final Runnable timeoutTask)
- {
- throwUnsupportedForReplica();
- return null;
- }
-
- @Override
- public boolean getDefaultDeadLetterQueueEnabled()
- {
- return false;
- }
-
- @Override
- public EventLogger getEventLogger()
- {
- return null;
- }
-
- @Override
- public void registerMessageReceived(final long messageSize, final long timestamp)
- {
- throwUnsupportedForReplica();
- }
-
- @Override
- public void registerMessageDelivered(final long messageSize)
- {
- throwUnsupportedForReplica();
- }
-
- @Override
- public StatisticsCounter getMessageDeliveryStatistics()
- {
- return _messagesDelivered;
- }
-
- @Override
- public StatisticsCounter getMessageReceiptStatistics()
- {
- return _messagesReceived;
- }
-
- @Override
- public StatisticsCounter getDataDeliveryStatistics()
- {
- return _dataDelivered;
- }
-
- @Override
- public StatisticsCounter getDataReceiptStatistics()
- {
- return _dataReceived;
- }
-
- @Override
- public void resetStatistics()
- {
- }
-
- private void throwUnsupportedForReplica()
- {
- throw new IllegalStateException("The virtual host state of " + getState()
- + " does not permit this operation.");
- }
-
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHost.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHost.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHost.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhost/berkeleydb/BDBHAVirtualHost.java Tue Jan 27 15:00:13 2015
@@ -20,16 +20,18 @@
*/
package org.apache.qpid.server.virtualhost.berkeleydb;
-import java.util.List;
-
import org.apache.qpid.server.exchange.ExchangeImpl;
import org.apache.qpid.server.model.DerivedAttribute;
import org.apache.qpid.server.model.ManagedAttribute;
import org.apache.qpid.server.queue.AMQQueue;
import org.apache.qpid.server.store.SizeMonitoringSettings;
+import org.apache.qpid.server.virtualhost.NonStandardVirtualHost;
import org.apache.qpid.server.virtualhost.VirtualHostImpl;
-public interface BDBHAVirtualHost<X extends BDBHAVirtualHost<X>> extends VirtualHostImpl<X, AMQQueue<?>, ExchangeImpl<?>>, SizeMonitoringSettings
+public interface BDBHAVirtualHost<X extends BDBHAVirtualHost<X>>
+ extends VirtualHostImpl<X, AMQQueue<?>, ExchangeImpl<?>>,
+ SizeMonitoringSettings,
+ NonStandardVirtualHost<X,AMQQueue<?>,ExchangeImpl<?>>
{
String REMOTE_TRANSACTION_SYNCHRONIZATION_POLICY = "remoteTransactionSynchronizationPolicy";
String LOCAL_TRANSACTION_SYNCHRONIZATION_POLICY = "localTransactionSynchronizationPolicy";
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBHAVirtualHostNodeImpl.java Tue Jan 27 15:00:13 2015
@@ -21,15 +21,14 @@
package org.apache.qpid.server.virtualhostnode.berkeleydb;
import java.io.File;
-import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.URI;
import java.net.URISyntaxException;
-import java.nio.file.Files;
import java.security.PrivilegedAction;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
@@ -62,7 +61,6 @@ import org.apache.qpid.server.logging.me
import org.apache.qpid.server.logging.messages.HighAvailabilityMessages;
import org.apache.qpid.server.logging.subjects.BDBHAVirtualHostNodeLogSubject;
import org.apache.qpid.server.logging.subjects.GroupLogSubject;
-import org.apache.qpid.server.model.AbstractConfiguredObject;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.BrokerModel;
import org.apache.qpid.server.model.ConfiguredObject;
@@ -88,7 +86,8 @@ import org.apache.qpid.server.util.Serve
import org.apache.qpid.server.virtualhost.berkeleydb.BDBHAVirtualHostImpl;
import org.apache.qpid.server.virtualhostnode.AbstractVirtualHostNode;
-@ManagedObject( category = false, type = BDBHAVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE )
+@ManagedObject( category = false, type = BDBHAVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE,
+ validChildTypes = "org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHAVirtualHostNodeImpl#getSupportedChildTypes()" )
public class BDBHAVirtualHostNodeImpl extends AbstractVirtualHostNode<BDBHAVirtualHostNodeImpl> implements
BDBHAVirtualHostNode<BDBHAVirtualHostNodeImpl>
{
@@ -637,12 +636,6 @@ public class BDBHAVirtualHostNodeImpl ex
createReplicaVirtualHost();
}
-
- private void onDetached()
- {
- closeVirtualHostIfExist();
- }
-
private void createReplicaVirtualHost()
{
try
@@ -694,9 +687,10 @@ public class BDBHAVirtualHostNodeImpl ex
onReplica();
break;
case DETACHED:
- onDetached();
+ closeVirtualHostIfExist();
break;
case UNKNOWN:
+ closeVirtualHostIfExist();
break;
default:
LOGGER.error("Unexpected state change: " + state);
@@ -1205,4 +1199,8 @@ public class BDBHAVirtualHostNodeImpl ex
abstract void perform();
}
+ public static Map<String, Collection<String>> getSupportedChildTypes()
+ {
+ return Collections.singletonMap(VirtualHost.class.getSimpleName(), (Collection<String>) Collections.singleton(BDBHAVirtualHostImpl.VIRTUAL_HOST_TYPE));
+ }
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNodeImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNodeImpl.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNodeImpl.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/org/apache/qpid/server/virtualhostnode/berkeleydb/BDBVirtualHostNodeImpl.java Tue Jan 27 15:00:13 2015
@@ -20,6 +20,8 @@
*/
package org.apache.qpid.server.virtualhostnode.berkeleydb;
+import java.util.Collection;
+import java.util.Collections;
import java.util.Map;
import org.apache.qpid.server.logging.messages.ConfigStoreMessages;
@@ -32,7 +34,8 @@ import org.apache.qpid.server.store.Dura
import org.apache.qpid.server.store.berkeleydb.BDBConfigurationStore;
import org.apache.qpid.server.virtualhostnode.AbstractStandardVirtualHostNode;
-@ManagedObject(type = BDBVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE, category = false)
+@ManagedObject(type = BDBVirtualHostNodeImpl.VIRTUAL_HOST_NODE_TYPE, category = false,
+ validChildTypes = "org.apache.qpid.server.virtualhostnode.berkeleydb.BDBVirtualHostNodeImpl#getSupportedChildTypes()")
public class BDBVirtualHostNodeImpl extends AbstractStandardVirtualHostNode<BDBVirtualHostNodeImpl> implements BDBVirtualHostNode<BDBVirtualHostNodeImpl>
{
public static final String VIRTUAL_HOST_NODE_TYPE = "BDB";
@@ -70,4 +73,8 @@ public class BDBVirtualHostNodeImpl exte
return getClass().getSimpleName() + " [id=" + getId() + ", name=" + getName() + ", storePath=" + getStorePath() + "]";
}
+ public static Map<String, Collection<String>> getSupportedChildTypes()
+ {
+ return Collections.singletonMap(VirtualHost.class.getSimpleName(), getSupportedVirtualHostTypes(true));
+ }
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhostnode/bdb_ha/add/existinggroup/add.js
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhostnode/bdb_ha/add/existinggroup/add.js?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhostnode/bdb_ha/add/existinggroup/add.js (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhostnode/bdb_ha/add/existinggroup/add.js Tue Jan 27 15:00:13 2015
@@ -39,6 +39,9 @@ define(["dojo/_base/xhr",
registry.byId("addVirtualHostNode.helperNodeName").set("regExpGen", util.nameOrContextVarRegexp);
registry.byId("addVirtualHostNode.helperAddress").set("regExpGen", util.nodeAddressOrContextVarRegexp);
registry.byId("addVirtualHostNode.address").set("regExpGen", util.nodeAddressOrContextVarRegexp);
+
+ dom.byId("addVirtualHostNode.uploadFields").style.display = "none";
+
}
};
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhostnode/bdb_ha/add/newgroup/add.js
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhostnode/bdb_ha/add/newgroup/add.js?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhostnode/bdb_ha/add/newgroup/add.js (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/main/java/resources/js/qpid/management/virtualhostnode/bdb_ha/add/newgroup/add.js Tue Jan 27 15:00:13 2015
@@ -70,6 +70,9 @@ define(["dojo/_base/xhr",
this.addVirtualHostNodePermittedNodes = registry.byId("addVirtualHostNode.permittedNodes");
registry.byId("addVirtualHostNode.groupName").set("regExpGen", util.nameOrContextVarRegexp);
+
+ dom.byId("addVirtualHostNode.uploadFields").style.display = "block";
+
},
_updatePermittedNodesJson: function ()
{
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/ReplicatedEnvironmentFacadeTest.java Tue Jan 27 15:00:13 2015
@@ -803,7 +803,7 @@ public class ReplicatedEnvironmentFacade
_replicaRolledback.countDown();
}
});
- assertTrue("Node 1 did not go into desired state",
+ assertTrue("Node 1 did not go into desired state and remained in state " + node1.getNodeState(),
node1StateChangeListener.awaitForStateChange(LISTENER_TIMEOUT, TimeUnit.SECONDS));
assertTrue("Node 1 did not experience rollback within timeout",
_replicaRolledback.await(LISTENER_TIMEOUT, TimeUnit.SECONDS));
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/pom.xml
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/pom.xml?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/pom.xml (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/pom.xml Tue Jan 27 15:00:13 2015
@@ -80,6 +80,16 @@
</dependencies>
<build>
+
+ <resources>
+ <resource>
+ <directory>src/main/resources</directory>
+ </resource>
+ <resource>
+ <directory>${test.resource.directory}/test-profiles/test_resources</directory>
+ </resource>
+ </resources>
+
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/BDBBackupTest.java Tue Jan 27 15:00:13 2015
@@ -31,6 +31,7 @@ import javax.jms.MessageConsumer;
import javax.jms.Session;
import org.apache.log4j.Logger;
+import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.model.VirtualHostNode;
import org.apache.qpid.server.virtualhostnode.berkeleydb.BDBVirtualHostNode;
import org.apache.qpid.test.utils.Piper;
@@ -151,15 +152,15 @@ public class BDBBackupTest extends QpidB
Process backupProcess = null;
try
{
- String qpidHome = System.getProperty(QPID_HOME);
+ String qpidHome = QPID_HOME;
ProcessBuilder pb = new ProcessBuilder(qpidHome + BACKUP_SCRIPT, "-todir", backupToDir.getAbsolutePath(), "-fromdir", backupFromDir.getAbsolutePath());
pb.redirectErrorStream(true);
Map<String, String> env = pb.environment();
- env.put(QPID_HOME, qpidHome);
+ env.put(BrokerProperties.PROPERTY_QPID_HOME, qpidHome);
LOGGER.debug("Backup command is " + pb.command());
backupProcess = pb.start();
- Piper piper = new Piper(backupProcess.getInputStream(), _testcaseOutputStream, null, BACKUP_COMPLETE_MESSAGE);
+ Piper piper = new Piper(backupProcess.getInputStream(), null, BACKUP_COMPLETE_MESSAGE, "BACKUP", "");
piper.start();
piper.await(2, TimeUnit.SECONDS);
backupProcess.waitFor();
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/GroupCreator.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/GroupCreator.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/GroupCreator.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/GroupCreator.java Tue Jan 27 15:00:13 2015
@@ -73,9 +73,9 @@ public class GroupCreator
private static final String MANY_BROKER_URL_FORMAT = "amqp://guest:guest@/%s?brokerlist='%s'&failover='roundrobin?cyclecount='%d''";
private static final String BROKER_PORTION_FORMAT = "tcp://localhost:%d?connectdelay='%d',retries='%d'";
- private static final int FAILOVER_CYCLECOUNT = 20;
+ private static final int FAILOVER_CYCLECOUNT = 40;
private static final int FAILOVER_RETRIES = 0;
- private static final int FAILOVER_CONNECTDELAY = 500;
+ private static final int FAILOVER_CONNECTDELAY = 250;
private static final String SINGLE_BROKER_URL_WITH_RETRY_FORMAT = "amqp://guest:guest@/%s?brokerlist='tcp://localhost:%d?connectdelay='%d',retries='%d''";
private static final String SINGLE_BROKER_URL_WITHOUT_RETRY_FORMAT = "amqp://guest:guest@/%s?brokerlist='tcp://localhost:%d'";
@@ -209,7 +209,7 @@ public class GroupCreator
{
try
{
- _testcase.startBroker(brokerPortNumber, brokerConfig);
+ _testcase.startBroker(brokerPortNumber, brokerConfig, null);
return "OK";
}
catch (Exception e)
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/JMXManagementTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/JMXManagementTest.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/JMXManagementTest.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/JMXManagementTest.java Tue Jan 27 15:00:13 2015
@@ -45,6 +45,7 @@ import org.apache.qpid.server.model.Virt
import org.apache.qpid.server.store.berkeleydb.jmx.ManagedBDBHAMessageStore;
import org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHAVirtualHostNode;
import org.apache.qpid.systest.rest.RestTestHelper;
+import org.apache.qpid.test.utils.BrokerHolder;
import org.apache.qpid.test.utils.JMXTestUtils;
import org.apache.qpid.test.utils.QpidBrokerTestCase;
import org.junit.Assert;
@@ -72,7 +73,7 @@ public class JMXManagementTest extends Q
@Override
protected void setUp() throws Exception
{
- _brokerType = BrokerType.SPAWNED;
+ _brokerType = BrokerHolder.BrokerType.SPAWNED;
setTestClientSystemProperty("log4j.configuration", getBrokerCommandLog4JFile().toURI().toString());
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/MultiNodeTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/MultiNodeTest.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/MultiNodeTest.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/MultiNodeTest.java Tue Jan 27 15:00:13 2015
@@ -48,6 +48,7 @@ import org.apache.qpid.jms.ConnectionURL
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.State;
import org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHAVirtualHostNode;
+import org.apache.qpid.test.utils.BrokerHolder;
import org.apache.qpid.test.utils.QpidBrokerTestCase;
import org.apache.qpid.test.utils.TestUtils;
@@ -75,7 +76,7 @@ public class MultiNodeTest extends QpidB
@Override
protected void setUp() throws Exception
{
- _brokerType = BrokerType.SPAWNED;
+ _brokerType = BrokerHolder.BrokerType.SPAWNED;
assertTrue(isJavaBroker());
assertTrue(isBrokerStorePersistent());
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/TwoNodeTest.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/TwoNodeTest.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/TwoNodeTest.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/bdbstore/systests/src/test/java/org/apache/qpid/server/store/berkeleydb/replication/TwoNodeTest.java Tue Jan 27 15:00:13 2015
@@ -28,6 +28,7 @@ import javax.jms.JMSException;
import org.apache.qpid.jms.ConnectionURL;
import org.apache.qpid.server.virtualhostnode.berkeleydb.BDBHAVirtualHostNode;
+import org.apache.qpid.test.utils.BrokerHolder;
import org.apache.qpid.test.utils.QpidBrokerTestCase;
public class TwoNodeTest extends QpidBrokerTestCase
@@ -47,7 +48,7 @@ public class TwoNodeTest extends QpidBro
@Override
protected void setUp() throws Exception
{
- _brokerType = BrokerType.SPAWNED;
+ _brokerType = BrokerHolder.BrokerType.SPAWNED;
setTestClientSystemProperty("log4j.configuration", getBrokerCommandLog4JFile().toURI().toString());
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/SystemConfigFactoryGenerator.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/SystemConfigFactoryGenerator.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/SystemConfigFactoryGenerator.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-codegen/src/main/java/org/apache/qpid/server/model/SystemConfigFactoryGenerator.java Tue Jan 27 15:00:13 2015
@@ -113,7 +113,8 @@ public class SystemConfigFactoryGenerato
pw.println(";");
pw.println();
- pw.println("import org.apache.qpid.server.BrokerOptions;");
+ pw.println("import java.util.Map;");
+ pw.println();
pw.println("import org.apache.qpid.server.configuration.updater.TaskExecutor;");
pw.println("import org.apache.qpid.server.logging.EventLogger;");
pw.println("import org.apache.qpid.server.logging.LogRecorder;");
@@ -140,10 +141,10 @@ public class SystemConfigFactoryGenerato
pw.println(" public "+objectSimpleName+" newInstance(final TaskExecutor taskExecutor,");
pw.println(" final EventLogger eventLogger,");
pw.println(" final LogRecorder logRecorder,");
- pw.println(" final BrokerOptions brokerOptions,");
+ pw.println(" final Map<String,Object> attributes,");
pw.println(" final BrokerShutdownProvider brokerShutdownProvider)");
pw.println(" {");
- pw.println(" return new "+objectSimpleName+"(taskExecutor, eventLogger, logRecorder, brokerOptions, brokerShutdownProvider);");
+ pw.println(" return new "+objectSimpleName+"(taskExecutor, eventLogger, logRecorder, attributes, brokerShutdownProvider);");
pw.println(" }");
pw.println("}");
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/Broker.java Tue Jan 27 15:00:13 2015
@@ -33,10 +33,13 @@ import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
+import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.configuration.updater.TaskExecutorImpl;
import org.apache.qpid.server.logging.EventLogger;
+import org.apache.qpid.server.logging.Log4jMessageLogger;
import org.apache.qpid.server.logging.LogRecorder;
+import org.apache.qpid.server.logging.MessageLogger;
import org.apache.qpid.server.logging.SystemOutMessageLogger;
import org.apache.qpid.server.logging.log4j.LoggingManagementFacade;
import org.apache.qpid.server.logging.messages.BrokerMessages;
@@ -44,30 +47,31 @@ import org.apache.qpid.server.model.Brok
import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.server.plugin.PluggableFactoryLoader;
import org.apache.qpid.server.plugin.SystemConfigFactory;
-import org.apache.qpid.server.registry.ApplicationRegistry;
-import org.apache.qpid.server.registry.IApplicationRegistry;
import org.apache.qpid.server.security.SecurityManager;
-import org.apache.qpid.server.store.DurableConfigurationStore;
+import org.apache.qpid.server.util.Action;
public class Broker implements BrokerShutdownProvider
{
private static final Logger LOGGER = Logger.getLogger(Broker.class);
private volatile Thread _shutdownHookThread;
- private volatile IApplicationRegistry _applicationRegistry;
private EventLogger _eventLogger;
private boolean _configuringOwnLogging = false;
private final TaskExecutor _taskExecutor = new TaskExecutorImpl();
- private final boolean _exitJVMOnShutdownWithNonZeroExitCode;
+
+ private SystemConfig _systemConfig;
+
+ private final Action<Integer> _shutdownAction;
+
public Broker()
{
- this(false);
+ this(null);
}
- public Broker(boolean exitJVMOnShutdownWithNonZeroExitCode)
+ public Broker(Action<Integer> shutdownAction)
{
- this._exitJVMOnShutdownWithNonZeroExitCode = exitJVMOnShutdownWithNonZeroExitCode;
+ _shutdownAction = shutdownAction;
}
protected static class InitException extends RuntimeException
@@ -96,9 +100,9 @@ public class Broker implements BrokerShu
{
try
{
- if (_applicationRegistry != null)
+ if(_systemConfig != null)
{
- _applicationRegistry.close();
+ _systemConfig.close();
}
_taskExecutor.stop();
@@ -110,9 +114,9 @@ public class Broker implements BrokerShu
LogManager.shutdown();
}
- if (_exitJVMOnShutdownWithNonZeroExitCode && exitStatusCode != 0)
+ if (_shutdownAction != null)
{
- System.exit(exitStatusCode);
+ _shutdownAction.performAction(exitStatusCode);
}
}
}
@@ -146,15 +150,29 @@ public class Broker implements BrokerShu
String storeLocation = options.getConfigurationStoreLocation();
String storeType = options.getConfigurationStoreType();
- _eventLogger.message(BrokerMessages.CONFIG(storeLocation));
+ if (options.isStartupLoggedToSystemOut())
+ {
+ _eventLogger.message(BrokerMessages.CONFIG(storeLocation));
+ }
//Allow skipping the logging configuration for people who are
//embedding the broker and want to configure it themselves.
if(!options.isSkipLoggingConfiguration())
{
- configureLogging(new File(options.getLogConfigFileLocation()), options.getLogWatchFrequency());
+ configureLogging(new File(options.getLogConfigFileLocation()), options.getLogWatchFrequency(), options.isStartupLoggedToSystemOut());
}
+ // Create the RootLogger to be used during broker operation
+ boolean statusUpdatesEnabled = Boolean.parseBoolean(System.getProperty(BrokerProperties.PROPERTY_STATUS_UPDATES, "true"));
+ MessageLogger messageLogger = new Log4jMessageLogger(statusUpdatesEnabled);
+ _eventLogger.setMessageLogger(messageLogger);
+ // Additionally, report BRK-1006 and BRK-1007 into log4j appenders
+ if(!options.isSkipLoggingConfiguration())
+ {
+ _eventLogger.message(BrokerMessages.LOG_CONFIG(new File(options.getLogConfigFileLocation()).getAbsolutePath()));
+ }
+
+ _eventLogger.message(BrokerMessages.CONFIG(storeLocation));
PluggableFactoryLoader<SystemConfigFactory> configFactoryLoader = new PluggableFactoryLoader<>(SystemConfigFactory.class);
SystemConfigFactory configFactory = configFactoryLoader.get(storeType);
@@ -169,21 +187,17 @@ public class Broker implements BrokerShu
LogRecorder logRecorder = new LogRecorder();
_taskExecutor.start();
- SystemConfig systemConfig = configFactory.newInstance(_taskExecutor, _eventLogger, logRecorder, options, this);
- systemConfig.open();
- DurableConfigurationStore store = systemConfig.getConfigurationStore();
-
- _applicationRegistry = new ApplicationRegistry(store, systemConfig);
+ _systemConfig = configFactory.newInstance(_taskExecutor, _eventLogger, logRecorder, options.convertToSystemConfigAttributes(), this);
try
{
- _applicationRegistry.initialise(options);
+ _systemConfig.open();
}
- catch(Exception e)
+ catch(RuntimeException e)
{
LOGGER.fatal("Exception during startup", e);
try
{
- _applicationRegistry.close();
+ _systemConfig.close();
}
catch(Exception ce)
{
@@ -194,12 +208,15 @@ public class Broker implements BrokerShu
}
- private void configureLogging(File logConfigFile, int logWatchTime) throws InitException, IOException
+ private void configureLogging(File logConfigFile, int logWatchTime, boolean startupLoggedToSystemOutput) throws InitException, IOException
{
_configuringOwnLogging = true;
if (logConfigFile.exists() && logConfigFile.canRead())
{
- _eventLogger.message(BrokerMessages.LOG_CONFIG(logConfigFile.getAbsolutePath()));
+ if (startupLoggedToSystemOutput)
+ {
+ _eventLogger.message(BrokerMessages.LOG_CONFIG(logConfigFile.getAbsolutePath()));
+ }
if (logWatchTime > 0)
{
@@ -297,15 +314,6 @@ public class Broker implements BrokerShu
}
}
- public org.apache.qpid.server.model.Broker getBroker()
- {
- if (_applicationRegistry == null)
- {
- return null;
- }
- return _applicationRegistry.getBroker();
- }
-
private class ShutdownService implements Runnable
{
public void run()
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/BrokerOptions.java Tue Jan 27 15:00:13 2015
@@ -29,6 +29,7 @@ import java.util.concurrent.ConcurrentMa
import org.apache.qpid.server.configuration.BrokerProperties;
import org.apache.qpid.server.model.ConfiguredObject;
+import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.server.util.StringUtil;
public class BrokerOptions
@@ -79,13 +80,23 @@ public class BrokerOptions
private boolean _overwriteConfigurationStore;
private Map<String, String> _configProperties = new HashMap<String,String>();
private String _initialSystemProperties;
+ private boolean _startupLoggedToSystemOut = true;
- public Map<String, Object> convertToSystemAttributes()
+ public Map<String, Object> convertToSystemConfigAttributes()
{
Map<String,Object> attributes = new HashMap<String, Object>();
attributes.put("storePath", getConfigurationStoreLocation());
attributes.put(ConfiguredObject.CONTEXT, getConfigProperties());
+
+ attributes.put(SystemConfig.MANAGEMENT_MODE, _managementMode);
+ attributes.put(SystemConfig.MANAGEMENT_MODE_QUIESCE_VIRTUAL_HOSTS, _managementModeQuiesceVhosts);
+ attributes.put(SystemConfig.MANAGEMENT_MODE_RMI_PORT_OVERRIDE, _managementModeRmiPortOverride);
+ attributes.put(SystemConfig.MANAGEMENT_MODE_JMX_PORT_OVERRIDE, _managementModeJmxPortOverride);
+ attributes.put(SystemConfig.MANAGEMENT_MODE_HTTP_PORT_OVERRIDE, _managementModeHttpPortOverride);
+ attributes.put(SystemConfig.MANAGEMENT_MODE_PASSWORD, _managementModePassword);
+ attributes.put(SystemConfig.INITIAL_CONFIGURATION_LOCATION, getInitialConfigurationLocation());
+ attributes.put(SystemConfig.STARTUP_LOGGED_TO_SYSTEM_OUT, isStartupLoggedToSystemOut());
return attributes;
}
@@ -372,4 +383,19 @@ public class BrokerOptions
return _configProperties.get(QPID_HOME_DIR);
}
+ /*
+ * Temporary method for test purposes
+ */
+ public boolean isStartupLoggedToSystemOut()
+ {
+ return _startupLoggedToSystemOut;
+ }
+
+ /*
+ * Temporary method for test purposes
+ */
+ public void setStartupLoggedToSystemOut(boolean startupLoggedToSystemOut)
+ {
+ this._startupLoggedToSystemOut = startupLoggedToSystemOut;
+ }
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/store/ManagementModeStoreHandler.java Tue Jan 27 15:00:13 2015
@@ -30,7 +30,6 @@ import java.util.UUID;
import org.apache.log4j.Logger;
-import org.apache.qpid.server.BrokerOptions;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.model.Broker;
import org.apache.qpid.server.model.ConfiguredObject;
@@ -40,6 +39,7 @@ import org.apache.qpid.server.model.Mode
import org.apache.qpid.server.model.Port;
import org.apache.qpid.server.model.Protocol;
import org.apache.qpid.server.model.State;
+import org.apache.qpid.server.model.SystemConfig;
import org.apache.qpid.server.model.VirtualHost;
import org.apache.qpid.server.model.adapter.BrokerAdapter;
import org.apache.qpid.server.store.ConfiguredObjectRecord;
@@ -62,14 +62,14 @@ public class ManagementModeStoreHandler
private final DurableConfigurationStore _store;
private Map<UUID, ConfiguredObjectRecord> _cliEntries;
private Map<UUID, Object> _quiescedEntriesOriginalState;
- private final BrokerOptions _options;
+ private final SystemConfig<?> _systemConfig;
private ConfiguredObject<?> _parent;
private HashMap<UUID, ConfiguredObjectRecord> _records;
public ManagementModeStoreHandler(DurableConfigurationStore store,
- BrokerOptions options)
+ SystemConfig<?> systemConfig)
{
- _options = options;
+ _systemConfig = systemConfig;
_store = store;
}
@@ -82,16 +82,16 @@ public class ManagementModeStoreHandler
_parent = parent;
_store.openConfigurationStore(parent, overwrite, initialRecords);
- _quiescedEntriesOriginalState = quiesceEntries(_options);
+ _quiescedEntriesOriginalState = quiesceEntries(_systemConfig);
_records = new HashMap<UUID, ConfiguredObjectRecord>();
final ConfiguredObjectRecordHandler localRecoveryHandler = new ConfiguredObjectRecordHandler()
{
private int _version;
- private boolean _quiesceRmiPort = _options.getManagementModeRmiPortOverride() > 0;
- private boolean _quiesceJmxPort = _options.getManagementModeJmxPortOverride() > 0;
- private boolean _quiesceHttpPort = _options.getManagementModeHttpPortOverride() > 0;
+ private boolean _quiesceRmiPort = _systemConfig.getManagementModeRmiPortOverride() > 0;
+ private boolean _quiesceJmxPort = _systemConfig.getManagementModeJmxPortOverride() > 0;
+ private boolean _quiesceHttpPort = _systemConfig.getManagementModeHttpPortOverride() > 0;
@Override
public void begin()
@@ -104,7 +104,7 @@ public class ManagementModeStoreHandler
String entryType = object.getType();
Map<String, Object> attributes = object.getAttributes();
boolean quiesce = false;
- if (VIRTUAL_HOST_TYPE.equals(entryType) && _options.isManagementModeQuiesceVirtualHosts())
+ if (VIRTUAL_HOST_TYPE.equals(entryType) && _systemConfig.isManagementModeQuiesceVirtualHosts())
{
quiesce = true;
}
@@ -174,7 +174,7 @@ public class ManagementModeStoreHandler
_store.visitConfiguredObjectRecords(localRecoveryHandler);
- _cliEntries = createPortsFromCommandLineOptions(_options);
+ _cliEntries = createPortsFromCommandLineOptions(_systemConfig);
for(ConfiguredObjectRecord entry : _cliEntries.values())
{
@@ -293,7 +293,7 @@ public class ManagementModeStoreHandler
}
}
- private Map<UUID, ConfiguredObjectRecord> createPortsFromCommandLineOptions(BrokerOptions options)
+ private Map<UUID, ConfiguredObjectRecord> createPortsFromCommandLineOptions(SystemConfig<?> options)
{
int managementModeRmiPortOverride = options.getManagementModeRmiPortOverride();
if (managementModeRmiPortOverride < 0)
@@ -369,7 +369,7 @@ public class ManagementModeStoreHandler
}
- private Map<UUID, Object> quiesceEntries(final BrokerOptions options)
+ private Map<UUID, Object> quiesceEntries(final SystemConfig<?> options)
{
final Map<UUID, Object> quiescedEntries = new HashMap<UUID, Object>();
final int managementModeRmiPortOverride = options.getManagementModeRmiPortOverride();
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/EventLogger.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/EventLogger.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/EventLogger.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/EventLogger.java Tue Jan 27 15:00:13 2015
@@ -59,4 +59,9 @@ public class EventLogger
{
_messageLogger = messageLogger;
}
+
+ public MessageLogger getMessageLogger()
+ {
+ return _messageLogger;
+ }
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/BrokerMessages.java Tue Jan 27 15:00:13 2015
@@ -54,6 +54,7 @@ public class BrokerMessages
public static final String FLOW_TO_DISK_ACTIVE_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.flow_to_disk_active";
public static final String MAX_MEMORY_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.max_memory";
public static final String PLATFORM_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.platform";
+ public static final String PROCESS_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.process";
public static final String SHUTTING_DOWN_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.shutting_down";
public static final String MANAGEMENT_MODE_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.management_mode";
public static final String STARTUP_LOG_HIERARCHY = DEFAULT_LOG_HIERARCHY_PREFIX + "broker.startup";
@@ -73,6 +74,7 @@ public class BrokerMessages
Logger.getLogger(FLOW_TO_DISK_ACTIVE_LOG_HIERARCHY);
Logger.getLogger(MAX_MEMORY_LOG_HIERARCHY);
Logger.getLogger(PLATFORM_LOG_HIERARCHY);
+ Logger.getLogger(PROCESS_LOG_HIERARCHY);
Logger.getLogger(SHUTTING_DOWN_LOG_HIERARCHY);
Logger.getLogger(MANAGEMENT_MODE_LOG_HIERARCHY);
Logger.getLogger(STARTUP_LOG_HIERARCHY);
@@ -396,6 +398,38 @@ public class BrokerMessages
}
};
}
+
+ /**
+ * Log a Broker message of the Format:
+ * <pre>BRK-1017 : Process : PID : {0}</pre>
+ * Optional values are contained in [square brackets] and are numbered
+ * sequentially in the method call.
+ *
+ */
+ public static LogMessage PROCESS(String param1)
+ {
+ String rawMessage = _messages.getString("PROCESS");
+
+ final Object[] messageArguments = {param1};
+ // Create a new MessageFormat to ensure thread safety.
+ // Sharing a MessageFormat and using applyPattern is not thread safe
+ MessageFormat formatter = new MessageFormat(rawMessage, _currentLocale);
+
+ final String message = formatter.format(messageArguments);
+
+ return new LogMessage()
+ {
+ public String toString()
+ {
+ return message;
+ }
+
+ public String getLogHierarchy()
+ {
+ return PROCESS_LOG_HIERARCHY;
+ }
+ };
+ }
/**
* Log a Broker message of the Format:
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/logging/messages/Broker_logmessages.properties Tue Jan 27 15:00:13 2015
@@ -54,4 +54,7 @@ MANAGEMENT_MODE = BRK-1012 : Management
FLOW_TO_DISK_ACTIVE = BRK-1014 : Message flow to disk active : Message memory use {0,number,#}KB exceeds threshold {1,number,#.##}KB
FLOW_TO_DISK_INACTIVE = BRK-1015 : Message flow to disk inactive : Message memory use {0,number,#}KB within threshold {1,number,#.##}KB
-FATAL_ERROR = BRK-1016 : Fatal error : {0} : See log file for more information
\ No newline at end of file
+FATAL_ERROR = BRK-1016 : Fatal error : {0} : See log file for more information
+
+# 0 - pid
+PROCESS = BRK-1017 : Process : PID : {0}
\ No newline at end of file
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractConfiguredObject.java Tue Jan 27 15:00:13 2015
@@ -556,9 +556,14 @@ public abstract class AbstractConfigured
{
}
+ protected boolean rethrowRuntimeExceptionsOnOpen()
+ {
+ return false;
+ }
+
protected final void handleExceptionOnOpen(RuntimeException e)
{
- if (e instanceof ServerScopedRuntimeException)
+ if (rethrowRuntimeExceptionsOnOpen() || e instanceof ServerScopedRuntimeException)
{
throw e;
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/AbstractSystemConfig.java Tue Jan 27 15:00:13 2015
@@ -31,16 +31,21 @@ import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
-import org.apache.qpid.server.BrokerOptions;
+import org.apache.qpid.common.QpidProperties;
import org.apache.qpid.server.configuration.IllegalConfigurationException;
import org.apache.qpid.server.configuration.store.ManagementModeStoreHandler;
import org.apache.qpid.server.configuration.updater.TaskExecutor;
+import org.apache.qpid.server.logging.CompositeStartupMessageLogger;
import org.apache.qpid.server.logging.EventLogger;
import org.apache.qpid.server.logging.LogRecorder;
+import org.apache.qpid.server.logging.MessageLogger;
+import org.apache.qpid.server.logging.SystemOutMessageLogger;
import org.apache.qpid.server.logging.messages.BrokerMessages;
+import org.apache.qpid.server.store.BrokerStoreUpgraderAndRecoverer;
import org.apache.qpid.server.store.ConfiguredObjectRecord;
import org.apache.qpid.server.store.ConfiguredObjectRecordConverter;
import org.apache.qpid.server.store.DurableConfigurationStore;
+import org.apache.qpid.util.SystemUtils;
public abstract class AbstractSystemConfig<X extends SystemConfig<X>>
extends AbstractConfiguredObject<X> implements SystemConfig<X>
@@ -48,24 +53,47 @@ public abstract class AbstractSystemConf
private static final UUID SYSTEM_ID = new UUID(0l, 0l);
private final EventLogger _eventLogger;
private final LogRecorder _logRecorder;
- private final BrokerOptions _brokerOptions;
private final BrokerShutdownProvider _brokerShutdownProvider;
private DurableConfigurationStore _configurationStore;
+ @ManagedAttributeField
+ private boolean _managementMode;
+
+ @ManagedAttributeField
+ private int _managementModeRmiPortOverride;
+
+ @ManagedAttributeField
+ private int _managementModeJmxPortOverride;
+
+ @ManagedAttributeField
+ private int _managementModeHttpPortOverride;
+
+ @ManagedAttributeField
+ private boolean _managementModeQuiesceVirtualHosts;
+
+ @ManagedAttributeField
+ private String _managementModePassword;
+
+ @ManagedAttributeField
+ private String _initialConfigurationLocation;
+
+ @ManagedAttributeField
+ private boolean _startupLoggedToSystemOut;
+
+
public AbstractSystemConfig(final TaskExecutor taskExecutor,
final EventLogger eventLogger,
final LogRecorder logRecorder,
- final BrokerOptions brokerOptions,
+ final Map<String,Object> attributes,
final BrokerShutdownProvider brokerShutdownProvider)
{
super(parentsMap(),
- updateAttributes(brokerOptions.convertToSystemAttributes()),
+ updateAttributes(attributes),
taskExecutor, BrokerModel.getInstance());
_eventLogger = eventLogger;
getTaskExecutor().start();
_logRecorder = logRecorder;
- _brokerOptions = brokerOptions;
_brokerShutdownProvider = brokerShutdownProvider;
}
@@ -84,12 +112,6 @@ public abstract class AbstractSystemConf
}
@Override
- public State getState()
- {
- return State.ACTIVE;
- }
-
- @Override
public EventLogger getEventLogger()
{
return _eventLogger;
@@ -101,12 +123,6 @@ public abstract class AbstractSystemConf
}
@Override
- public BrokerOptions getBrokerOptions()
- {
- return _brokerOptions;
- }
-
- @Override
protected void onClose()
{
try
@@ -155,17 +171,17 @@ public abstract class AbstractSystemConf
super.onOpen();
_configurationStore = createStoreObject();
- if (_brokerOptions.isManagementMode())
+ if (isManagementMode())
{
- _configurationStore = new ManagementModeStoreHandler(_configurationStore, _brokerOptions);
+ _configurationStore = new ManagementModeStoreHandler(_configurationStore, this);
}
try
{
_configurationStore.openConfigurationStore(this,
- false,
- convertToConfigurationRecords(_brokerOptions.getInitialConfigurationLocation(),
- this));
+ false,
+ convertToConfigurationRecords(getInitialConfigurationLocation(),
+ this));
_configurationStore.upgradeStoreStructure();
}
catch (IOException e)
@@ -173,6 +189,66 @@ public abstract class AbstractSystemConf
throw new IllegalArgumentException(e);
}
+
+
+ }
+
+ @StateTransition(currentState = State.UNINITIALIZED, desiredState = State.ACTIVE)
+ protected void activate()
+ {
+ final EventLogger eventLogger = _eventLogger;
+
+ EventLogger startupLogger;
+ if (isStartupLoggedToSystemOut())
+ {
+ //Create the composite (logging+SystemOut MessageLogger to be used during startup
+ MessageLogger[] messageLoggers = {new SystemOutMessageLogger(), eventLogger.getMessageLogger()};
+
+ CompositeStartupMessageLogger startupMessageLogger = new CompositeStartupMessageLogger(messageLoggers);
+ startupLogger = new EventLogger(startupMessageLogger);
+ }
+ else
+ {
+ startupLogger = eventLogger;
+ }
+
+ startupLogger.message(BrokerMessages.STARTUP(QpidProperties.getReleaseVersion(),
+ QpidProperties.getBuildVersion()));
+
+ startupLogger.message(BrokerMessages.PLATFORM(System.getProperty("java.vendor"),
+ System.getProperty("java.runtime.version",
+ System.getProperty("java.version")),
+ SystemUtils.getOSName(),
+ SystemUtils.getOSVersion(),
+ SystemUtils.getOSArch()));
+
+ startupLogger.message(BrokerMessages.MAX_MEMORY(Runtime.getRuntime().maxMemory()));
+
+ if (SystemUtils.getProcessPid() != null)
+ {
+ startupLogger.message(BrokerMessages.PROCESS(SystemUtils.getProcessPid()));
+ }
+
+ BrokerStoreUpgraderAndRecoverer upgrader = new BrokerStoreUpgraderAndRecoverer(this);
+ upgrader.perform();
+
+ Broker broker = getBroker();
+
+ broker.setEventLogger(startupLogger);
+ broker.open();
+
+ if (broker.getState() == State.ACTIVE)
+ {
+ startupLogger.message(BrokerMessages.READY());
+ broker.setEventLogger(eventLogger);
+ }
+
+ }
+
+ @Override
+ protected final boolean rethrowRuntimeExceptionsOnOpen()
+ {
+ return true;
}
abstract protected DurableConfigurationStore createStoreObject();
@@ -216,8 +292,56 @@ public abstract class AbstractSystemConf
}
@Override
+ public boolean isManagementMode()
+ {
+ return _managementMode;
+ }
+
+ @Override
+ public int getManagementModeRmiPortOverride()
+ {
+ return _managementModeRmiPortOverride;
+ }
+
+ @Override
+ public int getManagementModeJmxPortOverride()
+ {
+ return _managementModeJmxPortOverride;
+ }
+
+ @Override
+ public int getManagementModeHttpPortOverride()
+ {
+ return _managementModeHttpPortOverride;
+ }
+
+ @Override
+ public boolean isManagementModeQuiesceVirtualHosts()
+ {
+ return _managementModeQuiesceVirtualHosts;
+ }
+
+ @Override
+ public String getManagementModePassword()
+ {
+ return _managementModePassword;
+ }
+
+ @Override
+ public String getInitialConfigurationLocation()
+ {
+ return _initialConfigurationLocation;
+ }
+
+ @Override
public BrokerShutdownProvider getBrokerShutdownProvider()
{
return _brokerShutdownProvider;
}
+
+ @Override
+ public boolean isStartupLoggedToSystemOut()
+ {
+ return _startupLoggedToSystemOut;
+ }
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Broker.java Tue Jan 27 15:00:13 2015
@@ -40,10 +40,6 @@ public interface Broker<X extends Broker
String PLATFORM = "platform";
String PROCESS_PID = "processPid";
String PRODUCT_VERSION = "productVersion";
- String SUPPORTED_VIRTUALHOST_TYPES = "supportedVirtualHostTypes";
- String SUPPORTED_VIRTUALHOSTNODE_TYPES = "supportedVirtualHostNodeTypes";
- String SUPPORTED_AUTHENTICATION_PROVIDERS = "supportedAuthenticationProviders";
- String SUPPORTED_PREFERENCES_PROVIDER_TYPES = "supportedPreferencesProviderTypes";
String DEFAULT_VIRTUAL_HOST = "defaultVirtualHost";
String STATISTICS_REPORTING_PERIOD = "statisticsReportingPeriod";
String STATISTICS_REPORTING_RESET_ENABLED = "statisticsReportingResetEnabled";
@@ -110,18 +106,6 @@ public interface Broker<X extends Broker
@DerivedAttribute
String getProductVersion();
- @DerivedAttribute
- Collection<String> getSupportedVirtualHostNodeTypes();
-
- @DerivedAttribute
- Collection<String> getSupportedAuthenticationProviders();
-
- @DerivedAttribute
- Collection<String> getSupportedPreferencesProviderTypes();
-
- @DerivedAttribute
- Collection<String> getSupportedVirtualHostTypes();
-
@ManagedAttribute
String getDefaultVirtualHost();
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/BrokerModel.java Tue Jan 27 15:00:13 2015
@@ -42,6 +42,9 @@ public final class BrokerModel extends M
* 1.3 Truststore/Keystore type => trustStoreType / type => keyStoreType
* 1.4 Separate messageStoreSettings from virtualhost
* 2.0 Introduce VirtualHostNode as a child of a Broker instead of VirtualHost
+ * 2.1 Add VH aliases;
+ * Remove Broker#supportedVirtualHostNodeTypes, #supportedVirtualHostTypes, #supportedAuthenticationProviders,
+ * supportedPreferencesProviderTypes, VH#supportedExchangeTypes, VH#supportedQueueTypes
*/
public static final int MODEL_MAJOR_VERSION = 2;
public static final int MODEL_MINOR_VERSION = 1;
@@ -87,7 +90,6 @@ public final class BrokerModel extends M
addRelationship(AuthenticationProvider.class, User.class);
addRelationship(AuthenticationProvider.class, PreferencesProvider.class);
- addRelationship(User.class, GroupMember.class);
addRelationship(GroupProvider.class, Group.class);
addRelationship(Group.class, GroupMember.class);
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ConfiguredObjectTypeRegistry.java Tue Jan 27 15:00:13 2015
@@ -21,8 +21,11 @@
package org.apache.qpid.server.model;
import java.lang.reflect.Field;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
import java.util.AbstractCollection;
import java.util.Arrays;
import java.util.Collection;
@@ -176,6 +179,9 @@ public class ConfiguredObjectTypeRegistr
private final Map<Class<? extends ConfiguredObject>,Set<Class<? extends ManagedInterface>>> _allManagedInterfaces =
Collections.synchronizedMap(new HashMap<Class<? extends ConfiguredObject>, Set<Class<? extends ManagedInterface>>>());
+ private final Map<Class<? extends ConfiguredObject>, Map<String, Collection<String>>> _validChildTypes =
+ Collections.synchronizedMap(new HashMap<Class<? extends ConfiguredObject>, Map<String, Collection<String>>>());
+
public ConfiguredObjectTypeRegistry(Iterable<ConfiguredObjectRegistration> configuredObjectRegistrations, Collection<Class<? extends ConfiguredObject>> categoriesRestriction)
{
@@ -265,6 +271,96 @@ public class ConfiguredObjectTypeRegistr
}
}
+
+ for(Class<? extends ConfiguredObject> type : types)
+ {
+ final ManagedObject annotation = type.getAnnotation(ManagedObject.class);
+ String validChildren = annotation.validChildTypes();
+ if(!"".equals(validChildren))
+ {
+ Method validChildTypesMethod = getValidChildTypesFunction(validChildren, type);
+ if(validChildTypesMethod != null)
+ {
+ try
+ {
+ _validChildTypes.put(type, (Map<String, Collection<String>>) validChildTypesMethod.invoke(null));
+ }
+ catch (IllegalAccessException | InvocationTargetException e)
+ {
+ throw new IllegalArgumentException("Exception while evaluating valid child types for " + type.getName(), e);
+ }
+ }
+
+ }
+ }
+ }
+
+ private static Method getValidChildTypesFunction(final String validValue, final Class<? extends ConfiguredObject> clazz)
+ {
+ if (validValue.matches("([\\w][\\w\\d_]+\\.)+[\\w][\\w\\d_\\$]*#[\\w\\d_]+\\s*\\(\\s*\\)"))
+ {
+ String function = validValue;
+ try
+ {
+ String className = function.split("#")[0].trim();
+ String methodName = function.split("#")[1].split("\\(")[0].trim();
+ Class<?> validValueCalculatingClass = Class.forName(className);
+ Method method = validValueCalculatingClass.getMethod(methodName);
+ if (Modifier.isStatic(method.getModifiers()) && Modifier.isPublic(method.getModifiers()))
+ {
+ if (Map.class.isAssignableFrom(method.getReturnType()))
+ {
+ if (method.getGenericReturnType() instanceof ParameterizedType)
+ {
+ Type keyType =
+ ((ParameterizedType) method.getGenericReturnType()).getActualTypeArguments()[0];
+ if (keyType == String.class)
+ {
+ Type valueType =
+ ((ParameterizedType) method.getGenericReturnType()).getActualTypeArguments()[1];
+ if (valueType instanceof ParameterizedType)
+ {
+ ParameterizedType paramType = (ParameterizedType) valueType;
+ final Type rawType = paramType.getRawType();
+ final Type[] args = paramType.getActualTypeArguments();
+ if (Collection.class.isAssignableFrom((Class<?>) rawType)
+ && args.length == 1
+ && args[0] == String.class)
+ {
+ return method;
+ }
+ }
+ }
+ }
+ }
+ }
+
+
+ throw new IllegalArgumentException("The validChildTypes of the class "
+ + clazz.getSimpleName()
+ + " has value '"
+ + validValue
+ + "' but the method does not meet the requirements - is it public and static");
+
+ }
+ catch (ClassNotFoundException | NoSuchMethodException e)
+ {
+ throw new IllegalArgumentException("The validChildTypes of the class "
+ + clazz.getSimpleName()
+ + " has value '"
+ + validValue
+ + "' which looks like it should be a method,"
+ + " but no such method could be used.", e);
+ }
+ }
+ else
+ {
+ throw new IllegalArgumentException("The validChildTypes of the class "
+ + clazz.getSimpleName()
+ + " has value '"
+ + validValue
+ + "' which does not match the required <package>.<class>#<method>() format.");
+ }
}
public static Class<? extends ConfiguredObject> getCategory(final Class<?> clazz)
@@ -907,4 +1003,18 @@ public class ConfiguredObjectTypeRegistr
}
}
+ public Collection<String> getValidChildTypes(Class<? extends ConfiguredObject> type, Class<? extends ConfiguredObject> childType)
+ {
+ final Map<String, Collection<String>> allValidChildTypes = _validChildTypes.get(getTypeClass(type));
+ if(allValidChildTypes != null)
+ {
+ final Collection<String> validTypesForSpecificChild = allValidChildTypes.get(getCategory(childType).getSimpleName());
+ return validTypesForSpecificChild == null ? null : Collections.unmodifiableCollection(validTypesForSpecificChild);
+ }
+ else
+ {
+ return null;
+ }
+ }
+
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/Group.java Tue Jan 27 15:00:13 2015
@@ -19,7 +19,11 @@
*/
package org.apache.qpid.server.model;
-@ManagedObject
+import org.apache.qpid.server.security.group.GroupImpl;
+import org.apache.qpid.server.security.group.GroupPrincipal;
+
+@ManagedObject( defaultType = GroupImpl.CONFIG_TYPE )
public interface Group<X extends Group<X>> extends ConfiguredObject<X>
{
+ GroupPrincipal getGroupPrincipal();
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/GroupMember.java Tue Jan 27 15:00:13 2015
@@ -19,7 +19,12 @@
*/
package org.apache.qpid.server.model;
-@ManagedObject
+import java.security.Principal;
+
+import org.apache.qpid.server.security.group.GroupMemberImpl;
+
+@ManagedObject( defaultType = GroupMemberImpl.CONFIG_TYPE )
public interface GroupMember<X extends GroupMember<X>> extends ConfiguredObject<X>
{
+ Principal getPrincipal();
}
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/JsonSystemConfigImpl.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/JsonSystemConfigImpl.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/JsonSystemConfigImpl.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/JsonSystemConfigImpl.java Tue Jan 27 15:00:13 2015
@@ -20,7 +20,8 @@
*/
package org.apache.qpid.server.model;
-import org.apache.qpid.server.BrokerOptions;
+import java.util.Map;
+
import org.apache.qpid.server.configuration.updater.TaskExecutor;
import org.apache.qpid.server.logging.EventLogger;
import org.apache.qpid.server.logging.LogRecorder;
@@ -38,10 +39,10 @@ public class JsonSystemConfigImpl extend
public JsonSystemConfigImpl(final TaskExecutor taskExecutor,
final EventLogger eventLogger,
final LogRecorder logRecorder,
- final BrokerOptions brokerOptions,
+ final Map<String,Object> attributes,
final BrokerShutdownProvider brokerShutdownProvider)
{
- super(taskExecutor, eventLogger, logRecorder, brokerOptions, brokerShutdownProvider);
+ super(taskExecutor, eventLogger, logRecorder, attributes, brokerShutdownProvider);
}
public String getStorePath()
Modified: qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java
URL: http://svn.apache.org/viewvc/qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java?rev=1655057&r1=1655056&r2=1655057&view=diff
==============================================================================
--- qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java (original)
+++ qpid/branches/QPID-6262-JavaBrokerNIO/qpid/java/broker-core/src/main/java/org/apache/qpid/server/model/ManagedObject.java Tue Jan 27 15:00:13 2015
@@ -35,5 +35,6 @@ public @interface ManagedObject
boolean creatable() default true;
String defaultType() default ""; // in this case the class/interface itself is to be used
String type() default "";
+ String validChildTypes() default "";
boolean register() default true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org