/** * Indicate that the server is up, which will allow client invocations to proceed. This method must be called * in order for invocations to flow through the server. */ public void serverUp() { callbackBuffer.activate(); } }
public RemotingOperations getOperations(final Connection connection) throws IOException { return new EJBTransactionOperations(connection); } }
public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, SystemException { executeSimpleInvocation(Protocol.TXN_COMMIT_REQUEST, true); }
void connectAndDiscover(URI uri, String clusterEffective) { final String scheme = uri.getScheme(); if (scheme == null || ! ejbReceiver.getRemoteTransportProvider().supportsProtocol(scheme) || ! endpoint.isValidUriScheme(scheme)) { countDown(); return; } outstandingCount.getAndIncrement(); final IoFuture<ConnectionPeerIdentity> future = doPrivileged((PrivilegedAction<IoFuture<ConnectionPeerIdentity>>) () -> getConnectedIdentityUsingClusterEffective(endpoint, uri, "ejb", "jboss", authenticationContext, clusterEffective)); onCancel(future::cancel); future.addNotifier(outerNotifier, uri); }
<T, U> void addListener(final AtomicReference<State> stateRef, final BiConsumer<T, U> consumer, final T p1, final U p2) { if (! stateRef.compareAndSet(this, new UnfinishedWithListenerState<T, U>(this,consumer, p1, p2))) { stateRef.get().addListener(stateRef, consumer, p1, p2); } Logs.REMOTING.tracef("Added callback (delayed) %s(%s, %s)", consumer, p1, p2); } }
public void notifyRegistered(final EJBReceiverContext receiverContext) { final EJBClientContext clientContext = receiverContext.getClientContext(); clientContext.putAttachmentIfAbsent(ATTACHMENT_KEY, new RemoteEJBReceiver(this, receiverContext, new RemotingEJBDiscoveryProvider())); }
public void configure(final Consumer<DiscoveryProvider> discoveryProviderConsumer, final Consumer<RegistryProvider> registryProviderConsumer) { discoveryProviderConsumer.accept((serviceType, filterSpec, result) -> { final RemoteEJBReceiver receiver = EJBClientContext.getCurrent().getAttachment(RemoteTransportProvider.ATTACHMENT_KEY); if (receiver == null) { result.complete(); return DiscoveryRequest.NULL; } return receiver.getDiscoveredNodeRegistry().discover(serviceType, filterSpec, result); }); } }
public ObjectResolver getObjectResolver(final Transport transport, final boolean request) { if (transport instanceof RemoteTransport) { final RemoteTransport remoteTransport = (RemoteTransport) transport; if (remoteTransport.getVersion() == 1) { // naming version is 1, EJB version is 1 or 2 (same resolver either way) return new ProtocolV1ObjectResolver(remoteTransport.getConnection(), true); } else if (remoteTransport.getVersion() == 2) { // this refers to the naming version, not the EJB version // naming version is 2, EJB version is 3 return new ProtocolV3ObjectResolver(remoteTransport.getConnection(), true); } } return null; } }
public <T> void addListener(final Consumer<T> consumer, final T p1) { addListener(Consumer::accept, consumer, p1); }
public void moduleUnavailable(final List<EJBModuleIdentifier> modules) { doWrite(false, modules); }
public void complete() { countDown(); }
Channel.Receiver getReceiver(final Association association, final ListenerHandle handle1, final ListenerHandle handle2) { return new ReceiverImpl(association, handle1, handle2); }
ClusterTopologyListener createTopologyListener() { return new ClusterTopologyWriter(); }
ModuleAvailabilityListener createModuleListener() { return new ModuleAvailabilityWriter(); }
public void writeObject(final Marshaller marshaller, final Object object) throws IOException { writeExternal(object, marshaller); }
public Object handleInvocationResult(final EJBClientInvocationContext context) throws Exception { try { return context.getResult(); } catch (NoSuchEJBException e) { // EJB is not present on target node! removeNode(context); throw e; } }
public void rollback() throws SecurityException, SystemException { executeSimpleInvocation(Protocol.TXN_ROLLBACK_REQUEST, false); }
public void addListener(final Runnable runnable) { addListener(Runnable::run, runnable); }
public void moduleAvailable(final List<EJBModuleIdentifier> modules) { doWrite(true, modules); }