OK that hellped. What I ended up doing was: * Component extends UriEndpointComponent * Endpoint extends DefaultEndpoint and is marked @ManagedResource and @UriEndpoint. It also has a @UriParam for 'baud' and another one for 'path' -- that last one is a problem (will explain in a second) * Consumer extends DefaultConsumer and uses a processor to launch events
The endpoint is marked like this: @UriEndpoint(scheme = "jssc", syntax = "jssc:path", consumerClass = JsscConsumer.class, title = "JSSC Component") I would like to be able to do this: from("jssc:com10?baud=19200") but THIS still does not work: @UriPath @Metadata(required="true") private String path so I end up having to do this: from("jssc:com10?path=com10&baud=19200") What is wrong with specifying it as a path parameter whose name matches the 'syntax' in the @UriEndpoint annotation - shouldn't that work? *https://github.com/wz2b/camel-jssc/blob/master/src/main/java/com/autofrog/camel/JsscEndpoint.java <https://github.com/wz2b/camel-jssc/blob/master/src/main/java/com/autofrog/camel/JsscEndpoint.java>* --Chris On Tue, Apr 7, 2015 at 10:59 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: > A component must have a default no-arg constructor. > > So add that, and call super(JsscEndpoint.class) and remove the other > constructors as they are not really needed. > > On Tue, Apr 7, 2015 at 4:55 PM, Christopher Piggott <cpigg...@gmail.com> > wrote: > > I will try that, thanks. > > > > For a test, I just tried getting back to basics, and getting rid of all > the > > Uri configuration entirely - just to see what happens. I still have > > META-INF/services/org/apache/camel/component/jssc (a text file) which > > allows me to do: > > > > from("jssc:com10?baud=19200") ... > > > > and it locates the component just fine. The next thing I did was change > > the Component to extend UriEndpointComponent rather than > DefaultComponent. > > That broke it as follows: > > > > 2015-04-07 10:15:41,550 [main] ERROR app.tasks.CamelTask - Failed to > start > > camel > > org.apache.camel.FailedToCreateRouteException: Failed to create route > > route1: Route(route1)[[From[jssc:com10?baud=19200]] -> [To[xmpp://cl... > > because of Failed to resolve endpoint: jssc://com10?baud=19200 due to: > > Cannot auto create component: jssc > > > > So something, by doing that, just broke its ability to locate the > endpoint > > by name using the entry in META-INF. The stack trace it gives me is not > > exceptionally helpful; what it's really telling me is that it can't > locate > > my component. What's especially confusing is that a UriEndpointComponent > > extends DefaultComponent so it seems like, as far as camel is concerned, > > they should be the same thing. > > > > > > I checked in what I have so far ... > > > > > https://github.com/wz2b/camel-jssc/tree/master/src/main/java/com/autofrog/camel > > > > > > > > > > On Tue, Apr 7, 2015 at 9:36 AM, Claus Ibsen <claus.ib...@gmail.com> > wrote: > > > >> Hi > >> > >> Oh if you have this as a component outside Camel, then you need to add > >> the apt plugin > >> > https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L63 > >> > >> And this plugin if you want to include a .properties file in the JAR > >> with a list of components it contains > >> > https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L217 > >> > >> Then you do the same as all the components in Apache Camel. > >> > >> On Tue, Apr 7, 2015 at 3:34 PM, Claus Ibsen <claus.ib...@gmail.com> > wrote: > >> > Hi > >> > > >> > All the 150+ components is an example of this. Just pick a similar / > >> > simple component and see its source code. > >> > > >> > On Tue, Apr 7, 2015 at 3:12 PM, Christopher Piggott < > cpigg...@gmail.com> > >> wrote: > >> >> Hi, > >> >> > >> >> According to > >> >> > https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.15.0+Release > >> >> > >> >> > >> >> - Custom components using @UriEndpoint must now include a syntax > >> >> attribute to document the uri syntax of the endpoint, when using > the > >> apt > >> >> compiler plugin to generate documentation. > >> >> > >> >> > >> >> I'm looking for documentation on this and not really finding how to > use > >> it > >> >> or simple examples: > >> >> > >> >> > >> >> - http://camel.apache.org/endpoint-annotations.html says what it > >> is, > >> >> but not how to use it > >> >> - > >> >> > >> > https://github.com/sigrist/camel-rxtx/blob/master/src/main/java/org/apache/camel/rxtx/RxTxEndpoint.java > >> >> is an example soembody wrote that uses @UriParam ... that works > >> fine, but > >> >> when I try to add a @UriPath parameter it silently ends up null > >> >> - Tons of examples in git but most of them don't have a 'syntax=' > so > >> I > >> >> must be looking at old source > >> >> > >> >> > >> >> Trying to piece all this together from scarce examples and > >> documentation: > >> >> > >> >> > >> >> - It doesn't seem like I really need to extend > >> UriComponentConfiguration > >> >> at all, do I? If I declare my component a @ManagedResource it > seems > >> to > >> >> bind all the @UriParam just fine. It doesn't bind the @UriPath > >> parameters, > >> >> though, and fails to do so silently, despite the fact that they > are > >> marked > >> >> @Meadata(required = "true"). > >> >> - Are there any simple examples out there using > >> >> @UriComponentConfiguration ? > >> >> > >> >> > >> >> --Chris > >> > > >> > > >> > > >> > -- > >> > Claus Ibsen > >> > ----------------- > >> > Red Hat, Inc. > >> > Email: cib...@redhat.com > >> > Twitter: davsclaus > >> > Blog: http://davsclaus.com > >> > Author of Camel in Action: http://www.manning.com/ibsen > >> > hawtio: http://hawt.io/ > >> > fabric8: http://fabric8.io/ > >> > >> > >> > >> -- > >> Claus Ibsen > >> ----------------- > >> Red Hat, Inc. > >> Email: cib...@redhat.com > >> Twitter: davsclaus > >> Blog: http://davsclaus.com > >> Author of Camel in Action: http://www.manning.com/ibsen > >> hawtio: http://hawt.io/ > >> fabric8: http://fabric8.io/ > >> > > > > -- > Claus Ibsen > ----------------- > Red Hat, Inc. > Email: cib...@redhat.com > Twitter: davsclaus > Blog: http://davsclaus.com > Author of Camel in Action: http://www.manning.com/ibsen > hawtio: http://hawt.io/ > fabric8: http://fabric8.io/ >