@Override public DistributedObject createDistributedObject(String objectName) { ReliableTopicConfig topicConfig = nodeEngine.getConfig().findReliableTopicConfig(objectName); return new ReliableTopicProxy(objectName, nodeEngine, this, topicConfig); }
private void addMessageListener(ListenerConfig listenerConfig) { NodeEngine nodeEngine = getNodeEngine(); MessageListener listener = loadListener(listenerConfig); if (listener == null) { return; } if (listener instanceof HazelcastInstanceAware) { HazelcastInstanceAware hazelcastInstanceAware = (HazelcastInstanceAware) listener; hazelcastInstanceAware.setHazelcastInstance(nodeEngine.getHazelcastInstance()); } addMessageListener(listener); }
protected ReliableTopicMBean(ReliableTopicProxy managedObject, ManagementService service) { super(managedObject, service); objectName = service.createObjectName("ReliableTopic", managedObject.getName()); }
@Override public void publish(E payload) { try { Data data = nodeEngine.toData(payload); ReliableTopicMessage message = new ReliableTopicMessage(data, thisAddress); switch (overloadPolicy) { case ERROR: addOrFail(message); break; case DISCARD_OLDEST: addOrOverwrite(message); break; case DISCARD_NEWEST: ringbuffer.addAsync(message, OverflowPolicy.FAIL).get(); break; case BLOCK: addWithBackoff(message); break; default: throw new IllegalArgumentException("Unknown overloadPolicy:" + overloadPolicy); } localTopicStats.incrementPublishes(); } catch (Exception e) { throw (RuntimeException) peel(e, null, "Failed to publish message: " + payload + " to topic:" + getName()); } }
public ReliableTopicProxy(String name, NodeEngine nodeEngine, ReliableTopicService service, ReliableTopicConfig topicConfig) { super(nodeEngine, service); this.name = name; this.topicConfig = topicConfig; this.nodeEngine = nodeEngine; this.ringbuffer = nodeEngine.getHazelcastInstance().getRingbuffer(TOPIC_RB_PREFIX + name); this.executor = initExecutor(nodeEngine, topicConfig); this.thisAddress = nodeEngine.getThisAddress(); this.overloadPolicy = topicConfig.getTopicOverloadPolicy(); this.localTopicStats = service.getLocalTopicStats(name); for (ListenerConfig listenerConfig : topicConfig.getMessageListenerConfigs()) { addMessageListener(listenerConfig); } }
@ManagedAnnotation("localCreationTime") @ManagedDescription("the creation time of this reliable topic on this member") public long getLocalCreationTime() { return managedObject.getLocalTopicStats().getCreationTime(); }
@Override public void publish(E payload) { try { Data data = nodeEngine.toData(payload); ReliableTopicMessage message = new ReliableTopicMessage(data, thisAddress); switch (overloadPolicy) { case ERROR: addOrFail(message); break; case DISCARD_OLDEST: addOrOverwrite(message); break; case DISCARD_NEWEST: ringbuffer.addAsync(message, OverflowPolicy.FAIL).get(); break; case BLOCK: addWithBackoff(message); break; default: throw new IllegalArgumentException("Unknown overloadPolicy:" + overloadPolicy); } localTopicStats.incrementPublishes(); } catch (Exception e) { throw (RuntimeException) peel(e, null, "Failed to publish message: " + payload + " to topic:" + getName()); } }
public ReliableTopicProxy(String name, NodeEngine nodeEngine, ReliableTopicService service, ReliableTopicConfig topicConfig) { super(nodeEngine, service); this.name = name; this.topicConfig = topicConfig; this.nodeEngine = nodeEngine; this.ringbuffer = nodeEngine.getHazelcastInstance().getRingbuffer(TOPIC_RB_PREFIX + name); this.executor = initExecutor(nodeEngine, topicConfig); this.thisAddress = nodeEngine.getThisAddress(); this.overloadPolicy = topicConfig.getTopicOverloadPolicy(); this.localTopicStats = service.getLocalTopicStats(name); for (ListenerConfig listenerConfig : topicConfig.getMessageListenerConfigs()) { addMessageListener(listenerConfig); } }
@ManagedAnnotation("localReceiveOperationCount") @ManagedDescription("the total number of received messages of this reliable topic on this member") public long getLocalReceiveOperationCount() { return managedObject.getLocalTopicStats().getReceiveOperationCount(); }
private void addMessageListener(ListenerConfig listenerConfig) { NodeEngine nodeEngine = getNodeEngine(); MessageListener listener = loadListener(listenerConfig); if (listener == null) { return; } if (listener instanceof HazelcastInstanceAware) { HazelcastInstanceAware hazelcastInstanceAware = (HazelcastInstanceAware) listener; hazelcastInstanceAware.setHazelcastInstance(nodeEngine.getHazelcastInstance()); } addMessageListener(listener); }
ReliableMessageRunner(String id, ReliableMessageListener<E> listener, SerializationService serializationService, Executor executor, ILogger logger, ClusterService clusterService, ReliableTopicProxy<E> proxy) { super(id, listener, proxy.ringbuffer, proxy.getName(), proxy.topicConfig.getReadBatchSize(), serializationService, executor, proxy.runnersMap, logger); this.clusterService = clusterService; this.proxy = proxy; }
@ManagedAnnotation("localPublishOperationCount") @ManagedDescription(" the total number of published messages of this reliable topic on this member") public long getLocalPublishOperationCount() { return managedObject.getLocalTopicStats().getPublishOperationCount(); }
@Override public DistributedObject createDistributedObject(String objectName) { ReliableTopicConfig topicConfig = nodeEngine.getConfig().findReliableTopicConfig(objectName); return new ReliableTopicProxy(objectName, nodeEngine, this, topicConfig); }
ReliableMessageRunner(String id, ReliableMessageListener<E> listener, SerializationService serializationService, Executor executor, ILogger logger, ClusterService clusterService, ReliableTopicProxy<E> proxy) { super(id, listener, proxy.ringbuffer, proxy.getName(), proxy.topicConfig.getReadBatchSize(), serializationService, executor, proxy.runnersMap, logger); this.clusterService = clusterService; this.proxy = proxy; }
@ManagedAnnotation("localCreationTime") @ManagedDescription("the creation time of this reliable topic on this member") public long getLocalCreationTime() { return managedObject.getLocalTopicStats().getCreationTime(); }
protected ReliableTopicMBean(ReliableTopicProxy managedObject, ManagementService service) { super(managedObject, service); objectName = service.createObjectName("ReliableTopic", managedObject.getName()); }
@ManagedAnnotation("localPublishOperationCount") @ManagedDescription(" the total number of published messages of this reliable topic on this member") public long getLocalPublishOperationCount() { return managedObject.getLocalTopicStats().getPublishOperationCount(); }
@ManagedAnnotation("name") @ManagedDescription("Name of the DistributedObject") public String getName() { return managedObject.getName(); }
@ManagedAnnotation("localReceiveOperationCount") @ManagedDescription("the total number of received messages of this reliable topic on this member") public long getLocalReceiveOperationCount() { return managedObject.getLocalTopicStats().getReceiveOperationCount(); }
@ManagedAnnotation("name") @ManagedDescription("Name of the DistributedObject") public String getName() { return managedObject.getName(); }