diff options
author | Robert Newson <rnewson@apache.org> | 2023-05-11 09:58:44 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-11 09:58:44 +0000 |
commit | 98fc76d67230a4472c9ef8597dd80d01f7eee224 (patch) | |
tree | e85b58d460455d3d6df669498b1c19a2526b6486 | |
parent | abd129fac5bbc040265cf822ad215aae1da50257 (diff) | |
parent | 80b8f24e607670acc2504d938894b0aab444aab8 (diff) | |
download | couchdb-98fc76d67230a4472c9ef8597dd80d01f7eee224.tar.gz |
Merge pull request #4596 from apache/nouveau-quality-plugins
Nouveau quality plugins
54 files changed, 250 insertions, 379 deletions
diff --git a/nouveau/build.gradle b/nouveau/build.gradle index 8f07e9a04..0b4957689 100644 --- a/nouveau/build.gradle +++ b/nouveau/build.gradle @@ -1,6 +1,8 @@ plugins { - id 'com.github.johnrengelman.shadow' version '8.1.1' id 'application' + id 'com.diffplug.spotless' version '6.18.0' + id 'com.github.johnrengelman.shadow' version '8.1.1' + id 'jacoco' } application { @@ -47,12 +49,26 @@ dependencies { group = 'org.apache.couchdb.nouveau' version = '1.0-SNAPSHOT' description = 'server' -java.sourceCompatibility = JavaVersion.VERSION_11 + +java { + toolchain { + languageVersion = JavaLanguageVersion.of(11) + } +} jar { manifest.attributes('Multi-Release': 'true') } +spotless { + java { + importOrder() + removeUnusedImports() + cleanthat() + palantirJavaFormat() + } +} + test { useJUnitPlatform() } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java index 9921eaa42..6eaf941ef 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplication.java @@ -13,8 +13,10 @@ package org.apache.couchdb.nouveau; +import io.dropwizard.core.Application; +import io.dropwizard.core.setup.Environment; +import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource; import java.util.concurrent.ForkJoinPool; - import org.apache.couchdb.nouveau.core.IndexManager; import org.apache.couchdb.nouveau.core.UpdatesOutOfOrderExceptionMapper; import org.apache.couchdb.nouveau.health.AnalyzeHealthCheck; @@ -26,10 +28,6 @@ import org.apache.couchdb.nouveau.resources.IndexResource; import org.apache.couchdb.nouveau.tasks.CloseAllIndexesTask; import org.apache.lucene.search.SearcherFactory; -import io.dropwizard.core.Application; -import io.dropwizard.core.setup.Environment; -import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource; - public class NouveauApplication extends Application<NouveauApplicationConfiguration> { public static void main(String[] args) throws Exception { @@ -51,7 +49,11 @@ public class NouveauApplication extends Application<NouveauApplicationConfigurat indexManager.setIdleSeconds(configuration.getIdleSeconds()); indexManager.setMaxIndexesOpen(configuration.getMaxIndexesOpen()); indexManager.setMetricRegistry(environment.metrics()); - indexManager.setScheduler(environment.lifecycle().scheduledExecutorService("index-manager-%d").threads(5).build()); + indexManager.setScheduler(environment + .lifecycle() + .scheduledExecutorService("index-manager-%d") + .threads(5) + .build()); indexManager.setObjectMapper(environment.getObjectMapper()); indexManager.setRootDir(configuration.getRootDir()); environment.lifecycle().manage(indexManager); @@ -78,5 +80,4 @@ public class NouveauApplication extends Application<NouveauApplicationConfigurat // Swagger environment.jersey().register(new OpenApiResource()); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplicationConfiguration.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplicationConfiguration.java index 212a57cc0..50d320132 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplicationConfiguration.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/NouveauApplicationConfiguration.java @@ -13,13 +13,11 @@ package org.apache.couchdb.nouveau; -import java.nio.file.Path; - import com.fasterxml.jackson.annotation.JsonProperty; - import io.dropwizard.core.Configuration; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotNull; +import java.nio.file.Path; public class NouveauApplicationConfiguration extends Configuration { @@ -70,5 +68,4 @@ public class NouveauApplicationConfiguration extends Configuration { public Path getRootDir() { return rootDir; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeRequest.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeRequest.java index fa22a36f2..61cbe4244 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeRequest.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeRequest.java @@ -16,8 +16,6 @@ package org.apache.couchdb.nouveau.api; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - - import jakarta.validation.constraints.NotEmpty; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) @@ -47,5 +45,4 @@ public class AnalyzeRequest { public String getText() { return text; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeResponse.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeResponse.java index ce35c75d2..8687f652a 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeResponse.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/AnalyzeResponse.java @@ -13,15 +13,12 @@ package org.apache.couchdb.nouveau.api; -import java.util.List; - import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - - import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; +import java.util.List; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class AnalyzeResponse { @@ -41,5 +38,4 @@ public class AnalyzeResponse { public List<String> getTokens() { return tokens; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java index 805cb65cb..6f22effda 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentDeleteRequest.java @@ -16,8 +16,6 @@ package org.apache.couchdb.nouveau.api; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - - import jakarta.validation.constraints.Positive; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) @@ -31,7 +29,7 @@ public class DocumentDeleteRequest { } public DocumentDeleteRequest(long seq) { - if (seq < 1) { + if (seq < 1) { throw new IllegalArgumentException("seq must be 1 or greater"); } this.seq = seq; @@ -46,5 +44,4 @@ public class DocumentDeleteRequest { public String toString() { return "DocumentDeleteRequest [seq=" + seq + "]"; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java index 45b478322..2fbd01e3b 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DocumentUpdateRequest.java @@ -13,15 +13,13 @@ package org.apache.couchdb.nouveau.api; -import java.util.Collection; - import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.Positive; +import java.util.Collection; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class DocumentUpdateRequest { @@ -68,5 +66,4 @@ public class DocumentUpdateRequest { public String toString() { return "DocumentUpdateRequest [seq=" + seq + ", partition=" + partition + ", fields=" + fields + "]"; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleField.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleField.java index 1f3639191..79a968786 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleField.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleField.java @@ -16,7 +16,6 @@ package org.apache.couchdb.nouveau.api; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - import jakarta.validation.constraints.NotNull; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) @@ -27,7 +26,9 @@ public class DoubleField extends Field { private final boolean store; - public DoubleField(@JsonProperty("name") final String name, @JsonProperty("value") final Double value, + public DoubleField( + @JsonProperty("name") final String name, + @JsonProperty("value") final Double value, @JsonProperty("store") final boolean store) { super(name); this.value = value; @@ -48,5 +49,4 @@ public class DoubleField extends Field { public String toString() { return "DoubleField [name=" + name + ", value=" + value + ", store=" + store + "]"; } - -}
\ No newline at end of file +} diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleRange.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleRange.java index ac59a286c..b1a48a25a 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleRange.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/DoubleRange.java @@ -16,16 +16,12 @@ package org.apache.couchdb.nouveau.api; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - - @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class DoubleRange extends Range<Double> { - public DoubleRange() { - } + public DoubleRange() {} public DoubleRange(String name, Double min, boolean minInclusive, Double max, boolean maxInclusive) { super(name, min, minInclusive, max, maxInclusive); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java index 52d5b815f..8b8f109d2 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Field.java @@ -18,14 +18,10 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - import jakarta.validation.constraints.Pattern; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) -@JsonTypeInfo( - use = JsonTypeInfo.Id.NAME, - include = JsonTypeInfo.As.PROPERTY, - property = "@type") +@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "@type") @JsonSubTypes({ @JsonSubTypes.Type(value = DoubleField.class, name = "double"), @JsonSubTypes.Type(value = StoredField.class, name = "stored"), @@ -45,5 +41,4 @@ public abstract class Field { public String getName() { return name; } - -}
\ No newline at end of file +} diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexDefinition.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexDefinition.java index 3e0f08d64..3d79fca65 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexDefinition.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexDefinition.java @@ -13,14 +13,11 @@ package org.apache.couchdb.nouveau.api; -import java.util.Map; - import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - - import jakarta.validation.constraints.NotEmpty; +import java.util.Map; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class IndexDefinition { @@ -72,30 +69,21 @@ public class IndexDefinition { @Override public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; + if (this == obj) return true; + if (obj == null) return false; + if (getClass() != obj.getClass()) return false; IndexDefinition other = (IndexDefinition) obj; if (defaultAnalyzer == null) { - if (other.defaultAnalyzer != null) - return false; - } else if (!defaultAnalyzer.equals(other.defaultAnalyzer)) - return false; + if (other.defaultAnalyzer != null) return false; + } else if (!defaultAnalyzer.equals(other.defaultAnalyzer)) return false; if (fieldAnalyzers == null) { - if (other.fieldAnalyzers != null) - return false; - } else if (!fieldAnalyzers.equals(other.fieldAnalyzers)) - return false; + if (other.fieldAnalyzers != null) return false; + } else if (!fieldAnalyzers.equals(other.fieldAnalyzers)) return false; return true; } @Override public String toString() { - return "IndexDefinition [defaultAnalyzer=" + defaultAnalyzer - + ", fieldAnalyzers=" + fieldAnalyzers + "]"; + return "IndexDefinition [defaultAnalyzer=" + defaultAnalyzer + ", fieldAnalyzers=" + fieldAnalyzers + "]"; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java index 2dd072771..e7380a509 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/IndexInfo.java @@ -16,8 +16,6 @@ package org.apache.couchdb.nouveau.api; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - - import jakarta.validation.constraints.PositiveOrZero; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) @@ -32,8 +30,7 @@ public class IndexInfo { @PositiveOrZero private long diskSize; - public IndexInfo() { - } + public IndexInfo() {} public IndexInfo(final long updateSeq, final int numDocs, final long diskSize) { this.updateSeq = updateSeq; @@ -60,5 +57,4 @@ public class IndexInfo { public String toString() { return "IndexInfo [updateSeq=" + updateSeq + ", numDocs=" + numDocs + ", diskSize=" + diskSize + "]"; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java index de421402a..34689f1aa 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/Range.java @@ -16,8 +16,6 @@ package org.apache.couchdb.nouveau.api; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - - import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; @@ -37,8 +35,7 @@ public class Range<T> { private boolean maxInclusive = true; - public Range() { - } + public Range() {} public Range(String label, T min, boolean minInclusive, T max, boolean maxInclusive) { this.label = label; @@ -107,32 +104,21 @@ public class Range<T> { @Override public boolean equals(Object obj) { - if (this == obj) - return true; - if (obj == null) - return false; - if (getClass() != obj.getClass()) - return false; + if (this == obj) return true; + if (obj == null) return false; + if (getClass() != obj.getClass()) return false; Range<?> other = (Range<?>) obj; if (label == null) { - if (other.label != null) - return false; - } else if (!label.equals(other.label)) - return false; + if (other.label != null) return false; + } else if (!label.equals(other.label)) return false; if (min == null) { - if (other.min != null) - return false; - } else if (!min.equals(other.min)) - return false; - if (minInclusive != other.minInclusive) - return false; + if (other.min != null) return false; + } else if (!min.equals(other.min)) return false; + if (minInclusive != other.minInclusive) return false; if (max == null) { - if (other.max != null) - return false; - } else if (!max.equals(other.max)) - return false; - if (maxInclusive != other.maxInclusive) - return false; + if (other.max != null) return false; + } else if (!max.equals(other.max)) return false; + if (maxInclusive != other.maxInclusive) return false; return true; } @@ -141,5 +127,4 @@ public class Range<T> { return "Range [label=" + label + ", min=" + min + ", minInclusive=" + minInclusive + ", max=" + max + ", maxInclusive=" + maxInclusive + "]"; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchHit.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchHit.java index 678970e04..2e575fef1 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchHit.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchHit.java @@ -13,16 +13,13 @@ package org.apache.couchdb.nouveau.api; -import java.util.Collection; -import java.util.Objects; - -import org.apache.couchdb.nouveau.core.ser.PrimitiveWrapper; - import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; +import java.util.Collection; +import java.util.Objects; +import org.apache.couchdb.nouveau.core.ser.PrimitiveWrapper; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class SearchHit { @@ -36,8 +33,7 @@ public class SearchHit { @NotNull private Collection<@NotNull StoredField> fields; - public SearchHit() { - } + public SearchHit() {} public SearchHit(final String id, final PrimitiveWrapper<?>[] order, final Collection<StoredField> fields) { this.id = id; @@ -61,5 +57,4 @@ public class SearchHit { public String toString() { return "SearchHit [id=" + id + ", order=" + order + ", fields=" + fields + "]"; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java index eb4efa7bf..09f2818aa 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchRequest.java @@ -13,20 +13,17 @@ package org.apache.couchdb.nouveau.api; -import java.util.List; -import java.util.Map; - -import org.apache.couchdb.nouveau.core.ser.PrimitiveWrapper; - import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - import jakarta.validation.constraints.Max; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Positive; +import java.util.List; +import java.util.Map; +import org.apache.couchdb.nouveau.core.ser.PrimitiveWrapper; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class SearchRequest { @@ -145,7 +142,7 @@ public class SearchRequest { @Override public String toString() { - return "SearchRequest [query=" + query + ", sort=" + sort + ", limit=" + limit + ", after=" + after + ", counts=" + counts + ", ranges=" + ranges + "]"; + return "SearchRequest [query=" + query + ", sort=" + sort + ", limit=" + limit + ", after=" + after + + ", counts=" + counts + ", ranges=" + ranges + "]"; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java index 6ef8c4bc1..a273e6ef2 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/SearchResults.java @@ -13,18 +13,14 @@ package org.apache.couchdb.nouveau.api; -import java.util.List; -import java.util.Map; - -import org.apache.lucene.search.TotalHits.Relation; - import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - - import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.PositiveOrZero; +import java.util.List; +import java.util.Map; +import org.apache.lucene.search.TotalHits.Relation; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public class SearchResults { @@ -42,8 +38,7 @@ public class SearchResults { private Map<@NotNull String, Map<@NotNull String, Number>> ranges; - public SearchResults() { - } + public SearchResults() {} public void setTotalHits(final long totalHits) { this.totalHits = totalHits; @@ -91,7 +86,7 @@ public class SearchResults { @Override public String toString() { - return "SearchResults [hits=" + hits + ", totalHits=" + totalHits + ", counts=" + counts + ", ranges=" + ranges + "]"; + return "SearchResults [hits=" + hits + ", totalHits=" + totalHits + ", counts=" + counts + ", ranges=" + ranges + + "]"; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/StoredField.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/StoredField.java index e8642c530..697fc4f93 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/StoredField.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/StoredField.java @@ -16,8 +16,6 @@ package org.apache.couchdb.nouveau.api; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - - import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotNull; @@ -44,5 +42,4 @@ public final class StoredField extends Field { public String toString() { return "StoredField [name=" + name + ", value=" + value + "]"; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/StringField.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/StringField.java index cfb9264d3..32f38063c 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/StringField.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/StringField.java @@ -13,13 +13,11 @@ package org.apache.couchdb.nouveau.api; -import java.util.Objects; - import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - import jakarta.validation.constraints.NotNull; +import java.util.Objects; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public final class StringField extends Field { @@ -29,7 +27,9 @@ public final class StringField extends Field { private final boolean store; - public StringField(@JsonProperty("name") final String name, @JsonProperty("value") final String value, + public StringField( + @JsonProperty("name") final String name, + @JsonProperty("value") final String value, @JsonProperty("store") final boolean store) { super(name); this.value = Objects.requireNonNull(value); @@ -50,5 +50,4 @@ public final class StringField extends Field { public String toString() { return "StringField [name=" + name + ", value=" + value + ", store=" + store + "]"; } - -}
\ No newline at end of file +} diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/TextField.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/TextField.java index 76ee5d86b..a82231a2d 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/api/TextField.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/api/TextField.java @@ -13,14 +13,11 @@ package org.apache.couchdb.nouveau.api; -import java.util.Objects; - import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.PropertyNamingStrategies; import com.fasterxml.jackson.databind.annotation.JsonNaming; - - import jakarta.validation.constraints.NotNull; +import java.util.Objects; @JsonNaming(PropertyNamingStrategies.SnakeCaseStrategy.class) public final class TextField extends Field { @@ -30,7 +27,9 @@ public final class TextField extends Field { private final boolean store; - public TextField(@JsonProperty("name") final String name, @JsonProperty("value") final String value, + public TextField( + @JsonProperty("name") final String name, + @JsonProperty("value") final String value, @JsonProperty("store") final boolean store) { super(name); this.value = Objects.requireNonNull(value); @@ -51,5 +50,4 @@ public final class TextField extends Field { public String toString() { return "TextField [name=" + name + ", value=" + value + ", store=" + store + "]"; } - -}
\ No newline at end of file +} diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IOUtils.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IOUtils.java index ab2bb7e35..56452368c 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IOUtils.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IOUtils.java @@ -60,5 +60,4 @@ public class IOUtils { } } } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java index a08b17816..5b31938e9 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/Index.java @@ -17,7 +17,6 @@ import java.io.Closeable; import java.io.IOException; import java.util.concurrent.Semaphore; import java.util.concurrent.TimeUnit; - import org.apache.couchdb.nouveau.api.DocumentDeleteRequest; import org.apache.couchdb.nouveau.api.DocumentUpdateRequest; import org.apache.couchdb.nouveau.api.IndexInfo; @@ -34,7 +33,6 @@ import org.apache.couchdb.nouveau.api.SearchResults; * This class also expects a monotonically incrementing update sequence * associated with each modification. */ - public abstract class Index implements Closeable { private long updateSeq; @@ -83,8 +81,7 @@ public abstract class Index implements Closeable { protected abstract long doDiskSize() throws IOException; - public final synchronized void update(final String docId, final DocumentUpdateRequest request) - throws IOException { + public final synchronized void update(final String docId, final DocumentUpdateRequest request) throws IOException { assertUpdateSeqIsLower(request.getSeq()); doUpdate(docId, request); incrementUpdateSeq(request.getSeq()); @@ -172,5 +169,4 @@ public abstract class Index implements Closeable { private long now() { return System.nanoTime(); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexFunction.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexFunction.java index 987c9303b..197c10abc 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexFunction.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexFunction.java @@ -19,5 +19,4 @@ import java.io.IOException; public interface IndexFunction { <T> T with(final Index index) throws IOException; - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexLoader.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexLoader.java index 2f2a03fd1..b5def1642 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexLoader.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexLoader.java @@ -15,12 +15,10 @@ package org.apache.couchdb.nouveau.core; import java.io.IOException; import java.nio.file.Path; - import org.apache.couchdb.nouveau.api.IndexDefinition; @FunctionalInterface public interface IndexLoader { Index apply(final Path path, final IndexDefinition indexDefinition) throws IOException; - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java index a55353458..fb8cf2d23 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/IndexManager.java @@ -15,6 +15,18 @@ package org.apache.couchdb.nouveau.core; import static com.codahale.metrics.MetricRegistry.name; +import com.codahale.metrics.MetricRegistry; +import com.codahale.metrics.caffeine.MetricsStatsCounter; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.benmanes.caffeine.cache.Cache; +import com.github.benmanes.caffeine.cache.Caffeine; +import com.github.benmanes.caffeine.cache.RemovalCause; +import com.github.benmanes.caffeine.cache.RemovalListener; +import com.github.benmanes.caffeine.cache.Scheduler; +import io.dropwizard.lifecycle.Managed; +import jakarta.ws.rs.WebApplicationException; +import jakarta.ws.rs.core.Response.Status; import java.io.File; import java.io.IOException; import java.nio.file.Files; @@ -26,31 +38,15 @@ import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.concurrent.locks.Lock; import java.util.stream.Stream; - import org.apache.couchdb.nouveau.api.IndexDefinition; import org.eclipse.jetty.io.RuntimeIOException; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.codahale.metrics.MetricRegistry; -import com.codahale.metrics.caffeine.MetricsStatsCounter; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.github.benmanes.caffeine.cache.Cache; -import com.github.benmanes.caffeine.cache.Caffeine; -import com.github.benmanes.caffeine.cache.RemovalCause; -import com.github.benmanes.caffeine.cache.RemovalListener; -import com.github.benmanes.caffeine.cache.Scheduler; - -import io.dropwizard.lifecycle.Managed; -import jakarta.ws.rs.WebApplicationException; -import jakarta.ws.rs.core.Response.Status; - /** * The central class of Nouveau, responsible for loading and unloading Lucene * indexes and making them available for query. */ - public final class IndexManager implements Managed { @FunctionalInterface @@ -164,15 +160,13 @@ public final class IndexManager implements Managed { } public void deleteAll(final String path, final List<String> exclusions) throws IOException { - LOGGER.info("deleting indexes below {} (excluding {})", path, - exclusions == null ? "nothing" : exclusions); + LOGGER.info("deleting indexes below {} (excluding {})", path, exclusions == null ? "nothing" : exclusions); final Path indexRootPath = indexRootPath(path); if (!indexRootPath.toFile().exists()) { return; } - Stream<Path> stream = Files.find(indexRootPath, 100, - (p, attr) -> attr.isDirectory() && isIndex(p)); + Stream<Path> stream = Files.find(indexRootPath, 100, (p, attr) -> attr.isDirectory() && isIndex(p)); try { stream.forEach((p) -> { final String relativeToExclusions = indexRootPath.relativize(p).toString(); @@ -298,8 +292,7 @@ public final class IndexManager implements Managed { if (result.startsWith(rootDir)) { return result; } - throw new WebApplicationException(name + " attempts to escape from index root directory", - Status.BAD_REQUEST); + throw new WebApplicationException(name + " attempts to escape from index root directory", Status.BAD_REQUEST); } private class IndexEvictionListener implements RemovalListener<String, Index> { @@ -342,5 +335,4 @@ public final class IndexManager implements Managed { throw new WebApplicationException("Index already exists", Status.EXPECTATION_FAILED); } } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/StripedLock.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/StripedLock.java index ad2948ee7..e0e5cbd69 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/StripedLock.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/StripedLock.java @@ -21,8 +21,7 @@ final class StripedLock<K> { private final ReadWriteLock[] locks; - public StripedLock( - final int lockCount) { + public StripedLock(final int lockCount) { this.locks = new ReadWriteLock[lockCount]; for (int i = 0; i < locks.length; i++) { this.locks[i] = new ReentrantReadWriteLock(); @@ -40,5 +39,4 @@ final class StripedLock<K> { private ReadWriteLock readWriteLock(final K key) { return locks[Math.floorMod(key.hashCode(), locks.length)]; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/UpdatesOutOfOrderException.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/UpdatesOutOfOrderException.java index fe7c1b899..14d77c3b2 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/UpdatesOutOfOrderException.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/UpdatesOutOfOrderException.java @@ -18,8 +18,7 @@ import java.io.IOException; public final class UpdatesOutOfOrderException extends IOException { public UpdatesOutOfOrderException(final long currentSeq, final long attemptedSeq) { - super(String.format("Updates applied in the wrong order (current seq: %d, attempted seq: %d)", - currentSeq, attemptedSeq)); + super(String.format( + "Updates applied in the wrong order (current seq: %d, attempted seq: %d)", currentSeq, attemptedSeq)); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/UpdatesOutOfOrderExceptionMapper.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/UpdatesOutOfOrderExceptionMapper.java index 9e54e4453..ac356807f 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/UpdatesOutOfOrderExceptionMapper.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/UpdatesOutOfOrderExceptionMapper.java @@ -24,9 +24,8 @@ public class UpdatesOutOfOrderExceptionMapper implements ExceptionMapper<Updates @Override public Response toResponse(final UpdatesOutOfOrderException exception) { return Response.status(Status.BAD_REQUEST) - .type(MediaType.APPLICATION_JSON_TYPE) - .entity(new ErrorMessage(Status.BAD_REQUEST.getStatusCode(), exception.getMessage())) - .build(); + .type(MediaType.APPLICATION_JSON_TYPE) + .entity(new ErrorMessage(Status.BAD_REQUEST.getStatusCode(), exception.getMessage())) + .build(); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/ByteArrayWrapper.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/ByteArrayWrapper.java index 875d0d8bb..cc636948e 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/ByteArrayWrapper.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/ByteArrayWrapper.java @@ -20,5 +20,4 @@ public class ByteArrayWrapper extends PrimitiveWrapper<byte[]> { public ByteArrayWrapper(@JsonProperty("value") byte[] value) { super(value); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/DoubleWrapper.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/DoubleWrapper.java index c9ae3b4cd..3fb7a37da 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/DoubleWrapper.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/DoubleWrapper.java @@ -20,5 +20,4 @@ public class DoubleWrapper extends PrimitiveWrapper<Double> { public DoubleWrapper(@JsonProperty("value") Double value) { super(value); } - -}
\ No newline at end of file +} diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/FloatWrapper.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/FloatWrapper.java index 490afa6d5..d38ccb780 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/FloatWrapper.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/FloatWrapper.java @@ -20,5 +20,4 @@ public class FloatWrapper extends PrimitiveWrapper<Float> { public FloatWrapper(@JsonProperty("value") float value) { super(value); } - -}
\ No newline at end of file +} diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/IntWrapper.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/IntWrapper.java index c179d0705..5ab8e5780 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/IntWrapper.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/IntWrapper.java @@ -20,5 +20,4 @@ public class IntWrapper extends PrimitiveWrapper<Integer> { public IntWrapper(@JsonProperty("value") Integer value) { super(value); } - -}
\ No newline at end of file +} diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/LongWrapper.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/LongWrapper.java index 0eda4e786..a803383c6 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/LongWrapper.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/LongWrapper.java @@ -20,5 +20,4 @@ public class LongWrapper extends PrimitiveWrapper<Long> { public LongWrapper(@JsonProperty("value") Long value) { super(value); } - -}
\ No newline at end of file +} diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/PrimitiveWrapper.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/PrimitiveWrapper.java index 89877da60..b5f278c44 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/PrimitiveWrapper.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/PrimitiveWrapper.java @@ -20,12 +20,12 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo.Id; @JsonTypeInfo(use = Id.NAME, include = As.PROPERTY, property = "@type") @JsonSubTypes({ - @JsonSubTypes.Type(value = ByteArrayWrapper.class, name = "bytes"), - @JsonSubTypes.Type(value = DoubleWrapper.class, name = "double"), - @JsonSubTypes.Type(value = FloatWrapper.class, name = "float"), - @JsonSubTypes.Type(value = IntWrapper.class, name = "int"), - @JsonSubTypes.Type(value = LongWrapper.class, name = "long"), - @JsonSubTypes.Type(value = StringWrapper.class, name = "string"), + @JsonSubTypes.Type(value = ByteArrayWrapper.class, name = "bytes"), + @JsonSubTypes.Type(value = DoubleWrapper.class, name = "double"), + @JsonSubTypes.Type(value = FloatWrapper.class, name = "float"), + @JsonSubTypes.Type(value = IntWrapper.class, name = "int"), + @JsonSubTypes.Type(value = LongWrapper.class, name = "long"), + @JsonSubTypes.Type(value = StringWrapper.class, name = "string"), }) public class PrimitiveWrapper<T> { @@ -42,5 +42,4 @@ public class PrimitiveWrapper<T> { public void setValue(T value) { this.value = value; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/StringWrapper.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/StringWrapper.java index e53f22ca0..d6f6b2068 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/StringWrapper.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/core/ser/StringWrapper.java @@ -20,5 +20,4 @@ public class StringWrapper extends PrimitiveWrapper<String> { public StringWrapper(@JsonProperty("value") String value) { super(value); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheck.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheck.java index 4b49a39e0..bd7edeaf3 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheck.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheck.java @@ -13,15 +13,13 @@ package org.apache.couchdb.nouveau.health; +import com.codahale.metrics.health.HealthCheck; import java.util.Arrays; import java.util.List; - import org.apache.couchdb.nouveau.api.AnalyzeRequest; import org.apache.couchdb.nouveau.api.AnalyzeResponse; import org.apache.couchdb.nouveau.resources.AnalyzeResource; -import com.codahale.metrics.health.HealthCheck; - public final class AnalyzeHealthCheck extends HealthCheck { private AnalyzeResource analyzeResource; @@ -42,5 +40,4 @@ public final class AnalyzeHealthCheck extends HealthCheck { return Result.unhealthy("Expected '%s' but got '%s'", expected, actual); } } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/health/IndexHealthCheck.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/health/IndexHealthCheck.java index 37882043a..889ab2726 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/health/IndexHealthCheck.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/health/IndexHealthCheck.java @@ -13,17 +13,15 @@ package org.apache.couchdb.nouveau.health; +import com.codahale.metrics.health.HealthCheck; import java.io.IOException; import java.util.Collections; - import org.apache.couchdb.nouveau.api.DocumentUpdateRequest; import org.apache.couchdb.nouveau.api.IndexDefinition; import org.apache.couchdb.nouveau.api.SearchRequest; import org.apache.couchdb.nouveau.api.SearchResults; import org.apache.couchdb.nouveau.resources.IndexResource; -import com.codahale.metrics.health.HealthCheck; - public final class IndexHealthCheck extends HealthCheck { private final IndexResource indexResource; @@ -44,7 +42,7 @@ public final class IndexHealthCheck extends HealthCheck { indexResource.createIndex(name, new IndexDefinition("standard", null)); try { final DocumentUpdateRequest documentUpdateRequest = - new DocumentUpdateRequest(1, null, Collections.emptyList()); + new DocumentUpdateRequest(1, null, Collections.emptyList()); indexResource.updateDoc(name, "foo", documentUpdateRequest); final SearchRequest searchRequest = new SearchRequest(); @@ -59,5 +57,4 @@ public final class IndexHealthCheck extends HealthCheck { } return Result.unhealthy(name); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactory.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactory.java index d70fea103..2bd47ed97 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactory.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactory.java @@ -13,10 +13,11 @@ package org.apache.couchdb.nouveau.lucene9; +import jakarta.ws.rs.WebApplicationException; +import jakarta.ws.rs.core.Response.Status; import java.util.HashMap; import java.util.Map; import java.util.function.Supplier; - import org.apache.couchdb.nouveau.api.IndexDefinition; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.ar.ArabicAnalyzer; @@ -59,13 +60,9 @@ import org.apache.lucene.analysis.sv.SwedishAnalyzer; import org.apache.lucene.analysis.th.ThaiAnalyzer; import org.apache.lucene.analysis.tr.TurkishAnalyzer; -import jakarta.ws.rs.WebApplicationException; -import jakarta.ws.rs.core.Response.Status; - public final class Lucene9AnalyzerFactory { - private Lucene9AnalyzerFactory() { - } + private Lucene9AnalyzerFactory() {} public static Analyzer fromDefinition(final IndexDefinition indexDefinition) { final Analyzer defaultAnalyzer = newAnalyzer(indexDefinition.getDefaultAnalyzer()); @@ -73,14 +70,14 @@ public final class Lucene9AnalyzerFactory { return defaultAnalyzer; } final Map<String, Analyzer> fieldAnalyzers = new HashMap<String, Analyzer>(); - for (Map.Entry<String, String> entry : indexDefinition.getFieldAnalyzers().entrySet()) { + for (Map.Entry<String, String> entry : + indexDefinition.getFieldAnalyzers().entrySet()) { fieldAnalyzers.put(entry.getKey(), newAnalyzer(entry.getValue())); } return new PerFieldAnalyzerWrapper(defaultAnalyzer, fieldAnalyzers); } private enum KnownAnalyzer { - arabic(ArabicAnalyzer::new), armenian(ArmenianAnalyzer::new), basque(BasqueAnalyzer::new), @@ -139,5 +136,4 @@ public final class Lucene9AnalyzerFactory { throw new WebApplicationException(name + " is not a valid analyzer name", Status.BAD_REQUEST); } } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java index addb801f1..0de610f84 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Index.java @@ -13,6 +13,8 @@ package org.apache.couchdb.nouveau.lucene9; +import jakarta.ws.rs.WebApplicationException; +import jakarta.ws.rs.core.Response.Status; import java.io.FileNotFoundException; import java.io.IOException; import java.nio.ByteBuffer; @@ -31,7 +33,6 @@ import java.util.Map.Entry; import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; - import org.apache.couchdb.nouveau.api.DocumentDeleteRequest; import org.apache.couchdb.nouveau.api.DocumentUpdateRequest; import org.apache.couchdb.nouveau.api.DoubleField; @@ -89,20 +90,20 @@ import org.apache.lucene.search.TopFieldCollector; import org.apache.lucene.store.Directory; import org.apache.lucene.util.BytesRef; -import jakarta.ws.rs.WebApplicationException; -import jakarta.ws.rs.core.Response.Status; - public class Lucene9Index extends Index { - private static final Sort DEFAULT_SORT = new Sort(SortField.FIELD_SCORE, - new SortField("_id", SortField.Type.STRING)); + private static final Sort DEFAULT_SORT = + new Sort(SortField.FIELD_SCORE, new SortField("_id", SortField.Type.STRING)); private static final Pattern SORT_FIELD_RE = Pattern.compile("^([-+])?([\\.\\w]+)(?:<(\\w+)>)$"); private final Analyzer analyzer; private final IndexWriter writer; private final SearcherManager searcherManager; - public Lucene9Index(final Analyzer analyzer, final IndexWriter writer, final long updateSeq, + public Lucene9Index( + final Analyzer analyzer, + final IndexWriter writer, + final long updateSeq, final SearcherManager searcherManager) { super(updateSeq); this.analyzer = Objects.requireNonNull(analyzer); @@ -147,7 +148,8 @@ public class Lucene9Index extends Index { if (!writer.hasUncommittedChanges()) { return false; } - writer.setLiveCommitData(Collections.singletonMap("update_seq", Long.toString(updateSeq)).entrySet()); + writer.setLiveCommitData( + Collections.singletonMap("update_seq", Long.toString(updateSeq)).entrySet()); writer.commit(); return true; } @@ -213,11 +215,7 @@ public class Lucene9Index extends Index { fieldDoc = null; } - return TopFieldCollector.createSharedManager( - sort, - searchRequest.getLimit(), - fieldDoc, - 1000); + return TopFieldCollector.createSharedManager(sort, searchRequest.getLimit(), fieldDoc, 1000); } private SortField getLastSortField(final Sort sort) { @@ -225,8 +223,9 @@ public class Lucene9Index extends Index { return sortFields[sortFields.length - 1]; } - private SearchResults toSearchResults(final SearchRequest searchRequest, final IndexSearcher searcher, - final Object[] reduces) throws IOException { + private SearchResults toSearchResults( + final SearchRequest searchRequest, final IndexSearcher searcher, final Object[] reduces) + throws IOException { final SearchResults result = new SearchResults(); collectHits(searcher, (TopDocs) reduces[0], result); if (reduces.length == 2) { @@ -243,7 +242,8 @@ public class Lucene9Index extends Index { for (final ScoreDoc scoreDoc : topDocs.scoreDocs) { final Document doc = storedFields.document(scoreDoc.doc); - final List<StoredField> fields = new ArrayList<StoredField>(doc.getFields().size()); + final List<StoredField> fields = + new ArrayList<StoredField>(doc.getFields().size()); for (IndexableField field : doc.getFields()) { if (field.name().equals("_id")) { continue; @@ -273,14 +273,18 @@ public class Lucene9Index extends Index { searchResults.setHits(hits); } - private void collectFacets(final SearchRequest searchRequest, final IndexSearcher searcher, - final FacetsCollector fc, final SearchResults searchResults) throws IOException { + private void collectFacets( + final SearchRequest searchRequest, + final IndexSearcher searcher, + final FacetsCollector fc, + final SearchResults searchResults) + throws IOException { if (searchRequest.hasCounts()) { final Map<String, Map<String, Number>> countsMap = new HashMap<String, Map<String, Number>>( searchRequest.getCounts().size()); for (final String field : searchRequest.getCounts()) { - final StringDocValuesReaderState state = new StringDocValuesReaderState(searcher.getIndexReader(), - field); + final StringDocValuesReaderState state = + new StringDocValuesReaderState(searcher.getIndexReader(), field); final StringValueFacetCounts counts = new StringValueFacetCounts(state, fc); countsMap.put(field, collectFacets(counts, searchRequest.getTopN(), field)); } @@ -290,7 +294,8 @@ public class Lucene9Index extends Index { if (searchRequest.hasRanges()) { final Map<String, Map<String, Number>> rangesMap = new HashMap<String, Map<String, Number>>( searchRequest.getRanges().size()); - for (final Entry<String, List<DoubleRange>> entry : searchRequest.getRanges().entrySet()) { + for (final Entry<String, List<DoubleRange>> entry : + searchRequest.getRanges().entrySet()) { final DoubleRangeFacetCounts counts = toDoubleRangeFacetCounts(fc, entry.getKey(), entry.getValue()); rangesMap.put(entry.getKey(), collectFacets(counts, searchRequest.getTopN(), entry.getKey())); } @@ -298,15 +303,17 @@ public class Lucene9Index extends Index { } } - private DoubleRangeFacetCounts toDoubleRangeFacetCounts(final FacetsCollector fc, final String field, - final List<DoubleRange> ranges) throws IOException { - final org.apache.lucene.facet.range.DoubleRange[] luceneRanges = new org.apache.lucene.facet.range.DoubleRange[ranges - .size()]; + private DoubleRangeFacetCounts toDoubleRangeFacetCounts( + final FacetsCollector fc, final String field, final List<DoubleRange> ranges) throws IOException { + final org.apache.lucene.facet.range.DoubleRange[] luceneRanges = + new org.apache.lucene.facet.range.DoubleRange[ranges.size()]; for (int i = 0; i < luceneRanges.length; i++) { final DoubleRange range = ranges.get(i); luceneRanges[i] = new org.apache.lucene.facet.range.DoubleRange( - range.getLabel(), range.getMin() != null ? range.getMin() : Double.NEGATIVE_INFINITY, - range.isMinInclusive(), range.getMax() != null ? range.getMax() : Double.POSITIVE_INFINITY, + range.getLabel(), + range.getMin() != null ? range.getMin() : Double.NEGATIVE_INFINITY, + range.isMinInclusive(), + range.getMax() != null ? range.getMax() : Double.POSITIVE_INFINITY, range.isMaxInclusive()); } return new DoubleRangeFacetCounts(field, fc, luceneRanges); @@ -355,8 +362,7 @@ public class Lucene9Index extends Index { } final Matcher m = SORT_FIELD_RE.matcher(sortString); if (!m.matches()) { - throw new WebApplicationException( - sortString + " is not a valid sort parameter", Status.BAD_REQUEST); + throw new WebApplicationException(sortString + " is not a valid sort parameter", Status.BAD_REQUEST); } final boolean reverse = "-".equals(m.group(1)); switch (m.group(3)) { @@ -365,8 +371,7 @@ public class Lucene9Index extends Index { case "double": return new SortedNumericSortField(m.group(2), SortField.Type.DOUBLE, reverse); default: - throw new WebApplicationException( - m.group(3) + " is not a valid sort type", Status.BAD_REQUEST); + throw new WebApplicationException(m.group(3) + " is not a valid sort type", Status.BAD_REQUEST); } } @@ -391,16 +396,16 @@ public class Lucene9Index extends Index { } if (field instanceof TextField) { var f = (TextField) field; - result.add(new org.apache.lucene.document.TextField(f.getName(), f.getValue(), - f.isStore() ? Store.YES : Store.NO)); + result.add(new org.apache.lucene.document.TextField( + f.getName(), f.getValue(), f.isStore() ? Store.YES : Store.NO)); } else if (field instanceof StringField) { var f = (StringField) field; - result.add(new org.apache.lucene.document.KeywordField(f.getName(), f.getValue(), - f.isStore() ? Store.YES : Store.NO)); + result.add(new org.apache.lucene.document.KeywordField( + f.getName(), f.getValue(), f.isStore() ? Store.YES : Store.NO)); } else if (field instanceof DoubleField) { var f = (DoubleField) field; - result.add(new org.apache.lucene.document.DoubleField(f.getName(), f.getValue(), - f.isStore() ? Store.YES : Store.NO)); + result.add(new org.apache.lucene.document.DoubleField( + f.getName(), f.getValue(), f.isStore() ? Store.YES : Store.NO)); } else if (field instanceof StoredField) { var f = (StoredField) field; var val = f.getValue(); @@ -505,5 +510,4 @@ public class Lucene9Index extends Index { return "Lucene9Index [analyzer=" + analyzer + ", writer=" + writer + ", searcherManager=" + searcherManager + "]"; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Module.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Module.java index 8d5555692..06102de84 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Module.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/Lucene9Module.java @@ -13,10 +13,9 @@ package org.apache.couchdb.nouveau.lucene9; -import org.apache.lucene.search.Query; - import com.fasterxml.jackson.core.Version; import com.fasterxml.jackson.databind.module.SimpleModule; +import org.apache.lucene.search.Query; public class Lucene9Module extends SimpleModule { @@ -27,5 +26,4 @@ public class Lucene9Module extends SimpleModule { addSerializer(Query.class, new QuerySerializer()); addDeserializer(Query.class, new QueryDeserializer()); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParser.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParser.java index 6aad65cd4..6516efc2c 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParser.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParser.java @@ -16,7 +16,6 @@ package org.apache.couchdb.nouveau.lucene9; import java.text.NumberFormat; import java.text.ParseException; import java.util.List; - import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.queryparser.flexible.core.QueryNodeException; import org.apache.lucene.queryparser.flexible.core.QueryParserHelper; @@ -116,7 +115,7 @@ public final class NouveauQueryParser extends QueryParserHelper { if (node instanceof FieldQueryNode && !(node.getParent() instanceof RangeQueryNode)) { final var fieldNode = (FieldQueryNode) node; String text = fieldNode.getTextAsString(); - if (text.length() == 0) { + if (text.isEmpty()) { return node; } final Number number; @@ -159,8 +158,7 @@ public final class NouveauQueryParser extends QueryParserHelper { final var lowerInclusive = termRangeNode.isLowerInclusive(); final var upperInclusive = termRangeNode.isUpperInclusive(); - return new PointRangeQueryNode( - lowerNode, upperNode, lowerInclusive, upperInclusive, pointsConfig); + return new PointRangeQueryNode(lowerNode, upperNode, lowerInclusive, upperInclusive, pointsConfig); } return node; @@ -175,7 +173,5 @@ public final class NouveauQueryParser extends QueryParserHelper { protected List<QueryNode> setChildrenOrder(final List<QueryNode> children) throws QueryNodeException { return children; } - } - -}
\ No newline at end of file +} diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/ParallelSearcherFactory.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/ParallelSearcherFactory.java index 91fee1795..4553fa76b 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/ParallelSearcherFactory.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/ParallelSearcherFactory.java @@ -15,7 +15,6 @@ package org.apache.couchdb.nouveau.lucene9; import java.io.IOException; import java.util.concurrent.Executor; - import org.apache.lucene.index.IndexReader; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.SearcherFactory; @@ -32,5 +31,4 @@ public class ParallelSearcherFactory extends SearcherFactory { public IndexSearcher newSearcher(final IndexReader reader, final IndexReader previousReader) throws IOException { return new IndexSearcher(reader, executor); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QueryDeserializer.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QueryDeserializer.java index 2e3b0278e..cc2cfc827 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QueryDeserializer.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QueryDeserializer.java @@ -13,9 +13,14 @@ package org.apache.couchdb.nouveau.lucene9; +import com.fasterxml.jackson.core.JsonParseException; +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.deser.std.StdDeserializer; import java.io.IOException; import java.util.Iterator; - import org.apache.lucene.index.Term; import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.FuzzyQuery; @@ -27,13 +32,6 @@ import org.apache.lucene.search.RegexpQuery; import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.WildcardQuery; -import com.fasterxml.jackson.core.JsonParseException; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.deser.std.StdDeserializer; - public class QueryDeserializer extends StdDeserializer<Query> { public QueryDeserializer() { @@ -107,15 +105,12 @@ public class QueryDeserializer extends StdDeserializer<Query> { return new RegexpQuery(new Term(field, text)); } case "term_range": { - } case "point_range": { - } case "match_all": - return new MatchAllDocsQuery(); + return new MatchAllDocsQuery(); } throw new JsonParseException(parser, type + " not a supported query type"); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QuerySerializer.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QuerySerializer.java index df2f7a675..5e1d50871 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QuerySerializer.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/QuerySerializer.java @@ -13,8 +13,11 @@ package org.apache.couchdb.nouveau.lucene9; +import com.fasterxml.jackson.core.JsonGenerationException; +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.databind.SerializerProvider; +import com.fasterxml.jackson.databind.ser.std.StdSerializer; import java.io.IOException; - import org.apache.lucene.index.Term; import org.apache.lucene.search.BooleanClause; import org.apache.lucene.search.BooleanQuery; @@ -29,11 +32,6 @@ import org.apache.lucene.search.TermQuery; import org.apache.lucene.search.TermRangeQuery; import org.apache.lucene.search.WildcardQuery; -import com.fasterxml.jackson.core.JsonGenerationException; -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.databind.SerializerProvider; -import com.fasterxml.jackson.databind.ser.std.StdSerializer; - class QuerySerializer extends StdSerializer<Query> { QuerySerializer() { @@ -167,5 +165,4 @@ class QuerySerializer extends StdSerializer<Query> { throw new JsonGenerationException(query.getClass() + " not supported", gen); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/SimpleAsciiFoldingAnalyzer.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/SimpleAsciiFoldingAnalyzer.java index ae7e4c261..6b4c8c642 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/SimpleAsciiFoldingAnalyzer.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/lucene9/SimpleAsciiFoldingAnalyzer.java @@ -22,8 +22,7 @@ import org.apache.lucene.analysis.miscellaneous.ASCIIFoldingFilter; class SimpleAsciiFoldingAnalyzer extends Analyzer { - SimpleAsciiFoldingAnalyzer() { - } + SimpleAsciiFoldingAnalyzer() {} @Override protected TokenStreamComponents createComponents(String fieldName) { @@ -35,5 +34,4 @@ class SimpleAsciiFoldingAnalyzer extends Analyzer { protected TokenStream normalize(String fieldName, TokenStream in) { return new ASCIIFoldingFilter(new LowerCaseFilter(in)); } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/AnalyzeResource.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/AnalyzeResource.java index e29657eab..2ae8b78f1 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/AnalyzeResource.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/AnalyzeResource.java @@ -13,21 +13,9 @@ package org.apache.couchdb.nouveau.resources; -import java.io.IOException; -import java.util.ArrayList; -import java.util.List; - -import org.apache.couchdb.nouveau.api.AnalyzeRequest; -import org.apache.couchdb.nouveau.api.AnalyzeResponse; -import org.apache.couchdb.nouveau.lucene9.Lucene9AnalyzerFactory; -import org.apache.lucene.analysis.Analyzer; -import org.apache.lucene.analysis.TokenStream; -import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; - import com.codahale.metrics.annotation.ExceptionMetered; import com.codahale.metrics.annotation.Metered; import com.codahale.metrics.annotation.ResponseMetered; - import jakarta.validation.Valid; import jakarta.validation.constraints.NotNull; import jakarta.ws.rs.Consumes; @@ -37,6 +25,15 @@ import jakarta.ws.rs.Produces; import jakarta.ws.rs.WebApplicationException; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response.Status; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import org.apache.couchdb.nouveau.api.AnalyzeRequest; +import org.apache.couchdb.nouveau.api.AnalyzeResponse; +import org.apache.couchdb.nouveau.lucene9.Lucene9AnalyzerFactory; +import org.apache.lucene.analysis.Analyzer; +import org.apache.lucene.analysis.TokenStream; +import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; @Path("/analyze") @Metered @@ -49,12 +46,11 @@ public final class AnalyzeResource { @POST public AnalyzeResponse analyzeText(@NotNull @Valid AnalyzeRequest request) throws IOException { try { - final List<String> tokens = tokenize(Lucene9AnalyzerFactory.newAnalyzer(request.getAnalyzer()), - request.getText()); + final List<String> tokens = + tokenize(Lucene9AnalyzerFactory.newAnalyzer(request.getAnalyzer()), request.getText()); return new AnalyzeResponse(tokens); } catch (IllegalArgumentException e) { - throw new WebApplicationException(request.getAnalyzer() + " not a valid analyzer", - Status.BAD_REQUEST); + throw new WebApplicationException(request.getAnalyzer() + " not a valid analyzer", Status.BAD_REQUEST); } } @@ -70,5 +66,4 @@ public final class AnalyzeResource { } return result; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/IndexResource.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/IndexResource.java index 6eebeed20..0776df52f 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/IndexResource.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/resources/IndexResource.java @@ -13,11 +13,24 @@ package org.apache.couchdb.nouveau.resources; +import com.codahale.metrics.annotation.ExceptionMetered; +import com.codahale.metrics.annotation.Metered; +import com.codahale.metrics.annotation.ResponseMetered; +import jakarta.validation.Valid; +import jakarta.validation.constraints.NotNull; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.DELETE; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.PUT; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.PathParam; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; import java.io.IOException; import java.util.List; import java.util.Map; import java.util.Objects; - import org.apache.couchdb.nouveau.api.DocumentDeleteRequest; import org.apache.couchdb.nouveau.api.DocumentUpdateRequest; import org.apache.couchdb.nouveau.api.IndexDefinition; @@ -37,22 +50,6 @@ import org.apache.lucene.search.SearcherManager; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; -import com.codahale.metrics.annotation.ExceptionMetered; -import com.codahale.metrics.annotation.Metered; -import com.codahale.metrics.annotation.ResponseMetered; - -import jakarta.validation.Valid; -import jakarta.validation.constraints.NotNull; -import jakarta.ws.rs.Consumes; -import jakarta.ws.rs.DELETE; -import jakarta.ws.rs.GET; -import jakarta.ws.rs.POST; -import jakarta.ws.rs.PUT; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.PathParam; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType;; - @Path("/index/{name}") @Metered @ResponseMetered @@ -77,8 +74,11 @@ public final class IndexResource { @DELETE @Path("/doc/{docId}") - public void deleteDoc(@PathParam("name") String name, @PathParam("docId") String docId, - @NotNull @Valid DocumentDeleteRequest request) throws Exception { + public void deleteDoc( + @PathParam("name") String name, + @PathParam("docId") String docId, + @NotNull @Valid DocumentDeleteRequest request) + throws Exception { indexManager.with(name, indexLoader(), (index) -> { index.delete(docId, request); return null; @@ -99,8 +99,7 @@ public final class IndexResource { @POST @Path("/search") - public SearchResults searchIndex(@PathParam("name") String name, - @NotNull @Valid SearchRequest request) + public SearchResults searchIndex(@PathParam("name") String name, @NotNull @Valid SearchRequest request) throws Exception { return indexManager.with(name, indexLoader(), (index) -> { return index.search(request); @@ -109,7 +108,9 @@ public final class IndexResource { @PUT @Path("/doc/{docId}") - public void updateDoc(@PathParam("name") String name, @PathParam("docId") String docId, + public void updateDoc( + @PathParam("name") String name, + @PathParam("docId") String docId, @NotNull @Valid DocumentUpdateRequest request) throws Exception { indexManager.with(name, indexLoader(), (index) -> { @@ -143,5 +144,4 @@ public final class IndexResource { } return 0L; } - } diff --git a/nouveau/src/main/java/org/apache/couchdb/nouveau/tasks/CloseAllIndexesTask.java b/nouveau/src/main/java/org/apache/couchdb/nouveau/tasks/CloseAllIndexesTask.java index bcc94e34d..423b5d12d 100644 --- a/nouveau/src/main/java/org/apache/couchdb/nouveau/tasks/CloseAllIndexesTask.java +++ b/nouveau/src/main/java/org/apache/couchdb/nouveau/tasks/CloseAllIndexesTask.java @@ -13,14 +13,12 @@ package org.apache.couchdb.nouveau.tasks; +import io.dropwizard.servlets.tasks.Task; import java.io.PrintWriter; import java.util.List; import java.util.Map; - import org.apache.couchdb.nouveau.core.IndexManager; -import io.dropwizard.servlets.tasks.Task; - public class CloseAllIndexesTask extends Task { private final IndexManager indexManager; @@ -34,5 +32,4 @@ public class CloseAllIndexesTask extends Task { public void execute(Map<String, List<String>> parameters, PrintWriter output) throws Exception { indexManager.stop(); } - } diff --git a/nouveau/src/test/java/org/apache/couchdb/nouveau/api/SearchRequestTest.java b/nouveau/src/test/java/org/apache/couchdb/nouveau/api/SearchRequestTest.java index 8fb773419..01489b021 100644 --- a/nouveau/src/test/java/org/apache/couchdb/nouveau/api/SearchRequestTest.java +++ b/nouveau/src/test/java/org/apache/couchdb/nouveau/api/SearchRequestTest.java @@ -15,14 +15,12 @@ package org.apache.couchdb.nouveau.api; import static org.assertj.core.api.Assertions.assertThat; +import com.fasterxml.jackson.databind.ObjectMapper; import java.util.List; import java.util.Map; - import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.ObjectMapper; - public class SearchRequestTest { private static ObjectMapper mapper; @@ -43,7 +41,8 @@ public class SearchRequestTest { @Test public void testDeserialisation() throws Exception { SearchRequest request = asObject(); - assertThat(mapper.readValue(getClass().getResource("/fixtures/SearchRequest.json"), SearchRequest.class).toString()) + assertThat(mapper.readValue(getClass().getResource("/fixtures/SearchRequest.json"), SearchRequest.class) + .toString()) .isEqualTo(request.toString()); } @@ -55,5 +54,4 @@ public class SearchRequestTest { result.setRanges(Map.of("foo", List.of(new DoubleRange("0 to 100 inc", 0.0, true, 100.0, true)))); return result; } - } diff --git a/nouveau/src/test/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheckTest.java b/nouveau/src/test/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheckTest.java index 8f39b3f39..23a7d8063 100644 --- a/nouveau/src/test/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheckTest.java +++ b/nouveau/src/test/java/org/apache/couchdb/nouveau/health/AnalyzeHealthCheckTest.java @@ -12,6 +12,7 @@ // limitations under the License. package org.apache.couchdb.nouveau.health; + import static org.junit.jupiter.api.Assertions.assertTrue; import org.apache.couchdb.nouveau.resources.AnalyzeResource; @@ -25,5 +26,4 @@ public class AnalyzeHealthCheckTest { var check = new AnalyzeHealthCheck(resource); assertTrue(check.check().isHealthy()); } - } diff --git a/nouveau/src/test/java/org/apache/couchdb/nouveau/health/IndexHealthCheckTest.java b/nouveau/src/test/java/org/apache/couchdb/nouveau/health/IndexHealthCheckTest.java index 42a3626d6..c71c281fa 100644 --- a/nouveau/src/test/java/org/apache/couchdb/nouveau/health/IndexHealthCheckTest.java +++ b/nouveau/src/test/java/org/apache/couchdb/nouveau/health/IndexHealthCheckTest.java @@ -15,18 +15,16 @@ package org.apache.couchdb.nouveau.health; import static org.junit.jupiter.api.Assertions.assertTrue; +import com.codahale.metrics.MetricRegistry; +import com.fasterxml.jackson.databind.ObjectMapper; import java.nio.file.Path; import java.util.concurrent.Executors; - import org.apache.couchdb.nouveau.core.IndexManager; import org.apache.couchdb.nouveau.resources.IndexResource; import org.apache.lucene.search.SearcherFactory; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import com.codahale.metrics.MetricRegistry; -import com.fasterxml.jackson.databind.ObjectMapper; - public class IndexHealthCheckTest { @Test @@ -47,5 +45,4 @@ public class IndexHealthCheckTest { manager.stop(); } } - } diff --git a/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactoryTest.java b/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactoryTest.java index 693d82918..eb8e30e08 100644 --- a/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactoryTest.java +++ b/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9AnalyzerFactoryTest.java @@ -16,9 +16,9 @@ package org.apache.couchdb.nouveau.lucene9; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.assertThrows; +import jakarta.ws.rs.WebApplicationException; import java.lang.reflect.Method; import java.util.Map; - import org.apache.couchdb.nouveau.api.IndexDefinition; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.ar.ArabicAnalyzer; @@ -62,8 +62,6 @@ import org.apache.lucene.analysis.th.ThaiAnalyzer; import org.apache.lucene.analysis.tr.TurkishAnalyzer; import org.junit.jupiter.api.Test; -import jakarta.ws.rs.WebApplicationException; - public class Lucene9AnalyzerFactoryTest { @Test @@ -258,8 +256,8 @@ public class Lucene9AnalyzerFactoryTest { @Test public void testFieldAnalyzers() throws Exception { - final IndexDefinition indexDefinition = new IndexDefinition("standard", - Map.of("english", "english", "thai", "thai", "email", "email")); + final IndexDefinition indexDefinition = + new IndexDefinition("standard", Map.of("english", "english", "thai", "thai", "email", "email")); final Analyzer analyzer = Lucene9AnalyzerFactory.fromDefinition(indexDefinition); assertThat(analyzer).isInstanceOf(PerFieldAnalyzerWrapper.class); final Method m = PerFieldAnalyzerWrapper.class.getDeclaredMethod("getWrappedAnalyzer", String.class); @@ -277,7 +275,7 @@ public class Lucene9AnalyzerFactoryTest { private void assertAnalyzer(final String name, final Class<? extends Analyzer> clazz) throws Exception { assertThat(Lucene9AnalyzerFactory.newAnalyzer(name)).isInstanceOf(clazz); - assertThat(Lucene9AnalyzerFactory.fromDefinition(new IndexDefinition(name, null))).isInstanceOf(clazz); + assertThat(Lucene9AnalyzerFactory.fromDefinition(new IndexDefinition(name, null))) + .isInstanceOf(clazz); } - } diff --git a/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java b/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java index f6d47e61a..79151a263 100644 --- a/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java +++ b/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/Lucene9IndexTest.java @@ -22,7 +22,6 @@ import java.util.Collection; import java.util.Collections; import java.util.List; import java.util.Map; - import org.apache.couchdb.nouveau.api.DocumentDeleteRequest; import org.apache.couchdb.nouveau.api.DocumentUpdateRequest; import org.apache.couchdb.nouveau.api.DoubleField; @@ -137,12 +136,13 @@ public class Lucene9IndexTest { } final SearchRequest request = new SearchRequest(); request.setQuery("*:*"); - request.setRanges(Map.of("bar", - List.of(new DoubleRange("low", 0.0, true, (double) count / 2, true), + request.setRanges(Map.of( + "bar", + List.of( + new DoubleRange("low", 0.0, true, (double) count / 2, true), new DoubleRange("high", (double) count / 2, true, (double) count, true)))); final SearchResults results = index.search(request); - assertThat(results.getRanges()).isEqualTo( - Map.of("bar", Map.of("low", count / 2, "high", count / 2 + 1))); + assertThat(results.getRanges()).isEqualTo(Map.of("bar", Map.of("low", count / 2, "high", count / 2 + 1))); } finally { cleanup(index); } @@ -158,7 +158,8 @@ public class Lucene9IndexTest { index.update("foo", new DocumentUpdateRequest(2, null, fields)); // Should be prevented from going down to 1. - assertThrows(UpdatesOutOfOrderException.class, + assertThrows( + UpdatesOutOfOrderException.class, () -> index.update("foo", new DocumentUpdateRequest(1, null, fields))); } finally { cleanup(index); @@ -219,5 +220,4 @@ public class Lucene9IndexTest { return new Lucene9Index(analyzer, writer, 0L, searcherManager); }; } - } diff --git a/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParserTest.java b/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParserTest.java index 4c1e23d2a..3b41f4397 100644 --- a/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParserTest.java +++ b/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/NouveauQueryParserTest.java @@ -54,14 +54,14 @@ public class NouveauQueryParserTest { @Test public void testStringRangeQuery() throws Exception { - assertThat(qp.parse("foo:[bar TO foo]", DEFAULT_FIELD)).isEqualTo(new TermRangeQuery("foo", - new BytesRef("bar"), new BytesRef("foo"), true, true)); + assertThat(qp.parse("foo:[bar TO foo]", DEFAULT_FIELD)) + .isEqualTo(new TermRangeQuery("foo", new BytesRef("bar"), new BytesRef("foo"), true, true)); } @Test public void testMixedRangeQuery() throws Exception { - assertThat(qp.parse("foo:[12.0 TO foo]", DEFAULT_FIELD)).isEqualTo(new TermRangeQuery("foo", - new BytesRef("12.0"), new BytesRef("foo"), true, true)); + assertThat(qp.parse("foo:[12.0 TO foo]", DEFAULT_FIELD)) + .isEqualTo(new TermRangeQuery("foo", new BytesRef("12.0"), new BytesRef("foo"), true, true)); } @Test @@ -72,35 +72,32 @@ public class NouveauQueryParserTest { @Test public void testInferredPointRangeQuery() throws Exception { assertThat(qp.parse("foo:[1 TO 12]", DEFAULT_FIELD)) - .isEqualTo(DoublePoint.newRangeQuery("foo", new double[] { 1 }, new double[] { 12 })); + .isEqualTo(DoublePoint.newRangeQuery("foo", new double[] {1}, new double[] {12})); } @Test public void testOpenLeftPointRangeQuery() throws Exception { assertThat(qp.parse("foo:[* TO 100.0]", DEFAULT_FIELD)) - .isEqualTo(DoublePoint.newRangeQuery("foo", new double[] { Double.NEGATIVE_INFINITY }, - new double[] { 100 })); + .isEqualTo( + DoublePoint.newRangeQuery("foo", new double[] {Double.NEGATIVE_INFINITY}, new double[] {100})); } @Test public void testOpenRightPointRangeQuery() throws Exception { assertThat(qp.parse("foo:[1.0 TO *]", DEFAULT_FIELD)) - .isEqualTo(DoublePoint.newRangeQuery("foo", new double[] { 1 }, - new double[] { Double.POSITIVE_INFINITY })); + .isEqualTo(DoublePoint.newRangeQuery("foo", new double[] {1}, new double[] {Double.POSITIVE_INFINITY})); } @Test public void testOpenLeftPointRangeQueryLegacy() throws Exception { assertThat(qp.parse("foo:[-Infinity TO 100.0]", DEFAULT_FIELD)) - .isEqualTo(DoublePoint.newRangeQuery("foo", new double[] { Double.NEGATIVE_INFINITY }, - new double[] { 100 })); + .isEqualTo( + DoublePoint.newRangeQuery("foo", new double[] {Double.NEGATIVE_INFINITY}, new double[] {100})); } @Test public void testOpenRightPointRangeQueryLegacy() throws Exception { assertThat(qp.parse("foo:[1.0 TO Infinity]", DEFAULT_FIELD)) - .isEqualTo(DoublePoint.newRangeQuery("foo", new double[] { 1 }, - new double[] { Double.POSITIVE_INFINITY })); + .isEqualTo(DoublePoint.newRangeQuery("foo", new double[] {1}, new double[] {Double.POSITIVE_INFINITY})); } - } diff --git a/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/QuerySerializationTest.java b/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/QuerySerializationTest.java index 06cfdfad7..436023ca3 100644 --- a/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/QuerySerializationTest.java +++ b/nouveau/src/test/java/org/apache/couchdb/nouveau/lucene9/QuerySerializationTest.java @@ -13,9 +13,9 @@ package org.apache.couchdb.nouveau.lucene9; - import static org.assertj.core.api.Assertions.assertThat; +import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.lucene.index.Term; import org.apache.lucene.search.BooleanClause.Occur; import org.apache.lucene.search.BooleanQuery; @@ -24,8 +24,6 @@ import org.apache.lucene.search.Query; import org.apache.lucene.search.TermQuery; import org.junit.jupiter.api.Test; -import com.fasterxml.jackson.databind.ObjectMapper; - public class QuerySerializationTest { @Test @@ -40,8 +38,8 @@ public class QuerySerializationTest { builder.add(new PhraseQuery("bar", "foo", "bar", "baz"), Occur.MUST); final Query query = builder.build(); - final String expected = "{\"@type\":\"boolean\",\"clauses\":[{\"query\":{\"@type\":\"term\",\"field\":\"foo\",\"term\":\"bar\"},\"occur\":\"must\"},{\"query\":{\"@type\":\"term\",\"field\":\"foo\",\"term\":\"bar\"},\"occur\":\"must_not\"},{\"query\":{\"@type\":\"term\",\"field\":\"foo\",\"term\":\"bar\"},\"occur\":\"should\"},{\"query\":{\"@type\":\"phrase\",\"field\":\"bar\",\"terms\":[\"foo\",\"bar\",\"baz\"],\"slop\":0},\"occur\":\"must\"}]}"; + final String expected = + "{\"@type\":\"boolean\",\"clauses\":[{\"query\":{\"@type\":\"term\",\"field\":\"foo\",\"term\":\"bar\"},\"occur\":\"must\"},{\"query\":{\"@type\":\"term\",\"field\":\"foo\",\"term\":\"bar\"},\"occur\":\"must_not\"},{\"query\":{\"@type\":\"term\",\"field\":\"foo\",\"term\":\"bar\"},\"occur\":\"should\"},{\"query\":{\"@type\":\"phrase\",\"field\":\"bar\",\"terms\":[\"foo\",\"bar\",\"baz\"],\"slop\":0},\"occur\":\"must\"}]}"; assertThat(mapper.writeValueAsString(query)).isEqualTo(expected); } - } |