public static void RegisterCollection(this ContainerBuilder builder, ISolrCloudStateProvider cloudStateProvider, bool isPostConnection = false) { if (cloudStateProvider == null) { throw new ArgumentNullException(nameof(cloudStateProvider)); } var cloudStateProviderParam = new ResolvedParameter( (pi, ctx) => pi.ParameterType == typeof(ISolrCloudStateProvider) && pi.Name == nameof(cloudStateProvider), (pi, ctx) => ctx.ResolveKeyed <ISolrCloudStateProvider>(cloudStateProvider.Key)); var operationsProviderParam = new ResolvedParameter( (pi, ctx) => pi.ParameterType == typeof(ISolrOperationsProvider), (pi, ctx) => ctx.Resolve <ISolrOperationsProvider>()); var isPostConnectionParam = new ResolvedParameter( (pi, ctx) => pi.ParameterType == typeof(bool) && pi.Name == nameof(isPostConnection), (pi, ctx) => isPostConnection); var solrOperationsParams = new Parameter[] { cloudStateProviderParam, operationsProviderParam, isPostConnectionParam }; builder.RegisterGeneric(typeof(SolrCloudBasicOperations <>)) .As(typeof(ISolrBasicOperations <>), typeof(ISolrBasicReadOnlyOperations <>)) .WithParameters(solrOperationsParams); builder.RegisterGeneric(typeof(SolrCloudOperations <>)) .As(typeof(ISolrOperations <>), typeof(ISolrReadOnlyOperations <>)) .WithParameters(solrOperationsParams); }
/// <summary> /// Returns configured unity container /// </summary> public IUnityContainer ConfigureContainer(ISolrCloudStateProvider cloudStateProvider, IUnityContainer container) { //add Collections support container.AddNewExtension <Collections.CollectionResolutionExtension>(); if (cloudStateProvider == null) { throw new ArgumentNullException("cloudStateProvider"); } if (container == null) { throw new ArgumentNullException("container"); } if (container.IsRegistered <ISolrCloudStateProvider>(cloudStateProvider.Key)) { return(container); } Nito.AsyncEx.AsyncContext.Run(() => cloudStateProvider.InitAsync()); foreach (var collection in cloudStateProvider.GetCloudState().Collections.Keys) { if (!container.IsRegistered <ISolrCloudStateProvider>()) { RegisterFirstCollection(cloudStateProvider, container); } RegisterCollection(cloudStateProvider, collection, container); } container.RegisterInstance(cloudStateProvider.Key, cloudStateProvider); if (!container.IsRegistered <ISolrOperationsProvider>()) { container.RegisterInstance <ISolrOperationsProvider>(new OperationsProvider()); } return(container); }
public static void Init <T>(ISolrCloudStateProvider cloudStateProvider) { if (cloudStateProvider == null) { throw new ArgumentNullException("cloudStateProvider"); } EnsureRegistration(cloudStateProvider); if (!Collections.Add(string.Empty)) { return; } Parent.Container.Register <ISolrBasicOperations <T> >( container => new SolrCloudBasicOperations <T>( container.GetInstance <ISolrCloudStateProvider>(cloudStateProvider.Key), container.GetInstance <ISolrOperationsProvider>())); Parent.Container.Register <ISolrBasicReadOnlyOperations <T> >( container => new SolrCloudBasicOperations <T>( container.GetInstance <ISolrCloudStateProvider>(cloudStateProvider.Key), container.GetInstance <ISolrOperationsProvider>())); Parent.Container.Register <ISolrOperations <T> >( container => new SolrCloudOperations <T>( container.GetInstance <ISolrCloudStateProvider>(cloudStateProvider.Key), container.GetInstance <ISolrOperationsProvider>())); Parent.Container.Register <ISolrReadOnlyOperations <T> >( container => new SolrCloudOperations <T>( container.GetInstance <ISolrCloudStateProvider>(cloudStateProvider.Key), container.GetInstance <ISolrOperationsProvider>())); }
/// <summary> /// Constructor /// </summary> protected SolrCloudOperationsBase(ISolrCloudStateProvider cloudStateProvider, ISolrOperationsProvider operationsProvider, bool isPostConnection) { this.cloudStateProvider = cloudStateProvider; this.operationsProvider = operationsProvider; this.isPostConnection = isPostConnection; random = new Random(); }
public async Task InitializeAsync() { solrconnection = new SolrConnection(SOLR_CONNECTION_URL); collections = new SolrCollectionsAdmin(solrconnection, new HeaderResponseParser <string>()); var solrCloud = new SolrCloudStateProvider(ZOOKEEPER_CONNECTION); await Startup.InitAsync <string>(solrCloud, COLLECTION_NAME, true); solrCloudStateProvider = Startup.Container.GetInstance <ISolrCloudStateProvider>(solrCloud.Key); }
/// <summary> /// Registers first collection /// </summary> private static void RegisterFirstCollection(ISolrCloudStateProvider cloudStateProvider, IUnityContainer container) { var injection = new InjectionConstructor( new ResolvedParameter <ISolrCloudStateProvider>(cloudStateProvider.Key), new ResolvedParameter <ISolrOperationsProvider>()); container.RegisterType(typeof(ISolrBasicOperations <>), typeof(SolrCloudBasicOperations <>), injection); container.RegisterType(typeof(ISolrBasicReadOnlyOperations <>), typeof(SolrCloudBasicOperations <>), injection); container.RegisterType(typeof(ISolrOperations <>), typeof(SolrCloudOperations <>), injection); container.RegisterType(typeof(ISolrReadOnlyOperations <>), typeof(SolrCloudOperations <>), injection); }
private static void EnsureRegistration(ISolrCloudStateProvider cloudStateProvider) { if (Providers.Count == 0) { Parent.Container.Register <ISolrOperationsProvider>(c => new OperationsProvider()); } if (Providers.ContainsKey(cloudStateProvider.Key)) { return; } cloudStateProvider.Init(); Providers.Add(cloudStateProvider.Key, cloudStateProvider); Parent.Container.Register(cloudStateProvider.Key, container => cloudStateProvider); }
private static void EnsureRegistration(ContainerBuilder builder, ISolrCloudStateProvider cloudStateProvider) { builder.RegisterType <OperationsProvider>() .As <ISolrOperationsProvider>() .IfNotRegistered(typeof(ISolrOperationsProvider)); if (Providers.ContainsKey(cloudStateProvider.Key)) { return; } cloudStateProvider.InitAsync().GetAwaiter().GetResult(); Providers.Add(cloudStateProvider.Key, cloudStateProvider); builder.Register(c => cloudStateProvider).Keyed <ISolrCloudStateProvider>(cloudStateProvider.Key); }
/// <summary> /// Startup initializing /// </summary> public static async Task InitAsync <T>(ISolrCloudStateProvider cloudStateProvider, string collectionName, bool isPostConnection = false) { if (cloudStateProvider == null) { throw new ArgumentNullException("cloudStateProvider"); } if (string.IsNullOrEmpty(collectionName)) { throw new ArgumentNullException("collectionName"); } await EnsureRegistrationAsync(cloudStateProvider); if (!Collections.Add(collectionName)) { return; } Parent.Container.Register <ISolrBasicOperations <T> >( container => new SolrCloudBasicOperations <T>( container.GetInstance <ISolrCloudStateProvider>(cloudStateProvider.Key), container.GetInstance <ISolrOperationsProvider>(), collectionName, isPostConnection)); Parent.Container.Register <ISolrBasicReadOnlyOperations <T> >( container => new SolrCloudBasicOperations <T>( container.GetInstance <ISolrCloudStateProvider>(cloudStateProvider.Key), container.GetInstance <ISolrOperationsProvider>(), collectionName, isPostConnection)); Parent.Container.Register <ISolrOperations <T> >( container => new SolrCloudOperations <T>( container.GetInstance <ISolrCloudStateProvider>(cloudStateProvider.Key), container.GetInstance <ISolrOperationsProvider>(), collectionName, isPostConnection)); Parent.Container.Register <ISolrReadOnlyOperations <T> >( container => new SolrCloudOperations <T>( container.GetInstance <ISolrCloudStateProvider>(cloudStateProvider.Key), container.GetInstance <ISolrOperationsProvider>(), collectionName, isPostConnection)); }
public IUnityContainer ConfigureContainer(ISolrCloudStateProvider cloudStateProvider, IUnityContainer container) { if (cloudStateProvider == null) { throw new ArgumentNullException("cloudStateProvider"); } if (container == null) { throw new ArgumentNullException("container"); } if (container.IsRegistered <ISolrCloudStateProvider>(cloudStateProvider.Key)) { return(container); } cloudStateProvider.Init(); foreach (var collection in cloudStateProvider.GetCloudState().Collections.Keys) { if (!container.IsRegistered <ISolrCloudStateProvider>()) { RegisterFirstCollection(cloudStateProvider, container); } RegisterCollection(cloudStateProvider, collection, container); } container.RegisterInstance(cloudStateProvider.Key, cloudStateProvider); if (!container.IsRegistered <ISolrOperationsProvider>()) { container.RegisterInstance <ISolrOperationsProvider>(new OperationsProvider()); } //container.RegisterType<IReadOnlyMappingManager, MemoizingMappingManager>(new InjectionConstructor(new ResolvedParameter(typeof(AttributesMappingManager)))); //container.RegisterType(typeof(ISolrDocumentActivator<>), typeof(SolrDocumentActivator<>)); //container.RegisterType(typeof(ISolrQueryExecuter<>), typeof(SolrQueryExecuter<>)); //container.RegisterType<ISolrDocumentPropertyVisitor, DefaultDocumentVisitor>(); //container.RegisterType<IMappingValidator, MappingValidator>(); //RegisterParsers(container); //RegisterValidationRules(container); //RegisterSerializers(container); return(container); }
public SolrCloudBasicOperations(ISolrCloudStateProvider cloudStateProvider, ISolrOperationsProvider operationsProvider, string collectionName) : base(cloudStateProvider, operationsProvider, isPostConnection: false, collectionName: collectionName) { }
public SolrCloudBasicOperations(ISolrCloudStateProvider cloudStateProvider, ISolrOperationsProvider operationsProvider) : base(cloudStateProvider, operationsProvider, isPostConnection: false) { }
public SolrCloudOperations(ISolrCloudStateProvider cloudStateProvider, ISolrOperationsProvider operationsProvider) : base(cloudStateProvider, operationsProvider) { }
public SolrCloudOperations(ISolrCloudStateProvider cloudStateProvider, ISolrOperationsProvider operationsProvider, string collectionName) : base(cloudStateProvider, operationsProvider, collectionName) { }
public SolrCloudOperations(ISolrCloudStateProvider cloudStateProvider, ISolrOperationsProvider operationsProvider, bool isPostConnection = false) : base(cloudStateProvider, operationsProvider, isPostConnection) { }
/// <summary> /// Constructor /// </summary> protected SolrCloudOperationsBase(ISolrCloudStateProvider cloudStateProvider, ISolrOperationsProvider operationsProvider, bool isPostConnection, string collectionName = null) : this(cloudStateProvider, operationsProvider, isPostConnection) { this.collectionName = collectionName; }
/// <summary> /// Returns configured unity container /// </summary> public IUnityContainer ConfigureContainer(ISolrCloudStateProvider cloudStateProvider, IUnityContainer container) { return(Nito.AsyncEx.AsyncContext.Run(() => ConfigureContainerAsync(cloudStateProvider, container))); }
public SolrNetCloudModule(ISolrCloudStateProvider cloudStateProvider, string collectionName, bool isPostConnection = false) : this(cloudStateProvider, isPostConnection) { CollectionName = collectionName; }
public SolrNetCloudModule(ISolrCloudStateProvider cloudStateProvider, bool isPostConnection = false) { CloudStateProvider = cloudStateProvider; IsPostConnection = isPostConnection; }
public SolrCloudOperations(ISolrCloudStateProvider cloudStateProvider, ISolrOperationsProvider operationsProvider, string collectionName, bool isPostConnection = false) : base(cloudStateProvider, operationsProvider, isPostConnection, collectionName) { }
protected SolrCloudOperationsBase(ISolrCloudStateProvider cloudStateProvider, ISolrOperationsProvider operationsProvider) { this.cloudStateProvider = cloudStateProvider; this.operationsProvider = operationsProvider; random = new Random(); }