This is an automated email from the ASF dual-hosted git repository. nizhikov pushed a commit to branch IGNITE-19676 in repository https://gitbox.apache.org/repos/asf/ignite.git
commit c8a7290348dd227903c418a2c4de8dbf525d4d87 Author: nizhikov <nizhi...@apache.org> AuthorDate: Thu Jun 15 12:09:29 2023 +0300 IGNITE-19676 merge errors fix --- .../processors/query/calcite/QueryState.java} | 32 +++--- .../internal/commandline/ArgumentParser.java | 119 --------------------- .../internal/management/api/HelpCommand.java | 19 ---- .../internal/management/api/LocalCommand.java | 15 +-- .../query/running/TrackableQuery.java} | 20 ++-- .../junits/multijvm/IgniteProcessProxy.java | 6 ++ 6 files changed, 43 insertions(+), 168 deletions(-) diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/QueryState.java similarity index 60% copy from modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java copy to modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/QueryState.java index 2f60d073ed8..95a04564559 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java +++ b/modules/calcite/src/main/java/org/apache/ignite/internal/processors/query/calcite/QueryState.java @@ -15,19 +15,25 @@ * limitations under the License. */ -package org.apache.ignite.internal.management.api; +package org.apache.ignite.internal.processors.query.calcite; -import java.util.function.Consumer; -import org.apache.ignite.internal.client.GridClient; -import org.apache.ignite.internal.client.GridClientException; -import org.apache.ignite.internal.dto.IgniteDataTransferObject; +/** */ +public enum QueryState { + /** */ + INITED, -/** - * Marker interface only for backward compatibility with {@code ./control.sh}. - */ -public interface HelpCommand extends Command<NoArg, Void> { - /** {@inheritDoc} */ - @Override public default Class<NoArg> argClass() { - return NoArg.class; - } + /** */ + PLANNING, + + /** */ + MAPPING, + + /** */ + EXECUTING, + + /** */ + CLOSING, + + /** */ + CLOSED } diff --git a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/ArgumentParser.java b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/ArgumentParser.java index 16f9e8ec26a..5abe7ce6f75 100644 --- a/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/ArgumentParser.java +++ b/modules/control-utility/src/main/java/org/apache/ignite/internal/commandline/ArgumentParser.java @@ -42,9 +42,7 @@ import org.apache.ignite.internal.management.api.CliSubcommandsWithPrefix; import org.apache.ignite.internal.management.api.Command; import org.apache.ignite.internal.management.api.CommandsRegistry; import org.apache.ignite.internal.management.api.Positional; -import org.apache.ignite.internal.util.typedef.F; import org.apache.ignite.internal.util.typedef.internal.U; -import org.apache.ignite.lang.IgniteBiTuple; import org.apache.ignite.lang.IgniteExperimental; import org.apache.ignite.ssl.SslContextFactory; @@ -380,121 +378,4 @@ public class ArgumentParser { return new CLIArgumentParser(positionalArgs, namedArgs); } - - /** - * Fill and vaildate command argument. - * - * @param argCls Argument class. - * @param positionalParamProvider Provider of positional parameters. - * @param paramProvider Provider of named parameters. - * @return Argument filled with parameters. - * @param <A> Argument type. - */ - private static <A extends IgniteDataTransferObject> A argument( - Class<A> argCls, - BiFunction<Field, Integer, Object> positionalParamProvider, - Function<Field, Object> paramProvider - ) { - try { - ArgumentState<A> arg = new ArgumentState<>(argCls); - - visitCommandParams( - argCls, - fld -> arg.accept(fld, positionalParamProvider.apply(fld, arg.nextIdx())), - fld -> arg.accept(fld, paramProvider.apply(fld)), - (argGrp, flds) -> flds.forEach(fld -> { - if (fld.isAnnotationPresent(Positional.class)) - arg.accept(fld, positionalParamProvider.apply(fld, arg.nextIdx())); - else - arg.accept(fld, paramProvider.apply(fld)); - }) - ); - - if (arg.argGrp != null && (!arg.grpOptional() && !arg.grpFldExists)) - throw new IllegalArgumentException("One of " + toFormattedNames(argCls, arg.grpdFlds) + " required"); - - return arg.res; - } - catch (InstantiationException | IllegalAccessException e) { - throw new IgniteException(e); - } - } - - /** */ - private static class ArgumentState<A extends IgniteDataTransferObject> implements BiConsumer<Field, Object> { - /** */ - final A res; - - /** */ - final ArgumentGroup argGrp; - - /** */ - boolean grpFldExists; - - /** */ - int idx; - - /** */ - final Set<String> grpdFlds; - - /** */ - public ArgumentState(Class<A> argCls) throws InstantiationException, IllegalAccessException { - res = argCls.newInstance(); - argGrp = argCls.getAnnotation(ArgumentGroup.class); - grpdFlds = argGrp == null - ? Collections.emptySet() - : new HashSet<>(Arrays.asList(argGrp.value())); - } - - /** */ - public boolean grpOptional() { - return argGrp == null || argGrp.optional(); - } - - /** */ - private int nextIdx() { - int idx0 = idx; - - idx++; - - return idx0; - } - - /** {@inheritDoc} */ - @Override public void accept(Field fld, Object val) { - boolean grpdFld = grpdFlds.contains(fld.getName()); - - if (val == null) { - if (grpdFld || fld.getAnnotation(Argument.class).optional()) - return; - - String name = fld.isAnnotationPresent(Positional.class) - ? parameterExample(fld, false) - : toFormattedFieldName(fld); - - throw new IllegalArgumentException("Argument " + name + " required."); - } - - if (grpdFld) { - if (grpFldExists && (argGrp != null && argGrp.onlyOneOf())) { - throw new IllegalArgumentException( - "Only one of " + toFormattedNames(res.getClass(), grpdFlds) + " allowed" - ); - } - - grpFldExists = true; - } - - try { - res.getClass().getMethod(fld.getName(), fld.getType()).invoke(res, val); - } - catch (NoSuchMethodException | IllegalAccessException e) { - throw new IgniteException(e); - } - catch (InvocationTargetException e) { - if (e.getTargetException() != null && e.getTargetException() instanceof RuntimeException) - throw (RuntimeException)e.getTargetException(); - } - } - } } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/api/HelpCommand.java b/modules/core/src/main/java/org/apache/ignite/internal/management/api/HelpCommand.java index fe2ff7e8ccc..c1a5b51042f 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/management/api/HelpCommand.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/management/api/HelpCommand.java @@ -16,7 +16,6 @@ */ package org.apache.ignite.internal.management.api; -<<<<<<<< HEAD:modules/core/src/main/java/org/apache/ignite/internal/management/api/HelpCommand.java /** * Marker interface only for backward compatibility with {@code ./control.sh}. @@ -26,22 +25,4 @@ public interface HelpCommand extends Command<NoArg, Void> { @Override public default Class<NoArg> argClass() { return NoArg.class; } -======== - -import java.util.function.Consumer; -import org.apache.ignite.internal.client.GridClient; -import org.apache.ignite.internal.dto.IgniteDataTransferObject; - -/** - * Command that must be executed directly using {@link GridClient} instance. - */ -public interface LocalCommand<A extends IgniteDataTransferObject, R> extends Command<A, R> { - /** - * @param cli Grid client instance. - * @param arg Command argument. - * @param printer Results printer. - * @return Command result. - */ - public R execute(GridClient cli, A arg, Consumer<String> printer) throws Exception; ->>>>>>>> master:modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java b/modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java index 2f60d073ed8..781e7528cf5 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java @@ -23,11 +23,14 @@ import org.apache.ignite.internal.client.GridClientException; import org.apache.ignite.internal.dto.IgniteDataTransferObject; /** - * Marker interface only for backward compatibility with {@code ./control.sh}. + * Command that must be executed directly using {@link GridClient} instance. */ -public interface HelpCommand extends Command<NoArg, Void> { - /** {@inheritDoc} */ - @Override public default Class<NoArg> argClass() { - return NoArg.class; - } +public interface LocalCommand<A extends IgniteDataTransferObject, R> extends Command<A, R> { + /** + * @param cli Grid client instance. + * @param arg Command argument. + * @param printer Results printer. + * @return Command result. + */ + public R execute(GridClient cli, A arg, Consumer<String> printer) throws GridClientException; } diff --git a/modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/TrackableQuery.java similarity index 61% copy from modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java copy to modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/TrackableQuery.java index 2f60d073ed8..af5a413a088 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/management/api/LocalCommand.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/processors/query/running/TrackableQuery.java @@ -15,19 +15,17 @@ * limitations under the License. */ -package org.apache.ignite.internal.management.api; +package org.apache.ignite.internal.processors.query.running; -import java.util.function.Consumer; -import org.apache.ignite.internal.client.GridClient; -import org.apache.ignite.internal.client.GridClientException; -import org.apache.ignite.internal.dto.IgniteDataTransferObject; +import org.jetbrains.annotations.Nullable; /** - * Marker interface only for backward compatibility with {@code ./control.sh}. + * Query, that can be tracked by {@link HeavyQueriesTracker}. */ -public interface HelpCommand extends Command<NoArg, Void> { - /** {@inheritDoc} */ - @Override public default Class<NoArg> argClass() { - return NoArg.class; - } +public interface TrackableQuery { + /** Query execution time. */ + public long time(); + + /** Query info to print to log. */ + public String queryInfo(@Nullable String additinalInfo); } diff --git a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java index 3b06a49b4b3..8ba65c70433 100644 --- a/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java +++ b/modules/core/src/test/java/org/apache/ignite/testframework/junits/multijvm/IgniteProcessProxy.java @@ -76,6 +76,7 @@ import org.apache.ignite.internal.IgniteEx; import org.apache.ignite.internal.IgniteInterruptedCheckedException; import org.apache.ignite.internal.binary.BinaryMarshaller; import org.apache.ignite.internal.cluster.IgniteClusterEx; +import org.apache.ignite.internal.management.IgniteCommandRegistry; import org.apache.ignite.internal.processors.cache.GridCacheUtilityKey; import org.apache.ignite.internal.processors.cache.IgniteInternalCache; import org.apache.ignite.internal.util.GridJavaProcess; @@ -555,6 +556,11 @@ public class IgniteProcessProxy implements IgniteEx { throw new UnsupportedOperationException("Operation isn't supported yet."); } + /** {@inheritDoc} */ + @Override public IgniteCommandRegistry commands() { + throw new UnsupportedOperationException("Operation isn't supported yet."); + } + /** {@inheritDoc} */ @Override public IgniteCompute compute() { throw new UnsupportedOperationException("Operation isn't supported yet.");