From e46ae29b5cb7eea1a73bca77ba6fd73b4cfcdb3b Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 18 Jul 2024 17:58:12 +0530 Subject: [PATCH 001/210] SDMEXT-560:Skeletopn for CAP Java Plugin SDMEXT-560:Basic skeleton as maven project with test,resources and java folders --- cap-notebook/attachments-demo-app.capnb | 244 +++++++++++ integration-tests/.gitignore | 29 ++ pom.xml | 237 +++++++++++ sdm/.flattened-pom.xml | 346 ++++++++++++++++ sdm/pom.xml | 380 ++++++++++++++++++ .../com/sap/cds/handler/TokenGenerator.java | 5 + .../com/sap/cds/model/SDMCredentials.java | 25 ++ .../sap/cds/service/SDMAttachmentService.java | 62 +++ .../resources/META-INF/maven/archetype.xml | 9 + .../resources/archetype-resources/pom.xml | 15 + .../src/main/java/App.java | 13 + .../src/test/java/AppTest.java | 38 ++ .../sdm/attachments-annotations.cds | 41 ++ .../cds/com.sap.cds/sdm/attachments.cds | 18 + .../resources/cds/com.sap.cds/sdm/index.cds | 2 + 15 files changed, 1464 insertions(+) create mode 100644 cap-notebook/attachments-demo-app.capnb create mode 100644 integration-tests/.gitignore create mode 100644 pom.xml create mode 100644 sdm/.flattened-pom.xml create mode 100644 sdm/pom.xml create mode 100644 sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java create mode 100644 sdm/src/main/java/com/sap/cds/model/SDMCredentials.java create mode 100644 sdm/src/main/java/com/sap/cds/service/SDMAttachmentService.java create mode 100644 sdm/src/main/resources/META-INF/maven/archetype.xml create mode 100644 sdm/src/main/resources/archetype-resources/pom.xml create mode 100644 sdm/src/main/resources/archetype-resources/src/main/java/App.java create mode 100644 sdm/src/main/resources/archetype-resources/src/test/java/AppTest.java create mode 100644 sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds create mode 100644 sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds create mode 100644 sdm/src/main/resources/cds/com.sap.cds/sdm/index.cds diff --git a/cap-notebook/attachments-demo-app.capnb b/cap-notebook/attachments-demo-app.capnb new file mode 100644 index 00000000..15451555 --- /dev/null +++ b/cap-notebook/attachments-demo-app.capnb @@ -0,0 +1,244 @@ +[ + { + "kind": 1, + "language": "markdown", + "value": "# CDS Feature Attachments CAP Notebook\n\nThis CAP notebook creates a CAP Java demoapp with sample data and enhances the app with the CAP feature for attachments.\nAll needed enhancements are done. \nFor more information check the project [README](../README.md). ", + "outputs": [] + }, + { + "kind": 1, + "language": "markdown", + "value": "## Add the App with Sample Data\n`cds init` is used to create a basic CAP Java app with sample data.", + "outputs": [] + }, + { + "kind": 2, + "language": "shell", + "value": "cds init demoapp --add java,sample\n", + "outputs": [ + { + "mime": "text/plain", + "value": "Creating new CAP project in ./demoapp\n\nAdding feature 'java'...\nUsing Maven archetype version 2.10.1\n[\u001b[1;34mINFO\u001b[m] Scanning for projects...\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------< \u001b[0;36morg.apache.maven:standalone-pom\u001b[0;1m >-------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mBuilding Maven Stub Project (No POM) 1\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m--------------------------------[ pom ]---------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m>>> \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[0;1m > \u001b[0;1mgenerate-sources\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m >>>\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m<<< \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[0;1m < \u001b[0;1mgenerate-sources\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m <<<\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m--- \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m ---\u001b[m\n[\u001b[1;34mINFO\u001b[m] Generating project in Batch mode\n[\u001b[1;34mINFO\u001b[m] Archetype repository not defined. Using the one from [com.sap.cds:cds-services-archetype:2.10.1] found in catalog remote\n[\u001b[1;34mINFO\u001b[m] ----------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Using following parameters for creating project from Archetype: cds-services-archetype:2.10.1\n[\u001b[1;34mINFO\u001b[m] ----------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Parameter: groupId, Value: customer\n[\u001b[1;34mINFO\u001b[m] Parameter: artifactId, Value: demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: version, Value: 1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] Parameter: package, Value: customer.demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: packageInPathFormat, Value: customer/demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: inMemoryDatabase, Value: h2\n[\u001b[1;34mINFO\u001b[m] Parameter: package, Value: customer.demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: includeIntegrationTest, Value: false\n[\u001b[1;34mINFO\u001b[m] Parameter: groupId, Value: customer\n[\u001b[1;34mINFO\u001b[m] Parameter: jdkVersion, Value: 17\n[\u001b[1;34mINFO\u001b[m] Parameter: nodeUrl, Value: https://nodejs.org/dist/\n[\u001b[1;34mINFO\u001b[m] Parameter: artifactId, Value: demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: includeModel, Value: false\n[\u001b[1;34mINFO\u001b[m] Parameter: targetPlatform, Value: local\n[\u001b[1;34mINFO\u001b[m] Parameter: version, Value: 1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] Parameter: odataVersion, Value: v4\n[\u001b[1;34mINFO\u001b[m] Parent element not overwritten in /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml\n[\u001b[1;34mINFO\u001b[m] Executing META-INF/archetype-post-generate.groovy post-generation script\n[INFO] Scanning for projects...\n[INFO] ------------------------------------------------------------------------\n[INFO] Reactor Build Order:\n[INFO] \n[INFO] demoapp parent [pom]\n[INFO] demoapp [jar]\n[INFO] \n[INFO] ----------------------< customer:demoapp-parent >-----------------------\n[INFO] Building demoapp parent 1.0.0-SNAPSHOT [1/2]\n[INFO] from pom.xml\n[INFO] --------------------------------[ pom ]---------------------------------\n[INFO] \n[INFO] --- cds:2.10.1:add (default-cli) @ demoapp-parent ---\n[INFO] AddMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[INFO] AddMojo: Added dependency `com.h2database:h2` to '/private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml'.\n[INFO] AddMojo: Added CDS command 'deploy --to h2 --dry > \"${project.basedir}/src/main/resources/schema-h2.sql\"' to cds-maven-plugin configuration in /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml.\n[INFO] AddMojo: Added profile 'default' to '/private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/src/main/resources/application.yaml'.\n[INFO] ------------------------------------------------------------------------\n[INFO] Reactor Summary for demoapp parent 1.0.0-SNAPSHOT:\n[INFO] \n[INFO] demoapp parent ..................................... SUCCESS [ 0.253 s]\n[INFO] demoapp ............................................ SKIPPED\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 0.399 s\n[INFO] Finished at: 2024-07-05T15:05:17+05:30\n[INFO] ------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Project created from Archetype in dir: /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1;32mBUILD SUCCESS\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] Total time: 3.456 s\n[\u001b[1;34mINFO\u001b[m] Finished at: 2024-07-05T15:05:17+05:30\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\nAdding feature 'sample'...\n[\u001b[1;34mINFO\u001b[m] Scanning for projects...\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mReactor Build Order:\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] demoapp parent [pom]\n[\u001b[1;34mINFO\u001b[m] demoapp [jar]\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m----------------------< \u001b[0;36mcustomer:demoapp-parent\u001b[0;1m >-----------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mBuilding demoapp parent 1.0.0-SNAPSHOT [1/2]\u001b[m\n[\u001b[1;34mINFO\u001b[m] from pom.xml\n[\u001b[1;34mINFO\u001b[m] \u001b[1m--------------------------------[ pom ]---------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m--- \u001b[0;32mcds:2.10.1:add\u001b[m \u001b[1m(default-cli)\u001b[m @ \u001b[36mdemoapp-parent\u001b[0;1m ---\u001b[m\n[\u001b[1;34mINFO\u001b[m] AddMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/schema.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/data/sap.capire.bookshop-Genres.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/data/sap.capire.bookshop-Books_texts.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/data/sap.capire.bookshop-Authors.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/data/sap.capire.bookshop-Books.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/cat-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/admin-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/manifest.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/Component.js\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/fiori-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/manifest.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/Component.js\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/fiori-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/common.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/_i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/_i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/appconfig/fioriSandboxConfig.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/services.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/index.html\n[\u001b[1;34mINFO\u001b[m] AddMojo: Added dependency `org.springframework.boot:spring-boot-starter-security` to '/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/pom.xml'.\nStandard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts\n[\u001b[1;33mWARNING\u001b[m] AddMojo: Profile 'default' exists and has been updated.\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mReactor Summary for demoapp parent 1.0.0-SNAPSHOT:\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] demoapp parent ..................................... \u001b[1;32mSUCCESS\u001b[m [ 0.292 s]\n[\u001b[1;34mINFO\u001b[m] demoapp ............................................ \u001b[1;33mSKIPPED\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1;32mBUILD SUCCESS\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] Total time: 0.415 s\n[\u001b[1;34mINFO\u001b[m] Finished at: 2024-07-05T15:05:18+05:30\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n\nSuccessfully created project. Continue with 'cd demoapp'.\nLearn about next steps at https://cap.cloud.sap\n\n" + } + ] + }, + { + "kind": 2, + "language": "shell", + "value": "cd demoapp", + "outputs": [ + { + "mime": "text/plain", + "value": "\n" + } + ] + }, + { + "kind": 1, + "language": "markdown", + "value": "## Add Enhancements for the Datamodel\nThe `books` entity will be enhanced with the `attachments` composition.\n\nTo be able to use the `cds-feature-attachments` datamodel a `pom.xml` needs to be added with the maven dependency for the feature.\nThe version for the dependency is taken from the file `version.txt`. \nThis file will be updated if a new version is created in the repository.\n\nOnce the `pom.xml` is available and the version is set a `mvn clean verify` is executed.\nWith the the `resolve` goal of the `cds-maven-plugin` is executed which copies the `cds`-files from the feature in the `target` folder of the `db` module.\n\nOnce available in the `target` folder it will be found and can be used in the data models.", + "outputs": [] + }, + { + "kind": 2, + "language": "shell", + "value": "%%writefile \"db/attachment-extension.cds\"\nusing {sap.capire.bookshop.Books} from './schema';\nusing {sap.attachments.Attachments, sap.attachments.StatusCode} from`com.sap.cds/cds-feature-attachments`;\n\nextend entity Books with {\n attachments : Composition of many Attachments;\n}\n\nentity Statuses @cds.autoexpose @readonly {\n key code : StatusCode;\n text : localized String(255);\n}\n\nextend Attachments with {\n statusText : Association to Statuses on statusText.code = $self.status;\n}\n\nannotate Books.attachments with {\n status @(\n Common.Text: {\n $value: ![statusText.text],\n ![@UI.TextArrangement]: #TextOnly\n },\n ValueList: {entity:'Statuses'},\n sap.value.list: 'fixed-values'\n );\n}\n", + "outputs": [ + { + "mime": "text/html", + "value": "Wrote cell content to file demoapp/db/attachment-extension.cds.\n" + } + ] + }, + { + "kind": 2, + "language": "shell", + "value": "", + "outputs": [ + { + "mime": "text/html", + "value": "Wrote cell content to file demoapp/db/data/Statuses.csv.\n" + } + ] + }, + { + "kind": 2, + "language": "shell", + "value": "", + "outputs": [ + { + "mime": "text/html", + "value": "Wrote cell content to file demoapp/db/data/Statuses_texts.csv.\n" + } + ] + }, + { + "kind": 2, + "language": "shell", + "value": "%%writefile \"db/pom.xml\"\n\n\n\t4.0.0\n\t\n\t\tdemoapp-parent\n\t\tcustomer\n\t\t${revision}\n\t\n\n\tdb\n\n \n \n \n com.sap.cds\n sdm\n 1.0.0\n \n \n\t\n\t\n\t\t\n\t\t\t\n\t\t\t\tcom.sap.cds\n\t\t\t\tcds-maven-plugin\n\t\t\t\t${cds.services.version}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tcds.clean\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tclean\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\tcds.resolve\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tresolve\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t\n\n", + "outputs": [ + { + "mime": "text/html", + "value": "Wrote cell content to file demoapp/db/pom.xml.\n" + } + ] + }, + { + "kind": 2, + "language": "shell", + "value": "cd db", + "outputs": [ + { + "mime": "text/plain", + "value": "\n" + } + ] + }, + { + "kind": 2, + "language": "java", + "value": "Path versionPath = Paths.get(\"../../version.txt\");\nString version;\nif (Files.exists(versionPath)){\n version = Files.readString(versionPath);\n System.out.println(\"Using version from 'version.txt': \" + version);\n}else{\n version = \"1.0.2\";\n System.out.println(\"Using hard coded version: \" + version);\n}\nPath pomPath = Paths.get(\"pom.xml\");\nStream lines = Files.lines(pomPath);\nList replaced = lines.map(line -> line.replaceAll(\"attachment_version\", version)).collect(Collectors.toList());\nFiles.write(pomPath, replaced);\nlines.close();", + "outputs": [ + { + "mime": "text/plain", + "value": "Using version from 'version.txt': 1.0.2\n\n\n" + } + ] + }, + { + "kind": 2, + "language": "shell", + "value": "mvn clean compile", + "outputs": [ + { + "mime": "text/plain", + "value": "[INFO] Scanning for projects...\n[INFO] \n[INFO] ----------------------------< customer:db >-----------------------------\n[INFO] Building db 1.0.0-SNAPSHOT\n[INFO] from pom.xml\n[INFO] --------------------------------[ jar ]---------------------------------\n[INFO] \n[INFO] --- clean:3.2.0:clean (default-clean) @ db ---\n[INFO] \n[INFO] --- flatten:1.6.0:clean (flatten.clean) @ db ---\n[INFO] \n[INFO] --- cds:2.10.1:clean (cds.clean) @ db ---\n[INFO] \n[INFO] --- enforcer:3.4.1:enforce (Project Structure Checks) @ db ---\n[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed\n[INFO] Rule 1: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed\n[INFO] Rule 2: org.apache.maven.enforcer.rules.ReactorModuleConvergence passed\n[INFO] \n[INFO] --- cds:2.10.1:resolve (cds.resolve) @ db ---\n[INFO] CdsResolveMojo: Extracting models from com.sap.cds:cds-feature-attachments:1.0.2 (/Users/I324829/.m2/repository/com/sap/cds/cds-feature-attachments/1.0.2/cds-feature-attachments-1.0.2.jar)\n[INFO] \n[INFO] --- resources:3.3.1:resources (default-resources) @ db ---\n[INFO] skip non existing resourceDirectory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/src/main/resources\n[INFO] \n[INFO] --- flatten:1.6.0:flatten (flatten) @ db ---\n[INFO] Generating flattened POM of project customer:db:jar:1.0.0-SNAPSHOT...\n[INFO] \n[INFO] --- compiler:3.12.1:compile (default-compile) @ db ---\n[INFO] No sources to compile\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 1.803 s\n[INFO] Finished at: 2024-07-05T15:05:22+05:30\n[INFO] ------------------------------------------------------------------------\n\n" + } + ] + }, + { + "kind": 1, + "language": "markdown", + "value": "## Service Changes\n\nThe service module `srv` of the demo project needs to be updated with the maven dependency for `cds-feature-attachments`.\nThis dependency has included the logic to correctly handle attachments and call the `AtacchmentService`.\n\nAlso here, the version is taken from the `version.txt` which is updated in case a new version in the repository is created.", + "outputs": [] + }, + { + "kind": 2, + "language": "shell", + "value": "cd ../srv", + "outputs": [ + { + "mime": "text/plain", + "value": "\n" + } + ] + }, + { + "kind": 1, + "language": "markdown", + "value": "add the following dependency to the `srv/pom.xml`:\n```\n\n com.sap.cds\n cds-feature-attachments\n ${latest-version}\n\n``` ", + "outputs": [] + }, + { + "kind": 2, + "language": "java", + "value": "\nPath versionPath = Paths.get(\"../../version.txt\");\nString version;\nif (Files.exists(versionPath)){\n version = Files.readString(versionPath);\n System.out.println(\"Using version from 'version.txt': \" + version);\n}else{\n version = \"1.0.2\";\n System.out.println(\"Using hard coded version: \" + version);\n}\n\nString filePath = \"pom.xml\";\ntry {\n String pom = Files.readString(Path.of(filePath));\n String searchString = \"\";\n Pattern pattern = Pattern.compile(searchString);\n Matcher matcher = pattern.matcher(pom);\n\n if (matcher.find()) {\n System.out.println(\"String found at position: \" + matcher.start());\n } else {\n System.out.println(\"String not found\");\n }\n\n String newDependency = \"\\n\\n \\n com.sap.cds\\n cds-feature-attachments\\n \" + version + \"\\n \\n\\n\";\n int insertPos = matcher.end();\n pom = pom.substring(0, insertPos) + newDependency + pom.substring(insertPos);\n\n Files.writeString(Path.of(filePath), pom);\n\n} catch (IOException e) {\n e.printStackTrace();\n}", + "outputs": [ + { + "mime": "text/plain", + "value": "Using version from 'version.txt': 1.0.2\n\nString found at position: 540\n\n" + } + ] + }, + { + "kind": 2, + "language": "shell", + "value": "cd ..", + "outputs": [ + { + "mime": "text/plain", + "value": "\n" + } + ] + }, + { + "kind": 1, + "language": "markdown", + "value": "## UI Enhancements\n", + "outputs": [] + }, + { + "kind": 1, + "language": "markdown", + "value": "### UI Facet\n\nA UI facet is added for the attachments in the `AdminService`. Because the facet is only added in this service, only this services shows the attachments on the UI.\n\nThe following facet is added:\n\n```\n{\n $Type : 'UI.ReferenceFacet',\n ID : 'AttachmentsFacet',\n Label : '{i18n>attachments}',\n Target: 'attachments/@UI.LineItem'\\n \n}\n```", + "outputs": [] + }, + { + "kind": 2, + "language": "java", + "value": "String filePath = \"app/admin-books/fiori-service.cds\";\n\ntry {\n String cds = Files.readString(Path.of(filePath));\n String searchString = \"Target:\\\\s*'@UI\\\\.FieldGroup#Details'\\\\s*},\";\n Pattern pattern = Pattern.compile(searchString);\n Matcher matcher = pattern.matcher(cds);\n\n if (matcher.find()) {\n System.out.println(\"String found at position: \" + matcher.start());\n } else {\n System.out.println(\"String not found\");\n }\n\n String newFacet = \"\\n {\\n $Type : 'UI.ReferenceFacet',\\n ID : 'AttachmentsFacet',\\n Label : '{i18n>attachments}',\\n Target: 'attachments/@UI.LineItem'\\n },\";\n int insertPos = matcher.end();\n cds = cds.substring(0, insertPos) + newFacet + cds.substring(insertPos);\n\n Files.writeString(Path.of(filePath), cds);\n\n} catch (IOException e) {\n e.printStackTrace();\n}", + "outputs": [ + { + "mime": "text/plain", + "value": "String found at position: 546\n\n" + } + ] + }, + { + "kind": 1, + "language": "markdown", + "value": "### Texts\n\nThe i18n property file is enhanced with the texts for the attachments to show correct texts on the UI.", + "outputs": [] + }, + { + "kind": 2, + "language": "shell", + "value": "cd app/_i18n", + "outputs": [ + { + "mime": "text/plain", + "value": "\n" + } + ] + }, + { + "kind": 2, + "language": "java", + "value": "String filePath = \"i18n.properties\";\n\nList properties = new ArrayList<>();\nproperties.add(\"\\n\");\nproperties.add(\"#Attachment properties\\n\");\nproperties.add(\"attachment_content = Content\\n\");\nproperties.add(\"attachment_mimeType = Mime Type\\n\");\nproperties.add(\"attachment_fileName = File Name\\n\");\nproperties.add(\"attachment_status = Status\\n\");\nproperties.add(\"attachment_note = Notes\\n\");\nproperties.add(\"attachment = Attachment\\n\");\nproperties.add(\"attachments = Attachments\");\n\nfor (String property: properties){\n try {\n Files.write(Paths.get(filePath), property.getBytes(), StandardOpenOption.APPEND);\n } catch (IOException e) {\n e.printStackTrace();\n }\n}\n", + "outputs": [ + { + "mime": "text/plain", + "value": "\n" + } + ] + }, + { + "kind": 1, + "language": "markdown", + "value": "## Build the Service\n\nRun `mvn clean compile` on the service to compile the models with all changes.", + "outputs": [] + }, + { + "kind": 2, + "language": "shell", + "value": "cd ../../srv\nmvn clean compile", + "outputs": [ + { + "mime": "text/plain", + "value": "[INFO] Scanning for projects...\n[INFO] \n[INFO] --------------------------< customer:demoapp >--------------------------\n[INFO] Building demoapp 1.0.0-SNAPSHOT\n[INFO] from pom.xml\n[INFO] --------------------------------[ jar ]---------------------------------\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.pom\nProgress (1): 4.2 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.pom (4.2 kB at 5.6 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.jar\nProgress (1): 7.2/135 kBProgress (1): 15/135 kB Progress (1): 32/135 kBProgress (1): 48/135 kBProgress (1): 65/135 kBProgress (1): 81/135 kBProgress (1): 97/135 kBProgress (1): 114/135 kBProgress (1): 130/135 kBProgress (1): 135 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.jar (135 kB at 228 kB/s)\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom\nProgress (1): 2.7 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom (2.7 kB at 17 kB/s)\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar\nProgress (1): 6.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar (6.8 kB at 44 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar\nProgress (1): 7.3/20 kBProgress (1): 16/20 kB Progress (2): 16/20 kB | 7.3/15 kBProgress (2): 16/20 kB | 15 kB Progress (2): 20 kB | 15 kB Progress (3): 20 kB | 15 kB | 7.3/375 kBProgress (3): 20 kB | 15 kB | 16/375 kB Progress (3): 20 kB | 15 kB | 32/375 kBProgress (4): 20 kB | 15 kB | 32/375 kB | 7.3/149 kBProgress (4): 20 kB | 15 kB | 32/375 kB | 16/149 kB Progress (4): 20 kB | 15 kB | 32/375 kB | 32/149 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar (20 kB at 63 kB/s)\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar (15 kB at 48 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar\nProgress (3): 32/375 kB | 32/149 kB | 7.3/16 kBProgress (3): 32/375 kB | 32/149 kB | 16/16 kB Progress (3): 32/375 kB | 32/149 kB | 16 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar (16 kB at 50 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar\nProgress (2): 48/375 kB | 32/149 kBProgress (2): 65/375 kB | 32/149 kBProgress (2): 81/375 kB | 32/149 kBProgress (2): 81/375 kB | 48/149 kBProgress (2): 81/375 kB | 65/149 kBProgress (2): 81/375 kB | 81/149 kBProgress (3): 81/375 kB | 81/149 kB | 4.7 kBProgress (4): 81/375 kB | 81/149 kB | 4.7 kB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar (4.7 kB at 10 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar (4.8 kB at 10 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar\nProgress (3): 81/375 kB | 81/149 kB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar (4.8 kB at 9.8 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar\nProgress (2): 97/375 kB | 81/149 kBProgress (2): 114/375 kB | 81/149 kBProgress (2): 130/375 kB | 81/149 kBProgress (2): 147/375 kB | 81/149 kBProgress (2): 163/375 kB | 81/149 kBProgress (2): 163/375 kB | 97/149 kBProgress (2): 179/375 kB | 97/149 kBProgress (2): 179/375 kB | 114/149 kBProgress (2): 179/375 kB | 130/149 kBProgress (2): 179/375 kB | 147/149 kBProgress (2): 179/375 kB | 149 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar (149 kB at 245 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar\nProgress (2): 179/375 kB | 0/3.8 MBProgress (2): 179/375 kB | 0/3.8 MBProgress (3): 179/375 kB | 0/3.8 MB | 7.2/261 kBProgress (3): 179/375 kB | 0/3.8 MB | 15/261 kB Progress (3): 179/375 kB | 0/3.8 MB | 32/261 kBProgress (4): 179/375 kB | 0/3.8 MB | 32/261 kB | 7.2/282 kBProgress (4): 179/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kB Progress (4): 196/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 212/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 229/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 245/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 261/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 278/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 294/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 310/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 327/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 343/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 360/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 375 kB | 0/3.8 MB | 32/261 kB | 15/282 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar (375 kB at 495 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar\nProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 48/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0.1/3.8 MB | 48/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0.1/3.8 MB | 48/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 81/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 81/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 32/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 48/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 65/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 7.2/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 15/72 kB Progress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 32/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 48/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 65/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 72 kB Progress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MB | 72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MB | 72 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar (72 kB at 79 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar\nProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 163/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.2/3.8 MB | 163/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.2/3.8 MB | 163/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 196/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 196/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 228/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 245/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 245/261 kB | 81/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261/261 kB | 81/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261 kB | 81/282 kB | 0.4/1.9 MB Progress (4): 0.2/3.8 MB | 261 kB | 97/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261 kB | 114/282 kB | 0.4/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar (261 kB at 273 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar\nProgress (3): 0.2/3.8 MB | 130/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 146/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 163/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 179/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 196/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 7.2/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 15/47 kB Progress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 32/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 32/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kB Progress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar (47 kB at 45 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar\nProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 228/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 261/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 278/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0/1.0 MB Progress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar (282 kB at 250 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar\nProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar (4.8 kB at 3.9 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar\nProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 7.2/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 15/467 kB Progress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 130/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 130/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 146/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 146/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 163/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 179/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 196/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 212/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 228/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 245/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 261/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 278/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 294/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB Progress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 7.2/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 15/285 kB Progress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 32/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 48/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 65/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 81/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 97/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 114/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 130/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 146/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 163/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 179/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 196/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 196/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 212/285 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar (1.9 MB at 1.4 MB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar\nProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 228/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 228/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 261/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 261/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 278/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kB Progress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar (285 kB at 203 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar\nProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 327/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 327/467 kB Progress (3): 1.8/3.8 MB | 1.0 MB | 343/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 359/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 376/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 392/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 409/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 425/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 441/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 458/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 467 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar (1.0 MB at 712 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar (467 kB at 318 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar\nProgress (1): 1.8/3.8 MBProgress (1): 1.8/3.8 MBProgress (1): 1.9/3.8 MBProgress (1): 1.9/3.8 MBProgress (1): 1.9/3.8 MBProgress (2): 1.9/3.8 MB | 7.3/372 kBProgress (2): 1.9/3.8 MB | 16/372 kB Progress (2): 1.9/3.8 MB | 32/372 kBProgress (2): 1.9/3.8 MB | 48/372 kBProgress (2): 1.9/3.8 MB | 65/372 kBProgress (2): 1.9/3.8 MB | 81/372 kBProgress (2): 1.9/3.8 MB | 97/372 kBProgress (2): 1.9/3.8 MB | 114/372 kBProgress (2): 1.9/3.8 MB | 130/372 kBProgress (2): 1.9/3.8 MB | 147/372 kBProgress (2): 1.9/3.8 MB | 163/372 kBProgress (2): 1.9/3.8 MB | 179/372 kBProgress (2): 1.9/3.8 MB | 196/372 kBProgress (2): 1.9/3.8 MB | 212/372 kBProgress (2): 1.9/3.8 MB | 229/372 kBProgress (2): 1.9/3.8 MB | 245/372 kBProgress (2): 1.9/3.8 MB | 261/372 kBProgress (2): 1.9/3.8 MB | 261/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 294/372 kBProgress (2): 1.9/3.8 MB | 310/372 kBProgress (2): 1.9/3.8 MB | 327/372 kBProgress (2): 1.9/3.8 MB | 343/372 kBProgress (2): 1.9/3.8 MB | 343/372 kBProgress (2): 2.0/3.8 MB | 343/372 kBProgress (2): 2.0/3.8 MB | 360/372 kBProgress (2): 2.0/3.8 MB | 372 kB Progress (3): 2.0/3.8 MB | 372 kB | 0/1.7 MBProgress (3): 2.0/3.8 MB | 372 kB | 0/1.7 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar (372 kB at 238 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar\nProgress (2): 2.0/3.8 MB | 0/1.7 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 7.2/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 15/203 kB Progress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MB Progress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar (1.6 MB at 825 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar (3.8 MB at 2.0 MB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar\nProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 163/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 163/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 179/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar (4.8 kB at 2.2 kB/s)\nProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB Downloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar\nProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MB Progress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.5/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar (203 kB at 96 kB/s)\nProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MB Downloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar\nProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3 MB | 0.6/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar (1.3 MB at 580 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar\nProgress (3): 0.8/1.7 MB | 0.6/1.9 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar (4.8 kB at 2.1 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar\nProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 0.6/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar (4.7 kB at 2.1 kB/s)\nProgress (2): 0.8/1.7 MB | 0.9/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.4/1.7 MB | 1.2/1.9 MBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 7.2/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 15/416 kB Progress (3): 1.4/1.7 MB | 1.2/1.9 MB | 32/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 48/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 65/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 81/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 97/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 114/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 130/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 146/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 163/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 179/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 196/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 212/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 228/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 245/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 261/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 278/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 294/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 294/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 310/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 310/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 343/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 359/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 376/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 392/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 392/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 409/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 409/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kB Progress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 416 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar (416 kB at 171 kB/s)\nProgress (3): 1.4/1.7 MB | 1.9 MB | 7.2/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 15/303 kB Progress (3): 1.4/1.7 MB | 1.9 MB | 32/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 48/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 65/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 81/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 97/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 114/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 130/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 146/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 163/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 163/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 179/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 179/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 196/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 212/303 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar (1.9 MB at 793 kB/s)\nProgress (2): 1.4/1.7 MB | 228/303 kBProgress (2): 1.4/1.7 MB | 228/303 kBProgress (2): 1.4/1.7 MB | 245/303 kBProgress (2): 1.4/1.7 MB | 261/303 kBProgress (2): 1.4/1.7 MB | 261/303 kBProgress (2): 1.4/1.7 MB | 278/303 kBProgress (2): 1.4/1.7 MB | 294/303 kBProgress (2): 1.4/1.7 MB | 303 kB Progress (2): 1.4/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar (303 kB at 123 kB/s)\nProgress (1): 1.6/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar (1.7 MB at 658 kB/s)\n[INFO] \n[INFO] --- clean:3.2.0:clean (default-clean) @ demoapp ---\n[INFO] \n[INFO] --- flatten:1.6.0:clean (flatten.clean) @ demoapp ---\n[INFO] \n[INFO] --- cds:2.10.1:clean (cds.clean) @ demoapp ---\n[INFO] \n[INFO] --- enforcer:3.4.1:enforce (Project Structure Checks) @ demoapp ---\n[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed\n[INFO] Rule 1: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed\n[INFO] Rule 2: org.apache.maven.enforcer.rules.ReactorModuleConvergence passed\n[INFO] \n[INFO] --- cds:2.10.1:install-node (cds.install-node) @ demoapp ---\n[INFO] InstallNodeMojo: Installing Node.js v18.20.2\n[INFO] InstallNodeMojo: Downloading https://nodejs.org/dist/v18.20.2/node-v18.20.2-darwin-arm64.tar.gz to /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/archive/18.20.2/archive-18.20.2-darwin-arm64.tar.gz\n[INFO] InstallNodeMojo: No proxy was configured, downloading directly.\nStandard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts\n[INFO] InstallNodeMojo: Unpacking /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/archive/18.20.2/archive-18.20.2-darwin-arm64.tar.gz into /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz\n[INFO] \n[INFO] --- cds:2.10.1:install-cdsdk (cds.install-cdsdk) @ demoapp ---\n[INFO] InstallCdsdkMojo: Using npm provided by goal install-node: /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npm\n[INFO] InstallCdsdkMojo: Identified /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp as reactor base directory.\n[INFO] InstallCdsdkMojo: Using directory containing a .cdsrc.json as working directory: /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: Installing @sap/cds-dk@7.9.3 into: /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npm, install, @sap/cds-dk@7.9.3, --no-save] in working directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: \nadded 338 packages, and audited 339 packages in 10s\n\n47 packages are looking for funding\n run `npm fund` for details\n\n1 high severity vulnerability\n\nTo address all issues, run:\n npm audit fix\n\nRun `npm audit` for details.\n\n[INFO] \n[INFO] --- cds:2.10.1:resolve (cds.resolve) @ demoapp ---\n[INFO] CdsResolveMojo: Extracting models from com.sap.cds:cds-feature-attachments:1.0.2 (/Users/I324829/.m2/repository/com/sap/cds/cds-feature-attachments/1.0.2/cds-feature-attachments-1.0.2.jar)\n[INFO] \n[INFO] --- cds:2.10.1:cds (cds.build) @ demoapp ---\n[INFO] CdsMojo: Using npx provided by goal install-node: /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx\n[INFO] CdsMojo: Using directory containing a .cdsrc.json as working directory: /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds version] in working directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] CdsMojo: Using configured working directory: /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds build --for java] in working directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] CdsMojo: building project [/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp], clean [true]\ncds-dk [7.9.3], cds [7.9.2], compiler [4.9.4], home [/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/node_modules/@sap/cds-dk/node_modules/@sap/cds]\n\n{\n build: {\n target: '.',\n tasks: [\n { for: 'java', src: 'srv', options: { model: ['db', 'srv', 'app'] }}\n ]\n }\n}\n\nwriting generation log to [/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/target/cds-build.log]\n\ndone > wrote output to:\n srv/src/main/resources/edmx/AdminService.xml\n srv/src/main/resources/edmx/AdminService_ar.xml\n srv/src/main/resources/edmx/AdminService_cs.xml\n srv/src/main/resources/edmx/AdminService_da.xml\n srv/src/main/resources/edmx/AdminService_de.xml\n srv/src/main/resources/edmx/AdminService_en.xml\n srv/src/main/resources/edmx/AdminService_es.xml\n srv/src/main/resources/edmx/AdminService_es_MX.xml\n srv/src/main/resources/edmx/AdminService_fi.xml\n srv/src/main/resources/edmx/AdminService_fr.xml\n srv/src/main/resources/edmx/AdminService_hu.xml\n srv/src/main/resources/edmx/AdminService_it.xml\n srv/src/main/resources/edmx/AdminService_ja.xml\n srv/src/main/resources/edmx/AdminService_ko.xml\n srv/src/main/resources/edmx/AdminService_ms.xml\n srv/src/main/resources/edmx/AdminService_nl.xml\n srv/src/main/resources/edmx/AdminService_no.xml\n srv/src/main/resources/edmx/AdminService_pl.xml\n srv/src/main/resources/edmx/AdminService_pt.xml\n srv/src/main/resources/edmx/AdminService_ro.xml\n srv/src/main/resources/edmx/AdminService_ru.xml\n srv/src/main/resources/edmx/AdminService_sv.xml\n srv/src/main/resources/edmx/AdminService_th.xml\n srv/src/main/resources/edmx/AdminService_tr.xml\n srv/src/main/resources/edmx/AdminService_zh_CN.xml\n srv/src/main/resources/edmx/AdminService_zh_TW.xml\n srv/src/main/resources/edmx/CatalogService.xml\n srv/src/main/resources/edmx/CatalogService_ar.xml\n srv/src/main/resources/edmx/CatalogService_cs.xml\n srv/src/main/resources/edmx/CatalogService_da.xml\n ... 26 more. Run with DEBUG=build to show all files.\n\nbuild completed in 919 ms\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds deploy --to h2 --dry > \"/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/main/resources/schema-h2.sql\"] in working directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] CdsMojo: \n[INFO] \n[INFO] --- cds:2.10.1:generate (cds.generate) @ demoapp ---\n[INFO] GenerateMojo: Adding code output directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/gen/java to compile source directories.\n[INFO] GenerateMojo: Adding directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/gen/resources to resources.\n[INFO] GenerateMojo: Scanning directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/main/resources for [**/csn.json], excluding [**/db/changelog/**/csn.json].\n[INFO] GenerateMojo: Using /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/main/resources/edmx/csn.json to generate Java classes into /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/gen.\n[INFO] GenerateMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[INFO] GenerateMojo: Class generation finished successfully\n[INFO] \n[INFO] --- resources:3.3.1:resources (default-resources) @ demoapp ---\n[INFO] Copying 58 resources from src/main/resources to target/classes\n[INFO] Copying 1 resource from src/gen/resources to target/classes\n[INFO] \n[INFO] --- flatten:1.6.0:flatten (flatten) @ demoapp ---\n[INFO] Generating flattened POM of project customer:demoapp:jar:1.0.0-SNAPSHOT...\n[INFO] \n[INFO] --- compiler:3.12.1:compile (default-compile) @ demoapp ---\n[INFO] Recompiling the module because of changed source code.\n[INFO] Compiling 104 source files with javac [debug release 17] to target/classes\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 32.111 s\n[INFO] Finished at: 2024-07-05T15:05:57+05:30\n[INFO] ------------------------------------------------------------------------\n\n" + } + ] + }, + { + "kind": 1, + "language": "markdown", + "value": "## Start the Service\n\n\nThe service can now be started with the following command in the `srv` module:\n\n```\nmvn cds:watch\n```\n\nAfter the service is startet the UI can be opened with:\n\n[http://localhost:8080](http://localhost:8080)\n\nNavigate to the index.html of the webapp and use user `admin` with password `admin`. \n\nUsing the tile `Manage Books` the attachments can be used in the detail area of the books.\n\nUsing the tile `Browse Books` no attachments are shown.", + "outputs": [] + }, + { + "kind": 1, + "language": "markdown", + "value": "", + "outputs": [] + } +] \ No newline at end of file diff --git a/integration-tests/.gitignore b/integration-tests/.gitignore new file mode 100644 index 00000000..0bbd8eed --- /dev/null +++ b/integration-tests/.gitignore @@ -0,0 +1,29 @@ +**/gen/ +**/edmx/ +*.db +*.sqlite +schema*.sql +default-env.json + +**/bin/ +**/target/ +.flattened-pom.xml +.classpath +.project +.settings + +**/node/ +**/node_modules/ + +**/.mta/ +*.mtar + +*.log* +gc_history* +hs_err* +*.tgz +*.iml + +.vscode +.idea +.reloadtrigger diff --git a/pom.xml b/pom.xml new file mode 100644 index 00000000..16ed447d --- /dev/null +++ b/pom.xml @@ -0,0 +1,237 @@ + + 4.0.0 + + + + The Apache Software License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + SAP SE + https://www.sap.com + + + + 1.0.0 + 17 + ${java.version} + ${java.version} + UTF-8 + + sdm/generated/ + 2.9.1 + + src/gen + + 3.2.5 + + + com.sap.cds + sdm-root + ${revision} + pom + + CDS Feature for Attachments - Root + https://cap.cloud.sap/docs/plugins/#attachments + + + cds-feature-attachments + integration-tests + + + + + + com.sap.cds + cds-services-bom + ${cds.services.version} + pom + import + + + + org.mockito + mockito-bom + 5.12.0 + pom + import + + + + com.sap.cds + sdm + ${revision} + + + + + + + + com.sap.cds + cds-services-api + + + + org.junit.jupiter + junit-jupiter + 5.10.2 + test + + + + org.assertj + assertj-core + 3.25.3 + test + + + + org.mockito + mockito-core + test + + + + + + + + org.apache.maven.plugins + maven-surefire-plugin + 3.2.5 + + + + + org.codehaus.mojo + flatten-maven-plugin + 1.6.0 + + true + resolveCiFriendliesOnly + + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + + + com.github.spotbugs + spotbugs-maven-plugin + 4.8.5.0 + + Max + true + /src/main/resources/spotbugs-exclusion-filter.xml + ${project.build.directory} + true + ${skipDuringDeploy} + + + + spotbugs-error + process-test-classes + + check + + + + + + + org.apache.maven.plugins + maven-pmd-plugin + 3.22.0 + + ${java.version} + 5 + ${project.build.directory} + true + true + false + false + + + /rulesets/java/maven-pmd-plugin-default.xml + + + + **/${excluded.generation.package}** + + + ${skipDuringDeploy} + + + + + com.sap.cloud.sdk.quality + pmd-rules + 3.78.0 + + + + + pmd-error + process-test-classes + + check + cpd-check + + + + + + + org.apache.maven.plugins + maven-enforcer-plugin + 3.4.1 + + + no-duplicate-declared-dependencies + + enforce + + + + + + + + + + + + + + + + artifactory + Artifactory_DMZ-snapshots + https://common.repositories.cloud.sap/artifactory/cap-java + + + artifactory + Artifactory_DMZ + https://common.repositories.cloud.sap/artifactory/cap-java + + + + diff --git a/sdm/.flattened-pom.xml b/sdm/.flattened-pom.xml new file mode 100644 index 00000000..1f6803fe --- /dev/null +++ b/sdm/.flattened-pom.xml @@ -0,0 +1,346 @@ + + + 4.0.0 + + com.sap.cds + sdm-root + 1.0.0 + + sdm + 1.0.0 + CDS Feature for Attachments + https://cap.cloud.sap/docs/plugins/#attachments + + SAP SE + https://www.sap.com + + + + The Apache Software License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + artifactory + Artifactory_DMZ + https://common.repositories.cloud.sap/artifactory/cap-java + + + artifactory + Artifactory_DMZ-snapshots + https://common.repositories.cloud.sap/artifactory/cap-java + + + + 1.0.2 + 5.7.12 + 17 + 2.13.4.2 + 0.8.7 + 7.6.0 + 4.5.14 + 1.18.30 + 2.17.0 + 17 + sdm.generated + 4.19.2 + 1.13 + 2.5.2.RELEASE + sdm + 5.3.31 + src/test/gen + + + + org.projectlombok + lombok + ${lombok.version} + provided + + + org.springframework.security.oauth + spring-security-oauth2 + ${spring.security.oauth.version} + + + org.springframework + spring-web + + + org.springframework + spring-webmvc + + + org.springframework.security + spring-security-web + + + org.springframework.security + spring-security-core + + + + + org.springframework.security + spring-security-core + ${spring.security.version} + + + com.sap.cloud.security.xsuaa + api + ${sap.cloud.xsuaa.version} + + + com.sap.cloud.security + java-security + ${sap.cloud.xsuaa.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.databind.version} + + + org.springframework + spring-core + ${spring.framework.version} + + + org.springframework + spring-expression + ${spring.framework.version} + + + org.springframework + spring-context + ${spring.framework.version} + + + org.springframework + spring-beans + ${spring.framework.version} + + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + commons-codec + commons-codec + + + + + commons-codec + commons-codec + ${commons-codec.version} + + + com.sap.cds + cds-services-utils + + + commons-codec + commons-codec + + + + + com.sap.cds + cds-integration-cloud-sdk + + + com.sap.cds + cds-services-impl + test + + + com.github.spotbugs + spotbugs-annotations + 4.8.5 + test + + + ch.qos.logback + logback-classic + 1.5.6 + test + + + org.awaitility + awaitility + 4.2.1 + test + + + junit + junit + 4.13.2 + test + + + com.sap.cds + cds-feature-attachments + ${attachments_version} + + + + ${project.artifactId} + + + maven-clean-plugin + 3.3.2 + + + auto-clean + clean + + clean + + + + + + com.sap.cds + cds-maven-plugin + ${cds.services.version} + + + cds.clean + + clean + + + + cds.install-node + + install-node + + + ${skipDuringDeploy} + + + + cds.install-cdsdk + + install-cdsdk + + + ${skipDuringDeploy} + + + + cds.build + + cds + + + + + ${skipDuringDeploy} + + + + org.jacoco + jacoco-maven-plugin + 0.8.12 + + + jacoco-initialize + + prepare-agent + + + + jacoco-site-report-all-tests + verify + + report + + + + jacoco-site-report-only-unit-tests + test + + report + + + + jacoco-check-unit-tests-only + test + + check + + + + + BUNDLE + + + INSTRUCTION + COVEREDRATIO + 0.95 + + + BRANCH + COVEREDRATIO + 0.95 + + + COMPLEXITY + COVEREDRATIO + 0.95 + + + CLASS + MISSEDCOUNT + 0 + + + + + + + + + + ${excluded.generation.package}**/* + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.5.0 + + + generate-sources + + add-source + + + + ${project.basedir}/${generation-folder}/java + + + + + + + maven-source-plugin + 3.3.1 + + + + jar + + + + + + + diff --git a/sdm/pom.xml b/sdm/pom.xml new file mode 100644 index 00000000..ca6c1c53 --- /dev/null +++ b/sdm/pom.xml @@ -0,0 +1,380 @@ + + 4.0.0 + + + com.sap.cds + sdm-root + ${revision} + + + + + The Apache Software License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + SAP SE + https://www.sap.com + + + sdm + jar + + CDS Feature for Attachments + https://cap.cloud.sap/docs/plugins/#attachments + + + sdm + 7.6.0 + sdm.generated + src/test/gen + 17 + 17 + 1.0.2 + 1.18.30 + 0.8.7 + 1.13 + 2.5.2.RELEASE + 5.7.12 + 5.3.31 + 4.19.2 + 4.5.14 + 2.17.0 + 2.13.4.2 + 5.7.12 + 5.3.31 + + + + + org.projectlombok + lombok + ${lombok.version} + provided + + + org.springframework.security.oauth + spring-security-oauth2 + ${spring.security.oauth.version} + + + org.springframework + spring-web + + + org.springframework + spring-webmvc + + + org.springframework.security + spring-security-web + + + org.springframework.security + spring-security-core + + + + + org.springframework.security + spring-security-core + ${spring.security.version} + + + com.sap.cloud.security.xsuaa + api + ${sap.cloud.xsuaa.version} + + + com.sap.cloud.security + java-security + ${sap.cloud.xsuaa.version} + + + com.fasterxml.jackson.core + jackson-databind + ${jackson.databind.version} + + + org.springframework + spring-core + ${spring.framework.version} + + + org.springframework + spring-expression + ${spring.framework.version} + + + org.springframework + spring-context + ${spring.framework.version} + + + org.springframework + spring-beans + ${spring.framework.version} + + + + org.apache.httpcomponents + httpclient + ${httpclient.version} + + + commons-codec + commons-codec + + + + + commons-codec + commons-codec + ${commons-codec.version} + + + com.sap.cds + cds-services-utils + + + commons-codec + commons-codec + + + + + com.sap.cds + cds-integration-cloud-sdk + + + + + com.sap.cds + cds-services-impl + test + + + com.github.spotbugs + spotbugs-annotations + 4.8.5 + test + + + ch.qos.logback + logback-classic + 1.5.6 + test + + + org.awaitility + awaitility + 4.2.1 + test + + + junit + junit + 4.13.2 + test + + + com.sap.cds + cds-feature-attachments + ${attachments_version} + + + + + ${project.artifactId} + + + + + org.apache.maven.plugins + maven-clean-plugin + 3.3.2 + + + + auto-clean + clean + + clean + + + + + + + com.sap.cds + cds-maven-plugin + ${cds.services.version} + + ${skipDuringDeploy} + + + + cds.clean + + clean + + + + + cds.install-node + + install-node + + + ${skipDuringDeploy} + + + + + cds.install-cdsdk + + install-cdsdk + + + ${skipDuringDeploy} + + + + + cds.build + + cds + + + + + + + + + + org.jacoco + jacoco-maven-plugin + 0.8.12 + + + + ${excluded.generation.package}**/* + + + + + + jacoco-initialize + + prepare-agent + + + + jacoco-site-report-all-tests + verify + + report + + + + jacoco-site-report-only-unit-tests + test + + report + + + + jacoco-check-unit-tests-only + test + + check + + + + + BUNDLE + + + INSTRUCTION + COVEREDRATIO + 0.95 + + + BRANCH + COVEREDRATIO + 0.95 + + + COMPLEXITY + COVEREDRATIO + 0.95 + + + CLASS + MISSEDCOUNT + 0 + + + + + + + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.5.0 + + + generate-sources + + add-source + + + + ${project.basedir}/${generation-folder}/java + + + + + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.3.1 + + + + jar + + + + + + + + + + + artifactory + Artifactory_DMZ-snapshots + https://common.repositories.cloud.sap/artifactory/cap-java + + + artifactory + Artifactory_DMZ + https://common.repositories.cloud.sap/artifactory/cap-java + + + + diff --git a/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java b/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java new file mode 100644 index 00000000..e208141e --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java @@ -0,0 +1,5 @@ +package com.sap.cds.handler; + +public class TokenGenerator { + +} diff --git a/sdm/src/main/java/com/sap/cds/model/SDMCredentials.java b/sdm/src/main/java/com/sap/cds/model/SDMCredentials.java new file mode 100644 index 00000000..4979f93e --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/model/SDMCredentials.java @@ -0,0 +1,25 @@ +package com.sap.cds.model; + + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@JsonIgnoreProperties(ignoreUnknown = true) +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class SDMCredentials { + + private String url; + + private String baseTokenUrl; + + private String clientId; + + private String clientSecret; +} + diff --git a/sdm/src/main/java/com/sap/cds/service/SDMAttachmentService.java b/sdm/src/main/java/com/sap/cds/service/SDMAttachmentService.java new file mode 100644 index 00000000..b72bc4b2 --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/service/SDMAttachmentService.java @@ -0,0 +1,62 @@ +/************************************************************************** + * (C) 2019-2024 SAP SE or an SAP affiliate company. All rights reserved. * + **************************************************************************/ +package com.sap.cds.service; +import com.sap.cds.feature.attachments.service.AttachmentService; +import com.sap.cds.feature.attachments.service.model.service.AttachmentModificationResult; +import com.sap.cds.feature.attachments.service.model.service.CreateAttachmentInput; +import com.sap.cds.services.EventContext; +import com.sap.cds.services.auditlog.Attachment; +import com.sap.cds.services.handler.Handler; + +import java.io.InputStream; +import java.time.Instant; + + +public class SDMAttachmentService implements AttachmentService { + @Override + public InputStream readAttachment(String s) { + return null; + } + + @Override + public AttachmentModificationResult createAttachment(CreateAttachmentInput createAttachmentInput) { + //first create + return null; + } + + @Override + public void markAttachmentAsDeleted(String s) { + + } + + @Override + public void restoreAttachment(Instant instant) { + + } + + @Override + public void before(String[] events, String[] entities, int order, Handler handler) { + + } + + @Override + public void on(String[] events, String[] entities, int order, Handler handler) { + + } + + @Override + public void after(String[] events, String[] entities, int order, Handler handler) { + + } + + @Override + public void emit(EventContext context) { + + } + + @Override + public String getName() { + return null; + } +} diff --git a/sdm/src/main/resources/META-INF/maven/archetype.xml b/sdm/src/main/resources/META-INF/maven/archetype.xml new file mode 100644 index 00000000..2631ba8e --- /dev/null +++ b/sdm/src/main/resources/META-INF/maven/archetype.xml @@ -0,0 +1,9 @@ + + sdm + + src/main/java/App.java + + + src/test/java/AppTest.java + + diff --git a/sdm/src/main/resources/archetype-resources/pom.xml b/sdm/src/main/resources/archetype-resources/pom.xml new file mode 100644 index 00000000..968ef90c --- /dev/null +++ b/sdm/src/main/resources/archetype-resources/pom.xml @@ -0,0 +1,15 @@ + + 4.0.0 + $org.example + $sdm + $1.0-SNAPSHOT + + + junit + junit + 3.8.1 + test + + + diff --git a/sdm/src/main/resources/archetype-resources/src/main/java/App.java b/sdm/src/main/resources/archetype-resources/src/main/java/App.java new file mode 100644 index 00000000..1fa6a956 --- /dev/null +++ b/sdm/src/main/resources/archetype-resources/src/main/java/App.java @@ -0,0 +1,13 @@ +package $org.example; + +/** + * Hello world! + * + */ +public class App +{ + public static void main( String[] args ) + { + System.out.println( "Hello World!" ); + } +} diff --git a/sdm/src/main/resources/archetype-resources/src/test/java/AppTest.java b/sdm/src/main/resources/archetype-resources/src/test/java/AppTest.java new file mode 100644 index 00000000..65be417e --- /dev/null +++ b/sdm/src/main/resources/archetype-resources/src/test/java/AppTest.java @@ -0,0 +1,38 @@ +package $org.example; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +/** + * Unit test for simple App. + */ +public class AppTest + extends TestCase +{ + /** + * Create the test case + * + * @param testName name of the test case + */ + public AppTest( String testName ) + { + super( testName ); + } + + /** + * @return the suite of tests being tested + */ + public static Test suite() + { + return new TestSuite( AppTest.class ); + } + + /** + * Rigourous Test :-) + */ + public void testApp() + { + assertTrue( true ); + } +} diff --git a/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds new file mode 100644 index 00000000..daa9c9fd --- /dev/null +++ b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds @@ -0,0 +1,41 @@ +using { + sap.attachments.MediaData, + sap.attachments.Attachments +} from './attachments'; + +annotate MediaData with @UI.MediaResource: {Stream: content} { + content @( + title : '{i18n>attachment_content}', + Core.MediaType : mimeType, + ContentDisposition.Filename: fileName, + ContentDisposition.Type : 'inline' + ); + mimeType @( + title: '{i18n>attachment_mimeType}', + Core.IsMediaType + ); + fileName @(title: '{i18n>attachment_fileName}'); + contentId @(UI.Hidden: true); +} + +annotate Attachments with @UI: { + HeaderInfo: { + $Type : 'UI.HeaderInfoType', + TypeName : '{i18n>attachment}', + TypeNamePlural: '{i18n>attachments}', + }, + LineItem : [ + {Value: fileName}, + {Value: content}, + {Value: createdAt}, + {Value: createdBy}, + {Value: note} + ] +} { + note @(title: '{i18n>attachment_note}'); + modifiedAt @(odata.etag); +} + +annotate Attachments with @Common: {SideEffects #ContentChanged: { + SourceProperties: [content] +}} {}; diff --git a/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds new file mode 100644 index 00000000..cb7e592b --- /dev/null +++ b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds @@ -0,0 +1,18 @@ +namespace sap.attachments; + +using { + cuid, + managed +} from '@sap/cds/common'; + + +aspect MediaData @(_is_media_data) { + content : LargeBinary; // stored only for db-based services + mimeType : String; + fileName : String; + contentId : String @readonly; // id of attachment in external storage, if database storage is used, same as id +} + +aspect Attachments : cuid, managed, MediaData { + note : String; +} diff --git a/sdm/src/main/resources/cds/com.sap.cds/sdm/index.cds b/sdm/src/main/resources/cds/com.sap.cds/sdm/index.cds new file mode 100644 index 00000000..5534c1a6 --- /dev/null +++ b/sdm/src/main/resources/cds/com.sap.cds/sdm/index.cds @@ -0,0 +1,2 @@ +using from`./attachments`; +using from`./attachments-annotations`; From f7cd42c69bc8368875e4575b187058e1df134001 Mon Sep 17 00:00:00 2001 From: Rashmi Date: Fri, 19 Jul 2024 15:54:57 +0530 Subject: [PATCH 002/210] Review comments --- integration-tests/.gitignore | 29 ----------- sdm/.flattened-pom.xml | 93 ++---------------------------------- sdm/pom.xml | 91 +---------------------------------- 3 files changed, 4 insertions(+), 209 deletions(-) delete mode 100644 integration-tests/.gitignore diff --git a/integration-tests/.gitignore b/integration-tests/.gitignore deleted file mode 100644 index 0bbd8eed..00000000 --- a/integration-tests/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -**/gen/ -**/edmx/ -*.db -*.sqlite -schema*.sql -default-env.json - -**/bin/ -**/target/ -.flattened-pom.xml -.classpath -.project -.settings - -**/node/ -**/node_modules/ - -**/.mta/ -*.mtar - -*.log* -gc_history* -hs_err* -*.tgz -*.iml - -.vscode -.idea -.reloadtrigger diff --git a/sdm/.flattened-pom.xml b/sdm/.flattened-pom.xml index 1f6803fe..b67208f1 100644 --- a/sdm/.flattened-pom.xml +++ b/sdm/.flattened-pom.xml @@ -36,22 +36,14 @@ 1.0.2 - 5.7.12 - 17 - 2.13.4.2 - 0.8.7 - 7.6.0 - 4.5.14 1.18.30 - 2.17.0 17 sdm.generated - 4.19.2 - 1.13 - 2.5.2.RELEASE + 17 sdm - 5.3.31 + 0.8.7 src/test/gen + 7.6.0 @@ -60,85 +52,6 @@ ${lombok.version} provided - - org.springframework.security.oauth - spring-security-oauth2 - ${spring.security.oauth.version} - - - org.springframework - spring-web - - - org.springframework - spring-webmvc - - - org.springframework.security - spring-security-web - - - org.springframework.security - spring-security-core - - - - - org.springframework.security - spring-security-core - ${spring.security.version} - - - com.sap.cloud.security.xsuaa - api - ${sap.cloud.xsuaa.version} - - - com.sap.cloud.security - java-security - ${sap.cloud.xsuaa.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.databind.version} - - - org.springframework - spring-core - ${spring.framework.version} - - - org.springframework - spring-expression - ${spring.framework.version} - - - org.springframework - spring-context - ${spring.framework.version} - - - org.springframework - spring-beans - ${spring.framework.version} - - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - commons-codec - commons-codec - - - - - commons-codec - commons-codec - ${commons-codec.version} - com.sap.cds cds-services-utils diff --git a/sdm/pom.xml b/sdm/pom.xml index ca6c1c53..b7ac3771 100644 --- a/sdm/pom.xml +++ b/sdm/pom.xml @@ -37,16 +37,7 @@ 1.0.2 1.18.30 0.8.7 - 1.13 - 2.5.2.RELEASE - 5.7.12 - 5.3.31 - 4.19.2 - 4.5.14 - 2.17.0 - 2.13.4.2 - 5.7.12 - 5.3.31 + @@ -56,86 +47,6 @@ ${lombok.version} provided - - org.springframework.security.oauth - spring-security-oauth2 - ${spring.security.oauth.version} - - - org.springframework - spring-web - - - org.springframework - spring-webmvc - - - org.springframework.security - spring-security-web - - - org.springframework.security - spring-security-core - - - - - org.springframework.security - spring-security-core - ${spring.security.version} - - - com.sap.cloud.security.xsuaa - api - ${sap.cloud.xsuaa.version} - - - com.sap.cloud.security - java-security - ${sap.cloud.xsuaa.version} - - - com.fasterxml.jackson.core - jackson-databind - ${jackson.databind.version} - - - org.springframework - spring-core - ${spring.framework.version} - - - org.springframework - spring-expression - ${spring.framework.version} - - - org.springframework - spring-context - ${spring.framework.version} - - - org.springframework - spring-beans - ${spring.framework.version} - - - - org.apache.httpcomponents - httpclient - ${httpclient.version} - - - commons-codec - commons-codec - - - - - commons-codec - commons-codec - ${commons-codec.version} - com.sap.cds cds-services-utils From 360db0ea0ca060d62090f23845eb03279b7a27c7 Mon Sep 17 00:00:00 2001 From: Rashmi Date: Mon, 22 Jul 2024 17:31:17 +0530 Subject: [PATCH 003/210] changes --- .DS_Store | Bin 0 -> 8196 bytes .flattened-pom.xml | 151 ++++++++++++++++++ .idea/.gitignore | 3 + .idea/compiler.xml | 16 ++ .idea/encodings.xml | 9 ++ .idea/jarRepositories.xml | 20 +++ .idea/misc.xml | 12 ++ .idea/uiDesigner.xml | 124 ++++++++++++++ .idea/vcs.xml | 6 + cap-notebook/.DS_Store | Bin 0 -> 6148 bytes cap-notebook/attachments-demo-app.capnb | 18 +-- pom.xml | 145 +++++++++-------- sdm/pom.xml | 27 +++- .../cds/handler/SDMAttachmentsHandler.java | 45 ++++++ .../com/sap/cds/handler/TokenGenerator.java | 72 +++++++++ .../sap/cds/service/SDMAttachmentService.java | 62 ------- .../sdm/attachments-annotations.cds | 5 +- .../cds/com.sap.cds/sdm/attachments.cds | 9 ++ .../resources/cds/com.sap.cds/sdm/index.cds | 1 + .../resources/spotbugs-exclusion-filter.xml | 24 +++ 20 files changed, 599 insertions(+), 150 deletions(-) create mode 100644 .DS_Store create mode 100644 .flattened-pom.xml create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 cap-notebook/.DS_Store create mode 100644 sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java delete mode 100644 sdm/src/main/java/com/sap/cds/service/SDMAttachmentService.java create mode 100644 sdm/src/main/resources/spotbugs-exclusion-filter.xml diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..ab81bb864ea96bd0453999f5edac4474c425a5b9 GIT binary patch literal 8196 zcmeHM&2G~`5T0!UbyPq>0x3sJaBM{a1-0Vhh9JZhBRBvGb{wTv9j_HT%^`~9GrR>) z0WZKK@H~9`lZvLKs+0;@Vn*8e*1I#ip3ke@%!Y_WcN%qwT14caC~WRP{Y6y2Di>tS zw%h><_!Ffhsh}Z+Ko(|z8DIvO0cL<1s3HS6vz0h&&VAF%ni*gQ{!0eb{@|i0^emPJ z_0|EUQvhHc&00`L9-w_(i=M^OpmxQWCVLRpRoE0m7fSrX?(yZuXS)#^8H zZadq~j`PVsmNUNyifP^rCLh$(TPc%pSr5W@@o?5}-g_a_B8b!BL_5UM5GEhr$7v*I zT{%soT>JW_!)Z8;ezP^7?>}wtx}AfA#jZO)e2n`3lV^)X!@2+9(epR`lVqIAFD4{m zw*|Vr65`j(;yd*xX(H1RY?ObEBHUXHDiZbKhEdySqI{5q_$G=M+q4q)U5fGH)wRut zCRhjso+VoLbXyLcSA>#H7s3@H{gbXMn6FS-qa15!ToJl9UqL#WWYqBoa-69ZWW~lg zmc5?cADmaOe|$?H{yc)kS#NYnZ+5(H)N`Ej`M>0xkr}vN25M%wmdgKMuD}1k-br~h zW`G%}6a%8(^Lt&q((*_2>f5PY+eP_|qD0x12DJ;6PRD^d9S5HMVTig5Q|04XEDfRs P!WRLW23E|#KV{%Ie?2tV literal 0 HcmV?d00001 diff --git a/.flattened-pom.xml b/.flattened-pom.xml new file mode 100644 index 00000000..9a31735f --- /dev/null +++ b/.flattened-pom.xml @@ -0,0 +1,151 @@ + + + 4.0.0 + com.sap.cds + sdm-root + 1.0.0-SNAPSHOT + pom + CDS Feature for SAP Document Management Service - Root + https://cap.cloud.sap/docs/plugins/#attachments + + SAP SE + https://www.sap.com + + + + The Apache Software License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + sdm + + + + artifactory + Artifactory_DMZ + https://common.repositories.cloud.sap/artifactory/cap-java + + + artifactory + Artifactory_DMZ-snapshots + https://common.repositories.cloud.sap/artifactory/cap-java + + + + ${java.version} + 17 + ${java.version} + 2.9.1 + UTF-8 + sdm/generated/ + 3.2.5 + src/gen + 1.0.0-SNAPSHOT + + + + + com.sap.cds + cds-services-bom + ${cds.services.version} + pom + import + + + org.mockito + mockito-bom + 5.12.0 + pom + import + + + com.sap.cds + sdm + 1.0.0-SNAPSHOT + + + com.sap.cloud.environment.servicebinding + java-bom + 0.10.5 + pom + import + + + + + + com.sap.cds + cds-services-api + + + org.junit.jupiter + junit-jupiter + 5.10.2 + test + + + org.assertj + assertj-core + 3.25.3 + test + + + org.mockito + mockito-core + test + + + + + + maven-surefire-plugin + 3.2.5 + + + org.codehaus.mojo + flatten-maven-plugin + 1.6.0 + + + flatten + process-resources + + flatten + + + + flatten.clean + clean + + clean + + + + + true + resolveCiFriendliesOnly + + + + maven-enforcer-plugin + 3.4.1 + + + no-duplicate-declared-dependencies + + enforce + + + + + + + + + + + + diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 00000000..26d33521 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 00000000..03c21790 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 00000000..9ae6faf7 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 00000000..712ab9d9 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..a383ecbe --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 00000000..2b63946d --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..35eb1ddf --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/cap-notebook/.DS_Store b/cap-notebook/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0-------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mBuilding Maven Stub Project (No POM) 1\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m--------------------------------[ pom ]---------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m>>> \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[0;1m > \u001b[0;1mgenerate-sources\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m >>>\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m<<< \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[0;1m < \u001b[0;1mgenerate-sources\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m <<<\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m--- \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m ---\u001b[m\n[\u001b[1;34mINFO\u001b[m] Generating project in Batch mode\n[\u001b[1;34mINFO\u001b[m] Archetype repository not defined. Using the one from [com.sap.cds:cds-services-archetype:2.10.1] found in catalog remote\n[\u001b[1;34mINFO\u001b[m] ----------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Using following parameters for creating project from Archetype: cds-services-archetype:2.10.1\n[\u001b[1;34mINFO\u001b[m] ----------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Parameter: groupId, Value: customer\n[\u001b[1;34mINFO\u001b[m] Parameter: artifactId, Value: demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: version, Value: 1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] Parameter: package, Value: customer.demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: packageInPathFormat, Value: customer/demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: inMemoryDatabase, Value: h2\n[\u001b[1;34mINFO\u001b[m] Parameter: package, Value: customer.demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: includeIntegrationTest, Value: false\n[\u001b[1;34mINFO\u001b[m] Parameter: groupId, Value: customer\n[\u001b[1;34mINFO\u001b[m] Parameter: jdkVersion, Value: 17\n[\u001b[1;34mINFO\u001b[m] Parameter: nodeUrl, Value: https://nodejs.org/dist/\n[\u001b[1;34mINFO\u001b[m] Parameter: artifactId, Value: demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: includeModel, Value: false\n[\u001b[1;34mINFO\u001b[m] Parameter: targetPlatform, Value: local\n[\u001b[1;34mINFO\u001b[m] Parameter: version, Value: 1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] Parameter: odataVersion, Value: v4\n[\u001b[1;34mINFO\u001b[m] Parent element not overwritten in /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml\n[\u001b[1;34mINFO\u001b[m] Executing META-INF/archetype-post-generate.groovy post-generation script\n[INFO] Scanning for projects...\n[INFO] ------------------------------------------------------------------------\n[INFO] Reactor Build Order:\n[INFO] \n[INFO] demoapp parent [pom]\n[INFO] demoapp [jar]\n[INFO] \n[INFO] ----------------------< customer:demoapp-parent >-----------------------\n[INFO] Building demoapp parent 1.0.0-SNAPSHOT [1/2]\n[INFO] from pom.xml\n[INFO] --------------------------------[ pom ]---------------------------------\n[INFO] \n[INFO] --- cds:2.10.1:add (default-cli) @ demoapp-parent ---\n[INFO] AddMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[INFO] AddMojo: Added dependency `com.h2database:h2` to '/private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml'.\n[INFO] AddMojo: Added CDS command 'deploy --to h2 --dry > \"${project.basedir}/src/main/resources/schema-h2.sql\"' to cds-maven-plugin configuration in /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml.\n[INFO] AddMojo: Added profile 'default' to '/private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/src/main/resources/application.yaml'.\n[INFO] ------------------------------------------------------------------------\n[INFO] Reactor Summary for demoapp parent 1.0.0-SNAPSHOT:\n[INFO] \n[INFO] demoapp parent ..................................... SUCCESS [ 0.253 s]\n[INFO] demoapp ............................................ SKIPPED\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 0.399 s\n[INFO] Finished at: 2024-07-05T15:05:17+05:30\n[INFO] ------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Project created from Archetype in dir: /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1;32mBUILD SUCCESS\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] Total time: 3.456 s\n[\u001b[1;34mINFO\u001b[m] Finished at: 2024-07-05T15:05:17+05:30\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\nAdding feature 'sample'...\n[\u001b[1;34mINFO\u001b[m] Scanning for projects...\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mReactor Build Order:\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] demoapp parent [pom]\n[\u001b[1;34mINFO\u001b[m] demoapp [jar]\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m----------------------< \u001b[0;36mcustomer:demoapp-parent\u001b[0;1m >-----------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mBuilding demoapp parent 1.0.0-SNAPSHOT [1/2]\u001b[m\n[\u001b[1;34mINFO\u001b[m] from pom.xml\n[\u001b[1;34mINFO\u001b[m] \u001b[1m--------------------------------[ pom ]---------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m--- \u001b[0;32mcds:2.10.1:add\u001b[m \u001b[1m(default-cli)\u001b[m @ \u001b[36mdemoapp-parent\u001b[0;1m ---\u001b[m\n[\u001b[1;34mINFO\u001b[m] AddMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/schema.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/data/sap.capire.bookshop-Genres.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/data/sap.capire.bookshop-Books_texts.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/data/sap.capire.bookshop-Authors.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/data/sap.capire.bookshop-Books.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/cat-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/admin-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/manifest.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/Component.js\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/fiori-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/manifest.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/Component.js\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/fiori-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/common.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/_i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/_i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/appconfig/fioriSandboxConfig.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/services.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/index.html\n[\u001b[1;34mINFO\u001b[m] AddMojo: Added dependency `org.springframework.boot:spring-boot-starter-security` to '/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/pom.xml'.\nStandard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts\n[\u001b[1;33mWARNING\u001b[m] AddMojo: Profile 'default' exists and has been updated.\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mReactor Summary for demoapp parent 1.0.0-SNAPSHOT:\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] demoapp parent ..................................... \u001b[1;32mSUCCESS\u001b[m [ 0.292 s]\n[\u001b[1;34mINFO\u001b[m] demoapp ............................................ \u001b[1;33mSKIPPED\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1;32mBUILD SUCCESS\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] Total time: 0.415 s\n[\u001b[1;34mINFO\u001b[m] Finished at: 2024-07-05T15:05:18+05:30\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n\nSuccessfully created project. Continue with 'cd demoapp'.\nLearn about next steps at https://cap.cloud.sap\n\n" + "value": "Creating new CAP project in ./demoapp\n\nAdding feature 'java'...\nUsing Maven archetype version 2.10.1\n[\u001b[1;34mINFO\u001b[m] Scanning for projects...\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------< \u001b[0;36morg.apache.maven:standalone-pom\u001b[0;1m >-------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mBuilding Maven Stub Project (No POM) 1\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m--------------------------------[ pom ]---------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m>>> \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[0;1m > \u001b[0;1mgenerate-sources\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m >>>\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m<<< \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[0;1m < \u001b[0;1mgenerate-sources\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m <<<\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m--- \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m ---\u001b[m\n[\u001b[1;34mINFO\u001b[m] Generating project in Batch mode\n[\u001b[1;34mINFO\u001b[m] Archetype repository not defined. Using the one from [com.sap.cds:cds-services-archetype:2.10.1] found in catalog remote\n[\u001b[1;34mINFO\u001b[m] ----------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Using following parameters for creating project from Archetype: cds-services-archetype:2.10.1\n[\u001b[1;34mINFO\u001b[m] ----------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Parameter: groupId, Value: customer\n[\u001b[1;34mINFO\u001b[m] Parameter: artifactId, Value: demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: version, Value: 1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] Parameter: package, Value: customer.demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: packageInPathFormat, Value: customer/demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: inMemoryDatabase, Value: h2\n[\u001b[1;34mINFO\u001b[m] Parameter: package, Value: customer.demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: includeIntegrationTest, Value: false\n[\u001b[1;34mINFO\u001b[m] Parameter: groupId, Value: customer\n[\u001b[1;34mINFO\u001b[m] Parameter: jdkVersion, Value: 17\n[\u001b[1;34mINFO\u001b[m] Parameter: nodeUrl, Value: https://nodejs.org/dist/\n[\u001b[1;34mINFO\u001b[m] Parameter: artifactId, Value: demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: includeModel, Value: false\n[\u001b[1;34mINFO\u001b[m] Parameter: targetPlatform, Value: local\n[\u001b[1;34mINFO\u001b[m] Parameter: version, Value: 1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] Parameter: odataVersion, Value: v4\n[\u001b[1;34mINFO\u001b[m] Parent element not overwritten in /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml\n[\u001b[1;34mINFO\u001b[m] Executing META-INF/archetype-post-generate.groovy post-generation script\n[INFO] Scanning for projects...\n[INFO] ------------------------------------------------------------------------\n[INFO] Reactor Build Order:\n[INFO] \n[INFO] demoapp parent [pom]\n[INFO] demoapp [jar]\n[INFO] \n[INFO] ----------------------< customer:demoapp-parent >-----------------------\n[INFO] Building demoapp parent 1.0.0-SNAPSHOT [1/2]\n[INFO] from pom.xml\n[INFO] --------------------------------[ pom ]---------------------------------\n[INFO] \n[INFO] --- cds:2.10.1:add (default-cli) @ demoapp-parent ---\n[INFO] AddMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[INFO] AddMojo: Added dependency `com.h2database:h2` to '/private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml'.\n[INFO] AddMojo: Added CDS command 'deploy --to h2 --dry > \"${project.basedir}/src/main/resources/schema-h2.sql\"' to cds-maven-plugin configuration in /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml.\n[INFO] AddMojo: Added profile 'default' to '/private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/src/main/resources/application.yaml'.\n[INFO] ------------------------------------------------------------------------\n[INFO] Reactor Summary for demoapp parent 1.0.0-SNAPSHOT:\n[INFO] \n[INFO] demoapp parent ..................................... SUCCESS [ 0.253 s]\n[INFO] demoapp ............................................ SKIPPED\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 0.399 s\n[INFO] Finished at: 2024-07-05T15:05:17+05:30\n[INFO] ------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Project created from Archetype in dir: /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1;32mBUILD SUCCESS\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] Total time: 3.456 s\n[\u001b[1;34mINFO\u001b[m] Finished at: 2024-07-05T15:05:17+05:30\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\nAdding feature 'sample'...\n[\u001b[1;34mINFO\u001b[m] Scanning for projects...\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mReactor Build Order:\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] demoapp parent [pom]\n[\u001b[1;34mINFO\u001b[m] demoapp [jar]\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m----------------------< \u001b[0;36mcustomer:demoapp-parent\u001b[0;1m >-----------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mBuilding demoapp parent 1.0.0-SNAPSHOT [1/2]\u001b[m\n[\u001b[1;34mINFO\u001b[m] from pom.xml\n[\u001b[1;34mINFO\u001b[m] \u001b[1m--------------------------------[ pom ]---------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m--- \u001b[0;32mcds:2.10.1:add\u001b[m \u001b[1m(default-cli)\u001b[m @ \u001b[36mdemoapp-parent\u001b[0;1m ---\u001b[m\n[\u001b[1;34mINFO\u001b[m] AddMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/schema.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/data/sap.capire.bookshop-Genres.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/data/sap.capire.bookshop-Books_texts.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/data/sap.capire.bookshop-Authors.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/data/sap.capire.bookshop-Books.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/cat-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/admin-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/manifest.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/Component.js\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/fiori-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/manifest.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/Component.js\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/fiori-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/common.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/_i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/_i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/appconfig/fioriSandboxConfig.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/services.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/index.html\n[\u001b[1;34mINFO\u001b[m] AddMojo: Added dependency `org.springframework.boot:spring-boot-starter-security` to '/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/pom.xml'.\nStandard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts\n[\u001b[1;33mWARNING\u001b[m] AddMojo: Profile 'default' exists and has been updated.\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mReactor Summary for demoapp parent 1.0.0-SNAPSHOT:\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] demoapp parent ..................................... \u001b[1;32mSUCCESS\u001b[m [ 0.292 s]\n[\u001b[1;34mINFO\u001b[m] demoapp ............................................ \u001b[1;33mSKIPPED\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1;32mBUILD SUCCESS\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] Total time: 0.415 s\n[\u001b[1;34mINFO\u001b[m] Finished at: 2024-07-05T15:05:18+05:30\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n\nSuccessfully created project. Continue with 'cd demoapp'.\nLearn about next steps at https://cap.cloud.sap\n\n" } ] }, @@ -36,13 +36,13 @@ { "kind": 1, "language": "markdown", - "value": "## Add Enhancements for the Datamodel\nThe `books` entity will be enhanced with the `attachments` composition.\n\nTo be able to use the `cds-feature-attachments` datamodel a `pom.xml` needs to be added with the maven dependency for the feature.\nThe version for the dependency is taken from the file `version.txt`. \nThis file will be updated if a new version is created in the repository.\n\nOnce the `pom.xml` is available and the version is set a `mvn clean verify` is executed.\nWith the the `resolve` goal of the `cds-maven-plugin` is executed which copies the `cds`-files from the feature in the `target` folder of the `db` module.\n\nOnce available in the `target` folder it will be found and can be used in the data models.", + "value": "## Add Enhancements for the Datamodel\nThe `books` entity will be enhanced with the `attachments` composition.\n\nTo be able to use the `sdm` datamodel a `pom.xml` needs to be added with the maven dependency for the feature.\nThe version for the dependency is taken from the file `version.txt`. \nThis file will be updated if a new version is created in the repository.\n\nOnce the `pom.xml` is available and the version is set a `mvn clean verify` is executed.\nWith the the `resolve` goal of the `cds-maven-plugin` is executed which copies the `cds`-files from the feature in the `target` folder of the `db` module.\n\nOnce available in the `target` folder it will be found and can be used in the data models.", "outputs": [] }, { "kind": 2, "language": "shell", - "value": "%%writefile \"db/attachment-extension.cds\"\nusing {sap.capire.bookshop.Books} from './schema';\nusing {sap.attachments.Attachments, sap.attachments.StatusCode} from`com.sap.cds/cds-feature-attachments`;\n\nextend entity Books with {\n attachments : Composition of many Attachments;\n}\n\nentity Statuses @cds.autoexpose @readonly {\n key code : StatusCode;\n text : localized String(255);\n}\n\nextend Attachments with {\n statusText : Association to Statuses on statusText.code = $self.status;\n}\n\nannotate Books.attachments with {\n status @(\n Common.Text: {\n $value: ![statusText.text],\n ![@UI.TextArrangement]: #TextOnly\n },\n ValueList: {entity:'Statuses'},\n sap.value.list: 'fixed-values'\n );\n}\n", + "value": "%%writefile \"db/attachment-extension.cds\"\nusing {sap.capire.bookshop.Books} from './schema';\nusing {sap.attachments.Attachments} from`com.sap.cds/sdm`;\n\nextend entity Books with {\n attachments : Composition of many Attachments;\n}\n\nentity Statuses @cds.autoexpose @readonly {\n key code : StatusCode;\n text : localized String(255);\n}\n\nextend Attachments with {\n statusText : Association to Statuses on statusText.code = $self.status;\n}\n\nannotate Books.attachments with {\n status @(\n Common.Text: {\n $value: ![statusText.text],\n ![@UI.TextArrangement]: #TextOnly\n },\n ValueList: {entity:'Statuses'},\n sap.value.list: 'fixed-values'\n );\n}\n", "outputs": [ { "mime": "text/html", @@ -112,14 +112,14 @@ "outputs": [ { "mime": "text/plain", - "value": "[INFO] Scanning for projects...\n[INFO] \n[INFO] ----------------------------< customer:db >-----------------------------\n[INFO] Building db 1.0.0-SNAPSHOT\n[INFO] from pom.xml\n[INFO] --------------------------------[ jar ]---------------------------------\n[INFO] \n[INFO] --- clean:3.2.0:clean (default-clean) @ db ---\n[INFO] \n[INFO] --- flatten:1.6.0:clean (flatten.clean) @ db ---\n[INFO] \n[INFO] --- cds:2.10.1:clean (cds.clean) @ db ---\n[INFO] \n[INFO] --- enforcer:3.4.1:enforce (Project Structure Checks) @ db ---\n[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed\n[INFO] Rule 1: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed\n[INFO] Rule 2: org.apache.maven.enforcer.rules.ReactorModuleConvergence passed\n[INFO] \n[INFO] --- cds:2.10.1:resolve (cds.resolve) @ db ---\n[INFO] CdsResolveMojo: Extracting models from com.sap.cds:cds-feature-attachments:1.0.2 (/Users/I324829/.m2/repository/com/sap/cds/cds-feature-attachments/1.0.2/cds-feature-attachments-1.0.2.jar)\n[INFO] \n[INFO] --- resources:3.3.1:resources (default-resources) @ db ---\n[INFO] skip non existing resourceDirectory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/db/src/main/resources\n[INFO] \n[INFO] --- flatten:1.6.0:flatten (flatten) @ db ---\n[INFO] Generating flattened POM of project customer:db:jar:1.0.0-SNAPSHOT...\n[INFO] \n[INFO] --- compiler:3.12.1:compile (default-compile) @ db ---\n[INFO] No sources to compile\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 1.803 s\n[INFO] Finished at: 2024-07-05T15:05:22+05:30\n[INFO] ------------------------------------------------------------------------\n\n" + "value": "[INFO] Scanning for projects...\n[INFO] \n[INFO] ----------------------------< customer:db >-----------------------------\n[INFO] Building db 1.0.0-SNAPSHOT\n[INFO] from pom.xml\n[INFO] --------------------------------[ jar ]---------------------------------\n[INFO] \n[INFO] --- clean:3.2.0:clean (default-clean) @ db ---\n[INFO] \n[INFO] --- flatten:1.6.0:clean (flatten.clean) @ db ---\n[INFO] \n[INFO] --- cds:2.10.1:clean (cds.clean) @ db ---\n[INFO] \n[INFO] --- enforcer:3.4.1:enforce (Project Structure Checks) @ db ---\n[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed\n[INFO] Rule 1: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed\n[INFO] Rule 2: org.apache.maven.enforcer.rules.ReactorModuleConvergence passed\n[INFO] \n[INFO] --- cds:2.10.1:resolve (cds.resolve) @ db ---\n[INFO] CdsResolveMojo: Extracting models from com.sap.cds:sdm:1.0.0-SNAPSHOT (/Users/I324829/.m2/repository/com/sap/cds/sdm/1.0.0-SNAPSHOT/sdm-1.0.0-SNAPSHOT.jar)\n[INFO] \n[INFO] --- resources:3.3.1:resources (default-resources) @ db ---\n[INFO] skip non existing resourceDirectory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/src/main/resources\n[INFO] \n[INFO] --- flatten:1.6.0:flatten (flatten) @ db ---\n[INFO] Generating flattened POM of project customer:db:jar:1.0.0-SNAPSHOT...\n[INFO] \n[INFO] --- compiler:3.12.1:compile (default-compile) @ db ---\n[INFO] No sources to compile\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 1.803 s\n[INFO] Finished at: 2024-07-05T15:05:22+05:30\n[INFO] ------------------------------------------------------------------------\n\n" } ] }, { "kind": 1, "language": "markdown", - "value": "## Service Changes\n\nThe service module `srv` of the demo project needs to be updated with the maven dependency for `cds-feature-attachments`.\nThis dependency has included the logic to correctly handle attachments and call the `AtacchmentService`.\n\nAlso here, the version is taken from the `version.txt` which is updated in case a new version in the repository is created.", + "value": "## Service Changes\n\nThe service module `srv` of the demo project needs to be updated with the maven dependency for `sdm`.\nThis dependency has included the logic to correctly handle attachments and call the `AtacchmentService`.\n\nAlso here, the version is taken from the `version.txt` which is updated in case a new version in the repository is created.", "outputs": [] }, { @@ -136,13 +136,13 @@ { "kind": 1, "language": "markdown", - "value": "add the following dependency to the `srv/pom.xml`:\n```\n\n com.sap.cds\n cds-feature-attachments\n ${latest-version}\n\n``` ", + "value": "add the following dependency to the `srv/pom.xml`:\n```\n\n com.sap.cds\n sdm\n 1.0.0-SNAPSHOT\n\n``` ", "outputs": [] }, { "kind": 2, "language": "java", - "value": "\nPath versionPath = Paths.get(\"../../version.txt\");\nString version;\nif (Files.exists(versionPath)){\n version = Files.readString(versionPath);\n System.out.println(\"Using version from 'version.txt': \" + version);\n}else{\n version = \"1.0.2\";\n System.out.println(\"Using hard coded version: \" + version);\n}\n\nString filePath = \"pom.xml\";\ntry {\n String pom = Files.readString(Path.of(filePath));\n String searchString = \"\";\n Pattern pattern = Pattern.compile(searchString);\n Matcher matcher = pattern.matcher(pom);\n\n if (matcher.find()) {\n System.out.println(\"String found at position: \" + matcher.start());\n } else {\n System.out.println(\"String not found\");\n }\n\n String newDependency = \"\\n\\n \\n com.sap.cds\\n cds-feature-attachments\\n \" + version + \"\\n \\n\\n\";\n int insertPos = matcher.end();\n pom = pom.substring(0, insertPos) + newDependency + pom.substring(insertPos);\n\n Files.writeString(Path.of(filePath), pom);\n\n} catch (IOException e) {\n e.printStackTrace();\n}", + "value": "\nPath versionPath = Paths.get(\"../../version.txt\");\nString version;\nif (Files.exists(versionPath)){\n version = Files.readString(versionPath);\n System.out.println(\"Using version from 'version.txt': \" + version);\n}else{\n version = \"1.0.2\";\n System.out.println(\"Using hard coded version: \" + version);\n}\n\nString filePath = \"pom.xml\";\ntry {\n String pom = Files.readString(Path.of(filePath));\n String searchString = \"\";\n Pattern pattern = Pattern.compile(searchString);\n Matcher matcher = pattern.matcher(pom);\n\n if (matcher.find()) {\n System.out.println(\"String found at position: \" + matcher.start());\n } else {\n System.out.println(\"String not found\");\n }\n\n String newDependency = \"\\n\\n \\n com.sap.cds\\n sdm\\n \" + version + \"\\n \\n\\n\";\n int insertPos = matcher.end();\n pom = pom.substring(0, insertPos) + newDependency + pom.substring(insertPos);\n\n Files.writeString(Path.of(filePath), pom);\n\n} catch (IOException e) {\n e.printStackTrace();\n}", "outputs": [ { "mime": "text/plain", @@ -225,7 +225,7 @@ "outputs": [ { "mime": "text/plain", - "value": "[INFO] Scanning for projects...\n[INFO] \n[INFO] --------------------------< customer:demoapp >--------------------------\n[INFO] Building demoapp 1.0.0-SNAPSHOT\n[INFO] from pom.xml\n[INFO] --------------------------------[ jar ]---------------------------------\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.pom\nProgress (1): 4.2 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.pom (4.2 kB at 5.6 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.jar\nProgress (1): 7.2/135 kBProgress (1): 15/135 kB Progress (1): 32/135 kBProgress (1): 48/135 kBProgress (1): 65/135 kBProgress (1): 81/135 kBProgress (1): 97/135 kBProgress (1): 114/135 kBProgress (1): 130/135 kBProgress (1): 135 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.jar (135 kB at 228 kB/s)\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom\nProgress (1): 2.7 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom (2.7 kB at 17 kB/s)\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar\nProgress (1): 6.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar (6.8 kB at 44 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar\nProgress (1): 7.3/20 kBProgress (1): 16/20 kB Progress (2): 16/20 kB | 7.3/15 kBProgress (2): 16/20 kB | 15 kB Progress (2): 20 kB | 15 kB Progress (3): 20 kB | 15 kB | 7.3/375 kBProgress (3): 20 kB | 15 kB | 16/375 kB Progress (3): 20 kB | 15 kB | 32/375 kBProgress (4): 20 kB | 15 kB | 32/375 kB | 7.3/149 kBProgress (4): 20 kB | 15 kB | 32/375 kB | 16/149 kB Progress (4): 20 kB | 15 kB | 32/375 kB | 32/149 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar (20 kB at 63 kB/s)\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar (15 kB at 48 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar\nProgress (3): 32/375 kB | 32/149 kB | 7.3/16 kBProgress (3): 32/375 kB | 32/149 kB | 16/16 kB Progress (3): 32/375 kB | 32/149 kB | 16 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar (16 kB at 50 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar\nProgress (2): 48/375 kB | 32/149 kBProgress (2): 65/375 kB | 32/149 kBProgress (2): 81/375 kB | 32/149 kBProgress (2): 81/375 kB | 48/149 kBProgress (2): 81/375 kB | 65/149 kBProgress (2): 81/375 kB | 81/149 kBProgress (3): 81/375 kB | 81/149 kB | 4.7 kBProgress (4): 81/375 kB | 81/149 kB | 4.7 kB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar (4.7 kB at 10 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar (4.8 kB at 10 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar\nProgress (3): 81/375 kB | 81/149 kB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar (4.8 kB at 9.8 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar\nProgress (2): 97/375 kB | 81/149 kBProgress (2): 114/375 kB | 81/149 kBProgress (2): 130/375 kB | 81/149 kBProgress (2): 147/375 kB | 81/149 kBProgress (2): 163/375 kB | 81/149 kBProgress (2): 163/375 kB | 97/149 kBProgress (2): 179/375 kB | 97/149 kBProgress (2): 179/375 kB | 114/149 kBProgress (2): 179/375 kB | 130/149 kBProgress (2): 179/375 kB | 147/149 kBProgress (2): 179/375 kB | 149 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar (149 kB at 245 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar\nProgress (2): 179/375 kB | 0/3.8 MBProgress (2): 179/375 kB | 0/3.8 MBProgress (3): 179/375 kB | 0/3.8 MB | 7.2/261 kBProgress (3): 179/375 kB | 0/3.8 MB | 15/261 kB Progress (3): 179/375 kB | 0/3.8 MB | 32/261 kBProgress (4): 179/375 kB | 0/3.8 MB | 32/261 kB | 7.2/282 kBProgress (4): 179/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kB Progress (4): 196/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 212/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 229/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 245/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 261/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 278/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 294/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 310/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 327/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 343/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 360/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 375 kB | 0/3.8 MB | 32/261 kB | 15/282 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar (375 kB at 495 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar\nProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 48/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0.1/3.8 MB | 48/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0.1/3.8 MB | 48/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 81/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 81/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 32/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 48/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 65/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 7.2/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 15/72 kB Progress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 32/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 48/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 65/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 72 kB Progress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MB | 72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MB | 72 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar (72 kB at 79 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar\nProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 163/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.2/3.8 MB | 163/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.2/3.8 MB | 163/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 196/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 196/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 228/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 245/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 245/261 kB | 81/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261/261 kB | 81/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261 kB | 81/282 kB | 0.4/1.9 MB Progress (4): 0.2/3.8 MB | 261 kB | 97/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261 kB | 114/282 kB | 0.4/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar (261 kB at 273 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar\nProgress (3): 0.2/3.8 MB | 130/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 146/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 163/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 179/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 196/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 7.2/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 15/47 kB Progress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 32/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 32/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kB Progress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar (47 kB at 45 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar\nProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 228/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 261/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 278/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0/1.0 MB Progress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar (282 kB at 250 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar\nProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar (4.8 kB at 3.9 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar\nProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 7.2/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 15/467 kB Progress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 130/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 130/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 146/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 146/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 163/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 179/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 196/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 212/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 228/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 245/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 261/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 278/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 294/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB Progress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 7.2/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 15/285 kB Progress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 32/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 48/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 65/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 81/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 97/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 114/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 130/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 146/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 163/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 179/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 196/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 196/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 212/285 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar (1.9 MB at 1.4 MB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar\nProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 228/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 228/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 261/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 261/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 278/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kB Progress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar (285 kB at 203 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar\nProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 327/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 327/467 kB Progress (3): 1.8/3.8 MB | 1.0 MB | 343/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 359/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 376/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 392/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 409/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 425/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 441/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 458/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 467 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar (1.0 MB at 712 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar (467 kB at 318 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar\nProgress (1): 1.8/3.8 MBProgress (1): 1.8/3.8 MBProgress (1): 1.9/3.8 MBProgress (1): 1.9/3.8 MBProgress (1): 1.9/3.8 MBProgress (2): 1.9/3.8 MB | 7.3/372 kBProgress (2): 1.9/3.8 MB | 16/372 kB Progress (2): 1.9/3.8 MB | 32/372 kBProgress (2): 1.9/3.8 MB | 48/372 kBProgress (2): 1.9/3.8 MB | 65/372 kBProgress (2): 1.9/3.8 MB | 81/372 kBProgress (2): 1.9/3.8 MB | 97/372 kBProgress (2): 1.9/3.8 MB | 114/372 kBProgress (2): 1.9/3.8 MB | 130/372 kBProgress (2): 1.9/3.8 MB | 147/372 kBProgress (2): 1.9/3.8 MB | 163/372 kBProgress (2): 1.9/3.8 MB | 179/372 kBProgress (2): 1.9/3.8 MB | 196/372 kBProgress (2): 1.9/3.8 MB | 212/372 kBProgress (2): 1.9/3.8 MB | 229/372 kBProgress (2): 1.9/3.8 MB | 245/372 kBProgress (2): 1.9/3.8 MB | 261/372 kBProgress (2): 1.9/3.8 MB | 261/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 294/372 kBProgress (2): 1.9/3.8 MB | 310/372 kBProgress (2): 1.9/3.8 MB | 327/372 kBProgress (2): 1.9/3.8 MB | 343/372 kBProgress (2): 1.9/3.8 MB | 343/372 kBProgress (2): 2.0/3.8 MB | 343/372 kBProgress (2): 2.0/3.8 MB | 360/372 kBProgress (2): 2.0/3.8 MB | 372 kB Progress (3): 2.0/3.8 MB | 372 kB | 0/1.7 MBProgress (3): 2.0/3.8 MB | 372 kB | 0/1.7 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar (372 kB at 238 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar\nProgress (2): 2.0/3.8 MB | 0/1.7 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 7.2/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 15/203 kB Progress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MB Progress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar (1.6 MB at 825 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar (3.8 MB at 2.0 MB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar\nProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 163/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 163/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 179/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar (4.8 kB at 2.2 kB/s)\nProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB Downloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar\nProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MB Progress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.5/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar (203 kB at 96 kB/s)\nProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MB Downloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar\nProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3 MB | 0.6/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar (1.3 MB at 580 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar\nProgress (3): 0.8/1.7 MB | 0.6/1.9 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar (4.8 kB at 2.1 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar\nProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 0.6/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar (4.7 kB at 2.1 kB/s)\nProgress (2): 0.8/1.7 MB | 0.9/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.4/1.7 MB | 1.2/1.9 MBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 7.2/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 15/416 kB Progress (3): 1.4/1.7 MB | 1.2/1.9 MB | 32/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 48/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 65/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 81/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 97/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 114/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 130/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 146/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 163/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 179/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 196/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 212/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 228/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 245/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 261/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 278/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 294/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 294/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 310/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 310/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 343/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 359/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 376/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 392/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 392/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 409/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 409/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kB Progress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 416 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar (416 kB at 171 kB/s)\nProgress (3): 1.4/1.7 MB | 1.9 MB | 7.2/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 15/303 kB Progress (3): 1.4/1.7 MB | 1.9 MB | 32/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 48/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 65/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 81/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 97/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 114/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 130/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 146/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 163/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 163/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 179/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 179/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 196/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 212/303 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar (1.9 MB at 793 kB/s)\nProgress (2): 1.4/1.7 MB | 228/303 kBProgress (2): 1.4/1.7 MB | 228/303 kBProgress (2): 1.4/1.7 MB | 245/303 kBProgress (2): 1.4/1.7 MB | 261/303 kBProgress (2): 1.4/1.7 MB | 261/303 kBProgress (2): 1.4/1.7 MB | 278/303 kBProgress (2): 1.4/1.7 MB | 294/303 kBProgress (2): 1.4/1.7 MB | 303 kB Progress (2): 1.4/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar (303 kB at 123 kB/s)\nProgress (1): 1.6/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar (1.7 MB at 658 kB/s)\n[INFO] \n[INFO] --- clean:3.2.0:clean (default-clean) @ demoapp ---\n[INFO] \n[INFO] --- flatten:1.6.0:clean (flatten.clean) @ demoapp ---\n[INFO] \n[INFO] --- cds:2.10.1:clean (cds.clean) @ demoapp ---\n[INFO] \n[INFO] --- enforcer:3.4.1:enforce (Project Structure Checks) @ demoapp ---\n[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed\n[INFO] Rule 1: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed\n[INFO] Rule 2: org.apache.maven.enforcer.rules.ReactorModuleConvergence passed\n[INFO] \n[INFO] --- cds:2.10.1:install-node (cds.install-node) @ demoapp ---\n[INFO] InstallNodeMojo: Installing Node.js v18.20.2\n[INFO] InstallNodeMojo: Downloading https://nodejs.org/dist/v18.20.2/node-v18.20.2-darwin-arm64.tar.gz to /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/archive/18.20.2/archive-18.20.2-darwin-arm64.tar.gz\n[INFO] InstallNodeMojo: No proxy was configured, downloading directly.\nStandard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts\n[INFO] InstallNodeMojo: Unpacking /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/archive/18.20.2/archive-18.20.2-darwin-arm64.tar.gz into /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz\n[INFO] \n[INFO] --- cds:2.10.1:install-cdsdk (cds.install-cdsdk) @ demoapp ---\n[INFO] InstallCdsdkMojo: Using npm provided by goal install-node: /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npm\n[INFO] InstallCdsdkMojo: Identified /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp as reactor base directory.\n[INFO] InstallCdsdkMojo: Using directory containing a .cdsrc.json as working directory: /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: Installing @sap/cds-dk@7.9.3 into: /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npm, install, @sap/cds-dk@7.9.3, --no-save] in working directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: \nadded 338 packages, and audited 339 packages in 10s\n\n47 packages are looking for funding\n run `npm fund` for details\n\n1 high severity vulnerability\n\nTo address all issues, run:\n npm audit fix\n\nRun `npm audit` for details.\n\n[INFO] \n[INFO] --- cds:2.10.1:resolve (cds.resolve) @ demoapp ---\n[INFO] CdsResolveMojo: Extracting models from com.sap.cds:cds-feature-attachments:1.0.2 (/Users/I324829/.m2/repository/com/sap/cds/cds-feature-attachments/1.0.2/cds-feature-attachments-1.0.2.jar)\n[INFO] \n[INFO] --- cds:2.10.1:cds (cds.build) @ demoapp ---\n[INFO] CdsMojo: Using npx provided by goal install-node: /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx\n[INFO] CdsMojo: Using directory containing a .cdsrc.json as working directory: /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds version] in working directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] CdsMojo: Using configured working directory: /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds build --for java] in working directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] CdsMojo: building project [/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp], clean [true]\ncds-dk [7.9.3], cds [7.9.2], compiler [4.9.4], home [/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/node_modules/@sap/cds-dk/node_modules/@sap/cds]\n\n{\n build: {\n target: '.',\n tasks: [\n { for: 'java', src: 'srv', options: { model: ['db', 'srv', 'app'] }}\n ]\n }\n}\n\nwriting generation log to [/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/target/cds-build.log]\n\ndone > wrote output to:\n srv/src/main/resources/edmx/AdminService.xml\n srv/src/main/resources/edmx/AdminService_ar.xml\n srv/src/main/resources/edmx/AdminService_cs.xml\n srv/src/main/resources/edmx/AdminService_da.xml\n srv/src/main/resources/edmx/AdminService_de.xml\n srv/src/main/resources/edmx/AdminService_en.xml\n srv/src/main/resources/edmx/AdminService_es.xml\n srv/src/main/resources/edmx/AdminService_es_MX.xml\n srv/src/main/resources/edmx/AdminService_fi.xml\n srv/src/main/resources/edmx/AdminService_fr.xml\n srv/src/main/resources/edmx/AdminService_hu.xml\n srv/src/main/resources/edmx/AdminService_it.xml\n srv/src/main/resources/edmx/AdminService_ja.xml\n srv/src/main/resources/edmx/AdminService_ko.xml\n srv/src/main/resources/edmx/AdminService_ms.xml\n srv/src/main/resources/edmx/AdminService_nl.xml\n srv/src/main/resources/edmx/AdminService_no.xml\n srv/src/main/resources/edmx/AdminService_pl.xml\n srv/src/main/resources/edmx/AdminService_pt.xml\n srv/src/main/resources/edmx/AdminService_ro.xml\n srv/src/main/resources/edmx/AdminService_ru.xml\n srv/src/main/resources/edmx/AdminService_sv.xml\n srv/src/main/resources/edmx/AdminService_th.xml\n srv/src/main/resources/edmx/AdminService_tr.xml\n srv/src/main/resources/edmx/AdminService_zh_CN.xml\n srv/src/main/resources/edmx/AdminService_zh_TW.xml\n srv/src/main/resources/edmx/CatalogService.xml\n srv/src/main/resources/edmx/CatalogService_ar.xml\n srv/src/main/resources/edmx/CatalogService_cs.xml\n srv/src/main/resources/edmx/CatalogService_da.xml\n ... 26 more. Run with DEBUG=build to show all files.\n\nbuild completed in 919 ms\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds deploy --to h2 --dry > \"/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/main/resources/schema-h2.sql\"] in working directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp\n[INFO] CdsMojo: \n[INFO] \n[INFO] --- cds:2.10.1:generate (cds.generate) @ demoapp ---\n[INFO] GenerateMojo: Adding code output directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/gen/java to compile source directories.\n[INFO] GenerateMojo: Adding directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/gen/resources to resources.\n[INFO] GenerateMojo: Scanning directory /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/main/resources for [**/csn.json], excluding [**/db/changelog/**/csn.json].\n[INFO] GenerateMojo: Using /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/main/resources/edmx/csn.json to generate Java classes into /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/src/gen.\n[INFO] GenerateMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[INFO] GenerateMojo: Class generation finished successfully\n[INFO] \n[INFO] --- resources:3.3.1:resources (default-resources) @ demoapp ---\n[INFO] Copying 58 resources from src/main/resources to target/classes\n[INFO] Copying 1 resource from src/gen/resources to target/classes\n[INFO] \n[INFO] --- flatten:1.6.0:flatten (flatten) @ demoapp ---\n[INFO] Generating flattened POM of project customer:demoapp:jar:1.0.0-SNAPSHOT...\n[INFO] \n[INFO] --- compiler:3.12.1:compile (default-compile) @ demoapp ---\n[INFO] Recompiling the module because of changed source code.\n[INFO] Compiling 104 source files with javac [debug release 17] to target/classes\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 32.111 s\n[INFO] Finished at: 2024-07-05T15:05:57+05:30\n[INFO] ------------------------------------------------------------------------\n\n" + "value": "[INFO] Scanning for projects...\n[INFO] \n[INFO] --------------------------< customer:demoapp >--------------------------\n[INFO] Building demoapp 1.0.0-SNAPSHOT\n[INFO] from pom.xml\n[INFO] --------------------------------[ jar ]---------------------------------\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.pom\nProgress (1): 4.2 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.pom (4.2 kB at 5.6 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.jar\nProgress (1): 7.2/135 kBProgress (1): 15/135 kB Progress (1): 32/135 kBProgress (1): 48/135 kBProgress (1): 65/135 kBProgress (1): 81/135 kBProgress (1): 97/135 kBProgress (1): 114/135 kBProgress (1): 130/135 kBProgress (1): 135 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.jar (135 kB at 228 kB/s)\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom\nProgress (1): 2.7 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom (2.7 kB at 17 kB/s)\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar\nProgress (1): 6.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar (6.8 kB at 44 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar\nProgress (1): 7.3/20 kBProgress (1): 16/20 kB Progress (2): 16/20 kB | 7.3/15 kBProgress (2): 16/20 kB | 15 kB Progress (2): 20 kB | 15 kB Progress (3): 20 kB | 15 kB | 7.3/375 kBProgress (3): 20 kB | 15 kB | 16/375 kB Progress (3): 20 kB | 15 kB | 32/375 kBProgress (4): 20 kB | 15 kB | 32/375 kB | 7.3/149 kBProgress (4): 20 kB | 15 kB | 32/375 kB | 16/149 kB Progress (4): 20 kB | 15 kB | 32/375 kB | 32/149 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar (20 kB at 63 kB/s)\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar (15 kB at 48 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar\nProgress (3): 32/375 kB | 32/149 kB | 7.3/16 kBProgress (3): 32/375 kB | 32/149 kB | 16/16 kB Progress (3): 32/375 kB | 32/149 kB | 16 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar (16 kB at 50 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar\nProgress (2): 48/375 kB | 32/149 kBProgress (2): 65/375 kB | 32/149 kBProgress (2): 81/375 kB | 32/149 kBProgress (2): 81/375 kB | 48/149 kBProgress (2): 81/375 kB | 65/149 kBProgress (2): 81/375 kB | 81/149 kBProgress (3): 81/375 kB | 81/149 kB | 4.7 kBProgress (4): 81/375 kB | 81/149 kB | 4.7 kB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar (4.7 kB at 10 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar (4.8 kB at 10 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar\nProgress (3): 81/375 kB | 81/149 kB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar (4.8 kB at 9.8 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar\nProgress (2): 97/375 kB | 81/149 kBProgress (2): 114/375 kB | 81/149 kBProgress (2): 130/375 kB | 81/149 kBProgress (2): 147/375 kB | 81/149 kBProgress (2): 163/375 kB | 81/149 kBProgress (2): 163/375 kB | 97/149 kBProgress (2): 179/375 kB | 97/149 kBProgress (2): 179/375 kB | 114/149 kBProgress (2): 179/375 kB | 130/149 kBProgress (2): 179/375 kB | 147/149 kBProgress (2): 179/375 kB | 149 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar (149 kB at 245 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar\nProgress (2): 179/375 kB | 0/3.8 MBProgress (2): 179/375 kB | 0/3.8 MBProgress (3): 179/375 kB | 0/3.8 MB | 7.2/261 kBProgress (3): 179/375 kB | 0/3.8 MB | 15/261 kB Progress (3): 179/375 kB | 0/3.8 MB | 32/261 kBProgress (4): 179/375 kB | 0/3.8 MB | 32/261 kB | 7.2/282 kBProgress (4): 179/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kB Progress (4): 196/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 212/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 229/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 245/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 261/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 278/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 294/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 310/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 327/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 343/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 360/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 375 kB | 0/3.8 MB | 32/261 kB | 15/282 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar (375 kB at 495 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar\nProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 48/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0.1/3.8 MB | 48/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0.1/3.8 MB | 48/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 81/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 81/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 32/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 48/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 65/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 7.2/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 15/72 kB Progress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 32/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 48/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 65/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 72 kB Progress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MB | 72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MB | 72 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar (72 kB at 79 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar\nProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 163/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.2/3.8 MB | 163/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.2/3.8 MB | 163/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 196/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 196/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 228/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 245/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 245/261 kB | 81/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261/261 kB | 81/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261 kB | 81/282 kB | 0.4/1.9 MB Progress (4): 0.2/3.8 MB | 261 kB | 97/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261 kB | 114/282 kB | 0.4/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar (261 kB at 273 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar\nProgress (3): 0.2/3.8 MB | 130/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 146/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 163/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 179/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 196/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 7.2/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 15/47 kB Progress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 32/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 32/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kB Progress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar (47 kB at 45 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar\nProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 228/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 261/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 278/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0/1.0 MB Progress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar (282 kB at 250 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar\nProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar (4.8 kB at 3.9 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar\nProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 7.2/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 15/467 kB Progress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 130/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 130/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 146/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 146/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 163/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 179/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 196/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 212/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 228/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 245/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 261/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 278/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 294/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB Progress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 7.2/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 15/285 kB Progress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 32/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 48/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 65/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 81/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 97/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 114/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 130/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 146/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 163/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 179/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 196/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 196/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 212/285 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar (1.9 MB at 1.4 MB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar\nProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 228/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 228/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 261/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 261/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 278/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kB Progress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar (285 kB at 203 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar\nProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 327/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 327/467 kB Progress (3): 1.8/3.8 MB | 1.0 MB | 343/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 359/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 376/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 392/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 409/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 425/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 441/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 458/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 467 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar (1.0 MB at 712 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar (467 kB at 318 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar\nProgress (1): 1.8/3.8 MBProgress (1): 1.8/3.8 MBProgress (1): 1.9/3.8 MBProgress (1): 1.9/3.8 MBProgress (1): 1.9/3.8 MBProgress (2): 1.9/3.8 MB | 7.3/372 kBProgress (2): 1.9/3.8 MB | 16/372 kB Progress (2): 1.9/3.8 MB | 32/372 kBProgress (2): 1.9/3.8 MB | 48/372 kBProgress (2): 1.9/3.8 MB | 65/372 kBProgress (2): 1.9/3.8 MB | 81/372 kBProgress (2): 1.9/3.8 MB | 97/372 kBProgress (2): 1.9/3.8 MB | 114/372 kBProgress (2): 1.9/3.8 MB | 130/372 kBProgress (2): 1.9/3.8 MB | 147/372 kBProgress (2): 1.9/3.8 MB | 163/372 kBProgress (2): 1.9/3.8 MB | 179/372 kBProgress (2): 1.9/3.8 MB | 196/372 kBProgress (2): 1.9/3.8 MB | 212/372 kBProgress (2): 1.9/3.8 MB | 229/372 kBProgress (2): 1.9/3.8 MB | 245/372 kBProgress (2): 1.9/3.8 MB | 261/372 kBProgress (2): 1.9/3.8 MB | 261/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 294/372 kBProgress (2): 1.9/3.8 MB | 310/372 kBProgress (2): 1.9/3.8 MB | 327/372 kBProgress (2): 1.9/3.8 MB | 343/372 kBProgress (2): 1.9/3.8 MB | 343/372 kBProgress (2): 2.0/3.8 MB | 343/372 kBProgress (2): 2.0/3.8 MB | 360/372 kBProgress (2): 2.0/3.8 MB | 372 kB Progress (3): 2.0/3.8 MB | 372 kB | 0/1.7 MBProgress (3): 2.0/3.8 MB | 372 kB | 0/1.7 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar (372 kB at 238 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar\nProgress (2): 2.0/3.8 MB | 0/1.7 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 7.2/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 15/203 kB Progress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MB Progress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar (1.6 MB at 825 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar (3.8 MB at 2.0 MB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar\nProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 163/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 163/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 179/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar (4.8 kB at 2.2 kB/s)\nProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB Downloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar\nProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MB Progress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.5/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar (203 kB at 96 kB/s)\nProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MB Downloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar\nProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3 MB | 0.6/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar (1.3 MB at 580 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar\nProgress (3): 0.8/1.7 MB | 0.6/1.9 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar (4.8 kB at 2.1 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar\nProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 0.6/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar (4.7 kB at 2.1 kB/s)\nProgress (2): 0.8/1.7 MB | 0.9/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.4/1.7 MB | 1.2/1.9 MBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 7.2/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 15/416 kB Progress (3): 1.4/1.7 MB | 1.2/1.9 MB | 32/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 48/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 65/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 81/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 97/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 114/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 130/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 146/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 163/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 179/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 196/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 212/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 228/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 245/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 261/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 278/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 294/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 294/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 310/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 310/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 343/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 359/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 376/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 392/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 392/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 409/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 409/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kB Progress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 416 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar (416 kB at 171 kB/s)\nProgress (3): 1.4/1.7 MB | 1.9 MB | 7.2/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 15/303 kB Progress (3): 1.4/1.7 MB | 1.9 MB | 32/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 48/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 65/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 81/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 97/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 114/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 130/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 146/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 163/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 163/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 179/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 179/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 196/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 212/303 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar (1.9 MB at 793 kB/s)\nProgress (2): 1.4/1.7 MB | 228/303 kBProgress (2): 1.4/1.7 MB | 228/303 kBProgress (2): 1.4/1.7 MB | 245/303 kBProgress (2): 1.4/1.7 MB | 261/303 kBProgress (2): 1.4/1.7 MB | 261/303 kBProgress (2): 1.4/1.7 MB | 278/303 kBProgress (2): 1.4/1.7 MB | 294/303 kBProgress (2): 1.4/1.7 MB | 303 kB Progress (2): 1.4/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar (303 kB at 123 kB/s)\nProgress (1): 1.6/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar (1.7 MB at 658 kB/s)\n[INFO] \n[INFO] --- clean:3.2.0:clean (default-clean) @ demoapp ---\n[INFO] \n[INFO] --- flatten:1.6.0:clean (flatten.clean) @ demoapp ---\n[INFO] \n[INFO] --- cds:2.10.1:clean (cds.clean) @ demoapp ---\n[INFO] \n[INFO] --- enforcer:3.4.1:enforce (Project Structure Checks) @ demoapp ---\n[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed\n[INFO] Rule 1: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed\n[INFO] Rule 2: org.apache.maven.enforcer.rules.ReactorModuleConvergence passed\n[INFO] \n[INFO] --- cds:2.10.1:install-node (cds.install-node) @ demoapp ---\n[INFO] InstallNodeMojo: Installing Node.js v18.20.2\n[INFO] InstallNodeMojo: Downloading https://nodejs.org/dist/v18.20.2/node-v18.20.2-darwin-arm64.tar.gz to /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/archive/18.20.2/archive-18.20.2-darwin-arm64.tar.gz\n[INFO] InstallNodeMojo: No proxy was configured, downloading directly.\nStandard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts\n[INFO] InstallNodeMojo: Unpacking /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/archive/18.20.2/archive-18.20.2-darwin-arm64.tar.gz into /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz\n[INFO] \n[INFO] --- cds:2.10.1:install-cdsdk (cds.install-cdsdk) @ demoapp ---\n[INFO] InstallCdsdkMojo: Using npm provided by goal install-node: /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npm\n[INFO] InstallCdsdkMojo: Identified /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp as reactor base directory.\n[INFO] InstallCdsdkMojo: Using directory containing a .cdsrc.json as working directory: /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: Installing @sap/cds-dk@7.9.3 into: /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npm, install, @sap/cds-dk@7.9.3, --no-save] in working directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: \nadded 338 packages, and audited 339 packages in 10s\n\n47 packages are looking for funding\n run `npm fund` for details\n\n1 high severity vulnerability\n\nTo address all issues, run:\n npm audit fix\n\nRun `npm audit` for details.\n\n[INFO] \n[INFO] --- cds:2.10.1:resolve (cds.resolve) @ demoapp ---\n[INFO] CdsResolveMojo: Extracting models from com.sap.cds:sdm:1.0.0-SNAPSHOT (/Users/I324829/.m2/repository/com/sap/cds/sdm/1.0.0-SNAPSHOT/sdm-1.0.0-SNAPSHOT.jar)\n[INFO] \n[INFO] --- cds:2.10.1:cds (cds.build) @ demoapp ---\n[INFO] CdsMojo: Using npx provided by goal install-node: /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx\n[INFO] CdsMojo: Using directory containing a .cdsrc.json as working directory: /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds version] in working directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] CdsMojo: Using configured working directory: /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds build --for java] in working directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] CdsMojo: building project [/Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp], clean [true]\ncds-dk [7.9.3], cds [7.9.2], compiler [4.9.4], home [/Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/node_modules/@sap/cds-dk/node_modules/@sap/cds]\n\n{\n build: {\n target: '.',\n tasks: [\n { for: 'java', src: 'srv', options: { model: ['db', 'srv', 'app'] }}\n ]\n }\n}\n\nwriting generation log to [/Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/target/cds-build.log]\n\ndone > wrote output to:\n srv/src/main/resources/edmx/AdminService.xml\n srv/src/main/resources/edmx/AdminService_ar.xml\n srv/src/main/resources/edmx/AdminService_cs.xml\n srv/src/main/resources/edmx/AdminService_da.xml\n srv/src/main/resources/edmx/AdminService_de.xml\n srv/src/main/resources/edmx/AdminService_en.xml\n srv/src/main/resources/edmx/AdminService_es.xml\n srv/src/main/resources/edmx/AdminService_es_MX.xml\n srv/src/main/resources/edmx/AdminService_fi.xml\n srv/src/main/resources/edmx/AdminService_fr.xml\n srv/src/main/resources/edmx/AdminService_hu.xml\n srv/src/main/resources/edmx/AdminService_it.xml\n srv/src/main/resources/edmx/AdminService_ja.xml\n srv/src/main/resources/edmx/AdminService_ko.xml\n srv/src/main/resources/edmx/AdminService_ms.xml\n srv/src/main/resources/edmx/AdminService_nl.xml\n srv/src/main/resources/edmx/AdminService_no.xml\n srv/src/main/resources/edmx/AdminService_pl.xml\n srv/src/main/resources/edmx/AdminService_pt.xml\n srv/src/main/resources/edmx/AdminService_ro.xml\n srv/src/main/resources/edmx/AdminService_ru.xml\n srv/src/main/resources/edmx/AdminService_sv.xml\n srv/src/main/resources/edmx/AdminService_th.xml\n srv/src/main/resources/edmx/AdminService_tr.xml\n srv/src/main/resources/edmx/AdminService_zh_CN.xml\n srv/src/main/resources/edmx/AdminService_zh_TW.xml\n srv/src/main/resources/edmx/CatalogService.xml\n srv/src/main/resources/edmx/CatalogService_ar.xml\n srv/src/main/resources/edmx/CatalogService_cs.xml\n srv/src/main/resources/edmx/CatalogService_da.xml\n ... 26 more. Run with DEBUG=build to show all files.\n\nbuild completed in 919 ms\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds deploy --to h2 --dry > \"/Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/main/resources/schema-h2.sql\"] in working directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] CdsMojo: \n[INFO] \n[INFO] --- cds:2.10.1:generate (cds.generate) @ demoapp ---\n[INFO] GenerateMojo: Adding code output directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/gen/java to compile source directories.\n[INFO] GenerateMojo: Adding directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/gen/resources to resources.\n[INFO] GenerateMojo: Scanning directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/main/resources for [**/csn.json], excluding [**/db/changelog/**/csn.json].\n[INFO] GenerateMojo: Using /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/main/resources/edmx/csn.json to generate Java classes into /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/gen.\n[INFO] GenerateMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[INFO] GenerateMojo: Class generation finished successfully\n[INFO] \n[INFO] --- resources:3.3.1:resources (default-resources) @ demoapp ---\n[INFO] Copying 58 resources from src/main/resources to target/classes\n[INFO] Copying 1 resource from src/gen/resources to target/classes\n[INFO] \n[INFO] --- flatten:1.6.0:flatten (flatten) @ demoapp ---\n[INFO] Generating flattened POM of project customer:demoapp:jar:1.0.0-SNAPSHOT...\n[INFO] \n[INFO] --- compiler:3.12.1:compile (default-compile) @ demoapp ---\n[INFO] Recompiling the module because of changed source code.\n[INFO] Compiling 104 source files with javac [debug release 17] to target/classes\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 32.111 s\n[INFO] Finished at: 2024-07-05T15:05:57+05:30\n[INFO] ------------------------------------------------------------------------\n\n" } ] }, diff --git a/pom.xml b/pom.xml index 16ed447d..72d4d34e 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ - 1.0.0 + 1.0.0-SNAPSHOT 17 ${java.version} ${java.version} @@ -35,12 +35,11 @@ ${revision} pom - CDS Feature for Attachments - Root + CDS Feature for SAP Document Management Service - Root https://cap.cloud.sap/docs/plugins/#attachments - cds-feature-attachments - integration-tests + sdm @@ -66,7 +65,13 @@ sdm ${revision} - + + com.sap.cloud.environment.servicebinding + java-bom + 0.10.5 + pom + import + @@ -133,71 +138,71 @@ - - com.github.spotbugs - spotbugs-maven-plugin - 4.8.5.0 - - Max - true - /src/main/resources/spotbugs-exclusion-filter.xml - ${project.build.directory} - true - ${skipDuringDeploy} - - - - spotbugs-error - process-test-classes - - check - - - - - - - org.apache.maven.plugins - maven-pmd-plugin - 3.22.0 - - ${java.version} - 5 - ${project.build.directory} - true - true - false - false - - - /rulesets/java/maven-pmd-plugin-default.xml - - - - **/${excluded.generation.package}** - - - ${skipDuringDeploy} - - - - - com.sap.cloud.sdk.quality - pmd-rules - 3.78.0 - - - - - pmd-error - process-test-classes - - check - cpd-check - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + org.apache.maven.plugins diff --git a/sdm/pom.xml b/sdm/pom.xml index b7ac3771..e63bf4c4 100644 --- a/sdm/pom.xml +++ b/sdm/pom.xml @@ -24,7 +24,7 @@ sdm jar - CDS Feature for Attachments + CDS Feature for SAP Document Management Service https://cap.cloud.sap/docs/plugins/#attachments @@ -37,7 +37,7 @@ 1.0.2 1.18.30 0.8.7 - + 1.13 @@ -68,12 +68,12 @@ cds-services-impl test - - com.github.spotbugs - spotbugs-annotations - 4.8.5 - test - + + + + + + ch.qos.logback logback-classic @@ -97,6 +97,17 @@ cds-feature-attachments ${attachments_version} + + + com.sap.cloud.environment.servicebinding + java-sap-vcap-services + 0.10.5 + + + commons-codec + commons-codec + ${commons-codec.version} + diff --git a/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java b/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java new file mode 100644 index 00000000..52dafa45 --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java @@ -0,0 +1,45 @@ +package com.sap.cds.handler; + +import com.sap.cds.services.handler.EventHandler; +import com.sap.cds.services.handler.annotations.On; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.Marker; + +import com.sap.cds.feature.attachments.service.AttachmentService; +import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentCreateEventContext; +import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentMarkAsDeletedEventContext; +import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentReadEventContext; +import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentRestoreEventContext; + + +public class SDMAttachmentsHandler implements EventHandler { + private static final Logger logger = LoggerFactory.getLogger(SDMAttachmentsHandler.class); + + @On(event = AttachmentService.EVENT_CREATE_ATTACHMENT) + public void createAttachment(AttachmentCreateEventContext context) { + logger.info( "Default Attachment Service handler called for creating attachment for entity name: {}", + context.getAttachmentEntity().getQualifiedName()); + logger.info( "Other details: {}", + context.getAttachmentIds()); + logger.info( "Other details entity: {}", + context.getAttachmentEntity()); + + } + + @On(event = AttachmentService.EVENT_MARK_ATTACHMENT_AS_DELETED) + public void markAttachmentAsDeleted(AttachmentMarkAsDeletedEventContext context) { + + } + + @On(event = AttachmentService.EVENT_RESTORE_ATTACHMENT) + public void restoreAttachment(AttachmentRestoreEventContext context) { + + } + + @On(event = AttachmentService.EVENT_READ_ATTACHMENT) + public void readAttachment(AttachmentReadEventContext context) { + } + +} diff --git a/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java b/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java index e208141e..038486d6 100644 --- a/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java +++ b/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java @@ -1,5 +1,77 @@ package com.sap.cds.handler; +import com.sap.cds.model.SDMCredentials; +import com.sap.cloud.environment.servicebinding.api.DefaultServiceBindingAccessor; +import com.sap.cloud.environment.servicebinding.api.ServiceBinding; +import com.sap.cds.integration.cloudsdk.rest.client.JsonRestClient; +import com.sap.cds.integration.cloudsdk.rest.client.JsonRestClientResponseException; + + +import java.io.*; +import java.net.HttpURLConnection; +import java.net.ProtocolException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.codec.binary.Base64; + +import static java.util.Objects.requireNonNull; public class TokenGenerator { + private static Map uaaCredentials; + private static final ObjectMapper mapper = new ObjectMapper(); + public static byte[] toBytes(String str) { + return requireNonNull(str).getBytes(StandardCharsets.UTF_8); + } + + public static String toString(byte[] bytes) { + return new String(requireNonNull(bytes), StandardCharsets.UTF_8); + } + private static SDMCredentials getSDMCredentianls(){ + List allServiceBindings = DefaultServiceBindingAccessor.getInstance().getServiceBindings(); + + // filter for a specific binding + ServiceBinding sdmBinding = allServiceBindings.stream() + .filter(binding -> "sdm".equalsIgnoreCase(binding.getServiceName().orElse(null))) + .findFirst() + .get(); + SDMCredentials sdmCredentials = new SDMCredentials(); + uaaCredentials = sdmBinding.getCredentials(); + sdmCredentials.setBaseTokenUrl(uaaCredentials.get("url").toString()); + sdmCredentials.setUrl(sdmBinding.getCredentials().get("uri").toString()); + sdmCredentials.setClientId(uaaCredentials.get("clientid").toString()); + sdmCredentials.setClientSecret(uaaCredentials.get("clientsecret").toString()); + return sdmCredentials; + } + public static String getAccessToken() throws IOException, ProtocolException { + SDMCredentials sdmCredentials = getSDMCredentianls(); + String userCredentials = sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); + String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); + String bodyParams = "grant_type=client_credentials"; + byte[] postData = toBytes(bodyParams); + URL url = new URL(sdmCredentials.getBaseTokenUrl()); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestProperty("Authorization", authHeaderValue); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + conn.setRequestProperty("charset", "utf-8"); + conn.setRequestProperty("Content-Length", "" + postData.length); + conn.setUseCaches(false); + conn.setDoInput(true); + conn.setDoOutput(true); + try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { + os.write(postData); + } + String resp; + try (DataInputStream is = new DataInputStream(conn.getInputStream()); + BufferedReader br = new BufferedReader(new InputStreamReader(is))) { + resp = br.lines().collect(Collectors.joining("\n")); + } + conn.disconnect(); + return mapper.readValue(resp, JsonNode.class).get("access_token").asText(); + } } diff --git a/sdm/src/main/java/com/sap/cds/service/SDMAttachmentService.java b/sdm/src/main/java/com/sap/cds/service/SDMAttachmentService.java deleted file mode 100644 index b72bc4b2..00000000 --- a/sdm/src/main/java/com/sap/cds/service/SDMAttachmentService.java +++ /dev/null @@ -1,62 +0,0 @@ -/************************************************************************** - * (C) 2019-2024 SAP SE or an SAP affiliate company. All rights reserved. * - **************************************************************************/ -package com.sap.cds.service; -import com.sap.cds.feature.attachments.service.AttachmentService; -import com.sap.cds.feature.attachments.service.model.service.AttachmentModificationResult; -import com.sap.cds.feature.attachments.service.model.service.CreateAttachmentInput; -import com.sap.cds.services.EventContext; -import com.sap.cds.services.auditlog.Attachment; -import com.sap.cds.services.handler.Handler; - -import java.io.InputStream; -import java.time.Instant; - - -public class SDMAttachmentService implements AttachmentService { - @Override - public InputStream readAttachment(String s) { - return null; - } - - @Override - public AttachmentModificationResult createAttachment(CreateAttachmentInput createAttachmentInput) { - //first create - return null; - } - - @Override - public void markAttachmentAsDeleted(String s) { - - } - - @Override - public void restoreAttachment(Instant instant) { - - } - - @Override - public void before(String[] events, String[] entities, int order, Handler handler) { - - } - - @Override - public void on(String[] events, String[] entities, int order, Handler handler) { - - } - - @Override - public void after(String[] events, String[] entities, int order, Handler handler) { - - } - - @Override - public void emit(EventContext context) { - - } - - @Override - public String getName() { - return null; - } -} diff --git a/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds index daa9c9fd..bc3ccf0e 100644 --- a/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds +++ b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds @@ -15,7 +15,9 @@ annotate MediaData with @UI.MediaResource: {Stream: content} { Core.IsMediaType ); fileName @(title: '{i18n>attachment_fileName}'); + status @(title: '{i18n>attachment_status}'); contentId @(UI.Hidden: true); + scannedAt @(UI.Hidden: true); } annotate Attachments with @UI: { @@ -37,5 +39,6 @@ annotate Attachments with @UI: { } annotate Attachments with @Common: {SideEffects #ContentChanged: { - SourceProperties: [content] + SourceProperties: [content], + TargetProperties: ['status'] }} {}; diff --git a/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds index cb7e592b..4ca411e3 100644 --- a/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds +++ b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds @@ -5,12 +5,21 @@ using { managed } from '@sap/cds/common'; +type StatusCode : String enum { + Unscanned; + Scanning; + Clean; + Infected; + Failed; +} aspect MediaData @(_is_media_data) { content : LargeBinary; // stored only for db-based services mimeType : String; fileName : String; contentId : String @readonly; // id of attachment in external storage, if database storage is used, same as id + status : StatusCode @readonly; + scannedAt : Timestamp @readonly; } aspect Attachments : cuid, managed, MediaData { diff --git a/sdm/src/main/resources/cds/com.sap.cds/sdm/index.cds b/sdm/src/main/resources/cds/com.sap.cds/sdm/index.cds index 5534c1a6..a8d6c789 100644 --- a/sdm/src/main/resources/cds/com.sap.cds/sdm/index.cds +++ b/sdm/src/main/resources/cds/com.sap.cds/sdm/index.cds @@ -1,2 +1,3 @@ using from`./attachments`; using from`./attachments-annotations`; +using from '@sap/cds/srv/outbox'; diff --git a/sdm/src/main/resources/spotbugs-exclusion-filter.xml b/sdm/src/main/resources/spotbugs-exclusion-filter.xml new file mode 100644 index 00000000..ee4e2774 --- /dev/null +++ b/sdm/src/main/resources/spotbugs-exclusion-filter.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + From 2aba57dacad67e10cdbbe3f7ce0b0ae24b730bdc Mon Sep 17 00:00:00 2001 From: Rashmi Date: Mon, 22 Jul 2024 17:46:54 +0530 Subject: [PATCH 004/210] Removed files --- .idea/.gitignore | 3 - .idea/compiler.xml | 16 -- .idea/encodings.xml | 9 - .idea/jarRepositories.xml | 20 -- .idea/misc.xml | 12 - .idea/uiDesigner.xml | 124 --------- .idea/vcs.xml | 6 - .idea/workspace.xml | 92 +++++++ sdm/.flattened-pom.xml | 259 ------------------ .../resources/META-INF/maven/archetype.xml | 9 - .../resources/archetype-resources/pom.xml | 15 - .../src/main/java/App.java | 13 - .../src/test/java/AppTest.java | 38 --- .../resources/spotbugs-exclusion-filter.xml | 24 -- 14 files changed, 92 insertions(+), 548 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/compiler.xml delete mode 100644 .idea/encodings.xml delete mode 100644 .idea/jarRepositories.xml delete mode 100644 .idea/misc.xml delete mode 100644 .idea/uiDesigner.xml delete mode 100644 .idea/vcs.xml create mode 100644 .idea/workspace.xml delete mode 100644 sdm/.flattened-pom.xml delete mode 100644 sdm/src/main/resources/META-INF/maven/archetype.xml delete mode 100644 sdm/src/main/resources/archetype-resources/pom.xml delete mode 100644 sdm/src/main/resources/archetype-resources/src/main/java/App.java delete mode 100644 sdm/src/main/resources/archetype-resources/src/test/java/AppTest.java delete mode 100644 sdm/src/main/resources/spotbugs-exclusion-filter.xml diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 26d33521..00000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -# Default ignored files -/shelf/ -/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml deleted file mode 100644 index 03c21790..00000000 --- a/.idea/compiler.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index 9ae6faf7..00000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml deleted file mode 100644 index 712ab9d9..00000000 --- a/.idea/jarRepositories.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml deleted file mode 100644 index a383ecbe..00000000 --- a/.idea/misc.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml deleted file mode 100644 index 2b63946d..00000000 --- a/.idea/uiDesigner.xml +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 35eb1ddf..00000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 00000000..6e1db5ac --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { + "keyToString": { + "RunOnceActivity.ShowReadmeOnStart": "true", + "last_opened_file_path": "/Users/I324829/Desktop/CAP/sdm/sdm/src/main/resources", + "project.structure.last.edited": "Libraries", + "project.structure.proportion": "0.15", + "project.structure.side.proportion": "0.2" + } +} + + + + + + + + + + + + + + + + + + + + 1721305476994 + + + + \ No newline at end of file diff --git a/sdm/.flattened-pom.xml b/sdm/.flattened-pom.xml deleted file mode 100644 index b67208f1..00000000 --- a/sdm/.flattened-pom.xml +++ /dev/null @@ -1,259 +0,0 @@ - - - 4.0.0 - - com.sap.cds - sdm-root - 1.0.0 - - sdm - 1.0.0 - CDS Feature for Attachments - https://cap.cloud.sap/docs/plugins/#attachments - - SAP SE - https://www.sap.com - - - - The Apache Software License, Version 2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - artifactory - Artifactory_DMZ - https://common.repositories.cloud.sap/artifactory/cap-java - - - artifactory - Artifactory_DMZ-snapshots - https://common.repositories.cloud.sap/artifactory/cap-java - - - - 1.0.2 - 1.18.30 - 17 - sdm.generated - 17 - sdm - 0.8.7 - src/test/gen - 7.6.0 - - - - org.projectlombok - lombok - ${lombok.version} - provided - - - com.sap.cds - cds-services-utils - - - commons-codec - commons-codec - - - - - com.sap.cds - cds-integration-cloud-sdk - - - com.sap.cds - cds-services-impl - test - - - com.github.spotbugs - spotbugs-annotations - 4.8.5 - test - - - ch.qos.logback - logback-classic - 1.5.6 - test - - - org.awaitility - awaitility - 4.2.1 - test - - - junit - junit - 4.13.2 - test - - - com.sap.cds - cds-feature-attachments - ${attachments_version} - - - - ${project.artifactId} - - - maven-clean-plugin - 3.3.2 - - - auto-clean - clean - - clean - - - - - - com.sap.cds - cds-maven-plugin - ${cds.services.version} - - - cds.clean - - clean - - - - cds.install-node - - install-node - - - ${skipDuringDeploy} - - - - cds.install-cdsdk - - install-cdsdk - - - ${skipDuringDeploy} - - - - cds.build - - cds - - - - - ${skipDuringDeploy} - - - - org.jacoco - jacoco-maven-plugin - 0.8.12 - - - jacoco-initialize - - prepare-agent - - - - jacoco-site-report-all-tests - verify - - report - - - - jacoco-site-report-only-unit-tests - test - - report - - - - jacoco-check-unit-tests-only - test - - check - - - - - BUNDLE - - - INSTRUCTION - COVEREDRATIO - 0.95 - - - BRANCH - COVEREDRATIO - 0.95 - - - COMPLEXITY - COVEREDRATIO - 0.95 - - - CLASS - MISSEDCOUNT - 0 - - - - - - - - - - ${excluded.generation.package}**/* - - - - - org.codehaus.mojo - build-helper-maven-plugin - 3.5.0 - - - generate-sources - - add-source - - - - ${project.basedir}/${generation-folder}/java - - - - - - - maven-source-plugin - 3.3.1 - - - - jar - - - - - - - diff --git a/sdm/src/main/resources/META-INF/maven/archetype.xml b/sdm/src/main/resources/META-INF/maven/archetype.xml deleted file mode 100644 index 2631ba8e..00000000 --- a/sdm/src/main/resources/META-INF/maven/archetype.xml +++ /dev/null @@ -1,9 +0,0 @@ - - sdm - - src/main/java/App.java - - - src/test/java/AppTest.java - - diff --git a/sdm/src/main/resources/archetype-resources/pom.xml b/sdm/src/main/resources/archetype-resources/pom.xml deleted file mode 100644 index 968ef90c..00000000 --- a/sdm/src/main/resources/archetype-resources/pom.xml +++ /dev/null @@ -1,15 +0,0 @@ - - 4.0.0 - $org.example - $sdm - $1.0-SNAPSHOT - - - junit - junit - 3.8.1 - test - - - diff --git a/sdm/src/main/resources/archetype-resources/src/main/java/App.java b/sdm/src/main/resources/archetype-resources/src/main/java/App.java deleted file mode 100644 index 1fa6a956..00000000 --- a/sdm/src/main/resources/archetype-resources/src/main/java/App.java +++ /dev/null @@ -1,13 +0,0 @@ -package $org.example; - -/** - * Hello world! - * - */ -public class App -{ - public static void main( String[] args ) - { - System.out.println( "Hello World!" ); - } -} diff --git a/sdm/src/main/resources/archetype-resources/src/test/java/AppTest.java b/sdm/src/main/resources/archetype-resources/src/test/java/AppTest.java deleted file mode 100644 index 65be417e..00000000 --- a/sdm/src/main/resources/archetype-resources/src/test/java/AppTest.java +++ /dev/null @@ -1,38 +0,0 @@ -package $org.example; - -import junit.framework.Test; -import junit.framework.TestCase; -import junit.framework.TestSuite; - -/** - * Unit test for simple App. - */ -public class AppTest - extends TestCase -{ - /** - * Create the test case - * - * @param testName name of the test case - */ - public AppTest( String testName ) - { - super( testName ); - } - - /** - * @return the suite of tests being tested - */ - public static Test suite() - { - return new TestSuite( AppTest.class ); - } - - /** - * Rigourous Test :-) - */ - public void testApp() - { - assertTrue( true ); - } -} diff --git a/sdm/src/main/resources/spotbugs-exclusion-filter.xml b/sdm/src/main/resources/spotbugs-exclusion-filter.xml deleted file mode 100644 index ee4e2774..00000000 --- a/sdm/src/main/resources/spotbugs-exclusion-filter.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - From 1d358bd52b73511360520d29010aaced5affd394 Mon Sep 17 00:00:00 2001 From: Rashmi Date: Mon, 22 Jul 2024 17:48:32 +0530 Subject: [PATCH 005/210] removal --- .flattened-pom.xml | 151 -------------------------------------------- .idea/workspace.xml | 15 +---- 2 files changed, 2 insertions(+), 164 deletions(-) delete mode 100644 .flattened-pom.xml diff --git a/.flattened-pom.xml b/.flattened-pom.xml deleted file mode 100644 index 9a31735f..00000000 --- a/.flattened-pom.xml +++ /dev/null @@ -1,151 +0,0 @@ - - - 4.0.0 - com.sap.cds - sdm-root - 1.0.0-SNAPSHOT - pom - CDS Feature for SAP Document Management Service - Root - https://cap.cloud.sap/docs/plugins/#attachments - - SAP SE - https://www.sap.com - - - - The Apache Software License, Version 2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - sdm - - - - artifactory - Artifactory_DMZ - https://common.repositories.cloud.sap/artifactory/cap-java - - - artifactory - Artifactory_DMZ-snapshots - https://common.repositories.cloud.sap/artifactory/cap-java - - - - ${java.version} - 17 - ${java.version} - 2.9.1 - UTF-8 - sdm/generated/ - 3.2.5 - src/gen - 1.0.0-SNAPSHOT - - - - - com.sap.cds - cds-services-bom - ${cds.services.version} - pom - import - - - org.mockito - mockito-bom - 5.12.0 - pom - import - - - com.sap.cds - sdm - 1.0.0-SNAPSHOT - - - com.sap.cloud.environment.servicebinding - java-bom - 0.10.5 - pom - import - - - - - - com.sap.cds - cds-services-api - - - org.junit.jupiter - junit-jupiter - 5.10.2 - test - - - org.assertj - assertj-core - 3.25.3 - test - - - org.mockito - mockito-core - test - - - - - - maven-surefire-plugin - 3.2.5 - - - org.codehaus.mojo - flatten-maven-plugin - 1.6.0 - - - flatten - process-resources - - flatten - - - - flatten.clean - clean - - clean - - - - - true - resolveCiFriendliesOnly - - - - maven-enforcer-plugin - 3.4.1 - - - no-duplicate-declared-dependencies - - enforce - - - - - - - - - - - - diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 6e1db5ac..00845030 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -5,19 +5,8 @@ - - - - - - - - - - - - - + + @@ -108,7 +118,22 @@ org.apache.maven.plugins maven-surefire-plugin - 3.2.5 + 3.0.0-M5 + + + **/SDMAttachmentsHandlerTest.* + + + + junit.platform.output.capture.stdout + false + + + junit.platform.output.capture.stderr + false + + + @@ -138,72 +163,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - org.apache.maven.plugins maven-enforcer-plugin @@ -239,4 +198,4 @@ - + \ No newline at end of file diff --git a/sdm/pom.xml b/sdm/pom.xml index e63bf4c4..7c18d674 100644 --- a/sdm/pom.xml +++ b/sdm/pom.xml @@ -224,17 +224,17 @@ INSTRUCTION COVEREDRATIO - 0.95 + 0.90 BRANCH COVEREDRATIO - 0.95 + 0.90 COMPLEXITY COVEREDRATIO - 0.95 + 0.9 CLASS diff --git a/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java b/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java index 52dafa45..95406e57 100644 --- a/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java +++ b/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java @@ -42,4 +42,8 @@ public void restoreAttachment(AttachmentRestoreEventContext context) { public void readAttachment(AttachmentReadEventContext context) { } + public String performAction() { + return "Action Performed"; + } + } diff --git a/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java b/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java new file mode 100644 index 00000000..278f5e1e --- /dev/null +++ b/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java @@ -0,0 +1,23 @@ +package com.sap.cds.handler; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.MockitoAnnotations; + +import static org.assertj.core.api.Assertions.assertThat; + +public class SDMAttachmentsHandlerTest { + + private SDMAttachmentsHandler handler; + + @BeforeEach + void setUp() { + MockitoAnnotations.openMocks(this); + handler = new SDMAttachmentsHandler(); + } + + @Test + void testPerformAction() { + String result = handler.performAction(); + assertThat(result).isEqualTo("Action Performed"); + } +} \ No newline at end of file From cae22b287eb0a8832b82e012635fb0ff8c277828 Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 1 Aug 2024 16:35:46 +0530 Subject: [PATCH 013/210] Changes for createDocument and user token flow --- sdm/.flattened-pom.xml | 273 ++++++++++++++++++ sdm/pom.xml | 3 +- .../cds/sdm/configuration/Registration.java | 57 ++-- .../sap/cds/sdm/constants/SDMConstants.java | 3 + .../com/sap/cds/sdm/handler/TokenHandler.java | 200 +++++++++++++ .../SDMCreateEventHandler.java | 108 +++++++ .../com/sap/cds/sdm/model/CmisDocument.java | 19 ++ .../sap/cds/sdm/service/RegisterService.java | 2 +- .../sdm/service/SDMAttachmentsService.java | 13 +- .../com/sap/cds/sdm/service/SDMService.java | 5 +- .../sap/cds/sdm/service/SDMServiceImpl.java | 9 +- .../handler/SDMAttachmentsServiceHandler.java | 24 +- .../com/sap/cds/sdm/util/CmisServiceUtil.java | 99 +------ .../sdm/attachments-annotations.cds | 19 +- .../cds/com.sap.cds/sdm/attachments.cds | 1 + 15 files changed, 675 insertions(+), 160 deletions(-) create mode 100644 sdm/.flattened-pom.xml create mode 100644 sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java create mode 100644 sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java create mode 100644 sdm/src/main/java/com/sap/cds/sdm/model/CmisDocument.java diff --git a/sdm/.flattened-pom.xml b/sdm/.flattened-pom.xml new file mode 100644 index 00000000..37d0468d --- /dev/null +++ b/sdm/.flattened-pom.xml @@ -0,0 +1,273 @@ + + + 4.0.0 + + com.sap.cds + sdm-root + 1.0.0-SNAPSHOT + + sdm + 1.0.0-SNAPSHOT + CDS Feature for SAP Document Management Service + https://cap.cloud.sap/docs/plugins/#attachments + + SAP SE + https://www.sap.com + + + + The Apache Software License, Version 2.0 + https://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + artifactory + Artifactory_DMZ + https://common.repositories.cloud.sap/artifactory/cap-java + + + artifactory + Artifactory_DMZ-snapshots + https://common.repositories.cloud.sap/artifactory/cap-java + + + + 1.0.0-SNAPSHOT + 1.18.30 + 17 + sdm.generated + 17 + 1.13 + sdm + 0.8.7 + src/test/gen + 7.6.0 + + + + org.projectlombok + lombok + ${lombok.version} + provided + + + com.sap.cds + cds-services-utils + + + commons-codec + commons-codec + + + + + com.sap.cds + cds-integration-cloud-sdk + + + com.sap.cds + cds-services-impl + test + + + ch.qos.logback + logback-classic + 1.5.6 + test + + + org.awaitility + awaitility + 4.2.1 + test + + + junit + junit + 4.13.2 + test + + + com.squareup.okhttp3 + okhttp + 4.9.0 + + + com.sap.cds + cds-feature-attachments + ${attachments_version} + + + com.sap.cds + cds-starter-cloudfoundry + + + com.sap.cloud.environment.servicebinding + java-sap-vcap-services + 0.10.5 + + + commons-codec + commons-codec + ${commons-codec.version} + + + + ${project.artifactId} + + + maven-clean-plugin + 3.3.2 + + + auto-clean + clean + + clean + + + + + + com.sap.cds + cds-maven-plugin + ${cds.services.version} + + + cds.clean + + clean + + + + cds.install-node + + install-node + + + ${skipDuringDeploy} + + + + cds.install-cdsdk + + install-cdsdk + + + ${skipDuringDeploy} + + + + cds.build + + cds + + + + + ${skipDuringDeploy} + + + + org.jacoco + jacoco-maven-plugin + 0.8.12 + + + jacoco-initialize + + prepare-agent + + + + jacoco-site-report-all-tests + verify + + report + + + + jacoco-site-report-only-unit-tests + test + + report + + + + jacoco-check-unit-tests-only + test + + check + + + + + BUNDLE + + + INSTRUCTION + COVEREDRATIO + 0.95 + + + BRANCH + COVEREDRATIO + 0.95 + + + COMPLEXITY + COVEREDRATIO + 0.95 + + + CLASS + MISSEDCOUNT + 0 + + + + + + + + + + ${excluded.generation.package}**/* + + + + + org.codehaus.mojo + build-helper-maven-plugin + 3.5.0 + + + generate-sources + + add-source + + + + ${project.basedir}/${generation-folder}/java + + + + + + + maven-source-plugin + 3.3.1 + + + + jar + + + + + + + diff --git a/sdm/pom.xml b/sdm/pom.xml index b878be8c..44670fb8 100644 --- a/sdm/pom.xml +++ b/sdm/pom.xml @@ -34,7 +34,7 @@ src/test/gen 17 17 - 1.0.2 + 1.0.0-SNAPSHOT 1.18.30 0.8.7 1.13 @@ -102,6 +102,7 @@ cds-feature-attachments ${attachments_version} + com.sap.cds cds-starter-cloudfoundry com.sap.cloud.environment.servicebinding diff --git a/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java b/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java index 4faf2e87..b421c935 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java +++ b/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java @@ -5,12 +5,15 @@ import java.time.Duration; import java.util.List; +import java.util.Objects; +import com.sap.cds.sdm.handler.applicationservice.SDMCreateEventHandler; import com.sap.cds.sdm.service.SDMAttachmentsService; +import com.sap.cds.sdm.service.handler.SDMAttachmentsServiceHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.slf4j.Marker; -import com.sap.cds.feature.attachments.handler.applicationservice.CreateAttachmentsHandler; import com.sap.cds.feature.attachments.handler.applicationservice.DeleteAttachmentsHandler; import com.sap.cds.feature.attachments.handler.applicationservice.ReadAttachmentsHandler; import com.sap.cds.feature.attachments.handler.applicationservice.UpdateAttachmentsHandler; @@ -29,13 +32,19 @@ import com.sap.cds.feature.attachments.handler.common.AttachmentsReader; import com.sap.cds.feature.attachments.handler.common.DefaultAssociationCascader; import com.sap.cds.feature.attachments.handler.common.DefaultAttachmentsReader; -import com.sap.cds.feature.attachments.handler.draftservice.DraftActiveAttachmentsHandler; import com.sap.cds.feature.attachments.handler.draftservice.DraftCancelAttachmentsHandler; import com.sap.cds.feature.attachments.handler.draftservice.DraftPatchAttachmentsHandler; import com.sap.cds.feature.attachments.handler.draftservice.modifier.ActiveEntityModifier; import com.sap.cds.feature.attachments.service.AttachmentService; +import com.sap.cds.feature.attachments.service.handler.transaction.EndTransactionMalwareScanProvider; +import com.sap.cds.feature.attachments.service.handler.transaction.EndTransactionMalwareScanRunner; import com.sap.cds.feature.attachments.service.malware.AsyncMalwareScanExecutor; +import com.sap.cds.feature.attachments.service.malware.DefaultAttachmentMalwareScanner; +import com.sap.cds.feature.attachments.service.malware.client.DefaultMalwareScanClient; +import com.sap.cds.feature.attachments.service.malware.client.httpclient.MalwareScanClientProviderFactory; +import com.sap.cds.feature.attachments.service.malware.client.mapper.DefaultMalwareClientStatusMapper; import com.sap.cds.feature.attachments.service.malware.constants.MalwareScanConstants; +import com.sap.cds.feature.attachments.utilities.LoggingMarker; import com.sap.cds.services.environment.CdsProperties.ConnectionPool; import com.sap.cds.services.handler.EventHandler; import com.sap.cds.services.outbox.OutboxService; @@ -44,15 +53,15 @@ import com.sap.cds.services.runtime.CdsRuntimeConfigurer; import com.sap.cds.services.utils.environment.ServiceBindingUtils; import com.sap.cloud.environment.servicebinding.api.ServiceBinding; -import com.sap.cds.sdm.service.handler.SDMAttachmentsServiceHandler; /** - * The class {@link Registration} is a configuration class that registers the - * services and event handlers for the attachments feature. - */ + * The class {@link Registration} is a configuration class that registers the + * services and event handlers for the attachments feature. + */ public class Registration implements CdsRuntimeConfiguration { private static final Logger logger = LoggerFactory.getLogger(Registration.class); + private static final Marker marker = LoggingMarker.ATTACHMENT_SERVICE_REGISTRATION.getMarker(); @Override public void services(CdsRuntimeConfigurer configurer) { @@ -61,21 +70,25 @@ public void services(CdsRuntimeConfigurer configurer) { @Override public void eventHandlers(CdsRuntimeConfigurer configurer) { - logger.info( "Registering event handler for attachment service"); + logger.info(marker, "Registering event handler for attachment service"); var persistenceService = configurer.getCdsRuntime().getServiceCatalog().getService(PersistenceService.class, PersistenceService.DEFAULT_NAME); var attachmentService = configurer.getCdsRuntime().getServiceCatalog().getService(AttachmentService.class, AttachmentService.DEFAULT_NAME); var outbox = configurer.getCdsRuntime().getServiceCatalog().getService(OutboxService.class, - OutboxService.PERSISTENT_UNORDERED_NAME); + OutboxService.PERSISTENT_UNORDERED_NAME);//need to check if required var outboxedAttachmentService = outbox.outboxed(attachmentService); List bindings = configurer.getCdsRuntime().getEnvironment().getServiceBindings().filter( b -> ServiceBindingUtils.matches(b, MalwareScanConstants.MALWARE_SCAN_SERVICE_LABEL)).toList(); var binding = !bindings.isEmpty() ? bindings.get(0) : null; var connectionPoll = new ConnectionPool(Duration.ofSeconds(60), 2, 20); - + var clientProviderFactory = new MalwareScanClientProviderFactory(binding, configurer.getCdsRuntime(), connectionPoll); + var malwareStatusMapper = new DefaultMalwareClientStatusMapper(); + var malwareScanner = new DefaultAttachmentMalwareScanner(persistenceService, attachmentService, + new DefaultMalwareScanClient(clientProviderFactory), malwareStatusMapper, Objects.nonNull(binding)); + var malwareScanEndTransactionListener = createEndTransactionMalwareScanListener(malwareScanner); configurer.eventHandler(new SDMAttachmentsServiceHandler()); var deleteContentEvent = new MarkAsDeletedAttachmentEvent(outboxedAttachmentService); @@ -86,23 +99,29 @@ public void eventHandlers(CdsRuntimeConfigurer configurer) { configurer.eventHandler(buildCreateHandler(eventFactory, storage)); configurer.eventHandler(buildUpdateHandler(eventFactory, attachmentsReader, outboxedAttachmentService, storage)); configurer.eventHandler(buildDeleteHandler(attachmentsReader, deleteContentEvent)); - + configurer.eventHandler( + buildReadHandler(attachmentService, new EndTransactionMalwareScanRunner(null, null, malwareScanner))); configurer.eventHandler(new DraftPatchAttachmentsHandler(persistenceService, eventFactory)); configurer.eventHandler( new DraftCancelAttachmentsHandler(attachmentsReader, deleteContentEvent, ActiveEntityModifier::new)); - configurer.eventHandler(new DraftActiveAttachmentsHandler(storage)); + //configurer.eventHandler(new DraftActiveAttachmentsHandler(storage)); } - + private EndTransactionMalwareScanProvider createEndTransactionMalwareScanListener( + DefaultAttachmentMalwareScanner malwareScanner) { + return (attachmentEntity, contentId) -> new EndTransactionMalwareScanRunner(attachmentEntity, contentId, + malwareScanner); + } private AttachmentService buildAttachmentService() { - System.out.println("Registerrr"); - logger.info("Registering attachment service"); + logger.info( "Registering SDM attachment service****"); + logger.info(marker, "Registering SDM attachment service"); + return new SDMAttachmentsService(); } protected DefaultModifyAttachmentEventFactory buildAttachmentEventFactory(AttachmentService attachmentService, - ModifyAttachmentEvent deleteContentEvent, AttachmentService outboxedAttachmentService) { + ModifyAttachmentEvent deleteContentEvent, AttachmentService outboxedAttachmentService) { var creationChangeSetListener = createCreationFailedListener(outboxedAttachmentService); var createAttachmentEvent = new CreateAttachmentEvent(attachmentService, creationChangeSetListener); var updateAttachmentEvent = new UpdateAttachmentEvent(createAttachmentEvent, deleteContentEvent); @@ -117,23 +136,23 @@ private ListenerProvider createCreationFailedListener(AttachmentService outboxed } protected EventHandler buildCreateHandler(ModifyAttachmentEventFactory factory, ThreadLocalDataStorage storage) { - return new CreateAttachmentsHandler(factory, storage); + return new SDMCreateEventHandler(factory, storage); } protected EventHandler buildDeleteHandler(AttachmentsReader attachmentsReader, - ModifyAttachmentEvent deleteContentEvent) { + ModifyAttachmentEvent deleteContentEvent) { return new DeleteAttachmentsHandler(attachmentsReader, deleteContentEvent); } protected EventHandler buildReadHandler(AttachmentService attachmentService, - AsyncMalwareScanExecutor asyncMalwareScanExecutor) { + AsyncMalwareScanExecutor asyncMalwareScanExecutor) { var statusValidator = new DefaultAttachmentStatusValidator(); return new ReadAttachmentsHandler(attachmentService, BeforeReadItemsModifier::new, statusValidator, asyncMalwareScanExecutor); } protected EventHandler buildUpdateHandler(ModifyAttachmentEventFactory factory, AttachmentsReader attachmentsReader, - AttachmentService outboxedAttachmentService, ThreadLocalDataStorage storage) { + AttachmentService outboxedAttachmentService, ThreadLocalDataStorage storage) { return new UpdateAttachmentsHandler(factory, attachmentsReader, outboxedAttachmentService, storage); } diff --git a/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java b/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java index e0ec4274..ab04aa6b 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java +++ b/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java @@ -2,4 +2,7 @@ public class SDMConstants { public static final String REPOSITORY_ID = System.getenv("REPOSITORY_ID"); + private static final String BEARER_TOKEN = "Bearer "; + public static final String GRANT_TYPE = "grant_type"; + public static final String TENANT_ID = "X-zid"; } diff --git a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java new file mode 100644 index 00000000..e969940c --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java @@ -0,0 +1,200 @@ +package com.sap.cds.sdm.handler; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; +import com.sap.cds.sdm.constants.SDMConstants; +import com.sap.cds.sdm.model.SDMCredentials; +import com.sap.cds.sdm.service.handler.SDMAttachmentsServiceHandler; +import com.sap.cloud.environment.servicebinding.api.DefaultServiceBindingAccessor; +import com.sap.cloud.environment.servicebinding.api.ServiceBinding; +import com.sap.cloud.security.xsuaa.client.OAuth2ServiceException; +import com.sap.cloud.security.xsuaa.http.HttpHeaders; +import com.sap.cloud.security.xsuaa.http.MediaType; +import com.sap.cloud.security.xsuaa.util.HttpClientUtil; +import org.apache.commons.codec.binary.Base64; +import org.apache.http.HttpResponse; +import org.apache.http.HttpStatus; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BasicNameValuePair; +import org.json.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.*; +import java.net.HttpURLConnection; +import java.net.ProtocolException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +import static com.sap.cloud.security.xsuaa.client.OAuth2TokenServiceConstants.*; +import static com.sap.cloud.security.xsuaa.client.OAuth2TokenServiceConstants.ASSERTION; +import static java.util.Objects.requireNonNull; + +public class TokenHandler { + private static final Logger logger = LoggerFactory.getLogger(TokenHandler.class); + private static Map uaaCredentials; + private static Map uaa; + private static final ObjectMapper mapper = new ObjectMapper(); + + public static byte[] toBytes(String str) { + return requireNonNull(str).getBytes(StandardCharsets.UTF_8); + } + + public static String toString(byte[] bytes) { + return new String(requireNonNull(bytes), StandardCharsets.UTF_8); + } + + public static SDMCredentials getSDMCredentials() { + List allServiceBindings = DefaultServiceBindingAccessor.getInstance().getServiceBindings(); + // filter for a specific binding + ServiceBinding sdmBinding = allServiceBindings.stream() + .filter(binding -> "sdm".equalsIgnoreCase(binding.getServiceName().orElse(null))) + .findFirst() + .get(); + SDMCredentials sdmCredentials = new SDMCredentials(); + uaaCredentials = sdmBinding.getCredentials(); + uaa = (Map) uaaCredentials.get("uaa"); + + sdmCredentials.setBaseTokenUrl(uaa.get("url").toString()); + sdmCredentials.setUrl(sdmBinding.getCredentials().get("uri").toString()); + sdmCredentials.setClientId(uaa.get("clientid").toString()); + sdmCredentials.setClientSecret(uaa.get("clientsecret").toString()); + return sdmCredentials; + + } + + public static String getAccessToken(SDMCredentials sdmCredentials) throws IOException, ProtocolException { + String userCredentials = sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); + String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); + String bodyParams = "grant_type=client_credentials"; + byte[] postData = toBytes(bodyParams); + String authurl = sdmCredentials.getBaseTokenUrl() + "/oauth/token"; + URL url = new URL(authurl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestProperty("Authorization", authHeaderValue); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + conn.setRequestProperty("charset", "utf-8"); + conn.setRequestProperty("Content-Length", "" + postData.length); + conn.setUseCaches(false); + conn.setDoInput(true); + conn.setDoOutput(true); + try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { + os.write(postData); + } + String resp; + try (DataInputStream is = new DataInputStream(conn.getInputStream()); + BufferedReader br = new BufferedReader(new InputStreamReader(is))) { + resp = br.lines().collect(Collectors.joining("\n")); + } + conn.disconnect(); + return mapper.readValue(resp, JsonNode.class).get("access_token").asText(); + } + + public static String getUserToken(SDMCredentials sdmCredentials) throws IOException, ProtocolException { + String userCredentials = sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); + String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); + String bodyParams = "grant_type=client_credentials"; + byte[] postData = toBytes(bodyParams); + String authurl = sdmCredentials.getBaseTokenUrl() + "/oauth/token"; + URL url = new URL(authurl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestProperty("Authorization", authHeaderValue); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + conn.setRequestProperty("charset", "utf-8"); + conn.setRequestProperty("Content-Length", "" + postData.length); + conn.setUseCaches(false); + conn.setDoInput(true); + conn.setDoOutput(true); + try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { + os.write(postData); + } + String resp; + try (DataInputStream is = new DataInputStream(conn.getInputStream()); + BufferedReader br = new BufferedReader(new InputStreamReader(is))) { + resp = br.lines().collect(Collectors.joining("\n")); + } + conn.disconnect(); + return mapper.readValue(resp, JsonNode.class).get("access_token").asText(); + } + public static String generateDITokenFromTokenExchange(String token,SDMCredentials sdmCredentials) + throws OAuth2ServiceException { + CloseableHttpClient httpClient = null; + String cachedToken = null; + try { + httpClient = HttpClients.createDefault(); + if (sdmCredentials.getClientId() == null) { + throw new IOException("No SDM binding found"); + } + Map parameters = fillTokenExchangeBody(token, sdmCredentials); + HttpPost httpPost = new HttpPost(sdmCredentials.getBaseTokenUrl() + "/oauth/token"); + httpPost.setHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON.value()); + httpPost.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED.value()); + httpPost.setHeader(SDMConstants.TENANT_ID, getTenantId(token)); + + List basicNameValuePairs = + parameters.entrySet().stream() + .map(entry -> new BasicNameValuePair(entry.getKey(), entry.getValue())) + .collect(Collectors.toList()); + httpPost.setEntity(new UrlEncodedFormEntity(basicNameValuePairs)); + HttpResponse response = httpClient.execute(httpPost); + String responseBody = extractResponseBodyAsString(response); + if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { + logger.error("Error fetching token with JWT bearer : " + responseBody); + } + Map accessTokenMap = new JSONObject(responseBody).toMap(); + return String.valueOf(accessTokenMap.get("access_token")); + } catch (UnsupportedEncodingException e) { + throw new OAuth2ServiceException("Unexpected error parsing URI: " + e.getMessage()); + } catch (ClientProtocolException e) { + throw new OAuth2ServiceException( + "Unexpected error while fetching client protocol: " + e.getMessage()); + } catch (IOException e) { + logger.error("Error in POST request while fetching token with JWT bearer", e.getMessage()); + } finally { + safeClose(httpClient); + } + return null; + } + + public static String getTenantId(String token) { + String[] chunks = token.split("\\."); + java.util.Base64.Decoder decoder = java.util.Base64.getUrlDecoder(); + String payload = new String(decoder.decode(chunks[1])); + JsonElement jelement = new JsonParser().parse(payload); + return jelement.getAsJsonObject().get("zid").getAsString(); + } + private static Map fillTokenExchangeBody(String token, SDMCredentials sdmEnv) { + Map parameters = new HashMap<>(); + parameters.put(GRANT_TYPE, GRANT_TYPE_JWT_BEARER); + parameters.put(CLIENT_ID, sdmEnv.getClientId()); + parameters.put(CLIENT_SECRET, sdmEnv.getClientSecret()); + parameters.put(ASSERTION, token); + return parameters; + } + private static String extractResponseBodyAsString(HttpResponse response) throws IOException { + return (String)(new BufferedReader(new InputStreamReader(response.getEntity().getContent()))).lines().collect(Collectors.joining(System.lineSeparator())); + } + + private static void safeClose(CloseableHttpClient httpClient) { + if (httpClient != null) { + try { + httpClient.close(); + } catch (IOException ex) { + logger.error("Failed to close httpclient " + ex.getMessage()); + } + } + } +} diff --git a/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java b/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java new file mode 100644 index 00000000..73c800b7 --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java @@ -0,0 +1,108 @@ +package com.sap.cds.sdm.handler.applicationservice; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.sap.cds.CdsData; +import com.sap.cds.CdsDataProcessor; +import com.sap.cds.feature.attachments.handler.applicationservice.helper.ModifyApplicationHandlerHelper; +import com.sap.cds.feature.attachments.handler.applicationservice.helper.ReadonlyDataContextEnhancer; +import com.sap.cds.feature.attachments.handler.applicationservice.helper.ThreadDataStorageReader; +import com.sap.cds.feature.attachments.handler.applicationservice.processor.modifyevents.ModifyAttachmentEventFactory; +import com.sap.cds.feature.attachments.handler.common.ApplicationHandlerHelper; +import com.sap.cds.feature.attachments.utilities.LoggingMarker; +import com.sap.cds.reflect.CdsBaseType; +import com.sap.cds.reflect.CdsEntity; +import com.sap.cds.sdm.model.CmisDocument; +import com.sap.cds.sdm.service.SDMService; +import com.sap.cds.sdm.service.SDMServiceImpl; +import com.sap.cds.services.authentication.AuthenticationInfo; +import com.sap.cds.services.authentication.JwtTokenAuthenticationInfo; +import com.sap.cds.services.cds.ApplicationService; +import com.sap.cds.services.cds.CdsCreateEventContext; +import com.sap.cds.services.cds.CqnService; +import com.sap.cds.services.handler.EventHandler; +import com.sap.cds.services.handler.annotations.Before; +import com.sap.cds.services.handler.annotations.HandlerOrder; +import com.sap.cds.services.handler.annotations.ServiceName; +import com.sap.cds.services.utils.OrderConstants; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +@ServiceName(value = "*", type = ApplicationService.class) +public class SDMCreateEventHandler implements EventHandler { + private static final Logger logger = LoggerFactory.getLogger(SDMCreateEventHandler.class); + + private final ModifyAttachmentEventFactory eventFactory; + private final ThreadDataStorageReader storageReader; + private final CdsDataProcessor processor = CdsDataProcessor.create(); + + public SDMCreateEventHandler(ModifyAttachmentEventFactory eventFactory, ThreadDataStorageReader storageReader) { + this.eventFactory = eventFactory; + this.storageReader = storageReader; + } + + @Before(event = CqnService.EVENT_CREATE) + @HandlerOrder(OrderConstants.Before.CHECK_CAPABILITIES) + public void processBeforeForDraft(CdsCreateEventContext context, List data) { + ReadonlyDataContextEnhancer.enhanceReadonlyDataInContext(context, data, storageReader.get()); + } + + @Before(event = CqnService.EVENT_CREATE) + @HandlerOrder(HandlerOrder.LATE) + public void processBefore(CdsCreateEventContext context, List data) throws IOException { + doCreate(context, data); + } + + private void doCreate(CdsCreateEventContext context, List data) throws IOException { + AuthenticationInfo authInfo = context.getAuthenticationInfo(); + JwtTokenAuthenticationInfo jwtTokenInfo = authInfo.as(JwtTokenAuthenticationInfo.class); + String jwtToken = jwtTokenInfo.getToken(); + logger.info("JWT TOKEN " + jwtToken); + logger.info("User info " + context.getUserInfo()); + + createDocument(data, jwtToken); + if (ApplicationHandlerHelper.noContentFieldInData(context.getTarget(), data)) { + return; + } + + + setKeysInData(context.getTarget(), data); + ModifyApplicationHandlerHelper.handleAttachmentForEntities(context.getTarget(), data, new ArrayList<>(), eventFactory, + context); + } + + private void setKeysInData(CdsEntity entity, List data) { + processor.addGenerator((path, element, type) -> element.isKey() && element.getType().isSimpleType(CdsBaseType.UUID), + (path, element, isNull) -> UUID.randomUUID().toString()).process(data, entity); + } + + private void createDocument(List data, String jwtToken) throws IOException { + for (Map entity : data) { + // Handle attachments if present + List> attachments = (List>) entity.get("attachments"); + if (attachments != null) { + for (Map attachment : attachments) { + CmisDocument cmisDocument = new CmisDocument(); + cmisDocument.setFileName(attachment.get("fileName").toString()); + InputStream contentStream = (InputStream) attachment.get("content"); + cmisDocument.setContent(contentStream); + cmisDocument.setParentId(attachment.get("up__ID").toString()); + + SDMService sdmService = new SDMServiceImpl(); + sdmService.createDocument(cmisDocument, jwtToken); + + } + } + } + } + + +} diff --git a/sdm/src/main/java/com/sap/cds/sdm/model/CmisDocument.java b/sdm/src/main/java/com/sap/cds/sdm/model/CmisDocument.java new file mode 100644 index 00000000..bd8c75a7 --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/sdm/model/CmisDocument.java @@ -0,0 +1,19 @@ +package com.sap.cds.sdm.model; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.InputStream; +@JsonIgnoreProperties(ignoreUnknown = true) +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CmisDocument { + private String fileName; + private InputStream content; + private String parentId; +} diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/RegisterService.java b/sdm/src/main/java/com/sap/cds/sdm/service/RegisterService.java index 3d6e98cf..df6e95ec 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/RegisterService.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/RegisterService.java @@ -3,5 +3,5 @@ import com.sap.cds.services.Service; public interface RegisterService extends Service { - String SDM_NAME = "AttachmentService$SDM"; + String SDM_NAME = "SDMAttachmentService$Default"; } diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/SDMAttachmentsService.java b/sdm/src/main/java/com/sap/cds/sdm/service/SDMAttachmentsService.java index 33d93c21..0fca62fa 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/SDMAttachmentsService.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/SDMAttachmentsService.java @@ -3,15 +3,9 @@ import com.sap.cds.feature.attachments.generated.cds4j.sap.attachments.MediaData; import com.sap.cds.feature.attachments.service.model.service.AttachmentModificationResult; import com.sap.cds.feature.attachments.service.model.service.CreateAttachmentInput; -import com.sap.cds.services.EventContext; import com.sap.cds.services.ServiceDelegator; -import com.sap.cds.services.handler.EventHandler; -import com.sap.cds.services.handler.Handler; -import com.sap.cds.services.handler.annotations.Before; -import com.sap.cds.services.handler.annotations.On; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.slf4j.Marker; import com.sap.cds.feature.attachments.service.AttachmentService; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentCreateEventContext; @@ -23,6 +17,7 @@ import java.time.Instant; + public class SDMAttachmentsService extends ServiceDelegator implements AttachmentService,RegisterService { private static final Logger logger = LoggerFactory.getLogger(SDMAttachmentsService.class); @@ -45,13 +40,7 @@ public InputStream readAttachment(String contentId) { @Override public AttachmentModificationResult createAttachment(CreateAttachmentInput input) { - logger.info("In attachment Service "+input.attachmentEntity().getQualifiedName()); - logger.info("Attachment Length "+input.attachmentIds()); logger.info("Creating attachment for entity name: {}", input.attachmentEntity().getQualifiedName()); - System.out.println("Attachment Details "+input.attachmentEntity().getQualifiedName()); - System.out.println("Attachment Length "+input.attachmentIds()); - System.out.println("Attachment Entity "+input.attachmentEntity()); - System.out.println("Attachment Content "+input.content()); var createContext = AttachmentCreateEventContext.create(); createContext.setAttachmentIds(input.attachmentIds()); createContext.setAttachmentEntity(input.attachmentEntity()); diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java b/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java index 69c852a5..02c83c3f 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java @@ -1,11 +1,14 @@ package com.sap.cds.sdm.service; +import com.sap.cds.CdsData; import com.sap.cds.feature.attachments.generated.cds4j.sap.attachments.MediaData; +import com.sap.cds.sdm.model.CmisDocument; import java.io.IOException; +import java.util.List; public interface SDMService { - public String createDocument(MediaData mediaData) throws IOException; + public String createDocument(CmisDocument cmisDocument, String jwtToken) throws IOException; public void readDocument(); public void deleteDocument(); } diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java b/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java index d03db3e8..81ff35dc 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java @@ -1,18 +1,21 @@ package com.sap.cds.sdm.service; +import com.sap.cds.CdsData; import com.sap.cds.feature.attachments.generated.cds4j.sap.attachments.MediaData; +import com.sap.cds.sdm.model.CmisDocument; import com.sap.cds.sdm.util.CmisServiceUtil; import java.io.IOException; +import java.util.List; public class SDMServiceImpl implements SDMService{ @Override - public String createDocument(MediaData mediaData) throws IOException { + public String createDocument(CmisDocument cmisDocument, String jwtToken) throws IOException { //get the token - CmisServiceUtil.createDocument(mediaData); + return CmisServiceUtil.createDocument(cmisDocument,jwtToken); //call the create document - return null; + } @Override diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java b/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java index eb3a35ca..a7c1bf32 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java @@ -1,12 +1,7 @@ package com.sap.cds.sdm.service.handler; import com.sap.cds.feature.attachments.generated.cds4j.sap.attachments.Attachments; -import com.sap.cds.sdm.service.SDMService; -import com.sap.cds.sdm.service.SDMServiceImpl; -import com.sap.cds.services.authentication.AuthenticationInfo; -import com.sap.cds.services.authentication.JwtTokenAuthenticationInfo; import com.sap.cds.services.handler.EventHandler; -import com.sap.cds.services.handler.annotations.Before; import com.sap.cds.services.handler.annotations.On; import com.sap.cds.services.handler.annotations.ServiceName; import org.slf4j.Logger; @@ -24,25 +19,8 @@ public class SDMAttachmentsServiceHandler implements EventHandler { private static final Logger logger = LoggerFactory.getLogger(SDMAttachmentsServiceHandler.class); - @Before(event = AttachmentService.EVENT_CREATE_ATTACHMENT) + @On(event = AttachmentService.EVENT_CREATE_ATTACHMENT) public void createAttachment(AttachmentCreateEventContext context) throws IOException { - System.out.println("In create attachment "); - System.out.println("SDM Attachment Service handler called for creating attachment for entity name: "+ - context.getAttachmentIds()); - logger.info( "SDM Attachment Service handler called for creating attachment for entity name: {}", - context.getAttachmentEntity().getQualifiedName()); - logger.info( "Other details: {}", - context.getAttachmentIds()); - logger.info( "DATA: {}", - context.getData()); - logger.info("Authentication info "+context.getAuthenticationInfo()); - AuthenticationInfo authInfo = context.getAuthenticationInfo(); - JwtTokenAuthenticationInfo jwtTokenInfo = authInfo.as(JwtTokenAuthenticationInfo.class); - String jwtToken = jwtTokenInfo.getToken(); - logger.info("JWT TOKEN "+jwtToken); - logger.info("User info "+context.getUserInfo()); - SDMService sdmService = new SDMServiceImpl(); - sdmService.createDocument(context.getData()); var contentId = (String) context.getAttachmentIds().get(Attachments.ID); context.setIsInternalStored(true); diff --git a/sdm/src/main/java/com/sap/cds/sdm/util/CmisServiceUtil.java b/sdm/src/main/java/com/sap/cds/sdm/util/CmisServiceUtil.java index 31226143..889c1264 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/util/CmisServiceUtil.java +++ b/sdm/src/main/java/com/sap/cds/sdm/util/CmisServiceUtil.java @@ -1,113 +1,41 @@ package com.sap.cds.sdm.util; +import com.sap.cds.CdsData; import com.sap.cds.feature.attachments.generated.cds4j.sap.attachments.MediaData; import com.sap.cds.sdm.constants.SDMConstants; +import com.sap.cds.sdm.handler.TokenHandler; +import com.sap.cds.sdm.model.CmisDocument; import com.sap.cds.sdm.model.SDMCredentials; import com.sap.cloud.environment.servicebinding.api.DefaultServiceBindingAccessor; import com.sap.cloud.environment.servicebinding.api.ServiceBinding; import java.io.*; -import java.net.HttpURLConnection; -import java.net.ProtocolException; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.commons.codec.binary.Base64; -import static java.util.Objects.requireNonNull; -import static org.json.HTTP.CRLF; import okhttp3.*; import org.apache.commons.io.IOUtils; import java.io.File; -public class CmisServiceUtil { - private static Map uaaCredentials; - private static Map uaa; - private static final ObjectMapper mapper = new ObjectMapper(); - - public static byte[] toBytes(String str) { - return requireNonNull(str).getBytes(StandardCharsets.UTF_8); - } - - public static String toString(byte[] bytes) { - return new String(requireNonNull(bytes), StandardCharsets.UTF_8); - } - - private static SDMCredentials getSDMCredentials() { - List allServiceBindings = DefaultServiceBindingAccessor.getInstance().getServiceBindings(); - System.out.println("allServiceBindings" + allServiceBindings); - // filter for a specific binding - ServiceBinding sdmBinding = allServiceBindings.stream() - .filter(binding -> "sdm".equalsIgnoreCase(binding.getServiceName().orElse(null))) - .findFirst() - .get(); - SDMCredentials sdmCredentials = new SDMCredentials(); - System.out.println("SDM Cred " + sdmCredentials); - uaaCredentials = sdmBinding.getCredentials(); - System.out.println("UAA Cred " + uaaCredentials); - uaa = (Map) uaaCredentials.get("uaa"); - - sdmCredentials.setBaseTokenUrl(uaa.get("url").toString()); - sdmCredentials.setUrl(sdmBinding.getCredentials().get("uri").toString()); - sdmCredentials.setClientId(uaa.get("clientid").toString()); - sdmCredentials.setClientSecret(uaa.get("clientsecret").toString()); - return sdmCredentials; +import java.util.List; - } +public class CmisServiceUtil { - private static String getAccessToken(SDMCredentials sdmCredentials) throws IOException, ProtocolException { - System.out.println("Credentials " + sdmCredentials.getBaseTokenUrl() + ":" + sdmCredentials.getClientId()); - String userCredentials = sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); - String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); - String bodyParams = "grant_type=client_credentials"; - byte[] postData = toBytes(bodyParams); - String authurl = sdmCredentials.getBaseTokenUrl() + "/oauth/token"; - URL url = new URL(authurl); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestProperty("Authorization", authHeaderValue); - conn.setRequestMethod("POST"); - conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - conn.setRequestProperty("charset", "utf-8"); - conn.setRequestProperty("Content-Length", "" + postData.length); - conn.setUseCaches(false); - conn.setDoInput(true); - conn.setDoOutput(true); - try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { - os.write(postData); - } - String resp; - try (DataInputStream is = new DataInputStream(conn.getInputStream()); - BufferedReader br = new BufferedReader(new InputStreamReader(is))) { - resp = br.lines().collect(Collectors.joining("\n")); - } - System.out.println("Response " + resp); - conn.disconnect(); - System.out.println("Token " + mapper.readValue(resp, JsonNode.class).get("access_token").asText()); - return mapper.readValue(resp, JsonNode.class).get("access_token").asText(); - } - public static void createDocument(MediaData mediaData) throws IOException { + public static String createDocument(CmisDocument cmisDocument, String jwtToken) throws IOException { OkHttpClient client = new OkHttpClient(); - SDMCredentials sdmCredentials = getSDMCredentials(); - String accessToken = getAccessToken(sdmCredentials); - String sdmUrl = sdmCredentials.getUrl()+"browser/"+ SDMConstants.REPOSITORY_ID +"/root"; + SDMCredentials sdmCredentials = TokenHandler.getSDMCredentials(); + String accessToken = TokenHandler.generateDITokenFromTokenExchange(jwtToken,sdmCredentials); + String sdmUrl = sdmCredentials.getUrl()+"browser/b490f13f-f02e-4ef4-9fde-dc7e9dfda59a/root"; RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) .addFormDataPart("cmisaction", "createDocument") .addFormDataPart("propertyId[0]", "cmis:name") - .addFormDataPart("propertyValue[0]",mediaData.getFileName() ) + .addFormDataPart("propertyValue[0]",cmisDocument.getFileName() ) .addFormDataPart("propertyId[1]", "cmis:objectTypeId") .addFormDataPart("propertyValue[1]", "cmis:document") .addFormDataPart("succinct", "true") - .addFormDataPart("filename", mediaData.getFileName(), - RequestBody.create(IOUtils.toByteArray(mediaData.getContent()), MediaType.parse("application/octet-stream"))) + .addFormDataPart("filename", cmisDocument.getFileName(), + RequestBody.create(IOUtils.toByteArray(cmisDocument.getContent()), MediaType.parse("application/octet-stream"))) .build(); Request request = new Request.Builder() @@ -118,10 +46,11 @@ public static void createDocument(MediaData mediaData) throws IOException { try (Response response = client.newCall(request).execute()) { if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); - System.out.println(response.body().string()); + return response.body().string(); } catch (IOException e) { e.printStackTrace(); } + return null; } diff --git a/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds index 2c2b1615..c140e59d 100644 --- a/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds +++ b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments-annotations.cds @@ -3,21 +3,10 @@ using { sap.attachments.Attachments } from './attachments'; -annotate MediaData with @UI.MediaResource: {Stream: content} { - content @( - title : '{i18n>attachment_content}', - Core.MediaType : mimeType, - ContentDisposition.Filename: fileName, - ContentDisposition.Type : 'inline' - ); - mimeType @( - title: '{i18n>attachment_mimeType}', - Core.IsMediaType - ); - fileName @(title: '{i18n>attachment_fileName}'); - status @(title: '{i18n>attachment_status}'); - contentId @(UI.Hidden: true); - scannedAt @(UI.Hidden: true); +annotate MediaData with @UI.MediaResource: { Stream: content } { + content @Core.MediaType: mimeType @odata.draft.skip; + mimeType @Core.IsMediaType; + status @readonly; } annotate Attachments with @UI: { diff --git a/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds index 4ca411e3..e2953295 100644 --- a/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds +++ b/sdm/src/main/resources/cds/com.sap.cds/sdm/attachments.cds @@ -24,4 +24,5 @@ aspect MediaData @(_is_media_data) { aspect Attachments : cuid, managed, MediaData { note : String; + } From f2a45ed0918bcee4b5940fe01b6818c4723a41bf Mon Sep 17 00:00:00 2001 From: Rashmi Date: Mon, 5 Aug 2024 12:30:30 +0530 Subject: [PATCH 014/210] SDMEXT-616:Caching user token and client credentials token for 11 hours Caching the DI token for 11 hours --- pom.xml | 67 ------- sdm/pom.xml | 12 +- .../com/sap/cds/sdm/caching/CacheConfig.java | 60 ++++++ .../com/sap/cds/sdm/caching/CacheKey.java | 13 ++ .../cds/sdm/configuration/Registration.java | 57 +----- .../com/sap/cds/sdm/handler/TokenHandler.java | 175 +++++++++--------- .../SDMCreateEventHandler.java | 3 - .../com/sap/cds/sdm/service/SDMService.java | 1 + .../sap/cds/sdm/service/SDMServiceImpl.java | 46 ++++- .../com/sap/cds/sdm/util/CmisServiceUtil.java | 57 ------ .../java/com/sap/cds/sdm/util/HelperUtil.java | 8 + 11 files changed, 224 insertions(+), 275 deletions(-) create mode 100644 sdm/src/main/java/com/sap/cds/sdm/caching/CacheConfig.java create mode 100644 sdm/src/main/java/com/sap/cds/sdm/caching/CacheKey.java delete mode 100644 sdm/src/main/java/com/sap/cds/sdm/util/CmisServiceUtil.java create mode 100644 sdm/src/main/java/com/sap/cds/sdm/util/HelperUtil.java diff --git a/pom.xml b/pom.xml index 72d4d34e..47e4034e 100644 --- a/pom.xml +++ b/pom.xml @@ -137,73 +137,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - org.apache.maven.plugins maven-enforcer-plugin diff --git a/sdm/pom.xml b/sdm/pom.xml index 44670fb8..43c246f4 100644 --- a/sdm/pom.xml +++ b/sdm/pom.xml @@ -38,6 +38,7 @@ 1.18.30 0.8.7 1.13 + 3.1.3 @@ -68,12 +69,6 @@ cds-services-impl test - - - - - - ch.qos.logback logback-classic @@ -114,6 +109,11 @@ commons-codec ${commons-codec.version} + + org.ehcache + ehcache + ${ehcache-version} + diff --git a/sdm/src/main/java/com/sap/cds/sdm/caching/CacheConfig.java b/sdm/src/main/java/com/sap/cds/sdm/caching/CacheConfig.java new file mode 100644 index 00000000..a78a951c --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/sdm/caching/CacheConfig.java @@ -0,0 +1,60 @@ +package com.sap.cds.sdm.caching; + +import java.util.concurrent.TimeUnit; + +import com.sap.cds.sdm.configuration.Registration; +import org.ehcache.Cache; +import org.ehcache.CacheManager; +import org.ehcache.config.builders.*; +import org.ehcache.expiry.Duration; +import org.ehcache.expiry.Expirations; +import org.ehcache.expiry.Duration; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.concurrent.TimeUnit; + + +public class CacheConfig { + + private static CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder().build(); + private static Cache userTokenCache; + private static Cache clientCredentialsTokenCache; + private static final int HEAP_SIZE = 1000; + private static final int USER_TOKEN_EXPIRY = 660; + private static final int ACCESS_TOKEN_EXPIRY = 660; + private static final Logger logger = LoggerFactory.getLogger(CacheConfig.class); + private CacheConfig() { + throw new IllegalStateException("CacheConfig class"); + } + + public static void initializeCache() { + // Expiring the cache after 11 hours + logger.info("Cache for user token and access token initialized"); + cacheManager.init(); + + userTokenCache = + cacheManager.createCache( + "userToken", + CacheConfigurationBuilder.newCacheConfigurationBuilder( + CacheKey.class, String.class, ResourcePoolsBuilder.heap(HEAP_SIZE)) + .withExpiry( + Expirations.timeToLiveExpiration( + new Duration(USER_TOKEN_EXPIRY, TimeUnit.MINUTES)))); + clientCredentialsTokenCache = + cacheManager.createCache( + "clientCredentialsToken", + CacheConfigurationBuilder.newCacheConfigurationBuilder( + String.class, String.class, ResourcePoolsBuilder.heap(HEAP_SIZE)) + .withExpiry( + Expirations.timeToLiveExpiration( + new Duration(ACCESS_TOKEN_EXPIRY, TimeUnit.MINUTES)))); + } + + public static Cache getUserTokenCache() { + return userTokenCache; + } + public static Cache getClientCredentialsTokenCache() { + return clientCredentialsTokenCache; + } +} diff --git a/sdm/src/main/java/com/sap/cds/sdm/caching/CacheKey.java b/sdm/src/main/java/com/sap/cds/sdm/caching/CacheKey.java new file mode 100644 index 00000000..f4f9f680 --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/sdm/caching/CacheKey.java @@ -0,0 +1,13 @@ +package com.sap.cds.sdm.caching; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class CacheKey { + private String email; + private String expiration; +} diff --git a/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java b/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java index b421c935..5970f170 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java +++ b/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java @@ -7,6 +7,7 @@ import java.util.List; import java.util.Objects; +import com.sap.cds.sdm.caching.CacheConfig; import com.sap.cds.sdm.handler.applicationservice.SDMCreateEventHandler; import com.sap.cds.sdm.service.SDMAttachmentsService; import com.sap.cds.sdm.service.handler.SDMAttachmentsServiceHandler; @@ -71,50 +72,32 @@ public void services(CdsRuntimeConfigurer configurer) { @Override public void eventHandlers(CdsRuntimeConfigurer configurer) { logger.info(marker, "Registering event handler for attachment service"); - - var persistenceService = configurer.getCdsRuntime().getServiceCatalog().getService(PersistenceService.class, - PersistenceService.DEFAULT_NAME); + CacheConfig.initializeCache(); var attachmentService = configurer.getCdsRuntime().getServiceCatalog().getService(AttachmentService.class, AttachmentService.DEFAULT_NAME); var outbox = configurer.getCdsRuntime().getServiceCatalog().getService(OutboxService.class, OutboxService.PERSISTENT_UNORDERED_NAME);//need to check if required var outboxedAttachmentService = outbox.outboxed(attachmentService); - List bindings = configurer.getCdsRuntime().getEnvironment().getServiceBindings().filter( - b -> ServiceBindingUtils.matches(b, MalwareScanConstants.MALWARE_SCAN_SERVICE_LABEL)).toList(); - var binding = !bindings.isEmpty() ? bindings.get(0) : null; - var connectionPoll = new ConnectionPool(Duration.ofSeconds(60), 2, 20); - var clientProviderFactory = new MalwareScanClientProviderFactory(binding, configurer.getCdsRuntime(), connectionPoll); - var malwareStatusMapper = new DefaultMalwareClientStatusMapper(); - var malwareScanner = new DefaultAttachmentMalwareScanner(persistenceService, attachmentService, - new DefaultMalwareScanClient(clientProviderFactory), malwareStatusMapper, Objects.nonNull(binding)); - var malwareScanEndTransactionListener = createEndTransactionMalwareScanListener(malwareScanner); configurer.eventHandler(new SDMAttachmentsServiceHandler()); var deleteContentEvent = new MarkAsDeletedAttachmentEvent(outboxedAttachmentService); var eventFactory = buildAttachmentEventFactory(attachmentService, deleteContentEvent, outboxedAttachmentService); - var attachmentsReader = buildAttachmentsReader(persistenceService); ThreadLocalDataStorage storage = new ThreadLocalDataStorage(); configurer.eventHandler(buildCreateHandler(eventFactory, storage)); - configurer.eventHandler(buildUpdateHandler(eventFactory, attachmentsReader, outboxedAttachmentService, storage)); - configurer.eventHandler(buildDeleteHandler(attachmentsReader, deleteContentEvent)); - configurer.eventHandler( - buildReadHandler(attachmentService, new EndTransactionMalwareScanRunner(null, null, malwareScanner))); - configurer.eventHandler(new DraftPatchAttachmentsHandler(persistenceService, eventFactory)); - configurer.eventHandler( - new DraftCancelAttachmentsHandler(attachmentsReader, deleteContentEvent, ActiveEntityModifier::new)); - //configurer.eventHandler(new DraftActiveAttachmentsHandler(storage)); +// configurer.eventHandler(buildUpdateHandler(eventFactory, attachmentsReader, outboxedAttachmentService, storage)); +// configurer.eventHandler(buildDeleteHandler(attachmentsReader, deleteContentEvent)); +// configurer.eventHandler( +// buildReadHandler(attachmentService, new EndTransactionMalwareScanRunner(null, null, malwareScanner))); +// configurer.eventHandler(new DraftPatchAttachmentsHandler(persistenceService, eventFactory)); +// configurer.eventHandler( +// new DraftCancelAttachmentsHandler(attachmentsReader, deleteContentEvent, ActiveEntityModifier::new)); } - private EndTransactionMalwareScanProvider createEndTransactionMalwareScanListener( - DefaultAttachmentMalwareScanner malwareScanner) { - return (attachmentEntity, contentId) -> new EndTransactionMalwareScanRunner(attachmentEntity, contentId, - malwareScanner); - } + private AttachmentService buildAttachmentService() { - logger.info( "Registering SDM attachment service****"); logger.info(marker, "Registering SDM attachment service"); return new SDMAttachmentsService(); @@ -139,26 +122,6 @@ protected EventHandler buildCreateHandler(ModifyAttachmentEventFactory factory, return new SDMCreateEventHandler(factory, storage); } - protected EventHandler buildDeleteHandler(AttachmentsReader attachmentsReader, - ModifyAttachmentEvent deleteContentEvent) { - return new DeleteAttachmentsHandler(attachmentsReader, deleteContentEvent); - } - protected EventHandler buildReadHandler(AttachmentService attachmentService, - AsyncMalwareScanExecutor asyncMalwareScanExecutor) { - var statusValidator = new DefaultAttachmentStatusValidator(); - return new ReadAttachmentsHandler(attachmentService, BeforeReadItemsModifier::new, statusValidator, - asyncMalwareScanExecutor); - } - - protected EventHandler buildUpdateHandler(ModifyAttachmentEventFactory factory, AttachmentsReader attachmentsReader, - AttachmentService outboxedAttachmentService, ThreadLocalDataStorage storage) { - return new UpdateAttachmentsHandler(factory, attachmentsReader, outboxedAttachmentService, storage); - } - - protected AttachmentsReader buildAttachmentsReader(PersistenceService persistenceService) { - var cascader = new DefaultAssociationCascader(); - return new DefaultAttachmentsReader(cascader, persistenceService); - } } diff --git a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java index e969940c..cd3a8297 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java @@ -5,6 +5,8 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; +import com.sap.cds.sdm.caching.CacheConfig; +import com.sap.cds.sdm.caching.CacheKey; import com.sap.cds.sdm.constants.SDMConstants; import com.sap.cds.sdm.model.SDMCredentials; import com.sap.cds.sdm.service.handler.SDMAttachmentsServiceHandler; @@ -75,106 +77,103 @@ public static SDMCredentials getSDMCredentials() { } public static String getAccessToken(SDMCredentials sdmCredentials) throws IOException, ProtocolException { - String userCredentials = sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); - String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); - String bodyParams = "grant_type=client_credentials"; - byte[] postData = toBytes(bodyParams); - String authurl = sdmCredentials.getBaseTokenUrl() + "/oauth/token"; - URL url = new URL(authurl); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestProperty("Authorization", authHeaderValue); - conn.setRequestMethod("POST"); - conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - conn.setRequestProperty("charset", "utf-8"); - conn.setRequestProperty("Content-Length", "" + postData.length); - conn.setUseCaches(false); - conn.setDoInput(true); - conn.setDoOutput(true); - try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { - os.write(postData); - } - String resp; - try (DataInputStream is = new DataInputStream(conn.getInputStream()); - BufferedReader br = new BufferedReader(new InputStreamReader(is))) { - resp = br.lines().collect(Collectors.joining("\n")); + //Fetch the token from Cache if present use it else generate and store + String cachedToken = CacheConfig.getClientCredentialsTokenCache().get("clientCredentialsToken"); + if(cachedToken == null) { + String userCredentials = sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); + String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); + String bodyParams = "grant_type=client_credentials"; + byte[] postData = toBytes(bodyParams); + String authurl = sdmCredentials.getBaseTokenUrl() + "/oauth/token"; + URL url = new URL(authurl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestProperty("Authorization", authHeaderValue); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + conn.setRequestProperty("charset", "utf-8"); + conn.setRequestProperty("Content-Length", "" + postData.length); + conn.setUseCaches(false); + conn.setDoInput(true); + conn.setDoOutput(true); + try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { + os.write(postData); + } + String resp; + try (DataInputStream is = new DataInputStream(conn.getInputStream()); + BufferedReader br = new BufferedReader(new InputStreamReader(is))) { + resp = br.lines().collect(Collectors.joining("\n")); + } + conn.disconnect(); + cachedToken = mapper.readValue(resp, JsonNode.class).get("access_token").asText(); + CacheConfig.getClientCredentialsTokenCache().put("clientCredentialsToken", cachedToken); } - conn.disconnect(); - return mapper.readValue(resp, JsonNode.class).get("access_token").asText(); + return cachedToken; } - - public static String getUserToken(SDMCredentials sdmCredentials) throws IOException, ProtocolException { - String userCredentials = sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); - String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); - String bodyParams = "grant_type=client_credentials"; - byte[] postData = toBytes(bodyParams); - String authurl = sdmCredentials.getBaseTokenUrl() + "/oauth/token"; - URL url = new URL(authurl); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestProperty("Authorization", authHeaderValue); - conn.setRequestMethod("POST"); - conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - conn.setRequestProperty("charset", "utf-8"); - conn.setRequestProperty("Content-Length", "" + postData.length); - conn.setUseCaches(false); - conn.setDoInput(true); - conn.setDoOutput(true); - try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { - os.write(postData); - } - String resp; - try (DataInputStream is = new DataInputStream(conn.getInputStream()); - BufferedReader br = new BufferedReader(new InputStreamReader(is))) { - resp = br.lines().collect(Collectors.joining("\n")); - } - conn.disconnect(); - return mapper.readValue(resp, JsonNode.class).get("access_token").asText(); + public static String getDIToken(String token,SDMCredentials sdmCredentials) throws OAuth2ServiceException { + JsonObject payloadObj = getTokenFields(token); + String email = payloadObj.get("email").getAsString(); + String token_expiry = payloadObj.get("exp").getAsString(); + CacheKey cacheKey = new CacheKey(); + cacheKey.setEmail(email); + cacheKey.setExpiration(token_expiry); + String cachedToken = CacheConfig.getUserTokenCache().get(cacheKey); + if (cachedToken == null) { + cachedToken= generateDITokenFromTokenExchange(token,sdmCredentials,payloadObj); } - public static String generateDITokenFromTokenExchange(String token,SDMCredentials sdmCredentials) + return cachedToken; +} + + private static String generateDITokenFromTokenExchange(String token,SDMCredentials sdmCredentials,JsonObject payloadObj) throws OAuth2ServiceException { - CloseableHttpClient httpClient = null; - String cachedToken = null; - try { - httpClient = HttpClients.createDefault(); - if (sdmCredentials.getClientId() == null) { - throw new IOException("No SDM binding found"); - } - Map parameters = fillTokenExchangeBody(token, sdmCredentials); - HttpPost httpPost = new HttpPost(sdmCredentials.getBaseTokenUrl() + "/oauth/token"); - httpPost.setHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON.value()); - httpPost.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED.value()); - httpPost.setHeader(SDMConstants.TENANT_ID, getTenantId(token)); + String cachedToken =null; + CloseableHttpClient httpClient = null; + try { + httpClient = HttpClients.createDefault(); + if (sdmCredentials.getClientId() == null) { + throw new IOException("No SDM binding found"); + } + Map parameters = fillTokenExchangeBody(token, sdmCredentials); + HttpPost httpPost = new HttpPost(sdmCredentials.getBaseTokenUrl() + "/oauth/token"); + httpPost.setHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON.value()); + httpPost.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED.value()); + httpPost.setHeader(SDMConstants.TENANT_ID, getTokenFields(token).get("zid").getAsString()); - List basicNameValuePairs = - parameters.entrySet().stream() - .map(entry -> new BasicNameValuePair(entry.getKey(), entry.getValue())) - .collect(Collectors.toList()); - httpPost.setEntity(new UrlEncodedFormEntity(basicNameValuePairs)); - HttpResponse response = httpClient.execute(httpPost); - String responseBody = extractResponseBodyAsString(response); - if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { - logger.error("Error fetching token with JWT bearer : " + responseBody); + List basicNameValuePairs = + parameters.entrySet().stream() + .map(entry -> new BasicNameValuePair(entry.getKey(), entry.getValue())) + .collect(Collectors.toList()); + httpPost.setEntity(new UrlEncodedFormEntity(basicNameValuePairs)); + HttpResponse response = httpClient.execute(httpPost); + String responseBody = extractResponseBodyAsString(response); + if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { + logger.error("Error fetching token with JWT bearer : " + responseBody); + } + Map accessTokenMap = new JSONObject(responseBody).toMap(); + cachedToken = String.valueOf(accessTokenMap.get("access_token")); + String token_expiry = payloadObj.get("exp").getAsString(); + CacheKey cacheKey = new CacheKey(); + cacheKey.setEmail(payloadObj.get("email").getAsString()); + cacheKey.setExpiration(token_expiry); + CacheConfig.getUserTokenCache().put(cacheKey, cachedToken); + } catch (UnsupportedEncodingException e) { + throw new OAuth2ServiceException("Unexpected error parsing URI: " + e.getMessage()); + } catch (ClientProtocolException e) { + throw new OAuth2ServiceException( + "Unexpected error while fetching client protocol: " + e.getMessage()); + } catch (IOException e) { + logger.error("Error in POST request while fetching token with JWT bearer", e.getMessage()); + } finally { + safeClose(httpClient); } - Map accessTokenMap = new JSONObject(responseBody).toMap(); - return String.valueOf(accessTokenMap.get("access_token")); - } catch (UnsupportedEncodingException e) { - throw new OAuth2ServiceException("Unexpected error parsing URI: " + e.getMessage()); - } catch (ClientProtocolException e) { - throw new OAuth2ServiceException( - "Unexpected error while fetching client protocol: " + e.getMessage()); - } catch (IOException e) { - logger.error("Error in POST request while fetching token with JWT bearer", e.getMessage()); - } finally { - safeClose(httpClient); - } - return null; + return cachedToken; } - public static String getTenantId(String token) { + public static JsonObject getTokenFields(String token) { String[] chunks = token.split("\\."); java.util.Base64.Decoder decoder = java.util.Base64.getUrlDecoder(); String payload = new String(decoder.decode(chunks[1])); JsonElement jelement = new JsonParser().parse(payload); - return jelement.getAsJsonObject().get("zid").getAsString(); + return jelement.getAsJsonObject(); } private static Map fillTokenExchangeBody(String token, SDMCredentials sdmEnv) { Map parameters = new HashMap<>(); diff --git a/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java b/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java index 73c800b7..c598fe07 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java @@ -65,9 +65,6 @@ private void doCreate(CdsCreateEventContext context, List data) throws AuthenticationInfo authInfo = context.getAuthenticationInfo(); JwtTokenAuthenticationInfo jwtTokenInfo = authInfo.as(JwtTokenAuthenticationInfo.class); String jwtToken = jwtTokenInfo.getToken(); - logger.info("JWT TOKEN " + jwtToken); - logger.info("User info " + context.getUserInfo()); - createDocument(data, jwtToken); if (ApplicationHandlerHelper.noContentFieldInData(context.getTarget(), data)) { return; diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java b/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java index 02c83c3f..6fc24d62 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java @@ -11,4 +11,5 @@ public interface SDMService { public String createDocument(CmisDocument cmisDocument, String jwtToken) throws IOException; public void readDocument(); public void deleteDocument(); + public String createFolder(); } diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java b/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java index 81ff35dc..9bbb7e2a 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java @@ -1,19 +1,46 @@ package com.sap.cds.sdm.service; -import com.sap.cds.CdsData; -import com.sap.cds.feature.attachments.generated.cds4j.sap.attachments.MediaData; +import com.sap.cds.sdm.handler.TokenHandler; import com.sap.cds.sdm.model.CmisDocument; -import com.sap.cds.sdm.util.CmisServiceUtil; +import com.sap.cds.sdm.model.SDMCredentials; +import okhttp3.*; +import org.apache.commons.io.IOUtils; import java.io.IOException; -import java.util.List; public class SDMServiceImpl implements SDMService{ @Override public String createDocument(CmisDocument cmisDocument, String jwtToken) throws IOException { - //get the token - return CmisServiceUtil.createDocument(cmisDocument,jwtToken); - //call the create document + OkHttpClient client = new OkHttpClient(); + SDMCredentials sdmCredentials = TokenHandler.getSDMCredentials(); + String accessToken = TokenHandler.getDIToken(jwtToken,sdmCredentials); + String sdmUrl = sdmCredentials.getUrl()+"browser/b490f13f-f02e-4ef4-9fde-dc7e9dfda59a/root"; + + RequestBody requestBody = new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("cmisaction", "createDocument") + .addFormDataPart("propertyId[0]", "cmis:name") + .addFormDataPart("propertyValue[0]",cmisDocument.getFileName() ) + .addFormDataPart("propertyId[1]", "cmis:objectTypeId") + .addFormDataPart("propertyValue[1]", "cmis:document") + .addFormDataPart("succinct", "true") + .addFormDataPart("filename", cmisDocument.getFileName(), + RequestBody.create(IOUtils.toByteArray(cmisDocument.getContent()), MediaType.parse("application/octet-stream"))) + .build(); + + Request request = new Request.Builder() + .url(sdmUrl) + .addHeader("Authorization", "Bearer " + accessToken) + .post(requestBody) + .build(); + + try (Response response = client.newCall(request).execute()) { + if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); + return response.body().string(); + } catch (IOException e) { + e.printStackTrace(); + } + return null; } @@ -27,4 +54,9 @@ public void readDocument() { public void deleteDocument() { } + + @Override + public String createFolder() { + return null; + } } diff --git a/sdm/src/main/java/com/sap/cds/sdm/util/CmisServiceUtil.java b/sdm/src/main/java/com/sap/cds/sdm/util/CmisServiceUtil.java deleted file mode 100644 index 889c1264..00000000 --- a/sdm/src/main/java/com/sap/cds/sdm/util/CmisServiceUtil.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.sap.cds.sdm.util; -import com.sap.cds.CdsData; -import com.sap.cds.feature.attachments.generated.cds4j.sap.attachments.MediaData; -import com.sap.cds.sdm.constants.SDMConstants; -import com.sap.cds.sdm.handler.TokenHandler; -import com.sap.cds.sdm.model.CmisDocument; -import com.sap.cds.sdm.model.SDMCredentials; -import com.sap.cloud.environment.servicebinding.api.DefaultServiceBindingAccessor; -import com.sap.cloud.environment.servicebinding.api.ServiceBinding; - - -import java.io.*; - -import okhttp3.*; -import org.apache.commons.io.IOUtils; - -import java.io.File; -import java.util.List; - -public class CmisServiceUtil { - - - public static String createDocument(CmisDocument cmisDocument, String jwtToken) throws IOException { - OkHttpClient client = new OkHttpClient(); - SDMCredentials sdmCredentials = TokenHandler.getSDMCredentials(); - String accessToken = TokenHandler.generateDITokenFromTokenExchange(jwtToken,sdmCredentials); - String sdmUrl = sdmCredentials.getUrl()+"browser/b490f13f-f02e-4ef4-9fde-dc7e9dfda59a/root"; - - RequestBody requestBody = new MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart("cmisaction", "createDocument") - .addFormDataPart("propertyId[0]", "cmis:name") - .addFormDataPart("propertyValue[0]",cmisDocument.getFileName() ) - .addFormDataPart("propertyId[1]", "cmis:objectTypeId") - .addFormDataPart("propertyValue[1]", "cmis:document") - .addFormDataPart("succinct", "true") - .addFormDataPart("filename", cmisDocument.getFileName(), - RequestBody.create(IOUtils.toByteArray(cmisDocument.getContent()), MediaType.parse("application/octet-stream"))) - .build(); - - Request request = new Request.Builder() - .url(sdmUrl) - .addHeader("Authorization", "Bearer " + accessToken) - .post(requestBody) - .build(); - - try (Response response = client.newCall(request).execute()) { - if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); - return response.body().string(); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - } - - -} diff --git a/sdm/src/main/java/com/sap/cds/sdm/util/HelperUtil.java b/sdm/src/main/java/com/sap/cds/sdm/util/HelperUtil.java new file mode 100644 index 00000000..d6c72c20 --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/sdm/util/HelperUtil.java @@ -0,0 +1,8 @@ +package com.sap.cds.sdm.util; + +public class HelperUtil { + + + + +} From 5f8a9856338fc49dd2ed29fb39d743cb29214b33 Mon Sep 17 00:00:00 2001 From: Rashmi Date: Mon, 5 Aug 2024 12:33:43 +0530 Subject: [PATCH 015/210] Delete .flattened-pom.xml --- sdm/.flattened-pom.xml | 273 ----------------------------------------- 1 file changed, 273 deletions(-) delete mode 100644 sdm/.flattened-pom.xml diff --git a/sdm/.flattened-pom.xml b/sdm/.flattened-pom.xml deleted file mode 100644 index 37d0468d..00000000 --- a/sdm/.flattened-pom.xml +++ /dev/null @@ -1,273 +0,0 @@ - - - 4.0.0 - - com.sap.cds - sdm-root - 1.0.0-SNAPSHOT - - sdm - 1.0.0-SNAPSHOT - CDS Feature for SAP Document Management Service - https://cap.cloud.sap/docs/plugins/#attachments - - SAP SE - https://www.sap.com - - - - The Apache Software License, Version 2.0 - https://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - artifactory - Artifactory_DMZ - https://common.repositories.cloud.sap/artifactory/cap-java - - - artifactory - Artifactory_DMZ-snapshots - https://common.repositories.cloud.sap/artifactory/cap-java - - - - 1.0.0-SNAPSHOT - 1.18.30 - 17 - sdm.generated - 17 - 1.13 - sdm - 0.8.7 - src/test/gen - 7.6.0 - - - - org.projectlombok - lombok - ${lombok.version} - provided - - - com.sap.cds - cds-services-utils - - - commons-codec - commons-codec - - - - - com.sap.cds - cds-integration-cloud-sdk - - - com.sap.cds - cds-services-impl - test - - - ch.qos.logback - logback-classic - 1.5.6 - test - - - org.awaitility - awaitility - 4.2.1 - test - - - junit - junit - 4.13.2 - test - - - com.squareup.okhttp3 - okhttp - 4.9.0 - - - com.sap.cds - cds-feature-attachments - ${attachments_version} - - - com.sap.cds - cds-starter-cloudfoundry - - - com.sap.cloud.environment.servicebinding - java-sap-vcap-services - 0.10.5 - - - commons-codec - commons-codec - ${commons-codec.version} - - - - ${project.artifactId} - - - maven-clean-plugin - 3.3.2 - - - auto-clean - clean - - clean - - - - - - com.sap.cds - cds-maven-plugin - ${cds.services.version} - - - cds.clean - - clean - - - - cds.install-node - - install-node - - - ${skipDuringDeploy} - - - - cds.install-cdsdk - - install-cdsdk - - - ${skipDuringDeploy} - - - - cds.build - - cds - - - - - ${skipDuringDeploy} - - - - org.jacoco - jacoco-maven-plugin - 0.8.12 - - - jacoco-initialize - - prepare-agent - - - - jacoco-site-report-all-tests - verify - - report - - - - jacoco-site-report-only-unit-tests - test - - report - - - - jacoco-check-unit-tests-only - test - - check - - - - - BUNDLE - - - INSTRUCTION - COVEREDRATIO - 0.95 - - - BRANCH - COVEREDRATIO - 0.95 - - - COMPLEXITY - COVEREDRATIO - 0.95 - - - CLASS - MISSEDCOUNT - 0 - - - - - - - - - - ${excluded.generation.package}**/* - - - - - org.codehaus.mojo - build-helper-maven-plugin - 3.5.0 - - - generate-sources - - add-source - - - - ${project.basedir}/${generation-folder}/java - - - - - - - maven-source-plugin - 3.3.1 - - - - jar - - - - - - - From 1a4e2bf2220e24be64b2b4fc66f187d28e357618 Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Mon, 5 Aug 2024 13:33:00 +0530 Subject: [PATCH 016/210] UT workflow & spotless --- .github/workflows/unit.tests.yml | 45 +++++++ pom.xml | 25 ++++ sdm/pom.xml | 10 +- .../cds/handler/SDMAttachmentsHandler.java | 56 ++++----- .../com/sap/cds/handler/TokenGenerator.java | 113 +++++++++--------- .../com/sap/cds/model/SDMCredentials.java | 10 +- .../handler/SDMAttachmentsHandlerTest.java | 29 ++--- 7 files changed, 172 insertions(+), 116 deletions(-) create mode 100644 .github/workflows/unit.tests.yml diff --git a/.github/workflows/unit.tests.yml b/.github/workflows/unit.tests.yml new file mode 100644 index 00000000..4f47b32a --- /dev/null +++ b/.github/workflows/unit.tests.yml @@ -0,0 +1,45 @@ +name: UnitTestsWithCodeCoverage + +on: + push: + branches: [ "develop" ] + pull_request: + branches: [ "develop" ] + types: [opened, synchronize, reopened, auto_merge_enabled] + +permissions: + pull-requests: read + +jobs: + unitTests: + runs-on: ubuntu-latest + strategy: + matrix: + java-version: [17] + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up JDK ${{ matrix.java-version }} + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ matrix.java-version }} + + - name: Cache Maven dependencies + uses: actions/cache@v3 + with: + path: ~/.m2 + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + + - name: Install dependencies and run tests with coverage + run: | + mvn clean install + + - name: Upload code coverage report + uses: actions/upload-artifact@v3 + with: + name: code-coverage-report + path: target/site/jacoco/jacoco.xml \ No newline at end of file diff --git a/pom.xml b/pom.xml index fa5dfa4a..b82ab073 100644 --- a/pom.xml +++ b/pom.xml @@ -136,6 +136,31 @@ + + com.diffplug.spotless + spotless-maven-plugin + 2.43.0 + + + + src/main/java/**/*.java + src/test/java/**/*.java + + + + + + + + + + check + + compile + + + + org.codehaus.mojo diff --git a/sdm/pom.xml b/sdm/pom.xml index 7c18d674..58353ffa 100644 --- a/sdm/pom.xml +++ b/sdm/pom.xml @@ -170,11 +170,9 @@ cds.build cds - - - - - + + + @@ -234,7 +232,7 @@ COMPLEXITY COVEREDRATIO - 0.9 + 0.90 CLASS diff --git a/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java b/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java index 95406e57..659a21e8 100644 --- a/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java +++ b/sdm/src/main/java/com/sap/cds/handler/SDMAttachmentsHandler.java @@ -1,49 +1,37 @@ package com.sap.cds.handler; -import com.sap.cds.services.handler.EventHandler; -import com.sap.cds.services.handler.annotations.On; - -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.Marker; - import com.sap.cds.feature.attachments.service.AttachmentService; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentCreateEventContext; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentMarkAsDeletedEventContext; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentReadEventContext; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentRestoreEventContext; - +import com.sap.cds.services.handler.EventHandler; +import com.sap.cds.services.handler.annotations.On; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class SDMAttachmentsHandler implements EventHandler { - private static final Logger logger = LoggerFactory.getLogger(SDMAttachmentsHandler.class); - - @On(event = AttachmentService.EVENT_CREATE_ATTACHMENT) - public void createAttachment(AttachmentCreateEventContext context) { - logger.info( "Default Attachment Service handler called for creating attachment for entity name: {}", - context.getAttachmentEntity().getQualifiedName()); - logger.info( "Other details: {}", - context.getAttachmentIds()); - logger.info( "Other details entity: {}", - context.getAttachmentEntity()); - - } - - @On(event = AttachmentService.EVENT_MARK_ATTACHMENT_AS_DELETED) - public void markAttachmentAsDeleted(AttachmentMarkAsDeletedEventContext context) { - - } + private static final Logger logger = LoggerFactory.getLogger(SDMAttachmentsHandler.class); - @On(event = AttachmentService.EVENT_RESTORE_ATTACHMENT) - public void restoreAttachment(AttachmentRestoreEventContext context) { + @On(event = AttachmentService.EVENT_CREATE_ATTACHMENT) + public void createAttachment(AttachmentCreateEventContext context) { + logger.info( + "Default Attachment Service handler called for creating attachment for entity name: {}", + context.getAttachmentEntity().getQualifiedName()); + logger.info("Other details: {}", context.getAttachmentIds()); + logger.info("Other details entity: {}", context.getAttachmentEntity()); + } - } + @On(event = AttachmentService.EVENT_MARK_ATTACHMENT_AS_DELETED) + public void markAttachmentAsDeleted(AttachmentMarkAsDeletedEventContext context) {} - @On(event = AttachmentService.EVENT_READ_ATTACHMENT) - public void readAttachment(AttachmentReadEventContext context) { - } + @On(event = AttachmentService.EVENT_RESTORE_ATTACHMENT) + public void restoreAttachment(AttachmentRestoreEventContext context) {} - public String performAction() { - return "Action Performed"; - } + @On(event = AttachmentService.EVENT_READ_ATTACHMENT) + public void readAttachment(AttachmentReadEventContext context) {} + public String performAction() { + return "Action Performed"; + } } diff --git a/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java b/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java index 038486d6..d32a102c 100644 --- a/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java +++ b/sdm/src/main/java/com/sap/cds/handler/TokenGenerator.java @@ -1,11 +1,12 @@ package com.sap.cds.handler; + +import static java.util.Objects.requireNonNull; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; import com.sap.cds.model.SDMCredentials; import com.sap.cloud.environment.servicebinding.api.DefaultServiceBindingAccessor; import com.sap.cloud.environment.servicebinding.api.ServiceBinding; -import com.sap.cds.integration.cloudsdk.rest.client.JsonRestClient; -import com.sap.cds.integration.cloudsdk.rest.client.JsonRestClientResponseException; - - import java.io.*; import java.net.HttpURLConnection; import java.net.ProtocolException; @@ -14,64 +15,64 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.commons.codec.binary.Base64; -import static java.util.Objects.requireNonNull; - public class TokenGenerator { - private static Map uaaCredentials; - private static final ObjectMapper mapper = new ObjectMapper(); - public static byte[] toBytes(String str) { - return requireNonNull(str).getBytes(StandardCharsets.UTF_8); - } + private static Map uaaCredentials; + private static final ObjectMapper mapper = new ObjectMapper(); - public static String toString(byte[] bytes) { - return new String(requireNonNull(bytes), StandardCharsets.UTF_8); - } - private static SDMCredentials getSDMCredentianls(){ - List allServiceBindings = DefaultServiceBindingAccessor.getInstance().getServiceBindings(); + public static byte[] toBytes(String str) { + return requireNonNull(str).getBytes(StandardCharsets.UTF_8); + } + + public static String toString(byte[] bytes) { + return new String(requireNonNull(bytes), StandardCharsets.UTF_8); + } + + private static SDMCredentials getSDMCredentianls() { + List allServiceBindings = + DefaultServiceBindingAccessor.getInstance().getServiceBindings(); - // filter for a specific binding - ServiceBinding sdmBinding = allServiceBindings.stream() - .filter(binding -> "sdm".equalsIgnoreCase(binding.getServiceName().orElse(null))) - .findFirst() - .get(); - SDMCredentials sdmCredentials = new SDMCredentials(); - uaaCredentials = sdmBinding.getCredentials(); - sdmCredentials.setBaseTokenUrl(uaaCredentials.get("url").toString()); - sdmCredentials.setUrl(sdmBinding.getCredentials().get("uri").toString()); - sdmCredentials.setClientId(uaaCredentials.get("clientid").toString()); - sdmCredentials.setClientSecret(uaaCredentials.get("clientsecret").toString()); - return sdmCredentials; + // filter for a specific binding + ServiceBinding sdmBinding = + allServiceBindings.stream() + .filter(binding -> "sdm".equalsIgnoreCase(binding.getServiceName().orElse(null))) + .findFirst() + .get(); + SDMCredentials sdmCredentials = new SDMCredentials(); + uaaCredentials = sdmBinding.getCredentials(); + sdmCredentials.setBaseTokenUrl(uaaCredentials.get("url").toString()); + sdmCredentials.setUrl(sdmBinding.getCredentials().get("uri").toString()); + sdmCredentials.setClientId(uaaCredentials.get("clientid").toString()); + sdmCredentials.setClientSecret(uaaCredentials.get("clientsecret").toString()); + return sdmCredentials; + } + public static String getAccessToken() throws IOException, ProtocolException { + SDMCredentials sdmCredentials = getSDMCredentianls(); + String userCredentials = sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); + String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); + String bodyParams = "grant_type=client_credentials"; + byte[] postData = toBytes(bodyParams); + URL url = new URL(sdmCredentials.getBaseTokenUrl()); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestProperty("Authorization", authHeaderValue); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + conn.setRequestProperty("charset", "utf-8"); + conn.setRequestProperty("Content-Length", "" + postData.length); + conn.setUseCaches(false); + conn.setDoInput(true); + conn.setDoOutput(true); + try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { + os.write(postData); } - public static String getAccessToken() throws IOException, ProtocolException { - SDMCredentials sdmCredentials = getSDMCredentianls(); - String userCredentials = sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); - String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); - String bodyParams = "grant_type=client_credentials"; - byte[] postData = toBytes(bodyParams); - URL url = new URL(sdmCredentials.getBaseTokenUrl()); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestProperty("Authorization", authHeaderValue); - conn.setRequestMethod("POST"); - conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - conn.setRequestProperty("charset", "utf-8"); - conn.setRequestProperty("Content-Length", "" + postData.length); - conn.setUseCaches(false); - conn.setDoInput(true); - conn.setDoOutput(true); - try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { - os.write(postData); - } - String resp; - try (DataInputStream is = new DataInputStream(conn.getInputStream()); - BufferedReader br = new BufferedReader(new InputStreamReader(is))) { - resp = br.lines().collect(Collectors.joining("\n")); - } - conn.disconnect(); - return mapper.readValue(resp, JsonNode.class).get("access_token").asText(); + String resp; + try (DataInputStream is = new DataInputStream(conn.getInputStream()); + BufferedReader br = new BufferedReader(new InputStreamReader(is))) { + resp = br.lines().collect(Collectors.joining("\n")); } + conn.disconnect(); + return mapper.readValue(resp, JsonNode.class).get("access_token").asText(); + } } diff --git a/sdm/src/main/java/com/sap/cds/model/SDMCredentials.java b/sdm/src/main/java/com/sap/cds/model/SDMCredentials.java index 4979f93e..668e63f8 100644 --- a/sdm/src/main/java/com/sap/cds/model/SDMCredentials.java +++ b/sdm/src/main/java/com/sap/cds/model/SDMCredentials.java @@ -1,6 +1,5 @@ package com.sap.cds.model; - import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import lombok.AllArgsConstructor; import lombok.Builder; @@ -14,12 +13,11 @@ @AllArgsConstructor public class SDMCredentials { - private String url; + private String url; - private String baseTokenUrl; + private String baseTokenUrl; - private String clientId; + private String clientId; - private String clientSecret; + private String clientSecret; } - diff --git a/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java b/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java index 278f5e1e..483dea77 100644 --- a/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java +++ b/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java @@ -1,23 +1,24 @@ package com.sap.cds.handler; + +import static org.assertj.core.api.Assertions.assertThat; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.mockito.MockitoAnnotations; -import static org.assertj.core.api.Assertions.assertThat; - public class SDMAttachmentsHandlerTest { - private SDMAttachmentsHandler handler; + private SDMAttachmentsHandler handler; - @BeforeEach - void setUp() { - MockitoAnnotations.openMocks(this); - handler = new SDMAttachmentsHandler(); - } + @BeforeEach + void setUp() { + MockitoAnnotations.openMocks(this); + handler = new SDMAttachmentsHandler(); + } - @Test - void testPerformAction() { - String result = handler.performAction(); - assertThat(result).isEqualTo("Action Performed"); - } -} \ No newline at end of file + @Test + void testPerformAction() { + String result = handler.performAction(); + assertThat(result).isEqualTo("Action Performed"); + } +} From 5af3fcd9f39ab793678d4b70e23c18b87e3dafea Mon Sep 17 00:00:00 2001 From: Rashmi Date: Mon, 5 Aug 2024 20:53:38 +0530 Subject: [PATCH 017/210] Review comments --- pom.xml | 7 +++- .../cds/sdm/configuration/Registration.java | 40 ++----------------- .../sap/cds/sdm/service/SDMServiceImpl.java | 3 +- 3 files changed, 12 insertions(+), 38 deletions(-) diff --git a/pom.xml b/pom.xml index 47e4034e..bcc32615 100644 --- a/pom.xml +++ b/pom.xml @@ -87,7 +87,12 @@ 5.10.2 test - + + org.junit.jupiter + junit-jupiter-engine + 5.10.2 + test + org.assertj assertj-core diff --git a/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java b/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java index 5970f170..f3b75bbe 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java +++ b/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java @@ -1,11 +1,6 @@ -/************************************************************************** - * (C) 2019-2024 SAP SE or an SAP affiliate company. All rights reserved. * - **************************************************************************/ + package com.sap.cds.sdm.configuration; -import java.time.Duration; -import java.util.List; -import java.util.Objects; import com.sap.cds.sdm.caching.CacheConfig; import com.sap.cds.sdm.handler.applicationservice.SDMCreateEventHandler; @@ -15,9 +10,6 @@ import org.slf4j.LoggerFactory; import org.slf4j.Marker; -import com.sap.cds.feature.attachments.handler.applicationservice.DeleteAttachmentsHandler; -import com.sap.cds.feature.attachments.handler.applicationservice.ReadAttachmentsHandler; -import com.sap.cds.feature.attachments.handler.applicationservice.UpdateAttachmentsHandler; import com.sap.cds.feature.attachments.handler.applicationservice.helper.ThreadLocalDataStorage; import com.sap.cds.feature.attachments.handler.applicationservice.processor.modifyevents.CreateAttachmentEvent; import com.sap.cds.feature.attachments.handler.applicationservice.processor.modifyevents.DefaultModifyAttachmentEventFactory; @@ -26,34 +18,16 @@ import com.sap.cds.feature.attachments.handler.applicationservice.processor.modifyevents.ModifyAttachmentEvent; import com.sap.cds.feature.attachments.handler.applicationservice.processor.modifyevents.ModifyAttachmentEventFactory; import com.sap.cds.feature.attachments.handler.applicationservice.processor.modifyevents.UpdateAttachmentEvent; -import com.sap.cds.feature.attachments.handler.applicationservice.processor.readhelper.modifier.BeforeReadItemsModifier; -import com.sap.cds.feature.attachments.handler.applicationservice.processor.readhelper.validator.DefaultAttachmentStatusValidator; import com.sap.cds.feature.attachments.handler.applicationservice.processor.transaction.CreationChangeSetListener; import com.sap.cds.feature.attachments.handler.applicationservice.processor.transaction.ListenerProvider; -import com.sap.cds.feature.attachments.handler.common.AttachmentsReader; -import com.sap.cds.feature.attachments.handler.common.DefaultAssociationCascader; -import com.sap.cds.feature.attachments.handler.common.DefaultAttachmentsReader; -import com.sap.cds.feature.attachments.handler.draftservice.DraftCancelAttachmentsHandler; -import com.sap.cds.feature.attachments.handler.draftservice.DraftPatchAttachmentsHandler; -import com.sap.cds.feature.attachments.handler.draftservice.modifier.ActiveEntityModifier; + import com.sap.cds.feature.attachments.service.AttachmentService; -import com.sap.cds.feature.attachments.service.handler.transaction.EndTransactionMalwareScanProvider; -import com.sap.cds.feature.attachments.service.handler.transaction.EndTransactionMalwareScanRunner; -import com.sap.cds.feature.attachments.service.malware.AsyncMalwareScanExecutor; -import com.sap.cds.feature.attachments.service.malware.DefaultAttachmentMalwareScanner; -import com.sap.cds.feature.attachments.service.malware.client.DefaultMalwareScanClient; -import com.sap.cds.feature.attachments.service.malware.client.httpclient.MalwareScanClientProviderFactory; -import com.sap.cds.feature.attachments.service.malware.client.mapper.DefaultMalwareClientStatusMapper; -import com.sap.cds.feature.attachments.service.malware.constants.MalwareScanConstants; import com.sap.cds.feature.attachments.utilities.LoggingMarker; -import com.sap.cds.services.environment.CdsProperties.ConnectionPool; import com.sap.cds.services.handler.EventHandler; import com.sap.cds.services.outbox.OutboxService; -import com.sap.cds.services.persistence.PersistenceService; import com.sap.cds.services.runtime.CdsRuntimeConfiguration; import com.sap.cds.services.runtime.CdsRuntimeConfigurer; -import com.sap.cds.services.utils.environment.ServiceBindingUtils; -import com.sap.cloud.environment.servicebinding.api.ServiceBinding; + /** * The class {@link Registration} is a configuration class that registers the @@ -86,13 +60,7 @@ public void eventHandlers(CdsRuntimeConfigurer configurer) { ThreadLocalDataStorage storage = new ThreadLocalDataStorage(); configurer.eventHandler(buildCreateHandler(eventFactory, storage)); -// configurer.eventHandler(buildUpdateHandler(eventFactory, attachmentsReader, outboxedAttachmentService, storage)); -// configurer.eventHandler(buildDeleteHandler(attachmentsReader, deleteContentEvent)); -// configurer.eventHandler( -// buildReadHandler(attachmentService, new EndTransactionMalwareScanRunner(null, null, malwareScanner))); -// configurer.eventHandler(new DraftPatchAttachmentsHandler(persistenceService, eventFactory)); -// configurer.eventHandler( -// new DraftCancelAttachmentsHandler(attachmentsReader, deleteContentEvent, ActiveEntityModifier::new)); + } diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java b/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java index 9bbb7e2a..b50e7d2d 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java @@ -1,5 +1,6 @@ package com.sap.cds.sdm.service; +import com.sap.cds.sdm.constants.SDMConstants; import com.sap.cds.sdm.handler.TokenHandler; import com.sap.cds.sdm.model.CmisDocument; import com.sap.cds.sdm.model.SDMCredentials; @@ -14,7 +15,7 @@ public String createDocument(CmisDocument cmisDocument, String jwtToken) throws OkHttpClient client = new OkHttpClient(); SDMCredentials sdmCredentials = TokenHandler.getSDMCredentials(); String accessToken = TokenHandler.getDIToken(jwtToken,sdmCredentials); - String sdmUrl = sdmCredentials.getUrl()+"browser/b490f13f-f02e-4ef4-9fde-dc7e9dfda59a/root"; + String sdmUrl = sdmCredentials.getUrl()+"browser/"+ SDMConstants.REPOSITORY_ID+"/root"; RequestBody requestBody = new MultipartBody.Builder() .setType(MultipartBody.FORM) From f28cbf5b6fda77e8bc8d7e49ac3bff73c5d25b65 Mon Sep 17 00:00:00 2001 From: Rashmi Date: Tue, 6 Aug 2024 09:14:12 +0530 Subject: [PATCH 018/210] Create DBQuery.java --- sdm/src/main/java/com/sap/cds/sdm/persistence/DBQuery.java | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 sdm/src/main/java/com/sap/cds/sdm/persistence/DBQuery.java diff --git a/sdm/src/main/java/com/sap/cds/sdm/persistence/DBQuery.java b/sdm/src/main/java/com/sap/cds/sdm/persistence/DBQuery.java new file mode 100644 index 00000000..43a547e4 --- /dev/null +++ b/sdm/src/main/java/com/sap/cds/sdm/persistence/DBQuery.java @@ -0,0 +1,4 @@ +package com.sap.cds.sdm.persistence; + +public class DBQuery { +} From b7fc10c5a95223bd2999b09b6a6e69fefa3f3767 Mon Sep 17 00:00:00 2001 From: Rashmi Date: Tue, 6 Aug 2024 11:20:24 +0530 Subject: [PATCH 019/210] Update pom.xml --- sdm/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdm/pom.xml b/sdm/pom.xml index 34615bcb..31c64439 100644 --- a/sdm/pom.xml +++ b/sdm/pom.xml @@ -34,7 +34,7 @@ src/test/gen 17 17 - 1.0.0-SNAPSHOT + 1.0.2 1.18.30 0.8.7 1.13 From 40ae0053ab5dfd5a16b652014726dfedfe721009 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Tue, 6 Aug 2024 13:21:33 +0530 Subject: [PATCH 020/210] Update unit.tests.yml --- .github/workflows/unit.tests.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/unit.tests.yml b/.github/workflows/unit.tests.yml index 4f47b32a..7e1f9335 100644 --- a/.github/workflows/unit.tests.yml +++ b/.github/workflows/unit.tests.yml @@ -12,7 +12,7 @@ permissions: jobs: unitTests: - runs-on: ubuntu-latest + runs-on: cap-java strategy: matrix: java-version: [17] @@ -42,4 +42,4 @@ jobs: uses: actions/upload-artifact@v3 with: name: code-coverage-report - path: target/site/jacoco/jacoco.xml \ No newline at end of file + path: target/site/jacoco/jacoco.xml From 64eaf92645e609b8ddce71f317bcc8121f48d74f Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Tue, 6 Aug 2024 16:15:17 +0530 Subject: [PATCH 021/210] Sonar Workflow --- .github/workflows/sonarqube.yml | 57 ++++++++++++++++++++++++++++++++ .github/workflows/unit.tests.yml | 2 +- 2 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/sonarqube.yml diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml new file mode 100644 index 00000000..a36e336a --- /dev/null +++ b/.github/workflows/sonarqube.yml @@ -0,0 +1,57 @@ +name: SonarQube analysis + +on: + push: + branches: + - develop + pull_request: + branches: + - develop + types: [opened, synchronize, reopened] + workflow_dispatch: + +permissions: + pull-requests: read # allows SonarQube to decorate PRs with analysis results + +jobs: + build: + runs-on: cap-java + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + + - name: Set up JDK 17 + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'temurin' + cache: maven + + - name: Install dependencies and run tests + run: | + mvn clean install + + - name: Analyze with SonarQube + uses: sonarsource/sonarqube-scan-action@master + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} + with: + # Additional arguments for the sonarcloud scanner + args: | + -Dsonar.projectKey=cap-java-sdm + -Dsonar.sources=sdm/src/main/java + -Dsonar.java.binaries=target/classes + -Dsonar.junit.reportPaths=target/surefire-reports + -Dsonar.jacoco.reportPaths=target/jacoco.exec + -Dsonar.inclusions=**/*.java + -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb + -Dsonar.java.file.suffixes=.java + + - name: Quality Gate Check + uses: sonarsource/sonarqube-quality-gate-action@master + timeout-minutes: 5 + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/unit.tests.yml b/.github/workflows/unit.tests.yml index 7e1f9335..c8fcde39 100644 --- a/.github/workflows/unit.tests.yml +++ b/.github/workflows/unit.tests.yml @@ -21,7 +21,7 @@ jobs: uses: actions/checkout@v4 - name: Set up JDK ${{ matrix.java-version }} - uses: actions/setup-java@v3 + uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: ${{ matrix.java-version }} From 774d80bd6c8fa9c74833133b7b167165dc4e7d6a Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Wed, 7 Aug 2024 10:27:41 +0530 Subject: [PATCH 022/210] Update runner to github-hosted runner --- .github/workflows/sonarqube.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index a36e336a..ae519786 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -15,7 +15,7 @@ permissions: jobs: build: - runs-on: cap-java + runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 @@ -29,9 +29,9 @@ jobs: distribution: 'temurin' cache: maven - - name: Install dependencies and run tests - run: | - mvn clean install + # - name: Install dependencies and run tests + # run: | + # mvn clean install - name: Analyze with SonarQube uses: sonarsource/sonarqube-scan-action@master From cc896cd8cac6f7f831f28d8aed4408ff8e22f9e0 Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Wed, 7 Aug 2024 10:57:17 +0530 Subject: [PATCH 023/210] Switch to SonarQube Scanner CLI to avoid Docker CLI --- .github/workflows/sonarqube.yml | 55 +++++++++++++++++++-------------- 1 file changed, 31 insertions(+), 24 deletions(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index ae519786..87c99ea8 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -11,16 +11,17 @@ on: workflow_dispatch: permissions: - pull-requests: read # allows SonarQube to decorate PRs with analysis results + pull-requests: read # allows SonarQube to decorate PRs with analysis results jobs: build: - runs-on: ubuntu-latest + runs-on: cap-java + steps: - name: Checkout code uses: actions/checkout@v4 with: - fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis + fetch-depth: 0 # Ensure shallow clones are disabled for better analysis relevancy - name: Set up JDK 17 uses: actions/setup-java@v4 @@ -28,30 +29,36 @@ jobs: java-version: '17' distribution: 'temurin' cache: maven - - # - name: Install dependencies and run tests - # run: | - # mvn clean install - - name: Analyze with SonarQube - uses: sonarsource/sonarqube-scan-action@master - env: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} - with: - # Additional arguments for the sonarcloud scanner - args: | - -Dsonar.projectKey=cap-java-sdm - -Dsonar.sources=sdm/src/main/java - -Dsonar.java.binaries=target/classes - -Dsonar.junit.reportPaths=target/surefire-reports - -Dsonar.jacoco.reportPaths=target/jacoco.exec - -Dsonar.inclusions=**/*.java - -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb - -Dsonar.java.file.suffixes=.java + - name: Install dependencies and run tests + run: | + mvn clean install + + - name: Install SonarQube Scanner + run: | + curl -sSLo sonar-scanner-cli.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.7.0.2747-linux.zip + unzip sonar-scanner-cli.zip + sudo mv sonar-scanner-4.7.0.2747-linux /opt/sonar-scanner + sudo ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/local/bin/sonar-scanner + + - name: Run SonarQube analysis + run: | + sonar-scanner \ + -Dsonar.projectKey=cap-java-sdm \ + -Dsonar.sources=sdm/src/main/java \ + -Dsonar.java.binaries=target/classes \ + -Dsonar.junit.reportPaths=target/surefire-reports \ + -Dsonar.jacoco.reportPaths=target/jacoco.exec \ + -Dsonar.inclusions=**/*.java \ + -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb \ + -Dsonar.java.file.suffixes=.java \ + -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ + -Dsonar.login=${{ secrets.SONAR_TOKEN }} - name: Quality Gate Check + id: sonarqube-quality-gate uses: sonarsource/sonarqube-quality-gate-action@master - timeout-minutes: 5 + with: + sonar_host_url: ${{ secrets.SONAR_HOST_URL }} env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} \ No newline at end of file From a3cdc18de85fde372aee7ef38da751ba806924a8 Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Wed, 7 Aug 2024 11:03:52 +0530 Subject: [PATCH 024/210] skip UTs --- .github/workflows/sonarqube.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 87c99ea8..9c78e827 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -32,7 +32,7 @@ jobs: - name: Install dependencies and run tests run: | - mvn clean install + mvn install -DskipTests - name: Install SonarQube Scanner run: | From d4566dc90edb5cdb60d2c5c551a0ed75695ac61c Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Wed, 7 Aug 2024 11:07:56 +0530 Subject: [PATCH 025/210] path correction --- .github/workflows/sonarqube.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 9c78e827..b7464118 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -46,9 +46,9 @@ jobs: sonar-scanner \ -Dsonar.projectKey=cap-java-sdm \ -Dsonar.sources=sdm/src/main/java \ - -Dsonar.java.binaries=target/classes \ - -Dsonar.junit.reportPaths=target/surefire-reports \ - -Dsonar.jacoco.reportPaths=target/jacoco.exec \ + -Dsonar.java.binaries=sdm/target/classes \ + -Dsonar.junit.reportPaths=sdm/target/surefire-reports \ + -Dsonar.jacoco.reportPaths=sdm/target/jacoco.exec \ -Dsonar.inclusions=**/*.java \ -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb \ -Dsonar.java.file.suffixes=.java \ From 5f83aa06aaa031c624f66066fc0b5bebb369bb53 Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Wed, 7 Aug 2024 11:14:20 +0530 Subject: [PATCH 026/210] Add conditional symlink creation --- .github/workflows/sonarqube.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index b7464118..27b4dc4c 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -36,10 +36,12 @@ jobs: - name: Install SonarQube Scanner run: | - curl -sSLo sonar-scanner-cli.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.7.0.2747-linux.zip - unzip sonar-scanner-cli.zip - sudo mv sonar-scanner-4.7.0.2747-linux /opt/sonar-scanner - sudo ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/local/bin/sonar-scanner + if [ ! -L /usr/local/bin/sonar-scanner ]; then + curl -sSLo sonar-scanner-cli.zip https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.7.0.2747-linux.zip + unzip sonar-scanner-cli.zip + sudo mv sonar-scanner-4.7.0.2747-linux /opt/sonar-scanner + sudo ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/local/bin/sonar-scanner + fi - name: Run SonarQube analysis run: | From 1764c2592a74598e4f5cce224719ffa5c76aa6d4 Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Wed, 7 Aug 2024 14:30:58 +0530 Subject: [PATCH 027/210] remove unit-tests related configurations from sonar --- .github/workflows/sonarqube.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 27b4dc4c..9c8cc110 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -32,7 +32,7 @@ jobs: - name: Install dependencies and run tests run: | - mvn install -DskipTests + mvn clean install -DskipTests - name: Install SonarQube Scanner run: | @@ -49,8 +49,6 @@ jobs: -Dsonar.projectKey=cap-java-sdm \ -Dsonar.sources=sdm/src/main/java \ -Dsonar.java.binaries=sdm/target/classes \ - -Dsonar.junit.reportPaths=sdm/target/surefire-reports \ - -Dsonar.jacoco.reportPaths=sdm/target/jacoco.exec \ -Dsonar.inclusions=**/*.java \ -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb \ -Dsonar.java.file.suffixes=.java \ From d3697c35144c8bbb66b4a6b2cb461fac4424f92e Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Wed, 7 Aug 2024 14:50:28 +0530 Subject: [PATCH 028/210] add java.libraries parameter in sonar config --- .github/workflows/sonarqube.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 9c8cc110..8456653e 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -49,6 +49,7 @@ jobs: -Dsonar.projectKey=cap-java-sdm \ -Dsonar.sources=sdm/src/main/java \ -Dsonar.java.binaries=sdm/target/classes \ + -Dsonar.java.libraries=sdm/target/*.jar \ -Dsonar.inclusions=**/*.java \ -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb \ -Dsonar.java.file.suffixes=.java \ From bc4980db7c063686f195e7509ed9ab1f5321f021 Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Wed, 7 Aug 2024 16:50:03 +0530 Subject: [PATCH 029/210] Test sonar with reduced codeCoverage --- .github/workflows/sonarqube.yml | 9 ++++++--- sdm/pom.xml | 8 ++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 8456653e..7d3ae848 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -30,9 +30,9 @@ jobs: distribution: 'temurin' cache: maven - - name: Install dependencies and run tests + - name: Install dependencies run: | - mvn clean install -DskipTests + mvn clean install - name: Install SonarQube Scanner run: | @@ -49,12 +49,15 @@ jobs: -Dsonar.projectKey=cap-java-sdm \ -Dsonar.sources=sdm/src/main/java \ -Dsonar.java.binaries=sdm/target/classes \ - -Dsonar.java.libraries=sdm/target/*.jar \ + -Dsonar.java.libraries=sdm/target/sdm.jar \ + -Dsonar.junit.reportPaths=sdm/target/surefire-reports \ + -Dsonar.coverage.jacoco.xmlReportPaths=sdm/target/site/jacoco/jacoco.xml \ -Dsonar.inclusions=**/*.java \ -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb \ -Dsonar.java.file.suffixes=.java \ -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ -Dsonar.login=${{ secrets.SONAR_TOKEN }} + -Dsonar.verbose=true # Increase verbosity for debugging - name: Quality Gate Check id: sonarqube-quality-gate diff --git a/sdm/pom.xml b/sdm/pom.xml index 58353ffa..047f2326 100644 --- a/sdm/pom.xml +++ b/sdm/pom.xml @@ -222,22 +222,22 @@ INSTRUCTION COVEREDRATIO - 0.90 + 0.00 BRANCH COVEREDRATIO - 0.90 + 0.00 COMPLEXITY COVEREDRATIO - 0.90 + 0.00 CLASS MISSEDCOUNT - 0 + 5 From 12c2ca21c50712683dd3db2f4b746cc46bc0398c Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:13:25 +0530 Subject: [PATCH 030/210] Update sonarqube.yml --- .github/workflows/sonarqube.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 7d3ae848..0cbc13f4 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -58,6 +58,9 @@ jobs: -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ -Dsonar.login=${{ secrets.SONAR_TOKEN }} -Dsonar.verbose=true # Increase verbosity for debugging + -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} + -Dsonar.pullrequest.branch=${{ github.head_ref }} + -Dsonar.pullrequest.base=${{ github.base_ref }} - name: Quality Gate Check id: sonarqube-quality-gate @@ -65,4 +68,4 @@ jobs: with: sonar_host_url: ${{ secrets.SONAR_HOST_URL }} env: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} \ No newline at end of file + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} From a78acf20af739b704d60cd2bc8e69d1e1188b60e Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:15:16 +0530 Subject: [PATCH 031/210] Update sonarqube.yml --- .github/workflows/sonarqube.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 0cbc13f4..87cbacce 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -57,7 +57,7 @@ jobs: -Dsonar.java.file.suffixes=.java \ -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ -Dsonar.login=${{ secrets.SONAR_TOKEN }} - -Dsonar.verbose=true # Increase verbosity for debugging + -Dsonar.verbose=false # Increase verbosity for debugging -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} -Dsonar.pullrequest.branch=${{ github.head_ref }} -Dsonar.pullrequest.base=${{ github.base_ref }} From 350c6ace93e9adefe7b5425cbd1f7c542034e7c4 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:21:07 +0530 Subject: [PATCH 032/210] Update sonarqube.yml --- .github/workflows/sonarqube.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 87cbacce..867a7ca4 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -57,7 +57,6 @@ jobs: -Dsonar.java.file.suffixes=.java \ -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ -Dsonar.login=${{ secrets.SONAR_TOKEN }} - -Dsonar.verbose=false # Increase verbosity for debugging -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} -Dsonar.pullrequest.branch=${{ github.head_ref }} -Dsonar.pullrequest.base=${{ github.base_ref }} From b7bb70aec22198968ef1ead044bc50b2d7876ec6 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:28:20 +0530 Subject: [PATCH 033/210] Update sonarqube.yml --- .github/workflows/sonarqube.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 867a7ca4..79281789 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -42,10 +42,14 @@ jobs: sudo mv sonar-scanner-4.7.0.2747-linux /opt/sonar-scanner sudo ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/local/bin/sonar-scanner fi - - - name: Run SonarQube analysis - run: | - sonar-scanner \ + - name: Analyze with SonarQube + uses: sonarsource/sonarqube-scan-action@master + env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} + with: + # Additional arguments for the sonarcloud scanner + args: -Dsonar.projectKey=cap-java-sdm \ -Dsonar.sources=sdm/src/main/java \ -Dsonar.java.binaries=sdm/target/classes \ @@ -55,11 +59,7 @@ jobs: -Dsonar.inclusions=**/*.java \ -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb \ -Dsonar.java.file.suffixes=.java \ - -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ - -Dsonar.login=${{ secrets.SONAR_TOKEN }} - -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} - -Dsonar.pullrequest.branch=${{ github.head_ref }} - -Dsonar.pullrequest.base=${{ github.base_ref }} + -Dsonar.verbose=false - name: Quality Gate Check id: sonarqube-quality-gate From 6336bdb12e95207b6e5c7029910ae5c47ca4d7e9 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:35:01 +0530 Subject: [PATCH 034/210] Update sonarqube.yml --- .github/workflows/sonarqube.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 79281789..8e3c5fcc 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -42,14 +42,10 @@ jobs: sudo mv sonar-scanner-4.7.0.2747-linux /opt/sonar-scanner sudo ln -s /opt/sonar-scanner/bin/sonar-scanner /usr/local/bin/sonar-scanner fi - - name: Analyze with SonarQube - uses: sonarsource/sonarqube-scan-action@master - env: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} - SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} - with: - # Additional arguments for the sonarcloud scanner - args: + + - name: Run SonarQube analysis + run: | + sonar-scanner \ -Dsonar.projectKey=cap-java-sdm \ -Dsonar.sources=sdm/src/main/java \ -Dsonar.java.binaries=sdm/target/classes \ @@ -59,7 +55,9 @@ jobs: -Dsonar.inclusions=**/*.java \ -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb \ -Dsonar.java.file.suffixes=.java \ - -Dsonar.verbose=false + -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ + -Dsonar.login=${{ secrets.SONAR_TOKEN }} + -Dsonar.verbose=false # Increase verbosity for debugging - name: Quality Gate Check id: sonarqube-quality-gate From 519bfe4a274efb2dd4a4ad3162762cf2c6699a8b Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:38:27 +0530 Subject: [PATCH 035/210] Update sonarqube.yml --- .github/workflows/sonarqube.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 8e3c5fcc..6f18fe1b 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -57,7 +57,7 @@ jobs: -Dsonar.java.file.suffixes=.java \ -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ -Dsonar.login=${{ secrets.SONAR_TOKEN }} - -Dsonar.verbose=false # Increase verbosity for debugging + -Dsonar.verbose=true # Increase verbosity for debugging - name: Quality Gate Check id: sonarqube-quality-gate From 570736ea6dd7b197902db04e0aeba94deb54bb76 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:42:16 +0530 Subject: [PATCH 036/210] Update sonarqube.yml --- .github/workflows/sonarqube.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 6f18fe1b..51f49cf7 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -57,7 +57,7 @@ jobs: -Dsonar.java.file.suffixes=.java \ -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ -Dsonar.login=${{ secrets.SONAR_TOKEN }} - -Dsonar.verbose=true # Increase verbosity for debugging + - name: Quality Gate Check id: sonarqube-quality-gate From 807edda1588c74bbd361367dd0a16bd0da491c16 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:47:58 +0530 Subject: [PATCH 037/210] Update sonarqube.yml --- .github/workflows/sonarqube.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 51f49cf7..4d385839 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -32,7 +32,7 @@ jobs: - name: Install dependencies run: | - mvn clean install + mvn clean install -DskipTests - name: Install SonarQube Scanner run: | From 3f3a13653ea0da8d784636ce82b46bbfcf19da77 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 7 Aug 2024 18:49:40 +0530 Subject: [PATCH 038/210] Update pom.xml --- sdm/pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sdm/pom.xml b/sdm/pom.xml index 047f2326..58353ffa 100644 --- a/sdm/pom.xml +++ b/sdm/pom.xml @@ -222,22 +222,22 @@ INSTRUCTION COVEREDRATIO - 0.00 + 0.90 BRANCH COVEREDRATIO - 0.00 + 0.90 COMPLEXITY COVEREDRATIO - 0.00 + 0.90 CLASS MISSEDCOUNT - 5 + 0 From 714c7bcedf736856f6852157a8917097458afcbe Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Wed, 7 Aug 2024 20:03:11 +0530 Subject: [PATCH 039/210] Update sonarscan job name --- .github/workflows/sonarqube.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 4d385839..100c911a 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -14,7 +14,7 @@ permissions: pull-requests: read # allows SonarQube to decorate PRs with analysis results jobs: - build: + sonar-scan: runs-on: cap-java steps: From b8f06903f65ad9b0bd26e7287fd7192343329dcf Mon Sep 17 00:00:00 2001 From: "Yashmeet ." Date: Wed, 7 Aug 2024 20:30:11 +0530 Subject: [PATCH 040/210] Update sonar.yml to distinguish between pull_request trigger & manual trigger of workflow --- .github/workflows/sonarqube.yml | 51 ++++++++++++++++++++++----------- 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/.github/workflows/sonarqube.yml b/.github/workflows/sonarqube.yml index 100c911a..5f8a0a5f 100644 --- a/.github/workflows/sonarqube.yml +++ b/.github/workflows/sonarqube.yml @@ -1,4 +1,4 @@ -name: SonarQube analysis +name: SonarQube Analysis on: push: @@ -11,7 +11,7 @@ on: workflow_dispatch: permissions: - pull-requests: read # allows SonarQube to decorate PRs with analysis results + pull-requests: read # Allows SonarQube to decorate PRs with analysis results jobs: sonar-scan: @@ -32,7 +32,7 @@ jobs: - name: Install dependencies run: | - mvn clean install -DskipTests + mvn clean install -DskipTests - name: Install SonarQube Scanner run: | @@ -45,19 +45,36 @@ jobs: - name: Run SonarQube analysis run: | - sonar-scanner \ - -Dsonar.projectKey=cap-java-sdm \ - -Dsonar.sources=sdm/src/main/java \ - -Dsonar.java.binaries=sdm/target/classes \ - -Dsonar.java.libraries=sdm/target/sdm.jar \ - -Dsonar.junit.reportPaths=sdm/target/surefire-reports \ - -Dsonar.coverage.jacoco.xmlReportPaths=sdm/target/site/jacoco/jacoco.xml \ - -Dsonar.inclusions=**/*.java \ - -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb \ - -Dsonar.java.file.suffixes=.java \ - -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ - -Dsonar.login=${{ secrets.SONAR_TOKEN }} - + if [ "${{ github.event_name }}" == "pull_request" ]; then + sonar-scanner \ + -Dsonar.projectKey=cap-java-sdm \ + -Dsonar.sources=sdm/src/main/java \ + -Dsonar.java.binaries=sdm/target/classes \ + -Dsonar.java.libraries=sdm/target/sdm.jar \ + -Dsonar.junit.reportPaths=sdm/target/surefire-reports \ + -Dsonar.coverage.jacoco.xmlReportPaths=sdm/target/site/jacoco/jacoco.xml \ + -Dsonar.inclusions=**/*.java \ + -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb \ + -Dsonar.java.file.suffixes=.java \ + -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ + -Dsonar.login=${{ secrets.SONAR_TOKEN }} \ + -Dsonar.pullrequest.key=${{ github.event.pull_request.number }} \ + -Dsonar.pullrequest.branch=${{ github.head_ref }} \ + -Dsonar.pullrequest.base=${{ github.base_ref }} + else + sonar-scanner \ + -Dsonar.projectKey=cap-java-sdm \ + -Dsonar.sources=sdm/src/main/java \ + -Dsonar.java.binaries=sdm/target/classes \ + -Dsonar.java.libraries=sdm/target/sdm.jar \ + -Dsonar.junit.reportPaths=sdm/target/surefire-reports \ + -Dsonar.coverage.jacoco.xmlReportPaths=sdm/target/site/jacoco/jacoco.xml \ + -Dsonar.inclusions=**/*.java \ + -Dsonar.exclusions=**/target/**,**/node_modules/**,sdm/src/main/test/**,cap-notebook/*.capnb \ + -Dsonar.java.file.suffixes=.java \ + -Dsonar.host.url=${{ secrets.SONAR_HOST_URL }} \ + -Dsonar.login=${{ secrets.SONAR_TOKEN }} + fi - name: Quality Gate Check id: sonarqube-quality-gate @@ -65,4 +82,4 @@ jobs: with: sonar_host_url: ${{ secrets.SONAR_HOST_URL }} env: - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} \ No newline at end of file From 3e582c99fb78f4e62699a3aa8fee68ed18e99b94 Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 8 Aug 2024 10:32:48 +0530 Subject: [PATCH 041/210] indenta --- .idea/workspace.xml | 73 +++++++++++++++++++ .../com/sap/cds/sdm/handler/TokenHandler.java | 6 +- 2 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 .idea/workspace.xml diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 00000000..64013671 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + { + "keyToString": { + "RunOnceActivity.ShowReadmeOnStart": "true", + "last_opened_file_path": "/Users/I324829/Desktop/CAP/sdm", + "project.structure.last.edited": "Libraries", + "project.structure.proportion": "0.15", + "project.structure.side.proportion": "0.2" + } +} + + + + + + + + + + + + + + + + + 1721305476994 + + + + \ No newline at end of file diff --git a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java index cd3a8297..88e9c889 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java @@ -109,7 +109,7 @@ public static String getAccessToken(SDMCredentials sdmCredentials) throws IOExc } return cachedToken; } - public static String getDIToken(String token,SDMCredentials sdmCredentials) throws OAuth2ServiceException { + public static String getDIToken(String token, SDMCredentials sdmCredentials) throws OAuth2ServiceException { JsonObject payloadObj = getTokenFields(token); String email = payloadObj.get("email").getAsString(); String token_expiry = payloadObj.get("exp").getAsString(); @@ -123,10 +123,10 @@ public static String getDIToken(String token,SDMCredentials sdmCredentials) thro return cachedToken; } - private static String generateDITokenFromTokenExchange(String token,SDMCredentials sdmCredentials,JsonObject payloadObj) + private static String generateDITokenFromTokenExchange(String token, SDMCredentials sdmCredentials, JsonObject payloadObj) throws OAuth2ServiceException { String cachedToken =null; - CloseableHttpClient httpClient = null; + CloseableHttpClient httpClient = null; try { httpClient = HttpClients.createDefault(); if (sdmCredentials.getClientId() == null) { From 6bdf200eb8b696c4cb2b39cc6d0560a0915afc0f Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 8 Aug 2024 10:34:30 +0530 Subject: [PATCH 042/210] Delete workspace.xml --- .idea/workspace.xml | 73 --------------------------------------------- 1 file changed, 73 deletions(-) delete mode 100644 .idea/workspace.xml diff --git a/.idea/workspace.xml b/.idea/workspace.xml deleted file mode 100644 index 64013671..00000000 --- a/.idea/workspace.xml +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - { - "keyToString": { - "RunOnceActivity.ShowReadmeOnStart": "true", - "last_opened_file_path": "/Users/I324829/Desktop/CAP/sdm", - "project.structure.last.edited": "Libraries", - "project.structure.proportion": "0.15", - "project.structure.side.proportion": "0.2" - } -} - - - - - - - - - - - - - - - - - 1721305476994 - - - - \ No newline at end of file From a49275ca7b5592df283cf01dbf22d249ef7f0ace Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 8 Aug 2024 10:43:35 +0530 Subject: [PATCH 043/210] spotless check --- .../com/sap/cds/sdm/caching/CacheConfig.java | 88 +++--- .../cds/sdm/configuration/Registration.java | 148 ++++----- .../sap/cds/sdm/constants/SDMConstants.java | 8 +- .../com/sap/cds/sdm/handler/TokenHandler.java | 298 +++++++++--------- .../SDMCreateEventHandler.java | 130 ++++---- .../com/sap/cds/sdm/model/CmisDocument.java | 8 +- .../com/sap/cds/sdm/persistence/DBQuery.java | 3 +- .../sap/cds/sdm/service/RegisterService.java | 2 +- .../sdm/service/SDMAttachmentsService.java | 128 ++++---- .../com/sap/cds/sdm/service/SDMService.java | 15 +- .../sap/cds/sdm/service/SDMServiceImpl.java | 97 +++--- .../handler/SDMAttachmentsServiceHandler.java | 52 ++- .../java/com/sap/cds/sdm/util/HelperUtil.java | 7 +- 13 files changed, 487 insertions(+), 497 deletions(-) diff --git a/sdm/src/main/java/com/sap/cds/sdm/caching/CacheConfig.java b/sdm/src/main/java/com/sap/cds/sdm/caching/CacheConfig.java index a78a951c..73f063ea 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/caching/CacheConfig.java +++ b/sdm/src/main/java/com/sap/cds/sdm/caching/CacheConfig.java @@ -1,60 +1,56 @@ package com.sap.cds.sdm.caching; import java.util.concurrent.TimeUnit; - -import com.sap.cds.sdm.configuration.Registration; import org.ehcache.Cache; import org.ehcache.CacheManager; import org.ehcache.config.builders.*; import org.ehcache.expiry.Duration; import org.ehcache.expiry.Expirations; -import org.ehcache.expiry.Duration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.concurrent.TimeUnit; - - public class CacheConfig { - private static CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder().build(); - private static Cache userTokenCache; - private static Cache clientCredentialsTokenCache; - private static final int HEAP_SIZE = 1000; - private static final int USER_TOKEN_EXPIRY = 660; - private static final int ACCESS_TOKEN_EXPIRY = 660; - private static final Logger logger = LoggerFactory.getLogger(CacheConfig.class); - private CacheConfig() { - throw new IllegalStateException("CacheConfig class"); - } - - public static void initializeCache() { - // Expiring the cache after 11 hours - logger.info("Cache for user token and access token initialized"); - cacheManager.init(); - - userTokenCache = - cacheManager.createCache( - "userToken", - CacheConfigurationBuilder.newCacheConfigurationBuilder( - CacheKey.class, String.class, ResourcePoolsBuilder.heap(HEAP_SIZE)) - .withExpiry( - Expirations.timeToLiveExpiration( - new Duration(USER_TOKEN_EXPIRY, TimeUnit.MINUTES)))); - clientCredentialsTokenCache = - cacheManager.createCache( - "clientCredentialsToken", - CacheConfigurationBuilder.newCacheConfigurationBuilder( - String.class, String.class, ResourcePoolsBuilder.heap(HEAP_SIZE)) - .withExpiry( - Expirations.timeToLiveExpiration( - new Duration(ACCESS_TOKEN_EXPIRY, TimeUnit.MINUTES)))); - } - - public static Cache getUserTokenCache() { - return userTokenCache; - } - public static Cache getClientCredentialsTokenCache() { - return clientCredentialsTokenCache; - } + private static CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder().build(); + private static Cache userTokenCache; + private static Cache clientCredentialsTokenCache; + private static final int HEAP_SIZE = 1000; + private static final int USER_TOKEN_EXPIRY = 660; + private static final int ACCESS_TOKEN_EXPIRY = 660; + private static final Logger logger = LoggerFactory.getLogger(CacheConfig.class); + + private CacheConfig() { + throw new IllegalStateException("CacheConfig class"); + } + + public static void initializeCache() { + // Expiring the cache after 11 hours + logger.info("Cache for user token and access token initialized"); + cacheManager.init(); + + userTokenCache = + cacheManager.createCache( + "userToken", + CacheConfigurationBuilder.newCacheConfigurationBuilder( + CacheKey.class, String.class, ResourcePoolsBuilder.heap(HEAP_SIZE)) + .withExpiry( + Expirations.timeToLiveExpiration( + new Duration(USER_TOKEN_EXPIRY, TimeUnit.MINUTES)))); + clientCredentialsTokenCache = + cacheManager.createCache( + "clientCredentialsToken", + CacheConfigurationBuilder.newCacheConfigurationBuilder( + String.class, String.class, ResourcePoolsBuilder.heap(HEAP_SIZE)) + .withExpiry( + Expirations.timeToLiveExpiration( + new Duration(ACCESS_TOKEN_EXPIRY, TimeUnit.MINUTES)))); + } + + public static Cache getUserTokenCache() { + return userTokenCache; + } + + public static Cache getClientCredentialsTokenCache() { + return clientCredentialsTokenCache; + } } diff --git a/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java b/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java index f3b75bbe..5fa463ff 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java +++ b/sdm/src/main/java/com/sap/cds/sdm/configuration/Registration.java @@ -1,15 +1,5 @@ - package com.sap.cds.sdm.configuration; - -import com.sap.cds.sdm.caching.CacheConfig; -import com.sap.cds.sdm.handler.applicationservice.SDMCreateEventHandler; -import com.sap.cds.sdm.service.SDMAttachmentsService; -import com.sap.cds.sdm.service.handler.SDMAttachmentsServiceHandler; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; -import org.slf4j.Marker; - import com.sap.cds.feature.attachments.handler.applicationservice.helper.ThreadLocalDataStorage; import com.sap.cds.feature.attachments.handler.applicationservice.processor.modifyevents.CreateAttachmentEvent; import com.sap.cds.feature.attachments.handler.applicationservice.processor.modifyevents.DefaultModifyAttachmentEventFactory; @@ -20,76 +10,92 @@ import com.sap.cds.feature.attachments.handler.applicationservice.processor.modifyevents.UpdateAttachmentEvent; import com.sap.cds.feature.attachments.handler.applicationservice.processor.transaction.CreationChangeSetListener; import com.sap.cds.feature.attachments.handler.applicationservice.processor.transaction.ListenerProvider; - import com.sap.cds.feature.attachments.service.AttachmentService; import com.sap.cds.feature.attachments.utilities.LoggingMarker; +import com.sap.cds.sdm.caching.CacheConfig; +import com.sap.cds.sdm.handler.applicationservice.SDMCreateEventHandler; +import com.sap.cds.sdm.service.SDMAttachmentsService; +import com.sap.cds.sdm.service.handler.SDMAttachmentsServiceHandler; import com.sap.cds.services.handler.EventHandler; import com.sap.cds.services.outbox.OutboxService; import com.sap.cds.services.runtime.CdsRuntimeConfiguration; import com.sap.cds.services.runtime.CdsRuntimeConfigurer; - +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.slf4j.Marker; /** - * The class {@link Registration} is a configuration class that registers the - * services and event handlers for the attachments feature. + * The class {@link Registration} is a configuration class that registers the services and event + * handlers for the attachments feature. */ public class Registration implements CdsRuntimeConfiguration { - private static final Logger logger = LoggerFactory.getLogger(Registration.class); - private static final Marker marker = LoggingMarker.ATTACHMENT_SERVICE_REGISTRATION.getMarker(); - - @Override - public void services(CdsRuntimeConfigurer configurer) { - configurer.service(buildAttachmentService()); - } - - @Override - public void eventHandlers(CdsRuntimeConfigurer configurer) { - logger.info(marker, "Registering event handler for attachment service"); - CacheConfig.initializeCache(); - var attachmentService = configurer.getCdsRuntime().getServiceCatalog().getService(AttachmentService.class, - AttachmentService.DEFAULT_NAME); - var outbox = configurer.getCdsRuntime().getServiceCatalog().getService(OutboxService.class, - OutboxService.PERSISTENT_UNORDERED_NAME);//need to check if required - var outboxedAttachmentService = outbox.outboxed(attachmentService); - - configurer.eventHandler(new SDMAttachmentsServiceHandler()); - - var deleteContentEvent = new MarkAsDeletedAttachmentEvent(outboxedAttachmentService); - var eventFactory = buildAttachmentEventFactory(attachmentService, deleteContentEvent, outboxedAttachmentService); - ThreadLocalDataStorage storage = new ThreadLocalDataStorage(); - - configurer.eventHandler(buildCreateHandler(eventFactory, storage)); - - } - - - - private AttachmentService buildAttachmentService() { - logger.info(marker, "Registering SDM attachment service"); - - return new SDMAttachmentsService(); - } - - protected DefaultModifyAttachmentEventFactory buildAttachmentEventFactory(AttachmentService attachmentService, - ModifyAttachmentEvent deleteContentEvent, AttachmentService outboxedAttachmentService) { - var creationChangeSetListener = createCreationFailedListener(outboxedAttachmentService); - var createAttachmentEvent = new CreateAttachmentEvent(attachmentService, creationChangeSetListener); - var updateAttachmentEvent = new UpdateAttachmentEvent(createAttachmentEvent, deleteContentEvent); - - var doNothingAttachmentEvent = new DoNothingAttachmentEvent(); - return new DefaultModifyAttachmentEventFactory(createAttachmentEvent, updateAttachmentEvent, deleteContentEvent, - doNothingAttachmentEvent); - } - - private ListenerProvider createCreationFailedListener(AttachmentService outboxedAttachmentService) { - return (contentId, cdsRuntime) -> new CreationChangeSetListener(contentId, cdsRuntime, outboxedAttachmentService); - } - - protected EventHandler buildCreateHandler(ModifyAttachmentEventFactory factory, ThreadLocalDataStorage storage) { - return new SDMCreateEventHandler(factory, storage); - } - - - + private static final Logger logger = LoggerFactory.getLogger(Registration.class); + private static final Marker marker = LoggingMarker.ATTACHMENT_SERVICE_REGISTRATION.getMarker(); + + @Override + public void services(CdsRuntimeConfigurer configurer) { + configurer.service(buildAttachmentService()); + } + + @Override + public void eventHandlers(CdsRuntimeConfigurer configurer) { + logger.info(marker, "Registering event handler for attachment service"); + CacheConfig.initializeCache(); + var attachmentService = + configurer + .getCdsRuntime() + .getServiceCatalog() + .getService(AttachmentService.class, AttachmentService.DEFAULT_NAME); + var outbox = + configurer + .getCdsRuntime() + .getServiceCatalog() + .getService( + OutboxService.class, + OutboxService.PERSISTENT_UNORDERED_NAME); // need to check if required + var outboxedAttachmentService = outbox.outboxed(attachmentService); + + configurer.eventHandler(new SDMAttachmentsServiceHandler()); + + var deleteContentEvent = new MarkAsDeletedAttachmentEvent(outboxedAttachmentService); + var eventFactory = + buildAttachmentEventFactory( + attachmentService, deleteContentEvent, outboxedAttachmentService); + ThreadLocalDataStorage storage = new ThreadLocalDataStorage(); + + configurer.eventHandler(buildCreateHandler(eventFactory, storage)); + } + + private AttachmentService buildAttachmentService() { + logger.info(marker, "Registering SDM attachment service"); + + return new SDMAttachmentsService(); + } + + protected DefaultModifyAttachmentEventFactory buildAttachmentEventFactory( + AttachmentService attachmentService, + ModifyAttachmentEvent deleteContentEvent, + AttachmentService outboxedAttachmentService) { + var creationChangeSetListener = createCreationFailedListener(outboxedAttachmentService); + var createAttachmentEvent = + new CreateAttachmentEvent(attachmentService, creationChangeSetListener); + var updateAttachmentEvent = + new UpdateAttachmentEvent(createAttachmentEvent, deleteContentEvent); + + var doNothingAttachmentEvent = new DoNothingAttachmentEvent(); + return new DefaultModifyAttachmentEventFactory( + createAttachmentEvent, updateAttachmentEvent, deleteContentEvent, doNothingAttachmentEvent); + } + + private ListenerProvider createCreationFailedListener( + AttachmentService outboxedAttachmentService) { + return (contentId, cdsRuntime) -> + new CreationChangeSetListener(contentId, cdsRuntime, outboxedAttachmentService); + } + + protected EventHandler buildCreateHandler( + ModifyAttachmentEventFactory factory, ThreadLocalDataStorage storage) { + return new SDMCreateEventHandler(factory, storage); + } } diff --git a/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java b/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java index ab04aa6b..5be3b0ca 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java +++ b/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java @@ -1,8 +1,8 @@ package com.sap.cds.sdm.constants; public class SDMConstants { - public static final String REPOSITORY_ID = System.getenv("REPOSITORY_ID"); - private static final String BEARER_TOKEN = "Bearer "; - public static final String GRANT_TYPE = "grant_type"; - public static final String TENANT_ID = "X-zid"; + public static final String REPOSITORY_ID = System.getenv("REPOSITORY_ID"); + private static final String BEARER_TOKEN = "Bearer "; + public static final String GRANT_TYPE = "grant_type"; + public static final String TENANT_ID = "X-zid"; } diff --git a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java index 88e9c889..f0ecd426 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java @@ -1,5 +1,9 @@ package com.sap.cds.sdm.handler; +import static com.sap.cloud.security.xsuaa.client.OAuth2TokenServiceConstants.*; +import static com.sap.cloud.security.xsuaa.client.OAuth2TokenServiceConstants.ASSERTION; +import static java.util.Objects.requireNonNull; + import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; import com.google.gson.JsonElement; @@ -9,13 +13,20 @@ import com.sap.cds.sdm.caching.CacheKey; import com.sap.cds.sdm.constants.SDMConstants; import com.sap.cds.sdm.model.SDMCredentials; -import com.sap.cds.sdm.service.handler.SDMAttachmentsServiceHandler; import com.sap.cloud.environment.servicebinding.api.DefaultServiceBindingAccessor; import com.sap.cloud.environment.servicebinding.api.ServiceBinding; import com.sap.cloud.security.xsuaa.client.OAuth2ServiceException; import com.sap.cloud.security.xsuaa.http.HttpHeaders; import com.sap.cloud.security.xsuaa.http.MediaType; -import com.sap.cloud.security.xsuaa.util.HttpClientUtil; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.ProtocolException; +import java.net.URL; +import java.nio.charset.StandardCharsets; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; import org.apache.commons.codec.binary.Base64; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; @@ -29,87 +40,78 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.*; -import java.net.HttpURLConnection; -import java.net.ProtocolException; -import java.net.URL; -import java.nio.charset.StandardCharsets; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.stream.Collectors; - -import static com.sap.cloud.security.xsuaa.client.OAuth2TokenServiceConstants.*; -import static com.sap.cloud.security.xsuaa.client.OAuth2TokenServiceConstants.ASSERTION; -import static java.util.Objects.requireNonNull; - public class TokenHandler { - private static final Logger logger = LoggerFactory.getLogger(TokenHandler.class); - private static Map uaaCredentials; - private static Map uaa; - private static final ObjectMapper mapper = new ObjectMapper(); + private static final Logger logger = LoggerFactory.getLogger(TokenHandler.class); + private static Map uaaCredentials; + private static Map uaa; + private static final ObjectMapper mapper = new ObjectMapper(); - public static byte[] toBytes(String str) { - return requireNonNull(str).getBytes(StandardCharsets.UTF_8); - } + public static byte[] toBytes(String str) { + return requireNonNull(str).getBytes(StandardCharsets.UTF_8); + } - public static String toString(byte[] bytes) { - return new String(requireNonNull(bytes), StandardCharsets.UTF_8); - } + public static String toString(byte[] bytes) { + return new String(requireNonNull(bytes), StandardCharsets.UTF_8); + } - public static SDMCredentials getSDMCredentials() { - List allServiceBindings = DefaultServiceBindingAccessor.getInstance().getServiceBindings(); - // filter for a specific binding - ServiceBinding sdmBinding = allServiceBindings.stream() - .filter(binding -> "sdm".equalsIgnoreCase(binding.getServiceName().orElse(null))) - .findFirst() - .get(); - SDMCredentials sdmCredentials = new SDMCredentials(); - uaaCredentials = sdmBinding.getCredentials(); - uaa = (Map) uaaCredentials.get("uaa"); + public static SDMCredentials getSDMCredentials() { + List allServiceBindings = + DefaultServiceBindingAccessor.getInstance().getServiceBindings(); + // filter for a specific binding + ServiceBinding sdmBinding = + allServiceBindings.stream() + .filter(binding -> "sdm".equalsIgnoreCase(binding.getServiceName().orElse(null))) + .findFirst() + .get(); + SDMCredentials sdmCredentials = new SDMCredentials(); + uaaCredentials = sdmBinding.getCredentials(); + uaa = (Map) uaaCredentials.get("uaa"); - sdmCredentials.setBaseTokenUrl(uaa.get("url").toString()); - sdmCredentials.setUrl(sdmBinding.getCredentials().get("uri").toString()); - sdmCredentials.setClientId(uaa.get("clientid").toString()); - sdmCredentials.setClientSecret(uaa.get("clientsecret").toString()); - return sdmCredentials; + sdmCredentials.setBaseTokenUrl(uaa.get("url").toString()); + sdmCredentials.setUrl(sdmBinding.getCredentials().get("uri").toString()); + sdmCredentials.setClientId(uaa.get("clientid").toString()); + sdmCredentials.setClientSecret(uaa.get("clientsecret").toString()); + return sdmCredentials; + } + public static String getAccessToken(SDMCredentials sdmCredentials) + throws IOException, ProtocolException { + // Fetch the token from Cache if present use it else generate and store + String cachedToken = CacheConfig.getClientCredentialsTokenCache().get("clientCredentialsToken"); + if (cachedToken == null) { + String userCredentials = + sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); + String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); + String bodyParams = "grant_type=client_credentials"; + byte[] postData = toBytes(bodyParams); + String authurl = sdmCredentials.getBaseTokenUrl() + "/oauth/token"; + URL url = new URL(authurl); + HttpURLConnection conn = (HttpURLConnection) url.openConnection(); + conn.setRequestProperty("Authorization", authHeaderValue); + conn.setRequestMethod("POST"); + conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); + conn.setRequestProperty("charset", "utf-8"); + conn.setRequestProperty("Content-Length", "" + postData.length); + conn.setUseCaches(false); + conn.setDoInput(true); + conn.setDoOutput(true); + try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { + os.write(postData); + } + String resp; + try (DataInputStream is = new DataInputStream(conn.getInputStream()); + BufferedReader br = new BufferedReader(new InputStreamReader(is))) { + resp = br.lines().collect(Collectors.joining("\n")); + } + conn.disconnect(); + cachedToken = mapper.readValue(resp, JsonNode.class).get("access_token").asText(); + CacheConfig.getClientCredentialsTokenCache().put("clientCredentialsToken", cachedToken); } + return cachedToken; + } - public static String getAccessToken(SDMCredentials sdmCredentials) throws IOException, ProtocolException { - //Fetch the token from Cache if present use it else generate and store - String cachedToken = CacheConfig.getClientCredentialsTokenCache().get("clientCredentialsToken"); - if(cachedToken == null) { - String userCredentials = sdmCredentials.getClientId() + ":" + sdmCredentials.getClientSecret(); - String authHeaderValue = "Basic " + Base64.encodeBase64String(toBytes(userCredentials)); - String bodyParams = "grant_type=client_credentials"; - byte[] postData = toBytes(bodyParams); - String authurl = sdmCredentials.getBaseTokenUrl() + "/oauth/token"; - URL url = new URL(authurl); - HttpURLConnection conn = (HttpURLConnection) url.openConnection(); - conn.setRequestProperty("Authorization", authHeaderValue); - conn.setRequestMethod("POST"); - conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); - conn.setRequestProperty("charset", "utf-8"); - conn.setRequestProperty("Content-Length", "" + postData.length); - conn.setUseCaches(false); - conn.setDoInput(true); - conn.setDoOutput(true); - try (DataOutputStream os = new DataOutputStream(conn.getOutputStream())) { - os.write(postData); - } - String resp; - try (DataInputStream is = new DataInputStream(conn.getInputStream()); - BufferedReader br = new BufferedReader(new InputStreamReader(is))) { - resp = br.lines().collect(Collectors.joining("\n")); - } - conn.disconnect(); - cachedToken = mapper.readValue(resp, JsonNode.class).get("access_token").asText(); - CacheConfig.getClientCredentialsTokenCache().put("clientCredentialsToken", cachedToken); - } - return cachedToken; - } - public static String getDIToken(String token, SDMCredentials sdmCredentials) throws OAuth2ServiceException { + public static String getDIToken(String token, SDMCredentials sdmCredentials) + throws OAuth2ServiceException { JsonObject payloadObj = getTokenFields(token); String email = payloadObj.get("email").getAsString(); String token_expiry = payloadObj.get("exp").getAsString(); @@ -118,82 +120,88 @@ public static String getDIToken(String token, SDMCredentials sdmCredentials) thr cacheKey.setExpiration(token_expiry); String cachedToken = CacheConfig.getUserTokenCache().get(cacheKey); if (cachedToken == null) { - cachedToken= generateDITokenFromTokenExchange(token,sdmCredentials,payloadObj); + cachedToken = generateDITokenFromTokenExchange(token, sdmCredentials, payloadObj); } return cachedToken; -} + } - private static String generateDITokenFromTokenExchange(String token, SDMCredentials sdmCredentials, JsonObject payloadObj) - throws OAuth2ServiceException { - String cachedToken =null; - CloseableHttpClient httpClient = null; - try { - httpClient = HttpClients.createDefault(); - if (sdmCredentials.getClientId() == null) { - throw new IOException("No SDM binding found"); - } - Map parameters = fillTokenExchangeBody(token, sdmCredentials); - HttpPost httpPost = new HttpPost(sdmCredentials.getBaseTokenUrl() + "/oauth/token"); - httpPost.setHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON.value()); - httpPost.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED.value()); - httpPost.setHeader(SDMConstants.TENANT_ID, getTokenFields(token).get("zid").getAsString()); + private static String generateDITokenFromTokenExchange( + String token, SDMCredentials sdmCredentials, JsonObject payloadObj) + throws OAuth2ServiceException { + String cachedToken = null; + CloseableHttpClient httpClient = null; + try { + httpClient = HttpClients.createDefault(); + if (sdmCredentials.getClientId() == null) { + throw new IOException("No SDM binding found"); + } + Map parameters = fillTokenExchangeBody(token, sdmCredentials); + HttpPost httpPost = new HttpPost(sdmCredentials.getBaseTokenUrl() + "/oauth/token"); + httpPost.setHeader(HttpHeaders.ACCEPT, MediaType.APPLICATION_JSON.value()); + httpPost.setHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED.value()); + httpPost.setHeader(SDMConstants.TENANT_ID, getTokenFields(token).get("zid").getAsString()); - List basicNameValuePairs = - parameters.entrySet().stream() - .map(entry -> new BasicNameValuePair(entry.getKey(), entry.getValue())) - .collect(Collectors.toList()); - httpPost.setEntity(new UrlEncodedFormEntity(basicNameValuePairs)); - HttpResponse response = httpClient.execute(httpPost); - String responseBody = extractResponseBodyAsString(response); - if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { - logger.error("Error fetching token with JWT bearer : " + responseBody); - } - Map accessTokenMap = new JSONObject(responseBody).toMap(); - cachedToken = String.valueOf(accessTokenMap.get("access_token")); - String token_expiry = payloadObj.get("exp").getAsString(); - CacheKey cacheKey = new CacheKey(); - cacheKey.setEmail(payloadObj.get("email").getAsString()); - cacheKey.setExpiration(token_expiry); - CacheConfig.getUserTokenCache().put(cacheKey, cachedToken); - } catch (UnsupportedEncodingException e) { - throw new OAuth2ServiceException("Unexpected error parsing URI: " + e.getMessage()); - } catch (ClientProtocolException e) { - throw new OAuth2ServiceException( - "Unexpected error while fetching client protocol: " + e.getMessage()); - } catch (IOException e) { - logger.error("Error in POST request while fetching token with JWT bearer", e.getMessage()); - } finally { - safeClose(httpClient); - } - return cachedToken; + List basicNameValuePairs = + parameters.entrySet().stream() + .map(entry -> new BasicNameValuePair(entry.getKey(), entry.getValue())) + .collect(Collectors.toList()); + httpPost.setEntity(new UrlEncodedFormEntity(basicNameValuePairs)); + HttpResponse response = httpClient.execute(httpPost); + String responseBody = extractResponseBodyAsString(response); + if (response.getStatusLine().getStatusCode() != HttpStatus.SC_OK) { + logger.error("Error fetching token with JWT bearer : " + responseBody); + } + Map accessTokenMap = new JSONObject(responseBody).toMap(); + cachedToken = String.valueOf(accessTokenMap.get("access_token")); + String token_expiry = payloadObj.get("exp").getAsString(); + CacheKey cacheKey = new CacheKey(); + cacheKey.setEmail(payloadObj.get("email").getAsString()); + cacheKey.setExpiration(token_expiry); + CacheConfig.getUserTokenCache().put(cacheKey, cachedToken); + } catch (UnsupportedEncodingException e) { + throw new OAuth2ServiceException("Unexpected error parsing URI: " + e.getMessage()); + } catch (ClientProtocolException e) { + throw new OAuth2ServiceException( + "Unexpected error while fetching client protocol: " + e.getMessage()); + } catch (IOException e) { + logger.error("Error in POST request while fetching token with JWT bearer", e.getMessage()); + } finally { + safeClose(httpClient); } + return cachedToken; + } - public static JsonObject getTokenFields(String token) { - String[] chunks = token.split("\\."); - java.util.Base64.Decoder decoder = java.util.Base64.getUrlDecoder(); - String payload = new String(decoder.decode(chunks[1])); - JsonElement jelement = new JsonParser().parse(payload); - return jelement.getAsJsonObject(); - } - private static Map fillTokenExchangeBody(String token, SDMCredentials sdmEnv) { - Map parameters = new HashMap<>(); - parameters.put(GRANT_TYPE, GRANT_TYPE_JWT_BEARER); - parameters.put(CLIENT_ID, sdmEnv.getClientId()); - parameters.put(CLIENT_SECRET, sdmEnv.getClientSecret()); - parameters.put(ASSERTION, token); - return parameters; - } - private static String extractResponseBodyAsString(HttpResponse response) throws IOException { - return (String)(new BufferedReader(new InputStreamReader(response.getEntity().getContent()))).lines().collect(Collectors.joining(System.lineSeparator())); - } + public static JsonObject getTokenFields(String token) { + String[] chunks = token.split("\\."); + java.util.Base64.Decoder decoder = java.util.Base64.getUrlDecoder(); + String payload = new String(decoder.decode(chunks[1])); + JsonElement jelement = new JsonParser().parse(payload); + return jelement.getAsJsonObject(); + } + + private static Map fillTokenExchangeBody(String token, SDMCredentials sdmEnv) { + Map parameters = new HashMap<>(); + parameters.put(GRANT_TYPE, GRANT_TYPE_JWT_BEARER); + parameters.put(CLIENT_ID, sdmEnv.getClientId()); + parameters.put(CLIENT_SECRET, sdmEnv.getClientSecret()); + parameters.put(ASSERTION, token); + return parameters; + } + + private static String extractResponseBodyAsString(HttpResponse response) throws IOException { + return (String) + (new BufferedReader(new InputStreamReader(response.getEntity().getContent()))) + .lines() + .collect(Collectors.joining(System.lineSeparator())); + } - private static void safeClose(CloseableHttpClient httpClient) { - if (httpClient != null) { - try { - httpClient.close(); - } catch (IOException ex) { - logger.error("Failed to close httpclient " + ex.getMessage()); - } - } + private static void safeClose(CloseableHttpClient httpClient) { + if (httpClient != null) { + try { + httpClient.close(); + } catch (IOException ex) { + logger.error("Failed to close httpclient " + ex.getMessage()); + } } + } } diff --git a/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java b/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java index c598fe07..fc33ec81 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java @@ -1,7 +1,5 @@ package com.sap.cds.sdm.handler.applicationservice; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.ObjectMapper; import com.sap.cds.CdsData; import com.sap.cds.CdsDataProcessor; import com.sap.cds.feature.attachments.handler.applicationservice.helper.ModifyApplicationHandlerHelper; @@ -9,7 +7,6 @@ import com.sap.cds.feature.attachments.handler.applicationservice.helper.ThreadDataStorageReader; import com.sap.cds.feature.attachments.handler.applicationservice.processor.modifyevents.ModifyAttachmentEventFactory; import com.sap.cds.feature.attachments.handler.common.ApplicationHandlerHelper; -import com.sap.cds.feature.attachments.utilities.LoggingMarker; import com.sap.cds.reflect.CdsBaseType; import com.sap.cds.reflect.CdsEntity; import com.sap.cds.sdm.model.CmisDocument; @@ -25,81 +22,80 @@ import com.sap.cds.services.handler.annotations.HandlerOrder; import com.sap.cds.services.handler.annotations.ServiceName; import com.sap.cds.services.utils.OrderConstants; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.UUID; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ServiceName(value = "*", type = ApplicationService.class) public class SDMCreateEventHandler implements EventHandler { - private static final Logger logger = LoggerFactory.getLogger(SDMCreateEventHandler.class); - - private final ModifyAttachmentEventFactory eventFactory; - private final ThreadDataStorageReader storageReader; - private final CdsDataProcessor processor = CdsDataProcessor.create(); - - public SDMCreateEventHandler(ModifyAttachmentEventFactory eventFactory, ThreadDataStorageReader storageReader) { - this.eventFactory = eventFactory; - this.storageReader = storageReader; - } - - @Before(event = CqnService.EVENT_CREATE) - @HandlerOrder(OrderConstants.Before.CHECK_CAPABILITIES) - public void processBeforeForDraft(CdsCreateEventContext context, List data) { - ReadonlyDataContextEnhancer.enhanceReadonlyDataInContext(context, data, storageReader.get()); - } - - @Before(event = CqnService.EVENT_CREATE) - @HandlerOrder(HandlerOrder.LATE) - public void processBefore(CdsCreateEventContext context, List data) throws IOException { - doCreate(context, data); + private static final Logger logger = LoggerFactory.getLogger(SDMCreateEventHandler.class); + + private final ModifyAttachmentEventFactory eventFactory; + private final ThreadDataStorageReader storageReader; + private final CdsDataProcessor processor = CdsDataProcessor.create(); + + public SDMCreateEventHandler( + ModifyAttachmentEventFactory eventFactory, ThreadDataStorageReader storageReader) { + this.eventFactory = eventFactory; + this.storageReader = storageReader; + } + + @Before(event = CqnService.EVENT_CREATE) + @HandlerOrder(OrderConstants.Before.CHECK_CAPABILITIES) + public void processBeforeForDraft(CdsCreateEventContext context, List data) { + ReadonlyDataContextEnhancer.enhanceReadonlyDataInContext(context, data, storageReader.get()); + } + + @Before(event = CqnService.EVENT_CREATE) + @HandlerOrder(HandlerOrder.LATE) + public void processBefore(CdsCreateEventContext context, List data) throws IOException { + doCreate(context, data); + } + + private void doCreate(CdsCreateEventContext context, List data) throws IOException { + AuthenticationInfo authInfo = context.getAuthenticationInfo(); + JwtTokenAuthenticationInfo jwtTokenInfo = authInfo.as(JwtTokenAuthenticationInfo.class); + String jwtToken = jwtTokenInfo.getToken(); + createDocument(data, jwtToken); + if (ApplicationHandlerHelper.noContentFieldInData(context.getTarget(), data)) { + return; } - private void doCreate(CdsCreateEventContext context, List data) throws IOException { - AuthenticationInfo authInfo = context.getAuthenticationInfo(); - JwtTokenAuthenticationInfo jwtTokenInfo = authInfo.as(JwtTokenAuthenticationInfo.class); - String jwtToken = jwtTokenInfo.getToken(); - createDocument(data, jwtToken); - if (ApplicationHandlerHelper.noContentFieldInData(context.getTarget(), data)) { - return; + setKeysInData(context.getTarget(), data); + ModifyApplicationHandlerHelper.handleAttachmentForEntities( + context.getTarget(), data, new ArrayList<>(), eventFactory, context); + } + + private void setKeysInData(CdsEntity entity, List data) { + processor + .addGenerator( + (path, element, type) -> + element.isKey() && element.getType().isSimpleType(CdsBaseType.UUID), + (path, element, isNull) -> UUID.randomUUID().toString()) + .process(data, entity); + } + + private void createDocument(List data, String jwtToken) throws IOException { + for (Map entity : data) { + // Handle attachments if present + List> attachments = (List>) entity.get("attachments"); + if (attachments != null) { + for (Map attachment : attachments) { + CmisDocument cmisDocument = new CmisDocument(); + cmisDocument.setFileName(attachment.get("fileName").toString()); + InputStream contentStream = (InputStream) attachment.get("content"); + cmisDocument.setContent(contentStream); + cmisDocument.setParentId(attachment.get("up__ID").toString()); + + SDMService sdmService = new SDMServiceImpl(); + sdmService.createDocument(cmisDocument, jwtToken); } - - - setKeysInData(context.getTarget(), data); - ModifyApplicationHandlerHelper.handleAttachmentForEntities(context.getTarget(), data, new ArrayList<>(), eventFactory, - context); - } - - private void setKeysInData(CdsEntity entity, List data) { - processor.addGenerator((path, element, type) -> element.isKey() && element.getType().isSimpleType(CdsBaseType.UUID), - (path, element, isNull) -> UUID.randomUUID().toString()).process(data, entity); + } } - - private void createDocument(List data, String jwtToken) throws IOException { - for (Map entity : data) { - // Handle attachments if present - List> attachments = (List>) entity.get("attachments"); - if (attachments != null) { - for (Map attachment : attachments) { - CmisDocument cmisDocument = new CmisDocument(); - cmisDocument.setFileName(attachment.get("fileName").toString()); - InputStream contentStream = (InputStream) attachment.get("content"); - cmisDocument.setContent(contentStream); - cmisDocument.setParentId(attachment.get("up__ID").toString()); - - SDMService sdmService = new SDMServiceImpl(); - sdmService.createDocument(cmisDocument, jwtToken); - - } - } - } - } - - + } } diff --git a/sdm/src/main/java/com/sap/cds/sdm/model/CmisDocument.java b/sdm/src/main/java/com/sap/cds/sdm/model/CmisDocument.java index bd8c75a7..305bf7ec 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/model/CmisDocument.java +++ b/sdm/src/main/java/com/sap/cds/sdm/model/CmisDocument.java @@ -1,19 +1,19 @@ package com.sap.cds.sdm.model; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import java.io.InputStream; import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; -import java.io.InputStream; @JsonIgnoreProperties(ignoreUnknown = true) @Data @Builder @NoArgsConstructor @AllArgsConstructor public class CmisDocument { - private String fileName; - private InputStream content; - private String parentId; + private String fileName; + private InputStream content; + private String parentId; } diff --git a/sdm/src/main/java/com/sap/cds/sdm/persistence/DBQuery.java b/sdm/src/main/java/com/sap/cds/sdm/persistence/DBQuery.java index 43a547e4..41ea4f2f 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/persistence/DBQuery.java +++ b/sdm/src/main/java/com/sap/cds/sdm/persistence/DBQuery.java @@ -1,4 +1,3 @@ package com.sap.cds.sdm.persistence; -public class DBQuery { -} +public class DBQuery {} diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/RegisterService.java b/sdm/src/main/java/com/sap/cds/sdm/service/RegisterService.java index df6e95ec..01eadd91 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/RegisterService.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/RegisterService.java @@ -3,5 +3,5 @@ import com.sap.cds.services.Service; public interface RegisterService extends Service { - String SDM_NAME = "SDMAttachmentService$Default"; + String SDM_NAME = "SDMAttachmentService$Default"; } diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/SDMAttachmentsService.java b/sdm/src/main/java/com/sap/cds/sdm/service/SDMAttachmentsService.java index 0fca62fa..b93fa969 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/SDMAttachmentsService.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/SDMAttachmentsService.java @@ -1,77 +1,77 @@ package com.sap.cds.sdm.service; import com.sap.cds.feature.attachments.generated.cds4j.sap.attachments.MediaData; +import com.sap.cds.feature.attachments.service.AttachmentService; import com.sap.cds.feature.attachments.service.model.service.AttachmentModificationResult; import com.sap.cds.feature.attachments.service.model.service.CreateAttachmentInput; -import com.sap.cds.services.ServiceDelegator; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -import com.sap.cds.feature.attachments.service.AttachmentService; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentCreateEventContext; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentMarkAsDeletedEventContext; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentReadEventContext; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentRestoreEventContext; - +import com.sap.cds.services.ServiceDelegator; import java.io.InputStream; import java.time.Instant; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; - - -public class SDMAttachmentsService extends ServiceDelegator implements AttachmentService,RegisterService { - private static final Logger logger = LoggerFactory.getLogger(SDMAttachmentsService.class); - - public SDMAttachmentsService() { - super(SDM_NAME); - } - - @Override - public InputStream readAttachment(String contentId) { - logger.info("Reading attachment with document id: {}", contentId); - - var readContext = AttachmentReadEventContext.create(); - readContext.setContentId(contentId); - readContext.setData(MediaData.create()); - - emit(readContext); - - return readContext.getData().getContent(); - } - - @Override - public AttachmentModificationResult createAttachment(CreateAttachmentInput input) { - logger.info("Creating attachment for entity name: {}", input.attachmentEntity().getQualifiedName()); - var createContext = AttachmentCreateEventContext.create(); - createContext.setAttachmentIds(input.attachmentIds()); - createContext.setAttachmentEntity(input.attachmentEntity()); - var mediaData = MediaData.create(); - mediaData.setFileName(input.fileName()); - mediaData.setMimeType(input.mimeType()); - mediaData.setContent(input.content()); - createContext.setData(mediaData); - - emit(createContext); - - return new AttachmentModificationResult(Boolean.TRUE.equals(createContext.getIsInternalStored()), - createContext.getContentId(), createContext.getData().getStatus()); - } - - @Override - public void markAttachmentAsDeleted(String contentId) { - logger.info( "Marking attachment as deleted for document id: {}", contentId); - - var deleteContext = AttachmentMarkAsDeletedEventContext.create(); - deleteContext.setContentId(contentId); - - emit(deleteContext); - } - - @Override - public void restoreAttachment(Instant restoreTimestamp) { - logger.info( "Restoring deleted attachment for timestamp: {}", restoreTimestamp); - var restoreContext = AttachmentRestoreEventContext.create(); - restoreContext.setRestoreTimestamp(restoreTimestamp); - - emit(restoreContext); - } +public class SDMAttachmentsService extends ServiceDelegator + implements AttachmentService, RegisterService { + private static final Logger logger = LoggerFactory.getLogger(SDMAttachmentsService.class); + + public SDMAttachmentsService() { + super(SDM_NAME); + } + + @Override + public InputStream readAttachment(String contentId) { + logger.info("Reading attachment with document id: {}", contentId); + + var readContext = AttachmentReadEventContext.create(); + readContext.setContentId(contentId); + readContext.setData(MediaData.create()); + + emit(readContext); + + return readContext.getData().getContent(); + } + + @Override + public AttachmentModificationResult createAttachment(CreateAttachmentInput input) { + logger.info( + "Creating attachment for entity name: {}", input.attachmentEntity().getQualifiedName()); + var createContext = AttachmentCreateEventContext.create(); + createContext.setAttachmentIds(input.attachmentIds()); + createContext.setAttachmentEntity(input.attachmentEntity()); + var mediaData = MediaData.create(); + mediaData.setFileName(input.fileName()); + mediaData.setMimeType(input.mimeType()); + mediaData.setContent(input.content()); + createContext.setData(mediaData); + + emit(createContext); + + return new AttachmentModificationResult( + Boolean.TRUE.equals(createContext.getIsInternalStored()), + createContext.getContentId(), + createContext.getData().getStatus()); + } + + @Override + public void markAttachmentAsDeleted(String contentId) { + logger.info("Marking attachment as deleted for document id: {}", contentId); + + var deleteContext = AttachmentMarkAsDeletedEventContext.create(); + deleteContext.setContentId(contentId); + + emit(deleteContext); + } + + @Override + public void restoreAttachment(Instant restoreTimestamp) { + logger.info("Restoring deleted attachment for timestamp: {}", restoreTimestamp); + var restoreContext = AttachmentRestoreEventContext.create(); + restoreContext.setRestoreTimestamp(restoreTimestamp); + + emit(restoreContext); + } } diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java b/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java index 6fc24d62..02f380dc 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/SDMService.java @@ -1,15 +1,14 @@ package com.sap.cds.sdm.service; -import com.sap.cds.CdsData; -import com.sap.cds.feature.attachments.generated.cds4j.sap.attachments.MediaData; import com.sap.cds.sdm.model.CmisDocument; - import java.io.IOException; -import java.util.List; public interface SDMService { - public String createDocument(CmisDocument cmisDocument, String jwtToken) throws IOException; - public void readDocument(); - public void deleteDocument(); - public String createFolder(); + public String createDocument(CmisDocument cmisDocument, String jwtToken) throws IOException; + + public void readDocument(); + + public void deleteDocument(); + + public String createFolder(); } diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java b/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java index b50e7d2d..816d23a5 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/SDMServiceImpl.java @@ -4,60 +4,59 @@ import com.sap.cds.sdm.handler.TokenHandler; import com.sap.cds.sdm.model.CmisDocument; import com.sap.cds.sdm.model.SDMCredentials; +import java.io.IOException; import okhttp3.*; import org.apache.commons.io.IOUtils; -import java.io.IOException; - -public class SDMServiceImpl implements SDMService{ - @Override - public String createDocument(CmisDocument cmisDocument, String jwtToken) throws IOException { - OkHttpClient client = new OkHttpClient(); - SDMCredentials sdmCredentials = TokenHandler.getSDMCredentials(); - String accessToken = TokenHandler.getDIToken(jwtToken,sdmCredentials); - String sdmUrl = sdmCredentials.getUrl()+"browser/"+ SDMConstants.REPOSITORY_ID+"/root"; - - RequestBody requestBody = new MultipartBody.Builder() - .setType(MultipartBody.FORM) - .addFormDataPart("cmisaction", "createDocument") - .addFormDataPart("propertyId[0]", "cmis:name") - .addFormDataPart("propertyValue[0]",cmisDocument.getFileName() ) - .addFormDataPart("propertyId[1]", "cmis:objectTypeId") - .addFormDataPart("propertyValue[1]", "cmis:document") - .addFormDataPart("succinct", "true") - .addFormDataPart("filename", cmisDocument.getFileName(), - RequestBody.create(IOUtils.toByteArray(cmisDocument.getContent()), MediaType.parse("application/octet-stream"))) - .build(); - - Request request = new Request.Builder() - .url(sdmUrl) - .addHeader("Authorization", "Bearer " + accessToken) - .post(requestBody) - .build(); - - try (Response response = client.newCall(request).execute()) { - if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); - return response.body().string(); - } catch (IOException e) { - e.printStackTrace(); - } - return null; - - +public class SDMServiceImpl implements SDMService { + @Override + public String createDocument(CmisDocument cmisDocument, String jwtToken) throws IOException { + OkHttpClient client = new OkHttpClient(); + SDMCredentials sdmCredentials = TokenHandler.getSDMCredentials(); + String accessToken = TokenHandler.getDIToken(jwtToken, sdmCredentials); + String sdmUrl = sdmCredentials.getUrl() + "browser/" + SDMConstants.REPOSITORY_ID + "/root"; + + RequestBody requestBody = + new MultipartBody.Builder() + .setType(MultipartBody.FORM) + .addFormDataPart("cmisaction", "createDocument") + .addFormDataPart("propertyId[0]", "cmis:name") + .addFormDataPart("propertyValue[0]", cmisDocument.getFileName()) + .addFormDataPart("propertyId[1]", "cmis:objectTypeId") + .addFormDataPart("propertyValue[1]", "cmis:document") + .addFormDataPart("succinct", "true") + .addFormDataPart( + "filename", + cmisDocument.getFileName(), + RequestBody.create( + IOUtils.toByteArray(cmisDocument.getContent()), + MediaType.parse("application/octet-stream"))) + .build(); + + Request request = + new Request.Builder() + .url(sdmUrl) + .addHeader("Authorization", "Bearer " + accessToken) + .post(requestBody) + .build(); + + try (Response response = client.newCall(request).execute()) { + if (!response.isSuccessful()) throw new IOException("Unexpected code " + response); + return response.body().string(); + } catch (IOException e) { + e.printStackTrace(); } + return null; + } - @Override - public void readDocument() { + @Override + public void readDocument() {} - } - - @Override - public void deleteDocument() { + @Override + public void deleteDocument() {} - } - - @Override - public String createFolder() { - return null; - } + @Override + public String createFolder() { + return null; + } } diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java b/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java index cb3be93c..61acd0ac 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java @@ -1,49 +1,41 @@ package com.sap.cds.sdm.service.handler; import com.sap.cds.feature.attachments.generated.cds4j.sap.attachments.Attachments; -import com.sap.cds.services.handler.EventHandler; -import com.sap.cds.services.handler.annotations.On; -import com.sap.cds.services.handler.annotations.ServiceName; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - import com.sap.cds.feature.attachments.service.AttachmentService; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentCreateEventContext; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentMarkAsDeletedEventContext; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentReadEventContext; import com.sap.cds.feature.attachments.service.model.servicehandler.AttachmentRestoreEventContext; - +import com.sap.cds.services.handler.EventHandler; +import com.sap.cds.services.handler.annotations.On; +import com.sap.cds.services.handler.annotations.ServiceName; import java.io.IOException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @ServiceName(value = "*", type = AttachmentService.class) public class SDMAttachmentsServiceHandler implements EventHandler { - private static final Logger logger = LoggerFactory.getLogger(SDMAttachmentsServiceHandler.class); - - @On(event = AttachmentService.EVENT_CREATE_ATTACHMENT) - public void createAttachment(AttachmentCreateEventContext context) throws IOException { - var contentId = (String) context.getAttachmentIds().get(Attachments.ID); - - context.setIsInternalStored(true); - context.setContentId(contentId); - context.setCompleted(); - } - - @On(event = AttachmentService.EVENT_MARK_ATTACHMENT_AS_DELETED) - public void markAttachmentAsDeleted(AttachmentMarkAsDeletedEventContext context) { + private static final Logger logger = LoggerFactory.getLogger(SDMAttachmentsServiceHandler.class); - } + @On(event = AttachmentService.EVENT_CREATE_ATTACHMENT) + public void createAttachment(AttachmentCreateEventContext context) throws IOException { + var contentId = (String) context.getAttachmentIds().get(Attachments.ID); - @On(event = AttachmentService.EVENT_RESTORE_ATTACHMENT) - public void restoreAttachment(AttachmentRestoreEventContext context) { + context.setIsInternalStored(true); + context.setContentId(contentId); + context.setCompleted(); + } - } + @On(event = AttachmentService.EVENT_MARK_ATTACHMENT_AS_DELETED) + public void markAttachmentAsDeleted(AttachmentMarkAsDeletedEventContext context) {} - @On(event = AttachmentService.EVENT_READ_ATTACHMENT) - public void readAttachment(AttachmentReadEventContext context) { - } + @On(event = AttachmentService.EVENT_RESTORE_ATTACHMENT) + public void restoreAttachment(AttachmentRestoreEventContext context) {} - public String performAction() { - return "Action Performed"; - } + @On(event = AttachmentService.EVENT_READ_ATTACHMENT) + public void readAttachment(AttachmentReadEventContext context) {} + public String performAction() { + return "Action Performed"; + } } diff --git a/sdm/src/main/java/com/sap/cds/sdm/util/HelperUtil.java b/sdm/src/main/java/com/sap/cds/sdm/util/HelperUtil.java index d6c72c20..089b9d03 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/util/HelperUtil.java +++ b/sdm/src/main/java/com/sap/cds/sdm/util/HelperUtil.java @@ -1,8 +1,3 @@ package com.sap.cds.sdm.util; -public class HelperUtil { - - - - -} +public class HelperUtil {} From 2a32270f4de5d9e837c2192f0fc054099b08564d Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 8 Aug 2024 10:56:00 +0530 Subject: [PATCH 044/210] Review comments --- pom.xml | 2 +- .../handler/SDMAttachmentsHandlerTest.java | 24 ------------------- .../SDMAttachmentsServiceHandlerTest.java | 3 +++ 3 files changed, 4 insertions(+), 25 deletions(-) delete mode 100644 sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java create mode 100644 sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsServiceHandlerTest.java diff --git a/pom.xml b/pom.xml index 7635139a..ce3c6dc8 100644 --- a/pom.xml +++ b/pom.xml @@ -83,7 +83,7 @@ org.junit.jupiter - junit-jupiter + junit-jupiter-api 5.10.2 test diff --git a/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java b/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java deleted file mode 100644 index 483dea77..00000000 --- a/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsHandlerTest.java +++ /dev/null @@ -1,24 +0,0 @@ -package com.sap.cds.handler; - -import static org.assertj.core.api.Assertions.assertThat; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.mockito.MockitoAnnotations; - -public class SDMAttachmentsHandlerTest { - - private SDMAttachmentsHandler handler; - - @BeforeEach - void setUp() { - MockitoAnnotations.openMocks(this); - handler = new SDMAttachmentsHandler(); - } - - @Test - void testPerformAction() { - String result = handler.performAction(); - assertThat(result).isEqualTo("Action Performed"); - } -} diff --git a/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsServiceHandlerTest.java b/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsServiceHandlerTest.java new file mode 100644 index 00000000..4bcde5f4 --- /dev/null +++ b/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsServiceHandlerTest.java @@ -0,0 +1,3 @@ +package com.sap.cds.handler; + +public class SDMAttachmentsServiceHandlerTest {} From c1c69437f219d01214a0b38329543d68853ae968 Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 8 Aug 2024 11:26:26 +0530 Subject: [PATCH 045/210] Sonar fixes --- sdm/pom.xml | 2 +- .../com/sap/cds/sdm/constants/SDMConstants.java | 6 ++++-- .../java/com/sap/cds/sdm/handler/TokenHandler.java | 13 +++++++++---- .../applicationservice/SDMCreateEventHandler.java | 4 +--- .../handler/SDMAttachmentsServiceHandler.java | 1 - 5 files changed, 15 insertions(+), 11 deletions(-) diff --git a/sdm/pom.xml b/sdm/pom.xml index 4e4069e0..2b78ac29 100644 --- a/sdm/pom.xml +++ b/sdm/pom.xml @@ -30,7 +30,7 @@ sdm 7.6.0 - sdm.generated + com.sap.cds.sdm.generated src/test/gen 17 17 diff --git a/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java b/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java index 5be3b0ca..6de9c417 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java +++ b/sdm/src/main/java/com/sap/cds/sdm/constants/SDMConstants.java @@ -1,8 +1,10 @@ package com.sap.cds.sdm.constants; public class SDMConstants { + private SDMConstants() { + throw new IllegalStateException("Constants class"); + } + public static final String REPOSITORY_ID = System.getenv("REPOSITORY_ID"); - private static final String BEARER_TOKEN = "Bearer "; - public static final String GRANT_TYPE = "grant_type"; public static final String TENANT_ID = "X-zid"; } diff --git a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java index f0ecd426..4c43fa58 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java @@ -46,6 +46,10 @@ public class TokenHandler { private static Map uaa; private static final ObjectMapper mapper = new ObjectMapper(); + private TokenHandler() { + throw new IllegalStateException("TokenHandler class"); + } + public static byte[] toBytes(String str) { return requireNonNull(str).getBytes(StandardCharsets.UTF_8); } @@ -189,10 +193,11 @@ private static Map fillTokenExchangeBody(String token, SDMCreden } private static String extractResponseBodyAsString(HttpResponse response) throws IOException { - return (String) - (new BufferedReader(new InputStreamReader(response.getEntity().getContent()))) - .lines() - .collect(Collectors.joining(System.lineSeparator())); + // Ensure that InputStream and BufferedReader are automatically closed + try (InputStream inputStream = response.getEntity().getContent(); + BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream))) { + return bufferedReader.lines().collect(Collectors.joining(System.lineSeparator())); + } } private static void safeClose(CloseableHttpClient httpClient) { diff --git a/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java b/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java index fc33ec81..6a833483 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/handler/applicationservice/SDMCreateEventHandler.java @@ -28,12 +28,9 @@ import java.util.List; import java.util.Map; import java.util.UUID; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; @ServiceName(value = "*", type = ApplicationService.class) public class SDMCreateEventHandler implements EventHandler { - private static final Logger logger = LoggerFactory.getLogger(SDMCreateEventHandler.class); private final ModifyAttachmentEventFactory eventFactory; private final ThreadDataStorageReader storageReader; @@ -62,6 +59,7 @@ private void doCreate(CdsCreateEventContext context, List data) throws JwtTokenAuthenticationInfo jwtTokenInfo = authInfo.as(JwtTokenAuthenticationInfo.class); String jwtToken = jwtTokenInfo.getToken(); createDocument(data, jwtToken); + if (ApplicationHandlerHelper.noContentFieldInData(context.getTarget(), data)) { return; } diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java b/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java index 61acd0ac..6504eeeb 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java @@ -20,7 +20,6 @@ public class SDMAttachmentsServiceHandler implements EventHandler { @On(event = AttachmentService.EVENT_CREATE_ATTACHMENT) public void createAttachment(AttachmentCreateEventContext context) throws IOException { var contentId = (String) context.getAttachmentIds().get(Attachments.ID); - context.setIsInternalStored(true); context.setContentId(contentId); context.setCompleted(); From 96c72116b95a8823067a6cf89c71280152e1533f Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 8 Aug 2024 11:31:56 +0530 Subject: [PATCH 046/210] Sonar fixes --- .../com/sap/cds/sdm/handler/TokenHandler.java | 15 +++++------- .../handler/SDMAttachmentsServiceHandler.java | 3 --- .../SDMAttachmentsServiceHandlerTest.java | 23 ++++++++++++++++++- 3 files changed, 28 insertions(+), 13 deletions(-) diff --git a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java index 4c43fa58..8debbabd 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/handler/TokenHandler.java @@ -20,7 +20,6 @@ import com.sap.cloud.security.xsuaa.http.MediaType; import java.io.*; import java.net.HttpURLConnection; -import java.net.ProtocolException; import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.HashMap; @@ -42,8 +41,7 @@ public class TokenHandler { private static final Logger logger = LoggerFactory.getLogger(TokenHandler.class); - private static Map uaaCredentials; - private static Map uaa; + private static final ObjectMapper mapper = new ObjectMapper(); private TokenHandler() { @@ -68,8 +66,8 @@ public static SDMCredentials getSDMCredentials() { .findFirst() .get(); SDMCredentials sdmCredentials = new SDMCredentials(); - uaaCredentials = sdmBinding.getCredentials(); - uaa = (Map) uaaCredentials.get("uaa"); + Map uaaCredentials = sdmBinding.getCredentials(); + Map uaa = (Map) uaaCredentials.get("uaa"); sdmCredentials.setBaseTokenUrl(uaa.get("url").toString()); sdmCredentials.setUrl(sdmBinding.getCredentials().get("uri").toString()); @@ -78,8 +76,7 @@ public static SDMCredentials getSDMCredentials() { return sdmCredentials; } - public static String getAccessToken(SDMCredentials sdmCredentials) - throws IOException, ProtocolException { + public static String getAccessToken(SDMCredentials sdmCredentials) throws IOException { // Fetch the token from Cache if present use it else generate and store String cachedToken = CacheConfig.getClientCredentialsTokenCache().get("clientCredentialsToken"); if (cachedToken == null) { @@ -157,10 +154,10 @@ private static String generateDITokenFromTokenExchange( } Map accessTokenMap = new JSONObject(responseBody).toMap(); cachedToken = String.valueOf(accessTokenMap.get("access_token")); - String token_expiry = payloadObj.get("exp").getAsString(); + String expiryTime = payloadObj.get("exp").getAsString(); CacheKey cacheKey = new CacheKey(); cacheKey.setEmail(payloadObj.get("email").getAsString()); - cacheKey.setExpiration(token_expiry); + cacheKey.setExpiration(expiryTime); CacheConfig.getUserTokenCache().put(cacheKey, cachedToken); } catch (UnsupportedEncodingException e) { throw new OAuth2ServiceException("Unexpected error parsing URI: " + e.getMessage()); diff --git a/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java b/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java index 6504eeeb..9ba971a9 100644 --- a/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java +++ b/sdm/src/main/java/com/sap/cds/sdm/service/handler/SDMAttachmentsServiceHandler.java @@ -10,12 +10,9 @@ import com.sap.cds.services.handler.annotations.On; import com.sap.cds.services.handler.annotations.ServiceName; import java.io.IOException; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; @ServiceName(value = "*", type = AttachmentService.class) public class SDMAttachmentsServiceHandler implements EventHandler { - private static final Logger logger = LoggerFactory.getLogger(SDMAttachmentsServiceHandler.class); @On(event = AttachmentService.EVENT_CREATE_ATTACHMENT) public void createAttachment(AttachmentCreateEventContext context) throws IOException { diff --git a/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsServiceHandlerTest.java b/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsServiceHandlerTest.java index 4bcde5f4..18ab6834 100644 --- a/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsServiceHandlerTest.java +++ b/sdm/src/test/java/com/sap/cds/handler/SDMAttachmentsServiceHandlerTest.java @@ -1,3 +1,24 @@ package com.sap.cds.handler; -public class SDMAttachmentsServiceHandlerTest {} +import static org.assertj.core.api.Assertions.assertThat; + +import com.sap.cds.sdm.service.handler.SDMAttachmentsServiceHandler; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.MockitoAnnotations; + +public class SDMAttachmentsServiceHandlerTest { + private SDMAttachmentsServiceHandler handler; + + @BeforeEach + void setUp() { + MockitoAnnotations.openMocks(this); + handler = new SDMAttachmentsServiceHandler(); + } + + @Test + void testPerformAction() { + String result = handler.performAction(); + assertThat(result).isEqualTo("Action Performed"); + } +} From 341aeaa028f2d36307a5f29132751c4f849acd1a Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 8 Aug 2024 11:33:35 +0530 Subject: [PATCH 047/210] Update pom.xml --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index ce3c6dc8..9a0b2a91 100644 --- a/pom.xml +++ b/pom.xml @@ -103,6 +103,7 @@ org.mockito mockito-core + 5.12.0 test From 16f79901f557f49f861497e01b1485608cfd38aa Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 12:03:37 +0530 Subject: [PATCH 048/210] Create CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 CODE_OF_CONDUCT.md diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1 @@ + From ec105f9bb9ce3cf2f02c9aa7a1d605d705f5cf25 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 12:04:33 +0530 Subject: [PATCH 049/210] Create CONTRIBUTING.md --- CONTRIBUTING.md | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..a48a53ee --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,83 @@ +# Contributing + +## Code of Conduct + +All members of the project community must abide by the [Contributor Covenant, version 2.1](CODE_OF_CONDUCT.md). +Only by respecting each other we can develop a productive, collaborative community. +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting [a project maintainer](.reuse/dep5). + +## Engaging in Our Project + +Thank you for your interest in contributing to the CAP plugin for SAP Document Management Service. Your assistance is much needed and appreciated. This document outlines how you can contribute, and specifies requirements you need to meet before submitting your contributions. Here are some ways in which you can contribute: + +* Reporting a bug + +* Discussing the current state of the code + +* Submitting a fix + +* Proposing new features + +We use GitHub to manage reviews of pull requests. + +* If you are a new contributor, see: [Steps to Contribute](#steps-to-contribute) + +* Before implementing your change, create an issue that describes the problem you would like to solve or the code that should be enhanced. Please note that you are willing to work on that issue. When creating an issue, make sure to label it. You can view the available labels here: [Issue labels](https://github.com/cap-js/sdm/labels) + +* The team will review the issue and decide whether it should be implemented as a pull request. In that case, they will assign the issue to you. If the team decides against picking up the issue, the team will post a comment with an explanation. + +## Issues and Planning + +* We use GitHub issues to track bugs and enhancement requests. + +* Please provide as much context as possible when you open an issue. The information you provide must be comprehensive enough to reproduce that issue for the assignee. + +## Steps to Contribute + +Should you wish to work on an issue, please claim it first by commenting on the GitHub issue that you want to work on. This is to prevent duplicated efforts from other contributors on the same issue. + +If you have questions about one of the issues, please comment on them, and one of the maintainers will clarify. + +Components that cannot be changed: + +* Licensing: Any changes to software licenses won't be accepted. +* Repository Structure: The project structure should remain unchanged unless changes are approved by the maintainers. + +Components that can be changed: + +* Documentation: If you see any gaps in the documentation, feel free to fill it. This includes walkthroughs, diagrams, typographical errors, and more. +* Bug Fixing: If you found any bugs, you can fix it and submit a pull request. +* Features: You can suggest and work on new features or enhancements to existing features. +* Performance: If you can optimise any part of the existing implementation, your contribution is greatly welcomed. + +To contribute, you can follow these steps: + +1. Fork the repo and clone it to your local system. +2. Add the original repository as a remote (use the alias "upstream"). +3. If you created your fork a while ago be sure to pull upstream changes into your local repository. +4. Create a new branch to work on from develop. +5. If you've added code that should be tested, add unit tests(/test/lib). Add comments to explain your changes. Make sure to check the code coverage for tests (>95%). For more information on testing, refer to [Running the unit tests](https://github.com/cap-js/sdm?tab=readme-ov-file#running-the-unit-tests). +6. Once you have made your changes, push your branch commits to the forked repository. +7. From the original repository, click the "New pull request" button. +8. Select your fork and the branch you worked on. +9. The title of your PR should describe your changes. In the description, mention what you changed, why you changed it, and the issue related (with hashtag #issueNumber). Add labels to your PR such as bug, enhancement, documentation, consulting etc. +10. After raising a PR, all tests - including linting, unit tests, and integration tests - will be executed. The PR will not be merged unless all these tests pass successfully. + +Some points to keep in mind while contributing: + +1. Follow the code style of the project, including indentation. +2. Ensure proper testing of the changes. +3. Make sure the code lints. + +Once you submit a PR, the maintainers will review your submission. They might ask for changes or reject if your contribution doesn't match the project guidelines. If everything is fine, they will merge your PR. + +## Contributing Code or Documentation + +You are welcome to contribute code in order to fix a bug or to implement a new feature that is logged as an issue. + +The following rule governs code contributions: + +* Contributions must be licensed under the [Apache 2.0 License](./LICENSE) +* Due to legal reasons, contributors will be asked to accept a Developer Certificate of Origin (DCO) when they create the first pull request to this project. This happens in an automated fashion during the submission process. SAP uses [the standard DCO text of the Linux Foundation](https://developercertificate.org/). + + From ca9f8abc0f0d93bacf8f281f5dd4c5eef845ba94 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 12:06:46 +0530 Subject: [PATCH 050/210] Create Apache-2.0.txt --- LICENSES/Apache-2.0.txt | 73 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 LICENSES/Apache-2.0.txt diff --git a/LICENSES/Apache-2.0.txt b/LICENSES/Apache-2.0.txt new file mode 100644 index 00000000..137069b8 --- /dev/null +++ b/LICENSES/Apache-2.0.txt @@ -0,0 +1,73 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + + (a) You must give any other recipients of the Work or Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + + You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. + +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS + +APPENDIX: How to apply the Apache License to your work. + +To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives. + +Copyright [yyyy] [name of copyright owner] + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + +http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. From a9f28660d1ca54a56e55c4fd98eba71dc4610ac7 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 12:07:17 +0530 Subject: [PATCH 051/210] Create CHANGELOG.md --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1 @@ + From d36d36eea68d8a800e2de45d07a7d5b1339b5552 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 12:09:05 +0530 Subject: [PATCH 052/210] Update CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 131 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 8b137891..35b51670 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1 +1,132 @@ +# Contributor Covenant Code of Conduct +## Our Pledge + +We as members, contributors, and leaders pledge to make participation in our +community a harassment-free experience for everyone, regardless of age, body +size, visible or invisible disability, ethnicity, sex characteristics, gender +identity and expression, level of experience, education, socio-economic status, +nationality, personal appearance, race, caste, color, religion, or sexual +identity and orientation. + +We pledge to act and interact in ways that contribute to an open, welcoming, +diverse, inclusive, and healthy community. + +## Our Standards + +Examples of behavior that contributes to a positive environment for our +community include: + +* Demonstrating empathy and kindness toward other people +* Being respectful of differing opinions, viewpoints, and experiences +* Giving and gracefully accepting constructive feedback +* Accepting responsibility and apologizing to those affected by our mistakes, + and learning from the experience +* Focusing on what is best not just for us as individuals, but for the overall + community + +Examples of unacceptable behavior include: + +* The use of sexualized language or imagery, and sexual attention or advances of + any kind +* Trolling, insulting or derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or email address, + without their explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Enforcement Responsibilities + +Community leaders are responsible for clarifying and enforcing our standards of +acceptable behavior and will take appropriate and fair corrective action in +response to any behavior that they deem inappropriate, threatening, offensive, +or harmful. + +Community leaders have the right and responsibility to remove, edit, or reject +comments, commits, code, wiki edits, issues, and other contributions that are +not aligned to this Code of Conduct, and will communicate reasons for moderation +decisions when appropriate. + +## Scope + +This Code of Conduct applies within all community spaces, and also applies when +an individual is officially representing the community in public spaces. +Examples of representing our community include using an official e-mail address, +posting via an official social media account, or acting as an appointed +representative at an online or offline event. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported to the community leaders responsible for enforcement at +[INSERT CONTACT METHOD]. +All complaints will be reviewed and investigated promptly and fairly. + +All community leaders are obligated to respect the privacy and security of the +reporter of any incident. + +## Enforcement Guidelines + +Community leaders will follow these Community Impact Guidelines in determining +the consequences for any action they deem in violation of this Code of Conduct: + +### 1. Correction + +**Community Impact**: Use of inappropriate language or other behavior deemed +unprofessional or unwelcome in the community. + +**Consequence**: A private, written warning from community leaders, providing +clarity around the nature of the violation and an explanation of why the +behavior was inappropriate. A public apology may be requested. + +### 2. Warning + +**Community Impact**: A violation through a single incident or series of +actions. + +**Consequence**: A warning with consequences for continued behavior. No +interaction with the people involved, including unsolicited interaction with +those enforcing the Code of Conduct, for a specified period of time. This +includes avoiding interactions in community spaces as well as external channels +like social media. Violating these terms may lead to a temporary or permanent +ban. + +### 3. Temporary Ban + +**Community Impact**: A serious violation of community standards, including +sustained inappropriate behavior. + +**Consequence**: A temporary ban from any sort of interaction or public +communication with the community for a specified period of time. No public or +private interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, is allowed during this period. +Violating these terms may lead to a permanent ban. + +### 4. Permanent Ban + +**Community Impact**: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behavior, harassment of an +individual, or aggression toward or disparagement of classes of individuals. + +**Consequence**: A permanent ban from any sort of public interaction within the +community. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], +version 2.1, available at +[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. + +Community Impact Guidelines were inspired by +[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. + +For answers to common questions about this code of conduct, see the FAQ at +[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at +[https://www.contributor-covenant.org/translations][translations]. + +[homepage]: https://www.contributor-covenant.org +[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html +[Mozilla CoC]: https://github.com/mozilla/diversity +[FAQ]: https://www.contributor-covenant.org/faq +[translations]: https://www.contributor-covenant.org/translations From 1376a02e51d5b5d216a0c95bebbfb9990f2bb4d8 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:30:14 +0530 Subject: [PATCH 053/210] Update CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 35b51670..3f7a6914 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -17,7 +17,7 @@ diverse, inclusive, and healthy community. Examples of behavior that contributes to a positive environment for our community include: -* Demonstrating empathy and kindness toward other people +* Demonstrating empathy and kindness towards other people * Being respectful of differing opinions, viewpoints, and experiences * Giving and gracefully accepting constructive feedback * Accepting responsibility and apologizing to those affected by our mistakes, From f38b95a836c415020c9a300407b9f866c123f6d1 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:31:28 +0530 Subject: [PATCH 054/210] Update CONTRIBUTING.md --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a48a53ee..d161fd20 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -22,7 +22,7 @@ We use GitHub to manage reviews of pull requests. * If you are a new contributor, see: [Steps to Contribute](#steps-to-contribute) -* Before implementing your change, create an issue that describes the problem you would like to solve or the code that should be enhanced. Please note that you are willing to work on that issue. When creating an issue, make sure to label it. You can view the available labels here: [Issue labels](https://github.com/cap-js/sdm/labels) +* Before implementing your change, create an issue that describes the problem you would like to solve or the code that should be enhanced. Please note that you are willing to work on that issue. When creating an issue, make sure to label it. You can view the available labels here: [Issue labels](https://github.com/cap-java/sdm/labels) * The team will review the issue and decide whether it should be implemented as a pull request. In that case, they will assign the issue to you. If the team decides against picking up the issue, the team will post a comment with an explanation. @@ -56,7 +56,7 @@ To contribute, you can follow these steps: 2. Add the original repository as a remote (use the alias "upstream"). 3. If you created your fork a while ago be sure to pull upstream changes into your local repository. 4. Create a new branch to work on from develop. -5. If you've added code that should be tested, add unit tests(/test/lib). Add comments to explain your changes. Make sure to check the code coverage for tests (>95%). For more information on testing, refer to [Running the unit tests](https://github.com/cap-js/sdm?tab=readme-ov-file#running-the-unit-tests). +5. If you've added code that should be tested, add unit tests(/test/java/unit). Add comments to explain your changes. Make sure to check the code coverage for tests (>90%). For more information on testing, refer to [Running the unit tests](https://github.com/cap-java/sdm?tab=readme-ov-file#running-the-unit-tests). 6. Once you have made your changes, push your branch commits to the forked repository. 7. From the original repository, click the "New pull request" button. 8. Select your fork and the branch you worked on. From 25c69c1dc80033d289f5b9da191e5d344aeceb82 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 14:36:03 +0530 Subject: [PATCH 055/210] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 424ae9d5..0b0a1450 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ -# sdm \ No newline at end of file +# sdm + +The project is currently in the development stage, where our team is actively working on building and refining its core components to ensure it meets all specified requirements and objectives. From 74e2f4529ea8faa5f52032cf7011bb20debb6b84 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 17:04:35 +0530 Subject: [PATCH 056/210] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d161fd20..2068a1fa 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -56,7 +56,7 @@ To contribute, you can follow these steps: 2. Add the original repository as a remote (use the alias "upstream"). 3. If you created your fork a while ago be sure to pull upstream changes into your local repository. 4. Create a new branch to work on from develop. -5. If you've added code that should be tested, add unit tests(/test/java/unit). Add comments to explain your changes. Make sure to check the code coverage for tests (>90%). For more information on testing, refer to [Running the unit tests](https://github.com/cap-java/sdm?tab=readme-ov-file#running-the-unit-tests). +5. If you've added code that should be tested, add unit tests(/test/java/unit). Add comments to explain your changes. Make sure to check the code coverage for tests (>90%).The information will be updated shortly 6. Once you have made your changes, push your branch commits to the forked repository. 7. From the original repository, click the "New pull request" button. 8. Select your fork and the branch you worked on. From ba8c51006a02ecb356a39a548d21d0ff43cae454 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 17:39:36 +0530 Subject: [PATCH 057/210] Update CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 3f7a6914..b4a8ebed 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,7 +60,7 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -[INSERT CONTACT METHOD]. +[a project maintainer](.reuse/dep5). All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the From a4c274d9d18cef32cdf2c89601eabf01b94238c9 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 18:27:35 +0530 Subject: [PATCH 058/210] Update CONTRIBUTING.md --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2068a1fa..d8204867 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -56,7 +56,7 @@ To contribute, you can follow these steps: 2. Add the original repository as a remote (use the alias "upstream"). 3. If you created your fork a while ago be sure to pull upstream changes into your local repository. 4. Create a new branch to work on from develop. -5. If you've added code that should be tested, add unit tests(/test/java/unit). Add comments to explain your changes. Make sure to check the code coverage for tests (>90%).The information will be updated shortly +5. If you've added code that should be tested, add unit tests(/test/java/unit). Add comments to explain your changes. Make sure to check the code coverage for tests (>90%). The information on how to run unit tests will be updated shortly. 6. Once you have made your changes, push your branch commits to the forked repository. 7. From the original repository, click the "New pull request" button. 8. Select your fork and the branch you worked on. From d96b96db9c7d6401e849dabacbf4c91a61cdb7b3 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Mon, 19 Aug 2024 18:30:36 +0530 Subject: [PATCH 059/210] Update README.md --- README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/README.md b/README.md index 0b0a1450..193730d6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,2 @@ -# sdm - +# CAP Java plugin for SAP Document Management Service The project is currently in the development stage, where our team is actively working on building and refining its core components to ensure it meets all specified requirements and objectives. From 2d555ff61af125d5916088be09013174964102c6 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 21 Aug 2024 13:56:49 +0530 Subject: [PATCH 060/210] Update CODE_OF_CONDUCT.md --- CODE_OF_CONDUCT.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index b4a8ebed..e6500efc 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -60,7 +60,7 @@ representative at an online or offline event. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement at -[a project maintainer](.reuse/dep5). +ospo@sap.com. All complaints will be reviewed and investigated promptly and fairly. All community leaders are obligated to respect the privacy and security of the From b749656b5d0a43ed2f18cdd2398daeda560cee96 Mon Sep 17 00:00:00 2001 From: vibhutikumar <160819926+vibhutikumar07@users.noreply.github.com> Date: Wed, 21 Aug 2024 13:59:00 +0530 Subject: [PATCH 061/210] Create dep5 --- .reuse/dep5 | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .reuse/dep5 diff --git a/.reuse/dep5 b/.reuse/dep5 new file mode 100644 index 00000000..15357ae3 --- /dev/null +++ b/.reuse/dep5 @@ -0,0 +1,29 @@ +Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ +Upstream-Name: sdm +Upstream-Contact: The CAP team +Source: https://github.com/cap-java/sdm +Disclaimer: The code in this project may include calls to APIs ("API Calls") of + SAP or third-party products or services developed outside of this project + ("External Products"). + "APIs" means application programming interfaces, as well as their respective + specifications and implementing code that allows software to communicate with + other software. + API Calls to External Products are not licensed under the open source license + that governs this project. The use of such API Calls and related External + Products are subject to applicable additional agreements with the relevant + provider of the External Products. In no event shall the open source license + that governs this project grant any rights in or to any External Products,or + alter, expand or supersede any terms of the applicable additional agreements. + If you have a valid license agreement with SAP for the use of a particular SAP + External Product, then you may make use of any API Calls included in this + project's code for that SAP External Product, subject to the terms of such + license agreement. If you do not have a valid license agreement for the use of + a particular SAP External Product, then you may only make use of any API Calls + in this project for that SAP External Product for your internal, non-productive + and non-commercial test and evaluation of such API Calls. Nothing herein grants + you any rights to use or access any SAP External Product, or provide any third + parties the right to use of access any SAP External Product, through API Calls. + +Files: * +Copyright: 2024 SAP SE or an SAP affiliate company and kafka contributors +License: Apache-2.0 From 8a60766205e173280bbf34c3fd01b9f5fd570b38 Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 22 Aug 2024 17:01:56 +0530 Subject: [PATCH 062/210] Removing number from output --- cap-notebook/attachments-demo-app.capnb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cap-notebook/attachments-demo-app.capnb b/cap-notebook/attachments-demo-app.capnb index 02f7bcf7..30223807 100644 --- a/cap-notebook/attachments-demo-app.capnb +++ b/cap-notebook/attachments-demo-app.capnb @@ -18,7 +18,7 @@ "outputs": [ { "mime": "text/plain", - "value": "Creating new CAP project in ./demoapp\n\nAdding feature 'java'...\nUsing Maven archetype version 2.10.1\n[\u001b[1;34mINFO\u001b[m] Scanning for projects...\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------< \u001b[0;36morg.apache.maven:standalone-pom\u001b[0;1m >-------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mBuilding Maven Stub Project (No POM) 1\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m--------------------------------[ pom ]---------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m>>> \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[0;1m > \u001b[0;1mgenerate-sources\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m >>>\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m<<< \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[0;1m < \u001b[0;1mgenerate-sources\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m <<<\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m--- \u001b[0;32marchetype:3.2.1:generate\u001b[m \u001b[1m(default-cli)\u001b[m @ \u001b[36mstandalone-pom\u001b[0;1m ---\u001b[m\n[\u001b[1;34mINFO\u001b[m] Generating project in Batch mode\n[\u001b[1;34mINFO\u001b[m] Archetype repository not defined. Using the one from [com.sap.cds:cds-services-archetype:2.10.1] found in catalog remote\n[\u001b[1;34mINFO\u001b[m] ----------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Using following parameters for creating project from Archetype: cds-services-archetype:2.10.1\n[\u001b[1;34mINFO\u001b[m] ----------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Parameter: groupId, Value: customer\n[\u001b[1;34mINFO\u001b[m] Parameter: artifactId, Value: demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: version, Value: 1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] Parameter: package, Value: customer.demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: packageInPathFormat, Value: customer/demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: inMemoryDatabase, Value: h2\n[\u001b[1;34mINFO\u001b[m] Parameter: package, Value: customer.demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: includeIntegrationTest, Value: false\n[\u001b[1;34mINFO\u001b[m] Parameter: groupId, Value: customer\n[\u001b[1;34mINFO\u001b[m] Parameter: jdkVersion, Value: 17\n[\u001b[1;34mINFO\u001b[m] Parameter: nodeUrl, Value: https://nodejs.org/dist/\n[\u001b[1;34mINFO\u001b[m] Parameter: artifactId, Value: demoapp\n[\u001b[1;34mINFO\u001b[m] Parameter: includeModel, Value: false\n[\u001b[1;34mINFO\u001b[m] Parameter: targetPlatform, Value: local\n[\u001b[1;34mINFO\u001b[m] Parameter: version, Value: 1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] Parameter: odataVersion, Value: v4\n[\u001b[1;34mINFO\u001b[m] Parent element not overwritten in /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml\n[\u001b[1;34mINFO\u001b[m] Executing META-INF/archetype-post-generate.groovy post-generation script\n[INFO] Scanning for projects...\n[INFO] ------------------------------------------------------------------------\n[INFO] Reactor Build Order:\n[INFO] \n[INFO] demoapp parent [pom]\n[INFO] demoapp [jar]\n[INFO] \n[INFO] ----------------------< customer:demoapp-parent >-----------------------\n[INFO] Building demoapp parent 1.0.0-SNAPSHOT [1/2]\n[INFO] from pom.xml\n[INFO] --------------------------------[ pom ]---------------------------------\n[INFO] \n[INFO] --- cds:2.10.1:add (default-cli) @ demoapp-parent ---\n[INFO] AddMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[INFO] AddMojo: Added dependency `com.h2database:h2` to '/private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml'.\n[INFO] AddMojo: Added CDS command 'deploy --to h2 --dry > \"${project.basedir}/src/main/resources/schema-h2.sql\"' to cds-maven-plugin configuration in /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/pom.xml.\n[INFO] AddMojo: Added profile 'default' to '/private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp/srv/src/main/resources/application.yaml'.\n[INFO] ------------------------------------------------------------------------\n[INFO] Reactor Summary for demoapp parent 1.0.0-SNAPSHOT:\n[INFO] \n[INFO] demoapp parent ..................................... SUCCESS [ 0.253 s]\n[INFO] demoapp ............................................ SKIPPED\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 0.399 s\n[INFO] Finished at: 2024-07-05T15:05:17+05:30\n[INFO] ------------------------------------------------------------------------\n[\u001b[1;34mINFO\u001b[m] Project created from Archetype in dir: /private/var/folders/8g/nm9_ry5171x6qtqh8b0t25qm0000gn/T/demoapp_jyimUJ/demoapp\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1;32mBUILD SUCCESS\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] Total time: 3.456 s\n[\u001b[1;34mINFO\u001b[m] Finished at: 2024-07-05T15:05:17+05:30\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\nAdding feature 'sample'...\n[\u001b[1;34mINFO\u001b[m] Scanning for projects...\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mReactor Build Order:\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] demoapp parent [pom]\n[\u001b[1;34mINFO\u001b[m] demoapp [jar]\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m----------------------< \u001b[0;36mcustomer:demoapp-parent\u001b[0;1m >-----------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mBuilding demoapp parent 1.0.0-SNAPSHOT [1/2]\u001b[m\n[\u001b[1;34mINFO\u001b[m] from pom.xml\n[\u001b[1;34mINFO\u001b[m] \u001b[1m--------------------------------[ pom ]---------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] \u001b[1m--- \u001b[0;32mcds:2.10.1:add\u001b[m \u001b[1m(default-cli)\u001b[m @ \u001b[36mdemoapp-parent\u001b[0;1m ---\u001b[m\n[\u001b[1;34mINFO\u001b[m] AddMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/schema.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/data/sap.capire.bookshop-Genres.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/data/sap.capire.bookshop-Books_texts.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/data/sap.capire.bookshop-Authors.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/data/sap.capire.bookshop-Books.csv\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/cat-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/admin-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/manifest.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/webapp/Component.js\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/browse/fiori-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/manifest.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/webapp/Component.js\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/admin-books/fiori-service.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/common.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/_i18n/i18n.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/_i18n/i18n_de.properties\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/appconfig/fioriSandboxConfig.json\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/services.cds\n[\u001b[1;34mINFO\u001b[m] AddMojo: Writing file /Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/app/index.html\n[\u001b[1;34mINFO\u001b[m] AddMojo: Added dependency `org.springframework.boot:spring-boot-starter-security` to '/Users/I324829/Desktop/CAP/MyProjects/cds-feature-attachments/cap-notebook/demoapp/srv/pom.xml'.\nStandard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts\n[\u001b[1;33mWARNING\u001b[m] AddMojo: Profile 'default' exists and has been updated.\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1mReactor Summary for demoapp parent 1.0.0-SNAPSHOT:\u001b[m\n[\u001b[1;34mINFO\u001b[m] \n[\u001b[1;34mINFO\u001b[m] demoapp parent ..................................... \u001b[1;32mSUCCESS\u001b[m [ 0.292 s]\n[\u001b[1;34mINFO\u001b[m] demoapp ............................................ \u001b[1;33mSKIPPED\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1;32mBUILD SUCCESS\u001b[m\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n[\u001b[1;34mINFO\u001b[m] Total time: 0.415 s\n[\u001b[1;34mINFO\u001b[m] Finished at: 2024-07-05T15:05:18+05:30\n[\u001b[1;34mINFO\u001b[m] \u001b[1m------------------------------------------------------------------------\u001b[m\n\nSuccessfully created project. Continue with 'cd demoapp'.\nLearn about next steps at https://cap.cloud.sap\n\n" + "value": "Creating new CAP project" } ] }, From 729a83c767f6dc98e896e741bd7b025274b5fffa Mon Sep 17 00:00:00 2001 From: Rashmi Date: Thu, 22 Aug 2024 17:04:39 +0530 Subject: [PATCH 063/210] Update attachments-demo-app.capnb --- cap-notebook/attachments-demo-app.capnb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cap-notebook/attachments-demo-app.capnb b/cap-notebook/attachments-demo-app.capnb index 30223807..13a6377c 100644 --- a/cap-notebook/attachments-demo-app.capnb +++ b/cap-notebook/attachments-demo-app.capnb @@ -112,7 +112,7 @@ "outputs": [ { "mime": "text/plain", - "value": "[INFO] Scanning for projects...\n[INFO] \n[INFO] ----------------------------< customer:db >-----------------------------\n[INFO] Building db 1.0.0-SNAPSHOT\n[INFO] from pom.xml\n[INFO] --------------------------------[ jar ]---------------------------------\n[INFO] \n[INFO] --- clean:3.2.0:clean (default-clean) @ db ---\n[INFO] \n[INFO] --- flatten:1.6.0:clean (flatten.clean) @ db ---\n[INFO] \n[INFO] --- cds:2.10.1:clean (cds.clean) @ db ---\n[INFO] \n[INFO] --- enforcer:3.4.1:enforce (Project Structure Checks) @ db ---\n[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed\n[INFO] Rule 1: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed\n[INFO] Rule 2: org.apache.maven.enforcer.rules.ReactorModuleConvergence passed\n[INFO] \n[INFO] --- cds:2.10.1:resolve (cds.resolve) @ db ---\n[INFO] CdsResolveMojo: Extracting models from com.sap.cds:sdm:1.0.0-SNAPSHOT (/Users/I324829/.m2/repository/com/sap/cds/sdm/1.0.0-SNAPSHOT/sdm-1.0.0-SNAPSHOT.jar)\n[INFO] \n[INFO] --- resources:3.3.1:resources (default-resources) @ db ---\n[INFO] skip non existing resourceDirectory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/db/src/main/resources\n[INFO] \n[INFO] --- flatten:1.6.0:flatten (flatten) @ db ---\n[INFO] Generating flattened POM of project customer:db:jar:1.0.0-SNAPSHOT...\n[INFO] \n[INFO] --- compiler:3.12.1:compile (default-compile) @ db ---\n[INFO] No sources to compile\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 1.803 s\n[INFO] Finished at: 2024-07-05T15:05:22+05:30\n[INFO] ------------------------------------------------------------------------\n\n" + "value": "" } ] }, @@ -225,7 +225,7 @@ "outputs": [ { "mime": "text/plain", - "value": "[INFO] Scanning for projects...\n[INFO] \n[INFO] --------------------------< customer:demoapp >--------------------------\n[INFO] Building demoapp 1.0.0-SNAPSHOT\n[INFO] from pom.xml\n[INFO] --------------------------------[ jar ]---------------------------------\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.pom\nProgress (1): 4.2 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.pom (4.2 kB at 5.6 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.jar\nProgress (1): 7.2/135 kBProgress (1): 15/135 kB Progress (1): 32/135 kBProgress (1): 48/135 kBProgress (1): 65/135 kBProgress (1): 81/135 kBProgress (1): 97/135 kBProgress (1): 114/135 kBProgress (1): 130/135 kBProgress (1): 135 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-maven-plugin/3.2.6/spring-boot-maven-plugin-3.2.6.jar (135 kB at 228 kB/s)\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom\nProgress (1): 2.7 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.pom (2.7 kB at 17 kB/s)\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar\nDownloading from cap-java: https://int.repositories.cloud.sap/artifactory/proxy-cap-java/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar\nProgress (1): 6.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-starter-spring-boot/2.10.1/cds-starter-spring-boot-2.10.1.jar (6.8 kB at 44 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar\nProgress (1): 7.3/20 kBProgress (1): 16/20 kB Progress (2): 16/20 kB | 7.3/15 kBProgress (2): 16/20 kB | 15 kB Progress (2): 20 kB | 15 kB Progress (3): 20 kB | 15 kB | 7.3/375 kBProgress (3): 20 kB | 15 kB | 16/375 kB Progress (3): 20 kB | 15 kB | 32/375 kBProgress (4): 20 kB | 15 kB | 32/375 kB | 7.3/149 kBProgress (4): 20 kB | 15 kB | 32/375 kB | 16/149 kB Progress (4): 20 kB | 15 kB | 32/375 kB | 32/149 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-feature-jdbc/2.10.1/cds-feature-jdbc-2.10.1.jar (20 kB at 63 kB/s)\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-tx/2.10.1/cds4j-tx-2.10.1.jar (15 kB at 48 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar\nProgress (3): 32/375 kB | 32/149 kB | 7.3/16 kBProgress (3): 32/375 kB | 32/149 kB | 16/16 kB Progress (3): 32/375 kB | 32/149 kB | 16 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-jdbc-spi/2.10.1/cds4j-jdbc-spi-2.10.1.jar (16 kB at 50 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar\nProgress (2): 48/375 kB | 32/149 kBProgress (2): 65/375 kB | 32/149 kBProgress (2): 81/375 kB | 32/149 kBProgress (2): 81/375 kB | 48/149 kBProgress (2): 81/375 kB | 65/149 kBProgress (2): 81/375 kB | 81/149 kBProgress (3): 81/375 kB | 81/149 kB | 4.7 kBProgress (4): 81/375 kB | 81/149 kB | 4.7 kB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-json/3.2.6/spring-boot-starter-json-3.2.6.jar (4.7 kB at 10 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-web/3.2.6/spring-boot-starter-web-3.2.6.jar (4.8 kB at 10 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar\nProgress (3): 81/375 kB | 81/149 kB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-tomcat/3.2.6/spring-boot-starter-tomcat-3.2.6.jar (4.8 kB at 9.8 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar\nProgress (2): 97/375 kB | 81/149 kBProgress (2): 114/375 kB | 81/149 kBProgress (2): 130/375 kB | 81/149 kBProgress (2): 147/375 kB | 81/149 kBProgress (2): 163/375 kB | 81/149 kBProgress (2): 163/375 kB | 97/149 kBProgress (2): 179/375 kB | 97/149 kBProgress (2): 179/375 kB | 114/149 kBProgress (2): 179/375 kB | 130/149 kBProgress (2): 179/375 kB | 147/149 kBProgress (2): 179/375 kB | 149 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-framework-spring-boot/2.10.1/cds-framework-spring-boot-2.10.1.jar (149 kB at 245 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar\nProgress (2): 179/375 kB | 0/3.8 MBProgress (2): 179/375 kB | 0/3.8 MBProgress (3): 179/375 kB | 0/3.8 MB | 7.2/261 kBProgress (3): 179/375 kB | 0/3.8 MB | 15/261 kB Progress (3): 179/375 kB | 0/3.8 MB | 32/261 kBProgress (4): 179/375 kB | 0/3.8 MB | 32/261 kB | 7.2/282 kBProgress (4): 179/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kB Progress (4): 196/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 212/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 229/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 245/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 261/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 278/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 294/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 310/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 327/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 343/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 360/375 kB | 0/3.8 MB | 32/261 kB | 15/282 kBProgress (4): 375 kB | 0/3.8 MB | 32/261 kB | 15/282 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds4j-runtime/2.10.1/cds4j-runtime-2.10.1.jar (375 kB at 495 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar\nProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 32/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0/3.8 MB | 48/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0.1/3.8 MB | 48/261 kB | 15/282 kB | 0/1.9 MBProgress (4): 0.1/3.8 MB | 48/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 65/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 81/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 81/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 97/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 15/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 32/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 48/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 65/282 kB | 0.1/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 7.2/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 15/72 kB Progress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 32/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 48/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 65/72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.1/1.9 MB | 72 kB Progress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MB | 72 kBProgress (5): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MB | 72 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-observation/1.12.6/micrometer-observation-1.12.6.jar (72 kB at 79 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar\nProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 114/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 130/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 146/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.1/3.8 MB | 163/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.2/3.8 MB | 163/261 kB | 81/282 kB | 0.2/1.9 MBProgress (4): 0.2/3.8 MB | 163/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 179/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 196/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 196/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 212/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 228/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 245/261 kB | 81/282 kB | 0.3/1.9 MBProgress (4): 0.2/3.8 MB | 245/261 kB | 81/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261/261 kB | 81/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261 kB | 81/282 kB | 0.4/1.9 MB Progress (4): 0.2/3.8 MB | 261 kB | 97/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 261 kB | 114/282 kB | 0.4/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-el/10.1.24/tomcat-embed-el-10.1.24.jar (261 kB at 273 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar\nProgress (3): 0.2/3.8 MB | 130/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 146/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 163/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 179/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 196/282 kB | 0.4/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 7.2/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 15/47 kB Progress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 32/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 32/47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kB Progress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kBProgress (4): 0.2/3.8 MB | 212/282 kB | 0.4/1.9 MB | 47 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/io/micrometer/micrometer-commons/1.12.6/micrometer-commons-1.12.6.jar (47 kB at 45 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar\nProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.5/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.2/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.6/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.7/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.3/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.8/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 212/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 228/282 kB | 0.9/1.9 MBProgress (3): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 245/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 261/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 278/282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0/1.0 MB Progress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MBProgress (4): 0.4/3.8 MB | 282 kB | 0.9/1.9 MB | 0.1/1.0 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-websocket/10.1.24/tomcat-embed-websocket-10.1.24.jar (282 kB at 250 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar\nProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.1/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.2/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 0.9/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.0/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MB | 4.8 kBProgress (4): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-jdbc/3.2.6/spring-boot-starter-jdbc-3.2.6.jar (4.8 kB at 3.9 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar\nProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.4/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.1/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.2/1.9 MB | 0.3/1.0 MBProgress (3): 0.5/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.3/1.9 MB | 0.3/1.0 MBProgress (3): 0.6/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.4/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.7/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.8/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.3/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.4/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (3): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 7.2/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 15/467 kB Progress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.5/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 32/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 48/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 65/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.6/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 81/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.7/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 97/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 114/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 130/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 130/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.8/1.0 MB | 146/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 146/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 163/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 179/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 196/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 212/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 228/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 245/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 261/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 278/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 294/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.5/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.6/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.7/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.8/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9/1.9 MB | 0.9/1.0 MB | 310/467 kBProgress (4): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB Progress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 7.2/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 15/285 kB Progress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 32/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 48/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 65/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 81/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 97/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 114/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 130/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 146/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 163/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 179/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 196/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 196/285 kBProgress (5): 0.9/3.8 MB | 1.9 MB | 0.9/1.0 MB | 310/467 kB | 212/285 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-web/6.1.8/spring-web-6.1.8.jar (1.9 MB at 1.4 MB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar\nProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 228/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 228/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 0.9/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 245/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 261/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 261/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 278/285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kB Progress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.0/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kBProgress (4): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kB | 285 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-tx/6.1.8/spring-tx-6.1.8.jar (285 kB at 203 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar\nProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.1/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.2/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.3/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.4/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.5/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.6/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.7/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 0.9/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 310/467 kBProgress (3): 1.8/3.8 MB | 1.0/1.0 MB | 327/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 327/467 kB Progress (3): 1.8/3.8 MB | 1.0 MB | 343/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 359/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 376/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 392/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 409/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 425/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 441/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 458/467 kBProgress (3): 1.8/3.8 MB | 1.0 MB | 467 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-webmvc/6.1.8/spring-webmvc-6.1.8.jar (1.0 MB at 712 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-jdbc/6.1.8/spring-jdbc-6.1.8.jar (467 kB at 318 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar\nProgress (1): 1.8/3.8 MBProgress (1): 1.8/3.8 MBProgress (1): 1.9/3.8 MBProgress (1): 1.9/3.8 MBProgress (1): 1.9/3.8 MBProgress (2): 1.9/3.8 MB | 7.3/372 kBProgress (2): 1.9/3.8 MB | 16/372 kB Progress (2): 1.9/3.8 MB | 32/372 kBProgress (2): 1.9/3.8 MB | 48/372 kBProgress (2): 1.9/3.8 MB | 65/372 kBProgress (2): 1.9/3.8 MB | 81/372 kBProgress (2): 1.9/3.8 MB | 97/372 kBProgress (2): 1.9/3.8 MB | 114/372 kBProgress (2): 1.9/3.8 MB | 130/372 kBProgress (2): 1.9/3.8 MB | 147/372 kBProgress (2): 1.9/3.8 MB | 163/372 kBProgress (2): 1.9/3.8 MB | 179/372 kBProgress (2): 1.9/3.8 MB | 196/372 kBProgress (2): 1.9/3.8 MB | 212/372 kBProgress (2): 1.9/3.8 MB | 229/372 kBProgress (2): 1.9/3.8 MB | 245/372 kBProgress (2): 1.9/3.8 MB | 261/372 kBProgress (2): 1.9/3.8 MB | 261/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 278/372 kBProgress (2): 1.9/3.8 MB | 294/372 kBProgress (2): 1.9/3.8 MB | 310/372 kBProgress (2): 1.9/3.8 MB | 327/372 kBProgress (2): 1.9/3.8 MB | 343/372 kBProgress (2): 1.9/3.8 MB | 343/372 kBProgress (2): 2.0/3.8 MB | 343/372 kBProgress (2): 2.0/3.8 MB | 360/372 kBProgress (2): 2.0/3.8 MB | 372 kB Progress (3): 2.0/3.8 MB | 372 kB | 0/1.7 MBProgress (3): 2.0/3.8 MB | 372 kB | 0/1.7 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/cds-adapter-odata-v4/2.10.1/cds-adapter-odata-v4-2.10.1.jar (372 kB at 238 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar\nProgress (2): 2.0/3.8 MB | 0/1.7 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.1/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.2/1.6 MBProgress (3): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 7.2/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 15/203 kB Progress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 32/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 48/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.3/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 65/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 81/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (4): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.1/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.0/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.2/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.4/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 97/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.5/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 114/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.6/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.7/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.8/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 0.9/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.0/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.1/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.3/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.4/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.1/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.2/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.3/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.4/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.5/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.6/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.7/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.8/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.2/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 2.9/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.0/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.1/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.2/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.3/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.3/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.4/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.4/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.5/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.5/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.6/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6/1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MB Progress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.7/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8/3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MBProgress (5): 3.8 MB | 0.1/1.7 MB | 1.6 MB | 130/203 kB | 0.5/1.3 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot/3.2.6/spring-boot-3.2.6.jar (1.6 MB at 825 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar\nDownloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/apache/tomcat/embed/tomcat-embed-core/10.1.24/tomcat-embed-core-10.1.24.jar (3.8 MB at 2.0 MB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar\nProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.1/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.2/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.3/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.4/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.5/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.6/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.5/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.6/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.7/1.3 MBProgress (3): 0.7/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.8/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 0.9/1.3 MBProgress (3): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 146/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 163/203 kB | 1.0/1.3 MB | 0/1.9 MBProgress (4): 0.8/1.7 MB | 163/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 179/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.1/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kBProgress (5): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter/3.2.6/spring-boot-starter-3.2.6.jar (4.8 kB at 2.2 kB/s)\nProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.2/1.9 MB Downloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar\nProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 196/203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MB Progress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.3/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.4/1.9 MBProgress (4): 0.8/1.7 MB | 203 kB | 1.0/1.3 MB | 0.5/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-devtools/3.2.6/spring-boot-devtools-3.2.6.jar (203 kB at 96 kB/s)\nProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MB Downloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar\nProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.5/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.0/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.1/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.2/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3/1.3 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 1.3 MB | 0.6/1.9 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-context/6.1.8/spring-context-6.1.8.jar (1.3 MB at 580 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar\nProgress (3): 0.8/1.7 MB | 0.6/1.9 MB | 4.8 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-logging/3.2.6/spring-boot-starter-logging-3.2.6.jar (4.8 kB at 2.1 kB/s)\nDownloading from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar\nProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (2): 0.8/1.7 MB | 0.6/1.9 MBProgress (3): 0.8/1.7 MB | 0.6/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.7/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.8/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kBProgress (3): 0.8/1.7 MB | 0.9/1.9 MB | 4.7 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-starter-security/3.2.6/spring-boot-starter-security-3.2.6.jar (4.7 kB at 2.1 kB/s)\nProgress (2): 0.8/1.7 MB | 0.9/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.0/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.1/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.8/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 0.9/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.0/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.1/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.2/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.3/1.7 MB | 1.2/1.9 MBProgress (2): 1.4/1.7 MB | 1.2/1.9 MBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 7.2/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 15/416 kB Progress (3): 1.4/1.7 MB | 1.2/1.9 MB | 32/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 48/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 65/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 81/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 97/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 114/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 130/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 146/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 163/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 179/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 196/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 212/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 228/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 245/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 261/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 278/416 kBProgress (3): 1.4/1.7 MB | 1.2/1.9 MB | 294/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 294/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 310/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 310/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.3/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 327/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 343/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 359/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 376/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 392/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 392/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 409/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 409/416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kB Progress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.4/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.5/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.6/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.7/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.8/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9/1.9 MB | 416 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 416 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-aop/6.1.8/spring-aop-6.1.8.jar (416 kB at 171 kB/s)\nProgress (3): 1.4/1.7 MB | 1.9 MB | 7.2/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 15/303 kB Progress (3): 1.4/1.7 MB | 1.9 MB | 32/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 48/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 65/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 81/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 97/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 114/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 130/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 146/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 163/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 163/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 179/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 179/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 196/303 kBProgress (3): 1.4/1.7 MB | 1.9 MB | 212/303 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/boot/spring-boot-autoconfigure/3.2.6/spring-boot-autoconfigure-3.2.6.jar (1.9 MB at 793 kB/s)\nProgress (2): 1.4/1.7 MB | 228/303 kBProgress (2): 1.4/1.7 MB | 228/303 kBProgress (2): 1.4/1.7 MB | 245/303 kBProgress (2): 1.4/1.7 MB | 261/303 kBProgress (2): 1.4/1.7 MB | 261/303 kBProgress (2): 1.4/1.7 MB | 278/303 kBProgress (2): 1.4/1.7 MB | 294/303 kBProgress (2): 1.4/1.7 MB | 303 kB Progress (2): 1.4/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.5/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kBProgress (2): 1.6/1.7 MB | 303 kB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/org/springframework/spring-expression/6.1.8/spring-expression-6.1.8.jar (303 kB at 123 kB/s)\nProgress (1): 1.6/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7/1.7 MBProgress (1): 1.7 MB Downloaded from artifactory: https://int.repositories.cloud.sap/artifactory/build-snapshots/com/sap/cds/repackaged/odata-v4-lib/2.10.1/odata-v4-lib-2.10.1.jar (1.7 MB at 658 kB/s)\n[INFO] \n[INFO] --- clean:3.2.0:clean (default-clean) @ demoapp ---\n[INFO] \n[INFO] --- flatten:1.6.0:clean (flatten.clean) @ demoapp ---\n[INFO] \n[INFO] --- cds:2.10.1:clean (cds.clean) @ demoapp ---\n[INFO] \n[INFO] --- enforcer:3.4.1:enforce (Project Structure Checks) @ demoapp ---\n[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed\n[INFO] Rule 1: org.apache.maven.enforcer.rules.version.RequireJavaVersion passed\n[INFO] Rule 2: org.apache.maven.enforcer.rules.ReactorModuleConvergence passed\n[INFO] \n[INFO] --- cds:2.10.1:install-node (cds.install-node) @ demoapp ---\n[INFO] InstallNodeMojo: Installing Node.js v18.20.2\n[INFO] InstallNodeMojo: Downloading https://nodejs.org/dist/v18.20.2/node-v18.20.2-darwin-arm64.tar.gz to /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/archive/18.20.2/archive-18.20.2-darwin-arm64.tar.gz\n[INFO] InstallNodeMojo: No proxy was configured, downloading directly.\nStandard Commons Logging discovery in action with spring-jcl: please remove commons-logging.jar from classpath in order to avoid potential conflicts\n[INFO] InstallNodeMojo: Unpacking /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/archive/18.20.2/archive-18.20.2-darwin-arm64.tar.gz into /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz\n[INFO] \n[INFO] --- cds:2.10.1:install-cdsdk (cds.install-cdsdk) @ demoapp ---\n[INFO] InstallCdsdkMojo: Using npm provided by goal install-node: /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npm\n[INFO] InstallCdsdkMojo: Identified /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp as reactor base directory.\n[INFO] InstallCdsdkMojo: Using directory containing a .cdsrc.json as working directory: /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: Installing @sap/cds-dk@7.9.3 into: /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npm, install, @sap/cds-dk@7.9.3, --no-save] in working directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] InstallCdsdkMojo: \nadded 338 packages, and audited 339 packages in 10s\n\n47 packages are looking for funding\n run `npm fund` for details\n\n1 high severity vulnerability\n\nTo address all issues, run:\n npm audit fix\n\nRun `npm audit` for details.\n\n[INFO] \n[INFO] --- cds:2.10.1:resolve (cds.resolve) @ demoapp ---\n[INFO] CdsResolveMojo: Extracting models from com.sap.cds:sdm:1.0.0-SNAPSHOT (/Users/I324829/.m2/repository/com/sap/cds/sdm/1.0.0-SNAPSHOT/sdm-1.0.0-SNAPSHOT.jar)\n[INFO] \n[INFO] --- cds:2.10.1:cds (cds.build) @ demoapp ---\n[INFO] CdsMojo: Using npx provided by goal install-node: /Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx\n[INFO] CdsMojo: Using directory containing a .cdsrc.json as working directory: /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds version] in working directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] CdsMojo: Using configured working directory: /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds build --for java] in working directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] CdsMojo: building project [/Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp], clean [true]\ncds-dk [7.9.3], cds [7.9.2], compiler [4.9.4], home [/Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/node_modules/@sap/cds-dk/node_modules/@sap/cds]\n\n{\n build: {\n target: '.',\n tasks: [\n { for: 'java', src: 'srv', options: { model: ['db', 'srv', 'app'] }}\n ]\n }\n}\n\nwriting generation log to [/Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/target/cds-build.log]\n\ndone > wrote output to:\n srv/src/main/resources/edmx/AdminService.xml\n srv/src/main/resources/edmx/AdminService_ar.xml\n srv/src/main/resources/edmx/AdminService_cs.xml\n srv/src/main/resources/edmx/AdminService_da.xml\n srv/src/main/resources/edmx/AdminService_de.xml\n srv/src/main/resources/edmx/AdminService_en.xml\n srv/src/main/resources/edmx/AdminService_es.xml\n srv/src/main/resources/edmx/AdminService_es_MX.xml\n srv/src/main/resources/edmx/AdminService_fi.xml\n srv/src/main/resources/edmx/AdminService_fr.xml\n srv/src/main/resources/edmx/AdminService_hu.xml\n srv/src/main/resources/edmx/AdminService_it.xml\n srv/src/main/resources/edmx/AdminService_ja.xml\n srv/src/main/resources/edmx/AdminService_ko.xml\n srv/src/main/resources/edmx/AdminService_ms.xml\n srv/src/main/resources/edmx/AdminService_nl.xml\n srv/src/main/resources/edmx/AdminService_no.xml\n srv/src/main/resources/edmx/AdminService_pl.xml\n srv/src/main/resources/edmx/AdminService_pt.xml\n srv/src/main/resources/edmx/AdminService_ro.xml\n srv/src/main/resources/edmx/AdminService_ru.xml\n srv/src/main/resources/edmx/AdminService_sv.xml\n srv/src/main/resources/edmx/AdminService_th.xml\n srv/src/main/resources/edmx/AdminService_tr.xml\n srv/src/main/resources/edmx/AdminService_zh_CN.xml\n srv/src/main/resources/edmx/AdminService_zh_TW.xml\n srv/src/main/resources/edmx/CatalogService.xml\n srv/src/main/resources/edmx/CatalogService_ar.xml\n srv/src/main/resources/edmx/CatalogService_cs.xml\n srv/src/main/resources/edmx/CatalogService_da.xml\n ... 26 more. Run with DEBUG=build to show all files.\n\nbuild completed in 919 ms\n[INFO] CdsMojo: Executing [/Users/I324829/.m2/repository/com/sap/cds/cds-maven-plugin/cache/unpacked/18.20.2/unpacked-18.20.2-darwin-arm64.tar.gz/node-v18.20.2-darwin-arm64/bin/npx, -c, cds deploy --to h2 --dry > \"/Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/main/resources/schema-h2.sql\"] in working directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp\n[INFO] CdsMojo: \n[INFO] \n[INFO] --- cds:2.10.1:generate (cds.generate) @ demoapp ---\n[INFO] GenerateMojo: Adding code output directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/gen/java to compile source directories.\n[INFO] GenerateMojo: Adding directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/gen/resources to resources.\n[INFO] GenerateMojo: Scanning directory /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/main/resources for [**/csn.json], excluding [**/db/changelog/**/csn.json].\n[INFO] GenerateMojo: Using /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/main/resources/edmx/csn.json to generate Java classes into /Users/I324829/Desktop/CAP/MyProjects/sdm/cap-notebook/demoapp/srv/src/gen.\n[INFO] GenerateMojo: Using module srv: groupId=customer, artifactId=demoapp, version=1.0.0-SNAPSHOT\n[INFO] GenerateMojo: Class generation finished successfully\n[INFO] \n[INFO] --- resources:3.3.1:resources (default-resources) @ demoapp ---\n[INFO] Copying 58 resources from src/main/resources to target/classes\n[INFO] Copying 1 resource from src/gen/resources to target/classes\n[INFO] \n[INFO] --- flatten:1.6.0:flatten (flatten) @ demoapp ---\n[INFO] Generating flattened POM of project customer:demoapp:jar:1.0.0-SNAPSHOT...\n[INFO] \n[INFO] --- compiler:3.12.1:compile (default-compile) @ demoapp ---\n[INFO] Recompiling the module because of changed source code.\n[INFO] Compiling 104 source files with javac [debug release 17] to target/classes\n[INFO] ------------------------------------------------------------------------\n[INFO] BUILD SUCCESS\n[INFO] ------------------------------------------------------------------------\n[INFO] Total time: 32.111 s\n[INFO] Finished at: 2024-07-05T15:05:57+05:30\n[INFO] ------------------------------------------------------------------------\n\n" + "value": "" } ] }, From bcf111286e22b407e468ec9b5c03bd2dd95b6e7b Mon Sep 17 00:00:00 2001 From: yashmeet29 <160218676+yashmeet29@users.noreply.github.com> Date: Mon, 16 Sep 2024 10:25:30 +0530 Subject: [PATCH 064/210] Update dep5 (#21) --- .reuse/dep5 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.reuse/dep5 b/.reuse/dep5 index 15357ae3..aea03e34 100644 --- a/.reuse/dep5 +++ b/.reuse/dep5 @@ -25,5 +25,5 @@ Disclaimer: The code in this project may include calls to APIs ("API Calls") of parties the right to use of access any SAP External Product, through API Calls. Files: * -Copyright: 2024 SAP SE or an SAP affiliate company and kafka contributors +Copyright: 2024 SAP SE or an SAP affiliate company and sdm contributors License: Apache-2.0 From 13c2d701bf870f4311ba37ae59fe6c540af8c854 Mon Sep 17 00:00:00 2001 From: Rishi Kunnath <82925475+rishikunnath2747@users.noreply.github.com> Date: Wed, 18 Sep 2024 13:33:18 +0530 Subject: [PATCH 065/210] [SDMEXT-696] README (#22) * Adding readme This commit adds the readme file to the repository. Currently the readme file doesn't contain steps to use the plugin. This is so that the further tasks aren't blocked. * Adding section * update host application name * fix * fix * fixjs * fix * fix statuscode * update * fix numbering * fiori-service * Addressing comments * remove db file * fix pom * change text --------- Co-authored-by: yashmeet29 <160218676+yashmeet29@users.noreply.github.com> --- README.md | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 142 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 193730d6..9f71b120 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,143 @@ -# CAP Java plugin for SAP Document Management Service +[![REUSE status](https://api.reuse.software/badge/github.com/cap-java/sdm)](https://api.reuse.software/info/github.com/cap-java/sdm) + +# CAP plugin for SAP Document Management Service The project is currently in the development stage, where our team is actively working on building and refining its core components to ensure it meets all specified requirements and objectives. + +The **@cap-java/sdm** package is [cds-plugin](https://cap.cloud.sap/docs/java/cds-plugins#cds-plugin-packages) that provides an easy CAP-level integration with [SAP Document Management Service](https://discovery-center.cloud.sap/serviceCatalog/document-management-service-integration-option). This package supports handling of attachments(documents) by using an aspect Attachments in SAP Document Management Service. +This plugin can be consumed by the CAP application deployed on BTP to store their documents in the form of attachments in Document Management Repository. + +## Key features + +- Create attachment : Provides the capability to upload new attachments. +- Virus scanning : Provides the capability to support virus scan for virus scan enabled repositories. +- Draft functionality : Provides the capability of working with draft attachments. + +## Table of Contents + +- [Pre-Requisites](#pre-requisites) +- [Deploying and testing the application](#deploying-and-testing-the-application) +- [Use @cap-java/sdm plugin](#use-cap-javasdm-plugin) +- [Known Restrictions](#known-restrictions) +- [Support, Feedback, Contributing](#support-feedback-contributing) +- [Code of Conduct](#code-of-conduct) +- [Licensing](#licensing) + +## Pre-Requisites +* Java 17 or higher +* CAP Development Kit (`npm install -g @sap/cds-dk`) +* SAP Build WorkZone should be subscribed to view the HTML5Applications. +* [MTAR builder](https://www.npmjs.com/package/mbt) (`npm install -g mbt`) +* [Cloud Foundry CLI](https://docs.cloudfoundry.org/cf-cli/install-go-cli.html), Install cf-cli and run command `cf install-plugin multiapps`. + +## Deploying and testing the application + +1. Log in to Cloud Foundry space: + + ```sh + cf login -a -o -s + ``` + +2. Create a SAP Document Management Integration Option [Service instance and key](https://help.sap.com/docs/document-management-service/sap-document-management-service/creating-service-instance-and-service-key). Bind your CAP application to this SDM instance. Add the details of this instance to the resources section in the `mta.yaml` of your CAP application. Refer the following example from a sample Bookshop app. + + ``` + modules: + - name: bookshop-srv + type: java + path: srv + requires: + - name: sdm-di-instance + + resources: + - name: sdm-di-instance + type: org.cloudfoundry.managed-service + parameters: + service: sdm + service-plan: standard + ``` +3. Using the created SDM instance's credentials from key [onboard a repository](https://help.sap.com/docs/document-management-service/sap-document-management-service/onboarding-repository). In mta.yaml, under properties of the srv module add the repository id. Refer the following example from a sample Bookshop app. Currently only non versioned repositories are supported. + + ``` + modules: + - name: bookshop-srv + type: java + path: srv + properties: + REPOSITORY_ID: + requires: + - name: sdm-di-instance + ``` + +4. Add the following pom dependency in the _srv_ folder + + ```sh + + com.sap.cds + sdm + 1.0.0-SNAPSHOT + + ``` + +5. In the _app/index.html_ file you will find this line + ```sh +