private static void loadSchemas(SchemaFinder loader) throws SAXException, IOException { SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); XsdDetails[] xsds = new XsdDetails[]{ new XsdDetails("camel-spring.xsd", "http://camel.apache.org/schema/spring/camel-spring.xsd", CamelEndpointFactoryBean.class), new XsdDetails("camel-blueprint.xsd", "http://camel.apache.org/schema/blueprint/camel-blueprint.xsd", org.apache.camel.blueprint.CamelEndpointFactoryBean.class) }; List<Source> sources = new ArrayList<Source>(xsds.length); for (XsdDetails xsdd : xsds) { URL url = loader.findSchema(xsdd); if (url != null) { sources.add(new StreamSource(url.openStream(), xsdd.getUri())); } else { System.out.println("Warning could not find local resource " + xsdd.getPath() + " on classpath"); sources.add(new StreamSource(xsdd.getUri())); } } _schema = factory.newSchema(sources.toArray(new Source[sources.size()])); }
@Override protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { doBeforeParse(element); super.doParse(element, parserContext, builder); // now lets parse the routes with JAXB Binder<Node> binder; try { binder = getJaxbContext().createBinder(); } catch (JAXBException e) { throw new BeanDefinitionStoreException("Failed to create the JAXB binder", e); } Object value = parseUsingJaxb(element, parserContext, binder); if (value instanceof CamelEndpointFactoryBean) { CamelEndpointFactoryBean factoryBean = (CamelEndpointFactoryBean) value; builder.addPropertyValue("properties", factoryBean.getProperties()); } }
private static List<RouteDefinition> processCamelContextElement(CamelContextFactoryBean camelContextFactoryBean, SwitchYardCamelContext camelContext) throws Exception { if (camelContext != null) { if (camelContextFactoryBean.getEndpoints() != null) { // processing camelContext/endpoint for (CamelEndpointFactoryBean epBean : camelContextFactoryBean.getEndpoints()) { epBean.setCamelContext(camelContext); camelContext.getWritebleRegistry().put(epBean.getId(), epBean.getObject()); } } if (camelContextFactoryBean.getDataFormats() != null) { // processing camelContext/dataFormat for (DataFormatDefinition dataFormatDef : camelContextFactoryBean.getDataFormats().getDataFormats()) { camelContext.getDataFormats().put(dataFormatDef.getId(), dataFormatDef); } } } return camelContextFactoryBean.getRoutes(); }
public EndpointDefinitionParser() { super(CamelEndpointFactoryBean.class, false); }
@Override public List<CamelEndpointFactoryBean> getEndpoints() { return _factoryBean.getEndpoints(); }