diff --git a/build-image-coding.sh b/build-image-coding.sh new file mode 100644 index 00000000..bc8b02ae --- /dev/null +++ b/build-image-coding.sh @@ -0,0 +1,45 @@ +#!/usr/bin/env bash +set -euo pipefail +export DOCKER_BUILDKIT=1 + +DOCKERHUB_USER="${DOCKERHUB_USER:-yunomix2834}" +IMAGE_TAG="${IMAGE_TAG:-$(date +%Y%m%d.%H%M%S)}" + +# Xác định DOCKER_GID an toàn +if [[ "$OSTYPE" == "darwin"* ]]; then + DOCKER_GID=999 +elif [ -S /var/run/docker.sock ]; then + DOCKER_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo 999) +else + DOCKER_GID=999 +fi + +login() { + [ -n "$DOCKERHUB_TOKEN" ] && echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USER" --password-stdin +} + +build_push_java() { + local module=$1 + local build_args=("--build-arg" "MODULE=$module") + + if [[ "$module" == "coding-service" ]]; then + build_args+=( + "--build-arg" "DOCKER_HOST_GID=${DOCKER_GID}" + ) + fi + + docker buildx build \ + -f docker/java-service-coding.Dockerfile \ + "${build_args[@]}" \ + -t "$DOCKERHUB_USER/codecampus-$module:$IMAGE_TAG" \ + --push . +} + +main() { + login + echo "Building with DOCKER_GID=${DOCKER_GID}" + + build_push_java coding-service +} + +main "$@" \ No newline at end of file diff --git a/build-image.sh b/build-image.sh index e6158273..7a7c7d98 100644 --- a/build-image.sh +++ b/build-image.sh @@ -5,15 +5,6 @@ export DOCKER_BUILDKIT=1 DOCKERHUB_USER="${DOCKERHUB_USER:-yunomix2834}" IMAGE_TAG="${IMAGE_TAG:-$(date +%Y%m%d.%H%M%S)}" -# Xác định DOCKER_GID an toàn -if [[ "$OSTYPE" == "darwin"* ]]; then - DOCKER_GID=999 -elif [ -S /var/run/docker.sock ]; then - DOCKER_GID=$(stat -c '%g' /var/run/docker.sock 2>/dev/null || echo 999) -else - DOCKER_GID=999 -fi - login() { [ -n "$DOCKERHUB_TOKEN" ] && echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USER" --password-stdin } @@ -22,12 +13,6 @@ build_push_java() { local module=$1 local build_args=("--build-arg" "MODULE=$module") - if [[ "$module" == "coding-service" ]]; then - build_args+=( - "--build-arg" "DOCKER_HOST_GID=${DOCKER_GID}" - ) - fi - docker buildx build \ -f docker/java-service.Dockerfile \ "${build_args[@]}" \ @@ -39,7 +24,7 @@ main() { login echo "Building with DOCKER_GID=${DOCKER_GID}" - for svc in search-service profile-service identity-service; do + for svc in search-service; do echo "Building $svc..." build_push_java "$svc" done diff --git a/build-service.sh b/build-service.sh deleted file mode 100644 index 013ef4fc..00000000 --- a/build-service.sh +++ /dev/null @@ -1,38 +0,0 @@ -#!/usr/bin/env bash -set -euo pipefail -export DOCKER_BUILDKIT=1 - -DOCKERHUB_USER="${DOCKERHUB_USER:-yunomix2834}" -IMAGE_TAG="${IMAGE_TAG:-$(date +%Y%m%d.%H%M%S)}" - -login() { - echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USER" --password-stdin -} - -build_push_java() { - local module=$1 - docker buildx build \ - -f docker/java-service.Dockerfile \ - --build-arg MODULE="$module" \ - -t "$DOCKERHUB_USER/codecampus-$module:$IMAGE_TAG" \ - --push . -} - -build_push_file_service() { - docker buildx build \ - -f docker/file-service.Dockerfile \ - -t "$DOCKERHUB_USER/codecampus-file-service:$IMAGE_TAG" \ - --push . -} - -main() { - login -# for svc in submission-service quiz-service coding-service profile-service -# do -# build_push_java "$svc" -# done - build_push_java "coding-service" -# build_push_file_service -} - -main "$@" diff --git a/coding-service/src/main/java/com/codecampus/coding/service/CodeJudgeService.java b/coding-service/src/main/java/com/codecampus/coding/service/CodeJudgeService.java index 086bef4b..8a63f91b 100644 --- a/coding-service/src/main/java/com/codecampus/coding/service/CodeJudgeService.java +++ b/coding-service/src/main/java/com/codecampus/coding/service/CodeJudgeService.java @@ -27,13 +27,11 @@ import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.attribute.PosixFilePermission; import java.nio.file.attribute.PosixFilePermissions; import java.time.Instant; import java.util.ArrayList; import java.util.Comparator; import java.util.List; -import java.util.Set; import java.util.stream.Stream; @Service @@ -56,12 +54,13 @@ private static Path createWorkDir() throws IOException { // Đảm bảo thư mục RUNNER_ROOT tồn tại và có quyền if (!Files.exists(RUNNER_ROOT)) { Files.createDirectories(RUNNER_ROOT); - Set rootPerms = - PosixFilePermissions.fromString("rwxrwxrwx"); - Files.setPosixFilePermissions(RUNNER_ROOT, rootPerms); + Files.setPosixFilePermissions( + RUNNER_ROOT, PosixFilePermissions.fromString("rwxrwxrwx")); } - Path workDir = Files.createTempDirectory(RUNNER_ROOT, "pg_"); + Files.setPosixFilePermissions( + workDir, PosixFilePermissions.fromString( + "rwxrwxrwx")); return workDir; } @@ -82,7 +81,12 @@ public SubmitCodeResponse judgeCodeSubmission( .build(); codeSubmissionRepository.saveAndFlush(codeSubmission); + final int memoryMbLimit = codingExercise.getMemoryLimit() > 0 ? + codingExercise.getMemoryLimit() : 256; + final float cpusLimit = 0.5f; + int passedCount = 0; + int peakMemoryKb = 0; List testCaseResultSyncDtoList = new ArrayList<>(); @@ -95,33 +99,23 @@ public SubmitCodeResponse judgeCodeSubmission( request.getLanguage(), request.getSourceCode(), workDir); - } catch (InterruptedException | IOException e) { - // compile failure từ DockerSandboxService.exec → log rồi rethrow - safeDeleteDir(workDir); - throw new RuntimeException(e); - } finally { - safeDeleteDir(workDir); - } - - /* ====== Default limit khi client không set ====== */ - int memoryMb = request.getMemoryMb() > 0 ? request.getMemoryMb() : 256; - float cpus = request.getCpus() > 0 ? request.getCpus() : 0.5f; - try { for (TestCase testCase : codingExercise.getTestCases()) { CodeResult codeResult = dockerSandboxService.runTest( bin, testCase, - memoryMb, - cpus); + memoryMbLimit, + cpusLimit); if (codeResult.isPassed()) { passedCount++; } + peakMemoryKb = Math.max(peakMemoryKb, codeResult.getMemoryKb()); CodeSubmissionResult codeSubmissionResult = CodeSubmissionResult.builder() - .submission(codeSubmission).testCase(testCase) + .submission(codeSubmission) + .testCase(testCase) .passed(codeResult.isPassed()) .runtimeMs(codeResult.getRuntimeMs()) .memoryKb(codeResult.getMemoryKb()) @@ -144,7 +138,8 @@ public SubmitCodeResponse judgeCodeSubmission( codeResult.getError()) .build()); } - + } catch (InterruptedException | IOException e) { + throw new RuntimeException(e); } finally { safeDeleteDir(workDir); } @@ -174,6 +169,9 @@ public SubmitCodeResponse judgeCodeSubmission( .setTimeTakenSeconds( request.getTimeTakenSeconds()) .addAllResults(testCaseResultSyncDtoList) + .setPeakMemoryKb(peakMemoryKb) + .setCpus(cpusLimit) + .setMemoryMb(memoryMbLimit) .build()) .build()); @@ -193,6 +191,9 @@ public SubmitCodeResponse judgeCodeSubmission( .setErrorMessage(r.getErrorMessage()) .build()) .toList()) + .setMemoryMb(memoryMbLimit) + .setCpus(cpusLimit) + .setPeakMemoryKb(peakMemoryKb) .build(); } diff --git a/coding-service/src/main/java/com/codecampus/coding/service/DockerSandboxService.java b/coding-service/src/main/java/com/codecampus/coding/service/DockerSandboxService.java index de2c5932..e99400b0 100644 --- a/coding-service/src/main/java/com/codecampus/coding/service/DockerSandboxService.java +++ b/coding-service/src/main/java/com/codecampus/coding/service/DockerSandboxService.java @@ -14,6 +14,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStreamWriter; +import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.attribute.PosixFilePermission; @@ -43,14 +44,12 @@ private static Path createWorkDir() throws IOException { // Đảm bảo thư mục RUNNER_ROOT tồn tại và có quyền if (!Files.exists(RUNNER_ROOT)) { Files.createDirectories(RUNNER_ROOT); + Files.setPosixFilePermissions( + RUNNER_ROOT, PosixFilePermissions.fromString("rwxrwxrwx")); } - - // Tạo thư mục work với quyền 777 Path workDir = Files.createTempDirectory(RUNNER_ROOT, "pg_"); - Set perms = - PosixFilePermissions.fromString("rwxrwxrwx"); - Files.setPosixFilePermissions(workDir, perms); - + Files.setPosixFilePermissions( + workDir, PosixFilePermissions.fromString("rwxrwxrwx")); return workDir; } @@ -89,17 +88,18 @@ public CompiledArtifact compile( // 3. Tên nhị phân / jar random để tránh trùng String binName = "bin_" + UUID.randomUUID(); - String inPath = DockerHelper.inVolumePath(workDir); + final boolean inDocker = !DockerHelper.selfContainer().isBlank(); + final String inPath = inDocker + ? DockerHelper.inVolumePath(workDir) + : workDir.toString(); - List runBase = DockerHelper.selfContainer().isBlank() + List runBase = inDocker ? DockerHelper.cmd("run", "--rm", - "-v", RUNNER_VOLUME + ":/work", - "-w", inPath, - SANDBOX_IMAGE) - : DockerHelper.cmd("run", "--rm", "--volumes-from", DockerHelper.selfContainer(), - "-w", inPath, - SANDBOX_IMAGE); + "-w", inPath, SANDBOX_IMAGE) + : DockerHelper.cmd("run", "--rm", + "-v", RUNNER_ROOT + ":" + RUNNER_ROOT, + "-w", inPath, SANDBOX_IMAGE); ProcessBuilder compilePb = switch (language) { case "cpp" -> new ProcessBuilder( @@ -130,16 +130,19 @@ public CodeResult runTest( int memoryMb, float cpus) { String container = "judge_" + UUID.randomUUID(); - String inPath = DockerHelper.inVolumePath(compiledArtifact.workDir()); + boolean inDocker = !DockerHelper.selfContainer().isBlank(); + String inPath = inDocker + ? DockerHelper.inVolumePath(compiledArtifact.workDir()) + : compiledArtifact.workDir().toString(); try { - /* 1. khởi tạo container rỗng, giới hạn RAM + CPU, network none */ - List startArgs = DockerHelper.selfContainer().isBlank() + // 1) khởi tạo container rỗng, giới hạn RAM + CPU, network none + List startArgs = inDocker ? DockerHelper.cmd("run", "-dit", "--memory=%sm".formatted(memoryMb), "--cpus=" + cpus, "--network", "none", - "-v", RUNNER_VOLUME + ":/work", + "--volumes-from", DockerHelper.selfContainer(), "-w", inPath, "--name", container, SANDBOX_IMAGE, "bash") @@ -147,7 +150,7 @@ public CodeResult runTest( "--memory=%sm".formatted(memoryMb), "--cpus=" + cpus, "--network", "none", - "--volumes-from", DockerHelper.selfContainer(), + "-v", inPath + ":" + inPath, "-w", inPath, "--name", container, SANDBOX_IMAGE, "bash"); @@ -161,7 +164,7 @@ public CodeResult runTest( default -> throw new IllegalStateException(); }; - /* Chạy */ + // 2) run + feed input long startTime = System.nanoTime(); Process run = new ProcessBuilder( Stream.concat( @@ -180,17 +183,28 @@ public CodeResult runTest( int exitCode = run.waitFor(); long endTime = System.nanoTime(); + // 3) đo memory trước khi rm + int memoryKb = 0; + try { + memoryKb = readContainerMemKb(container); + } catch (Exception e) { + log.warn("Read memory usage failed: {}", e.toString()); + } + boolean passed = exitCode == 0 && equal(out, testCase.getExpectedOutput()); return new CodeResult( passed, (int) ((endTime - startTime) / 1_000_000), - 0, out.trim(), err.trim()); + memoryKb, out.trim(), err.trim()); } catch (Exception ex) { log.error("Sandbox error", ex); - return new CodeResult(false, 0, 0, "", ex.getMessage()); + return new CodeResult( + false, + 0, 0, + "", ex.getMessage()); } finally { silent(DockerHelper.cmd("rm", "-f", container) .toArray(new String[0])); @@ -210,6 +224,20 @@ void exec(ProcessBuilder processBuilder) } } + int readContainerMemKb(String container) + throws IOException, InterruptedException { + Process process = new ProcessBuilder( + DockerHelper.cmd("exec", container, "bash", "-c", + "cat /sys/fs/cgroup/memory.current || cat /sys/fs/cgroup/memory/memory.usage_in_bytes")) + .start(); + + String output = new String(process.getInputStream().readAllBytes(), + StandardCharsets.UTF_8).trim(); + process.waitFor(); + long bytes = Long.parseLong(output); + return (int) (bytes / 1024); + } + String read(InputStream inputStream) throws IOException { return new String(inputStream.readAllBytes()); diff --git a/common-events/target/common-events-0.0.1-SNAPSHOT.jar.original b/common-events/target/common-events-0.0.1-SNAPSHOT.jar.original deleted file mode 100644 index ef34ac61..00000000 Binary files a/common-events/target/common-events-0.0.1-SNAPSHOT.jar.original and /dev/null differ diff --git a/common-events/target/maven-archiver/pom.properties b/common-events/target/maven-archiver/pom.properties deleted file mode 100644 index 13e8308d..00000000 --- a/common-events/target/maven-archiver/pom.properties +++ /dev/null @@ -1,3 +0,0 @@ -artifactId=common-events -groupId=com.codecampus -version=0.0.1-SNAPSHOT diff --git a/common-events/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/common-events/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index 52a08301..00000000 --- a/common-events/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1,8 +0,0 @@ -events\exercise\ExerciseEvent$ExerciseEventBuilder.class -events\exercise\data\ExercisePayload$ExercisePayloadBuilder.class -events\exercise\ExerciseEvent.class -events\notification\NotificationEvent$NotificationEventBuilder.class -events\notification\NotificationEvent.class -com\codecampus\Main.class -events\exercise\data\ExercisePayload.class -events\exercise\ExerciseEvent$Type.class diff --git a/common-events/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/common-events/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index de653cd2..00000000 --- a/common-events/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,4 +0,0 @@ -F:\fileCode\capstoneProject\backend\common-events\src\main\java\com\codecampus\Main.java -F:\fileCode\capstoneProject\backend\common-events\src\main\java\events\exercise\data\ExercisePayload.java -F:\fileCode\capstoneProject\backend\common-events\src\main\java\events\exercise\ExerciseEvent.java -F:\fileCode\capstoneProject\backend\common-events\src\main\java\events\notification\NotificationEvent.java diff --git a/common-events/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/common-events/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst deleted file mode 100644 index e69de29b..00000000 diff --git a/common-events/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/common-events/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst deleted file mode 100644 index e69de29b..00000000 diff --git a/common-protos/target/classes/coding.proto b/common-protos/target/classes/coding.proto index 108bdaf8..ecd5b614 100644 --- a/common-protos/target/classes/coding.proto +++ b/common-protos/target/classes/coding.proto @@ -54,9 +54,7 @@ message SubmitCodeRequest { string studentId = 2; string language = 3; string sourceCode = 4; - int32 memoryMb = 5; - float cpus = 6; - int32 timeTakenSeconds = 7; + int32 timeTakenSeconds = 5; } message TestCaseResultDto { @@ -74,6 +72,9 @@ message SubmitCodeResponse { int32 totalPoints = 3; bool passed = 4; repeated TestCaseResultDto results = 5; + int32 memoryMb = 6; + float cpus = 7; + int32 peakMemoryKb = 8; } message LoadCodingRequest { diff --git a/common-protos/target/classes/submission_sync.proto b/common-protos/target/classes/submission_sync.proto index 8c59a099..b9a55863 100644 --- a/common-protos/target/classes/submission_sync.proto +++ b/common-protos/target/classes/submission_sync.proto @@ -35,6 +35,9 @@ message CodeSubmissionDto { google.protobuf.Timestamp submittedAt = 8; int32 timeTakenSeconds = 9; repeated TestCaseResultSyncDto results = 10; + int32 peakMemoryKb = 11; + float cpus = 12; + int32 memoryMb = 13; } message TestCaseResultSyncDto { diff --git a/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/CodingProto.java b/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/CodingProto.java index 0ce24ca7..ed6e6e9e 100644 --- a/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/CodingProto.java +++ b/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/CodingProto.java @@ -136,60 +136,60 @@ public static void registerAllExtensions( " \001(\t\022\016\n\006sample\030\005 \001(\010\022\014\n\004note\030\006 \001(\t\"\037\n\021So" + "ftDeleteRequest\022\n\n\002id\030\001 \001(\t\"C\n\031SoftDelet" + "eTestCaseRequest\022\022\n\nexerciseId\030\001 \001(\t\022\022\n\n" + - "testCaseId\030\002 \001(\t\"\232\001\n\021SubmitCodeRequest\022\022" + - "\n\nexerciseId\030\001 \001(\t\022\021\n\tstudentId\030\002 \001(\t\022\020\n" + - "\010language\030\003 \001(\t\022\022\n\nsourceCode\030\004 \001(\t\022\020\n\010m" + - "emoryMb\030\005 \001(\005\022\014\n\004cpus\030\006 \001(\002\022\030\n\020timeTaken" + - "Seconds\030\007 \001(\005\"\202\001\n\021TestCaseResultDto\022\022\n\nt" + - "estCaseId\030\001 \001(\t\022\016\n\006passed\030\002 \001(\010\022\021\n\trunti" + - "meMs\030\003 \001(\005\022\020\n\010memoryKb\030\004 \001(\005\022\016\n\006output\030\005" + - " \001(\t\022\024\n\014errorMessage\030\006 \001(\t\"\212\001\n\022SubmitCod" + - "eResponse\022\024\n\014submissionId\030\001 \001(\t\022\r\n\005score" + - "\030\002 \001(\005\022\023\n\013totalPoints\030\003 \001(\005\022\016\n\006passed\030\004 " + - "\001(\010\022*\n\007results\030\005 \003(\0132\031.coding.TestCaseRe" + - "sultDto\":\n\021LoadCodingRequest\022\022\n\nexercise" + - "Id\030\001 \001(\t\022\021\n\tstudentId\030\002 \001(\t\"\204\002\n\030CodingDe" + - "tailLoadResponse\022\r\n\005topic\030\001 \001(\t\022\030\n\020allow" + - "edLanguages\030\002 \003(\t\022\r\n\005input\030\003 \001(\t\022\016\n\006outp" + - "ut\030\004 \001(\t\022\026\n\016constraintText\030\005 \001(\t\022\021\n\ttime" + - "Limit\030\006 \001(\005\022\023\n\013memoryLimit\030\007 \001(\005\022\026\n\016maxS" + - "ubmissions\030\010 \001(\005\022\024\n\014codeTemplate\030\t \001(\t\0222" + - "\n\ttestcases\030\n \003(\0132\037.coding.TestCaseDtoLo" + - "adResponse\"s\n\022LoadCodingResponse\022+\n\010exer" + - "cise\030\001 \001(\0132\031.coding.CodingExerciseDto\0220\n" + - "\006detail\030\002 \001(\0132 .coding.CodingDetailLoadR" + - "esponse\"j\n\027TestCaseDtoLoadResponse\022\n\n\002id" + - "\030\001 \001(\t\022\r\n\005input\030\002 \001(\t\022\026\n\016expectedOutput\030" + - "\003 \001(\t\022\016\n\006sample\030\004 \001(\010\022\014\n\004note\030\005 \001(\t\"\200\001\n\r" + - "AssignmentDto\022\n\n\002id\030\001 \001(\t\022\022\n\nexerciseId\030" + - "\002 \001(\t\022\021\n\tstudentId\030\003 \001(\t\022)\n\005dueAt\030\004 \001(\0132" + - "\032.google.protobuf.Timestamp\022\021\n\tcompleted" + - "\030\005 \001(\010\"D\n\027UpsertAssignmentRequest\022)\n\nass" + - "ignment\030\001 \001(\0132\025.coding.AssignmentDto\"J\n\033" + - "CreateCodingExerciseRequest\022+\n\010exercise\030" + - "\001 \001(\0132\031.coding.CodingExerciseDto\"[\n\026AddC" + - "odingDetailRequest\022\022\n\nexerciseId\030\001 \001(\t\022-" + - "\n\014codingDetail\030\002 \001(\0132\027.coding.CodingDeta" + - "ilDto\"O\n\022AddTestCaseRequest\022\022\n\nexerciseI" + - "d\030\001 \001(\t\022%\n\010testCase\030\002 \001(\0132\023.coding.TestC" + - "aseDto2\335\003\n\021CodingSyncService\022S\n\024CreateCo" + - "dingExercise\022#.coding.CreateCodingExerci" + - "seRequest\032\026.google.protobuf.Empty\022I\n\017Add" + - "CodingDetail\022\036.coding.AddCodingDetailReq" + - "uest\032\026.google.protobuf.Empty\022A\n\013AddTestC" + - "ase\022\032.coding.AddTestCaseRequest\032\026.google" + - ".protobuf.Empty\022G\n\022SoftDeleteExercise\022\031." + - "coding.SoftDeleteRequest\032\026.google.protob" + - "uf.Empty\022O\n\022SoftDeleteTestCase\022!.coding." + - "SoftDeleteTestCaseRequest\032\026.google.proto" + - "buf.Empty\022K\n\020UpsertAssignment\022\037.coding.U" + - "psertAssignmentRequest\032\026.google.protobuf" + - ".Empty2\235\001\n\021CodingPlayService\022C\n\nSubmitCo" + - "de\022\031.coding.SubmitCodeRequest\032\032.coding.S" + - "ubmitCodeResponse\022C\n\nLoadCoding\022\031.coding" + - ".LoadCodingRequest\032\032.coding.LoadCodingRe" + - "sponseB+\n\032com.codecampus.coding.grpcB\013Co" + - "dingProtoP\001b\006proto3" + "testCaseId\030\002 \001(\t\"z\n\021SubmitCodeRequest\022\022\n" + + "\nexerciseId\030\001 \001(\t\022\021\n\tstudentId\030\002 \001(\t\022\020\n\010" + + "language\030\003 \001(\t\022\022\n\nsourceCode\030\004 \001(\t\022\030\n\020ti" + + "meTakenSeconds\030\005 \001(\005\"\202\001\n\021TestCaseResultD" + + "to\022\022\n\ntestCaseId\030\001 \001(\t\022\016\n\006passed\030\002 \001(\010\022\021" + + "\n\truntimeMs\030\003 \001(\005\022\020\n\010memoryKb\030\004 \001(\005\022\016\n\006o" + + "utput\030\005 \001(\t\022\024\n\014errorMessage\030\006 \001(\t\"\300\001\n\022Su" + + "bmitCodeResponse\022\024\n\014submissionId\030\001 \001(\t\022\r" + + "\n\005score\030\002 \001(\005\022\023\n\013totalPoints\030\003 \001(\005\022\016\n\006pa" + + "ssed\030\004 \001(\010\022*\n\007results\030\005 \003(\0132\031.coding.Tes" + + "tCaseResultDto\022\020\n\010memoryMb\030\006 \001(\005\022\014\n\004cpus" + + "\030\007 \001(\002\022\024\n\014peakMemoryKb\030\010 \001(\005\":\n\021LoadCodi" + + "ngRequest\022\022\n\nexerciseId\030\001 \001(\t\022\021\n\tstudent" + + "Id\030\002 \001(\t\"\204\002\n\030CodingDetailLoadResponse\022\r\n" + + "\005topic\030\001 \001(\t\022\030\n\020allowedLanguages\030\002 \003(\t\022\r" + + "\n\005input\030\003 \001(\t\022\016\n\006output\030\004 \001(\t\022\026\n\016constra" + + "intText\030\005 \001(\t\022\021\n\ttimeLimit\030\006 \001(\005\022\023\n\013memo" + + "ryLimit\030\007 \001(\005\022\026\n\016maxSubmissions\030\010 \001(\005\022\024\n" + + "\014codeTemplate\030\t \001(\t\0222\n\ttestcases\030\n \003(\0132\037" + + ".coding.TestCaseDtoLoadResponse\"s\n\022LoadC" + + "odingResponse\022+\n\010exercise\030\001 \001(\0132\031.coding" + + ".CodingExerciseDto\0220\n\006detail\030\002 \001(\0132 .cod" + + "ing.CodingDetailLoadResponse\"j\n\027TestCase" + + "DtoLoadResponse\022\n\n\002id\030\001 \001(\t\022\r\n\005input\030\002 \001" + + "(\t\022\026\n\016expectedOutput\030\003 \001(\t\022\016\n\006sample\030\004 \001" + + "(\010\022\014\n\004note\030\005 \001(\t\"\200\001\n\rAssignmentDto\022\n\n\002id" + + "\030\001 \001(\t\022\022\n\nexerciseId\030\002 \001(\t\022\021\n\tstudentId\030" + + "\003 \001(\t\022)\n\005dueAt\030\004 \001(\0132\032.google.protobuf.T" + + "imestamp\022\021\n\tcompleted\030\005 \001(\010\"D\n\027UpsertAss" + + "ignmentRequest\022)\n\nassignment\030\001 \001(\0132\025.cod" + + "ing.AssignmentDto\"J\n\033CreateCodingExercis" + + "eRequest\022+\n\010exercise\030\001 \001(\0132\031.coding.Codi" + + "ngExerciseDto\"[\n\026AddCodingDetailRequest\022" + + "\022\n\nexerciseId\030\001 \001(\t\022-\n\014codingDetail\030\002 \001(" + + "\0132\027.coding.CodingDetailDto\"O\n\022AddTestCas" + + "eRequest\022\022\n\nexerciseId\030\001 \001(\t\022%\n\010testCase" + + "\030\002 \001(\0132\023.coding.TestCaseDto2\335\003\n\021CodingSy" + + "ncService\022S\n\024CreateCodingExercise\022#.codi" + + "ng.CreateCodingExerciseRequest\032\026.google." + + "protobuf.Empty\022I\n\017AddCodingDetail\022\036.codi" + + "ng.AddCodingDetailRequest\032\026.google.proto" + + "buf.Empty\022A\n\013AddTestCase\022\032.coding.AddTes" + + "tCaseRequest\032\026.google.protobuf.Empty\022G\n\022" + + "SoftDeleteExercise\022\031.coding.SoftDeleteRe" + + "quest\032\026.google.protobuf.Empty\022O\n\022SoftDel" + + "eteTestCase\022!.coding.SoftDeleteTestCaseR" + + "equest\032\026.google.protobuf.Empty\022K\n\020Upsert" + + "Assignment\022\037.coding.UpsertAssignmentRequ" + + "est\032\026.google.protobuf.Empty2\235\001\n\021CodingPl" + + "ayService\022C\n\nSubmitCode\022\031.coding.SubmitC" + + "odeRequest\032\032.coding.SubmitCodeResponse\022C" + + "\n\nLoadCoding\022\031.coding.LoadCodingRequest\032" + + "\032.coding.LoadCodingResponseB+\n\032com.codec" + + "ampus.coding.grpcB\013CodingProtoP\001b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -232,7 +232,7 @@ public static void registerAllExtensions( internal_static_coding_SubmitCodeRequest_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_coding_SubmitCodeRequest_descriptor, - new java.lang.String[] { "ExerciseId", "StudentId", "Language", "SourceCode", "MemoryMb", "Cpus", "TimeTakenSeconds", }); + new java.lang.String[] { "ExerciseId", "StudentId", "Language", "SourceCode", "TimeTakenSeconds", }); internal_static_coding_TestCaseResultDto_descriptor = getDescriptor().getMessageTypes().get(6); internal_static_coding_TestCaseResultDto_fieldAccessorTable = new @@ -244,7 +244,7 @@ public static void registerAllExtensions( internal_static_coding_SubmitCodeResponse_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_coding_SubmitCodeResponse_descriptor, - new java.lang.String[] { "SubmissionId", "Score", "TotalPoints", "Passed", "Results", }); + new java.lang.String[] { "SubmissionId", "Score", "TotalPoints", "Passed", "Results", "MemoryMb", "Cpus", "PeakMemoryKb", }); internal_static_coding_LoadCodingRequest_descriptor = getDescriptor().getMessageTypes().get(8); internal_static_coding_LoadCodingRequest_fieldAccessorTable = new diff --git a/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeRequest.java b/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeRequest.java index ba723e6b..d3002394 100644 --- a/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeRequest.java +++ b/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeRequest.java @@ -202,32 +202,10 @@ public java.lang.String getSourceCode() { } } - public static final int MEMORYMB_FIELD_NUMBER = 5; - private int memoryMb_ = 0; - /** - * int32 memoryMb = 5; - * @return The memoryMb. - */ - @java.lang.Override - public int getMemoryMb() { - return memoryMb_; - } - - public static final int CPUS_FIELD_NUMBER = 6; - private float cpus_ = 0F; - /** - * float cpus = 6; - * @return The cpus. - */ - @java.lang.Override - public float getCpus() { - return cpus_; - } - - public static final int TIMETAKENSECONDS_FIELD_NUMBER = 7; + public static final int TIMETAKENSECONDS_FIELD_NUMBER = 5; private int timeTakenSeconds_ = 0; /** - * int32 timeTakenSeconds = 7; + * int32 timeTakenSeconds = 5; * @return The timeTakenSeconds. */ @java.lang.Override @@ -261,14 +239,8 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sourceCode_)) { com.google.protobuf.GeneratedMessage.writeString(output, 4, sourceCode_); } - if (memoryMb_ != 0) { - output.writeInt32(5, memoryMb_); - } - if (java.lang.Float.floatToRawIntBits(cpus_) != 0) { - output.writeFloat(6, cpus_); - } if (timeTakenSeconds_ != 0) { - output.writeInt32(7, timeTakenSeconds_); + output.writeInt32(5, timeTakenSeconds_); } getUnknownFields().writeTo(output); } @@ -291,17 +263,9 @@ public int getSerializedSize() { if (!com.google.protobuf.GeneratedMessage.isStringEmpty(sourceCode_)) { size += com.google.protobuf.GeneratedMessage.computeStringSize(4, sourceCode_); } - if (memoryMb_ != 0) { - size += com.google.protobuf.CodedOutputStream - .computeInt32Size(5, memoryMb_); - } - if (java.lang.Float.floatToRawIntBits(cpus_) != 0) { - size += com.google.protobuf.CodedOutputStream - .computeFloatSize(6, cpus_); - } if (timeTakenSeconds_ != 0) { size += com.google.protobuf.CodedOutputStream - .computeInt32Size(7, timeTakenSeconds_); + .computeInt32Size(5, timeTakenSeconds_); } size += getUnknownFields().getSerializedSize(); memoizedSize = size; @@ -326,11 +290,6 @@ public boolean equals(final java.lang.Object obj) { .equals(other.getLanguage())) return false; if (!getSourceCode() .equals(other.getSourceCode())) return false; - if (getMemoryMb() - != other.getMemoryMb()) return false; - if (java.lang.Float.floatToIntBits(getCpus()) - != java.lang.Float.floatToIntBits( - other.getCpus())) return false; if (getTimeTakenSeconds() != other.getTimeTakenSeconds()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; @@ -352,11 +311,6 @@ public int hashCode() { hash = (53 * hash) + getLanguage().hashCode(); hash = (37 * hash) + SOURCECODE_FIELD_NUMBER; hash = (53 * hash) + getSourceCode().hashCode(); - hash = (37 * hash) + MEMORYMB_FIELD_NUMBER; - hash = (53 * hash) + getMemoryMb(); - hash = (37 * hash) + CPUS_FIELD_NUMBER; - hash = (53 * hash) + java.lang.Float.floatToIntBits( - getCpus()); hash = (37 * hash) + TIMETAKENSECONDS_FIELD_NUMBER; hash = (53 * hash) + getTimeTakenSeconds(); hash = (29 * hash) + getUnknownFields().hashCode(); @@ -494,8 +448,6 @@ public Builder clear() { studentId_ = ""; language_ = ""; sourceCode_ = ""; - memoryMb_ = 0; - cpus_ = 0F; timeTakenSeconds_ = 0; return this; } @@ -543,12 +495,6 @@ private void buildPartial0(com.codecampus.coding.grpc.SubmitCodeRequest result) result.sourceCode_ = sourceCode_; } if (((from_bitField0_ & 0x00000010) != 0)) { - result.memoryMb_ = memoryMb_; - } - if (((from_bitField0_ & 0x00000020) != 0)) { - result.cpus_ = cpus_; - } - if (((from_bitField0_ & 0x00000040) != 0)) { result.timeTakenSeconds_ = timeTakenSeconds_; } } @@ -585,12 +531,6 @@ public Builder mergeFrom(com.codecampus.coding.grpc.SubmitCodeRequest other) { bitField0_ |= 0x00000008; onChanged(); } - if (other.getMemoryMb() != 0) { - setMemoryMb(other.getMemoryMb()); - } - if (java.lang.Float.floatToRawIntBits(other.getCpus()) != 0) { - setCpus(other.getCpus()); - } if (other.getTimeTakenSeconds() != 0) { setTimeTakenSeconds(other.getTimeTakenSeconds()); } @@ -641,20 +581,10 @@ public Builder mergeFrom( break; } // case 34 case 40: { - memoryMb_ = input.readInt32(); + timeTakenSeconds_ = input.readInt32(); bitField0_ |= 0x00000010; break; } // case 40 - case 53: { - cpus_ = input.readFloat(); - bitField0_ |= 0x00000020; - break; - } // case 53 - case 56: { - timeTakenSeconds_ = input.readInt32(); - bitField0_ |= 0x00000040; - break; - } // case 56 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -960,73 +890,9 @@ public Builder setSourceCodeBytes( return this; } - private int memoryMb_ ; - /** - * int32 memoryMb = 5; - * @return The memoryMb. - */ - @java.lang.Override - public int getMemoryMb() { - return memoryMb_; - } - /** - * int32 memoryMb = 5; - * @param value The memoryMb to set. - * @return This builder for chaining. - */ - public Builder setMemoryMb(int value) { - - memoryMb_ = value; - bitField0_ |= 0x00000010; - onChanged(); - return this; - } - /** - * int32 memoryMb = 5; - * @return This builder for chaining. - */ - public Builder clearMemoryMb() { - bitField0_ = (bitField0_ & ~0x00000010); - memoryMb_ = 0; - onChanged(); - return this; - } - - private float cpus_ ; - /** - * float cpus = 6; - * @return The cpus. - */ - @java.lang.Override - public float getCpus() { - return cpus_; - } - /** - * float cpus = 6; - * @param value The cpus to set. - * @return This builder for chaining. - */ - public Builder setCpus(float value) { - - cpus_ = value; - bitField0_ |= 0x00000020; - onChanged(); - return this; - } - /** - * float cpus = 6; - * @return This builder for chaining. - */ - public Builder clearCpus() { - bitField0_ = (bitField0_ & ~0x00000020); - cpus_ = 0F; - onChanged(); - return this; - } - private int timeTakenSeconds_ ; /** - * int32 timeTakenSeconds = 7; + * int32 timeTakenSeconds = 5; * @return The timeTakenSeconds. */ @java.lang.Override @@ -1034,23 +900,23 @@ public int getTimeTakenSeconds() { return timeTakenSeconds_; } /** - * int32 timeTakenSeconds = 7; + * int32 timeTakenSeconds = 5; * @param value The timeTakenSeconds to set. * @return This builder for chaining. */ public Builder setTimeTakenSeconds(int value) { timeTakenSeconds_ = value; - bitField0_ |= 0x00000040; + bitField0_ |= 0x00000010; onChanged(); return this; } /** - * int32 timeTakenSeconds = 7; + * int32 timeTakenSeconds = 5; * @return This builder for chaining. */ public Builder clearTimeTakenSeconds() { - bitField0_ = (bitField0_ & ~0x00000040); + bitField0_ = (bitField0_ & ~0x00000010); timeTakenSeconds_ = 0; onChanged(); return this; diff --git a/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeRequestOrBuilder.java b/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeRequestOrBuilder.java index 0d034954..af7f0ac4 100644 --- a/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeRequestOrBuilder.java +++ b/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeRequestOrBuilder.java @@ -58,19 +58,7 @@ public interface SubmitCodeRequestOrBuilder extends getSourceCodeBytes(); /** - * int32 memoryMb = 5; - * @return The memoryMb. - */ - int getMemoryMb(); - - /** - * float cpus = 6; - * @return The cpus. - */ - float getCpus(); - - /** - * int32 timeTakenSeconds = 7; + * int32 timeTakenSeconds = 5; * @return The timeTakenSeconds. */ int getTimeTakenSeconds(); diff --git a/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeResponse.java b/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeResponse.java index dbdd2d34..ad952ca9 100644 --- a/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeResponse.java +++ b/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeResponse.java @@ -157,6 +157,39 @@ public com.codecampus.coding.grpc.TestCaseResultDtoOrBuilder getResultsOrBuilder return results_.get(index); } + public static final int MEMORYMB_FIELD_NUMBER = 6; + private int memoryMb_ = 0; + /** + * int32 memoryMb = 6; + * @return The memoryMb. + */ + @java.lang.Override + public int getMemoryMb() { + return memoryMb_; + } + + public static final int CPUS_FIELD_NUMBER = 7; + private float cpus_ = 0F; + /** + * float cpus = 7; + * @return The cpus. + */ + @java.lang.Override + public float getCpus() { + return cpus_; + } + + public static final int PEAKMEMORYKB_FIELD_NUMBER = 8; + private int peakMemoryKb_ = 0; + /** + * int32 peakMemoryKb = 8; + * @return The peakMemoryKb. + */ + @java.lang.Override + public int getPeakMemoryKb() { + return peakMemoryKb_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -186,6 +219,15 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) for (int i = 0; i < results_.size(); i++) { output.writeMessage(5, results_.get(i)); } + if (memoryMb_ != 0) { + output.writeInt32(6, memoryMb_); + } + if (java.lang.Float.floatToRawIntBits(cpus_) != 0) { + output.writeFloat(7, cpus_); + } + if (peakMemoryKb_ != 0) { + output.writeInt32(8, peakMemoryKb_); + } getUnknownFields().writeTo(output); } @@ -214,6 +256,18 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(5, results_.get(i)); } + if (memoryMb_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(6, memoryMb_); + } + if (java.lang.Float.floatToRawIntBits(cpus_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(7, cpus_); + } + if (peakMemoryKb_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(8, peakMemoryKb_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -239,6 +293,13 @@ public boolean equals(final java.lang.Object obj) { != other.getPassed()) return false; if (!getResultsList() .equals(other.getResultsList())) return false; + if (getMemoryMb() + != other.getMemoryMb()) return false; + if (java.lang.Float.floatToIntBits(getCpus()) + != java.lang.Float.floatToIntBits( + other.getCpus())) return false; + if (getPeakMemoryKb() + != other.getPeakMemoryKb()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -263,6 +324,13 @@ public int hashCode() { hash = (37 * hash) + RESULTS_FIELD_NUMBER; hash = (53 * hash) + getResultsList().hashCode(); } + hash = (37 * hash) + MEMORYMB_FIELD_NUMBER; + hash = (53 * hash) + getMemoryMb(); + hash = (37 * hash) + CPUS_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getCpus()); + hash = (37 * hash) + PEAKMEMORYKB_FIELD_NUMBER; + hash = (53 * hash) + getPeakMemoryKb(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -405,6 +473,9 @@ public Builder clear() { resultsBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000010); + memoryMb_ = 0; + cpus_ = 0F; + peakMemoryKb_ = 0; return this; } @@ -463,6 +534,15 @@ private void buildPartial0(com.codecampus.coding.grpc.SubmitCodeResponse result) if (((from_bitField0_ & 0x00000008) != 0)) { result.passed_ = passed_; } + if (((from_bitField0_ & 0x00000020) != 0)) { + result.memoryMb_ = memoryMb_; + } + if (((from_bitField0_ & 0x00000040) != 0)) { + result.cpus_ = cpus_; + } + if (((from_bitField0_ & 0x00000080) != 0)) { + result.peakMemoryKb_ = peakMemoryKb_; + } } @java.lang.Override @@ -517,6 +597,15 @@ public Builder mergeFrom(com.codecampus.coding.grpc.SubmitCodeResponse other) { } } } + if (other.getMemoryMb() != 0) { + setMemoryMb(other.getMemoryMb()); + } + if (java.lang.Float.floatToRawIntBits(other.getCpus()) != 0) { + setCpus(other.getCpus()); + } + if (other.getPeakMemoryKb() != 0) { + setPeakMemoryKb(other.getPeakMemoryKb()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -576,6 +665,21 @@ public Builder mergeFrom( } break; } // case 42 + case 48: { + memoryMb_ = input.readInt32(); + bitField0_ |= 0x00000020; + break; + } // case 48 + case 61: { + cpus_ = input.readFloat(); + bitField0_ |= 0x00000040; + break; + } // case 61 + case 64: { + peakMemoryKb_ = input.readInt32(); + bitField0_ |= 0x00000080; + break; + } // case 64 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -1001,6 +1105,102 @@ public com.codecampus.coding.grpc.TestCaseResultDto.Builder addResultsBuilder( return resultsBuilder_; } + private int memoryMb_ ; + /** + * int32 memoryMb = 6; + * @return The memoryMb. + */ + @java.lang.Override + public int getMemoryMb() { + return memoryMb_; + } + /** + * int32 memoryMb = 6; + * @param value The memoryMb to set. + * @return This builder for chaining. + */ + public Builder setMemoryMb(int value) { + + memoryMb_ = value; + bitField0_ |= 0x00000020; + onChanged(); + return this; + } + /** + * int32 memoryMb = 6; + * @return This builder for chaining. + */ + public Builder clearMemoryMb() { + bitField0_ = (bitField0_ & ~0x00000020); + memoryMb_ = 0; + onChanged(); + return this; + } + + private float cpus_ ; + /** + * float cpus = 7; + * @return The cpus. + */ + @java.lang.Override + public float getCpus() { + return cpus_; + } + /** + * float cpus = 7; + * @param value The cpus to set. + * @return This builder for chaining. + */ + public Builder setCpus(float value) { + + cpus_ = value; + bitField0_ |= 0x00000040; + onChanged(); + return this; + } + /** + * float cpus = 7; + * @return This builder for chaining. + */ + public Builder clearCpus() { + bitField0_ = (bitField0_ & ~0x00000040); + cpus_ = 0F; + onChanged(); + return this; + } + + private int peakMemoryKb_ ; + /** + * int32 peakMemoryKb = 8; + * @return The peakMemoryKb. + */ + @java.lang.Override + public int getPeakMemoryKb() { + return peakMemoryKb_; + } + /** + * int32 peakMemoryKb = 8; + * @param value The peakMemoryKb to set. + * @return This builder for chaining. + */ + public Builder setPeakMemoryKb(int value) { + + peakMemoryKb_ = value; + bitField0_ |= 0x00000080; + onChanged(); + return this; + } + /** + * int32 peakMemoryKb = 8; + * @return This builder for chaining. + */ + public Builder clearPeakMemoryKb() { + bitField0_ = (bitField0_ & ~0x00000080); + peakMemoryKb_ = 0; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:coding.SubmitCodeResponse) } diff --git a/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeResponseOrBuilder.java b/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeResponseOrBuilder.java index 75a68727..54e6d777 100644 --- a/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeResponseOrBuilder.java +++ b/common-protos/target/generated-sources/protobuf/java/com/codecampus/coding/grpc/SubmitCodeResponseOrBuilder.java @@ -62,4 +62,22 @@ public interface SubmitCodeResponseOrBuilder extends */ com.codecampus.coding.grpc.TestCaseResultDtoOrBuilder getResultsOrBuilder( int index); + + /** + * int32 memoryMb = 6; + * @return The memoryMb. + */ + int getMemoryMb(); + + /** + * float cpus = 7; + * @return The cpus. + */ + float getCpus(); + + /** + * int32 peakMemoryKb = 8; + * @return The peakMemoryKb. + */ + int getPeakMemoryKb(); } diff --git a/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/CodeSubmissionDto.java b/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/CodeSubmissionDto.java index 273feb31..889a0849 100644 --- a/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/CodeSubmissionDto.java +++ b/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/CodeSubmissionDto.java @@ -350,6 +350,39 @@ public com.codecampus.submission.grpc.TestCaseResultSyncDtoOrBuilder getResultsO return results_.get(index); } + public static final int PEAKMEMORYKB_FIELD_NUMBER = 11; + private int peakMemoryKb_ = 0; + /** + * int32 peakMemoryKb = 11; + * @return The peakMemoryKb. + */ + @java.lang.Override + public int getPeakMemoryKb() { + return peakMemoryKb_; + } + + public static final int CPUS_FIELD_NUMBER = 12; + private float cpus_ = 0F; + /** + * float cpus = 12; + * @return The cpus. + */ + @java.lang.Override + public float getCpus() { + return cpus_; + } + + public static final int MEMORYMB_FIELD_NUMBER = 13; + private int memoryMb_ = 0; + /** + * int32 memoryMb = 13; + * @return The memoryMb. + */ + @java.lang.Override + public int getMemoryMb() { + return memoryMb_; + } + private byte memoizedIsInitialized = -1; @java.lang.Override public final boolean isInitialized() { @@ -394,6 +427,15 @@ public void writeTo(com.google.protobuf.CodedOutputStream output) for (int i = 0; i < results_.size(); i++) { output.writeMessage(10, results_.get(i)); } + if (peakMemoryKb_ != 0) { + output.writeInt32(11, peakMemoryKb_); + } + if (java.lang.Float.floatToRawIntBits(cpus_) != 0) { + output.writeFloat(12, cpus_); + } + if (memoryMb_ != 0) { + output.writeInt32(13, memoryMb_); + } getUnknownFields().writeTo(output); } @@ -438,6 +480,18 @@ public int getSerializedSize() { size += com.google.protobuf.CodedOutputStream .computeMessageSize(10, results_.get(i)); } + if (peakMemoryKb_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(11, peakMemoryKb_); + } + if (java.lang.Float.floatToRawIntBits(cpus_) != 0) { + size += com.google.protobuf.CodedOutputStream + .computeFloatSize(12, cpus_); + } + if (memoryMb_ != 0) { + size += com.google.protobuf.CodedOutputStream + .computeInt32Size(13, memoryMb_); + } size += getUnknownFields().getSerializedSize(); memoizedSize = size; return size; @@ -476,6 +530,13 @@ public boolean equals(final java.lang.Object obj) { != other.getTimeTakenSeconds()) return false; if (!getResultsList() .equals(other.getResultsList())) return false; + if (getPeakMemoryKb() + != other.getPeakMemoryKb()) return false; + if (java.lang.Float.floatToIntBits(getCpus()) + != java.lang.Float.floatToIntBits( + other.getCpus())) return false; + if (getMemoryMb() + != other.getMemoryMb()) return false; if (!getUnknownFields().equals(other.getUnknownFields())) return false; return true; } @@ -511,6 +572,13 @@ public int hashCode() { hash = (37 * hash) + RESULTS_FIELD_NUMBER; hash = (53 * hash) + getResultsList().hashCode(); } + hash = (37 * hash) + PEAKMEMORYKB_FIELD_NUMBER; + hash = (53 * hash) + getPeakMemoryKb(); + hash = (37 * hash) + CPUS_FIELD_NUMBER; + hash = (53 * hash) + java.lang.Float.floatToIntBits( + getCpus()); + hash = (37 * hash) + MEMORYMB_FIELD_NUMBER; + hash = (53 * hash) + getMemoryMb(); hash = (29 * hash) + getUnknownFields().hashCode(); memoizedHashCode = hash; return hash; @@ -669,6 +737,9 @@ public Builder clear() { resultsBuilder_.clear(); } bitField0_ = (bitField0_ & ~0x00000200); + peakMemoryKb_ = 0; + cpus_ = 0F; + memoryMb_ = 0; return this; } @@ -746,6 +817,15 @@ private void buildPartial0(com.codecampus.submission.grpc.CodeSubmissionDto resu if (((from_bitField0_ & 0x00000100) != 0)) { result.timeTakenSeconds_ = timeTakenSeconds_; } + if (((from_bitField0_ & 0x00000400) != 0)) { + result.peakMemoryKb_ = peakMemoryKb_; + } + if (((from_bitField0_ & 0x00000800) != 0)) { + result.cpus_ = cpus_; + } + if (((from_bitField0_ & 0x00001000) != 0)) { + result.memoryMb_ = memoryMb_; + } result.bitField0_ |= to_bitField0_; } @@ -824,6 +904,15 @@ public Builder mergeFrom(com.codecampus.submission.grpc.CodeSubmissionDto other) } } } + if (other.getPeakMemoryKb() != 0) { + setPeakMemoryKb(other.getPeakMemoryKb()); + } + if (java.lang.Float.floatToRawIntBits(other.getCpus()) != 0) { + setCpus(other.getCpus()); + } + if (other.getMemoryMb() != 0) { + setMemoryMb(other.getMemoryMb()); + } this.mergeUnknownFields(other.getUnknownFields()); onChanged(); return this; @@ -910,6 +999,21 @@ public Builder mergeFrom( } break; } // case 82 + case 88: { + peakMemoryKb_ = input.readInt32(); + bitField0_ |= 0x00000400; + break; + } // case 88 + case 101: { + cpus_ = input.readFloat(); + bitField0_ |= 0x00000800; + break; + } // case 101 + case 104: { + memoryMb_ = input.readInt32(); + bitField0_ |= 0x00001000; + break; + } // case 104 default: { if (!super.parseUnknownField(input, extensionRegistry, tag)) { done = true; // was an endgroup tag @@ -1762,6 +1866,102 @@ public com.codecampus.submission.grpc.TestCaseResultSyncDto.Builder addResultsBu return resultsBuilder_; } + private int peakMemoryKb_ ; + /** + * int32 peakMemoryKb = 11; + * @return The peakMemoryKb. + */ + @java.lang.Override + public int getPeakMemoryKb() { + return peakMemoryKb_; + } + /** + * int32 peakMemoryKb = 11; + * @param value The peakMemoryKb to set. + * @return This builder for chaining. + */ + public Builder setPeakMemoryKb(int value) { + + peakMemoryKb_ = value; + bitField0_ |= 0x00000400; + onChanged(); + return this; + } + /** + * int32 peakMemoryKb = 11; + * @return This builder for chaining. + */ + public Builder clearPeakMemoryKb() { + bitField0_ = (bitField0_ & ~0x00000400); + peakMemoryKb_ = 0; + onChanged(); + return this; + } + + private float cpus_ ; + /** + * float cpus = 12; + * @return The cpus. + */ + @java.lang.Override + public float getCpus() { + return cpus_; + } + /** + * float cpus = 12; + * @param value The cpus to set. + * @return This builder for chaining. + */ + public Builder setCpus(float value) { + + cpus_ = value; + bitField0_ |= 0x00000800; + onChanged(); + return this; + } + /** + * float cpus = 12; + * @return This builder for chaining. + */ + public Builder clearCpus() { + bitField0_ = (bitField0_ & ~0x00000800); + cpus_ = 0F; + onChanged(); + return this; + } + + private int memoryMb_ ; + /** + * int32 memoryMb = 13; + * @return The memoryMb. + */ + @java.lang.Override + public int getMemoryMb() { + return memoryMb_; + } + /** + * int32 memoryMb = 13; + * @param value The memoryMb to set. + * @return This builder for chaining. + */ + public Builder setMemoryMb(int value) { + + memoryMb_ = value; + bitField0_ |= 0x00001000; + onChanged(); + return this; + } + /** + * int32 memoryMb = 13; + * @return This builder for chaining. + */ + public Builder clearMemoryMb() { + bitField0_ = (bitField0_ & ~0x00001000); + memoryMb_ = 0; + onChanged(); + return this; + } + // @@protoc_insertion_point(builder_scope:submission.CodeSubmissionDto) } diff --git a/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/CodeSubmissionDtoOrBuilder.java b/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/CodeSubmissionDtoOrBuilder.java index 94a30b56..ac744bac 100644 --- a/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/CodeSubmissionDtoOrBuilder.java +++ b/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/CodeSubmissionDtoOrBuilder.java @@ -131,4 +131,22 @@ public interface CodeSubmissionDtoOrBuilder extends */ com.codecampus.submission.grpc.TestCaseResultSyncDtoOrBuilder getResultsOrBuilder( int index); + + /** + * int32 peakMemoryKb = 11; + * @return The peakMemoryKb. + */ + int getPeakMemoryKb(); + + /** + * float cpus = 12; + * @return The cpus. + */ + float getCpus(); + + /** + * int32 memoryMb = 13; + * @return The memoryMb. + */ + int getMemoryMb(); } diff --git a/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/SubmissionSyncProto.java b/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/SubmissionSyncProto.java index 0de17ff0..48f26fcc 100644 --- a/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/SubmissionSyncProto.java +++ b/common-protos/target/generated-sources/protobuf/java/com/codecampus/submission/grpc/SubmissionSyncProto.java @@ -75,28 +75,29 @@ public static void registerAllExtensions( "submittedAt\030\006 \001(\0132\032.google.protobuf.Time" + "stamp\0224\n\007answers\030\007 \003(\0132#.submission.Quiz" + "SubmissionAnswerDto\022\030\n\020timeTakenSeconds\030" + - "\010 \001(\005\"\217\002\n\021CodeSubmissionDto\022\n\n\002id\030\001 \001(\t\022" + + "\010 \001(\005\"\305\002\n\021CodeSubmissionDto\022\n\n\002id\030\001 \001(\t\022" + "\022\n\nexerciseId\030\002 \001(\t\022\021\n\tstudentId\030\003 \001(\t\022\r" + "\n\005score\030\004 \001(\005\022\023\n\013totalPoints\030\005 \001(\005\022\020\n\010la" + "nguage\030\006 \001(\t\022\022\n\nsourceCode\030\007 \001(\t\022/\n\013subm" + "ittedAt\030\010 \001(\0132\032.google.protobuf.Timestam" + "p\022\030\n\020timeTakenSeconds\030\t \001(\005\0222\n\007results\030\n" + - " \003(\0132!.submission.TestCaseResultSyncDto\"" + - "\206\001\n\025TestCaseResultSyncDto\022\022\n\ntestCaseId\030" + - "\001 \001(\t\022\016\n\006passed\030\002 \001(\010\022\021\n\truntimeMs\030\003 \001(\005" + - "\022\020\n\010memoryKb\030\004 \001(\005\022\016\n\006output\030\005 \001(\t\022\024\n\014er" + - "rorMessage\030\006 \001(\t\"P\n\033CreateQuizSubmission" + - "Request\0221\n\nsubmission\030\001 \001(\0132\035.submission" + - ".QuizSubmissionDto\"P\n\033CreateCodeSubmissi" + - "onRequest\0221\n\nsubmission\030\001 \001(\0132\035.submissi" + - "on.CodeSubmissionDto2\311\001\n\025SubmissionSyncS" + - "ervice\022W\n\024CreateQuizSubmission\022\'.submiss" + - "ion.CreateQuizSubmissionRequest\032\026.google" + - ".protobuf.Empty\022W\n\024CreateCodeSubmission\022" + - "\'.submission.CreateCodeSubmissionRequest" + - "\032\026.google.protobuf.EmptyB7\n\036com.codecamp" + - "us.submission.grpcB\023SubmissionSyncProtoP" + - "\001b\006proto3" + " \003(\0132!.submission.TestCaseResultSyncDto\022" + + "\024\n\014peakMemoryKb\030\013 \001(\005\022\014\n\004cpus\030\014 \001(\002\022\020\n\010m" + + "emoryMb\030\r \001(\005\"\206\001\n\025TestCaseResultSyncDto\022" + + "\022\n\ntestCaseId\030\001 \001(\t\022\016\n\006passed\030\002 \001(\010\022\021\n\tr" + + "untimeMs\030\003 \001(\005\022\020\n\010memoryKb\030\004 \001(\005\022\016\n\006outp" + + "ut\030\005 \001(\t\022\024\n\014errorMessage\030\006 \001(\t\"P\n\033Create" + + "QuizSubmissionRequest\0221\n\nsubmission\030\001 \001(" + + "\0132\035.submission.QuizSubmissionDto\"P\n\033Crea" + + "teCodeSubmissionRequest\0221\n\nsubmission\030\001 " + + "\001(\0132\035.submission.CodeSubmissionDto2\311\001\n\025S" + + "ubmissionSyncService\022W\n\024CreateQuizSubmis" + + "sion\022\'.submission.CreateQuizSubmissionRe" + + "quest\032\026.google.protobuf.Empty\022W\n\024CreateC" + + "odeSubmission\022\'.submission.CreateCodeSub" + + "missionRequest\032\026.google.protobuf.EmptyB7" + + "\n\036com.codecampus.submission.grpcB\023Submis" + + "sionSyncProtoP\001b\006proto3" }; descriptor = com.google.protobuf.Descriptors.FileDescriptor .internalBuildGeneratedFileFrom(descriptorData, @@ -121,7 +122,7 @@ public static void registerAllExtensions( internal_static_submission_CodeSubmissionDto_fieldAccessorTable = new com.google.protobuf.GeneratedMessage.FieldAccessorTable( internal_static_submission_CodeSubmissionDto_descriptor, - new java.lang.String[] { "Id", "ExerciseId", "StudentId", "Score", "TotalPoints", "Language", "SourceCode", "SubmittedAt", "TimeTakenSeconds", "Results", }); + new java.lang.String[] { "Id", "ExerciseId", "StudentId", "Score", "TotalPoints", "Language", "SourceCode", "SubmittedAt", "TimeTakenSeconds", "Results", "PeakMemoryKb", "Cpus", "MemoryMb", }); internal_static_submission_TestCaseResultSyncDto_descriptor = getDescriptor().getMessageTypes().get(3); internal_static_submission_TestCaseResultSyncDto_fieldAccessorTable = new diff --git a/common-protos/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/common-protos/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst index 53bb1a96..44b0007a 100644 --- a/common-protos/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ b/common-protos/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -1,100 +1,100 @@ -F:\fileCode\capstoneProject\backend\common-protos\src\main\java\org\codecampus\Main.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\coding\grpc\CodingPlayServiceGrpc.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\coding\grpc\CodingSyncServiceGrpc.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\coding\grpc\playground\PlaygroundServiceGrpc.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\quiz\grpc\QuizPlayServiceGrpc.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\quiz\grpc\QuizSyncServiceGrpc.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\submission\grpc\SubmissionSyncServiceGrpc.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AddCodingDetailRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AddCodingDetailRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AddTestCaseRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AddTestCaseRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AssignmentDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AssignmentDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingDetailDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingDetailDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingDetailLoadResponse.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingDetailLoadResponseOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingExerciseDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingExerciseDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingProto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CreateCodingExerciseRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CreateCodingExerciseRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\LoadCodingRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\LoadCodingRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\LoadCodingResponse.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\LoadCodingResponseOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\playground\PlaygroundProto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\playground\RunRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\playground\RunRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\playground\RunUpdate.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\playground\RunUpdateOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SoftDeleteRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SoftDeleteRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SoftDeleteTestCaseRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SoftDeleteTestCaseRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SubmitCodeRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SubmitCodeRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SubmitCodeResponse.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SubmitCodeResponseOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseDtoLoadResponse.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseDtoLoadResponseOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseResultDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseResultDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\UpsertAssignmentRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\UpsertAssignmentRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddOptionRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddOptionRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddQuestionRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddQuestionRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddQuizDetailRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddQuizDetailRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AnswerDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AnswerDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AssignmentDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AssignmentDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\CreateQuizExerciseRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\CreateQuizExerciseRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\LoadQuizRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\LoadQuizRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\LoadQuizResponse.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\LoadQuizResponseOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\OptionDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\OptionDtoLoadResponse.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\OptionDtoLoadResponseOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\OptionDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuestionDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuestionDtoLoadResponse.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuestionDtoLoadResponseOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuestionDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuestionType.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuizExerciseDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuizExerciseDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuizProto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteOptionRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteOptionRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteQuestionRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteQuestionRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SubmitQuizRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SubmitQuizRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SubmitQuizResponse.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SubmitQuizResponseOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\UpsertAssignmentRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\UpsertAssignmentRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CodeSubmissionDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CodeSubmissionDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CreateCodeSubmissionRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CreateCodeSubmissionRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CreateQuizSubmissionRequest.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CreateQuizSubmissionRequestOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\QuizSubmissionAnswerDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\QuizSubmissionAnswerDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\QuizSubmissionDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\QuizSubmissionDtoOrBuilder.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\SubmissionSyncProto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\TestCaseResultSyncDto.java -F:\fileCode\capstoneProject\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\TestCaseResultSyncDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\src\main\java\org\codecampus\Main.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\coding\grpc\CodingPlayServiceGrpc.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\coding\grpc\CodingSyncServiceGrpc.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\coding\grpc\playground\PlaygroundServiceGrpc.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\quiz\grpc\QuizPlayServiceGrpc.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\quiz\grpc\QuizSyncServiceGrpc.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\grpc-java\com\codecampus\submission\grpc\SubmissionSyncServiceGrpc.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AddCodingDetailRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AddCodingDetailRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AddTestCaseRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AddTestCaseRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AssignmentDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\AssignmentDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingDetailDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingDetailDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingDetailLoadResponse.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingDetailLoadResponseOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingExerciseDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingExerciseDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CodingProto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CreateCodingExerciseRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\CreateCodingExerciseRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\LoadCodingRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\LoadCodingRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\LoadCodingResponse.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\LoadCodingResponseOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\playground\PlaygroundProto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\playground\RunRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\playground\RunRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\playground\RunUpdate.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\playground\RunUpdateOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SoftDeleteRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SoftDeleteRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SoftDeleteTestCaseRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SoftDeleteTestCaseRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SubmitCodeRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SubmitCodeRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SubmitCodeResponse.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\SubmitCodeResponseOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseDtoLoadResponse.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseDtoLoadResponseOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseResultDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\TestCaseResultDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\UpsertAssignmentRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\coding\grpc\UpsertAssignmentRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddOptionRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddOptionRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddQuestionRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddQuestionRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddQuizDetailRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AddQuizDetailRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AnswerDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AnswerDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AssignmentDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\AssignmentDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\CreateQuizExerciseRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\CreateQuizExerciseRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\LoadQuizRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\LoadQuizRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\LoadQuizResponse.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\LoadQuizResponseOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\OptionDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\OptionDtoLoadResponse.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\OptionDtoLoadResponseOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\OptionDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuestionDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuestionDtoLoadResponse.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuestionDtoLoadResponseOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuestionDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuestionType.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuizExerciseDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuizExerciseDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\QuizProto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteOptionRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteOptionRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteQuestionRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteQuestionRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SoftDeleteRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SubmitQuizRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SubmitQuizRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SubmitQuizResponse.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\SubmitQuizResponseOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\UpsertAssignmentRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\quiz\grpc\UpsertAssignmentRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CodeSubmissionDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CodeSubmissionDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CreateCodeSubmissionRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CreateCodeSubmissionRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CreateQuizSubmissionRequest.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\CreateQuizSubmissionRequestOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\QuizSubmissionAnswerDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\QuizSubmissionAnswerDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\QuizSubmissionDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\QuizSubmissionDtoOrBuilder.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\SubmissionSyncProto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\TestCaseResultSyncDto.java +F:\fileCode\capstoneProject\fix-code\backend\common-protos\target\generated-sources\protobuf\java\com\codecampus\submission\grpc\TestCaseResultSyncDtoOrBuilder.java diff --git a/gateway-service/src/main/java/com/codecampus/gateway/configuration/client/IdentityServiceProperties.java b/gateway-service/src/main/java/com/codecampus/gateway/configuration/client/IdentityServiceProperties.java new file mode 100644 index 00000000..ab2a595e --- /dev/null +++ b/gateway-service/src/main/java/com/codecampus/gateway/configuration/client/IdentityServiceProperties.java @@ -0,0 +1,21 @@ +package com.codecampus.gateway.configuration.client; + +import lombok.Getter; +import lombok.Setter; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.stereotype.Component; + +@Getter +@Setter +@Component +@ConfigurationProperties(prefix = "identity.service") +public class IdentityServiceProperties { + + /** + * Base URL bao gồm context-path (/identity) + * VD: + * - Local : http://localhost:8080/identity + * - Docker: http://identity-service:8080/identity + */ + private String baseUrl; +} diff --git a/gateway-service/src/main/java/com/codecampus/gateway/configuration/client/WebClientConfiguration.java b/gateway-service/src/main/java/com/codecampus/gateway/configuration/client/WebClientConfiguration.java index b4fc34e7..c537b219 100644 --- a/gateway-service/src/main/java/com/codecampus/gateway/configuration/client/WebClientConfiguration.java +++ b/gateway-service/src/main/java/com/codecampus/gateway/configuration/client/WebClientConfiguration.java @@ -12,8 +12,6 @@ import java.util.List; -import static com.codecampus.gateway.constant.config.SecurityConfigConstant.IDENTITY_SERVICE_ENDPOINT; - /** * Lớp cấu hình các bean liên quan đến WebClient và CORS cho Gateway. * Bao gồm: @@ -32,9 +30,9 @@ public class WebClientConfiguration { * @return một đối tượng WebClient dùng để thực hiện các HTTP request đến Identity Service */ @Bean - WebClient webClient() { + WebClient webClient(IdentityServiceProperties props) { return WebClient.builder() - .baseUrl(IDENTITY_SERVICE_ENDPOINT) + .baseUrl(props.getBaseUrl()) .build(); } diff --git a/gateway-service/src/main/java/com/codecampus/gateway/constant/config/SecurityConfigConstant.java b/gateway-service/src/main/java/com/codecampus/gateway/constant/config/SecurityConfigConstant.java index 3b9b513a..8b3031cb 100644 --- a/gateway-service/src/main/java/com/codecampus/gateway/constant/config/SecurityConfigConstant.java +++ b/gateway-service/src/main/java/com/codecampus/gateway/constant/config/SecurityConfigConstant.java @@ -12,10 +12,4 @@ public class SecurityConfigConstant { public static final String[] PUBLIC_ENDPOINTS = { "/identity/auth/.*", }; - - // CORS IDENTITY SERVICE ENDPOINT - public static final String IDENTITY_SERVICE_ENDPOINT = - //"https://localhost:8080/identity"; - //"http://identity-service:8080/identity"; - "http://localhost:8080/identity"; } diff --git a/gateway-service/src/main/resources/application-docker.yml b/gateway-service/src/main/resources/application-docker.yml index 15f9b45a..de0e897e 100644 --- a/gateway-service/src/main/resources/application-docker.yml +++ b/gateway-service/src/main/resources/application-docker.yml @@ -97,4 +97,8 @@ spring: - StripPrefix=2 - name: RateLimiter args: - routeId: chat_service \ No newline at end of file + routeId: chat_service + +identity: + service: + base-url: http://identity-service:8080/identity \ No newline at end of file diff --git a/gateway-service/src/main/resources/application.yml b/gateway-service/src/main/resources/application.yml index 2488e696..d4b4ddc6 100644 --- a/gateway-service/src/main/resources/application.yml +++ b/gateway-service/src/main/resources/application.yml @@ -125,18 +125,54 @@ spring: args: routeId: chat_service +identity: + service: + base-url: http://localhost:8080/identity + # Cấu hình rate limiter rate-limiter: default: - capacity: 10 - refillTokens: 10 + capacity: 125 + refillTokens: 125 refillDuration: 60 routes: - identity_service: # Khớp với routeId - capacity: 20 - refillTokens: 20 + identity_service: + capacity: 125 + refillTokens: 125 + refillDuration: 60 + profile_service: + capacity: 125 + refillTokens: 125 + refillDuration: 60 + file_service: + capacity: 125 + refillTokens: 125 + refillDuration: 60 + submission_service: + capacity: 125 + refillTokens: 125 + refillDuration: 60 + coding_service: + capacity: 125 + refillTokens: 125 + refillDuration: 60 + quiz_service: + capacity: 125 + refillTokens: 125 + refillDuration: 60 + ai_service: + capacity: 125 + refillTokens: 125 + refillDuration: 60 + search_service: + capacity: 125 + refillTokens: 125 + refillDuration: 60 + notification_service: + capacity: 125 + refillTokens: 125 refillDuration: 60 - profile_service: # Khớp với routeId - capacity: 20 - refillTokens: 20 + chat_service: + capacity: 125 + refillTokens: 125 refillDuration: 60 diff --git a/profile-service/src/main/java/com/codecampus/profile/dto/response/UserProfileResponse.java b/profile-service/src/main/java/com/codecampus/profile/dto/response/UserProfileResponse.java index 86485f84..f057964b 100644 --- a/profile-service/src/main/java/com/codecampus/profile/dto/response/UserProfileResponse.java +++ b/profile-service/src/main/java/com/codecampus/profile/dto/response/UserProfileResponse.java @@ -14,9 +14,8 @@ // Khi build thì KHÔNG response null //@JsonInclude(JsonInclude.Include.NON_NULL) public class UserProfileResponse { - String id; String userId; - + String username; String email; boolean active; diff --git a/quiz-service/target/classes/application-docker.yml b/quiz-service/target/classes/application-docker.yml deleted file mode 100644 index 98547bff..00000000 --- a/quiz-service/target/classes/application-docker.yml +++ /dev/null @@ -1,25 +0,0 @@ -server: - port: 8085 - servlet: - context-path: /quiz - -grpc: - server: - port: 9591 - -submission: - grpc: - host: submission-service - port: 9590 - -spring: - datasource: - url: jdbc:postgresql://quiz-db:5432/${QUIZ_DATABASE} - username: ${QUIZ_USERNAME} - password: ${QUIZ_DB_PASSWORD} - driver-class-name: org.postgresql.Driver - data: - redis: - host: redis # dịch vụ trong compose - port: 6379 - password: ${REDIS_PASSWORD} diff --git a/quiz-service/target/classes/application.yml b/quiz-service/target/classes/application.yml deleted file mode 100644 index 1b0921ca..00000000 --- a/quiz-service/target/classes/application.yml +++ /dev/null @@ -1,49 +0,0 @@ -server: - port: 8085 - # http: - # port: 8005 - servlet: - context-path: /quiz - -grpc: - server: - port: 9591 - -submission: - grpc: - host: localhost - port: 9590 - -spring: - application: - name: quiz-service - datasource: - url: jdbc:postgresql://localhost:5433/quiz_db - username: postgres_quiz - password: dinhanst2832004 - driver-class-name: org.postgresql.Driver - jpa: - hibernate: - ddl-auto: update - properties: - hibernate: - dialect: org.hibernate.dialect.PostgreSQLDialect - show-sql: true - data: - redis: - host: localhost # dịch vụ trong compose - port: 6379 - password: dinhanst2832004 - timeout: 3000ms -# kafka: -# bootstrap-servers: localhost:9094 -# consumer: -# group-id: quiz-result-aggregator -# auto-offset-reset: earliest -# key-deserializer: org.apache.kafka.common.serialization.StringDeserializer -# value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer -# properties: -# spring.json.trusted.packages: "*" -# producer: -# key-serializer: org.apache.kafka.common.serialization.StringSerializer -# value-serializer: org.springframework.kafka.support.serializer.JsonSerializer \ No newline at end of file diff --git a/quiz-service/target/generated-sources/annotations/com/codecampus/quiz/mapper/AssignmentMapperImpl.java b/quiz-service/target/generated-sources/annotations/com/codecampus/quiz/mapper/AssignmentMapperImpl.java deleted file mode 100644 index 818cc818..00000000 --- a/quiz-service/target/generated-sources/annotations/com/codecampus/quiz/mapper/AssignmentMapperImpl.java +++ /dev/null @@ -1,72 +0,0 @@ -package com.codecampus.quiz.mapper; - -import com.codecampus.quiz.entity.Assignment; -import com.codecampus.quiz.grpc.AssignmentDto; -import javax.annotation.processing.Generated; -import org.springframework.stereotype.Component; - -@Generated( - value = "org.mapstruct.ap.MappingProcessor", - date = "2025-08-07T16:50:17+0700", - comments = "version: 1.6.3, compiler: javac, environment: Java 21.0.7 (Oracle Corporation)" -) -@Component -public class AssignmentMapperImpl implements AssignmentMapper { - - @Override - public Assignment toAssignmentFromAssignmentDto(AssignmentDto assignmentDto) { - if ( assignmentDto == null ) { - return null; - } - - Assignment.AssignmentBuilder assignment = Assignment.builder(); - - assignment.id( assignmentDto.getId() ); - assignment.exerciseId( assignmentDto.getExerciseId() ); - assignment.studentId( assignmentDto.getStudentId() ); - if ( assignmentDto.hasDueAt() ) { - assignment.dueAt( mapProtobufTimestampToInstant( assignmentDto.getDueAt() ) ); - } - assignment.completed( assignmentDto.getCompleted() ); - - return assignment.build(); - } - - @Override - public AssignmentDto toAssignmentDtoFromAssignment(Assignment assignment) { - if ( assignment == null ) { - return null; - } - - AssignmentDto.Builder assignmentDto = AssignmentDto.newBuilder(); - - assignmentDto.setId( assignment.getId() ); - assignmentDto.setExerciseId( assignment.getExerciseId() ); - assignmentDto.setStudentId( assignment.getStudentId() ); - assignmentDto.setDueAt( mapInstantToProtobufTimestamp( assignment.getDueAt() ) ); - assignmentDto.setCompleted( assignment.isCompleted() ); - - return assignmentDto.build(); - } - - @Override - public void patchAssignmentDtoToAssignment(AssignmentDto assignmentDto, Assignment assignment) { - if ( assignmentDto == null ) { - return; - } - - if ( assignmentDto.getId() != null ) { - assignment.setId( assignmentDto.getId() ); - } - if ( assignmentDto.getExerciseId() != null ) { - assignment.setExerciseId( assignmentDto.getExerciseId() ); - } - if ( assignmentDto.getStudentId() != null ) { - assignment.setStudentId( assignmentDto.getStudentId() ); - } - if ( assignmentDto.hasDueAt() ) { - assignment.setDueAt( mapProtobufTimestampToInstant( assignmentDto.getDueAt() ) ); - } - assignment.setCompleted( assignmentDto.getCompleted() ); - } -} diff --git a/quiz-service/target/generated-sources/annotations/com/codecampus/quiz/mapper/QuizMapperImpl.java b/quiz-service/target/generated-sources/annotations/com/codecampus/quiz/mapper/QuizMapperImpl.java deleted file mode 100644 index 1f09e2f5..00000000 --- a/quiz-service/target/generated-sources/annotations/com/codecampus/quiz/mapper/QuizMapperImpl.java +++ /dev/null @@ -1,139 +0,0 @@ -package com.codecampus.quiz.mapper; - -import com.codecampus.quiz.entity.Option; -import com.codecampus.quiz.entity.Question; -import com.codecampus.quiz.entity.QuizExercise; -import com.codecampus.quiz.grpc.OptionDto; -import com.codecampus.quiz.grpc.QuestionDto; -import com.codecampus.quiz.grpc.QuizExerciseDto; -import javax.annotation.processing.Generated; -import org.springframework.stereotype.Component; - -@Generated( - value = "org.mapstruct.ap.MappingProcessor", - date = "2025-08-07T16:50:17+0700", - comments = "version: 1.6.3, compiler: javac, environment: Java 21.0.7 (Oracle Corporation)" -) -@Component -public class QuizMapperImpl implements QuizMapper { - - @Override - public void patchQuestionDtoToQuestion(QuestionDto questionDto, Question question) { - if ( questionDto == null ) { - return; - } - - if ( questionDto.getId() != null ) { - question.setId( questionDto.getId() ); - } - if ( questionDto.getText() != null ) { - question.setText( questionDto.getText() ); - } - if ( questionDto.getQuestionType() != null ) { - question.setQuestionType( mapEntityEnumQuestionType( questionDto.getQuestionType() ) ); - } - question.setPoints( questionDto.getPoints() ); - question.setOrderInQuiz( questionDto.getOrderInQuiz() ); - - linkOptionsToQuestion( question ); - } - - @Override - public void patchOptionDtoToOption(OptionDto optionDto, Option option) { - if ( optionDto == null ) { - return; - } - - if ( optionDto.getId() != null ) { - option.setId( optionDto.getId() ); - } - if ( optionDto.getOptionText() != null ) { - option.setOptionText( optionDto.getOptionText() ); - } - option.setCorrect( optionDto.getCorrect() ); - if ( optionDto.getOrder() != null ) { - option.setOrder( optionDto.getOrder() ); - } - } - - @Override - public void patchQuizExerciseDtoToQuizExercise(QuizExerciseDto quizExerciseDto, QuizExercise quizExercise) { - if ( quizExerciseDto == null ) { - return; - } - - if ( quizExerciseDto.getCreatedBy() != null ) { - quizExercise.setCreatedBy( quizExerciseDto.getCreatedBy() ); - } - if ( quizExerciseDto.getId() != null ) { - quizExercise.setId( quizExerciseDto.getId() ); - } - if ( quizExerciseDto.getTitle() != null ) { - quizExercise.setTitle( quizExerciseDto.getTitle() ); - } - if ( quizExerciseDto.getDescription() != null ) { - quizExercise.setDescription( quizExerciseDto.getDescription() ); - } - quizExercise.setTotalPoints( quizExerciseDto.getTotalPoints() ); - quizExercise.setNumQuestions( quizExerciseDto.getNumQuestions() ); - quizExercise.setDuration( quizExerciseDto.getDuration() ); - quizExercise.setPublicAccessible( quizExerciseDto.getPublicAccessible() ); - } - - @Override - public QuizExercise toQuizExerciseFromQuizExerciseDto(QuizExerciseDto quizExerciseDto) { - if ( quizExerciseDto == null ) { - return null; - } - - QuizExercise.QuizExerciseBuilder quizExercise = QuizExercise.builder(); - - quizExercise.id( quizExerciseDto.getId() ); - quizExercise.title( quizExerciseDto.getTitle() ); - quizExercise.description( quizExerciseDto.getDescription() ); - quizExercise.totalPoints( quizExerciseDto.getTotalPoints() ); - quizExercise.numQuestions( quizExerciseDto.getNumQuestions() ); - quizExercise.duration( quizExerciseDto.getDuration() ); - quizExercise.publicAccessible( quizExerciseDto.getPublicAccessible() ); - - return quizExercise.build(); - } - - @Override - public Question toQuestionFromQuestionDto(QuestionDto questionDto) { - if ( questionDto == null ) { - return null; - } - - Question.QuestionBuilder question = Question.builder(); - - question.id( questionDto.getId() ); - question.text( questionDto.getText() ); - question.points( questionDto.getPoints() ); - question.orderInQuiz( questionDto.getOrderInQuiz() ); - - question.questionType( mapEntityEnumQuestionType(questionDto.getQuestionType()) ); - - Question questionResult = question.build(); - - linkOptionsToQuestion( questionResult ); - - return questionResult; - } - - @Override - public Option toOptionFromOptionDto(OptionDto optionDto) { - if ( optionDto == null ) { - return null; - } - - Option.OptionBuilder option = Option.builder(); - - option.id( optionDto.getId() ); - option.optionText( optionDto.getOptionText() ); - option.correct( optionDto.getCorrect() ); - option.order( optionDto.getOrder() ); - - return option.build(); - } -} diff --git a/quiz-service/target/generated-sources/annotations/com/codecampus/quiz/mapper/SubmissionMapperImpl.java b/quiz-service/target/generated-sources/annotations/com/codecampus/quiz/mapper/SubmissionMapperImpl.java deleted file mode 100644 index 4ef50eff..00000000 --- a/quiz-service/target/generated-sources/annotations/com/codecampus/quiz/mapper/SubmissionMapperImpl.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.codecampus.quiz.mapper; - -import com.codecampus.quiz.entity.QuizSubmissionAnswer; -import com.codecampus.quiz.grpc.AnswerDto; -import javax.annotation.processing.Generated; -import org.springframework.stereotype.Component; - -@Generated( - value = "org.mapstruct.ap.MappingProcessor", - date = "2025-08-07T16:50:17+0700", - comments = "version: 1.6.3, compiler: javac, environment: Java 21.0.7 (Oracle Corporation)" -) -@Component -public class SubmissionMapperImpl implements SubmissionMapper { - - @Override - public QuizSubmissionAnswer toQuizSubmissionAnswerFromAnswerDto(AnswerDto answerDto) { - if ( answerDto == null ) { - return null; - } - - QuizSubmissionAnswer.QuizSubmissionAnswerBuilder quizSubmissionAnswer = QuizSubmissionAnswer.builder(); - - quizSubmissionAnswer.answerText( answerDto.getAnswerText() ); - - return quizSubmissionAnswer.build(); - } -} diff --git a/search-service/src/main/resources/application-docker.yml b/search-service/src/main/resources/application-docker.yml index 283fcec5..3c934570 100644 --- a/search-service/src/main/resources/application-docker.yml +++ b/search-service/src/main/resources/application-docker.yml @@ -1,8 +1,3 @@ -server: - port: 8087 - servlet: - context-path: /search - spring: elasticsearch: uris: http://elasticsearch:9200 @@ -13,7 +8,7 @@ spring: lifecycle: timeout-per-shutdown-phase: 20s kafka: - bootstrap-servers: http://kafka:9092 + bootstrap-servers: kafka:9092 logging: level: diff --git a/submission-service/src/main/java/com/codecampus/submission/service/ExerciseService.java b/submission-service/src/main/java/com/codecampus/submission/service/ExerciseService.java index 372cf9ef..412b214a 100644 --- a/submission-service/src/main/java/com/codecampus/submission/service/ExerciseService.java +++ b/submission-service/src/main/java/com/codecampus/submission/service/ExerciseService.java @@ -182,6 +182,7 @@ public void createCodeSubmission( .sourceCode(codeSubmissionDto.getSourceCode()) .timeTakenSeconds(codeSubmissionDto.getTimeTakenSeconds()) .score(codeSubmissionDto.getScore()) + .memoryUsed(codeSubmissionDto.getPeakMemoryKb()) .status(codeSubmissionDto.getScore() == codeSubmissionDto.getTotalPoints() ? SubmissionStatus.PASSED @@ -213,8 +214,9 @@ public void createCodeSubmission( /* Side-effects */ if (submission.getStatus() == SubmissionStatus.PASSED) { - assignmentService.markCompleted(exercise.getId(), - submission.getId()); + assignmentService.markCompleted( + exercise.getId(), + submission.getUserId()); } contestService.updateRankingOnSubmission(submission); }