| [[ComponentConfiguration-ComponentConfigurationAPI]] |
| === ComponentConfiguration API |
| |
| As of *Camel 2.12* the new ComponentConfiguration API provides a |
| mechanism for tools (command line, IDE, web based) to introspect the |
| available Camel components and introspect what configuration parameters |
| are available on the components to create new endpoints, edit existing |
| endpoints or create/edit URIs for endpoints (if the aim is to allow UI |
| editting of Camel routes for example). |
| |
| To get an idea for the kinds of things you can do with the |
| ComponentConfiguration API |
| https://github.com/apache/camel/blob/master/camel-core/src/test/java/org/apache/camel/impl/ComponentConfigurationTest.java#L72[check |
| out the test case]. |
| |
| For example given a Component object you can create a new configuration; |
| then introspect the available properties... |
| |
| [source,java] |
| ------------------------------------------------------------------------------------------------------ |
| Component component = camelContext.getComponent("seda"); |
| ComponentConfiguration configuration = component.createComponentConfiguration(); |
| |
| // now lets introspect the available parameters... |
| SortedMap<String, ParameterConfiguration> parameterMap = configuration.getParameterConfigurationMap(); |
| |
| // or lets look up a named parameter |
| ParameterConfiguration config = configuration.getParameterConfiguration("foo"); |
| |
| |
| // lets get or set the parameter values... |
| configuration.setParameter("concurrentConsumers", 5); |
| configuration.setParameter("size", 1000); |
| |
| // or lets set the base URI and parameters from a URI string |
| configuration.setUriString("foo?concurrentConsumers=5&size=1000"); |
| |
| |
| // now lets convert the configuration to a URI string |
| String uriString = configuration.getUriString(); |
| |
| // now lets convert the configuration to an Endpoint |
| Endpoint newEndpoint = configuration.createEndpoint(); |
| ------------------------------------------------------------------------------------------------------ |