diff --git a/gradle.properties b/gradle.properties index de97df3..6e568a3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,4 +2,6 @@ name=plugin-import-robot version=1.0.1 description=Reinforce your ReportPortal instance with RobotFramework Import functionality and easily upload your log files right to ReportPortal. pluginId=RobotFramework -lombokVersion=1.18.30 +lombokVersion=1.18.36 + +springBootVersion=3.4.2 diff --git a/plugin-robot/build.gradle b/plugin-robot/build.gradle index d2d3a0d..1807ca0 100644 --- a/plugin-robot/build.gradle +++ b/plugin-robot/build.gradle @@ -1,5 +1,5 @@ plugins { - id "io.spring.dependency-management" version "1.1.4" + id "io.spring.dependency-management" version "1.1.7" id 'java' id 'jacoco' id "com.github.node-gradle.node" version "2.2.1" @@ -39,6 +39,8 @@ dependencyManagement { } } +ext['spring-boot.version'] = "${springBootVersion}" + dependencies { if (releaseMode) { implementation 'com.epam.reportportal:commons-dao' @@ -46,14 +48,11 @@ dependencies { implementation 'com.epam.reportportal:plugin-api' annotationProcessor 'com.epam.reportportal:plugin-api' } else { - implementation 'com.github.reportportal:commons-dao:a98c172' - implementation 'com.github.reportportal:commons:develop-SNAPSHOT' - implementation 'com.github.reportportal:plugin-api:develop-SNAPSHOT' - annotationProcessor 'com.github.reportportal:plugin-api:develop-SNAPSHOT' + implementation 'com.github.reportportal:commons-dao:11fa2a6' + implementation 'com.github.reportportal:plugin-api:8874441' + annotationProcessor 'com.github.reportportal:plugin-api:8874441' } - implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.7' - implementation 'org.hibernate:hibernate-core:5.6.15.Final' - + implementation "org.springframework:spring-test" // add lombok support compileOnly "org.projectlombok:lombok:${lombokVersion}" annotationProcessor "org.projectlombok:lombok:${lombokVersion}" diff --git a/plugin-robot/src/main/java/com/epam/reportportal/extension/robot/RobotFrameworkPluginExtension.java b/plugin-robot/src/main/java/com/epam/reportportal/extension/robot/RobotFrameworkPluginExtension.java index a227056..601dbc4 100644 --- a/plugin-robot/src/main/java/com/epam/reportportal/extension/robot/RobotFrameworkPluginExtension.java +++ b/plugin-robot/src/main/java/com/epam/reportportal/extension/robot/RobotFrameworkPluginExtension.java @@ -22,12 +22,12 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import jakarta.annotation.PostConstruct; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.function.Supplier; -import javax.annotation.PostConstruct; import org.pf4j.Extension; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.annotation.Autowired; diff --git a/plugin-robot/src/main/java/com/epam/reportportal/extension/robot/service/RobotXmlParser.java b/plugin-robot/src/main/java/com/epam/reportportal/extension/robot/service/RobotXmlParser.java index 3aaa0d5..5423e40 100644 --- a/plugin-robot/src/main/java/com/epam/reportportal/extension/robot/service/RobotXmlParser.java +++ b/plugin-robot/src/main/java/com/epam/reportportal/extension/robot/service/RobotXmlParser.java @@ -49,7 +49,6 @@ import com.google.common.collect.Lists; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import java.time.Instant; import java.util.ArrayDeque; import java.util.ArrayList; @@ -69,12 +68,11 @@ import javax.xml.parsers.DocumentBuilder; import lombok.Getter; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.fileupload.disk.DiskFileItem; import org.springframework.context.ApplicationEventPublisher; import org.springframework.http.MediaTypeFactory; +import org.springframework.mock.web.MockMultipartFile; import org.springframework.util.StringUtils; import org.springframework.web.multipart.MultipartFile; -import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.w3c.dom.Document; import org.w3c.dom.Element; import org.w3c.dom.Node; @@ -380,22 +378,12 @@ private MultipartFile getImageMultipartFile(String msg) { Matcher matcher = IMG_REGEX.matcher(msg); if (matcher.find() && zipFile != null) { String imgName = matcher.group(1); - return findScreenshot(imgName).map(screen -> { - DiskFileItem fileItem = new DiskFileItem("file", screen.getContentType(), false, - screen.getName(), - screen.getContent().length, null); - try (OutputStream os = fileItem.getOutputStream()) { - os.write(screen.getContent()); - } catch (IOException e) { - log.error(e.getMessage()); - } - return fileItem; - }).map(CommonsMultipartFile::new).orElse(null); + return findScreenshot(imgName).orElse(null); } return null; } - private Optional findScreenshot(String imgName) { + private Optional findScreenshot(String imgName) { Enumeration entries = zipFile.entries(); while (entries.hasMoreElements()) { ZipEntry entry = entries.nextElement(); @@ -405,10 +393,10 @@ private Optional findScreenshot(String imgName) { SUPPORTED_IMAGE_CONTENT_TYPES.contains( MediaTypeFactory.getMediaType(entry.getName()).get().toString())) { try (InputStream inputStream = zipFile.getInputStream(entry)) { - final SaveLogRQ.File file = new SaveLogRQ.File(); - file.setName(entry.getName()); - file.setContentType(MediaTypeFactory.getMediaType(entry.getName()).get().toString()); - file.setContent(inputStream.readAllBytes()); + MultipartFile file = new MockMultipartFile("file", + entry.getName(), + MediaTypeFactory.getMediaType(entry.getName()).get().toString(), + inputStream.readAllBytes()); return Optional.of(file); } catch (IOException e) { log.error(e.getMessage());