All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.netflix.eureka2.server.ReadServerConfig Maven / Gradle / Ivy

/*
 * Copyright 2014 Netflix, Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.netflix.eureka2.server;

import com.netflix.governator.annotations.Configuration;
import com.netflix.eureka2.registry.datacenter.LocalDataCenterInfo.DataCenterType;
import com.netflix.eureka2.transport.EurekaTransports;
import com.netflix.eureka2.transport.EurekaTransports.Codec;

/**
 * @author Tomasz Bak
 */
public class ReadServerConfig extends EurekaBootstrapConfig {

    @Configuration("writeCluster.registration.port")
    private int writeClusterRegistrationPort = EurekaTransports.DEFAULT_REGISTRATION_PORT;

    @Configuration("writeCluster.discovery.port")
    private int writeClusterDiscoveryPort = EurekaTransports.DEFAULT_DISCOVERY_PORT;

    public ReadServerConfig() {
    }

    public ReadServerConfig(DataCenterType dataCenterType, String resolverType,
                            int readServerPort, Codec codec, int shutDownPort,
                            String appName, String vipAddress, String writeClusterDomainName,
                            String[] writeClusterServers, int writeClusterRegistrationPort,
                            int writeClusterDiscoveryPort, int webAdminPort) {
        super(dataCenterType, resolverType, -1, -1, readServerPort, codec, shutDownPort, appName, vipAddress,
              writeClusterDomainName, writeClusterServers, webAdminPort);
        this.writeClusterRegistrationPort = writeClusterRegistrationPort;
        this.writeClusterDiscoveryPort = writeClusterDiscoveryPort;
    }

    public int getWriteClusterRegistrationPort() {
        return writeClusterRegistrationPort;
    }

    public int getWriteClusterDiscoveryPort() {
        return writeClusterDiscoveryPort;
    }

    public static class ReadServerConfigBuilder extends EurekaBootstrapConfigBuilder {

        private int writeClusterRegistrationPort;
        private int writeClusterDiscoveryPort;

        public ReadServerConfigBuilder withWriteClusterRegistrationPort(int writeClusterRegistrationPort) {
            this.writeClusterRegistrationPort = writeClusterRegistrationPort;
            return this;
        }

        public ReadServerConfigBuilder withWriteClusterDiscoveryPort(int writeClusterDiscoveryPort) {
            this.writeClusterDiscoveryPort = writeClusterDiscoveryPort;
            return this;
        }

        @Override
        public ReadServerConfig build() {
            return new ReadServerConfig(dataCenterType, resolverType, readServerPort, codec, shutDownPort, appName, vipAddress,
                    writeClusterDomainName, writeClusterServers, writeClusterRegistrationPort,
                    writeClusterDiscoveryPort, webAdminPort);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy