Beispiel #1
0
        public static AddressManager NewDiscoveryAddressManager(string clientId, ArtemisClientManagerConfig managerConfig)
        {
            AddressRepository addressRepository = new AddressRepository(clientId, managerConfig, RestPaths.CLUSTER_UP_DISCOVERY_NODES_FULL_PATH);

            return(new AddressManager(clientId, managerConfig,
                                      () => {
                return new AddressContext(clientId, managerConfig, addressRepository.Address, WebSocketPaths.SERVICE_CHANGE_DESTINATION);
            }));
        }
Beispiel #2
0
        public RegistryClientImpl(string clientId, ArtemisClientManagerConfig managerConfig)
        {
            Preconditions.CheckArgument(!string.IsNullOrWhiteSpace(clientId), "clientId");
            Preconditions.CheckArgument(managerConfig != null, "manager config");
            ArtemisClientConfig clientConfig = new ArtemisClientConfig(clientId, managerConfig,
                                                                       AddressManager.NewRegistryAddressManager(clientId, managerConfig));

            this._instanceRepository = new InstanceRepository(clientConfig);
            this._instanceRegistry   = new InstanceRegistry(_instanceRepository, clientConfig);
        }
Beispiel #3
0
        public DiscoveryClientImpl(string clientId, ArtemisClientManagerConfig managerConfig)
        {
            Preconditions.CheckArgument(!string.IsNullOrWhiteSpace(clientId), "clientId");
            Preconditions.CheckArgument(managerConfig != null, "manager config");

            ArtemisClientConfig clientConfig = new ArtemisClientConfig(clientId, managerConfig,
                                                                       AddressManager.NewDiscoveryAddressManager(clientId, managerConfig));

            _serviceRepository = new ServiceRepository(clientConfig);
        }
Beispiel #4
0
        public static AddressManager NewRegistryAddressManager(string clientId, ArtemisClientManagerConfig managerConfig)
        {
            AddressRepository addressRepository = new AddressRepository(clientId, managerConfig, RestPaths.CLUSTER_UP_REGISTRY_NODES_FULL_PATH);

            return(new AddressManager(clientId, managerConfig,
                                      () =>
            {
                return new AddressContext(clientId, managerConfig, addressRepository.Address, WebSocketPaths.HEARTBEAT_DESTINATION);
            }));
        }
Beispiel #5
0
 private AddressManager(string clientId, ArtemisClientManagerConfig managerConfig, Func <AddressContext> newAddressContext)
 {
     Preconditions.CheckArgument(!string.IsNullOrWhiteSpace(clientId), "clientId");
     Preconditions.CheckArgument(managerConfig != null, "manager config");
     Preconditions.CheckArgument(newAddressContext != null, "newAddressContext");
     _clientId          = clientId;
     _managerConfig     = managerConfig;
     _newAddressContext = newAddressContext;
     _addressContext.GetAndSet(_newAddressContext());
 }
        public ArtemisClientConfig(string clientId, ArtemisClientManagerConfig config, AddressManager addressManager)
        {
            Preconditions.CheckArgument(!string.IsNullOrWhiteSpace(clientId), "clientId");
            Preconditions.CheckArgument(config != null, "config");
            Preconditions.CheckArgument(addressManager != null, "addressManager");

            this._clientId        = clientId;
            ConfigurationManager  = config.ConfigurationManager;
            AddressManager        = addressManager;
            EventMetricManager    = config.EventMetricManager;
            AuditMetricManager    = config.AuditMetricManager;
            RegistryClientConfig  = config.RegistryClientConfig;
            DiscoveryClientConfig = config.DiscoveryClientConfig;
        }
Beispiel #7
0
        public AddressRepository(string clientId, ArtemisClientManagerConfig managerConfig, string path)
        {
            Preconditions.CheckArgument(!string.IsNullOrWhiteSpace(clientId), "clientId");
            Preconditions.CheckArgument(managerConfig != null, "manager config");
            Preconditions.CheckArgument(!string.IsNullOrWhiteSpace(path), "path");

            _path    = path.Trim('/');
            _request = new GetServiceNodesRequest()
            {
                RegionId = DeploymentConfig.RegionId,
                ZoneId   = DeploymentConfig.ZoneId
            };

            _domainUrl = managerConfig.ConfigurationManager.GetProperty(clientId + ".service.domain.url", "");
            _log.Info(string.Format("Artemis service url initialized with {0}", _domainUrl.Value));
            _timer = new DynamicTimer(managerConfig.ConfigurationManager.GetProperty(clientId + ".address-repository.dynamic-scheduled-thread.run-interval",
                                                                                     5 * 60 * 1000, 5 * 60 * 1000, 30 * 60 * 1000),
                                      () =>
            {
                Refresh();
            });
            Refresh();
        }
        public AddressContext(string clientId, ArtemisClientManagerConfig managerConfig, string httpUrl, string wsEndpointSuffix)
        {
            Preconditions.CheckArgument(!string.IsNullOrWhiteSpace(clientId), "clientId");
            Preconditions.CheckArgument(managerConfig != null, "managerConfig");

            _ttl = managerConfig.ConfigurationManager.GetProperty(clientId + ".address.context-ttl", 5 * 60 * 1000, 5 * 60 * 1000, 30 * 60 * 1000);
            if (string.IsNullOrWhiteSpace(httpUrl))
            {
                _httpUrl           = string.Empty;
                _webSocketEndpoint = string.Empty;
            }
            else
            {
                string url = httpUrl.Trim('/');
                _httpUrl = url;
                string wsEndpointPrefix = _httpSchema.Replace(url, _wsPrefix);
                if (!string.IsNullOrWhiteSpace(wsEndpointSuffix))
                {
                    _webSocketEndpoint = wsEndpointPrefix + "/" + wsEndpointSuffix.Trim('/');
                }

                _available.GetAndSet(true);
            }
        }
 public AddressContext(string clientId, ArtemisClientManagerConfig config)
     : this(clientId, config, string.Empty, string.Empty)
 {
 }