From 8063ebb6389c7762deb1a8749de1ab3af2065037 Mon Sep 17 00:00:00 2001 From: Radek Davidek Date: Thu, 16 Oct 2025 13:30:19 +0200 Subject: [PATCH] parsing using jackson --- pom.xml | 15 - .../cz/trask/migration/AbstractProcess.java | 10 +- .../migration/impl/v32/ImportToApicurio.java | 9 +- .../cz/trask/migration/model/v32/API.java | 1073 ----------------- .../migration/model/v32/APICategory.java | 80 -- .../migration/model/v32/APIEndpoint.java | 67 - .../migration/model/v32/APIIdentifier.java | 128 -- .../model/v32/APIProductIdentifier.java | 126 -- .../trask/migration/model/v32/APIStatus.java | 37 - .../model/v32/AuthorizationPolicy.java | 39 - .../model/v32/CORSConfiguration.java | 83 -- .../migration/model/v32/ConditionDTO.java | 69 -- .../model/v32/ConditionGroupDTO.java | 51 - .../model/v32/DeploymentEnvironments.java | 52 - .../migration/model/v32/Documentation.java | 171 --- .../model/v32/DocumentationType.java | 43 - .../trask/migration/model/v32/Endpoint.java | 106 -- .../migration/model/v32/EndpointConfig.java | 87 -- .../model/v32/EndpointConfigAttributes.java | 55 - .../model/v32/EndpointEndpointConfig.java | 63 - .../migration/model/v32/EndpointSecurity.java | 152 --- .../trask/migration/model/v32/Identifier.java | 66 - .../cz/trask/migration/model/v32/Label.java | 90 -- .../cz/trask/migration/model/v32/Limit.java | 47 - .../cz/trask/migration/model/v32/Policy.java | 128 -- .../migration/model/v32/PolicyConstants.java | 121 -- .../migration/model/v32/QuotaPolicy.java | 48 - .../migration/model/v32/ResourceFile.java | 38 - .../cz/trask/migration/model/v32/Scope.java | 100 -- .../cz/trask/migration/model/v32/Tier.java | 176 --- .../migration/model/v32/TierPermission.java | 54 - .../migration/model/v32/URITemplate.java | 442 ------- 32 files changed, 9 insertions(+), 3817 deletions(-) delete mode 100644 src/main/java/cz/trask/migration/model/v32/API.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/APICategory.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/APIEndpoint.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/APIIdentifier.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/APIProductIdentifier.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/APIStatus.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/AuthorizationPolicy.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/CORSConfiguration.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/ConditionDTO.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/ConditionGroupDTO.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/DeploymentEnvironments.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/Documentation.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/DocumentationType.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/Endpoint.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/EndpointConfig.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/EndpointConfigAttributes.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/EndpointEndpointConfig.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/EndpointSecurity.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/Identifier.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/Label.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/Limit.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/Policy.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/PolicyConstants.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/QuotaPolicy.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/ResourceFile.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/Scope.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/Tier.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/TierPermission.java delete mode 100644 src/main/java/cz/trask/migration/model/v32/URITemplate.java diff --git a/pom.xml b/pom.xml index d27ee8f..68ad773 100644 --- a/pom.xml +++ b/pom.xml @@ -33,16 +33,6 @@ gson 2.13.1 - - com.googlecode.json-simple - json-simple - 1.1.1 - - - org.yaml - snakeyaml - 2.4 - com.fasterxml.jackson.core jackson-databind @@ -53,11 +43,6 @@ jackson-dataformat-yaml 2.19.2 - - org.apache.commons - commons-lang3 - 3.18.0 - diff --git a/src/main/java/cz/trask/migration/AbstractProcess.java b/src/main/java/cz/trask/migration/AbstractProcess.java index 05c10a9..4722c06 100644 --- a/src/main/java/cz/trask/migration/AbstractProcess.java +++ b/src/main/java/cz/trask/migration/AbstractProcess.java @@ -17,8 +17,9 @@ import javax.net.ssl.HttpsURLConnection; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.yaml.snakeyaml.Yaml; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.google.gson.Gson; import com.google.gson.GsonBuilder; @@ -37,7 +38,9 @@ public abstract class AbstractProcess { protected Gson gson; - protected Yaml yaml; + protected ObjectMapper mapper; + + protected ObjectMapper mapperYaml; protected ConfigManager config = ConfigManager.getInstance(); @@ -45,7 +48,8 @@ public abstract class AbstractProcess { gson = new GsonBuilder().create(); - yaml = new Yaml(); + mapper = new ObjectMapper(); + mapperYaml = new ObjectMapper(new YAMLFactory()); setTrustStoreCredentials(); diff --git a/src/main/java/cz/trask/migration/impl/v32/ImportToApicurio.java b/src/main/java/cz/trask/migration/impl/v32/ImportToApicurio.java index b7ffb75..226289f 100644 --- a/src/main/java/cz/trask/migration/impl/v32/ImportToApicurio.java +++ b/src/main/java/cz/trask/migration/impl/v32/ImportToApicurio.java @@ -14,10 +14,7 @@ import java.util.concurrent.atomic.AtomicInteger; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import org.yaml.snakeyaml.Yaml; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.gson.reflect.TypeToken; @@ -30,7 +27,6 @@ import cz.trask.migration.model.HttpResponse; import cz.trask.migration.model.RegisterResponse; import cz.trask.migration.model.TokenResponse; import cz.trask.migration.model.ZipEntryData; -import cz.trask.migration.model.v32.ApiDefinition; import io.apicurio.registry.rest.client.RegistryClient; import io.apicurio.registry.rest.client.RegistryClientFactory; import io.apicurio.registry.rest.client.exception.VersionAlreadyExistsException; @@ -177,7 +173,7 @@ public class ImportToApicurio extends AbstractProcess { + devPortUrl; // 6) Update the swagger with the description and servers - Map swaggerMap = yaml.load(swagger); + Map swaggerMap = mapperYaml.readValue(swagger, Map.class); JsonObject swaggerObj = gson.toJsonTree(swaggerMap).getAsJsonObject(); updateSwagger(swaggerObj, apiMap, fullDesc); @@ -326,8 +322,7 @@ public class ImportToApicurio extends AbstractProcess { for (ZipEntryData entry : zipEntries) { String artifactId = api.getName() + "/" + api.getVersion() + "/" + entry.getName(); - ObjectMapper mapper = new ObjectMapper(new YAMLFactory()); - ApiDefinition apiDef = mapper.readValue(entry.getContent(), ApiDefinition.class); + //ApiDefinition apiDef = mapper.readValue(entry.getContent(), ApiDefinition.class); // Create the artifact (versioned) try (ByteArrayInputStream is = new ByteArrayInputStream(entry.getContent())) { diff --git a/src/main/java/cz/trask/migration/model/v32/API.java b/src/main/java/cz/trask/migration/model/v32/API.java deleted file mode 100644 index 61580ac..0000000 --- a/src/main/java/cz/trask/migration/model/v32/API.java +++ /dev/null @@ -1,1073 +0,0 @@ -/* -* Copyright (c) 2005-2011, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. -* -* WSO2 Inc. licenses this file to you 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. -*/ -package cz.trask.migration.model.v32; - -import java.io.Serializable; -import java.util.ArrayList; -import java.util.Collections; -import java.util.Date; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Objects; -import java.util.Set; - -import org.apache.commons.lang3.StringUtils; -import org.json.simple.JSONObject; - - -/** - * Provider's & system's view of API - */ -@SuppressWarnings("unused") -public class API implements Serializable { - - private static final long serialVersionUID = 1L; - - private APIIdentifier id; - - // uuid of registry artifact - // this id is provider's username independent - private String uuid; - - private String description; - private String url; - private String sandboxUrl; - private String wsdlUrl; - private String wsdlArchivePath; - private String wadlUrl; - private String swaggerDefinition; - private String graphQLSchema; - private String type; - private String context; - private String contextTemplate; - private String thumbnailUrl; - private ResourceFile wsdlResource; - private Set tags = new LinkedHashSet(); - private Set documents = new LinkedHashSet(); - private String httpVerb; - private Date lastUpdated; - private Set availableTiers = new LinkedHashSet(); - private Set availableSubscriptionLevelPolicies = new LinkedHashSet(); - private String apiLevelPolicy; - private AuthorizationPolicy authorizationPolicy; - private Set uriTemplates = new LinkedHashSet(); - - //dirty pattern to identify which parts to be updated - private boolean apiHeaderChanged; - private boolean apiResourcePatternsChanged; - - private String status; - - private String technicalOwner; - private String technicalOwnerEmail; - private String businessOwner; - private String businessOwnerEmail; - - // Used for keeping Production & Sandbox Throttling limits. - private String productionMaxTps; - private String sandboxMaxTps; - - private String visibility; - private String visibleRoles; - private String visibleTenants; - - private List