Search in sources :

Example 1 with ResourceConfigContext

use of org.wso2.carbon.apimgt.core.template.ResourceConfigContext in project carbon-apimgt by wso2.

the class GatewaySourceGeneratorImpl method getConfigStringFromTemplate.

@Override
public String getConfigStringFromTemplate(List<TemplateBuilderDTO> apiResources) throws APITemplateException {
    StringWriter writer = new StringWriter();
    String templatePath = "resources" + File.separator + "template" + File.separator + "template.xml";
    try {
        // build the context for template and apply the necessary decorators
        apiConfigContext.validate();
        ConfigContext configContext = new ResourceConfigContext(apiConfigContext, apiResources);
        VelocityContext context = configContext.getContext();
        VelocityEngine velocityengine = new VelocityEngine();
        velocityengine.setProperty(RuntimeConstants.RESOURCE_LOADER, "classpath");
        velocityengine.setProperty("classpath.resource.loader.class", ClasspathResourceLoader.class.getName());
        velocityengine.setProperty(VelocityEngine.RUNTIME_LOG_LOGSYSTEM, new CommonsLogLogChute());
        velocityengine.init();
        Template template = velocityengine.getTemplate(templatePath);
        template.merge(context, writer);
    } catch (ResourceNotFoundException e) {
        log.error("Template " + templatePath + " not Found", e);
        throw new APITemplateException("Template " + templatePath + " not Found", ExceptionCodes.TEMPLATE_EXCEPTION);
    } catch (ParseErrorException e) {
        log.error("Syntax error in " + templatePath, e);
        throw new APITemplateException("Syntax error in " + templatePath, ExceptionCodes.TEMPLATE_EXCEPTION);
    }
    return writer.toString();
}
Also used : VelocityEngine(org.apache.velocity.app.VelocityEngine) CommonsLogLogChute(org.apache.velocity.runtime.log.CommonsLogLogChute) StringWriter(java.io.StringWriter) VelocityContext(org.apache.velocity.VelocityContext) ResourceConfigContext(org.wso2.carbon.apimgt.core.template.ResourceConfigContext) ParseErrorException(org.apache.velocity.exception.ParseErrorException) ClasspathResourceLoader(org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader) APITemplateException(org.wso2.carbon.apimgt.core.template.APITemplateException) ResourceNotFoundException(org.apache.velocity.exception.ResourceNotFoundException) CompositeAPIConfigContext(org.wso2.carbon.apimgt.core.template.CompositeAPIConfigContext) ConfigContext(org.wso2.carbon.apimgt.core.template.ConfigContext) APIConfigContext(org.wso2.carbon.apimgt.core.template.APIConfigContext) ResourceConfigContext(org.wso2.carbon.apimgt.core.template.ResourceConfigContext) Template(org.apache.velocity.Template)

Example 2 with ResourceConfigContext

use of org.wso2.carbon.apimgt.core.template.ResourceConfigContext in project carbon-apimgt by wso2.

the class APIConfigContextTestCase method testResourceConfigContext.

@Test
public void testResourceConfigContext() {
    APIConfigContext apiConfigContext = new APIConfigContext(SampleTestObjectCreator.createDefaultAPI().build(), "org.test");
    TemplateBuilderDTO templateBuilderDTO = new TemplateBuilderDTO();
    templateBuilderDTO.setTemplateId("t1");
    List<TemplateBuilderDTO> templateList = new ArrayList<TemplateBuilderDTO>();
    templateList.add(templateBuilderDTO);
    ResourceConfigContext resourceConfigContext = new ResourceConfigContext(apiConfigContext, templateList);
    List<TemplateBuilderDTO> templatesFromContext = (List<TemplateBuilderDTO>) resourceConfigContext.getContext().get("apiResources");
    String templateIdFromContext = templatesFromContext.get(0).getTemplateId();
    Assert.assertEquals(templateIdFromContext, "t1");
}
Also used : ArrayList(java.util.ArrayList) TemplateBuilderDTO(org.wso2.carbon.apimgt.core.template.dto.TemplateBuilderDTO) List(java.util.List) ArrayList(java.util.ArrayList) Test(org.testng.annotations.Test)

Aggregations

StringWriter (java.io.StringWriter)1 ArrayList (java.util.ArrayList)1 List (java.util.List)1 Template (org.apache.velocity.Template)1 VelocityContext (org.apache.velocity.VelocityContext)1 VelocityEngine (org.apache.velocity.app.VelocityEngine)1 ParseErrorException (org.apache.velocity.exception.ParseErrorException)1 ResourceNotFoundException (org.apache.velocity.exception.ResourceNotFoundException)1 CommonsLogLogChute (org.apache.velocity.runtime.log.CommonsLogLogChute)1 ClasspathResourceLoader (org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader)1 Test (org.testng.annotations.Test)1 APIConfigContext (org.wso2.carbon.apimgt.core.template.APIConfigContext)1 APITemplateException (org.wso2.carbon.apimgt.core.template.APITemplateException)1 CompositeAPIConfigContext (org.wso2.carbon.apimgt.core.template.CompositeAPIConfigContext)1 ConfigContext (org.wso2.carbon.apimgt.core.template.ConfigContext)1 ResourceConfigContext (org.wso2.carbon.apimgt.core.template.ResourceConfigContext)1 TemplateBuilderDTO (org.wso2.carbon.apimgt.core.template.dto.TemplateBuilderDTO)1