summaryrefslogtreecommitdiffstats
path: root/container-core/src/main/java/com/yahoo/container/Server.java
diff options
context:
space:
mode:
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.java50
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();
+ }
+
}