@Override protected void onExchange(Exchange exchange) throws Exception { String newResourceUri = exchange.getIn().getHeader(MUSTACHE_RESOURCE_URI, String.class); if (newResourceUri == null) { // Get Mustache String newTemplate = exchange.getIn().getHeader(MUSTACHE_TEMPLATE, String.class); Mustache newMustache; if (newTemplate == null) { newMustache = getOrCreateMustache(); } else { newMustache = createMustache(new StringReader(newTemplate), "mustache:temp#" + newTemplate.hashCode()); exchange.getIn().removeHeader(MUSTACHE_TEMPLATE); } // Execute Mustache Map<String, Object> variableMap = ExchangeHelper.createVariableMap(exchange); StringWriter writer = new StringWriter(); newMustache.execute(writer, variableMap); writer.flush(); // Fill out message Message out = exchange.getOut(); out.setBody(writer.toString()); out.setHeaders(exchange.getIn().getHeaders()); out.setAttachments(exchange.getIn().getAttachments()); } else { exchange.getIn().removeHeader(MustacheConstants.MUSTACHE_RESOURCE_URI); MustacheEndpoint newEndpoint = getCamelContext().getEndpoint(MUSTACHE_ENDPOINT_URI_PREFIX + newResourceUri, MustacheEndpoint.class); newEndpoint.onExchange(exchange); } }
@Override protected void onExchange(Exchange exchange) throws Exception { StringWriter buffer = new StringWriter(); @SuppressWarnings("unchecked") Map<String, Object> variableMap = exchange.getIn().getHeader(StringTemplateConstants.STRINGTEMPLATE_VARIABLE_MAP, Map.class); if (variableMap == null) { variableMap = ExchangeHelper.createVariableMap(exchange); } // getResourceAsInputStream also considers the content cache String text = exchange.getContext().getTypeConverter().mandatoryConvertTo(String.class, getResourceAsInputStream()); ST template = new ST(text, delimiterStart, delimiterStop); for (Map.Entry<String, Object> entry : variableMap.entrySet()) { template.add(entry.getKey(), entry.getValue()); } log.debug("StringTemplate is writing using attributes: {}", variableMap); template.write(new NoIndentWriter(buffer)); // now lets output the results to the exchange Message out = exchange.getOut(); out.setBody(buffer.toString()); out.setHeaders(exchange.getIn().getHeaders()); out.setHeader(StringTemplateConstants.STRINGTEMPLATE_RESOURCE_URI, getResourceUri()); out.setAttachments(exchange.getIn().getAttachments()); } }
Context velocityContext = exchange.getIn().getHeader(VelocityConstants.VELOCITY_CONTEXT, Context.class); if (velocityContext == null) { Map<String, Object> variableMap = ExchangeHelper.createVariableMap(exchange);
Map<String, Object> variableMap = ExchangeHelper.createVariableMap(exchange); StringWriter writer = new StringWriter(); newChunk.putAll(variableMap);
Map<String, Object> variableMap = ExchangeHelper.createVariableMap(exchange);