From 289e5e8aff808c0b4dba1883915feaee9401b3f3 Mon Sep 17 00:00:00 2001 From: chaokunyang Date: Tue, 21 Jan 2020 15:41:54 +0800 Subject: [PATCH] enable maven checkstyle (#6829) --- .../src/main/java/org/ray/api/RayActor.java | 1 - .../ray/api/options/ActorCreationOptions.java | 10 +++--- java/checkstyle-suppressions.xml | 1 + java/pom.xml | 6 ++++ .../org/ray/runtime/AbstractRayRuntime.java | 6 ++-- .../runtime/RayMultiWorkerNativeRuntime.java | 12 +++---- .../ray/runtime/actor/LocalModeRayActor.java | 1 - .../org/ray/runtime/actor/NativeRayActor.java | 8 +++-- .../functionmanager/FunctionManager.java | 8 ++--- .../runtime/task/LocalModeTaskSubmitter.java | 31 ++++++++++--------- .../ray/runtime/task/NativeTaskSubmitter.java | 19 +++++++----- .../org/ray/api/TestProgressListener.java | 6 ++-- .../src/main/java/org/ray/api/TestUtils.java | 10 +++--- .../ray/api/test/BaseMultiLanguageTest.java | 8 ++--- .../main/java/org/ray/api/test/BaseTest.java | 4 +-- .../ray/api/test/SingleProcessModeTest.java | 13 ++++---- .../java/org/ray/api/test/UniqueIdTest.java | 3 -- streaming/java/pom.xml | 6 ++++ 18 files changed, 81 insertions(+), 72 deletions(-) diff --git a/java/api/src/main/java/org/ray/api/RayActor.java b/java/api/src/main/java/org/ray/api/RayActor.java index 0c1a7bd84..cf22a0b7d 100644 --- a/java/api/src/main/java/org/ray/api/RayActor.java +++ b/java/api/src/main/java/org/ray/api/RayActor.java @@ -1,7 +1,6 @@ package org.ray.api; import org.ray.api.id.ActorId; -import org.ray.api.id.UniqueId; /** * A handle to an actor. diff --git a/java/api/src/main/java/org/ray/api/options/ActorCreationOptions.java b/java/api/src/main/java/org/ray/api/options/ActorCreationOptions.java index de50c0895..d4131eb1b 100644 --- a/java/api/src/main/java/org/ray/api/options/ActorCreationOptions.java +++ b/java/api/src/main/java/org/ray/api/options/ActorCreationOptions.java @@ -22,7 +22,7 @@ public class ActorCreationOptions extends BaseTaskOptions { public final String jvmOptions; private ActorCreationOptions(Map resources, int maxReconstructions, - boolean useDirectCall, String jvmOptions) { + boolean useDirectCall, String jvmOptions) { super(resources); this.maxReconstructions = maxReconstructions; this.useDirectCall = useDirectCall; @@ -52,10 +52,10 @@ public class ActorCreationOptions extends BaseTaskOptions { // Since direct call is not fully supported yet (see issue #5559), // users are not allowed to set the option to true. // TODO (kfstorm): uncomment when direct call is ready. -// public Builder setUseDirectCall(boolean useDirectCall) { -// this.useDirectCall = useDirectCall; -// return this; -// } + // public Builder setUseDirectCall(boolean useDirectCall) { + // this.useDirectCall = useDirectCall; + // return this; + // } public Builder setJvmOptions(String jvmOptions) { this.jvmOptions = jvmOptions; diff --git a/java/checkstyle-suppressions.xml b/java/checkstyle-suppressions.xml index 236088544..4a2abf4a5 100644 --- a/java/checkstyle-suppressions.xml +++ b/java/checkstyle-suppressions.xml @@ -8,6 +8,7 @@ + diff --git a/java/pom.xml b/java/pom.xml index 67f5ffc70..86797e1e7 100644 --- a/java/pom.xml +++ b/java/pom.xml @@ -134,6 +134,12 @@ + + + org.apache.maven.plugins + maven-checkstyle-plugin + + diff --git a/java/runtime/src/main/java/org/ray/runtime/AbstractRayRuntime.java b/java/runtime/src/main/java/org/ray/runtime/AbstractRayRuntime.java index dabb958f8..5ae71302d 100644 --- a/java/runtime/src/main/java/org/ray/runtime/AbstractRayRuntime.java +++ b/java/runtime/src/main/java/org/ray/runtime/AbstractRayRuntime.java @@ -1,12 +1,10 @@ package org.ray.runtime; -import java.util.List; -import java.util.concurrent.Callable; - import com.google.common.base.Preconditions; import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; - +import java.util.List; +import java.util.concurrent.Callable; import org.ray.api.RayActor; import org.ray.api.RayObject; import org.ray.api.RayPyActor; diff --git a/java/runtime/src/main/java/org/ray/runtime/RayMultiWorkerNativeRuntime.java b/java/runtime/src/main/java/org/ray/runtime/RayMultiWorkerNativeRuntime.java index f142cb67c..0357278ff 100644 --- a/java/runtime/src/main/java/org/ray/runtime/RayMultiWorkerNativeRuntime.java +++ b/java/runtime/src/main/java/org/ray/runtime/RayMultiWorkerNativeRuntime.java @@ -1,10 +1,8 @@ package org.ray.runtime; +import com.google.common.base.Preconditions; import java.util.List; import java.util.concurrent.Callable; - -import com.google.common.base.Preconditions; - import org.ray.api.RayActor; import org.ray.api.RayObject; import org.ray.api.RayPyActor; @@ -157,7 +155,7 @@ public class RayMultiWorkerNativeRuntime implements RayRuntime { @Override public RayActor createActor(RayFunc actorFactoryFunc, Object[] args, - ActorCreationOptions options) { + ActorCreationOptions options) { return getCurrentRuntime().createActor(actorFactoryFunc, args, options); } @@ -168,7 +166,7 @@ public class RayMultiWorkerNativeRuntime implements RayRuntime { @Override public RayObject callPy(String moduleName, String functionName, Object[] args, - CallOptions options) { + CallOptions options) { return getCurrentRuntime().callPy(moduleName, functionName, args, options); } @@ -179,7 +177,7 @@ public class RayMultiWorkerNativeRuntime implements RayRuntime { @Override public RayPyActor createPyActor(String moduleName, String className, Object[] args, - ActorCreationOptions options) { + ActorCreationOptions options) { return getCurrentRuntime().createPyActor(moduleName, className, args, options); } @@ -190,7 +188,7 @@ public class RayMultiWorkerNativeRuntime implements RayRuntime { @Override public void setAsyncContext(Object asyncContext) { - currentThreadRuntime.set((RayNativeRuntime)asyncContext); + currentThreadRuntime.set((RayNativeRuntime) asyncContext); } @Override diff --git a/java/runtime/src/main/java/org/ray/runtime/actor/LocalModeRayActor.java b/java/runtime/src/main/java/org/ray/runtime/actor/LocalModeRayActor.java index f8bca58c9..42dd224de 100644 --- a/java/runtime/src/main/java/org/ray/runtime/actor/LocalModeRayActor.java +++ b/java/runtime/src/main/java/org/ray/runtime/actor/LocalModeRayActor.java @@ -8,7 +8,6 @@ import java.util.concurrent.atomic.AtomicReference; import org.ray.api.RayActor; import org.ray.api.id.ActorId; import org.ray.api.id.ObjectId; -import org.ray.api.id.UniqueId; /** * RayActor implementation for local mode. diff --git a/java/runtime/src/main/java/org/ray/runtime/actor/NativeRayActor.java b/java/runtime/src/main/java/org/ray/runtime/actor/NativeRayActor.java index 7c6f79368..b74797e80 100644 --- a/java/runtime/src/main/java/org/ray/runtime/actor/NativeRayActor.java +++ b/java/runtime/src/main/java/org/ray/runtime/actor/NativeRayActor.java @@ -46,7 +46,7 @@ public abstract class NativeRayActor implements RayActor, Externalizable { } public static NativeRayActor create(long nativeCoreWorkerPointer, byte[] actorId, - Language language) { + Language language) { Preconditions.checkState(nativeCoreWorkerPointer != 0); switch (language) { case JAVA: @@ -90,15 +90,17 @@ public abstract class NativeRayActor implements RayActor, Externalizable { language = (Language) in.readObject(); } + @Override protected void finalize() { // TODO(zhijunfu): do we need to free the ActorHandle in core worker? } - private static native boolean nativeIsDirectCallActor(long nativeCoreWorkerPointer, byte[] actorId); + private static native boolean nativeIsDirectCallActor( + long nativeCoreWorkerPointer, byte[] actorId); static native List nativeGetActorCreationTaskFunctionDescriptor( - long nativeCoreWorkerPointer, byte[] actorId); + long nativeCoreWorkerPointer, byte[] actorId); private static native byte[] nativeSerialize(long nativeCoreWorkerPointer, byte[] actorId); diff --git a/java/runtime/src/main/java/org/ray/runtime/functionmanager/FunctionManager.java b/java/runtime/src/main/java/org/ray/runtime/functionmanager/FunctionManager.java index 21f91dcde..733b6d68b 100644 --- a/java/runtime/src/main/java/org/ray/runtime/functionmanager/FunctionManager.java +++ b/java/runtime/src/main/java/org/ray/runtime/functionmanager/FunctionManager.java @@ -63,7 +63,7 @@ public class FunctionManager { * Construct a FunctionManager with the specified job resource path. * * @param jobResourcePath The specified job resource that can store the job's - * resources. + * resources. */ public FunctionManager(String jobResourcePath) { this.jobResourcePath = jobResourcePath; @@ -73,7 +73,7 @@ public class FunctionManager { * Get the RayFunction from a RayFunc instance (a lambda). * * @param jobId current job id. - * @param func The lambda. + * @param func The lambda. * @return A RayFunction object. */ public RayFunction getFunction(JobId jobId, RayFunc func) { @@ -94,12 +94,12 @@ public class FunctionManager { /** * Get the RayFunction from a function descriptor. * - * @param jobId Current job id. + * @param jobId Current job id. * @param functionDescriptor The function descriptor. * @return A RayFunction object. */ public RayFunction getFunction(JobId jobId, - JavaFunctionDescriptor functionDescriptor) { + JavaFunctionDescriptor functionDescriptor) { JobFunctionTable jobFunctionTable = jobFunctionTables.get(jobId); if (jobFunctionTable == null) { synchronized (this) { diff --git a/java/runtime/src/main/java/org/ray/runtime/task/LocalModeTaskSubmitter.java b/java/runtime/src/main/java/org/ray/runtime/task/LocalModeTaskSubmitter.java index 5827e1379..9f8151909 100644 --- a/java/runtime/src/main/java/org/ray/runtime/task/LocalModeTaskSubmitter.java +++ b/java/runtime/src/main/java/org/ray/runtime/task/LocalModeTaskSubmitter.java @@ -14,8 +14,8 @@ import java.util.List; import java.util.Map; import java.util.Random; import java.util.Set; -import java.util.concurrent.*; -import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.stream.Collectors; import org.ray.api.RayActor; import org.ray.api.id.ActorId; @@ -23,9 +23,9 @@ import org.ray.api.id.ObjectId; import org.ray.api.id.TaskId; import org.ray.api.options.ActorCreationOptions; import org.ray.api.options.CallOptions; +import org.ray.runtime.RayDevRuntime; import org.ray.runtime.actor.LocalModeRayActor; import org.ray.runtime.context.LocalModeWorkerContext; -import org.ray.runtime.RayDevRuntime; import org.ray.runtime.functionmanager.FunctionDescriptor; import org.ray.runtime.functionmanager.JavaFunctionDescriptor; import org.ray.runtime.generated.Common.ActorCreationTaskSpec; @@ -34,8 +34,8 @@ import org.ray.runtime.generated.Common.Language; import org.ray.runtime.generated.Common.TaskArg; import org.ray.runtime.generated.Common.TaskSpec; import org.ray.runtime.generated.Common.TaskType; -import org.ray.runtime.object.NativeRayObject; import org.ray.runtime.object.LocalModeObjectStore; +import org.ray.runtime.object.NativeRayObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -63,7 +63,7 @@ public class LocalModeTaskSubmitter implements TaskSubmitter { private final ThreadLocal currentTaskExecutor = new ThreadLocal<>(); public LocalModeTaskSubmitter(RayDevRuntime runtime, LocalModeObjectStore objectStore, - int numberThreads) { + int numberThreads) { this.runtime = runtime; this.objectStore = objectStore; // The thread pool that executes normal tasks in parallel. @@ -149,7 +149,8 @@ public class LocalModeTaskSubmitter implements TaskSubmitter { } private TaskSpec.Builder getTaskSpecBuilder(TaskType taskType, - FunctionDescriptor functionDescriptor, List args) { + FunctionDescriptor functionDescriptor, + List args) { byte[] taskIdBytes = new byte[TaskId.LENGTH]; new Random().nextBytes(taskIdBytes); return TaskSpec.newBuilder() @@ -163,14 +164,14 @@ public class LocalModeTaskSubmitter implements TaskSubmitter { .addAllArgs(args.stream().map(arg -> arg.id != null ? TaskArg.newBuilder() .addObjectIds(ByteString.copyFrom(arg.id.getBytes())).build() : TaskArg.newBuilder().setData(ByteString.copyFrom(arg.value.data)) - .setMetadata(arg.value.metadata != null ? ByteString - .copyFrom(arg.value.metadata) : ByteString.EMPTY).build()) + .setMetadata(arg.value.metadata != null ? ByteString + .copyFrom(arg.value.metadata) : ByteString.EMPTY).build()) .collect(Collectors.toList())); } @Override public List submitTask(FunctionDescriptor functionDescriptor, List args, - int numReturns, CallOptions options) { + int numReturns, CallOptions options) { Preconditions.checkState(numReturns <= 1); TaskSpec taskSpec = getTaskSpecBuilder(TaskType.NORMAL_TASK, functionDescriptor, args) .setNumReturns(numReturns) @@ -181,7 +182,7 @@ public class LocalModeTaskSubmitter implements TaskSubmitter { @Override public RayActor createActor(FunctionDescriptor functionDescriptor, List args, - ActorCreationOptions options) { + ActorCreationOptions options) { ActorId actorId = ActorId.fromRandom(); TaskSpec taskSpec = getTaskSpecBuilder(TaskType.ACTOR_CREATION_TASK, functionDescriptor, args) .setNumReturns(1) @@ -194,7 +195,8 @@ public class LocalModeTaskSubmitter implements TaskSubmitter { } @Override - public List submitActorTask(RayActor actor, FunctionDescriptor functionDescriptor, + public List submitActorTask( + RayActor actor, FunctionDescriptor functionDescriptor, List args, int numReturns, CallOptions options) { Preconditions.checkState(numReturns <= 1); TaskSpec.Builder builder = getTaskSpecBuilder(TaskType.ACTOR_TASK, functionDescriptor, args); @@ -211,7 +213,7 @@ public class LocalModeTaskSubmitter implements TaskSubmitter { .build()) .build(); submitTaskSpec(taskSpec); - if (numReturns == 0) { + if (numReturns == 0) { return ImmutableList.of(); } else { return ImmutableList.of(returnIds.get(0)); @@ -266,7 +268,7 @@ public class LocalModeTaskSubmitter implements TaskSubmitter { // If the task is an actor task or an actor creation task, // put the dummy object in object store, so those tasks which depends on it // can be executed. - putObject = new NativeRayObject(new byte[]{1}, null); + putObject = new NativeRayObject(new byte[] {1}, null); } else { putObject = returnObjects.get(i); } @@ -287,7 +289,8 @@ public class LocalModeTaskSubmitter implements TaskSubmitter { actorExecutorService.submit(runnable); } else if (taskSpec.getType() == TaskType.ACTOR_TASK) { synchronized (actorTaskExecutorServices) { - ExecutorService actorExecutorService = actorTaskExecutorServices.get(getActorId(taskSpec)); + ExecutorService actorExecutorService = + actorTaskExecutorServices.get(getActorId(taskSpec)); actorExecutorService.submit(runnable); } } else { diff --git a/java/runtime/src/main/java/org/ray/runtime/task/NativeTaskSubmitter.java b/java/runtime/src/main/java/org/ray/runtime/task/NativeTaskSubmitter.java index 803161420..18edd39c2 100644 --- a/java/runtime/src/main/java/org/ray/runtime/task/NativeTaskSubmitter.java +++ b/java/runtime/src/main/java/org/ray/runtime/task/NativeTaskSubmitter.java @@ -26,7 +26,7 @@ public class NativeTaskSubmitter implements TaskSubmitter { @Override public List submitTask(FunctionDescriptor functionDescriptor, List args, - int numReturns, CallOptions options) { + int numReturns, CallOptions options) { List returnIds = nativeSubmitTask(nativeCoreWorkerPointer, functionDescriptor, args, numReturns, options); return returnIds.stream().map(ObjectId::new).collect(Collectors.toList()); @@ -34,14 +34,16 @@ public class NativeTaskSubmitter implements TaskSubmitter { @Override public RayActor createActor(FunctionDescriptor functionDescriptor, List args, - ActorCreationOptions options) { + ActorCreationOptions options) { byte[] actorId = nativeCreateActor(nativeCoreWorkerPointer, functionDescriptor, args, options); - return NativeRayActor.create(nativeCoreWorkerPointer, actorId, functionDescriptor.getLanguage()); + return NativeRayActor.create(nativeCoreWorkerPointer, actorId, + functionDescriptor.getLanguage()); } @Override - public List submitActorTask(RayActor actor, FunctionDescriptor functionDescriptor, + public List submitActorTask( + RayActor actor, FunctionDescriptor functionDescriptor, List args, int numReturns, CallOptions options) { Preconditions.checkState(actor instanceof NativeRayActor); List returnIds = nativeSubmitActorTask(nativeCoreWorkerPointer, @@ -50,15 +52,18 @@ public class NativeTaskSubmitter implements TaskSubmitter { return returnIds.stream().map(ObjectId::new).collect(Collectors.toList()); } - private static native List nativeSubmitTask(long nativeCoreWorkerPointer, + private static native List nativeSubmitTask( + long nativeCoreWorkerPointer, FunctionDescriptor functionDescriptor, List args, int numReturns, CallOptions callOptions); - private static native byte[] nativeCreateActor(long nativeCoreWorkerPointer, + private static native byte[] nativeCreateActor( + long nativeCoreWorkerPointer, FunctionDescriptor functionDescriptor, List args, ActorCreationOptions actorCreationOptions); - private static native List nativeSubmitActorTask(long nativeCoreWorkerPointer, + private static native List nativeSubmitActorTask( + long nativeCoreWorkerPointer, byte[] actorId, FunctionDescriptor functionDescriptor, List args, int numReturns, CallOptions callOptions); } diff --git a/java/test/src/main/java/org/ray/api/TestProgressListener.java b/java/test/src/main/java/org/ray/api/TestProgressListener.java index e65acf8df..f1e9ea057 100644 --- a/java/test/src/main/java/org/ray/api/TestProgressListener.java +++ b/java/test/src/main/java/org/ray/api/TestProgressListener.java @@ -9,9 +9,9 @@ import org.testng.ITestResult; public class TestProgressListener implements IInvokedMethodListener, ITestListener { - private String getFullTestName(ITestResult iTestResult) { - return iTestResult.getTestClass().getName() + "." - + iTestResult.getMethod().getMethodName(); + private String getFullTestName(ITestResult testResult) { + return testResult.getTestClass().getName() + "." + + testResult.getMethod().getMethodName(); } private void printInfo(String tag, String content) { diff --git a/java/test/src/main/java/org/ray/api/TestUtils.java b/java/test/src/main/java/org/ray/api/TestUtils.java index 94f3217fd..b724ccbc9 100644 --- a/java/test/src/main/java/org/ray/api/TestUtils.java +++ b/java/test/src/main/java/org/ray/api/TestUtils.java @@ -37,10 +37,6 @@ public class TestUtils { skipTestIfDirectActorCallEnabled(true); } - public static void skipTestIfDirectActorCallDisabled() { - skipTestIfDirectActorCallEnabled(false); - } - private static void skipTestIfDirectActorCallEnabled(boolean enabled) { if (enabled == ActorCreationOptions.DEFAULT_USE_DIRECT_CALL) { throw new SkipException(String.format("This test doesn't work when direct actor call is %s.", @@ -48,6 +44,10 @@ public class TestUtils { } } + public static void skipTestIfDirectActorCallDisabled() { + skipTestIfDirectActorCallEnabled(false); + } + /** * Wait until the given condition is met. * @@ -82,7 +82,7 @@ public class TestUtils { /** * Warm up the cluster to make sure there's at least one idle worker. - * + *

* This is needed before calling `wait`. Because, in Travis CI, starting a new worker * process could be slower than the wait timeout. * TODO(hchen): We should consider supporting always reversing a certain number of diff --git a/java/test/src/main/java/org/ray/api/test/BaseMultiLanguageTest.java b/java/test/src/main/java/org/ray/api/test/BaseMultiLanguageTest.java index 9daaded4a..379005562 100644 --- a/java/test/src/main/java/org/ray/api/test/BaseMultiLanguageTest.java +++ b/java/test/src/main/java/org/ray/api/test/BaseMultiLanguageTest.java @@ -1,5 +1,8 @@ package org.ray.api.test; +import com.google.common.base.Strings; +import com.google.common.collect.ImmutableList; +import com.google.common.collect.ImmutableMap; import java.io.File; import java.lang.ProcessBuilder.Redirect; import java.util.List; @@ -8,11 +11,6 @@ import java.util.Map.Entry; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import java.util.stream.Stream; - -import com.google.common.base.Strings; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.ImmutableMap; - import org.ray.api.Ray; import org.ray.runtime.util.NetworkUtil; import org.slf4j.Logger; diff --git a/java/test/src/main/java/org/ray/api/test/BaseTest.java b/java/test/src/main/java/org/ray/api/test/BaseTest.java index 39d049347..b14344e6c 100644 --- a/java/test/src/main/java/org/ray/api/test/BaseTest.java +++ b/java/test/src/main/java/org/ray/api/test/BaseTest.java @@ -1,11 +1,9 @@ package org.ray.api.test; +import com.google.common.collect.ImmutableList; import java.io.File; import java.lang.reflect.Method; import java.util.List; - -import com.google.common.collect.ImmutableList; - import org.ray.api.Ray; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/java/test/src/main/java/org/ray/api/test/SingleProcessModeTest.java b/java/test/src/main/java/org/ray/api/test/SingleProcessModeTest.java index 4ccca362c..5355b3311 100644 --- a/java/test/src/main/java/org/ray/api/test/SingleProcessModeTest.java +++ b/java/test/src/main/java/org/ray/api/test/SingleProcessModeTest.java @@ -1,5 +1,9 @@ package org.ray.api.test; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; @@ -9,16 +13,11 @@ import org.ray.api.id.ActorId; import org.testng.Assert; import org.testng.annotations.Test; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - public class SingleProcessModeTest extends BaseTest { - private final static int NUM_ACTOR_INSTANCE = 10; + private static final int NUM_ACTOR_INSTANCE = 10; - private final static int TIMES_TO_CALL_PER_ACTOR = 10; + private static final int TIMES_TO_CALL_PER_ACTOR = 10; @RayRemote static class MyActor { diff --git a/java/test/src/main/java/org/ray/api/test/UniqueIdTest.java b/java/test/src/main/java/org/ray/api/test/UniqueIdTest.java index af0af3129..75b305f80 100644 --- a/java/test/src/main/java/org/ray/api/test/UniqueIdTest.java +++ b/java/test/src/main/java/org/ray/api/test/UniqueIdTest.java @@ -3,9 +3,6 @@ package org.ray.api.test; import java.nio.ByteBuffer; import java.util.Arrays; import javax.xml.bind.DatatypeConverter; - -import org.ray.api.id.ObjectId; -import org.ray.api.id.TaskId; import org.ray.api.id.UniqueId; import org.ray.runtime.util.IdUtil; import org.testng.Assert; diff --git a/streaming/java/pom.xml b/streaming/java/pom.xml index 0790163a6..02e222b5a 100644 --- a/streaming/java/pom.xml +++ b/streaming/java/pom.xml @@ -149,6 +149,12 @@ + + + org.apache.maven.plugins + maven-checkstyle-plugin + +