Consider following code
Server server = ServerBuilder.forPort(8080) .addService(new AServiceImpl(argA)) .addService(new AServiceImpl(argB)) .build();
I want this server to run two AService
with different args, argA
and argB
, is it possible?
If possible, when a AStub
call the method, which instance of service would it call?
Advertisement
Answer
I believe it is not possible, because each service is added to a map,
// Store per-service first, to make sure services are added/replaced atomically. private final HashMap<String, ServerServiceDefinition> services = new LinkedHashMap<>();
by name,
Builder addService(ServerServiceDefinition service) { services.put(service.getServiceDescriptor().getName(), service); return this; }
therefore new AServiceImpl(argB)
will override the other.