Hi,

as we plan to do a refactoring for the next release (0.6) I wanted to bring up 
an “older” Issue PLC4X-138.
My suggestion is to do it somehow similar to what Apache Camel or Apache Maven 
do.
Basically, they use Annotations in their Configuration POJOs to generate 
Documentation about all available configuration options, default values, etc.

For Example for Camel, see 
https://github.com/Talend/apache-camel/blob/master/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java

A short Snippet:
```
@UriEndpoint(firstVersion = "1.0.0", scheme = "timer", title = "Timer", syntax 
= "timer:timerName", consumerOnly = true, consumerClass = TimerConsumer.class, 
label = "core,scheduling")

public class TimerEndpoint extends DefaultEndpoint implements 
MultipleConsumersSupport {

@UriPath @Metadata(required = "true")

private String timerName;

@UriParam(defaultValue = "1000", description = "If greater than 0, generate 
periodic events every period milliseconds."

+ " You can also specify time values using units, such as 60s (60 seconds), 
5m30s (5 minutes and 30 seconds), and 1h (1 hour).")

private long period = 1000;

@UriParam(defaultValue = "1000", description = "Miliseconds before first event 
is triggered."

+ " You can also specify time values using units, such as 60s (60 seconds), 
5m30s (5 minutes and 30 seconds), and 1h (1 hour).")

private long delay = 1000;

@UriParam(defaultValue = "0")

private long repeatCount;

@UriParam

private boolean fixedRate;

@UriParam(defaultValue = "true", label = "advanced")

private boolean daemon = true;


```

So this would give us the possibility to generate custom UIs for all drivers 
and nice visualization (e.g. on the Homepage).
See e.g. the (generated) Camel Homepage (for above Timer): 
https://camel.apache.org/components/latest/timer-component.html

What are your thoughts?

Julian

Reply via email to