diff --git a/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/SynapseArtifactGenerator.java b/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/SynapseArtifactGenerator.java index b28db7ed50ed..d4c6c84019fe 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/SynapseArtifactGenerator.java +++ b/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/SynapseArtifactGenerator.java @@ -99,7 +99,7 @@ public RuntimeArtifactDto generateGatewayArtifact(List ap String openApiDefinition = ImportUtils.loadSwaggerFile(extractedFolderPath); apiProduct.setDefinition(openApiDefinition); gatewayAPIDTO = TemplateBuilderUtil.retrieveGatewayAPIDto(apiProduct, environment, - tenantDomain, extractedFolderPath); + tenantDomain, extractedFolderPath, openApiDefinition); } else { APIDTO apidto = ImportUtils.retrievedAPIDto(extractedFolderPath); API api = APIMappingUtil.fromDTOtoAPI(apidto, apidto.getProvider()); diff --git a/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/TemplateBuilderUtil.java b/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/TemplateBuilderUtil.java index 07f074910298..60fd62db4578 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/TemplateBuilderUtil.java +++ b/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/TemplateBuilderUtil.java @@ -712,7 +712,7 @@ public static GatewayAPIDTO retrieveGatewayAPIDtoForStreamingAPI(API api, Enviro } public static GatewayAPIDTO retrieveGatewayAPIDto(APIProduct apiProduct, Environment environment, - String tenantDomain, String extractedFolderPath) + String tenantDomain, String extractedFolderPath, String apiDefinition) throws APIManagementException, XMLStreamException, APITemplateException { List clientCertificatesDTOListProduction = @@ -721,12 +721,29 @@ public static GatewayAPIDTO retrieveGatewayAPIDto(APIProduct apiProduct, Environ ImportUtils.retrieveClientCertificates(extractedFolderPath, APIConstants.API_KEY_TYPE_SANDBOX); Map apidtoMap = retrieveAssociatedApis(extractedFolderPath); Map associatedAPIsMap = convertAPIIdToDto(apidtoMap.values()); + APIDefinition parser = OASParserUtil.getOASParser(apiDefinition); + Set uriTemplates = Collections.emptySet(); + if (parser != null) { + uriTemplates = parser.getURITemplates(apiDefinition); + } for (APIProductResource productResource : apiProduct.getProductResources()) { String apiId = productResource.getApiId(); APIDTO apidto = associatedAPIsMap.get(apiId); if (apidto != null) { API api = APIMappingUtil.fromDTOtoAPI(apidto, apidto.getProvider()); productResource.setApiIdentifier(api.getId()); + if (APIConstants.IMPLEMENTATION_TYPE_INLINE.equalsIgnoreCase(api.getImplementation())) { + for (URITemplate uriTemplate : uriTemplates) { + URITemplate template = productResource.getUriTemplate(); + if (template.getHTTPVerb() + .equalsIgnoreCase(uriTemplate.getHTTPVerb()) && template.getUriTemplate() + .equals(uriTemplate.getUriTemplate())) { + template.setMediationScript(uriTemplate.getMediationScript()); + template.setMediationScripts(uriTemplate.getHTTPVerb(), uriTemplate.getMediationScript()); + break; + } + } + } if (api.isAdvertiseOnly()) { productResource.setEndpointConfig(APIUtil.generateEndpointConfigForAdvertiseOnlyApi(api)); } else { @@ -800,8 +817,9 @@ private static GatewayAPIDTO createAPIGatewayDTOtoPublishAPI(Environment environ // check the endpoint type if (!StringUtils.isEmpty(api.getEndpointConfig())) { JsonObject endpointConfObj = JsonParser.parseString(api.getEndpointConfig()).getAsJsonObject(); - if (!APIConstants.ENDPOINT_TYPE_SEQUENCE.equals( - endpointConfObj.get(API_ENDPOINT_CONFIG_PROTOCOL_TYPE).getAsString())) { + if (!APIConstants.ENDPOINT_TYPE_SEQUENCE.equals(endpointConfObj.get(API_ENDPOINT_CONFIG_PROTOCOL_TYPE) + .getAsString()) && !APIConstants.IMPLEMENTATION_TYPE_INLINE.equalsIgnoreCase( + api.getImplementation())) { addEndpoints(api, apiTemplateBuilder, productAPIDto, null); } } else { diff --git a/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/template/ResourceConfigContext.java b/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/template/ResourceConfigContext.java index 389b22aafd14..2006e44d2c0b 100644 --- a/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/template/ResourceConfigContext.java +++ b/components/apimgt/org.wso2.carbon.apimgt.rest.api.publisher.v1.common/src/main/java/org/wso2/carbon/apimgt/rest/api/publisher/v1/common/template/ResourceConfigContext.java @@ -84,6 +84,8 @@ public VelocityContext getContext() { resource.getApiIdentifier() + ":" + resource.getUriTemplate().getUriTemplate(); if (resourceKey.equals(productResourceKey)) { resource.getUriTemplate().setHttpVerbs(uriTemplate.getHTTPVerb()); + resource.getUriTemplate() + .setMediationScripts(uriTemplate.getHTTPVerb(), uriTemplate.getMediationScript()); } } } else {