Skip to content

Commit

Permalink
HSEARCH-3759 Move the schema validation context to the engine
Browse files Browse the repository at this point in the history
We're going to need it for Lucene, too. And probably in the mapper
later.
  • Loading branch information
yrodiere committed Mar 6, 2020
1 parent ea37375 commit a27cf76
Show file tree
Hide file tree
Showing 6 changed files with 31 additions and 29 deletions.
Expand Up @@ -11,6 +11,8 @@
import org.hibernate.search.backend.elasticsearch.index.IndexLifecycleStrategyName;
import org.hibernate.search.backend.elasticsearch.schema.management.impl.ElasticsearchIndexSchemaManager;
import org.hibernate.search.engine.backend.index.spi.IndexManagerStartContext;
import org.hibernate.search.engine.reporting.spi.ContextualFailureCollector;
import org.hibernate.search.engine.reporting.spi.EventContexts;
import org.hibernate.search.util.common.AssertionFailure;
import org.hibernate.search.util.common.impl.Futures;

Expand All @@ -32,7 +34,9 @@ public CompletableFuture<?> onStart(ElasticsearchIndexSchemaManager manager, Ind
case UPDATE:
return manager.createOrUpdate();
case VALIDATE:
return manager.validate( context.getFailureCollector() );
ContextualFailureCollector validationFailureCollector =
context.getFailureCollector().withContext( EventContexts.schemaValidation() );
return manager.validate( validationFailureCollector );
case NONE:
// Nothing to do
return CompletableFuture.completedFuture( null );
Expand Down
Expand Up @@ -17,9 +17,6 @@
@MessageBundle(projectCode = MessageConstants.PROJECT_CODE)
public interface ElasticsearchEventContextMessages {

@Message(value = "schema validation")
String schemaValidation();

@Message(value = "attribute '%1$s'")
String mappingAttribute(String name);

Expand Down
Expand Up @@ -7,7 +7,6 @@
package org.hibernate.search.backend.elasticsearch.logging.impl;

import org.hibernate.search.util.common.reporting.EventContext;
import org.hibernate.search.util.common.reporting.EventContextElement;
import org.hibernate.search.util.common.reporting.impl.AbstractSimpleEventContextElement;

import org.jboss.logging.Messages;
Expand All @@ -16,27 +15,9 @@ public final class ElasticsearchEventContexts {

private static final ElasticsearchEventContextMessages MESSAGES = Messages.getBundle( ElasticsearchEventContextMessages.class );

private static final EventContext SCHEMA_VALIDATION = EventContext.create(
new EventContextElement() {
@Override
public String toString() {
return "EventContextElement[" + render() + "]";
}

@Override
public String render() {
return MESSAGES.schemaValidation();
}
}
);

private ElasticsearchEventContexts() {
}

public static EventContext getSchemaValidation() {
return SCHEMA_VALIDATION;
}

public static EventContext fromMappingAttribute(String attributeName) {
return EventContext.create( new AbstractSimpleEventContextElement<String>( attributeName ) {
@Override
Expand Down
Expand Up @@ -10,7 +10,6 @@

import org.hibernate.search.backend.elasticsearch.index.layout.IndexLayoutStrategy;
import org.hibernate.search.backend.elasticsearch.index.layout.impl.IndexNames;
import org.hibernate.search.backend.elasticsearch.logging.impl.ElasticsearchEventContexts;
import org.hibernate.search.backend.elasticsearch.lowlevel.index.impl.IndexMetadata;
import org.hibernate.search.backend.elasticsearch.orchestration.impl.ElasticsearchWorkOrchestrator;
import org.hibernate.search.backend.elasticsearch.util.spi.URLEncodedString;
Expand Down Expand Up @@ -87,7 +86,7 @@ public CompletableFuture<?> validate(ContextualFailureCollector failureCollector
return schemaAccessor.getCurrentIndexMetadata( indexNames )
.thenAccept( actualIndexMetadata -> schemaValidator.validate(
expectedMetadata, actualIndexMetadata.getMetadata(),
failureCollector.withContext( ElasticsearchEventContexts.getSchemaValidation() )
failureCollector
) )
.thenCompose( ignored -> failureCollector.hasFailure()
? CompletableFuture.completedFuture( null )
Expand Down
Expand Up @@ -60,6 +60,9 @@ public interface EngineEventContextMessages {
@Message(value = "shard '%1$s'")
String shard(String shardId);

@Message(value = "schema validation")
String schemaValidation();

@Message(value = "index schema root")
String indexSchemaRoot();

Expand Down
Expand Up @@ -51,13 +51,35 @@ public String render() {
}
);

private static final EventContext SCHEMA_VALIDATION = EventContext.create(
new EventContextElement() {
@Override
public String toString() {
return "EventContextElement[" + render() + "]";
}

@Override
public String render() {
return MESSAGES.schemaValidation();
}
}
);

private EventContexts() {
}

public static EventContext getDefault() {
return DEFAULT;
}

public static EventContext indexSchemaRoot() {
return INDEX_SCHEMA_ROOT;
}

public static EventContext schemaValidation() {
return SCHEMA_VALIDATION;
}

public static EventContext fromType(MappableTypeModel typeModel) {
return EventContext.create( new AbstractSimpleEventContextElement<MappableTypeModel>( typeModel ) {
@Override
Expand Down Expand Up @@ -121,10 +143,6 @@ public String render(String param) {
} );
}

public static EventContext indexSchemaRoot() {
return INDEX_SCHEMA_ROOT;
}

public static EventContext fromIndexFieldAbsolutePath(String absolutePath) {
return EventContext.create( new AbstractSimpleEventContextElement<String>( absolutePath ) {
@Override
Expand Down

0 comments on commit a27cf76

Please sign in to comment.