diff --git a/Jenkinsfile b/Jenkinsfile index dc5515e00235effd7deda373790fd043dd5a3a28..eb71dcd5841ca8084d4d91e58ce0188110fbd7f1 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -8,7 +8,7 @@ pipeline { } environment { - BLUE_OCEAN_URL = "https://jenkins.infra.ozg-cloud.systems/job/kop-common/job/${env.BRANCH_NAME}/${env.BUILD_NUMBER}/" + BLUE_OCEAN_URL = "https://jenkins.infra.ozg-cloud.systems/job/ozgcloud-common/job/${env.BRANCH_NAME}/${env.BUILD_NUMBER}/" RELEASE_REGEX = /\d+.\d+.\d+/ SNAPSHOT_REGEX = /\d+.\d+.\d+-SNAPSHOT/ } @@ -27,10 +27,10 @@ pipeline { def rootPom = readMavenPom file: 'pom.xml' def rootVersion = rootPom.version - def dependenciesPom = readMavenPom file: 'kop-common-dependencies/pom.xml' + def dependenciesPom = readMavenPom file: 'ozgcloud-common-dependencies/pom.xml' def dependenciesVersion = dependenciesPom.parent.version - def parentPom = readMavenPom file: 'kop-common-parent/pom.xml' + def parentPom = readMavenPom file: 'ozgcloud-common-parent/pom.xml' def parentVersion = parentPom.version if(env.BRANCH_NAME == 'release'){ @@ -49,12 +49,12 @@ pipeline { } } }*/ - stage('Build Kop-Common Dependencies') { + stage('Build OzgCloud-Common Dependencies') { steps { script { FAILED_STAGE=env.STAGE_NAME } - dir('kop-common-dependencies') { + dir('ozgcloud-common-dependencies') { configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) { sh 'mvn --version' sh 'mvn -s $MAVEN_SETTINGS clean install' @@ -64,7 +64,7 @@ pipeline { } - stage('Build Kop-Common') { + stage('Build OzgCloud-Common') { steps { script { FAILED_STAGE=env.STAGE_NAME @@ -74,7 +74,7 @@ pipeline { sh 'mvn -s $MAVEN_SETTINGS clean install' script { - dir('kop-common-lib') { + dir('ozgcloud-common-lib') { try { if (env.BRANCH_NAME == 'master') { withSonarQubeEnv('sonarqube-ozg-sh'){ @@ -90,11 +90,13 @@ pipeline { } } - stage('Deploy Kop-Common to Nexus'){ + stage('Deploy OzgCloud-Common to Nexus'){ when { anyOf { branch 'master' branch 'release' + branch 'version-2' + branch 'release-v2' } } steps { @@ -121,9 +123,9 @@ pipeline { Void sendFailureMessage() { def room = '' def data = """{"msgtype":"m.text", \ - "body":"kop-common: Build Failed. Stage: ${FAILED_STAGE} Build-ID: ${env.BUILD_NUMBER} Link: ${BLUE_OCEAN_URL}", \ + "body":"ozgcloud-common: Build Failed. Stage: ${FAILED_STAGE} Build-ID: ${env.BUILD_NUMBER} Link: ${BLUE_OCEAN_URL}", \ "format": "org.matrix.custom.html", \ - "formatted_body":"kop-common: Build Failed. Stage: ${FAILED_STAGE} Build-ID: <a href='${BLUE_OCEAN_URL}'>${env.BUILD_NUMBER}</a>"}""" + "formatted_body":"ozgcloud-common: Build Failed. Stage: ${FAILED_STAGE} Build-ID: <a href='${BLUE_OCEAN_URL}'>${env.BUILD_NUMBER}</a>"}""" if (env.BRANCH_NAME == 'master') { room = "!iQPAvQIiRwRpNOszjw:matrix.ozg-sh.de" diff --git a/kop-common-dependencies/pom.xml b/ozgcloud-common-dependencies/pom.xml similarity index 67% rename from kop-common-dependencies/pom.xml rename to ozgcloud-common-dependencies/pom.xml index 94bba2b030c6705658b806bec62f9c80a60809fb..9f827e3cf8e0ab57900f74d5ac46d5bd078976da 100644 --- a/kop-common-dependencies/pom.xml +++ b/ozgcloud-common-dependencies/pom.xml @@ -23,60 +23,62 @@ unter der Lizenz sind dem Lizenztext zu entnehmen. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common</artifactId> - <version>1.10.0-SNAPSHOT</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common</artifactId> + <version>3.0.0-SNAPSHOT</version> </parent> - <artifactId>kop-common-dependencies</artifactId> - <name>Kop Common - Dependencies</name> + <artifactId>ozgcloud-common-dependencies</artifactId> + <name>OzgCloud Common - Dependencies</name> <packaging>pom</packaging> - <description>Dependenencies management for kop projects</description> + <description>Dependenencies management for ozgcloud projects</description> <properties> - <pluto.version>1.14.0</pluto.version> + <vorgang-manager.version>2.0.0-SNAPSHOT</vorgang-manager.version> <license.version>1.8.0</license.version> <java.version>17</java.version> - <maven.compiler.source>${java.version}</maven.compiler.source> - <maven.compiler.target>${java.version}</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <spring-boot.version>2.7.16</spring-boot.version> - <spring.version>5.3.30</spring.version> + <spring-boot.version>3.1.6</spring-boot.version> + <spring.version>6.0.14</spring.version> + + <grpc.spring-boot-starter.version>5.0.0</grpc.spring-boot-starter.version> + + <net.devh.grpc.spring-boot-server-starter.version>2.14.0.RELEASE</net.devh.grpc.spring-boot-server-starter.version> + <net.devh.grpc.spring-boot-client-starter.version>2.14.0.RELEASE</net.devh.grpc.spring-boot-client-starter.version> + <grpc.version>1.59.0</grpc.version> + - <grpc.spring-boot-starter.version>2.14.0.RELEASE</grpc.spring-boot-starter.version> - <grpc.version>1.57.2</grpc.version> <protoc-jar-plugin.version>3.11.4</protoc-jar-plugin.version> - <protobuf.version>3.24.1</protobuf.version> - <protoc-gen.version>1.57.2</protoc-gen.version> + + <protobuf.version>3.25.1</protobuf.version> + <protoc-gen.version>1.59.0</protoc-gen.version> <mapstruct.version>1.5.5.Final</mapstruct.version> - <commons-io.version>2.13.0</commons-io.version> + <commons-io.version>2.15.0</commons-io.version> <commons-beanutils.version>1.9.4</commons-beanutils.version> - <commons-lang3.version>3.12.0</commons-lang3.version> + <commons-lang3.version>3.14.0</commons-lang3.version> <commons-collections.version>4.4</commons-collections.version> <java-jwt.version>4.4.0</java-jwt.version> - <jjwt.version>0.11.5</jjwt.version> + <jjwt.version>0.12.3</jjwt.version> -<!--TODO update - welche version verwendet ops --> - <keycloak-adapter.version>18.0.0</keycloak-adapter.version> - <keycloak-spring-boot-starter.version>18.0.0</keycloak-spring-boot-starter.version> <jakarta.version>2.1.0</jakarta.version> - <quarkus.platform.version>2.16.9.Final</quarkus.platform.version> + <quarkus.platform.version>3.5.3</quarkus.platform.version> <!-- Test --> <lorem.version>2.1</lorem.version> <faker.version>1.0.2</faker.version> - - <!--overriden to fix security issue CVE-2022-1471 --> - <snakeyaml.version>2.0</snakeyaml.version> </properties> <dependencyManagement> @@ -92,43 +94,43 @@ <!-- own projects --> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-lib</artifactId> - <version>${kop-common.version}</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-lib</artifactId> + <version>${ozgcloud-common.version}</version> </dependency> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-test</artifactId> - <version>${kop-common.version}</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-test</artifactId> + <version>${ozgcloud-common.version}</version> <scope>test</scope> </dependency> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-license</artifactId> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-license</artifactId> <version>${license.version}</version> </dependency> <dependency> - <groupId>de.itvsh.ozg.pluto</groupId> - <artifactId>pluto-interface</artifactId> - <version>${pluto.version}</version> + <groupId>de.ozgcloud.vorgang-manager</groupId> + <artifactId>vorgang-manager-interface</artifactId> + <version>${vorgang-manager.version}</version> </dependency> <dependency> - <groupId>de.itvsh.ozg.pluto</groupId> - <artifactId>pluto-utils</artifactId> - <version>${pluto.version}</version> + <groupId>de.ozgcloud.vorgang-manager</groupId> + <artifactId>vorgang-manager-utils</artifactId> + <version>${vorgang-manager.version}</version> </dependency> <dependency> - <groupId>de.itvsh.ozg.pluto</groupId> - <artifactId>pluto-utils</artifactId> + <groupId>de.ozgcloud.vorgang-manager</groupId> + <artifactId>vorgang-manager-utils</artifactId> <type>test-jar</type> - <version>${pluto.version}</version> + <version>${vorgang-manager.version}</version> <scope>test</scope> </dependency> <dependency> - <groupId>de.itvsh.ozg.pluto</groupId> - <artifactId>pluto-command</artifactId> - <version>${pluto.version}</version> + <groupId>de.ozgcloud.vorgang-manager</groupId> + <artifactId>vorgang-manager-command</artifactId> + <version>${vorgang-manager.version}</version> </dependency> <!-- spring --> @@ -169,15 +171,26 @@ <!-- grpc --> <dependency> - <groupId>net.devh</groupId> + <groupId>io.github.lognet</groupId> + <artifactId>grpc-spring-boot-starter</artifactId> + <version>${grpc.spring-boot-starter.version}</version> + </dependency> + <dependency> + <groupId>io.github.lognet</groupId> <artifactId>grpc-client-spring-boot-starter</artifactId> <version>${grpc.spring-boot-starter.version}</version> </dependency> + <dependency> + <groupId>net.devh</groupId> + <artifactId>grpc-client-spring-boot-starter</artifactId> + <version>${net.devh.grpc.spring-boot-client-starter.version}</version> + </dependency> <dependency> <groupId>net.devh</groupId> <artifactId>grpc-server-spring-boot-starter</artifactId> - <version>${grpc.spring-boot-starter.version}</version> + <version>${net.devh.grpc.spring-boot-server-starter.version}</version> </dependency> + <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-stub</artifactId> @@ -228,6 +241,17 @@ <artifactId>jjwt-api</artifactId> <version>${jjwt.version}</version> </dependency> + <dependency> + <groupId>io.jsonwebtoken</groupId> + <artifactId>jjwt-impl</artifactId> + <version>${jjwt.version}</version> + </dependency> + <dependency> + <groupId>io.jsonwebtoken</groupId> + <artifactId>jjwt-jackson</artifactId> + <version>${jjwt.version}</version> + <scope>runtime</scope> + </dependency> <!-- TODO legacy - pleace remove --> <dependency> <groupId>io.jsonwebtoken</groupId> @@ -283,5 +307,12 @@ <url>https://nexus.ozg-sh.de/repository/ozg-snapshots/</url> </snapshotRepository> </distributionManagement> + <dependencies> + <dependency> + <groupId>org.glassfish.jaxb</groupId> + <artifactId>jaxb-runtime</artifactId> + <scope>runtime</scope> + </dependency> + </dependencies> </project> diff --git a/kop-common-lib/pom.xml b/ozgcloud-common-lib/pom.xml similarity index 88% rename from kop-common-lib/pom.xml rename to ozgcloud-common-lib/pom.xml index 97d9a9b66b332e254a4debfc30f15a8162513665..21e84c9b6e7afe8748a3da7689a5ea4324731376 100644 --- a/kop-common-lib/pom.xml +++ b/ozgcloud-common-lib/pom.xml @@ -28,27 +28,27 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common</artifactId> - <version>1.10.0-SNAPSHOT</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common</artifactId> + <version>3.0.0-SNAPSHOT</version> </parent> - <artifactId>kop-common-lib</artifactId> - <name>Kop Common - Shared Lib</name> + <artifactId>ozgcloud-common-lib</artifactId> + <name>OzgCloud Common - Shared Lib</name> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> - <mockito.version>4.8.1</mockito.version> + <mockito.version>5.7.0</mockito.version> </properties> <dependencyManagement> <dependencies> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-dependencies</artifactId> - <version>${kop-common.version}</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-dependencies</artifactId> + <version>${ozgcloud-common.version}</version> <type>pom</type> <scope>import</scope> </dependency> @@ -71,6 +71,11 @@ <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> </dependency> + <dependency> + <groupId>org.glassfish.jaxb</groupId> + <artifactId>jaxb-runtime</artifactId> + <scope>runtime</scope> + </dependency> <!-- grpc --> <dependency> <groupId>io.grpc</groupId> diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/BinaryFileUploadStreamObserver.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/BinaryFileUploadStreamObserver.java similarity index 91% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/BinaryFileUploadStreamObserver.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/BinaryFileUploadStreamObserver.java index 26a62a2e7d8f88c30543457829538c818d3e6b2b..5d58d91becac1cb8181f99c6ec6699eb28ef1d22 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/BinaryFileUploadStreamObserver.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/BinaryFileUploadStreamObserver.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.binaryfile; +package de.ozgcloud.common.binaryfile; import java.util.concurrent.CompletableFuture; @@ -30,7 +30,9 @@ import io.grpc.stub.ClientResponseObserver; import lombok.AccessLevel; import lombok.Getter; import lombok.RequiredArgsConstructor; +import lombok.extern.log4j.Log4j2; +@Log4j2 @RequiredArgsConstructor(access = AccessLevel.PRIVATE) public class BinaryFileUploadStreamObserver<ReqT, R> implements ClientResponseObserver<ReqT, R> { @@ -56,11 +58,13 @@ public class BinaryFileUploadStreamObserver<ReqT, R> implements ClientResponseOb @Override public void onError(Throwable t) { + LOG.error("Error on uploading file. Completing Future.", t); future.completeExceptionally(t); } @Override public void onCompleted() { + LOG.debug("Complete future..."); future.complete(response); } diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/FileDataDeserializer.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/FileDataDeserializer.java similarity index 95% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/FileDataDeserializer.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/FileDataDeserializer.java index 3b5405ff578ab23823efca4c165c51e44711c61e..19232b22173a96d5295f18f0c58a7f6f20a8297f 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/FileDataDeserializer.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/FileDataDeserializer.java @@ -1,4 +1,4 @@ -package de.itvsh.kop.common.binaryfile; +package de.ozgcloud.common.binaryfile; import java.io.File; import java.io.FileOutputStream; diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/FileId.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/FileId.java similarity index 93% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/FileId.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/FileId.java index a835af8f3dd36b41818e5433490bbaa0b7cf100c..e4a43113749a55afa4b1e3a5303388a23790d004 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/FileId.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/FileId.java @@ -21,12 +21,12 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.binaryfile; +package de.ozgcloud.common.binaryfile; import java.util.Objects; import java.util.UUID; -import de.itvsh.kop.common.datatype.StringBasedValue; +import de.ozgcloud.common.datatype.StringBasedValue; import lombok.EqualsAndHashCode; @EqualsAndHashCode(callSuper = true) diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/GrpcFileUploadUtils.java similarity index 59% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/GrpcFileUploadUtils.java index d8f82a7b7a6b5a55f4674aaa0801096719fc4419..276ccf3aeeb7f61b5c6bda33de677d3943797ec0 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtils.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/GrpcFileUploadUtils.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.binaryfile; +package de.ozgcloud.common.binaryfile; import java.io.IOException; import java.io.InputStream; @@ -29,36 +29,40 @@ import java.util.Objects; import java.util.Optional; import java.util.concurrent.CompletableFuture; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.BiFunction; import java.util.function.Function; import org.apache.commons.io.IOUtils; -import de.itvsh.kop.common.errorhandling.TechnicalException; +import de.ozgcloud.common.errorhandling.TechnicalException; import io.grpc.stub.CallStreamObserver; import io.grpc.stub.StreamObserver; import lombok.AccessLevel; +import lombok.Getter; import lombok.NoArgsConstructor; import lombok.NonNull; +import lombok.RequiredArgsConstructor; import lombok.extern.log4j.Log4j2; @Log4j2 @NoArgsConstructor(access = AccessLevel.PRIVATE) public class GrpcFileUploadUtils { - static final int CHUNK_SIZE = 255 * 1024; + static final int CHUNK_SIZE = 4 * 1024; /* * Q = Request Type; S = Response Type */ - public static <Q, S> FileSender<Q, S> createSender(Function<byte[], Q> chunkBuilder, InputStream inputStream, + public static <Q, S> FileSender<Q, S> createSender(BiFunction<byte[], Integer, Q> chunkBuilder, InputStream inputStream, Function<StreamObserver<S>, CallStreamObserver<Q>> reqObserverBuilder) { return new FileSender<>(chunkBuilder, reqObserverBuilder, inputStream); } public static class FileSender<Q, S> { - private final Function<byte[], Q> chunkBuilder; + private final BiFunction<byte[], Integer, Q> chunkBuilder; private final InputStream inputStream; + @Getter private final CompletableFuture<S> resultFuture = new CompletableFuture<>(); private final Function<StreamObserver<S>, CallStreamObserver<Q>> reqObserverBuilder; private CallStreamObserver<Q> requestObserver; @@ -67,10 +71,15 @@ public class GrpcFileUploadUtils { private final AtomicBoolean metaDataSent = new AtomicBoolean(false); private final AtomicBoolean done = new AtomicBoolean(false); - FileSender(Function<byte[], Q> chunkBuilder, Function<StreamObserver<S>, CallStreamObserver<Q>> reqObserverBuilder, InputStream inputStream) { + private final StreamReader streamReader; + + FileSender(BiFunction<byte[], Integer, Q> chunkBuilder, Function<StreamObserver<S>, CallStreamObserver<Q>> reqObserverBuilder, + InputStream inputStream) { this.chunkBuilder = chunkBuilder; - this.inputStream = IOUtils.buffer(inputStream, CHUNK_SIZE); + this.inputStream = inputStream; this.reqObserverBuilder = reqObserverBuilder; + + this.streamReader = new StreamReader(this.inputStream); } public FileSender<Q, S> withMetaData(@NonNull Q metaData) { @@ -78,24 +87,42 @@ public class GrpcFileUploadUtils { return this; } - public CompletableFuture<S> send() { + public FileSender<Q, S> send() { LOG.debug("Start sending File."); var responseObserver = BinaryFileUploadStreamObserver.create(resultFuture, this::sendNext); requestObserver = reqObserverBuilder.apply(responseObserver); - return resultFuture; + return this; + } + + public void cancelOnTimeout() { + LOG.warn("File transfer canceled on timeout"); + resultFuture.cancel(true); + requestObserver.onError(new TechnicalException("Timeout on waiting for upload.")); + } + + public void cancelOnError(Throwable t) { + LOG.error("File tranfer canceled on error.", t); + resultFuture.cancel(true); + requestObserver.onError(t); } void sendNext() { if (!done.get()) { waitForOberver(); - LOG.debug("Sending next chunk."); sendMetaData(); - long sentSize = sendNextChunk(); - checkForEndOfStream(sentSize); + do { + LOG.debug("Sending next chunk."); + sendNextChunk(); + } while (!done.get() && isReady()); + LOG.debug("Finished or waiting to become ready."); } } + private boolean isReady() { + return requestObserver.isReady(); + } + private void waitForOberver() { synchronized (this) { while (Objects.isNull(requestObserver)) { @@ -112,17 +139,27 @@ public class GrpcFileUploadUtils { } long sendNextChunk() { - byte[] contentToSend = readFromStream(); + byte[] contentToSend = streamReader.getNextData(); - if (contentToSend.length > 0) { - sendChunk(contentToSend); + if (streamReader.getLastReadSize() > 0) { + sendChunk(contentToSend, streamReader.getLastReadSize()); + } else { + endTransfer(); } return contentToSend.length; } - void sendChunk(byte[] content) { - LOG.debug("Sending {} byte Data.", content.length); - var chunk = chunkBuilder.apply(content); + private void endTransfer() { + requestObserver.onCompleted(); + done.set(true); + LOG.debug("File Transfer done. Closing stream."); + IOUtils.closeQuietly(inputStream); + streamReader.close(); + } + + void sendChunk(byte[] content, int length) { + LOG.debug("Sending {} byte Data.", length); + var chunk = chunkBuilder.apply(content, length); requestObserver.onNext(chunk); } @@ -150,7 +187,35 @@ public class GrpcFileUploadUtils { IOUtils.closeQuietly(inputStream); requestObserver.onCompleted(); done.set(true); - IOUtils.closeQuietly(inputStream); + } else { + LOG.debug("File Transfer not jet done - need to tranfer another chunk."); + } + } + + @RequiredArgsConstructor + private class StreamReader { + private final InputStream inStream; + private final byte[] buffer = new byte[CHUNK_SIZE]; + @Getter + private int lastReadSize = 0; + @Getter + private final AtomicBoolean done = new AtomicBoolean(false); + + byte[] getNextData() { + readNext(); + return buffer; + } + + void close() { + IOUtils.closeQuietly(inStream); + } + + void readNext() { + try { + lastReadSize = inStream.read(buffer, 0, CHUNK_SIZE); + } catch (IOException e) { + throw new TechnicalException("Error on reading a single chunk", e); + } } } } diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/TempFileUtils.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/TempFileUtils.java similarity index 94% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/TempFileUtils.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/TempFileUtils.java index d68ee7f708b29fe81cf1d455a8df01ec3562fe61..49e3039d1c15b20eacfb3112d046fedec759f0de 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/binaryfile/TempFileUtils.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/binaryfile/TempFileUtils.java @@ -1,4 +1,4 @@ -package de.itvsh.kop.common.binaryfile; +package de.ozgcloud.common.binaryfile; import java.io.File; import java.io.FileWriter; @@ -10,7 +10,7 @@ import java.nio.file.StandardCopyOption; import org.apache.commons.io.FileUtils; -import de.itvsh.kop.common.errorhandling.TechnicalException; +import de.ozgcloud.common.errorhandling.TechnicalException; import lombok.AccessLevel; import lombok.NoArgsConstructor; diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/datatype/StringBasedValue.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/datatype/StringBasedValue.java similarity index 97% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/datatype/StringBasedValue.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/datatype/StringBasedValue.java index 337c46daaad7a4362aee05b8aa664b961f694766..0dae54e0b1689fb6cfbcac21ff3fcd52cb6deac9 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/datatype/StringBasedValue.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/datatype/StringBasedValue.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.datatype; +package de.ozgcloud.common.datatype; import java.io.Serializable; diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/ExceptionUtil.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/ExceptionUtil.java similarity index 96% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/ExceptionUtil.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/ExceptionUtil.java index 4a96957772d60ce8e7892f31962ca1afdc831089..21b86fcc6b74d6b242021499638b12d966a238c0 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/ExceptionUtil.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/ExceptionUtil.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.errorhandling; +package de.ozgcloud.common.errorhandling; import lombok.AccessLevel; import lombok.NoArgsConstructor; diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/FunctionalErrorCode.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/FunctionalErrorCode.java similarity index 96% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/FunctionalErrorCode.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/FunctionalErrorCode.java index a9c2d478af739f3f6505573107c5923f1635dc06..327890a49a2238201f5989d25bf44e72fec319a9 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/FunctionalErrorCode.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/FunctionalErrorCode.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.errorhandling; +package de.ozgcloud.common.errorhandling; import java.io.Serializable; diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/IdentifiableException.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/IdentifiableException.java similarity index 96% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/IdentifiableException.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/IdentifiableException.java index 774dc68c7a1f626f5115dc949712dad346ff8f26..955d09c22026046e3c364ffa468e279e43f7ee75 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/IdentifiableException.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/IdentifiableException.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.errorhandling; +package de.ozgcloud.common.errorhandling; public interface IdentifiableException { diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/TechnicalException.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/TechnicalException.java similarity index 97% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/TechnicalException.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/TechnicalException.java index 9c99d9b9fdde4e4626708a4a6a4240fcc7ba3676..bbe249f9dcd6a69c649c4ead0c306f30a2c9f32e 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/errorhandling/TechnicalException.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/errorhandling/TechnicalException.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.errorhandling; +package de.ozgcloud.common.errorhandling; import java.util.UUID; diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/grpc/GrpcUtil.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/grpc/GrpcUtil.java similarity index 98% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/grpc/GrpcUtil.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/grpc/GrpcUtil.java index 2348cc209229a09ed9a8aa00000ea18db71a82f1..837309318ef9f4fd230841f2feba7ff30a680569 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/grpc/GrpcUtil.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/grpc/GrpcUtil.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.grpc; +package de.ozgcloud.common.grpc; import java.nio.charset.StandardCharsets; import java.util.ArrayList; diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/AspectLoggingUtils.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/AspectLoggingUtils.java similarity index 92% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/logging/AspectLoggingUtils.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/AspectLoggingUtils.java index 53d0fa361697fff4da5e24f38c73fca5e3ddf214..c9b8364c7137dc0c4b8838a39b5fab98ae3728af 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/AspectLoggingUtils.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/AspectLoggingUtils.java @@ -21,15 +21,16 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.logging; +package de.ozgcloud.common.logging; -import de.itvsh.kop.common.logging.logger.AspectLogger; -import de.itvsh.kop.common.logging.logger.InterceptingLogger; import jakarta.interceptor.InvocationContext; import lombok.AccessLevel; import lombok.NoArgsConstructor; import org.aspectj.lang.JoinPoint; +import de.ozgcloud.common.logging.logger.AspectLogger; +import de.ozgcloud.common.logging.logger.InterceptingLogger; + @NoArgsConstructor(access = AccessLevel.PRIVATE) public class AspectLoggingUtils { diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/AspectPointcuts.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/AspectPointcuts.java similarity index 82% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/logging/AspectPointcuts.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/AspectPointcuts.java index 4bf8694284277d1d43d12ac36ca78f4fec6b1295..aacdc438882026d711d7a4f7ef685970cecfa337 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/AspectPointcuts.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/AspectPointcuts.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.logging; +package de.ozgcloud.common.logging; import org.aspectj.lang.annotation.Pointcut; @@ -32,17 +32,17 @@ public class AspectPointcuts { // aspect pointcut - no implementation needed } - @Pointcut("within(de.itvsh..*)") - void anythingInKOP() { + @Pointcut("within(de.ozgcloud..*)") + void anythingInOzgCloud() { // aspect pointcut - no implementation needed } - @Pointcut("anyPublicMethods() && anythingInKOP()") - void anyPublicMethodInKOP() { + @Pointcut("anyPublicMethods() && anythingInOzgCloud()") + void anyPublicMethodInOzgCloud() { // aspect pointcut - no implementation needed } - @Pointcut("anyPublicMethodInKOP() && @target(org.springframework.stereotype.Service)") + @Pointcut("anyPublicMethodInOzgCloud() && @target(org.springframework.stereotype.Service)") void anyPublicServiceMethod() { // aspect pointcut - no implementation needed } diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/KopLogging.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/OzgCloudLogging.java similarity index 94% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/logging/KopLogging.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/OzgCloudLogging.java index 685b0e4c84a30628bd07a73ad1c298d651bc3331..9895370fd512193adfa4e5067ef90d8e3c8a08d3 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/KopLogging.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/OzgCloudLogging.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.logging; +package de.ozgcloud.common.logging; import jakarta.interceptor.InterceptorBinding; @@ -36,6 +36,6 @@ import static java.lang.annotation.RetentionPolicy.*; @Retention(RUNTIME) @Documented @InterceptorBinding -public @interface KopLogging { +public @interface OzgCloudLogging { } diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/KopLoggingAspect.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/OzgCloudLoggingAspect.java similarity index 94% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/logging/KopLoggingAspect.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/OzgCloudLoggingAspect.java index eef0028f40216bdb7420538cc0dba98116ffe361..fbf298a8ebc55f910b440b92ae67d7af0f184c86 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/KopLoggingAspect.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/OzgCloudLoggingAspect.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.logging; +package de.ozgcloud.common.logging; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.annotation.AfterReturning; @@ -32,7 +32,7 @@ import org.springframework.stereotype.Component; @Aspect @Component -public class KopLoggingAspect extends AspectPointcuts { +public class OzgCloudLoggingAspect extends AspectPointcuts { @Before("anyPublicServiceMethod()") public void onServiceMethod(JoinPoint joinPoint) { diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/KopLoggingInterceptor.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/OzgCloudLoggingInterceptor.java similarity index 94% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/logging/KopLoggingInterceptor.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/OzgCloudLoggingInterceptor.java index 7c665d67e9bc3c87964096fd682b1ab8a11ad5e5..84a93c6bfecf7c7907a3b571650b18f274d9b70c 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/KopLoggingInterceptor.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/OzgCloudLoggingInterceptor.java @@ -21,17 +21,17 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.logging; +package de.ozgcloud.common.logging; import jakarta.annotation.Priority; import jakarta.interceptor.AroundInvoke; import jakarta.interceptor.Interceptor; import jakarta.interceptor.InvocationContext; -@KopLogging +@OzgCloudLogging @Priority(10) @Interceptor -public class KopLoggingInterceptor { +public class OzgCloudLoggingInterceptor { @AroundInvoke Object logging(InvocationContext context) throws Exception { diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/logger/AspectLogger.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/logger/AspectLogger.java similarity index 97% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/logging/logger/AspectLogger.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/logger/AspectLogger.java index e1cc4b6a2adecbc1ad4c56c3dafce7b73dfa3202..1f060fd284cbc04298c02a8b3b44ea72d29c51fc 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/logger/AspectLogger.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/logger/AspectLogger.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.logging.logger; +package de.ozgcloud.common.logging.logger; import org.aspectj.lang.JoinPoint; import org.aspectj.lang.reflect.MethodSignature; diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/logger/CommonLogger.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/logger/CommonLogger.java similarity index 96% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/logging/logger/CommonLogger.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/logger/CommonLogger.java index 8e72530b179687a355424ebd379e7887ffdc8ac5..b6c65d5b1baa03de3a90ec49f97eed8dbcc564c8 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/logger/CommonLogger.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/logger/CommonLogger.java @@ -21,17 +21,18 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.logging.logger; +package de.ozgcloud.common.logging.logger; + +import java.util.Collection; +import java.util.StringJoiner; -import de.itvsh.kop.common.datatype.StringBasedValue; -import lombok.RequiredArgsConstructor; -import lombok.extern.log4j.Log4j2; import org.apache.commons.lang3.ArrayUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.util.Collection; -import java.util.StringJoiner; +import de.ozgcloud.common.datatype.StringBasedValue; +import lombok.RequiredArgsConstructor; +import lombok.extern.log4j.Log4j2; @RequiredArgsConstructor @Log4j2 @@ -136,7 +137,7 @@ abstract class CommonLogger<T> { var sb = new StringBuilder(); sb.append("<").append(value.getClass().getSimpleName()); if (value.getClass().isArray()) { - sb.insert(sb.length()-1, ArrayUtils.getLength(value)); + sb.insert(sb.length() - 1, ArrayUtils.getLength(value)); } sb.append(">"); return sb.toString(); diff --git a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/logger/InterceptingLogger.java b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/logger/InterceptingLogger.java similarity index 97% rename from kop-common-lib/src/main/java/de/itvsh/kop/common/logging/logger/InterceptingLogger.java rename to ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/logger/InterceptingLogger.java index 90c2431712a5f23f3f8ec53c3226f721497bbc7c..349866f276437b4fb47d42e6cd9efa02ec014a0e 100644 --- a/kop-common-lib/src/main/java/de/itvsh/kop/common/logging/logger/InterceptingLogger.java +++ b/ozgcloud-common-lib/src/main/java/de/ozgcloud/common/logging/logger/InterceptingLogger.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.logging.logger; +package de.ozgcloud.common.logging.logger; import jakarta.interceptor.InvocationContext; diff --git a/kop-common-lib/src/main/resources/log4j2-local.xml b/ozgcloud-common-lib/src/main/resources/log4j2-local.xml similarity index 100% rename from kop-common-lib/src/main/resources/log4j2-local.xml rename to ozgcloud-common-lib/src/main/resources/log4j2-local.xml diff --git a/kop-common-lib/src/main/resources/log4j2.xml b/ozgcloud-common-lib/src/main/resources/log4j2.xml similarity index 100% rename from kop-common-lib/src/main/resources/log4j2.xml rename to ozgcloud-common-lib/src/main/resources/log4j2.xml diff --git a/kop-common-lib/src/test/java/de/itvsh/kop/common/binaryfile/BinaryFileTestFactory.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/BinaryFileTestFactory.java similarity index 96% rename from kop-common-lib/src/test/java/de/itvsh/kop/common/binaryfile/BinaryFileTestFactory.java rename to ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/BinaryFileTestFactory.java index 0ba2cd4b0d05ae3a6ff6145f5d52eabc0da5570f..467922e510338bea67949ee52d67e278f1be4e60 100644 --- a/kop-common-lib/src/test/java/de/itvsh/kop/common/binaryfile/BinaryFileTestFactory.java +++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/BinaryFileTestFactory.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.binaryfile; +package de.ozgcloud.common.binaryfile; public class BinaryFileTestFactory { diff --git a/kop-common-lib/src/test/java/de/itvsh/kop/common/binaryfile/BinaryFileUploadStreamObserverTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/BinaryFileUploadStreamObserverTest.java similarity index 91% rename from kop-common-lib/src/test/java/de/itvsh/kop/common/binaryfile/BinaryFileUploadStreamObserverTest.java rename to ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/BinaryFileUploadStreamObserverTest.java index 821d5150e5004d5437a358c9798b4dd455b16980..9fc13b47bb18a1bc78e477384e2744ebd3635265 100644 --- a/kop-common-lib/src/test/java/de/itvsh/kop/common/binaryfile/BinaryFileUploadStreamObserverTest.java +++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/BinaryFileUploadStreamObserverTest.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.binaryfile; +package de.ozgcloud.common.binaryfile; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; @@ -33,8 +33,8 @@ import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; -import de.itvsh.kop.common.binaryfile.BinaryFileTestFactory.TestRequestType; -import de.itvsh.kop.common.binaryfile.BinaryFileTestFactory.TestResponseType; +import de.ozgcloud.common.binaryfile.BinaryFileTestFactory.TestRequestType; +import de.ozgcloud.common.binaryfile.BinaryFileTestFactory.TestResponseType; class BinaryFileUploadStreamObserverTest { diff --git a/kop-common-lib/src/test/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtilsTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/GrpcFileUploadUtilsTest.java similarity index 65% rename from kop-common-lib/src/test/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtilsTest.java rename to ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/GrpcFileUploadUtilsTest.java index 4b4f907b23baf3b134f8d957c9afd2203cd89c0f..f856f933151abb53efc7158f1bc3540198df18b2 100644 --- a/kop-common-lib/src/test/java/de/itvsh/kop/common/binaryfile/GrpcFileUploadUtilsTest.java +++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/binaryfile/GrpcFileUploadUtilsTest.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.binaryfile; +package de.ozgcloud.common.binaryfile; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; @@ -29,31 +29,32 @@ import static org.mockito.Mockito.*; import java.io.IOException; import java.io.InputStream; -import java.util.concurrent.CompletableFuture; +import java.util.function.BiFunction; import java.util.function.Function; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import org.mockito.Captor; +import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.Spy; -import de.itvsh.kop.common.binaryfile.BinaryFileTestFactory.TestRequestType; -import de.itvsh.kop.common.binaryfile.BinaryFileTestFactory.TestResponseType; -import de.itvsh.kop.common.binaryfile.GrpcFileUploadUtils.FileSender; -import de.itvsh.kop.common.errorhandling.TechnicalException; +import de.ozgcloud.common.binaryfile.BinaryFileTestFactory.TestRequestType; +import de.ozgcloud.common.binaryfile.BinaryFileTestFactory.TestResponseType; +import de.ozgcloud.common.binaryfile.GrpcFileUploadUtils.FileSender; +import de.ozgcloud.common.errorhandling.TechnicalException; import io.grpc.stub.CallStreamObserver; import io.grpc.stub.StreamObserver; class GrpcFileUploadUtilsTest { - @Spy + @InjectMocks private GrpcFileUploadUtils service; @Mock - private Function<byte[], TestRequestType> chunkBuilder; + private BiFunction<byte[], Integer, TestRequestType> chunkBuilder; @Mock private Function<StreamObserver<TestResponseType>, CallStreamObserver<TestRequestType>> reqObserverBuilder; @Mock @@ -77,7 +78,7 @@ class GrpcFileUploadUtilsTest { @Test void shouldCreateRequestObserver() { - GrpcFileUploadUtils.createSender(chunkBuilder, inputStream, reqObserverBuilder); + GrpcFileUploadUtils.createSender(chunkBuilder, inputStream, reqObserverBuilder).send(); verify(reqObserverBuilder, atLeastOnce()).apply(notNull()); } @@ -90,38 +91,20 @@ class GrpcFileUploadUtilsTest { private ArgumentCaptor<Runnable> runnableCaptor; @Test - void shouldSetOnReadyHandler() { - callService(); + void shouldReturnSenderWithFuture() { + var result = fileSender.send(); - verify(requestObserver).setOnReadyHandler(any()); - } - - @Test - void shouldCallSendNextOnReady() { - callService(); - - verify(requestObserver).setOnReadyHandler(runnableCaptor.capture()); - runnableCaptor.getValue().run(); - - verify(fileSender, timeout(500)).sendNext(); - } - - @Test - void shouldReturnFuture() { - var result = callService(); - - assertThat(result).isNotNull(); - } - - private CompletableFuture<TestResponseType> callService() { - return fileSender.send(); + assertThat(result).isNotNull().extracting(FileSender::getResultFuture).isNotNull(); } } @Nested class TestSendNext { - private static final long SENT_SIZE = 1024; + @BeforeEach + void initObserver() { + fileSender.send(); + } @Test void shouldCallSendMetaData() { @@ -137,80 +120,41 @@ class GrpcFileUploadUtilsTest { verify(fileSender).sendNextChunk(); } - @Test - void shouldCheckForEndOfStream() { - when(fileSender.sendNextChunk()).thenReturn(SENT_SIZE); - - fileSender.sendNext(); - - verify(fileSender).checkForEndOfStream(SENT_SIZE); - } - } @Nested - class TestSendNextChunk { + class TestSendChunk { private static final byte[] CHUNK_PART = "ChunkPartContent".getBytes(); @BeforeEach - void init() { - doReturn(CHUNK_PART).when(fileSender).readFromStream(); - } - - @Test - void shouldReadData() { - callService(); - - verify(fileSender).readFromStream(); + void initObserver() { + fileSender.send(); } - @Test - void shouldSendNextChunk() { - callService(); - - verify(fileSender).sendChunk(CHUNK_PART); - } - - @Test - void shouldReturnSize() { - var result = callService(); - - assertThat(result).isEqualTo(CHUNK_PART.length); - } - - private long callService() { - return fileSender.sendNextChunk(); - } - } - - @Nested - class TestSendChunk { - - private static final byte[] CHUNK_PART = "ChunkPartContent".getBytes(); - @Test void shouldApplyBuildChunk() throws IOException { - callService(); + fileSender.sendChunk(CHUNK_PART, 5); - verify(chunkBuilder).apply(CHUNK_PART); + verify(chunkBuilder).apply(CHUNK_PART, 5); } @Test void shouldCallOnNext() throws IOException { - callService(); + fileSender.sendChunk(CHUNK_PART, 5); verify(requestObserver).onNext(any()); } - - private void callService() { - fileSender.sendChunk(CHUNK_PART); - } } @Nested class TestSendMetaData { + @BeforeEach + void initObserver() { + fileSender.send(); + } + @Test void shouldNotSendWithoutMetadata() { fileSender.sendMetaData(); @@ -234,6 +178,7 @@ class GrpcFileUploadUtilsTest { } } + @Disabled("unused") @Nested class TestReadFromStream { @Test diff --git a/kop-common-lib/src/test/java/de/itvsh/kop/common/errorhandling/ExceptionUtilTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/ExceptionUtilTest.java similarity index 92% rename from kop-common-lib/src/test/java/de/itvsh/kop/common/errorhandling/ExceptionUtilTest.java rename to ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/ExceptionUtilTest.java index 8f2d9049206302318696fe54d0ad7be61823b3e4..2ff7cecb6ac8ea59e2f3b7440fa31711487a7340 100644 --- a/kop-common-lib/src/test/java/de/itvsh/kop/common/errorhandling/ExceptionUtilTest.java +++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/ExceptionUtilTest.java @@ -21,12 +21,14 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.errorhandling; +package de.ozgcloud.common.errorhandling; import static org.assertj.core.api.Assertions.*; import org.junit.jupiter.api.Test; +import de.ozgcloud.common.errorhandling.ExceptionUtil; + class ExceptionUtilTest { @Test diff --git a/kop-common-lib/src/test/java/de/itvsh/kop/common/errorhandling/TechnicalExceptionTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/TechnicalExceptionTest.java similarity index 93% rename from kop-common-lib/src/test/java/de/itvsh/kop/common/errorhandling/TechnicalExceptionTest.java rename to ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/TechnicalExceptionTest.java index 880f69ad87577eb0cf48b4f7163138defe961662..e173d6e2e3ff416c7cbbe0c93af3317b4e1d4b15 100644 --- a/kop-common-lib/src/test/java/de/itvsh/kop/common/errorhandling/TechnicalExceptionTest.java +++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/errorhandling/TechnicalExceptionTest.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.errorhandling; +package de.ozgcloud.common.errorhandling; import static org.assertj.core.api.Assertions.*; @@ -29,6 +29,8 @@ import org.junit.jupiter.api.Test; import com.thedeanda.lorem.LoremIpsum; +import de.ozgcloud.common.errorhandling.TechnicalException; + class TechnicalExceptionTest { private final String MESSAGE = LoremIpsum.getInstance().getWords(5); diff --git a/kop-common-lib/src/test/java/de/itvsh/kop/common/grpc/GrpcUtilTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/grpc/GrpcUtilTest.java similarity index 97% rename from kop-common-lib/src/test/java/de/itvsh/kop/common/grpc/GrpcUtilTest.java rename to ozgcloud-common-lib/src/test/java/de/ozgcloud/common/grpc/GrpcUtilTest.java index 0b4ac1cf4f0580b159f2b0f08b97b292cd1aeaae..f129f1539bab3b07c6c39ebc314ed92003c22545 100644 --- a/kop-common-lib/src/test/java/de/itvsh/kop/common/grpc/GrpcUtilTest.java +++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/grpc/GrpcUtilTest.java @@ -1,4 +1,4 @@ -package de.itvsh.kop.common.grpc; +package de.ozgcloud.common.grpc; import static org.assertj.core.api.Assertions.*; @@ -7,6 +7,7 @@ import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import de.ozgcloud.common.grpc.GrpcUtil; import io.grpc.Metadata; class GrpcUtilTest { diff --git a/kop-common-lib/src/test/java/de/itvsh/kop/common/logging/KopLoggingInterceptorTest.java b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/logging/OzgCloudLoggingInterceptorTest.java similarity index 91% rename from kop-common-lib/src/test/java/de/itvsh/kop/common/logging/KopLoggingInterceptorTest.java rename to ozgcloud-common-lib/src/test/java/de/ozgcloud/common/logging/OzgCloudLoggingInterceptorTest.java index 988d241e9d1e62d58fbfe28c4133a653b20ad6aa..c1f1c025c2d9752ed03459018c515bad717d9680 100644 --- a/kop-common-lib/src/test/java/de/itvsh/kop/common/logging/KopLoggingInterceptorTest.java +++ b/ozgcloud-common-lib/src/test/java/de/ozgcloud/common/logging/OzgCloudLoggingInterceptorTest.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.logging; +package de.ozgcloud.common.logging; import jakarta.interceptor.InvocationContext; import org.junit.jupiter.api.AfterEach; @@ -32,13 +32,15 @@ import org.junit.jupiter.api.Test; import org.mockito.Mock; import org.mockito.MockedStatic; +import de.ozgcloud.common.logging.AspectLoggingUtils; +import de.ozgcloud.common.logging.OzgCloudLoggingInterceptor; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -class KopLoggingInterceptorTest { +class OzgCloudLoggingInterceptorTest { - private final KopLoggingInterceptor interceptor = new KopLoggingInterceptor(); + private final OzgCloudLoggingInterceptor interceptor = new OzgCloudLoggingInterceptor(); @DisplayName("Logging") @Nested diff --git a/kop-common-lib/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/ozgcloud-common-lib/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension similarity index 100% rename from kop-common-lib/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension rename to ozgcloud-common-lib/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension diff --git a/kop-common-lib/src/test/resources/junit-platform.properties b/ozgcloud-common-lib/src/test/resources/junit-platform.properties similarity index 100% rename from kop-common-lib/src/test/resources/junit-platform.properties rename to ozgcloud-common-lib/src/test/resources/junit-platform.properties diff --git a/kop-common-lib/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker b/ozgcloud-common-lib/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker similarity index 100% rename from kop-common-lib/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker rename to ozgcloud-common-lib/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker diff --git a/kop-common-license/LICENSE b/ozgcloud-common-license/LICENSE similarity index 100% rename from kop-common-license/LICENSE rename to ozgcloud-common-license/LICENSE diff --git a/kop-common-license/pom.xml b/ozgcloud-common-license/pom.xml similarity index 84% rename from kop-common-license/pom.xml rename to ozgcloud-common-license/pom.xml index 090d46f31f1359f44c5bd9d5ede53e88ab527ea3..64d9236ef6a57ebed91f7dd79a24db054cb5f1b9 100644 --- a/kop-common-license/pom.xml +++ b/ozgcloud-common-license/pom.xml @@ -27,17 +27,14 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common</artifactId> - <version>1.10.0-SNAPSHOT</version> - </parent> - <artifactId>kop-common-license</artifactId> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-license</artifactId> + <version>1.6.0</version> <packaging>jar</packaging> - <name>Kop Common - OS license provider</name> - <description>A Maven project for providing the license to all KOP Projects</description> + <name>OzgCloud Common - OS license provider</name> + <description>A Maven project for providing the license to all OzgCloud Projects</description> <properties> <java.version>17</java.version> diff --git a/kop-common-license/readme.md b/ozgcloud-common-license/readme.md similarity index 82% rename from kop-common-license/readme.md rename to ozgcloud-common-license/readme.md index 54fc614742980f0d0422ebfbc8bb20530de2b824..c471a27f5c0752fa04206b506656f5b7d1902187 100644 --- a/kop-common-license/readme.md +++ b/ozgcloud-common-license/readme.md @@ -1,6 +1,6 @@ -com.mycila# KOP Common license +com.mycila# OzgCloud Common license -This is a basic Maven-based project that can be used as license provider for all KOP Projects +This is a basic Maven-based project that can be used as license provider for all OzgCloud Projects It provides the the header and full text of the german [EUPL Version 1.2 license][license] @@ -12,7 +12,7 @@ It is a library, meant to be included as a dependency on any project which may w To use it add ```xml -<kop.license.version>1.4.0</kop.license.version> +<ozgcloud.license.version>1.4.0</ozgcloud.license.version> ``` to the properties section of the pom.xml file. @@ -38,9 +38,9 @@ In the plugins section add </configuration> <dependencies> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-license</artifactId> - <version>${kop.license.version}</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-license</artifactId> + <version>${ozgcloud.license.version}</version> </dependency> </dependencies> </plugin> diff --git a/kop-common-license/src/main/resources/license/eupl_v1_2_de/header.txt b/ozgcloud-common-license/src/main/resources/license/eupl_v1_2_de/header.txt similarity index 100% rename from kop-common-license/src/main/resources/license/eupl_v1_2_de/header.txt rename to ozgcloud-common-license/src/main/resources/license/eupl_v1_2_de/header.txt diff --git a/kop-common-license/src/main/resources/license/eupl_v1_2_de/license.txt b/ozgcloud-common-license/src/main/resources/license/eupl_v1_2_de/license.txt similarity index 100% rename from kop-common-license/src/main/resources/license/eupl_v1_2_de/license.txt rename to ozgcloud-common-license/src/main/resources/license/eupl_v1_2_de/license.txt diff --git a/kop-common-parent/pom.xml b/ozgcloud-common-parent/pom.xml similarity index 84% rename from kop-common-parent/pom.xml rename to ozgcloud-common-parent/pom.xml index f825f2715c8ed7ec1b8bc04a198868834bd4da4f..cf228d733e1accf066b038ae45a2b36122cb125d 100644 --- a/kop-common-parent/pom.xml +++ b/ozgcloud-common-parent/pom.xml @@ -31,47 +31,48 @@ <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> - <version>2.7.16</version> + <version>3.1.6</version> <relativePath /> </parent> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-parent</artifactId> - <version>1.10.0-SNAPSHOT</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-parent</artifactId> + <version>3.0.0-SNAPSHOT</version> <packaging>pom</packaging> - <name>Kop Common - Parent</name> - <description>Parent for all KOP spring boot projects</description> + <name>OzgCloud Common - Parent</name> + <description>Parent for all OzgCloud spring boot projects</description> <properties> <java.version>17</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <kop-common.version>1.10.0-SNAPSHOT</kop-common.version> - <kop.license.version>1.6.0</kop.license.version> + <ozgcloud-common.version>3.0.0-SNAPSHOT</ozgcloud-common.version> + <ozgcloud.license.version>1.6.0</ozgcloud.license.version> <mapstruct.version>1.5.5.Final</mapstruct.version> - <spring-boot.version>2.7.16</spring-boot.version> + <spring-boot.version>3.1.6</spring-boot.version> <!-- plugins --> - <maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version> - <maven-failsafe-plugin.version>3.1.2</maven-failsafe-plugin.version> - <jacoco.plugin.version>0.8.10</jacoco.plugin.version> + <maven-surefire-plugin.version>3.2.2</maven-surefire-plugin.version> + <maven-failsafe-plugin.version>3.2.2</maven-failsafe-plugin.version> + <jacoco.plugin.version>0.8.11</jacoco.plugin.version> <sonarqube.version>3.9.1.2184</sonarqube.version> <license.plugin.version>4.1</license.plugin.version> + <rewrite.plugin.version>4.38.2</rewrite.plugin.version> <!--overriden to fix security issue CVE-2022-1471 --> - <snakeyaml.version>2.0</snakeyaml.version> + <snakeyaml.version>2.2</snakeyaml.version> </properties> <dependencyManagement> <dependencies> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-dependencies</artifactId> - <version>${kop-common.version}</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-dependencies</artifactId> + <version>${ozgcloud-common.version}</version> <type>pom</type> <scope>import</scope> </dependency> @@ -80,7 +81,7 @@ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> - <version>${spring-boot.version}</version> + <version>3.0.5</version> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> @@ -94,12 +95,12 @@ <dependencies> <!-- own project --> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-test</artifactId> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-test</artifactId> </dependency> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-lib</artifactId> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-lib</artifactId> </dependency> <!-- spring --> @@ -163,6 +164,11 @@ <artifactId>micrometer-registry-prometheus</artifactId> <scope>runtime</scope> </dependency> + <dependency> + <groupId>org.glassfish.jaxb</groupId> + <artifactId>jaxb-runtime</artifactId> + <scope>runtime</scope> + </dependency> </dependencies> <build> @@ -204,6 +210,8 @@ <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <image> + <!-- cann be removed when using spring-boot 3.2--> + <builder>paketobuildpacks/builder-jammy-base</builder> <env> <BPE_DELIM_JAVA_TOOL_OPTIONS xml:space="preserve"> </BPE_DELIM_JAVA_TOOL_OPTIONS> <BPE_APPEND_JAVA_TOOL_OPTIONS>-Dfile.encoding=UTF-8</BPE_APPEND_JAVA_TOOL_OPTIONS> @@ -322,14 +330,22 @@ </configuration> <dependencies> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-license</artifactId> - <version>${kop.license.version}</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-license</artifactId> + <version>${ozgcloud.license.version}</version> </dependency> </dependencies> </plugin> </plugins> </pluginManagement> + + <plugins> + <plugin> + <groupId>org.openrewrite.maven</groupId> + <artifactId>rewrite-maven-plugin</artifactId> + <version>${rewrite.plugin.version}</version> + </plugin> + </plugins> </build> <distributionManagement> diff --git a/kop-common-pdf/pom.xml b/ozgcloud-common-pdf/pom.xml similarity index 83% rename from kop-common-pdf/pom.xml rename to ozgcloud-common-pdf/pom.xml index 59f58ae0668ff5c21eb8555a3f95cb994e03c338..533066121db4d4c95e3c28463f71c8430d84b94d 100644 --- a/kop-common-pdf/pom.xml +++ b/ozgcloud-common-pdf/pom.xml @@ -26,15 +26,15 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common</artifactId> - <version>1.10.0-SNAPSHOT</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common</artifactId> + <version>3.0.0-SNAPSHOT</version> </parent> - <artifactId>kop-common-pdf</artifactId> - <name>Kop Common - PDF Export library</name> + <artifactId>ozgcloud-common-pdf</artifactId> + <name>OzgCloud Common - PDF Export library</name> <properties> - <!-- TODO move to kop-common-dependencies --> + <!-- TODO move to ozgcloud-common-dependencies --> <jakarta.cdi-api.version>4.0.1</jakarta.cdi-api.version> <fop.version>2.7</fop.version> </properties> @@ -42,9 +42,9 @@ <dependencyManagement> <dependencies> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-dependencies</artifactId> - <version>${kop-common.version}</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-dependencies</artifactId> + <version>${ozgcloud-common.version}</version> <type>pom</type> <scope>import</scope> </dependency> @@ -53,8 +53,8 @@ <dependencies> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-lib</artifactId> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-lib</artifactId> </dependency> <!-- For Injection-Annotations --> @@ -110,8 +110,9 @@ <artifactId>assertj-core</artifactId> </dependency> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-test</artifactId> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-test</artifactId> </dependency> </dependencies> + </project> \ No newline at end of file diff --git a/kop-common-pdf/src/main/java/de/itvsh/kop/common/pdf/PdfService.java b/ozgcloud-common-pdf/src/main/java/de/ozgcloud/common/pdf/PdfService.java similarity index 94% rename from kop-common-pdf/src/main/java/de/itvsh/kop/common/pdf/PdfService.java rename to ozgcloud-common-pdf/src/main/java/de/ozgcloud/common/pdf/PdfService.java index 1e94a70502dd0066b05fe59a2fd5bfed2d0fc51c..a5e254905a38ffafdc55ed6aa0a0afb20856af80 100644 --- a/kop-common-pdf/src/main/java/de/itvsh/kop/common/pdf/PdfService.java +++ b/ozgcloud-common-pdf/src/main/java/de/ozgcloud/common/pdf/PdfService.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.pdf; +package de.ozgcloud.common.pdf; import java.io.InputStream; import java.io.OutputStream; @@ -29,7 +29,7 @@ import java.io.OutputStream; import org.springframework.lang.NonNull; import org.springframework.stereotype.Service; -import de.itvsh.kop.common.pdf.fop.FopPdfService; +import de.ozgcloud.common.pdf.fop.FopPdfService; import jakarta.enterprise.context.ApplicationScoped; import lombok.AccessLevel; import lombok.RequiredArgsConstructor; diff --git a/kop-common-pdf/src/main/java/de/itvsh/kop/common/pdf/fop/FopPdfService.java b/ozgcloud-common-pdf/src/main/java/de/ozgcloud/common/pdf/fop/FopPdfService.java similarity index 96% rename from kop-common-pdf/src/main/java/de/itvsh/kop/common/pdf/fop/FopPdfService.java rename to ozgcloud-common-pdf/src/main/java/de/ozgcloud/common/pdf/fop/FopPdfService.java index 1b79ea291cc38000c80914609ff906966fc21d2c..029f45d535ba6fdcb34b2de80353ea7cbd699df1 100644 --- a/kop-common-pdf/src/main/java/de/itvsh/kop/common/pdf/fop/FopPdfService.java +++ b/ozgcloud-common-pdf/src/main/java/de/ozgcloud/common/pdf/fop/FopPdfService.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.pdf.fop; +package de.ozgcloud.common.pdf.fop; import java.io.BufferedOutputStream; import java.io.IOException; @@ -32,9 +32,9 @@ import java.net.URISyntaxException; import java.util.Objects; import javax.xml.XMLConstants; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.util.JAXBSource; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.util.JAXBSource; import javax.xml.transform.Result; import javax.xml.transform.Source; import javax.xml.transform.Transformer; @@ -58,7 +58,8 @@ import org.apache.xmlgraphics.util.MimeConstants; import org.springframework.lang.NonNull; import org.springframework.stereotype.Service; -import de.itvsh.kop.common.errorhandling.TechnicalException; +import de.ozgcloud.common.errorhandling.TechnicalException; + import jakarta.enterprise.context.ApplicationScoped; import lombok.extern.log4j.Log4j2; diff --git a/kop-common-pdf/src/main/resources/fop/fop_conf.xml b/ozgcloud-common-pdf/src/main/resources/fop/fop_conf.xml similarity index 100% rename from kop-common-pdf/src/main/resources/fop/fop_conf.xml rename to ozgcloud-common-pdf/src/main/resources/fop/fop_conf.xml diff --git a/kop-common-pdf/src/main/resources/fop/master-template.xsl b/ozgcloud-common-pdf/src/main/resources/fop/master-template.xsl similarity index 100% rename from kop-common-pdf/src/main/resources/fop/master-template.xsl rename to ozgcloud-common-pdf/src/main/resources/fop/master-template.xsl diff --git a/kop-common-pdf/src/test/java/de/itvsh/kop/common/pdf/PdfServiceTest.java b/ozgcloud-common-pdf/src/test/java/de/ozgcloud/common/pdf/PdfServiceTest.java similarity index 94% rename from kop-common-pdf/src/test/java/de/itvsh/kop/common/pdf/PdfServiceTest.java rename to ozgcloud-common-pdf/src/test/java/de/ozgcloud/common/pdf/PdfServiceTest.java index add1b57cb3be566926056a2bf0629e3ea6761d97..be569cdfe56cc51945b2643d9a3c4c756d0712bf 100644 --- a/kop-common-pdf/src/test/java/de/itvsh/kop/common/pdf/PdfServiceTest.java +++ b/ozgcloud-common-pdf/src/test/java/de/ozgcloud/common/pdf/PdfServiceTest.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.pdf; +package de.ozgcloud.common.pdf; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; @@ -35,7 +35,8 @@ import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; import org.mockito.Mock; -import de.itvsh.kop.common.pdf.fop.FopPdfService; +import de.ozgcloud.common.pdf.PdfService; +import de.ozgcloud.common.pdf.fop.FopPdfService; class PdfServiceTest { diff --git a/kop-common-pdf/src/test/java/de/itvsh/kop/common/pdf/fop/FopPdfServiceTest.java b/ozgcloud-common-pdf/src/test/java/de/ozgcloud/common/pdf/fop/FopPdfServiceTest.java similarity index 93% rename from kop-common-pdf/src/test/java/de/itvsh/kop/common/pdf/fop/FopPdfServiceTest.java rename to ozgcloud-common-pdf/src/test/java/de/ozgcloud/common/pdf/fop/FopPdfServiceTest.java index 08963db05510c9c90e494fbbfa3414b1b5a5e0a7..139bc8aa48fbeab98f6a5aeee35b442fc9d037ba 100644 --- a/kop-common-pdf/src/test/java/de/itvsh/kop/common/pdf/fop/FopPdfServiceTest.java +++ b/ozgcloud-common-pdf/src/test/java/de/ozgcloud/common/pdf/fop/FopPdfServiceTest.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.pdf.fop; +package de.ozgcloud.common.pdf.fop; import static org.assertj.core.api.Assertions.*; @@ -32,8 +32,8 @@ import java.io.InputStream; import java.io.OutputStream; import java.io.StringWriter; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; import javax.xml.transform.OutputKeys; import javax.xml.transform.Source; import javax.xml.transform.Transformer; @@ -45,7 +45,8 @@ import javax.xml.transform.stream.StreamResult; import org.junit.jupiter.api.Test; import org.mockito.InjectMocks; -import de.itvsh.kop.common.test.TestUtils; +import de.ozgcloud.common.pdf.fop.FopPdfService; +import de.ozgcloud.common.test.TestUtils; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Builder; @@ -97,7 +98,7 @@ class FopPdfServiceTest { @Test @SneakyThrows void shouldRenderToFile() { - var tempFile = File.createTempFile("kop_", ".pdf"); + var tempFile = File.createTempFile("ozgcloud_", ".pdf"); tempFile.deleteOnExit(); OutputStream out = new FileOutputStream(tempFile); diff --git a/kop-common-pdf/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/ozgcloud-common-pdf/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension similarity index 100% rename from kop-common-pdf/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension rename to ozgcloud-common-pdf/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension diff --git a/kop-common-pdf/src/test/resources/junit-platform.properties b/ozgcloud-common-pdf/src/test/resources/junit-platform.properties similarity index 100% rename from kop-common-pdf/src/test/resources/junit-platform.properties rename to ozgcloud-common-pdf/src/test/resources/junit-platform.properties diff --git a/kop-common-pdf/src/test/resources/log4j2.xml b/ozgcloud-common-pdf/src/test/resources/log4j2.xml similarity index 100% rename from kop-common-pdf/src/test/resources/log4j2.xml rename to ozgcloud-common-pdf/src/test/resources/log4j2.xml diff --git a/kop-common-pdf/src/test/resources/test-template.xsl b/ozgcloud-common-pdf/src/test/resources/test-template.xsl similarity index 100% rename from kop-common-pdf/src/test/resources/test-template.xsl rename to ozgcloud-common-pdf/src/test/resources/test-template.xsl diff --git a/kop-common-test/pom.xml b/ozgcloud-common-test/pom.xml similarity index 82% rename from kop-common-test/pom.xml rename to ozgcloud-common-test/pom.xml index c5d5c213b1d85551eed684d408fdb958a9f8d54a..cd85a38cda5bca8775cfffb201bf9eeddf05e572 100644 --- a/kop-common-test/pom.xml +++ b/ozgcloud-common-test/pom.xml @@ -28,14 +28,14 @@ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-dependencies</artifactId> - <version>1.10.0-SNAPSHOT</version> - <relativePath>../kop-common-dependencies</relativePath> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-dependencies</artifactId> + <version>3.0.0-SNAPSHOT</version> + <relativePath>../ozgcloud-common-dependencies</relativePath> </parent> - <artifactId>kop-common-test</artifactId> - <name>Kop Common - Test Lib</name> + <artifactId>ozgcloud-common-test</artifactId> + <name>OzgCloud Common - Test Lib</name> <dependencies> <dependency> @@ -53,6 +53,11 @@ <groupId>org.testcontainers</groupId> <artifactId>mongodb</artifactId> </dependency> + <dependency> + <groupId>org.glassfish.jaxb</groupId> + <artifactId>jaxb-runtime</artifactId> + <scope>runtime</scope> + </dependency> <dependency> <groupId>org.projectlombok</groupId> diff --git a/kop-common-test/src/main/java/de/itvsh/kop/common/test/DataITCase.java b/ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/DataITCase.java similarity index 97% rename from kop-common-test/src/main/java/de/itvsh/kop/common/test/DataITCase.java rename to ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/DataITCase.java index a965877f31c04242a0f45fd1c40a46adaf10eeff..f38737b695514352dbf1796cdc4be9061888f942 100644 --- a/kop-common-test/src/main/java/de/itvsh/kop/common/test/DataITCase.java +++ b/ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/DataITCase.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.test; +package de.ozgcloud.common.test; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; diff --git a/kop-common-test/src/main/java/de/itvsh/kop/common/test/DbInitializer.java b/ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/DbInitializer.java similarity index 98% rename from kop-common-test/src/main/java/de/itvsh/kop/common/test/DbInitializer.java rename to ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/DbInitializer.java index 43f3a653c4cad719290789ab70c0dc16f6c74073..72e427f4efe5e28a9150f04ce9f48ee77e8ddbd5 100644 --- a/kop-common-test/src/main/java/de/itvsh/kop/common/test/DbInitializer.java +++ b/ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/DbInitializer.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.test; +package de.ozgcloud.common.test; import org.springframework.boot.test.util.TestPropertyValues; import org.springframework.context.ApplicationContextInitializer; diff --git a/kop-common-test/src/main/java/de/itvsh/kop/common/test/ITCase.java b/ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/ITCase.java similarity index 97% rename from kop-common-test/src/main/java/de/itvsh/kop/common/test/ITCase.java rename to ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/ITCase.java index f66964629c96909d3cda33359d82758a3752e74b..dd1220ce84870d8a34b2e878e357f0e82f7455bc 100644 --- a/kop-common-test/src/main/java/de/itvsh/kop/common/test/ITCase.java +++ b/ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/ITCase.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.test; +package de.ozgcloud.common.test; import java.lang.annotation.ElementType; import java.lang.annotation.Inherited; diff --git a/kop-common-test/src/main/java/de/itvsh/kop/common/test/TestUtils.java b/ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/TestUtils.java similarity index 92% rename from kop-common-test/src/main/java/de/itvsh/kop/common/test/TestUtils.java rename to ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/TestUtils.java index 200b8b2d915534c28019446fd093c3d94a41518c..e6d15783258498bd128b0bbc66bbe035f66e1c3e 100644 --- a/kop-common-test/src/main/java/de/itvsh/kop/common/test/TestUtils.java +++ b/ozgcloud-common-test/src/main/java/de/ozgcloud/common/test/TestUtils.java @@ -21,7 +21,7 @@ * Die sprachspezifischen Genehmigungen und Beschränkungen * unter der Lizenz sind dem Lizenztext zu entnehmen. */ -package de.itvsh.kop.common.test; +package de.ozgcloud.common.test; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -63,10 +63,14 @@ public class TestUtils { public static String addQuote(String str) { return Objects.isNull(str) ? "null" : String.format("\"%s\"", str); } - - public static byte[] contentStreamToByteArray(InputStream contentStream) throws IOException { + + public static byte[] contentStreamToByteArray(InputStream contentStream) { var outputStream = new ByteArrayOutputStream(); - IOUtils.copy(contentStream, outputStream); + try { + IOUtils.copy(contentStream, outputStream); + } catch (IOException e) { + throw new RuntimeException("Error on reading stream", e); + } return outputStream.toByteArray(); } diff --git a/pom.xml b/pom.xml index 3935765577c7f0f82d3edff8ea98738980b989df..0fd48ee185b70787a9ba7bb49e4591599325fa5e 100644 --- a/pom.xml +++ b/pom.xml @@ -27,30 +27,30 @@ <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common</artifactId> - <version>1.10.0-SNAPSHOT</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common</artifactId> + <version>3.0.0-SNAPSHOT</version> <packaging>pom</packaging> - <name>Kop Common</name> + <name>OzgCloud Common</name> <modules> - <module>kop-common-dependencies</module> - <module>kop-common-parent</module> - <module>kop-common-lib</module> - <module>kop-common-test</module> - <module>kop-common-pdf</module> + <module>ozgcloud-common-dependencies</module> + <module>ozgcloud-common-parent</module> + <module>ozgcloud-common-lib</module> + <module>ozgcloud-common-test</module> + <module>ozgcloud-common-pdf</module> </modules> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <kop-common.version>1.10.0-SNAPSHOT</kop-common.version> - <kop.license.version>1.6.0</kop.license.version> + <ozgcloud-common.version>3.0.0-SNAPSHOT</ozgcloud-common.version> + <ozgcloud.license.version>1.6.0</ozgcloud.license.version> <java.version>17</java.version> - <maven.compiler.target>${java.version}</maven.compiler.target> - <maven.compiler.source>${java.version}</maven.compiler.source> + <maven.compiler.target>17</maven.compiler.target> + <maven.compiler.source>17</maven.compiler.source> </properties> <distributionManagement> @@ -65,6 +65,14 @@ <url>https://nexus.ozg-sh.de/repository/ozg-snapshots/</url> </snapshotRepository> </distributionManagement> + <dependencies> + <dependency> + <groupId>org.glassfish.jaxb</groupId> + <artifactId>jaxb-runtime</artifactId> + <version>3.0.2</version> + <scope>runtime</scope> + </dependency> + </dependencies> <build> <pluginManagement> @@ -90,13 +98,34 @@ </configuration> <dependencies> <dependency> - <groupId>de.itvsh.kop.common</groupId> - <artifactId>kop-common-license</artifactId> - <version>${kop.license.version}</version> + <groupId>de.ozgcloud.common</groupId> + <artifactId>ozgcloud-common-license</artifactId> + <version>${ozgcloud.license.version}</version> </dependency> </dependencies> </plugin> + + <plugin> + <groupId>org.openrewrite.maven</groupId> + <artifactId>rewrite-maven-plugin</artifactId> + <version>4.38.2</version> + <configuration> + <activeRecipes> + <recipe>org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_0</recipe> + </activeRecipes> + </configuration> + <dependencies> + <dependency> + <groupId>org.openrewrite.recipe</groupId> + <artifactId>rewrite-spring</artifactId> + <version>4.31.0</version> + </dependency> + </dependencies> + </plugin> + </plugins> </pluginManagement> + + </build> </project> \ No newline at end of file diff --git a/release-erstellen.sh b/release-erstellen.sh new file mode 100755 index 0000000000000000000000000000000000000000..6ea590d256057705cc80e9ca4f8e2b67f76ebf9b --- /dev/null +++ b/release-erstellen.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +if [ "$#" -ne 1 ]; then + echo "Aufruf: release-erstellen.sh JA" + echo "Als Parameter bitte 'JA' eintragen zur Sicherheit" + exit 1 +fi + + +## alle -SNAPSHOT in pom.xmls entfernen +find . -name pom.xml -exec sed -i 's/-SNAPSHOT//g' {} + + +## release version auslesen +NEWVERSION=$(xmlstarlet sel -N w="http://maven.apache.org/POM/4.0.0" -t -v '//w:project/w:version' -n pom.xml) + +echo +echo "NEXT STEPS:" +echo "***********" +echo "Änderungen prüfen" +echo "git commit -a -m 'release version "$NEWVERSION"'" +echo "git push" +echo "git tag "$NEWVERSION +echo "git push --tags"