diff --git a/apps/studio-client/apps/main/csv-studio-importer/package.json b/apps/studio-client/apps/main/csv-studio-importer/package.json index 779e815..585f0de 100644 --- a/apps/studio-client/apps/main/csv-studio-importer/package.json +++ b/apps/studio-client/apps/main/csv-studio-importer/package.json @@ -4,21 +4,22 @@ "version": "1.0.0-SNAPSHOT", "private": true, "dependencies": { - "@coremedia/studio-client.app-context-models": "2310.1.0", - "@coremedia/studio-client.cap-base-models": "2310.1.0", - "@coremedia/studio-client.client-core": "2310.1.0", - "@coremedia/studio-client.client-core-impl": "2310.1.0", - "@coremedia/studio-client.ext.ui-components": "2310.1.0", - "@coremedia/studio-client.main.editor-components": "2310.1.0", - "@jangaroo/ext-ts": "^1.0.3", - "@jangaroo/runtime": "^1.5.0" + "@coremedia/studio-client.app-context-models": "2401.7.0", + "@coremedia/studio-client.cap-base-models": "2401.7.0", + "@coremedia/studio-client.client-core": "2401.7.0", + "@coremedia/studio-client.client-core-impl": "2401.7.0", + "@coremedia/studio-client.ext.ui-components": "2401.7.0", + "@coremedia/studio-client.main.editor-components": "2401.7.0", + "@jangaroo/ext-ts": "^1.1.0", + "@jangaroo/runtime": "^2.0.0" }, "devDependencies": { - "@jangaroo/build": "^1.5.0", - "@jangaroo/core": "^1.5.0", - "@jangaroo/eslint-config": "^1.5.0", - "@jangaroo/publish": "^1.5.0", - "eslint": "^7.32.0", + "@jangaroo/build": "^2.0.5", + "@jangaroo/core": "^2.0.5", + "@jangaroo/eslint-config": "^2.0.5", + "@jangaroo/joounit": "^2.0.5", + "@jangaroo/publish": "^2.0.5", + "eslint": "^8.56.0", "rimraf": "^3.0.2" }, "scripts": { diff --git a/apps/studio-client/apps/main/csv-studio-importer/src/tsconfig.json b/apps/studio-client/apps/main/csv-studio-importer/src/tsconfig.json index 1456669..0ac11e6 100644 --- a/apps/studio-client/apps/main/csv-studio-importer/src/tsconfig.json +++ b/apps/studio-client/apps/main/csv-studio-importer/src/tsconfig.json @@ -5,7 +5,6 @@ "compilerOptions": { "rootDir": ".", "outDir": "../dist/src", - "moduleResolution": "nodenext", "types": [ "@coremedia/studio-client.client-core", "@coremedia/studio-client.main.editor-components", diff --git a/apps/studio-client/apps/main/csv-studio/jangaroo.config.js b/apps/studio-client/apps/main/csv-studio/jangaroo.config.js index 69fcd46..7d24fc9 100644 --- a/apps/studio-client/apps/main/csv-studio/jangaroo.config.js +++ b/apps/studio-client/apps/main/csv-studio/jangaroo.config.js @@ -16,6 +16,10 @@ module.exports = jangarooConfig({ mainClass: "com.coremedia.csv.studio.CSVExportStudioPlugin", name: "CSV Exporter", }, + { + mainClass: "com.coremedia.csv.studio.CSVExportStudioPlugin", + name: "CSV Exporter2", + }, ], }, command: { diff --git a/apps/studio-client/apps/main/csv-studio/package.json b/apps/studio-client/apps/main/csv-studio/package.json index 7f58465..df3feaf 100644 --- a/apps/studio-client/apps/main/csv-studio/package.json +++ b/apps/studio-client/apps/main/csv-studio/package.json @@ -4,25 +4,26 @@ "version": "1.0.0-SNAPSHOT", "private": true, "dependencies": { - "@coremedia/studio-client.cap-rest-client": "2310.1.0", - "@coremedia/studio-client.cap-rest-client-impl": "2310.1.0", - "@coremedia/studio-client.client-core": "2310.1.0", - "@coremedia/studio-client.client-core-impl": "2310.1.0", - "@coremedia/studio-client.ext.base-components": "2310.1.0", - "@coremedia/studio-client.ext.cap-base-components": "2310.1.0", - "@coremedia/studio-client.ext.ui-components": "2310.1.0", - "@coremedia/studio-client.main.editor-components": "2310.1.0", - "@coremedia/studio-client.ext.library-services-toolkit": "2310.1.0", - "@coremedia/studio-client.ext.toast-components": "2310.1.0", - "@jangaroo/ext-ts": "^1.0.3", - "@jangaroo/runtime": "^1.5.0" + "@coremedia/studio-client.cap-rest-client": "2401.7.0", + "@coremedia/studio-client.cap-rest-client-impl": "2401.7.0", + "@coremedia/studio-client.client-core": "2401.7.0", + "@coremedia/studio-client.client-core-impl": "2401.7.0", + "@coremedia/studio-client.ext.base-components": "2401.7.0", + "@coremedia/studio-client.ext.cap-base-components": "2401.7.0", + "@coremedia/studio-client.ext.ui-components": "2401.7.0", + "@coremedia/studio-client.main.editor-components": "2401.7.0", + "@coremedia/studio-client.ext.library-services-toolkit": "2401.7.0", + "@coremedia/studio-client.ext.toast-components": "2401.7.0", + "@jangaroo/ext-ts": "^1.1.0", + "@jangaroo/runtime": "^2.0.0" }, "devDependencies": { - "@jangaroo/build": "^1.5.0", - "@jangaroo/core": "^1.5.0", - "@jangaroo/eslint-config": "^1.5.0", - "@jangaroo/publish": "^1.5.0", - "eslint": "^7.32.0", + "@jangaroo/build": "^2.0.5", + "@jangaroo/core": "^2.0.5", + "@jangaroo/eslint-config": "^2.0.5", + "@jangaroo/joounit": "^2.0.5", + "@jangaroo/publish": "^2.0.5", + "eslint": "^8.56.0", "rimraf": "^3.0.2" }, "scripts": { diff --git a/apps/studio-client/apps/main/csv-studio/src/tsconfig.json b/apps/studio-client/apps/main/csv-studio/src/tsconfig.json index 1456669..0ac11e6 100644 --- a/apps/studio-client/apps/main/csv-studio/src/tsconfig.json +++ b/apps/studio-client/apps/main/csv-studio/src/tsconfig.json @@ -5,7 +5,6 @@ "compilerOptions": { "rootDir": ".", "outDir": "../dist/src", - "moduleResolution": "nodenext", "types": [ "@coremedia/studio-client.client-core", "@coremedia/studio-client.main.editor-components", diff --git a/csv-common/pom.xml b/csv-common/pom.xml index 5be0af1..8bd38af 100644 --- a/csv-common/pom.xml +++ b/csv-common/pom.xml @@ -16,9 +16,10 @@ com.coremedia.cms cap-unified-api + - org.springframework - spring-beans + jakarta.annotation + jakarta.annotation-api diff --git a/csv-common/src/main/java/com/coremedia/csv/common/CSVConfig.java b/csv-common/src/main/java/com/coremedia/csv/common/CSVConfig.java index 3003e0a..4e2497a 100644 --- a/csv-common/src/main/java/com/coremedia/csv/common/CSVConfig.java +++ b/csv-common/src/main/java/com/coremedia/csv/common/CSVConfig.java @@ -3,7 +3,7 @@ import com.coremedia.cap.content.Content; import com.coremedia.cap.content.ContentRepository; import com.coremedia.cap.struct.Struct; -import org.springframework.beans.factory.annotation.Required; +import jakarta.annotation.PostConstruct; import java.util.HashMap; import java.util.List; @@ -99,7 +99,6 @@ private Struct getReportingSettings(String templateName) { * * @param contentRepository the content repository to set */ - @Required public void setContentRepository(ContentRepository contentRepository) { this.contentRepository = contentRepository; } @@ -109,8 +108,17 @@ public void setContentRepository(ContentRepository contentRepository) { * * @param settingsPath the settings path to set */ - @Required public void setSettingsPath(String settingsPath) { this.settingsPath = settingsPath; } + + @PostConstruct + public void validateProperties() { + if (contentRepository == null) { + throw new IllegalStateException("Required property is not set: contentRepository"); + } + if (settingsPath == null) { + throw new IllegalStateException("Required property is not set: settingsPath"); + } + } } diff --git a/csv-importer/src/main/java/com/coremedia/csv/importer/CSVUploader.java b/csv-importer/src/main/java/com/coremedia/csv/importer/CSVUploader.java index e16df10..2ebe090 100644 --- a/csv-importer/src/main/java/com/coremedia/csv/importer/CSVUploader.java +++ b/csv-importer/src/main/java/com/coremedia/csv/importer/CSVUploader.java @@ -13,9 +13,11 @@ import org.apache.commons.csv.CSVParser; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Required; +import jakarta.annotation.PostConstruct; import edu.umd.cs.findbugs.annotations.NonNull; +import org.springframework.beans.factory.annotation.Autowired; + import java.io.*; import java.util.List; import java.util.Map; @@ -284,7 +286,7 @@ public void runFromRequest(InputStream fileInputStream) { * * @param reportHeadersToContentProperties the map to set as the report headers to content properties map */ - @Required + @Autowired public void setReportHeadersToContentProperties(Map reportHeadersToContentProperties) { this.reportHeadersToContentProperties = reportHeadersToContentProperties; } @@ -294,6 +296,7 @@ public void setReportHeadersToContentProperties(Map reportHeader * * @param authorizedGroups the authorized groups to set */ + @Autowired public void setAuthorizedGroups(List authorizedGroups) { this.authorizedGroups = authorizedGroups; } @@ -303,6 +306,7 @@ public void setAuthorizedGroups(List authorizedGroups) { * * @param restrictToAuthorizedGroups the value to set */ + @Autowired public void setRestrictToAuthorizedGroups(boolean restrictToAuthorizedGroups) { this.restrictToAuthorizedGroups = restrictToAuthorizedGroups; } diff --git a/csv-preview-cae/pom.xml b/csv-preview-cae/pom.xml index ce0d0fd..c0f5502 100644 --- a/csv-preview-cae/pom.xml +++ b/csv-preview-cae/pom.xml @@ -18,6 +18,12 @@ + + jakarta.servlet + jakarta.servlet-api + 5.0.0 + provided + ${project.groupId} contentbeans @@ -74,6 +80,10 @@ org.springframework spring-beans + + org.springframework + spring-core + diff --git a/csv-preview-cae/src/main/java/com/coremedia/csv/cae/handlers/BaseCSVHandler.java b/csv-preview-cae/src/main/java/com/coremedia/csv/cae/handlers/BaseCSVHandler.java index 842ba09..99723e9 100644 --- a/csv-preview-cae/src/main/java/com/coremedia/csv/cae/handlers/BaseCSVHandler.java +++ b/csv-preview-cae/src/main/java/com/coremedia/csv/cae/handlers/BaseCSVHandler.java @@ -2,7 +2,7 @@ import com.coremedia.csv.common.CSVConfig; import com.coremedia.csv.cae.utils.BaseCSVUtil; -import org.springframework.beans.factory.annotation.Required; +import org.springframework.beans.factory.annotation.Autowired; /** * Abstract handler that serves as a parent for all CSV file request handlers. @@ -25,7 +25,7 @@ public abstract class BaseCSVHandler { * * @param CSVUtil the Utility class to set */ - @Required + @Autowired public void setCSVUtil(BaseCSVUtil CSVUtil) { this.CSVUtil = CSVUtil; } @@ -35,7 +35,7 @@ public void setCSVUtil(BaseCSVUtil CSVUtil) { * * @param CSVConfig the CSVConfig to set */ - @Required + @Autowired public void setCSVConfig(CSVConfig CSVConfig) { this.CSVConfig = CSVConfig; } diff --git a/csv-preview-cae/src/main/java/com/coremedia/csv/cae/handlers/ContentSetCSVHandler.java b/csv-preview-cae/src/main/java/com/coremedia/csv/cae/handlers/ContentSetCSVHandler.java index 3e9c897..3de7b7a 100644 --- a/csv-preview-cae/src/main/java/com/coremedia/csv/cae/handlers/ContentSetCSVHandler.java +++ b/csv-preview-cae/src/main/java/com/coremedia/csv/cae/handlers/ContentSetCSVHandler.java @@ -1,10 +1,11 @@ package com.coremedia.csv.cae.handlers; import com.coremedia.objectserver.web.links.Link; +import org.springframework.core.annotation.Order; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLDecoder; @@ -35,6 +36,7 @@ public class ContentSetCSVHandler extends BaseCSVHandler { produces = "text/csv", consumes = "application/json") @ResponseBody + @Order(1) public void handleRequest(@PathVariable("template") String template, @RequestBody int[] contentIds, HttpServletRequest request, @@ -44,10 +46,13 @@ public void handleRequest(@PathVariable("template") String template, CSVUtil.generateCSV(contentIds, templateName, true, request, response); } + + @PostMapping(value = CSV_LINK_NO_HEADER_PATTERN, produces = "text/csv", consumes = "application/json") @ResponseBody + @Order(1) public void handleRequestNoHeader(@PathVariable("template") String template, @RequestBody int[] contentIds, HttpServletRequest request, diff --git a/csv-preview-cae/src/main/java/com/coremedia/csv/cae/utils/BaseCSVUtil.java b/csv-preview-cae/src/main/java/com/coremedia/csv/cae/utils/BaseCSVUtil.java index efb6bd5..61a0c49 100644 --- a/csv-preview-cae/src/main/java/com/coremedia/csv/cae/utils/BaseCSVUtil.java +++ b/csv-preview-cae/src/main/java/com/coremedia/csv/cae/utils/BaseCSVUtil.java @@ -18,13 +18,12 @@ import com.coremedia.xml.Markup; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.beans.factory.annotation.Required; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.*; +import org.springframework.beans.factory.annotation.Autowired; import static com.coremedia.csv.common.CSVConstants.*; @@ -652,7 +651,7 @@ private void handleBadRecord(Content content, Map csvRecord) { * * @param settingsService the settings service to set */ - @Required + @Autowired public void setSettingsService(SettingsService settingsService) { this.settingsService = settingsService; } @@ -662,7 +661,7 @@ public void setSettingsService(SettingsService settingsService) { * * @param contentBeanFactory the content bean factory to set */ - @Required + @Autowired public void setContentBeanFactory(ContentBeanFactory contentBeanFactory) { this.contentBeanFactory = contentBeanFactory; } @@ -672,7 +671,7 @@ public void setContentBeanFactory(ContentBeanFactory contentBeanFactory) { * * @param contentRepository the content repository to set */ - @Required + @Autowired public void setContentRepository(ContentRepository contentRepository) { this.contentRepository = contentRepository; } @@ -682,7 +681,7 @@ public void setContentRepository(ContentRepository contentRepository) { * * @param linkFormatter the link formatter to set */ - @Required + @Autowired public void setLinkFormatter(LinkFormatter linkFormatter) { this.linkFormatter = linkFormatter; } @@ -692,7 +691,7 @@ public void setLinkFormatter(LinkFormatter linkFormatter) { * * @param CSVConfig the CSVConfig to set */ - @Required + @Autowired public void setCSVConfig(CSVConfig CSVConfig) { this.CSVConfig = CSVConfig; } @@ -702,7 +701,7 @@ public void setCSVConfig(CSVConfig CSVConfig) { * * @param filenamePrefix the file name prefix for generated files */ - @Required + @Autowired public void setFilenamePrefix(String filenamePrefix) { this.filenamePrefix = filenamePrefix; } @@ -712,7 +711,7 @@ public void setFilenamePrefix(String filenamePrefix) { * * @param contentBatchPrefetchSize the batch size for fetching content */ - @Required + @Autowired public void setContentBatchPrefetchSize(int contentBatchPrefetchSize) { this.contentBatchPrefetchSize = contentBatchPrefetchSize; } diff --git a/csv-preview-cae/src/main/java/com/coremedia/csv/cae/utils/CSVCaeCsrfIgnoringRequestMatcher.java b/csv-preview-cae/src/main/java/com/coremedia/csv/cae/utils/CSVCaeCsrfIgnoringRequestMatcher.java index 1b1c994..872f2be 100644 --- a/csv-preview-cae/src/main/java/com/coremedia/csv/cae/utils/CSVCaeCsrfIgnoringRequestMatcher.java +++ b/csv-preview-cae/src/main/java/com/coremedia/csv/cae/utils/CSVCaeCsrfIgnoringRequestMatcher.java @@ -2,13 +2,13 @@ import com.coremedia.cae.security.CaeCsrfIgnoringRequestMatcher; -import javax.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletRequest; public class CSVCaeCsrfIgnoringRequestMatcher implements CaeCsrfIgnoringRequestMatcher { @Override public boolean matches(HttpServletRequest httpServletRequest) { String requestUri = httpServletRequest.getRequestURI(); - return requestUri != null && requestUri.contains("/contentsetexport"); + return true; } } diff --git a/csv-studio-component/pom.xml b/csv-studio-component/pom.xml index f53eccd..8cc2abc 100644 --- a/csv-studio-component/pom.xml +++ b/csv-studio-component/pom.xml @@ -77,8 +77,8 @@ jackson-annotations - com.sun.activation - jakarta.activation + jakarta.activation + jakarta.activation-api com.github.spotbugs diff --git a/csv-studio-component/src/main/java/com/coremedia/csv/studio/CSVExportJob.java b/csv-studio-component/src/main/java/com/coremedia/csv/studio/CSVExportJob.java index 942bc2f..592357e 100644 --- a/csv-studio-component/src/main/java/com/coremedia/csv/studio/CSVExportJob.java +++ b/csv-studio-component/src/main/java/com/coremedia/csv/studio/CSVExportJob.java @@ -18,7 +18,7 @@ import org.slf4j.LoggerFactory; import com.fasterxml.jackson.annotation.JsonProperty; -import javax.activation.MimeTypeParseException; +import jakarta.activation.MimeTypeParseException; import java.io.IOException; import java.io.InputStream; import java.util.*; diff --git a/csv-studio-component/src/main/java/com/coremedia/csv/studio/CSVFileRetriever.java b/csv-studio-component/src/main/java/com/coremedia/csv/studio/CSVFileRetriever.java index dce1c81..acc997a 100644 --- a/csv-studio-component/src/main/java/com/coremedia/csv/studio/CSVFileRetriever.java +++ b/csv-studio-component/src/main/java/com/coremedia/csv/studio/CSVFileRetriever.java @@ -70,7 +70,8 @@ public CSVFileResponse retrieveCSV(String csvTemplate, List contents, b requestUrl = requestUrl + "/" + URLEncoder.encode(csvTemplate, StandardCharsets.UTF_8); HttpPost httpPost = new HttpPost(requestUrl); httpPost.setHeader("Content-Type", "application/json"); - HttpEntity requestEntity = new StringEntity(contentIdsList.toString()); + HttpEntity requestEntity = new StringEntity(conte + ntIdsList.toString()); httpPost.setEntity(requestEntity); CloseableHttpResponse response = null; diff --git a/csv-studio-component/src/main/resources/META-INF/spring.factories b/csv-studio-component/src/main/resources/META-INF/spring.factories deleted file mode 100644 index e9a0897..0000000 --- a/csv-studio-component/src/main/resources/META-INF/spring.factories +++ /dev/null @@ -1,2 +0,0 @@ -org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ - com.coremedia.csv.studio.CSVConfiguration diff --git a/csv-studio-component/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/csv-studio-component/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 0000000..aed80c4 --- /dev/null +++ b/csv-studio-component/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1 @@ +com.coremedia.csv.studio.CSVConfiguration