diff --git a/src/main/java/com/olympus/apollo/controllers/TestController.java b/src/main/java/com/olympus/apollo/controllers/TestController.java index 1f7174e..b1c9d7b 100644 --- a/src/main/java/com/olympus/apollo/controllers/TestController.java +++ b/src/main/java/com/olympus/apollo/controllers/TestController.java @@ -3,10 +3,11 @@ package com.olympus.apollo.controllers; import java.util.List; import com.olympus.apollo.dto.ResultDTO; -import com.olympus.apollo.feign.services.JavaParserModuleService; +import com.olympus.apollo.feign.services.ParserModuleService; import com.olympus.apollo.models.ParseProcess; import com.olympus.apollo.services.GitService; import com.olympus.dto.JavaParseRequest; +import com.olympus.dto.ParseRequest; import com.olympus.feign.JavaParserModule; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -35,6 +36,9 @@ public class TestController { @Autowired JavaParserModule javaParserModule; + @Autowired + ParserModuleService parserModuleService; + private static final Logger logger = LoggerFactory.getLogger(TestController.class); @GetMapping("test/ingestion_loop") @@ -108,8 +112,14 @@ public class TestController { return ResponseEntity.accepted().body("Request to parse the java application is being processed"); } + @PostMapping("/parse") + public ResponseEntity ParseApplication(@RequestBody ParseRequest parseRequest){ + parserModuleService.callParserModules(parseRequest); + return ResponseEntity.accepted().body("Request to parse the java application is being processed"); + } + @GetMapping("/get-parse-status") public ResponseEntity getParseStatus(@RequestParam String id){ - return javaParserModule.getParseStatus(id); + return parserModuleService.getJavaParseStatusDetails(id); } } diff --git a/src/main/java/com/olympus/apollo/dto/GitCloneInput.java b/src/main/java/com/olympus/apollo/dto/GitCloneInput.java index 9ea460b..65f8196 100644 --- a/src/main/java/com/olympus/apollo/dto/GitCloneInput.java +++ b/src/main/java/com/olympus/apollo/dto/GitCloneInput.java @@ -26,11 +26,5 @@ public class GitCloneInput { private int defaultChunkSize; private boolean codeParsingToBeDone; - //private String parseStatus; - //private String reverseEngineeringStatus; - //private String codeType; - private List codeTypes= new ArrayList<>(); - private List parseStatuses= new ArrayList<>(); - private List revEngineeringStatuses= new ArrayList<>(); } diff --git a/src/main/java/com/olympus/apollo/feign/services/JavaParserModuleService.java b/src/main/java/com/olympus/apollo/feign/services/JavaParserModuleService.java deleted file mode 100644 index 10058ac..0000000 --- a/src/main/java/com/olympus/apollo/feign/services/JavaParserModuleService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.olympus.apollo.feign.services; - -import com.olympus.apollo.models.ParseProcess; -import com.olympus.feign.JavaParserModule; -import com.olympus.dto.JavaParseRequest; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; -import org.springframework.scheduling.annotation.Async; -import org.springframework.stereotype.Service; - -import java.util.concurrent.CompletableFuture; - -@Service -public class JavaParserModuleService { - @Autowired - private JavaParserModule javaParserModule; - - - public void getJavaParsedDetails(JavaParseRequest javaParseRequest){ - CompletableFuture.completedFuture(javaParserModule.getJavaParsedDetails(javaParseRequest)); - } - - public ResponseEntity getParseStatusDetails(String parseId){ - return javaParserModule.getParseStatus(parseId); - } -} diff --git a/src/main/java/com/olympus/apollo/feign/services/ParserModuleService.java b/src/main/java/com/olympus/apollo/feign/services/ParserModuleService.java new file mode 100644 index 0000000..ea9a5e2 --- /dev/null +++ b/src/main/java/com/olympus/apollo/feign/services/ParserModuleService.java @@ -0,0 +1,54 @@ +package com.olympus.apollo.feign.services; + +import com.olympus.apollo.models.KSGitInfo; +import com.olympus.apollo.repository.KSGitInfoRepository; +import com.olympus.dto.ParseRequest; +import com.olympus.feign.JavaParserModule; +import com.olympus.dto.JavaParseRequest; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.Optional; +import java.util.concurrent.CompletableFuture; + +@Service +public class ParserModuleService { + @Autowired + private JavaParserModule javaParserModule; + + @Autowired + KSGitInfoRepository ksGitInfoRepository; + + public ResponseEntity getJavaParseStatusDetails(String RepositoryEntityId){ + KSGitInfo ksGitInfo = ksGitInfoRepository.findById(RepositoryEntityId).get(); + String parseProcessId=ksGitInfo.getParseStatuses().stream() + .filter(statuses -> "Java".equals(statuses.getType())) + .findFirst().get().getParseProcessId(); + + return javaParserModule.getParseStatus(parseProcessId); + } + + public void callParserModules(ParseRequest parseRequest) { + Optional ksGitInfo = ksGitInfoRepository.findById(parseRequest.getId()); + if(ksGitInfo.isPresent()){ + KSGitInfo gitInfo = ksGitInfo.get(); + gitInfo.getCodeTypes().forEach(codeType -> { + if(codeType.getType().equalsIgnoreCase("java")){ + JavaParseRequest javaParseRequest = new JavaParseRequest(); + javaParseRequest.setId(parseRequest.getId()); + javaParseRequest.setRepositoryPath(gitInfo.getRepoPath()); + javaParseRequest.setApplicationName(gitInfo.getKsGitIngestionInfo().getMetadata().get("KsApplicationName")); + javaParseRequest.setApplicationVersion(gitInfo.getCommitId()); + javaParseRequest.setDeleteExistingData(parseRequest.isDeleteExistingData()); + javaParseRequest.setApplicationType(codeType.getType()); + javaParseRequest.setProjectName(gitInfo.getRepoName()); + CompletableFuture.completedFuture(javaParserModule.getJavaParsedDetails(javaParseRequest)); + } + if(codeType.getType().equalsIgnoreCase("jsp")) { + System.out.println("JSP Parser Module"); + } + }); + } + } +} diff --git a/src/main/java/com/olympus/apollo/models/ParseStatuses.java b/src/main/java/com/olympus/apollo/models/ParseStatuses.java index 0c14021..ccb72cc 100644 --- a/src/main/java/com/olympus/apollo/models/ParseStatuses.java +++ b/src/main/java/com/olympus/apollo/models/ParseStatuses.java @@ -1,9 +1,11 @@ package com.olympus.apollo.models; +import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; @Getter @Setter +@AllArgsConstructor public class ParseStatuses { private String type; private String Status; diff --git a/src/main/java/com/olympus/apollo/models/RevEngineeringStatuses.java b/src/main/java/com/olympus/apollo/models/RevEngineeringStatuses.java index 9aa8310..24b0d81 100644 --- a/src/main/java/com/olympus/apollo/models/RevEngineeringStatuses.java +++ b/src/main/java/com/olympus/apollo/models/RevEngineeringStatuses.java @@ -1,9 +1,11 @@ package com.olympus.apollo.models; +import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; @Getter @Setter +@AllArgsConstructor public class RevEngineeringStatuses { private String type; private String status; diff --git a/src/main/java/com/olympus/apollo/utils/GitUtils.java b/src/main/java/com/olympus/apollo/utils/GitUtils.java index 793befe..5ae11c9 100644 --- a/src/main/java/com/olympus/apollo/utils/GitUtils.java +++ b/src/main/java/com/olympus/apollo/utils/GitUtils.java @@ -1,9 +1,7 @@ package com.olympus.apollo.utils; import com.olympus.apollo.dto.GitCloneInput; -import com.olympus.apollo.models.CodeTypes; -import com.olympus.apollo.models.KSGitInfo; -import com.olympus.apollo.models.KSGitIngestionInfo; +import com.olympus.apollo.models.*; import org.eclipse.jgit.lib.Ref; import org.eclipse.jgit.lib.Repository; import org.slf4j.Logger; @@ -12,6 +10,7 @@ import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -36,8 +35,15 @@ public class GitUtils { info.setCodeParsingToBeDone(gitCloneInput.isCodeParsingToBeDone()); info.setCodeTypes(gitCloneInput.getCodeTypes()); - info.setParseStatuses(gitCloneInput.getParseStatuses()); - info.setRevEngineeringStatuses(gitCloneInput.getRevEngineeringStatuses()); + + List parseStatuses = new ArrayList<>(); + List revEngineeringStatuses = new ArrayList<>(); + gitCloneInput.getCodeTypes().forEach(codeType -> { + parseStatuses.add(new ParseStatuses(codeType.getType(), "NEW", "")); + revEngineeringStatuses.add(new RevEngineeringStatuses(codeType.getType(), "NEW", "")); + }); + info.setParseStatuses(parseStatuses); + info.setRevEngineeringStatuses(revEngineeringStatuses); logger.info("KSGitInfo Created: {}, {}",info.getRepoName(),info.getBranch()); return info;