@Override public String addDistributedObjectListener(DistributedObjectListener distributedObjectListener) { return proxyManager.addDistributedObjectListener(distributedObjectListener); }
public void createDistributedObjectsOnCluster(Connection ownerConnection) { List<Map.Entry<String, String>> proxyEntries = new LinkedList<Map.Entry<String, String>>(); for (ObjectNamespace objectNamespace : proxies.keySet()) { String name = objectNamespace.getObjectName(); String serviceName = objectNamespace.getServiceName(); proxyEntries.add(new AbstractMap.SimpleEntry<String, String>(name, serviceName)); } if (proxyEntries.isEmpty()) { return; } ClientMessage clientMessage = ClientCreateProxiesCodec.encodeRequest(proxyEntries); new ClientInvocation(client, clientMessage, null, ownerConnection).invokeUrgent(); createCachesOnCluster(); }
register(MapService.SERVICE_NAME, createServiceProxyFactory(MapService.class)); if (JCacheDetector.isJCacheAvailable(config.getClassLoader())) { register(ICacheService.SERVICE_NAME, new ClientCacheProxyFactory(client)); register(QueueService.SERVICE_NAME, ClientQueueProxy.class); register(MultiMapService.SERVICE_NAME, ClientMultiMapProxy.class); register(ListService.SERVICE_NAME, ClientListProxy.class); register(SetService.SERVICE_NAME, ClientSetProxy.class); register(SemaphoreService.SERVICE_NAME, ClientSemaphoreProxy.class); register(TopicService.SERVICE_NAME, ClientTopicProxy.class); register(AtomicLongService.SERVICE_NAME, ClientAtomicLongProxy.class); register(AtomicReferenceService.SERVICE_NAME, ClientAtomicReferenceProxy.class); register(DistributedExecutorService.SERVICE_NAME, ClientExecutorServiceProxy.class); register(DistributedDurableExecutorService.SERVICE_NAME, ClientDurableExecutorServiceProxy.class); register(LockServiceImpl.SERVICE_NAME, ClientLockProxy.class); register(CountDownLatchService.SERVICE_NAME, ClientCountDownLatchProxy.class); register(MapReduceService.SERVICE_NAME, ClientMapReduceProxy.class); register(ReplicatedMapService.SERVICE_NAME, ClientReplicatedMapProxy.class); register(XAService.SERVICE_NAME, XAResourceProxy.class); register(RingbufferService.SERVICE_NAME, ClientRingbufferProxy.class); register(ReliableTopicService.SERVICE_NAME, new ClientProxyFactoryWithContext() { @Override public ClientProxy create(String id, ClientContext context) { register(IdGeneratorService.SERVICE_NAME, new ClientProxyFactoryWithContext() { @Override public ClientProxy create(String id, ClientContext context) { register(FlakeIdGeneratorService.SERVICE_NAME, ClientFlakeIdGeneratorProxy.class);
public ClientProxy getOrCreateProxy(String service, String id) { final ObjectNamespace ns = new DistributedObjectNamespace(service, id); ClientProxyFuture proxyFuture = proxies.get(ns); if (proxyFuture != null) { return proxyFuture.get(); } ClientProxyFactory factory = proxyFactories.get(service); if (factory == null) { throw new ClientServiceNotFoundException("No factory registered for service: " + service); } proxyFuture = new ClientProxyFuture(); ClientProxyFuture current = proxies.putIfAbsent(ns, proxyFuture); if (current != null) { return current.get(); } try { ClientProxy clientProxy = createClientProxy(id, factory); initializeWithRetry(clientProxy); proxyFuture.set(clientProxy); return clientProxy; } catch (Throwable e) { proxies.remove(ns); proxyFuture.set(e); throw rethrow(e); } }
@Override public Collection<DistributedObject> getDistributedObjects() { try { ClientMessage request = ClientGetDistributedObjectsCodec.encodeRequest(); final Future<ClientMessage> future = new ClientInvocation(this, request, getName()).invoke(); ClientMessage response = future.get(); ClientGetDistributedObjectsCodec.ResponseParameters resultParameters = ClientGetDistributedObjectsCodec.decodeResponse(response); Collection<? extends DistributedObject> distributedObjects = proxyManager.getDistributedObjects(); Set<DistributedObjectInfo> localDistributedObjects = new HashSet<DistributedObjectInfo>(); for (DistributedObject localInfo : distributedObjects) { localDistributedObjects.add(new DistributedObjectInfo(localInfo.getServiceName(), localInfo.getName())); } Collection<DistributedObjectInfo> newDistributedObjectInfo = resultParameters.response; for (DistributedObjectInfo distributedObjectInfo : newDistributedObjectInfo) { localDistributedObjects.remove(distributedObjectInfo); getDistributedObject(distributedObjectInfo.getServiceName(), distributedObjectInfo.getName()); } for (DistributedObjectInfo distributedObjectInfo : localDistributedObjects) { proxyManager.destroyProxyLocally(distributedObjectInfo.getServiceName(), distributedObjectInfo.getName()); } return (Collection<DistributedObject>) proxyManager.getDistributedObjects(); } catch (Exception e) { throw rethrow(e); } }
public void onClusterConnect(Connection ownerConnection) throws Exception { partitionService.listenPartitionTable(ownerConnection); clusterService.listenMembershipEvents(ownerConnection); userCodeDeploymentService.deploy(this, ownerConnection); proxyManager.createDistributedObjectsOnCluster(ownerConnection); }
@Override public final void destroy() { getContext().getProxyManager().destroyProxy(this); }
private void initialize(ClientProxy clientProxy) throws Exception { Address initializationTarget = findNextAddressToSendCreateRequest(); if (initializationTarget == null) { throw new IOException("Not able to find a member to create proxy on!"); } ClientMessage clientMessage = ClientCreateProxyCodec.encodeRequest(clientProxy.getDistributedObjectName(), clientProxy.getServiceName(), initializationTarget); new ClientInvocation(client, clientMessage, clientProxy.getServiceName(), initializationTarget).invoke().get(); clientProxy.onInitialize(); }
public void doShutdown() { proxyManager.destroy(); connectionManager.shutdown(); clusterService.shutdown(); partitionService.stop(); transactionManager.shutdown(); invocationService.shutdown(); executionService.shutdown(); listenerService.shutdown(); nearCacheManager.destroyAllNearCaches(); if (discoveryService != null) { discoveryService.destroy(); } metricsRegistry.shutdown(); diagnostics.shutdown(); serializationService.dispose(); }
metricsRegistry.collectMetrics(clientExtension); proxyManager = new ProxyManager(this); executionService = initExecutionService(); metricsRegistry.collectMetrics(executionService);
public ClientProxy getOrCreateProxy(String service, String id) { final ObjectNamespace ns = new DistributedObjectNamespace(service, id); ClientProxyFuture proxyFuture = proxies.get(ns); if (proxyFuture != null) { return proxyFuture.get(); } ClientProxyFactory factory = proxyFactories.get(service); if (factory == null) { throw new ClientServiceNotFoundException("No factory registered for service: " + service); } proxyFuture = new ClientProxyFuture(); ClientProxyFuture current = proxies.putIfAbsent(ns, proxyFuture); if (current != null) { return current.get(); } try { ClientProxy clientProxy = createClientProxy(id, factory); initializeWithRetry(clientProxy); proxyFuture.set(clientProxy); return clientProxy; } catch (Throwable e) { proxies.remove(ns); proxyFuture.set(e); throw rethrow(e); } }
@Override public Collection<DistributedObject> getDistributedObjects() { try { ClientMessage request = ClientGetDistributedObjectsCodec.encodeRequest(); final Future<ClientMessage> future = new ClientInvocation(this, request, getName()).invoke(); ClientMessage response = future.get(); ClientGetDistributedObjectsCodec.ResponseParameters resultParameters = ClientGetDistributedObjectsCodec.decodeResponse(response); Collection<? extends DistributedObject> distributedObjects = proxyManager.getDistributedObjects(); Set<DistributedObjectInfo> localDistributedObjects = new HashSet<DistributedObjectInfo>(); for (DistributedObject localInfo : distributedObjects) { localDistributedObjects.add(new DistributedObjectInfo(localInfo.getServiceName(), localInfo.getName())); } Collection<DistributedObjectInfo> newDistributedObjectInfo = resultParameters.response; for (DistributedObjectInfo distributedObjectInfo : newDistributedObjectInfo) { localDistributedObjects.remove(distributedObjectInfo); getDistributedObject(distributedObjectInfo.getServiceName(), distributedObjectInfo.getName()); } for (DistributedObjectInfo distributedObjectInfo : localDistributedObjects) { proxyManager.destroyProxyLocally(distributedObjectInfo.getServiceName(), distributedObjectInfo.getName()); } return (Collection<DistributedObject>) proxyManager.getDistributedObjects(); } catch (Exception e) { throw rethrow(e); } }
public void onClusterConnect(Connection ownerConnection) throws Exception { partitionService.listenPartitionTable(ownerConnection); clusterService.listenMembershipEvents(ownerConnection); userCodeDeploymentService.deploy(this, ownerConnection); proxyManager.createDistributedObjectsOnCluster(ownerConnection); }
@Override public final void destroy() { getContext().getProxyManager().destroyProxy(this); }
private void initialize(ClientProxy clientProxy) throws Exception { Address initializationTarget = findNextAddressToSendCreateRequest(); if (initializationTarget == null) { throw new IOException("Not able to find a member to create proxy on!"); } ClientMessage clientMessage = ClientCreateProxyCodec.encodeRequest(clientProxy.getDistributedObjectName(), clientProxy.getServiceName(), initializationTarget); new ClientInvocation(client, clientMessage, clientProxy.getServiceName(), initializationTarget).invoke().get(); clientProxy.onInitialize(); }
public void doShutdown() { proxyManager.destroy(); connectionManager.shutdown(); clusterService.shutdown(); partitionService.stop(); transactionManager.shutdown(); invocationService.shutdown(); executionService.shutdown(); listenerService.shutdown(); nearCacheManager.destroyAllNearCaches(); if (discoveryService != null) { discoveryService.destroy(); } metricsRegistry.shutdown(); diagnostics.shutdown(); ((InternalSerializationService) serializationService).dispose(); }
metricsRegistry.collectMetrics(clientExtension); proxyManager = new ProxyManager(this); executionService = initExecutionService(); metricsRegistry.collectMetrics(executionService);
register(MapService.SERVICE_NAME, createServiceProxyFactory(MapService.class)); if (JCacheDetector.isJCacheAvailable(config.getClassLoader())) { register(ICacheService.SERVICE_NAME, new ClientCacheProxyFactory(client)); register(QueueService.SERVICE_NAME, ClientQueueProxy.class); register(MultiMapService.SERVICE_NAME, ClientMultiMapProxy.class); register(ListService.SERVICE_NAME, ClientListProxy.class); register(SetService.SERVICE_NAME, ClientSetProxy.class); register(SemaphoreService.SERVICE_NAME, ClientSemaphoreProxy.class); register(TopicService.SERVICE_NAME, ClientTopicProxy.class); register(AtomicLongService.SERVICE_NAME, ClientAtomicLongProxy.class); register(AtomicReferenceService.SERVICE_NAME, ClientAtomicReferenceProxy.class); register(DistributedExecutorService.SERVICE_NAME, ClientExecutorServiceProxy.class); register(DistributedDurableExecutorService.SERVICE_NAME, ClientDurableExecutorServiceProxy.class); register(LockServiceImpl.SERVICE_NAME, ClientLockProxy.class); register(CountDownLatchService.SERVICE_NAME, ClientCountDownLatchProxy.class); register(MapReduceService.SERVICE_NAME, ClientMapReduceProxy.class); register(ReplicatedMapService.SERVICE_NAME, ClientReplicatedMapProxy.class); register(XAService.SERVICE_NAME, XAResourceProxy.class); register(RingbufferService.SERVICE_NAME, ClientRingbufferProxy.class); register(ReliableTopicService.SERVICE_NAME, new ClientProxyFactoryWithContext() { @Override public ClientProxy create(String id, ClientContext context) { register(IdGeneratorService.SERVICE_NAME, new ClientProxyFactoryWithContext() { @Override public ClientProxy create(String id, ClientContext context) { register(FlakeIdGeneratorService.SERVICE_NAME, ClientFlakeIdGeneratorProxy.class);
@Override public String addDistributedObjectListener(DistributedObjectListener distributedObjectListener) { return proxyManager.addDistributedObjectListener(distributedObjectListener); }
public void createDistributedObjectsOnCluster(Connection ownerConnection) { List<Map.Entry<String, String>> proxyEntries = new LinkedList<Map.Entry<String, String>>(); for (ObjectNamespace objectNamespace : proxies.keySet()) { String name = objectNamespace.getObjectName(); String serviceName = objectNamespace.getServiceName(); proxyEntries.add(new AbstractMap.SimpleEntry<String, String>(name, serviceName)); } if (proxyEntries.isEmpty()) { return; } ClientMessage clientMessage = ClientCreateProxiesCodec.encodeRequest(proxyEntries); new ClientInvocation(client, clientMessage, null, ownerConnection).invokeUrgent(); createCachesOnCluster(); }