generic policy metadata added
This commit is contained in:
parent
fa1200473b
commit
efeae043aa
Binary file not shown.
@ -2,6 +2,7 @@ package cz.trask.migration.impl.v45;
|
||||
|
||||
import java.io.ByteArrayOutputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@ -23,6 +24,7 @@ import cz.trask.migration.model.ApiDefinition32;
|
||||
import cz.trask.migration.model.ApiDefinition45;
|
||||
import cz.trask.migration.model.FileType;
|
||||
import cz.trask.migration.model.HttpResponse;
|
||||
import cz.trask.migration.model.OperationPolicySpecification45;
|
||||
import cz.trask.migration.model.RegisterResponse;
|
||||
import cz.trask.migration.model.TokenResponse;
|
||||
import io.apicurio.registry.rest.client.RegistryClient;
|
||||
@ -192,16 +194,19 @@ public class ExportToWso2FromV32 extends AbstractProcess {
|
||||
|
||||
if (FileType.POLICY_IN.toString().equals(amd.getGroupId())) {
|
||||
subDir = "Policies/";
|
||||
specialName = r.getName().replace(".xml", "_v1_common.j2");
|
||||
specialName = r.getName().replace(".xml", "_v1_api.j2");
|
||||
content = convertSequenceToPolicy(content);
|
||||
addGenericPolicyMetadata(zos, baseDir + subDir, specialName.replace(".j2", ".yaml"), r);
|
||||
} else if (FileType.POLICY_OUT.toString().equals(amd.getGroupId())) {
|
||||
subDir = "Policies/";
|
||||
specialName = r.getName().replace(".xml", "_v1_common.j2");
|
||||
content = convertSequenceToPolicy(content);
|
||||
addGenericPolicyMetadata(zos, baseDir + subDir, specialName.replace(".j2", ".yaml"), r);
|
||||
} else if (FileType.POLICY_FAULT.toString().equals(amd.getGroupId())) {
|
||||
subDir = "Policies/";
|
||||
specialName = r.getName().replace(".xml", "_v1_common.j2");
|
||||
content = convertSequenceToPolicy(content);
|
||||
addGenericPolicyMetadata(zos, baseDir + subDir, specialName.replace(".j2", ".yaml"), r);
|
||||
} else if (FileType.OPENAPI.toString().equals(amd.getGroupId())) {
|
||||
subDir = "Definitions/";
|
||||
contentStr = new String(content);
|
||||
@ -234,6 +239,32 @@ public class ExportToWso2FromV32 extends AbstractProcess {
|
||||
}
|
||||
}
|
||||
|
||||
private void addGenericPolicyMetadata(ZipOutputStream zos, String subDir, String fileName, ArtifactReference r)
|
||||
throws Exception {
|
||||
OperationPolicySpecification45 ops = new OperationPolicySpecification45();
|
||||
ops.setVersion("v4.5.0");
|
||||
ops.setType("operation_policy_specification");
|
||||
OperationPolicySpecification45.Data data = new OperationPolicySpecification45.Data();
|
||||
data.setName(r.getName().replace(".xml", ""));
|
||||
data.setCategory("Mediation");
|
||||
data.setDescription("Generic Migrated policy " + r.getName());
|
||||
data.setDisplayName(r.getName().replace(".xml", ""));
|
||||
data.setVersion("v1");
|
||||
data.setApplicableFlows(new ArrayList<>());
|
||||
data.getApplicableFlows().add("request");
|
||||
data.getApplicableFlows().add("response");
|
||||
data.setSupportedGateways(new ArrayList<>());
|
||||
data.getSupportedGateways().add("Synapse");
|
||||
data.setSupportedApiTypes(new ArrayList<>());
|
||||
data.getSupportedApiTypes().add("HTTP");
|
||||
data.setPolicyAttributes(new ArrayList<>());
|
||||
ops.setData(data);
|
||||
|
||||
zos.putNextEntry(new ZipEntry(subDir + fileName));
|
||||
zos.write(mapperYaml.writeValueAsBytes(ops));
|
||||
zos.closeEntry();
|
||||
}
|
||||
|
||||
private byte[] convertSequenceToPolicy(byte[] content) throws Exception {
|
||||
if (content != null && content.length > 0) {
|
||||
Pattern pattern = Pattern.compile("<sequence[^>]*>(.*?)</sequence>", Pattern.DOTALL);
|
||||
|
||||
@ -152,8 +152,8 @@ public class ApiDefinitionMapper {
|
||||
if (oldApi != null && oldApi.getInSequence() != null && !oldApi.getInSequence().isEmpty()) {
|
||||
ApiDefinition45.Policy requestPolicy = new ApiDefinition45.Policy();
|
||||
requestPolicy.setPolicyName(oldApi.getInSequence());
|
||||
requestPolicy.setPolicyType("");
|
||||
requestPolicy.setPolicyVersion("");
|
||||
requestPolicy.setPolicyType("api");
|
||||
requestPolicy.setPolicyVersion("v1");
|
||||
requestPolicy.setPolicyId("");
|
||||
requestPolicy.setParameters(Collections.emptyMap());
|
||||
apiPolicies.setRequest(List.of(requestPolicy));
|
||||
@ -163,7 +163,7 @@ public class ApiDefinitionMapper {
|
||||
if (oldApi != null && oldApi.getOutSequence() != null && !oldApi.getOutSequence().isEmpty()) {
|
||||
ApiDefinition45.Policy requestPolicy = new ApiDefinition45.Policy();
|
||||
requestPolicy.setPolicyName(oldApi.getOutSequence());
|
||||
requestPolicy.setPolicyType("common");
|
||||
requestPolicy.setPolicyType("api");
|
||||
requestPolicy.setPolicyVersion("v1");
|
||||
requestPolicy.setPolicyId("");
|
||||
requestPolicy.setParameters(Collections.emptyMap());
|
||||
@ -174,7 +174,7 @@ public class ApiDefinitionMapper {
|
||||
if (oldApi != null && oldApi.getFaultSequence() != null && !oldApi.getFaultSequence().isEmpty()) {
|
||||
ApiDefinition45.Policy requestPolicy = new ApiDefinition45.Policy();
|
||||
requestPolicy.setPolicyName(oldApi.getFaultSequence());
|
||||
requestPolicy.setPolicyType("common");
|
||||
requestPolicy.setPolicyType("api");
|
||||
requestPolicy.setPolicyVersion("v1");
|
||||
requestPolicy.setPolicyId("");
|
||||
requestPolicy.setParameters(Collections.emptyMap());
|
||||
|
||||
@ -0,0 +1,35 @@
|
||||
package cz.trask.migration.model;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public class OperationPolicySpecification45 {
|
||||
|
||||
private String type;
|
||||
private String version;
|
||||
private Data data;
|
||||
|
||||
@lombok.Data
|
||||
@JsonIgnoreProperties(ignoreUnknown = true)
|
||||
public static class Data {
|
||||
|
||||
private String category;
|
||||
private String name;
|
||||
private String version; // version of the policy itself
|
||||
private String displayName;
|
||||
private String description;
|
||||
|
||||
private List<String> applicableFlows;
|
||||
private List<String> supportedGateways;
|
||||
private List<String> supportedApiTypes;
|
||||
|
||||
private List<Object> policyAttributes = new ArrayList<>();
|
||||
|
||||
}
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user