@Override public String modify(String input) { return CompositeAddress.extractAddressName(input); } });
@Override public Bindings getBindingsForRoutingAddress(final SimpleString address) throws Exception { return mappings.get(CompositeAddress.extractAddressName(address)); }
@Override public AddressInfo getAddressInfo(SimpleString addressName) { return addressInfoMap.get(CompositeAddress.extractAddressName(addressName)); }
@Override public AddressInfo removeAddressInfo(SimpleString address) throws Exception { return addressInfoMap.remove(CompositeAddress.extractAddressName(address)); }
/** * Creates an AddressInfo object with a single RoutingType associated with it. * @param name * @param routingType */ public AddressInfo(SimpleString name, RoutingType routingType) { this.name = CompositeAddress.extractAddressName(name); addRoutingType(routingType); }
/** * Creates an AddressInfo object with a Set of routing types * @param name * @param routingTypes */ public AddressInfo(SimpleString name, EnumSet<RoutingType> routingTypes) { this.name = CompositeAddress.extractAddressName(name); setRoutingTypes(routingTypes); }
protected void removeBindingInternal(final SimpleString address, final SimpleString bindableName) { SimpleString realAddress = CompositeAddress.extractAddressName(address); Bindings bindings = mappings.get(realAddress); if (bindings != null) { removeMapping(bindableName, bindings); if (bindings.getBindings().isEmpty()) { mappings.remove(realAddress); } } }
protected boolean addMappingInternal(final SimpleString address, final Binding binding) throws Exception { SimpleString realAddress = CompositeAddress.extractAddressName(address); Bindings bindings = mappings.get(realAddress); Bindings prevBindings = null; if (bindings == null) { bindings = bindingsFactory.createBindings(realAddress); prevBindings = mappings.putIfAbsent(realAddress, bindings); if (prevBindings != null) { bindings = prevBindings; } } bindings.addBinding(binding); return prevBindings != null; }
@Override public void updateMessageLoadBalancingTypeForAddress(SimpleString address, MessageLoadBalancingType messageLoadBalancingType) throws Exception { getBindingsForRoutingAddress(CompositeAddress.extractAddressName(address)).setMessageLoadBalancingType(messageLoadBalancingType); } }
private void setPagingStore(SimpleString address, Message message) throws Exception { PagingStore store = pagingManager.getPageStore(CompositeAddress.extractAddressName(address)); message.setContext(store); }
public static SimpleString extractAddressName(SimpleString address) { return address == null ? null : new SimpleString(extractAddressName(address.toString())); }
public static SimpleString extractAddressName(SimpleString address) { return address == null ? null : new SimpleString(extractAddressName(address.toString())); }
@Override public Bindings getDirectBindings(final SimpleString address) throws Exception { SimpleString realAddress = CompositeAddress.extractAddressName(address); Bindings bindings = bindingsFactory.createBindings(realAddress); for (Binding binding : nameMap.values()) { if (binding.getAddress().equals(realAddress)) { bindings.addBinding(binding); } } return bindings; }
@Override public Bindings createBindings(final SimpleString address) { GroupingHandler groupingHandler = server.getGroupingHandler(); BindingsImpl bindings = new BindingsImpl(CompositeAddress.extractAddressName(address), groupingHandler); if (groupingHandler != null) { groupingHandler.addListener(bindings); } return bindings; }
@Override public SimpleString getMatchingQueue(final SimpleString address, final SimpleString queueName, RoutingType routingType) throws Exception { SimpleString realAddress = CompositeAddress.extractAddressName(address); Binding binding = getBinding(queueName); if (binding != null && !binding.getAddress().equals(realAddress) && !realAddress.toString().isEmpty()) { throw new IllegalStateException("queue belongs to address" + binding.getAddress()); } return binding != null ? binding.getUniqueName() : null; }
@Override public Bindings getMatchingBindings(final SimpleString address) throws Exception { SimpleString realAddress = CompositeAddress.extractAddressName(address); Address add = new AddressImpl(realAddress, wildcardConfiguration); Bindings bindings = bindingsFactory.createBindings(realAddress); for (Binding binding : nameMap.values()) { Address addCheck = new AddressImpl(binding.getAddress(), wildcardConfiguration); if (addCheck.matches(add)) { bindings.addBinding(binding); } } return bindings; }
private void addSubscription(MqttTopicSubscription subscription) throws Exception { String topicName = CompositeAddress.extractAddressName(subscription.topicName()); MqttTopicSubscription s = session.getSessionState().getSubscription(topicName); int qos = subscription.qualityOfService().value(); String coreAddress = MQTTUtil.convertMQTTAddressFilterToCore(topicName, session.getWildcardConfiguration()); session.getSessionState().addSubscription(subscription, session.getWildcardConfiguration()); Queue q = createQueueForSubscription(coreAddress, qos); if (s == null) { createConsumerForSubscriptionQueue(q, topicName, qos); } else { consumerQoSLevels.put(consumers.get(topicName).getID(), qos); } session.getRetainMessageManager().addRetainedMessagesToQueue(q, topicName); }
private void addSubscription(MqttTopicSubscription subscription) throws Exception { String topicName = CompositeAddress.extractAddressName(subscription.topicName()); MqttTopicSubscription s = session.getSessionState().getSubscription(topicName); int qos = subscription.qualityOfService().value(); String coreAddress = MQTTUtil.convertMQTTAddressFilterToCore(topicName, session.getWildcardConfiguration()); session.getSessionState().addSubscription(subscription, session.getWildcardConfiguration()); Queue q = createQueueForSubscription(coreAddress, qos); if (s == null) { createConsumerForSubscriptionQueue(q, topicName, qos); } else { consumerQoSLevels.put(consumers.get(topicName).getID(), qos); } session.getRetainMessageManager().addRetainedMessagesToQueue(q, topicName); }
@Override public AddressInfo createAddress(final SimpleString address, EnumSet<RoutingType> routingTypes, final boolean autoCreated) throws Exception { SimpleString realAddress = CompositeAddress.extractAddressName(address); Pair<SimpleString, EnumSet<RoutingType>> art = getAddressAndRoutingTypes(realAddress, routingTypes); securityCheck(art.getA(), CheckType.CREATE_ADDRESS, this); server.addOrUpdateAddressInfo(new AddressInfo(art.getA(), art.getB()).setAutoCreated(autoCreated)); return server.getAddressInfo(art.getA()); }
@Test public void testSplit() throws Exception { String name = "someQueue"; String name2 = "someAddress::someQueue"; String qname = CompositeAddress.extractQueueName(name); assertEquals(name, qname); qname = CompositeAddress.extractQueueName(name2); assertEquals(name, qname); assertEquals("", CompositeAddress.extractQueueName("address::")); assertEquals("", CompositeAddress.extractQueueName("::")); assertEquals("queue", CompositeAddress.extractQueueName("::queue")); assertEquals("address", CompositeAddress.extractAddressName("address::")); } }