package org.wso2.carbon.rest.api; import java.util.Properties; import org.apache.axiom.om.OMAttribute; import org.apache.axiom.om.OMElement; import org.apache.axis2.context.ConfigurationContext; import org.apache.synapse.deployers.APIDeployer; import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.utils.multitenancy.MultitenantConstants; import javax.xml.namespace.QName; public class ApiDeployer extends APIDeployer { @Override public void init(ConfigurationContext configCtx) { super.init(configCtx); } @Override public String deploySynapseArtifact(OMElement artifactConfig, String fileName, Properties properties) { String tenantDomain = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantDomain(); if(!MultitenantConstants.SUPER_TENANT_DOMAIN_NAME.equals(tenantDomain)){ OMAttribute context = artifactConfig.getAttribute(new QName("context")); if(context != null){ if(!context.getAttributeValue().startsWith("/"+MultitenantConstants.TENANT_AWARE_URL_PREFIX+"/" + tenantDomain)){ context.setAttributeValue("/"+MultitenantConstants.TENANT_AWARE_URL_PREFIX+"/" + tenantDomain + context.getAttributeValue()); } } } String proxyName = super.deploySynapseArtifact(artifactConfig, fileName, properties); return proxyName; } @Override public String updateSynapseArtifact(OMElement artifactConfig, String fileName, String existingArtifactName, Properties properties) { String proxyName = super.updateSynapseArtifact( artifactConfig, fileName, existingArtifactName, properties); return proxyName; } @Override public void undeploySynapseArtifact(String artifactName) { super.undeploySynapseArtifact(artifactName); } @Override public void restoreSynapseArtifact(String artifactName) { super.restoreSynapseArtifact(artifactName); } }