@Override public SwitchYardCamelContext getContext() { return (SwitchYardCamelContext) super.getContext(); }
@Override public SwitchYardCamelContext getContext() { return (SwitchYardCamelContext) super.getContext(); }
private <T> T lookup(Class<T> type) { Set<T> processors = routeBuilder.getContext().getRegistry().findByType(type); if (processors.isEmpty() || processors.size() > 1) { throw new IllegalArgumentException("Must have exactly one processor of type " + type.getName() + ", but found " + processors.size()); } else { T processor = processors.iterator().next(); return processor; } } }
/** * Creates a new {@link ConverterAdapter} that adapts a * {@link Converter} Spring bean identified by name * <code>converterBeanName</code>. * * @param converterBeanName * name of the {@link Converter} bean. * @return an adapted {@link Converter} bean. */ public ConverterAdapter converter(String converterBeanName) { return new ConverterAdapter(routeBuilder.getContext().getRegistry() .lookupByNameAndType(converterBeanName, Converter.class)); }
/** * Creates a new {@link RendererAdapter} that adapts a * {@link Renderer} Spring bean identified by name * <code>rendererBeanName</code>. * * @param rendererBeanName * name of the {@link Renderer} bean. * @return an adapted {@link Renderer} bean. */ public RendererAdapter renderer(String rendererBeanName) { return new RendererAdapter(routeBuilder.getContext().getRegistry() .lookupByNameAndType(rendererBeanName, Renderer.class)); }
/** * Creates a new {@link AggregatorAdapter} that adapts a * {@link Aggregator} Spring bean identified by name * <code>aggregatorBeanName</code>. * * @param aggregatorBeanName * name of the {@link Aggregator} bean. * @return an adapted {@link Aggregator} bean. */ public AggregatorAdapter aggregationStrategy(String aggregatorBeanName) { return new AggregatorAdapter(routeBuilder.getContext().getRegistry() .lookupByNameAndType(aggregatorBeanName, Aggregator.class)); }
/** * Creates a new {@link ParserAdapter} that adapts a * {@link Parser} Spring bean identified by name * <code>parserBeanName</code>. * * @param parserBeanName * name of the {@link Parser} bean. * @return an adapted {@link Parser} bean. */ public ParserAdapter parser(String parserBeanName) { return new ParserAdapter(routeBuilder.getContext().getRegistry() .lookupByNameAndType(parserBeanName, Parser.class)); }
/** * Creates a new {@link PredicateAdapter} that adapts a {@link Predicate} * Spring bean identified by name <code>predicateBeanName</code>. * * @param predicateBeanName * name of the {@link Predicate} bean. * @return an adapted {@link Predicate} bean. */ public PredicateAdapter predicate(String predicateBeanName) { return new PredicateAdapter(routeBuilder.getContext().getRegistry() .lookupByNameAndType(predicateBeanName, Predicate.class)); }
/** * Creates a new {@link TransmogrifierAdapter} that adapts a * {@link Transmogrifier} Spring bean identified by name * <code>transmogrifierBeanName</code>. * * @param transmogrifierBeanName * name of the {@link Transmogrifier} bean. * @return an adapted {@link Transmogrifier} bean. */ public TransmogrifierAdapter transmogrifier(String transmogrifierBeanName) { return new TransmogrifierAdapter(routeBuilder.getContext().getRegistry() .lookupByNameAndType(transmogrifierBeanName, Transmogrifier.class)); }
/** * Creates a new {@link ValidatorAdapter} that adapts a * {@link Validator} Spring bean identified by name * <code>validatorBeanName</code>. * * @param validatorBeanName * name of the {@link Validator} bean. * @return an adapted {@link Validator} bean. */ public ValidatorAdapter validator(String validatorBeanName) { return new ValidatorAdapter(routeBuilder.getContext().getRegistry() .lookupByNameAndType(validatorBeanName, Validator.class)); }
public DataFormatAdapter dataFormatParser(String parserBeanName) { return new DataFormatAdapter(routeBuilder.getContext().getRegistry() .lookupByNameAndType(parserBeanName, Parser.class)); }
public DataFormatAdapter dataFormatRenderer(String rendererBeanName) { return new DataFormatAdapter(routeBuilder.getContext().getRegistry() .lookupByNameAndType(rendererBeanName, Renderer.class)); }
/** * Creates a {@link Validation} process object. * * @param validatorUri * URI of the endpoint that validates an exchange. * @return a validation process object. * @throws Exception * if a producer cannot be created for the endpoint represented * by <code>validatorUri</code>. */ public Validation validation(String validatorUri) throws Exception { Endpoint endpoint = CamelContextHelper.getMandatoryEndpoint(routeBuilder.getContext(), validatorUri); return new Validation(endpoint.createProducer()); }
/** * Creates a new {@link Enricher}. * * @param aggregationStrategy * aggregation strategy to combine input data and additional * data. * @param resourceUri * URI of resource endpoint for obtaining additional data. * @return an enricher. * @throws Exception * if a producer cannot be created for the endpoint represented * by <code>resourceUri</code>. */ public Enricher enricher(AggregationStrategy aggregationStrategy, String resourceUri) throws Exception { Endpoint endpoint = CamelContextHelper.getMandatoryEndpoint(routeBuilder.getContext(), resourceUri); return new Enricher(aggregationStrategy, endpoint.createProducer()); }
@Override public void start(StartContext startContext) throws StartException { try { Module appModule = Module.getCallerModuleLoader().loadModule("swarm.application"); ModuleClassLoaderAssociationHandler.associate(appModule.getClassLoader()); try { for (Map.Entry<String, RouteBuilder> entry : fraction.getRouteBuilders().entrySet()) { String name = entry.getKey(); RouteBuilder builder = entry.getValue(); ModelCamelContext camelctx = builder.getContext(); if (name != null) { camelctx.setNameStrategy(new ExplicitCamelContextNameStrategy(name)); } builder.addRoutesToCamelContext(camelctx); systemContexts.add(camelctx); } } finally { ModuleClassLoaderAssociationHandler.disassociate(); } for (CamelContext camelctx : systemContexts) { camelctx.start(); } } catch (Exception ex) { throw new StartException(ex); } }
@Override public void start(StartContext startContext) throws StartException { try { Module appModule = Module.getCallerModuleLoader().loadModule("thorntail.application"); ModuleClassLoaderAssociationHandler.associate(appModule.getClassLoader()); try { for (Map.Entry<String, RouteBuilder> entry : fraction.getRouteBuilders().entrySet()) { String name = entry.getKey(); RouteBuilder builder = entry.getValue(); ModelCamelContext camelctx = builder.getContext(); if (name != null) { camelctx.setNameStrategy(new ExplicitCamelContextNameStrategy(name)); } builder.addRoutesToCamelContext(camelctx); systemContexts.add(camelctx); } } finally { ModuleClassLoaderAssociationHandler.disassociate(); } for (CamelContext camelctx : systemContexts) { camelctx.start(); } } catch (Exception ex) { throw new StartException(ex); } }
/** * Creates a new {@link Enricher} using an {@link AggregatorAdapter} that * adapts an {@link Aggregator} Spring bean identified by name * <code>aggregatorBeanName</code>. The adapter is configured to obtain * the enrichment data from the resource's response-message's body (i.e. * from the out-message's body of the exchange used to communicate with the * resource). * * @param aggregatorBeanName * name of the {@link Aggregator} bean. * @param resourceUri * URI of resource endpoint for obtaining additional data. * @return an enricher. * @throws Exception * if a producer cannot be created for the endpoint represented * by <code>resourceUri</code>. */ public Enricher enricher(String aggregatorBeanName, String resourceUri) throws Exception { Endpoint endpoint = CamelContextHelper.getMandatoryEndpoint(routeBuilder.getContext(), resourceUri); return new Enricher(aggregationStrategy(aggregatorBeanName).aggregationInput(routeBuilder.body()), endpoint.createProducer()); }
/** * Creates new Camel routes in route builder. * @param routeBuilder * @return */ public CamelRouteActionBuilder create(RouteBuilder routeBuilder) { CreateCamelRouteAction camelRouteAction = new CreateCamelRouteAction(); try { if (!routeBuilder.getContext().equals(getCamelContext())) { routeBuilder.configureRoutes(getCamelContext()); } else { routeBuilder.configure(); } camelRouteAction.setRoutes(routeBuilder.getRouteCollection().getRoutes()); } catch (Exception e) { throw new CitrusRuntimeException("Failed to configure route definitions with camel context", e); } camelRouteAction.setCamelContext(getCamelContext()); action.setDelegate(camelRouteAction); return this; }
public JAXBContext getJaxbContext() { if ( this.jaxbContext == null ) { JaxbDataFormat def = new JaxbDataFormat(); def.setPrettyPrint( true ); def.setContextPath( "org.drools.model:org.drools.pipeline.camel" ); // create a jaxbContext for the test to use outside of Camel. StatefulKnowledgeSession ksession1 = (StatefulKnowledgeSession) node.get( "ksession1", CommandExecutor.class ); KnowledgeBase kbase = ksession1.getKieBase(); ClassLoader originalCl = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader( ((ReteooRuleBase) ((KnowledgeBaseImpl) kbase).getRuleBase()).getRootClassLoader() ); def = DroolsPolicy.augmentJaxbDataFormatDefinition( def ); org.apache.camel.converter.jaxb.JaxbDataFormat jaxbDataformat = (org.apache.camel.converter.jaxb.JaxbDataFormat) def.getDataFormat( this.context.getRoutes().get( 0 ).getRouteContext() ); jaxbDataformat.setCamelContext(routeBuilder.getContext()); try { jaxbDataformat.start(); } catch (Exception e) { throw new IllegalStateException(e); } jaxbContext = jaxbDataformat.getContext(); } finally { Thread.currentThread().setContextClassLoader( originalCl ); } } return jaxbContext; }
public JAXBContext getJaxbContext() { if ( this.jaxbContext == null ) { JaxbDataFormat def = new JaxbDataFormat(); def.setPrettyPrint( true ); // TODO does not work: def.setContextPath( "org.drools.camel.testdomain:org.drools.pipeline.camel" ); def.setContextPath( "org.drools.pipeline.camel" ); // create a jaxbContext for the test to use outside of Camel. StatefulKnowledgeSession ksession1 = (StatefulKnowledgeSession) node.get( "ksession1", CommandExecutor.class ); KnowledgeBase kbase = ksession1.getKieBase(); ClassLoader originalCl = Thread.currentThread().getContextClassLoader(); try { Thread.currentThread().setContextClassLoader( ((ReteooRuleBase) ((KnowledgeBaseImpl) kbase).getRuleBase()).getRootClassLoader() ); def = DroolsPolicy.augmentJaxbDataFormatDefinition( def ); org.apache.camel.converter.jaxb.JaxbDataFormat jaxbDataformat = (org.apache.camel.converter.jaxb.JaxbDataFormat) def.getDataFormat( this.context.getRoutes().get( 0 ).getRouteContext() ); jaxbDataformat.setCamelContext(routeBuilder.getContext()); try { jaxbDataformat.start(); } catch (Exception e) { throw new IllegalStateException(e); } jaxbContext = jaxbDataformat.getContext(); } finally { Thread.currentThread().setContextClassLoader( originalCl ); } } return jaxbContext; }