diff options
Diffstat (limited to 'container-core/src/main/java/com/yahoo/container/Server.java')
-rw-r--r-- | container-core/src/main/java/com/yahoo/container/Server.java | 50 |
1 files changed, 45 insertions, 5 deletions
diff --git a/container-core/src/main/java/com/yahoo/container/Server.java b/container-core/src/main/java/com/yahoo/container/Server.java index a4dec6de5a2..293e8b4674e 100644 --- a/container-core/src/main/java/com/yahoo/container/Server.java +++ b/container-core/src/main/java/com/yahoo/container/Server.java @@ -3,43 +3,83 @@ package com.yahoo.container; import com.yahoo.config.subscription.ConfigSubscriber; import com.yahoo.container.QrConfig.Rpc; +import com.yahoo.container.osgi.ContainerRpcAdaptor; /** * The http server singleton managing listeners for various ports, * and the threads used to respond to requests on the ports * * @author bratseth - * @deprecated */ @SuppressWarnings("deprecation") -@Deprecated // TODO: Remove this when the last usage og getServerDiscriminator is removed public class Server { //TODO: Make this final again. - private static final Server instance = new Server(); + private static Server instance = new Server(); + private ConfigSubscriber subscriber = new ConfigSubscriber(); + + /** The OSGi container instance of this server */ + private Container container = Container.get(); /** A short string which is different for all the qrserver instances on a given node. */ private String localServerDiscriminator = "qrserver.0"; + /** Creates a new server instance. Not usually useful, use get() to get the current server */ private Server() { } + /** @deprecated returns 0 */ + @Deprecated + public int searchQueriesInFlight() { + return 0; + } + + /** + * An estimate of current number of connections. It is better to be + * inaccurate than to acquire a lock per query fsync. + * + * @return The current number of open search connections + */ + /** @deprecated returns 0 */ + @Deprecated + public int getCurrentConnections() { + return 0; + } + public static Server get() { return instance; } + private void initRpcServer(Rpc rpcConfig) { + if (rpcConfig.enabled()) { + ContainerRpcAdaptor rpcAdaptor = container.getRpcAdaptor(); + rpcAdaptor.listen(rpcConfig.port()); + rpcAdaptor.setSlobrokId(rpcConfig.slobrokId()); + } + } + + /** Ugly hack, see Container.resetInstance */ + static void resetInstance() { + instance = new Server(); + } + + // TODO: Make independent of config public void initialize(QrConfig config) { localServerDiscriminator = config.discriminator(); + container.setupFileAcquirer(config.filedistributor()); + initRpcServer(config.rpc()); } /** * A string unique for this QRS on this server. * * @return a server specific string - * @deprecated do not use */ - @Deprecated public String getServerDiscriminator() { return localServerDiscriminator; } + public void shutdown() { + if (subscriber!=null) subscriber.close(); + } + } |