From 57f0c2c8ca8c4b99ba4f7d73ebcb7fd233d43dc2 Mon Sep 17 00:00:00 2001 From: Thushara Kasun Ranawaka Date: Thu, 9 Apr 2015 12:01:20 +0530 Subject: [PATCH] changes due to swagger import --- .../handlers/SwaggerMediaTypeHandler.java | 26 +++++++++++++++---- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/components/registry/org.wso2.carbon.registry.extensions/src/main/java/org/wso2/carbon/registry/extensions/handlers/SwaggerMediaTypeHandler.java b/components/registry/org.wso2.carbon.registry.extensions/src/main/java/org/wso2/carbon/registry/extensions/handlers/SwaggerMediaTypeHandler.java index 3160fddf6..3745db3f5 100644 --- a/components/registry/org.wso2.carbon.registry.extensions/src/main/java/org/wso2/carbon/registry/extensions/handlers/SwaggerMediaTypeHandler.java +++ b/components/registry/org.wso2.carbon.registry.extensions/src/main/java/org/wso2/carbon/registry/extensions/handlers/SwaggerMediaTypeHandler.java @@ -17,6 +17,7 @@ package org.wso2.carbon.registry.extensions.handlers; import org.apache.axiom.om.OMElement; +import org.apache.commons.lang.StringUtils; import org.wso2.carbon.registry.core.RegistryConstants; import org.wso2.carbon.registry.core.Resource; import org.wso2.carbon.registry.core.config.RegistryContext; @@ -138,11 +139,26 @@ public void put(RequestContext requestContext) throws RegistryException { throw new RegistryException(CommonConstants.INVALID_CONTENT); } - inputStream = new ByteArrayInputStream((byte[]) resourceContentObj); - SwaggerProcessor processor = new SwaggerProcessor(requestContext); - processor.processSwagger(inputStream, getChrootedLocation(requestContext.getRegistryContext()), null); - requestContext.setProcessingComplete(true); - } finally { + requestContext.setSourceURL( + requestContext.getResource().getProperty(CommonConstants.SOURCEURL_PARAMETER_NAME)); + String sourceURL = requestContext.getSourceURL(); + + + if (StringUtils.isBlank(sourceURL)) { + inputStream = new ByteArrayInputStream((byte[]) resourceContentObj); + SwaggerProcessor processor = new SwaggerProcessor(requestContext); + processor.processSwagger(inputStream, getChrootedLocation(requestContext.getRegistryContext()), null); + } else { + //Open a stream to the sourceURL + inputStream = new URL(sourceURL).openStream(); + + SwaggerProcessor processor = new SwaggerProcessor(requestContext); + processor.processSwagger(inputStream, getChrootedLocation(requestContext.getRegistryContext()), sourceURL); + } + requestContext.setProcessingComplete(true); + }catch (IOException e) { + throw new RegistryException("The URL " + requestContext.getSourceURL() + " is incorrect.", e); + } finally { CommonUtil.closeInputStream(inputStream); CommonUtil.releaseUpdateLock(); }