From bde6a00a71521ddeefed68cb0fa0ef1257ccdd86 Mon Sep 17 00:00:00 2001 From: Radek Davidek Date: Thu, 2 Oct 2025 17:42:32 +0200 Subject: [PATCH] refactor --- .../trask/apioperator/impl/ExportToWso2.java | 47 +--------------- .../apioperator/impl/ImportToApicurio.java | 4 +- .../{ZipExtractor.java => ZipUtils.java} | 54 +++++++++++++++++-- 3 files changed, 53 insertions(+), 52 deletions(-) rename src/main/java/cz/trask/apioperator/utils/{ZipExtractor.java => ZipUtils.java} (53%) diff --git a/src/main/java/cz/trask/apioperator/impl/ExportToWso2.java b/src/main/java/cz/trask/apioperator/impl/ExportToWso2.java index 5f801f8..e30ac5f 100644 --- a/src/main/java/cz/trask/apioperator/impl/ExportToWso2.java +++ b/src/main/java/cz/trask/apioperator/impl/ExportToWso2.java @@ -1,8 +1,5 @@ package cz.trask.apioperator.impl; -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.io.InputStream; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -10,8 +7,6 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; -import java.util.zip.ZipEntry; -import java.util.zip.ZipOutputStream; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -19,13 +14,12 @@ import org.apache.logging.log4j.Logger; import com.google.gson.Gson; import cz.trask.apioperator.AbstractProcess; -import cz.trask.apioperator.model.FileType; import cz.trask.apioperator.model.HttpResponse; import cz.trask.apioperator.model.RegisterResponse; import cz.trask.apioperator.model.TokenResponse; +import cz.trask.apioperator.utils.ZipUtils; import io.apicurio.registry.rest.client.RegistryClient; import io.apicurio.registry.rest.client.RegistryClientFactory; -import io.apicurio.registry.rest.v2.beans.ArtifactMetaData; import io.apicurio.registry.rest.v2.beans.ArtifactReference; import io.apicurio.registry.rest.v2.beans.ArtifactSearchResults; import io.apicurio.registry.rest.v2.beans.SearchedArtifact; @@ -110,7 +104,7 @@ public class ExportToWso2 extends AbstractProcess { api.getId(), ver.getVersion()); if (ref != null && !ref.isEmpty()) { log.info("Artifact has {} references", ref.size()); - byte[] data = prepareApiZipFile(ver, ref); + byte[] data = ZipUtils.prepareApiZipFile(client, ver, ref); String fileName = api.getName() + "-" + ver.getVersion() + ".zip"; if (data != null && data.length > 0 && fileName != null && !fileName.isEmpty()) { int responseCode = publishApiToWso2(fileName, data, tokenResponse); @@ -158,41 +152,4 @@ public class ExportToWso2 extends AbstractProcess { } return responseCode; } - - private byte[] prepareApiZipFile(SearchedVersion ver, List ref) throws IOException { - - String baseDir = ver.getName() + "-" + ver.getVersion() + "/"; - - try (ByteArrayOutputStream baos = new ByteArrayOutputStream(); - ZipOutputStream zos = new ZipOutputStream(baos)) { - - for (ArtifactReference r : ref) { - log.info(" - Reference: {} {} {}", r.getGroupId(), r.getArtifactId(), r.getVersion()); - - ArtifactMetaData amd = client.getArtifactMetaData(r.getGroupId(), r.getArtifactId()); - - String subDir = ""; - - if (FileType.OPENAPI.toString().equals(amd.getGroupId())) { - subDir = "Definitions/"; - } else if (FileType.POLICY.toString().equals(amd.getGroupId())) { - subDir = "Policies/"; - } - - String fileName = baseDir + subDir + r.getName(); - log.info(" - Adding file: {}", fileName); - - zos.putNextEntry(new ZipEntry(fileName)); - - try (InputStream is = client.getContentByGlobalId(amd.getGlobalId())) { - zos.write(is.readAllBytes()); - } - - zos.closeEntry(); - } - zos.finish(); - return baos.toByteArray(); - } - } - } diff --git a/src/main/java/cz/trask/apioperator/impl/ImportToApicurio.java b/src/main/java/cz/trask/apioperator/impl/ImportToApicurio.java index 76172c8..84ed3fe 100644 --- a/src/main/java/cz/trask/apioperator/impl/ImportToApicurio.java +++ b/src/main/java/cz/trask/apioperator/impl/ImportToApicurio.java @@ -28,7 +28,7 @@ import cz.trask.apioperator.model.HttpResponse; import cz.trask.apioperator.model.RegisterResponse; import cz.trask.apioperator.model.TokenResponse; import cz.trask.apioperator.model.ZipEntryData; -import cz.trask.apioperator.utils.ZipExtractor; +import cz.trask.apioperator.utils.ZipUtils; import io.apicurio.registry.rest.client.RegistryClient; import io.apicurio.registry.rest.client.RegistryClientFactory; import io.apicurio.registry.rest.client.exception.VersionAlreadyExistsException; @@ -137,7 +137,7 @@ public class ImportToApicurio extends AbstractProcess { config.getSourcePublisherApiUrl() + "/apis/export?apiId=" + api.getId(), httpHeaders, Collections.emptyMap(), true); - List zipEntries = ZipExtractor.extractFilesFromZip(exportedZip.getResponseBytes()); + List zipEntries = ZipUtils.extractFilesFromZip(exportedZip.getResponseBytes()); String swagger = null; diff --git a/src/main/java/cz/trask/apioperator/utils/ZipExtractor.java b/src/main/java/cz/trask/apioperator/utils/ZipUtils.java similarity index 53% rename from src/main/java/cz/trask/apioperator/utils/ZipExtractor.java rename to src/main/java/cz/trask/apioperator/utils/ZipUtils.java index f119156..12c66ef 100644 --- a/src/main/java/cz/trask/apioperator/utils/ZipExtractor.java +++ b/src/main/java/cz/trask/apioperator/utils/ZipUtils.java @@ -3,15 +3,26 @@ package cz.trask.apioperator.utils; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; +import java.util.zip.ZipOutputStream; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import cz.trask.apioperator.model.FileType; import cz.trask.apioperator.model.ZipEntryData; +import io.apicurio.registry.rest.client.RegistryClient; +import io.apicurio.registry.rest.v2.beans.ArtifactMetaData; +import io.apicurio.registry.rest.v2.beans.ArtifactReference; +import io.apicurio.registry.rest.v2.beans.SearchedVersion; -public class ZipExtractor { +public class ZipUtils { + + private static final Logger log = LogManager.getLogger(ZipUtils.class); public static List extractFilesFromZip(byte[] data) throws IOException { List fileList = new ArrayList<>(); @@ -49,10 +60,6 @@ public class ZipExtractor { return FileType.UNKNOWN; } - private static boolean isWsdLFile(String fileName) { - return fileName.toLowerCase().endsWith(".wsdl"); - } - private static byte[] readAllBytes(ZipInputStream zis) throws IOException { ByteArrayOutputStream buffer = new ByteArrayOutputStream(); int nRead; @@ -63,4 +70,41 @@ public class ZipExtractor { buffer.flush(); return buffer.toByteArray(); } + + public static byte[] prepareApiZipFile(RegistryClient client, SearchedVersion ver, List ref) + throws IOException { + + String baseDir = ver.getName() + "-" + ver.getVersion() + "/"; + + try (ByteArrayOutputStream baos = new ByteArrayOutputStream(); + ZipOutputStream zos = new ZipOutputStream(baos)) { + + for (ArtifactReference r : ref) { + log.info(" - Reference: {} {} {}", r.getGroupId(), r.getArtifactId(), r.getVersion()); + + ArtifactMetaData amd = client.getArtifactMetaData(r.getGroupId(), r.getArtifactId()); + + String subDir = ""; + + if (FileType.OPENAPI.toString().equals(amd.getGroupId())) { + subDir = "Definitions/"; + } else if (FileType.POLICY.toString().equals(amd.getGroupId())) { + subDir = "Policies/"; + } + + String fileName = baseDir + subDir + r.getName(); + log.info(" - Adding file: {}", fileName); + + zos.putNextEntry(new ZipEntry(fileName)); + + try (InputStream is = client.getContentByGlobalId(amd.getGlobalId())) { + zos.write(is.readAllBytes()); + } + + zos.closeEntry(); + } + zos.finish(); + return baos.toByteArray(); + } + } }