Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Spotless] Adds new line at end of java files #1896

Merged
Merged
Show file tree
Hide file tree
Changes from 12 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions DEVELOPER_GUIDE.rst
Original file line number Diff line number Diff line change
Expand Up @@ -113,8 +113,8 @@ Note that missing license header will be detected by Gradle license plugin and f
Making Code Changes
===================

Project Strucure
----------------
Project Structure
-----------------

The plugin codebase is in standard layout of Gradle project::

Expand Down Expand Up @@ -226,6 +226,10 @@ Most of the time you just need to run ./gradlew build which will make sure you p
- Build plugin by run all tasks above (this takes time).
* - ./gradlew pitest
- Run PiTest mutation testing (see more info in `#1204 <https://github.com/opensearch-project/sql/pull/1204>`_)
* - ./gradlew spotlessCheck
- Runs Spotless to check for code style.
* - ./gradlew spotlessApply
- Automatically apply spotless code style changes.

For integration test, you can use ``-Dtests.class`` “UT full path” to run a task individually. For example ``./gradlew :integ-test:integTest -Dtests.class="*QueryIT"``.

Expand Down
20 changes: 20 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ plugins {
id 'checkstyle'
id "io.freefair.lombok" version "6.4.0"
id 'jacoco'
id 'com.diffplug.spotless' version '6.19.0'
}

// import versions defined in https://github.com/opensearch-project/OpenSearch/blob/main/buildSrc/src/main/java/org/opensearch/gradle/OpenSearchJavaPlugin.java#L94
Expand All @@ -79,6 +80,25 @@ repositories {
maven { url 'https://jitpack.io' }
}

// Spotless checks will be added as PRs are applied to resolve each style issue is approved.
spotless {
java {
target fileTree('.') {
include '**/*.java'
exclude '**/build/**', '**/build-*/**'
}
// importOrder()
// licenseHeader("/*\n" +
// " * Copyright OpenSearch Contributors\n" +
// " * SPDX-License-Identifier: Apache-2.0\n" +
// " */\n\n\n")
// removeUnusedImports()
// trimTrailingWhitespace()
endWithNewline()
// googleJavaFormat('1.17.0').reflowLongStrings().groupArtifact('com.google.googlejavaformat:google-java-format')
}
}

