protected void initEurekaServerContext() throws Exception {
        EurekaServerConfig eurekaServerConfig = new DefaultEurekaServerConfig();

        // For backward compatibility
        JsonXStream.getInstance().registerConverter(new V1AwareInstanceInfoConverter(), XStream.PRIORITY_VERY_HIGH);
        XmlXStream.getInstance().registerConverter(new V1AwareInstanceInfoConverter(), XStream.PRIORITY_VERY_HIGH);

        logger.info("Initializing the eureka client...");
        logger.info(eurekaServerConfig.getJsonCodecName());
        ServerCodecs serverCodecs = new DefaultServerCodecs(eurekaServerConfig);

        ApplicationInfoManager applicationInfoManager = null;

        if (eurekaClient == null) {
            EurekaInstanceConfig instanceConfig = isCloud(ConfigurationManager.getDeploymentContext())
                    ? new CloudInstanceConfig()
                    : new MyDataCenterInstanceConfig();
            
            applicationInfoManager = new ApplicationInfoManager(
                    instanceConfig, new EurekaConfigBasedInstanceInfoProvider(instanceConfig).get());
            
            EurekaClientConfig eurekaClientConfig = new DefaultEurekaClientConfig();
            eurekaClient = new DiscoveryClient(applicationInfoManager, eurekaClientConfig);
        } else {
            applicationInfoManager = eurekaClient.getApplicationInfoManager();
        }

        PeerAwareInstanceRegistry registry;
        if (isAws(applicationInfoManager.getInfo())) {
            registry = new AwsInstanceRegistry(
                    eurekaServerConfig,
                    eurekaClient.getEurekaClientConfig(),
                    serverCodecs,
                    eurekaClient
            );
            awsBinder = new AwsBinderDelegate(eurekaServerConfig, eurekaClient.getEurekaClientConfig(), registry, applicationInfoManager);
            awsBinder.start();
        } else {
            registry = new PeerAwareInstanceRegistryImpl(
                    eurekaServerConfig,
                    eurekaClient.getEurekaClientConfig(),
                    serverCodecs,
                    eurekaClient
            );
        }

        PeerEurekaNodes peerEurekaNodes = getPeerEurekaNodes(
                registry,
                eurekaServerConfig,
                eurekaClient.getEurekaClientConfig(),
                serverCodecs,
                applicationInfoManager
        );

        serverContext = new DefaultEurekaServerContext(
                eurekaServerConfig,
                serverCodecs,
                registry,
                peerEurekaNodes,
                applicationInfoManager
        );

        EurekaServerContextHolder.initialize(serverContext);

        serverContext.initialize();
        logger.info("Initialized server context");

        // Copy registry from neighboring eureka node
        int registryCount = registry.syncUp();
        registry.openForTraffic(applicationInfoManager, registryCount);

        // Register all monitoring statistics.
        EurekaMonitors.registerAllStats();
    }
protected void initEurekaServerContext ( ) throws Exception { EurekaServerConfig eurekaServerConfig = new DefaultEurekaServerConfig ( ) ; JsonXStream . getInstance ( ) . registerConverter ( new V1AwareInstanceInfoConverter ( ) , XStream . PRIORITY_VERY_HIGH ) ; XmlXStream . getInstance ( ) . registerConverter ( new V1AwareInstanceInfoConverter ( ) , XStream . PRIORITY_VERY_HIGH ) ; logger . info ( "Initializing the eureka client..." ) ; logger . info ( eurekaServerConfig . getJsonCodecName ( ) ) ; ServerCodecs serverCodecs = new DefaultServerCodecs ( eurekaServerConfig ) ; ApplicationInfoManager applicationInfoManager = null ; if ( eurekaClient == null ) { EurekaInstanceConfig instanceConfig = isCloud ( ConfigurationManager . getDeploymentContext ( ) ) ? new CloudInstanceConfig ( ) : new MyDataCenterInstanceConfig ( ) ; applicationInfoManager = new ApplicationInfoManager ( instanceConfig , new EurekaConfigBasedInstanceInfoProvider ( instanceConfig ) . get ( ) ) ; EurekaClientConfig eurekaClientConfig = new DefaultEurekaClientConfig ( ) ; eurekaClient = new DiscoveryClient ( applicationInfoManager , eurekaClientConfig ) ; } else { applicationInfoManager = eurekaClient . getApplicationInfoManager ( ) ; } PeerAwareInstanceRegistry registry ; if ( isAws ( applicationInfoManager . getInfo ( ) ) ) { registry = new AwsInstanceRegistry ( eurekaServerConfig , eurekaClient . getEurekaClientConfig ( ) , serverCodecs , eurekaClient ) ; awsBinder = new AwsBinderDelegate ( eurekaServerConfig , eurekaClient . getEurekaClientConfig ( ) , registry , applicationInfoManager ) ; awsBinder . start ( ) ; } else { registry = new PeerAwareInstanceRegistryImpl ( eurekaServerConfig , eurekaClient . getEurekaClientConfig ( ) , serverCodecs , eurekaClient ) ; } PeerEurekaNodes peerEurekaNodes = getPeerEurekaNodes ( registry , eurekaServerConfig , eurekaClient . getEurekaClientConfig ( ) , serverCodecs , applicationInfoManager ) ; serverContext = new DefaultEurekaServerContext ( eurekaServerConfig , serverCodecs , registry , peerEurekaNodes , applicationInfoManager ) ; EurekaServerContextHolder . initialize ( serverContext ) ; serverContext . initialize ( ) ; logger . info ( "Initialized server context" ) ; int registryCount = registry . syncUp ( ) ; registry . openForTraffic ( applicationInfoManager , registryCount ) ; EurekaMonitors . registerAllStats ( ) ; }
init hook for server context. Override for custom logic.