@Override public String getName() { clearIO(); try { return configuration.getName(); } finally { blockOnIO(); } }
@Override public synchronized void registerBridge(final Bridge bridge, final BridgeConfiguration configuration) throws Exception { bridge.setNotificationService(this); ObjectName objectName = objectNameBuilder.getBridgeObjectName(configuration.getName()); BridgeControl control = new BridgeControlImpl(bridge, storageManager, configuration); registerInJMX(objectName, control); registerInRegistry(ResourceNames.BRIDGE + configuration.getName(), control); }
if (configuration != null) { for (BridgeConfiguration bridgeConfiguration : configuration.getBridgeConfigurations()) { bridgeCredentialSource.put(bridgeConfiguration.getName(), new InjectedValue<>());
if (configuration != null) { for (BridgeConfiguration bridgeConfiguration : configuration.getBridgeConfigurations()) { bridgeCredentialSource.put(bridgeConfiguration.getName(), new InjectedValue<>());
private void setBridgePasswordsFromCredentialSource() { if (configuration != null) { for (BridgeConfiguration bridgeConfiguration : configuration.getBridgeConfigurations()) { setNewPassword(getBridgeCredentialSourceSupplierInjector(bridgeConfiguration.getName()).getOptionalValue(), bridgeConfiguration::setPassword); } } }
private void setBridgePasswordsFromCredentialSource() { if (configuration != null) { for (BridgeConfiguration bridgeConfiguration : configuration.getBridgeConfigurations()) { setNewPassword(getBridgeCredentialSourceSupplierInjector(bridgeConfiguration.getName()).getOptionalValue(), bridgeConfiguration::setPassword); } } }
private static void addBridgeCredentialStoreReference(ActiveMQServerService amqService, Configuration configuration, ObjectTypeAttributeDefinition credentialReferenceAttributeDefinition, OperationContext context, ModelNode model, ServiceBuilder<?> serviceBuilder) throws OperationFailedException { for (BridgeConfiguration bridgeConfiguration: configuration.getBridgeConfigurations()) { String name = bridgeConfiguration.getName(); InjectedValue<ExceptionSupplier<CredentialSource, Exception>> injector = amqService.getBridgeCredentialSourceSupplierInjector(name); String[] modelFilter = { CommonAttributes.BRIDGE, name }; ModelNode filteredModelNode = model; if (modelFilter != null && modelFilter.length > 0) { for (String path : modelFilter) { if (filteredModelNode.get(path).isDefined()) filteredModelNode = filteredModelNode.get(path); else break; } } ModelNode value = credentialReferenceAttributeDefinition.resolveModelAttribute(context, filteredModelNode); if (value.isDefined()) { injector.inject(CredentialReference.getCredentialSourceSupplier(context, credentialReferenceAttributeDefinition, filteredModelNode, serviceBuilder)); } } }
private static void addBridgeCredentialStoreReference(ActiveMQServerService amqService, Configuration configuration, ObjectTypeAttributeDefinition credentialReferenceAttributeDefinition, OperationContext context, ModelNode model, ServiceBuilder<?> serviceBuilder) throws OperationFailedException { for (BridgeConfiguration bridgeConfiguration: configuration.getBridgeConfigurations()) { String name = bridgeConfiguration.getName(); InjectedValue<ExceptionSupplier<CredentialSource, Exception>> injector = amqService.getBridgeCredentialSourceSupplierInjector(name); String[] modelFilter = { CommonAttributes.BRIDGE, name }; ModelNode filteredModelNode = model; if (modelFilter != null && modelFilter.length > 0) { for (String path : modelFilter) { if (filteredModelNode.get(path).isDefined()) filteredModelNode = filteredModelNode.get(path); else break; } } ModelNode value = credentialReferenceAttributeDefinition.resolveModelAttribute(context, filteredModelNode); if (value.isDefined()) { injector.inject(CredentialReference.getCredentialSourceSupplier(context, credentialReferenceAttributeDefinition, filteredModelNode, serviceBuilder)); } } }
private static void compareTTLWithCheckPeriod(Configuration configuration) { for (ClusterConnectionConfiguration c : configuration.getClusterConfigurations()) compareTTLWithCheckPeriod(c.getName(), c.getConnectionTTL(), configuration.getConnectionTTLOverride(), c.getClientFailureCheckPeriod()); for (BridgeConfiguration c : configuration.getBridgeConfigurations()) compareTTLWithCheckPeriod(c.getName(), c.getConnectionTTL(), configuration.getConnectionTTLOverride(), c.getClientFailureCheckPeriod()); }
public synchronized void deployBridge(final BridgeConfiguration config) throws Exception { if (config.getName() == null) { ActiveMQServerLogger.LOGGER.bridgeNotUnique(); ActiveMQServerLogger.LOGGER.bridgeNoQueue(config.getName()); ActiveMQServerLogger.LOGGER.bridgeNoForwardAddress(config.getName()); if (bridges.containsKey(config.getName())) { ActiveMQServerLogger.LOGGER.bridgeAlreadyDeployed(config.getName()); Transformer transformer = server.getServiceRegistry().getBridgeTransformer(config.getName(), config.getTransformerConfiguration()); ActiveMQServerLogger.LOGGER.bridgeQueueNotFound(config.getQueueName(), config.getName()); ActiveMQServerLogger.LOGGER.bridgeCantFindConnectors(config.getName()); return; serverLocator.setIdentity("Bridge " + config.getName()); serverLocator.setConfirmationWindowSize(config.getConfirmationWindowSize()); logger.debug("Bridge " + config.getName() + " is configured to not use duplicate detecion, it will send messages synchronously"); Bridge bridge = new BridgeImpl(serverLocator, config.getInitialConnectAttempts(), config.getReconnectAttempts(), config.getReconnectAttemptsOnSameNode(), config.getRetryInterval(), config.getRetryIntervalMultiplier(), config.getMaxRetryInterval(), nodeManager.getUUID(), new SimpleString(config.getName()), queue, executorFactory.getExecutor(), FilterImpl.createFilter(config.getFilterString()), SimpleString.toSimpleString(config.getForwardingAddress()), scheduledExecutor, transformer, config.isUseDuplicateDetection(), config.getUser(), config.getPassword(), server, config.getRoutingType()); bridges.put(config.getName(), bridge);
@Test public void testStartStop() throws Exception { checkResource(ObjectNameBuilder.DEFAULT.getBridgeObjectName(bridgeConfig.getName())); BridgeControl bridgeControl = createBridgeControl(bridgeConfig.getName(), mbeanServer); // started by the server Assert.assertTrue(bridgeControl.isStarted()); bridgeControl.stop(); Assert.assertFalse(bridgeControl.isStarted()); bridgeControl.start(); Assert.assertTrue(bridgeControl.isStarted()); }
@Test public void testStartStop() throws Exception { checkResource(ObjectNameBuilder.DEFAULT.getBridgeObjectName(bridgeConfig.getName())); CoreMessagingProxy proxy = createProxy(bridgeConfig.getName()); // started by the server Assert.assertTrue((Boolean) proxy.retrieveAttributeValue("Started")); proxy.invokeOperation("stop"); Assert.assertFalse((Boolean) proxy.retrieveAttributeValue("Started")); proxy.invokeOperation("start"); Assert.assertTrue((Boolean) proxy.retrieveAttributeValue("Started")); }
@Test public void testNotifications() throws Exception { SimpleNotificationService.Listener notifListener = new SimpleNotificationService.Listener(); BridgeControl bridgeControl = createBridgeControl(bridgeConfig.getName(), mbeanServer); server_0.getManagementService().addNotificationListener(notifListener); Assert.assertEquals(0, notifListener.getNotifications().size()); bridgeControl.stop(); Assert.assertEquals(1, notifListener.getNotifications().size()); Notification notif = notifListener.getNotifications().get(0); Assert.assertEquals(CoreNotificationType.BRIDGE_STOPPED, notif.getType()); Assert.assertEquals(bridgeControl.getName(), notif.getProperties().getSimpleStringProperty(new SimpleString("name")).toString()); bridgeControl.start(); Assert.assertEquals(2, notifListener.getNotifications().size()); notif = notifListener.getNotifications().get(1); Assert.assertEquals(CoreNotificationType.BRIDGE_STARTED, notif.getType()); Assert.assertEquals(bridgeControl.getName(), notif.getProperties().getSimpleStringProperty(new SimpleString("name")).toString()); }
@Test public void testAttributes() throws Exception { checkResource(ObjectNameBuilder.DEFAULT.getBridgeObjectName(bridgeConfig.getName())); CoreMessagingProxy proxy = createProxy(bridgeConfig.getName()); Assert.assertEquals(bridgeConfig.getName(), proxy.retrieveAttributeValue("name")); Assert.assertEquals(bridgeConfig.getDiscoveryGroupName(), proxy.retrieveAttributeValue("discoveryGroupName")); Assert.assertEquals(bridgeConfig.getQueueName(), proxy.retrieveAttributeValue("queueName")); Assert.assertEquals(bridgeConfig.getForwardingAddress(), proxy.retrieveAttributeValue("forwardingAddress")); Assert.assertEquals(bridgeConfig.getFilterString(), proxy.retrieveAttributeValue("filterString")); Assert.assertEquals(bridgeConfig.getRetryInterval(), proxy.retrieveAttributeValue("retryInterval", Long.class)); Assert.assertEquals(bridgeConfig.getRetryIntervalMultiplier(), proxy.retrieveAttributeValue("retryIntervalMultiplier", Double.class)); Assert.assertEquals(bridgeConfig.getReconnectAttempts(), proxy.retrieveAttributeValue("reconnectAttempts", Integer.class)); Assert.assertEquals(bridgeConfig.isUseDuplicateDetection(), proxy.retrieveAttributeValue("useDuplicateDetection", Boolean.class)); @SuppressWarnings("unchecked") Map<String, Object> bridgeMetrics = (Map<String, Object>) proxy.retrieveAttributeValue("metrics", Map.class); Assert.assertEquals(0L, proxy.retrieveAttributeValue("messagesPendingAcknowledgement", Long.class)); Assert.assertEquals(0L, proxy.retrieveAttributeValue("messagesAcknowledged", Long.class)); Assert.assertEquals(0L, bridgeMetrics.get(BridgeMetrics.MESSAGES_PENDING_ACKNOWLEDGEMENT_KEY)); Assert.assertEquals(0L, bridgeMetrics.get(BridgeMetrics.MESSAGES_ACKNOWLEDGED_KEY)); Object[] data = (Object[]) proxy.retrieveAttributeValue("staticConnectors"); Assert.assertEquals(bridgeConfig.getStaticConnectors().get(0), data[0]); Assert.assertTrue((Boolean) proxy.retrieveAttributeValue("started")); }
@Test public void testAttributes() throws Exception { checkResource(ObjectNameBuilder.DEFAULT.getBridgeObjectName(bridgeConfig.getName())); BridgeControl bridgeControl = createBridgeControl(bridgeConfig.getName(), mbeanServer); Assert.assertEquals(bridgeConfig.getName(), bridgeControl.getName()); Assert.assertEquals(bridgeConfig.getDiscoveryGroupName(), bridgeControl.getDiscoveryGroupName()); Assert.assertEquals(bridgeConfig.getQueueName(), bridgeControl.getQueueName()); Assert.assertEquals(bridgeConfig.getForwardingAddress(), bridgeControl.getForwardingAddress()); Assert.assertEquals(bridgeConfig.getFilterString(), bridgeControl.getFilterString()); Assert.assertEquals(bridgeConfig.getRetryInterval(), bridgeControl.getRetryInterval()); Assert.assertEquals(bridgeConfig.getRetryIntervalMultiplier(), bridgeControl.getRetryIntervalMultiplier(), 0.000001); Assert.assertEquals(bridgeConfig.getReconnectAttempts(), bridgeControl.getReconnectAttempts()); Assert.assertEquals(bridgeConfig.isUseDuplicateDetection(), bridgeControl.isUseDuplicateDetection()); Map<String, Object> bridgeMetrics = bridgeControl.getMetrics(); Assert.assertEquals(0L, bridgeControl.getMessagesPendingAcknowledgement()); Assert.assertEquals(0L, bridgeControl.getMessagesAcknowledged()); Assert.assertEquals(0L, bridgeMetrics.get(BridgeMetrics.MESSAGES_PENDING_ACKNOWLEDGEMENT_KEY)); Assert.assertEquals(0L, bridgeMetrics.get(BridgeMetrics.MESSAGES_ACKNOWLEDGED_KEY)); String[] connectorPairData = bridgeControl.getStaticConnectors(); Assert.assertEquals(bridgeConfig.getStaticConnectors().get(0), connectorPairData[0]); Assert.assertTrue(bridgeControl.isStarted()); }
if (bc.getName().equals("bridge1")) { Assert.assertEquals("bridge1", bc.getName()); Assert.assertEquals("queue1", bc.getQueueName()); Assert.assertEquals("minLargeMessageSize", 4194304, bc.getMinLargeMessageSize()); Assert.assertEquals(1073741824, bc.getConfirmationWindowSize()); Assert.assertEquals(ComponentConfigurationRoutingType.STRIP, bc.getRoutingType()); } else if (bc.getName().equals("bridge2")) { Assert.assertEquals("bridge2", bc.getName()); Assert.assertEquals("queue2", bc.getQueueName()); Assert.assertEquals("bridge-forwarding-address2", bc.getForwardingAddress()); Assert.assertEquals(ComponentConfigurationRoutingType.PASS, bc.getRoutingType()); } else { Assert.assertEquals("bridge3", bc.getName()); Assert.assertEquals("org.foo.BridgeTransformer3", bc.getTransformerConfiguration().getClassName()); Assert.assertEquals("bridgeTransformerValue1", bc.getTransformerConfiguration().getProperties().get("bridgeTransformerKey1"));