0

I am working on a Async Processing Module and Implemented Jersey Invocation Callback.

My implementation is straight forward and am defining a Completed and Failed methods as mentioned in https://docs.oracle.com/javaee/7/api/javax/ws/rs/client/InvocationCallback.html

and as per https://eclipse-ee4j.github.io/jersey.github.io/documentation/latest/async.html#d0e10417

Looking into Correct handling of background calls in jersey I understand this is the correct way to invoke the async call back options.

However am not able to understand which thread would be used to invoke the callback options? Does Jersey uses forkjoinpool.commonPool to execute these?

varkashy
  • 374
  • 4
  • 18

1 Answers1

0

From Jersey source code, it creates a thread pool based on the threadpool property

jersey.config.client.async.threadPoolSize

passed , defaulting to 0

public ClientRuntime(ClientConfig config, Connector connector, ServiceLocator locator) {
    Builder<ClientRequest> requestingChainBuilder = Stages.chain((Function)locator.createAndInitialize(RequestProcessingInitializationStage.class));
   
    int asyncThreadPoolSize = (Integer)PropertiesHelper.getValue(config.getProperties(), "jersey.config.client.async.threadPoolSize", 0);
    asyncThreadPoolSize = asyncThreadPoolSize < 0 ? 0 : asyncThreadPoolSize;
    this.asyncExecutorsFactory = new ClientAsyncExecutorFactory(locator, asyncThreadPoolSize);
}

In latest version a provider is used https://github.com/eclipse-ee4j/jersey/blob/01c6a32a2064aeff2caa8133472e33affeb8a29a/core-client/src/main/java/org/glassfish/jersey/client/DefaultClientAsyncExecutorProvider.java

varkashy
  • 374
  • 4
  • 18