allprojects {
version = opensearch_version.tokenize('-')[0] + '.0'
if (buildVersionQualifier) {
Expand Down
336 changes: 168 additions & 168 deletions common/src/main/java/org/opensearch/sql/common/grok/Converter.java
Original file line number Diff line number Diff line change
@@ -1,168 +1,168 @@
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/
package org.opensearch.sql.common.grok;
import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
import java.util.AbstractMap;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
* Convert String argument to the right type.
*/
public class Converter {
public enum Type {
BYTE(Byte::valueOf),
BOOLEAN(Boolean::valueOf),
SHORT(Short::valueOf),
INT(Integer::valueOf, "integer"),
LONG(Long::valueOf),
FLOAT(Float::valueOf),
DOUBLE(Double::valueOf),
DATETIME(new DateConverter(), "date"),
STRING(v -> v, "text");
public final IConverter<? extends Object> converter;
public final List<String> aliases;
Type(IConverter<? extends Object> converter, String... aliases) {
this.converter = converter;
this.aliases = Arrays.asList(aliases);
}
}
private static final Pattern SPLITTER = Pattern.compile("[:;]");
private static final Map<String, Type> TYPES =
Arrays.stream(Type.values())
.collect(Collectors.toMap(t -> t.name().toLowerCase(), t -> t));
private static final Map<String, Type> TYPE_ALIASES =
Arrays.stream(Type.values())
.flatMap(type -> type.aliases.stream()
.map(alias -> new AbstractMap.SimpleEntry<>(alias, type)))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
private static Type getType(String key) {
key = key.toLowerCase();
Type type = TYPES.getOrDefault(key, TYPE_ALIASES.get(key));
if (type == null) {
throw new IllegalArgumentException("Invalid data type :" + key);
}
return type;
}
/**
* getConverters.
*/
public static Map<String, IConverter<? extends Object>>
getConverters(Collection<String> groupNames, Object... params) {
return groupNames.stream()
.filter(Converter::containsDelimiter)
.collect(Collectors.toMap(Function.identity(), key -> {
String[] list = splitGrokPattern(key);
IConverter<? extends Object> converter = getType(list[1]).converter;
if (list.length == 3) {
converter = converter.newConverter(list[2], params);
}
return converter;
}));
}
/**
* getGroupTypes.
*/
public static Map<String, Type> getGroupTypes(Collection<String> groupNames) {
return groupNames.stream()
.filter(Converter::containsDelimiter)
.map(Converter::splitGrokPattern)
.collect(Collectors.toMap(
l -> l[0],
l -> getType(l[1])
));
}
public static String extractKey(String key) {
return splitGrokPattern(key)[0];
}
private static boolean containsDelimiter(String string) {
return string.indexOf(':') >= 0 || string.indexOf(';') >= 0;
}
private static String[] splitGrokPattern(String string) {
return SPLITTER.split(string, 3);
}
interface IConverter<T> {
T convert(String value);
default IConverter<T> newConverter(String param, Object... params) {
return this;
}
}
static class DateConverter implements IConverter<Instant> {
private final DateTimeFormatter formatter;
private final ZoneId timeZone;
public DateConverter() {
this.formatter = DateTimeFormatter.ISO_DATE_TIME;
this.timeZone = ZoneOffset.UTC;
}
private DateConverter(DateTimeFormatter formatter, ZoneId timeZone) {
this.formatter = formatter;
this.timeZone = timeZone;
}
@Override
public Instant convert(String value) {
TemporalAccessor dt = formatter
.parseBest(value.trim(), ZonedDateTime::from, LocalDateTime::from, OffsetDateTime::from,
Instant::from,
LocalDate::from);
if (dt instanceof ZonedDateTime) {
return ((ZonedDateTime) dt).toInstant();
} else if (dt instanceof LocalDateTime) {
return ((LocalDateTime) dt).atZone(timeZone).toInstant();
} else if (dt instanceof OffsetDateTime) {
return ((OffsetDateTime) dt).atZoneSameInstant(timeZone).toInstant();
} else if (dt instanceof Instant) {
return ((Instant) dt);
} else if (dt instanceof LocalDate) {
return ((LocalDate) dt).atStartOfDay(timeZone).toInstant();
} else {
return null;
}
}
@Override
public DateConverter newConverter(String param, Object... params) {
if (!(params.length == 1 && params[0] instanceof ZoneId)) {
throw new IllegalArgumentException("Invalid parameters");
}
return new DateConverter(DateTimeFormatter.ofPattern(param), (ZoneId) params[0]);
}
}
}
/*
* Copyright OpenSearch Contributors
* SPDX-License-Identifier: Apache-2.0
*/

package org.opensearch.sql.common.grok;

import java.time.Instant;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.OffsetDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
import java.time.temporal.TemporalAccessor;
import java.util.AbstractMap;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.regex.Pattern;
import java.util.stream.Collectors;

/**
* Convert String argument to the right type.
*/
public class Converter {

public enum Type {
BYTE(Byte::valueOf),
BOOLEAN(Boolean::valueOf),
SHORT(Short::valueOf),
INT(Integer::valueOf, "integer"),
LONG(Long::valueOf),
FLOAT(Float::valueOf),
DOUBLE(Double::valueOf),
DATETIME(new DateConverter(), "date"),
STRING(v -> v, "text");

public final IConverter<? extends Object> converter;
public final List<String> aliases;

Type(IConverter<? extends Object> converter, String... aliases) {
this.converter = converter;
this.aliases = Arrays.asList(aliases);
}
}

private static final Pattern SPLITTER = Pattern.compile("[:;]");

private static final Map<String, Type> TYPES =
Arrays.stream(Type.values())
.collect(Collectors.toMap(t -> t.name().toLowerCase(), t -> t));

private static final Map<String, Type> TYPE_ALIASES =
Arrays.stream(Type.values())
.flatMap(type -> type.aliases.stream()
.map(alias -> new AbstractMap.SimpleEntry<>(alias, type)))
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));

private static Type getType(String key) {
key = key.toLowerCase();
Type type = TYPES.getOrDefault(key, TYPE_ALIASES.get(key));
if (type == null) {
throw new IllegalArgumentException("Invalid data type :" + key);
}
return type;
}

/**
* getConverters.
*/
public static Map<String, IConverter<? extends Object>>
getConverters(Collection<String> groupNames, Object... params) {
return groupNames.stream()
.filter(Converter::containsDelimiter)
.collect(Collectors.toMap(Function.identity(), key -> {
String[] list = splitGrokPattern(key);
IConverter<? extends Object> converter = getType(list[1]).converter;
if (list.length == 3) {
converter = converter.newConverter(list[2], params);
}
return converter;
}));
}

/**
* getGroupTypes.
*/
public static Map<String, Type> getGroupTypes(Collection<String> groupNames) {
return groupNames.stream()
.filter(Converter::containsDelimiter)
.map(Converter::splitGrokPattern)
.collect(Collectors.toMap(
l -> l[0],
l -> getType(l[1])
));
}

public static String extractKey(String key) {
return splitGrokPattern(key)[0];
}

private static boolean containsDelimiter(String string) {
return string.indexOf(':') >= 0 || string.indexOf(';') >= 0;
}

private static String[] splitGrokPattern(String string) {
return SPLITTER.split(string, 3);
}

interface IConverter<T> {

T convert(String value);

default IConverter<T> newConverter(String param, Object... params) {
return this;
}
}


static class DateConverter implements IConverter<Instant> {

private final DateTimeFormatter formatter;
private final ZoneId timeZone;

public DateConverter() {
this.formatter = DateTimeFormatter.ISO_DATE_TIME;
this.timeZone = ZoneOffset.UTC;
}

private DateConverter(DateTimeFormatter formatter, ZoneId timeZone) {
this.formatter = formatter;
this.timeZone = timeZone;
}

@Override
public Instant convert(String value) {
TemporalAccessor dt = formatter
.parseBest(value.trim(), ZonedDateTime::from, LocalDateTime::from, OffsetDateTime::from,
Instant::from,
LocalDate::from);
if (dt instanceof ZonedDateTime) {
return ((ZonedDateTime) dt).toInstant();
} else if (dt instanceof LocalDateTime) {
return ((LocalDateTime) dt).atZone(timeZone).toInstant();
} else if (dt instanceof OffsetDateTime) {
return ((OffsetDateTime) dt).atZoneSameInstant(timeZone).toInstant();
} else if (dt instanceof Instant) {
return ((Instant) dt);
} else if (dt instanceof LocalDate) {
return ((LocalDate) dt).atStartOfDay(timeZone).toInstant();
} else {
return null;
}
}

@Override
public DateConverter newConverter(String param, Object... params) {
if (!(params.length == 1 && params[0] instanceof ZoneId)) {
throw new IllegalArgumentException("Invalid parameters");
}
return new DateConverter(DateTimeFormatter.ofPattern(param), (ZoneId) params[0]);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -57,4 +57,3 @@ public enum CommandType {
RARE
}
}

Loading