diff --git a/src/main/java/com/olympus/hermione/controllers/ApplicationBrowserController.java b/src/main/java/com/olympus/hermione/controllers/ApplicationBrowserController.java index 822bbd3..7e8407e 100644 --- a/src/main/java/com/olympus/hermione/controllers/ApplicationBrowserController.java +++ b/src/main/java/com/olympus/hermione/controllers/ApplicationBrowserController.java @@ -1,18 +1,23 @@ package com.olympus.hermione.controllers; import com.olympus.dto.ClassDetailedInfo; +import com.olympus.dto.CommonReverseEngRequest; import com.olympus.dto.FileSimpleInfo; import com.olympus.dto.FileSimpleInfoRequest; import com.olympus.dto.MethodDetailedInfo; import com.olympus.dto.TreeNode; +import com.olympus.feign.JavaREModule; import com.olympus.feign.SourceCodeModule; +import com.olympus.hermione.services.ApplicationBrowserService; import com.olympus.hermione.services.SourceCodeService; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @@ -26,6 +31,9 @@ public class ApplicationBrowserController { @Autowired private SourceCodeModule sourceCodeModule; + @Autowired + private ApplicationBrowserService appBrowserService; + @GetMapping("/source-viewer/getApplicationTreeNode") public TreeNode getApplicationNode(@RequestParam() String applicationName){ return sourceCodeModule.getTreeFromNode(applicationName,"application"); @@ -46,5 +54,19 @@ public class ApplicationBrowserController { return sourceCodeModule.getFileSimpleInfo(fileinfo); } + @PostMapping("/java-re-module/doRevSingleClass") + public String doRevEngForSingleClass(@RequestBody CommonReverseEngRequest classInfo){ + + + //return javaREModule.revSingleClass(classInfo); + return appBrowserService.getKSGitInfoByProjectNameAndRepoName(classInfo); + + } + + @GetMapping("/java-re-module/getProgressRevSingleClass/{processId}") + public ResponseEntity getProgressRevEngForSingleClass(@PathVariable String processId){ + return appBrowserService.getProgressRev(processId); + } + } diff --git a/src/main/java/com/olympus/hermione/repository/KSGitInfoRepository.java b/src/main/java/com/olympus/hermione/repository/KSGitInfoRepository.java new file mode 100644 index 0000000..72b9cc5 --- /dev/null +++ b/src/main/java/com/olympus/hermione/repository/KSGitInfoRepository.java @@ -0,0 +1,14 @@ +package com.olympus.hermione.repository; + +import org.springframework.stereotype.Repository; +import org.springframework.data.mongodb.repository.MongoRepository; + + +import com.olympus.model.Application; +import com.olympus.model.apollo.KSGitInfo; + +@Repository +public interface KSGitInfoRepository extends MongoRepository{ + + KSGitInfo findByProjectNameAndRepoName(String projectName, String repoName); +} diff --git a/src/main/java/com/olympus/hermione/services/ApplicationBrowserService.java b/src/main/java/com/olympus/hermione/services/ApplicationBrowserService.java new file mode 100644 index 0000000..c2a2153 --- /dev/null +++ b/src/main/java/com/olympus/hermione/services/ApplicationBrowserService.java @@ -0,0 +1,71 @@ +package com.olympus.hermione.services; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import com.olympus.dto.CommonReverseEngRequest; +import com.olympus.feign.JavaREModule; +import com.olympus.hermione.repository.ApplicationRepository; +import com.olympus.hermione.repository.KSGitInfoRepository; +import com.olympus.model.ReverseEngProcess; +import com.olympus.model.apollo.KSGitInfo; + +@Service +public class ApplicationBrowserService { + + private Logger logger = LoggerFactory.getLogger(ApplicationBrowserService.class); + + @Autowired + private KSGitInfoRepository KSGitInfoRepo; + + @Autowired + private JavaREModule javaREModule; + + public String getKSGitInfoByProjectNameAndRepoName(CommonReverseEngRequest classInfo) { + logger.info("getKSGitInfoByProjectNameAndRepoName function:"); + String result = "KO"; + + KSGitInfo kSGitInfo = null; + + try { + kSGitInfo = KSGitInfoRepo.findByProjectNameAndRepoName(classInfo.getApplicationProjectName(), classInfo.getApplicationName()); + + if(kSGitInfo != null){ + classInfo.setApplicationVersion(kSGitInfo.getApplicationVersion()); + classInfo.setCommitSha(kSGitInfo.getCommitId()); + classInfo.setRepositoryEntityId(kSGitInfo.getId()); + + result = javaREModule.revSingleClass(classInfo); + + + } + + } catch (Exception e) { + logger.error("Exception KSGitInfoRepository: {}", e.getMessage()); + } + return result; + } + + public ResponseEntity getProgressRev(String processId) { + logger.info("getProgressRev function:"); + + ResponseEntity responseEntity = null; + + try { + // Chiama il metodo getProcessStatus e memorizza il risultato + responseEntity = javaREModule.getProcessStatus(processId); + + } catch (Exception e) { + // In caso di eccezione + logger.error("Exception in getProgressRev: {}", e.getMessage()); + } + + return responseEntity; +} + + +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e41aba6..66fc569 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,10 +1,15 @@ spring.application.name=hermione server.port=8081 -spring.data.mongodb.uri=mongodb+srv://olympus_adm:26111979@olympus.l6qor4p.mongodb.net/?retryWrites=true&w=majority&appName=Olympus +# spring.data.mongodb.uri=mongodb+srv://olympus_adm:26111979@olympus.l6qor4p.mongodb.net/?retryWrites=true&w=majority&appName=Olympus +# spring.data.mongodb.database=olympus +# spring.data.mongodb.username=olympus_adm +# spring.data.mongodb.password=26111979 + +spring.data.mongodb.uri=mongodb+srv://olympusadmin:Camilla123!@db-olympus.global.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000 spring.data.mongodb.database=olympus -spring.data.mongodb.username=olympus_adm -spring.data.mongodb.password=26111979 +spring.data.mongodb.username=olympusadmin +spring.data.mongodb.password=Camilla123! spring.ai.vectorstore.mongodb.indexName=vector_index spring.ai.vectorstore.mongodb.collection-name=vector_store @@ -25,13 +30,21 @@ spring.ai.azure.openai.endpoint=https://ai-olympus.openai.azure.com/ spring.ai.azure.openai.chat.options.deployment-name=gpt-4o-mini spring.ai.azure.openai.chat.options.temperature=0.7 -neo4j.uri=neo4j+s://e17e6f08.databases.neo4j.io:7687 -neo4j.username=neo4j -neo4j.password=8SrSqQ3q6q9PQNWtN9ozqSQfGce4lfh_n6kKz2JIubQ +# neo4j.uri=neo4j+s://e17e6f08.databases.neo4j.io:7687 +# neo4j.username=neo4j +# neo4j.password=8SrSqQ3q6q9PQNWtN9ozqSQfGce4lfh_n6kKz2JIubQ -spring.neo4j.uri=neo4j+s://e17e6f08.databases.neo4j.io:7687 +neo4j.uri=bolt://57.153.162.67:7687 +neo4j.username=neo4j +neo4j.password=01J5h56IsTyyKt + +# spring.neo4j.uri=neo4j+s://e17e6f08.databases.neo4j.io:7687 +# spring.neo4j.authentication.username=neo4j +# spring.neo4j.authentication.password=8SrSqQ3q6q9PQNWtN9ozqSQfGce4lfh_n6kKz2JIubQ + +spring.neo4j.uri=bolt://57.153.162.67:7687 spring.neo4j.authentication.username=neo4j -spring.neo4j.authentication.password=8SrSqQ3q6q9PQNWtN9ozqSQfGce4lfh_n6kKz2JIubQ +spring.neo4j.authentication.password=01J5h56IsTyyKt spring.main.allow-bean-definition-overriding=true logging.level.org.springframework.ai.chat.client.advisor=DEBUG @@ -41,4 +54,5 @@ eureka.instance.preferIpAddress: true hermione.fe.url = http://localhost:5173 -java-parser-module.url: http://java-parser-module-service.olympus.svc.cluster.local:8080 \ No newline at end of file +java-parser-module.url: http://java-parser-module-service.olympus.svc.cluster.local:8080 + \ No newline at end of file