public static void main(String[] args) {
        /* Initialize the log handler */
        LogSetup.clearHandlers();
        LogSetup.initVespaLogging("configproxy");

        Properties properties = getSystemProperties();

        int port = DEFAULT_RPC_PORT;
        if (args.length > 0) {
            port = Integer.parseInt(args[0]);
        }
        Event.started("configproxy");

        ConfigSourceSet configSources = new ConfigSourceSet(properties.configSources);
        ProxyServer proxyServer = new ProxyServer(new Spec(null, port), configSources, createRpcClient(configSources));
        // catch termination and interrupt signal
        proxyServer.setupSignalHandler();
        Thread proxyserverThread = threadFactory.newThread(proxyServer);
        proxyserverThread.setName("configproxy");
        proxyserverThread.start();
        proxyServer.waitForShutdown();
    }
A proxy server that handles RPC config requests. The proxy can run in two modes:
'default' and 'memorycache', where the last one will not get config from an upstream
config source, but will serve config from memory cache only.

@author hmusum
config-proxy/src/main/java/com/yahoo/vespa/config/proxy/ProxyServer.java