diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessHeartbeatResource.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessHeartbeatResource.java index 7d2ce1a8e6..4d0be8c847 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessHeartbeatResource.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessHeartbeatResource.java @@ -26,15 +26,11 @@ import org.sonatype.siesta.Resource; import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import java.util.UUID; -@Named -@Singleton @Path("/api/v1/process") @Tag(name = "ProcessHeartbeat") public class ProcessHeartbeatResource implements Resource { @@ -46,7 +42,6 @@ public ProcessHeartbeatResource(ProcessQueueDao queueDao) { this.queueDao = queueDao; } - @POST @Path("{id}/ping") @Operation(description = "Process heartbeat", operationId = "pingProcess") diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessKvResource.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessKvResource.java index 8ea1abca40..75a2bc7f31 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessKvResource.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessKvResource.java @@ -31,14 +31,10 @@ import org.sonatype.siesta.Resource; import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import java.util.UUID; -@Named -@Singleton @Path("/api/v1/process") @Tag(name = "Process KV store") public class ProcessKvResource implements Resource { diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessLogResourceV2.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessLogResourceV2.java index 17160e76c4..f11b8a3237 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessLogResourceV2.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessLogResourceV2.java @@ -39,8 +39,6 @@ import org.sonatype.siesta.ValidationErrorsException; import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; @@ -56,8 +54,6 @@ /** * API to work with segmented process logs. */ -@Named -@Singleton @Path("/api/v2/process") @Tag(name = "ProcessLogV2") public class ProcessLogResourceV2 implements Resource { diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessModule.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessModule.java index 014cf6a908..484bff5efe 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessModule.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessModule.java @@ -9,9 +9,9 @@ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - * + * * http://www.apache.org/licenses/LICENSE-2.0 - * + * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -23,6 +23,11 @@ import com.google.inject.Binder; import com.google.inject.Module; import com.walmartlabs.concord.imports.ImportManager; +import com.walmartlabs.concord.server.process.checkpoint.ProcessCheckpointResource; +import com.walmartlabs.concord.server.process.checkpoint.ProcessCheckpointV2Resource; +import com.walmartlabs.concord.server.process.event.ProcessEventResource; +import com.walmartlabs.concord.server.process.form.FormResource; +import com.walmartlabs.concord.server.process.locks.ProcessLocksResource; import com.walmartlabs.concord.server.process.locks.ProcessLocksWatchdog; import com.walmartlabs.concord.server.process.pipelines.processors.ExclusiveGroupProcessor; import com.walmartlabs.concord.server.process.pipelines.processors.policy.*; @@ -40,6 +45,7 @@ import static com.google.inject.Scopes.SINGLETON; import static com.google.inject.multibindings.Multibinder.newSetBinder; +import static com.walmartlabs.concord.server.Utils.bindJaxRsResource; import static com.walmartlabs.concord.server.Utils.bindSingletonScheduledTask; public class ProcessModule implements Module { @@ -77,5 +83,16 @@ public void configure(Binder binder) { newSetBinder(binder, PolicyApplier.class).addBinding().to(ProcessRuntimePolicyApplier.class); newSetBinder(binder, PolicyApplier.class).addBinding().to(ProcessTimeoutPolicyApplier.class); newSetBinder(binder, PolicyApplier.class).addBinding().to(WorkspacePolicyApplier.class); + + bindJaxRsResource(binder, FormResource.class); + bindJaxRsResource(binder, ProcessCheckpointResource.class); + bindJaxRsResource(binder, ProcessCheckpointV2Resource.class); + bindJaxRsResource(binder, ProcessEventResource.class); + bindJaxRsResource(binder, ProcessHeartbeatResource.class); + bindJaxRsResource(binder, ProcessKvResource.class); + bindJaxRsResource(binder, ProcessLocksResource.class); + bindJaxRsResource(binder, ProcessLogResourceV2.class); + bindJaxRsResource(binder, ProcessResource.class); + bindJaxRsResource(binder, ProcessResourceV2.class); } } diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessResource.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessResource.java index 9f830ee941..7f12cfabc6 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessResource.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessResource.java @@ -79,15 +79,16 @@ import org.sonatype.siesta.ValidationErrorsException; import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; import javax.servlet.http.HttpServletRequest; import javax.validation.constraints.NotNull; import javax.validation.constraints.Size; import javax.ws.rs.*; import javax.ws.rs.core.*; import javax.ws.rs.core.Response.Status; -import java.io.*; +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.StandardCopyOption; @@ -98,8 +99,6 @@ import static com.walmartlabs.concord.server.process.state.ProcessStateManager.path; import static com.walmartlabs.concord.server.process.state.ProcessStateManager.zipTo; -@Named -@Singleton @javax.ws.rs.Path("/api/v1/process") @Tag(name = "Process") public class ProcessResource implements Resource { @@ -260,7 +259,6 @@ public StartProcessResponse start(@PathParam("entryPoint") String entryPoint, /** * Starts a new process instance. - * */ @POST @Consumes(MediaType.MULTIPART_FORM_DATA) @@ -478,9 +476,9 @@ public ProcessEntry waitForCompletion(@PathParam("id") UUID instanceId, ProcessStatus s = r.status(); if (s == ProcessStatus.FINISHED || - s == ProcessStatus.FAILED || - s == ProcessStatus.CANCELLED || - s == ProcessStatus.TIMED_OUT) { + s == ProcessStatus.FAILED || + s == ProcessStatus.CANCELLED || + s == ProcessStatus.TIMED_OUT) { return r; } @@ -758,6 +756,7 @@ public Response getLog(@PathParam("id") UUID instanceId, /** * Appends a process' log. + * * @deprecated in favor of the /api/v2/process/{id}/log* endpoints */ @POST @@ -1033,7 +1032,7 @@ private void assertProcessAccess(ProcessEntry pe, String downloadEntity) { } throw new UnauthorizedException("The current user (" + principal.getUsername() + ") doesn't have " + - "the necessary permissions to the download " + downloadEntity + " : " + pe.instanceId()); + "the necessary permissions to the download " + downloadEntity + " : " + pe.instanceId()); } private void assertResourceAccess(ProcessEntry pe, String resource) { @@ -1109,7 +1108,7 @@ private static Optional copyToTmp(InputStream in) { private static RuntimeException syncIsForbidden() { return new ConcordApplicationException("The 'sync' mode is no longer available. " + - "Please use sync=false and poll for the status updates.", Status.BAD_REQUEST); + "Please use sync=false and poll for the status updates.", Status.BAD_REQUEST); } private void assertAttachmentsPolicy(Path tmpDir, ProcessEntry entry) throws IOException { diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessResourceV2.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessResourceV2.java index 4134bbc28f..6bb436327e 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessResourceV2.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/ProcessResourceV2.java @@ -43,31 +43,23 @@ import io.swagger.v3.oas.annotations.enums.ParameterIn; import io.swagger.v3.oas.annotations.extensions.Extension; import io.swagger.v3.oas.annotations.extensions.ExtensionProperty; -import io.swagger.v3.oas.annotations.media.Content; import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.parameters.RequestBody; import io.swagger.v3.oas.annotations.tags.Tag; -import org.jboss.resteasy.plugins.providers.multipart.MultipartInput; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.sonatype.siesta.Resource; import org.sonatype.siesta.ValidationErrorsException; import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; import javax.ws.rs.*; import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; import javax.ws.rs.core.Response.Status; import javax.ws.rs.core.UriInfo; import java.util.*; import static com.walmartlabs.concord.server.Utils.unwrap; -@Named -@Singleton @Path("/api/v2/process") @Tag(name = "ProcessV2") public class ProcessResourceV2 implements Resource { diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/checkpoint/ProcessCheckpointResource.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/checkpoint/ProcessCheckpointResource.java index 2d45878fb1..f1ed6ff698 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/checkpoint/ProcessCheckpointResource.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/checkpoint/ProcessCheckpointResource.java @@ -23,7 +23,6 @@ import com.walmartlabs.concord.common.IOUtils; import com.walmartlabs.concord.common.TemporaryPath; import com.walmartlabs.concord.server.MultipartUtils; -import com.walmartlabs.concord.server.org.secret.SecretResource; import com.walmartlabs.concord.server.process.ProcessEntry; import com.walmartlabs.concord.server.process.ProcessEntry.ProcessCheckpointEntry; import com.walmartlabs.concord.server.process.ProcessManager; @@ -45,8 +44,6 @@ import org.sonatype.siesta.ValidationErrorsException; import javax.inject.Inject; -import javax.inject.Named; -import javax.inject.Singleton; import javax.validation.Valid; import javax.ws.rs.*; import javax.ws.rs.core.MediaType; @@ -58,8 +55,6 @@ import java.util.List; import java.util.UUID; -@Named -@Singleton @Path("/api/v1/process") @Tag(name = "Checkpoint") public class ProcessCheckpointResource implements Resource { diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/checkpoint/ProcessCheckpointV2Resource.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/checkpoint/ProcessCheckpointV2Resource.java index 7289656e3e..ab2005f0a4 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/checkpoint/ProcessCheckpointV2Resource.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/checkpoint/ProcessCheckpointV2Resource.java @@ -39,8 +39,6 @@ import javax.ws.rs.core.MediaType; import java.util.UUID; -@Named -@Singleton @Path("/api/v2/process") @Tag(name = "CheckpointV2") public class ProcessCheckpointV2Resource implements Resource { diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/event/ProcessEventResource.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/event/ProcessEventResource.java index 2e49c69c0f..a788a455b1 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/event/ProcessEventResource.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/event/ProcessEventResource.java @@ -49,8 +49,6 @@ import static com.walmartlabs.concord.server.Utils.unwrap; -@Named -@Singleton @Path("/api/v1/process") @Tag(name = "Process Events") public class ProcessEventResource implements Resource { diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/form/FormResource.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/form/FormResource.java index f885e810b6..124eac37ef 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/form/FormResource.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/form/FormResource.java @@ -42,8 +42,6 @@ import static com.walmartlabs.concord.server.process.state.ProcessStateManager.path; -@Named -@Singleton @Path("/api/v1/process") @Tag(name = "Process Forms") public class FormResource implements Resource { diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/process/locks/ProcessLocksResource.java b/server/impl/src/main/java/com/walmartlabs/concord/server/process/locks/ProcessLocksResource.java index d25ea20733..f08b22eaaa 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/process/locks/ProcessLocksResource.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/process/locks/ProcessLocksResource.java @@ -39,8 +39,6 @@ import javax.ws.rs.core.Response; import java.util.UUID; -@Named -@Singleton @Path("/api/v1/process") @Tag(name = "Process Locks") public class ProcessLocksResource implements Resource {