//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: private void makeSureIndexHasSomeData(org.neo4j.kernel.api.index.IndexProvider provider) throws java.io.IOException, org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException private void MakeSureIndexHasSomeData(IndexProvider provider) { using (IndexAccessor accessor = provider.GetOnlineAccessor(_storeIndexDescriptor, _samplingConfig), IndexUpdater updater = accessor.NewUpdater(IndexUpdateMode.ONLINE)) { updater.Process(IndexEntryUpdate.add(1, _storeIndexDescriptor, Values.of("some string"))); } }
/// <summary> /// This test come from a support case where dropping an index would block forever after index sampling failed. /// <para> /// A fusion index has multiple <seealso cref="IndexSampler index samplers"/> that are called sequentially. If one fails, then the other will never be invoked. /// This was a problem for <seealso cref="LuceneIndexSampler"/>. It owns a <seealso cref="org.neo4j.helpers.TaskControl"/> that it will try to release in try-finally /// in <seealso cref="LuceneIndexSampler.sampleIndex()"/>. But it never gets here because a prior <seealso cref="IndexSampler"/> fails. /// </para> /// <para> /// Because the <seealso cref="org.neo4j.helpers.TaskControl"/> was never released the lucene accessor would block forever, waiting for /// <seealso cref="TaskCoordinator.awaitCompletion()"/>. /// </para> /// <para> /// This situation was solved by making <seealso cref="IndexSampler"/> <seealso cref="System.IDisposable"/> and include it in try-with-resource together with /// <seealso cref="IndexReader"/> that created it. /// </para> /// </summary> //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test(timeout = 5_000L) public void failedIndexSamplingMustNotPreventIndexDrop() throws java.io.IOException, org.neo4j.kernel.api.exceptions.index.IndexEntryConflictException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void FailedIndexSamplingMustNotPreventIndexDrop() { LuceneIndexProvider luceneProvider = luceneProvider(); MakeSureIndexHasSomeData(luceneProvider); // Otherwise no sampler will be created. IndexProvider failingProvider = failingProvider(); FusionIndexProvider fusionProvider = CreateFusionProvider(luceneProvider, failingProvider); using (IndexAccessor fusionAccessor = fusionProvider.GetOnlineAccessor(_storeIndexDescriptor, _samplingConfig)) { IndexSamplingJob indexSamplingJob = CreateIndexSamplingJob(fusionAccessor); // Call run from other thread try { indexSamplingJob.run(); } catch (Exception e) { assertSame(e, _sampleException); } // then fusionAccessor.Drop(); // should not block forever } }
/// <inheritdoc/> protected override SqlProvider VisitIndex(IndexProvider provider) { var index = provider.Index.Resolve(Handlers.Domain.Model); SqlSelect query = BuildProviderQuery(index); return(CreateProvider(query, provider)); }
private IndexPopulator IndexPopulator(IndexDescriptor descriptor) { IndexSamplingConfig samplingConfig = new IndexSamplingConfig(Config.defaults()); IndexProvider indexProvider = _db.DependencyResolver.resolveDependency(typeof(DefaultIndexProviderMap)).DefaultProvider; return(indexProvider.GetPopulator(descriptor.WithId(21), samplingConfig, heapBufferFactory(1024))); }
private void AssertProviderFound(IndexProvider provider, string providerDescriptorName) { if (provider == null) { throw new IndexProviderNotFoundException("Tried to get index provider with name " + providerDescriptorName + " whereas available providers in this session being " + _indexProvidersByName.Keys + ", and default being " + _defaultIndexProvider.ProviderDescriptor.name()); } }
private static IndexProvider MockProvider(System.Type providerClass, string name) { IndexProvider mock = mock(providerClass); when(mock.ProviderDescriptor).thenReturn(new IndexProviderDescriptor(name, "1")); return(mock); }
public void ShouldThrowExceptionIfHttpCodeIsNot201( IndexFor indexFor, IndexProvider indexProvider, IndexType indexType, string createEndpoint, string createJson) { //Arrange using (var testHarness = new RestTestHarness { { MockRequest.PostJson(createEndpoint, createJson), MockResponse.Http(500) } }) { var graphClient = testHarness.CreateAndConnectGraphClient(); var indexConfiguration = new IndexConfiguration { Provider = indexProvider, Type = indexType }; Assert.Throws <Exception>(() => graphClient.CreateIndex("foo", indexConfiguration, indexFor)); } }
public void ShouldCreateIndex( IndexFor indexFor, IndexProvider indexProvider, IndexType indexType, string createEndpoint, string createJson) { //Arrange using (var testHarness = new RestTestHarness { { MockRequest.PostJson(createEndpoint, createJson), MockResponse.Http(201) } }) { var graphClient = testHarness.CreateAndConnectGraphClient(); var indexConfiguration = new IndexConfiguration { Provider = indexProvider, Type = indexType }; graphClient.CreateIndex("foo", indexConfiguration, indexFor); } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void mustSelectCorrectTargetForAllGivenValueCombinations() public virtual void MustSelectCorrectTargetForAllGivenValueCombinations() { // given Dictionary <IndexSlot, Value[]> values = FusionIndexTestHelp.ValuesByGroup(); Value[] allValues = FusionIndexTestHelp.AllValues(); foreach (IndexSlot slot in Enum.GetValues(typeof(IndexSlot))) { Value[] group = values[slot]; foreach (Value value in group) { // when IndexProvider selected = _instanceSelector.select(_slotSelector.selectSlot(array(value), GROUP_OF)); // then assertSame(OrLucene(_providers[slot]), selected); } } // All composite values should go to lucene foreach (Value firstValue in allValues) { foreach (Value secondValue in allValues) { // when IndexProvider selected = _instanceSelector.select(_slotSelector.selectSlot(array(firstValue, secondValue), GROUP_OF)); // then assertSame(_providers[LUCENE], selected); } } }
public IndexManagerImpl(System.Func <Transaction> bridge, IndexProvider provider, AutoIndexer <Node> nodeAutoIndexer, RelationshipAutoIndexer relAutoIndexer) { this._transactionBridge = bridge; this._provider = provider; this._nodeAutoIndexer = nodeAutoIndexer; this._relAutoIndexer = relAutoIndexer; }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void getPopulationFailureMustThrowEvenIfFailureOnOtherIndex() public virtual void getPopulationFailureMustThrowEvenIfFailureOnOtherIndex() { // given _provider = NewProvider(); int nonFailedIndexId = NativeIndexProviderTests.INDEX_ID; IndexPopulator nonFailedPopulator = _provider.getPopulator(Descriptor(nonFailedIndexId), SamplingConfig(), heapBufferFactory(1024)); nonFailedPopulator.Create(); nonFailedPopulator.Close(true); int failedIndexId = 2; IndexPopulator failedPopulator = _provider.getPopulator(Descriptor(failedIndexId), SamplingConfig(), heapBufferFactory(1024)); failedPopulator.Create(); // when failedPopulator.MarkAsFailed("failure"); failedPopulator.Close(false); // then try { _provider.getPopulationFailure(Descriptor(nonFailedIndexId)); fail("Should have failed"); } catch (System.InvalidOperationException e) { // good assertThat(e.Message, Matchers.containsString(Convert.ToString(nonFailedIndexId))); } }
private static IndexProvider MockedIndexProvider(string name) { IndexProvider provider = mock(typeof(IndexProvider)); when(provider.ProviderDescriptor).thenReturn(new IndexProviderDescriptor(name, "1")); return(provider); }
private void InitDefaultProvider() { string providerName = _config.get(GraphDatabaseSettings.default_schema_provider); IndexProvider configuredDefaultProvider = _indexProvidersByName[providerName]; requireNonNull(configuredDefaultProvider, () => format("Configured default provider: `%s` not found. Available index providers: %s.", providerName, _indexProvidersByName.Keys.ToString())); _defaultIndexProvider = configuredDefaultProvider; }
private void FillProvidersSelector(IndexProvider stringProvider, IndexProvider numberProvider, IndexProvider spatialProvider, IndexProvider temporalProvider, IndexProvider luceneProvider) { _providers.put(STRING, stringProvider); _providers.put(NUMBER, numberProvider); _providers.put(SPATIAL, spatialProvider); _providers.put(TEMPORAL, temporalProvider); _providers.put(LUCENE, luceneProvider); }
public override IndexProvider Lookup(IndexProviderDescriptor providerDescriptor) { AssertInit(); IndexProvider provider = _indexProvidersByDescriptor[providerDescriptor]; AssertProviderFound(provider, providerDescriptor.Name()); return(provider); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Before public void setup() throws java.io.IOException, org.neo4j.internal.kernel.api.exceptions.EntityNotFoundException //JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: public virtual void Setup() { _indexProvider = ProviderCreator.apply(this); Rules.fileSystem().mkdirs(_indexProvider.directoryStructure().rootDirectory()); _populator = _indexProvider.getPopulator(Descriptor, _samplingConfig, heapBufferFactory(1024)); when(_nodePropertyAccessor.getNodePropertyValue(anyLong(), anyInt())).thenThrow(typeof(System.NotSupportedException)); _prevAccessCheck = UnsafeUtil.exchangeNativeAccessCheckEnabled(false); }
private StoreIndexDescriptor[] CreateIndexRules(IDictionary <string, int> labelNameIdMap, int propertyId) { IndexProvider lookup = IndexProviderMap.lookup(SchemaIndex.providerName()); IndexProviderDescriptor providerDescriptor = lookup.ProviderDescriptor; //JAVA TO C# CONVERTER TODO TASK: Method reference constructor syntax is not converted by Java to C# Converter: return(labelNameIdMap.Values.Select(index => IndexDescriptorFactory.forSchema(SchemaDescriptorFactory.forLabel(index, propertyId), providerDescriptor).withId(index)).ToArray(StoreIndexDescriptor[] ::new)); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Before public void setup() public virtual void Setup() { Fs = PageCacheAndDependenciesRule.fileSystem(); GraphDbDir = PageCacheAndDependenciesRule.directory().databaseDir(); PageCache pageCache = PageCacheAndDependenciesRule.pageCache(); IndexProvider = TestSuite.createIndexProvider(pageCache, Fs, GraphDbDir); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in C#: //ORIGINAL LINE: public org.neo4j.kernel.api.index.IndexProvider lookup(String providerDescriptorName) throws org.neo4j.kernel.impl.api.index.IndexProviderNotFoundException public override IndexProvider Lookup(string providerDescriptorName) { AssertInit(); IndexProvider provider = _indexProvidersByName[providerDescriptorName]; AssertProviderFound(provider, providerDescriptorName); return(provider); }
public FusionIndexProvider(IndexProvider stringProvider, IndexProvider numberProvider, IndexProvider spatialProvider, IndexProvider temporalProvider, IndexProvider luceneProvider, SlotSelector slotSelector, IndexProviderDescriptor descriptor, IndexDirectoryStructure.Factory directoryStructure, FileSystemAbstraction fs, bool archiveFailedIndex) : base(descriptor, directoryStructure) { this._archiveFailedIndex = archiveFailedIndex; this._slotSelector = slotSelector; this._providers = new InstanceSelector <IndexProvider>(); this._dropAction = new FileSystemIndexDropAction(fs, directoryStructure()); FillProvidersSelector(stringProvider, numberProvider, spatialProvider, temporalProvider, luceneProvider); slotSelector.ValidateSatisfied(_providers); }
private IndexProvider Put(IndexProviderDescriptor providerDescriptor, IndexProvider provider) { IndexProvider existing = _indexProvidersByDescriptor.putIfAbsent(providerDescriptor, provider); if (!_indexProvidersByName.ContainsKey(providerDescriptor.Name())) { _indexProvidersByName.Add(providerDescriptor.Name(), provider); } return(existing); }
private void WriteFailure(string indexName, StringBuilder builder, IndexProvider provider, StoreIndexDescriptor descriptor) { try { string failure = provider.GetPopulationFailure(descriptor); builder.Append(indexName); builder.Append(": "); builder.Append(failure); builder.Append(' '); } catch (System.InvalidOperationException) { // Just catch } }
private void SetItemIndex(object item, int index) { if (IndexProvider != null) { IndexProvider.SetIndex(item, index); } else { if (ItemContainerGenerator.ContainerFromItem(item) is LuiAccordionItem itemContainer) { itemContainer.Index = index; } } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldReportInitialStateAsPopulatingIfPopulationStartedButIncomplete() public virtual void ShouldReportInitialStateAsPopulatingIfPopulationStartedButIncomplete() { // given _provider = NewProvider(); IndexPopulator populator = _provider.getPopulator(Descriptor(), SamplingConfig(), heapBufferFactory(1024)); populator.Create(); // when InternalIndexState state = _provider.getInitialState(Descriptor()); // then assertEquals(InternalIndexState.POPULATING, state); populator.Close(true); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldReportInitialStateAsOnlineIfPopulationCompletedSuccessfully() public virtual void ShouldReportInitialStateAsOnlineIfPopulationCompletedSuccessfully() { // given _provider = NewProvider(); IndexPopulator populator = _provider.getPopulator(Descriptor(), SamplingConfig(), heapBufferFactory(1024)); populator.Create(); populator.Close(true); // when InternalIndexState state = _provider.getInitialState(Descriptor()); // then assertEquals(InternalIndexState.ONLINE, state); }
private int GetItemIndex(object item) { if (IndexProvider != null) { return(IndexProvider.GetIndex(item)); } else { if (ItemContainerGenerator.ContainerFromItem(item) is LuiAccordionItem itemContainer) { return(itemContainer.Index); } } return(-2); }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void shouldReportInitialStateAsFailedIfMarkedAsFailed() public virtual void ShouldReportInitialStateAsFailedIfMarkedAsFailed() { // given _provider = NewProvider(); IndexPopulator populator = _provider.getPopulator(Descriptor(), SamplingConfig(), heapBufferFactory(1024)); populator.Create(); populator.MarkAsFailed("Just some failure"); populator.Close(false); // when InternalIndexState state = _provider.getInitialState(Descriptor()); // then assertEquals(InternalIndexState.FAILED, state); }
private void SetupMocks() { IndexSlot[] aliveSlots = FusionVersion.aliveSlots(); _aliveProviders = new IndexProvider[aliveSlots.Length]; _providers = new Dictionary <IndexSlot, IndexProvider>(typeof(IndexSlot)); fill(_providers, IndexProvider.EMPTY); for (int i = 0; i < aliveSlots.Length; i++) { switch (aliveSlots[i]) { case STRING: IndexProvider @string = MockProvider(typeof(StringIndexProvider), "string"); _providers[STRING] = @string; _aliveProviders[i] = @string; break; case NUMBER: IndexProvider number = MockProvider(typeof(NumberIndexProvider), "number"); _providers[NUMBER] = number; _aliveProviders[i] = number; break; case SPATIAL: IndexProvider spatial = MockProvider(typeof(SpatialIndexProvider), "spatial"); _providers[SPATIAL] = spatial; _aliveProviders[i] = spatial; break; case TEMPORAL: IndexProvider temporal = MockProvider(typeof(TemporalIndexProvider), "temporal"); _providers[TEMPORAL] = temporal; _aliveProviders[i] = temporal; break; case LUCENE: IndexProvider lucene = MockProvider(typeof(IndexProvider), "lucene"); _providers[LUCENE] = lucene; _aliveProviders[i] = lucene; break; default: throw new Exception(); } } _fusionIndexProvider = new FusionIndexProvider(_providers[STRING], _providers[NUMBER], _providers[SPATIAL], _providers[TEMPORAL], _providers[LUCENE], FusionVersion.slotSelector(), _descriptor, NONE, mock(typeof(FileSystemAbstraction)), false); _instanceSelector = new InstanceSelector <IndexProvider>(_providers); }
/* getPopulator */ //JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test public void getPopulatorMustThrowIfInReadOnlyMode() public virtual void getPopulatorMustThrowIfInReadOnlyMode() { // given _provider = NewReadOnlyProvider(); try { // when _provider.getPopulator(Descriptor(), SamplingConfig(), heapBufferFactory(1024)); fail("Should have failed"); } catch (System.NotSupportedException) { // then // good } }
//JAVA TO C# CONVERTER TODO TASK: Most Java annotations will not have direct .NET equivalent attributes: //ORIGINAL LINE: @Test void throwIfToManyInstances() internal virtual void ThrowIfToManyInstances() { // given Dictionary <IndexSlot, IndexProvider> instances = new Dictionary <IndexSlot, IndexProvider>(typeof(IndexSlot)); foreach (IndexSlot indexSlot in Enum.GetValues(typeof(IndexSlot))) { instances[indexSlot] = IndexProvider.EMPTY; } IndexProvider mockedIndxProvider = mock(typeof(IndexProvider)); instances[NUMBER] = mockedIndxProvider; InstanceSelector <IndexProvider> instanceSelector = new InstanceSelector <IndexProvider>(instances); // when, then assertThrows(typeof(System.ArgumentException), () => validateSelectorInstances(instanceSelector)); }
public void ShouldThrowExceptionIfHttpCodeIsNot201( IndexFor indexFor, IndexProvider indexProvider, IndexType indexType, string createEndpoint, string createJson) { //Arrange using (var testHarness = new RestTestHarness { { MockRequest.PostJson(createEndpoint, createJson), MockResponse.Http(500) } }) { var graphClient = testHarness.CreateAndConnectGraphClient(); var indexConfiguration = new IndexConfiguration { Provider = indexProvider, Type = indexType }; Assert.Throws<Exception>(() => graphClient.CreateIndex("foo", indexConfiguration, indexFor)); } }