@@ -61,12 +61,15 @@ public class CamelModule implements Extension {
6161
6262 private CamelContext camel ;
6363
64+ /** Creates module using the {@link CamelContext}. */
65+ public CamelModule () {}
66+
6467 /**
6568 * Creates module using the {@link CamelContext}.
6669 *
6770 * @param camel Camel context.
6871 */
69- public CamelModule (CamelContext camel ) {
72+ public CamelModule (@ NonNull CamelContext camel ) {
7073 this .camel = camel ;
7174 }
7275
@@ -76,7 +79,19 @@ public CamelModule(CamelContext camel) {
7679 * @param route Route configuration.
7780 * @param routes Optional route configuration.
7881 */
79- public CamelModule (RouteBuilder route , RouteBuilder ... routes ) {
82+ public CamelModule (@ NonNull RouteBuilder route , RouteBuilder ... routes ) {
83+ this (null , route , routes );
84+ }
85+
86+ /**
87+ * Creates a new camel module adding one or more routes.
88+ *
89+ * @param route Route configuration.
90+ * @param routes Optional route configuration.
91+ */
92+ public CamelModule (
93+ @ NonNull CamelContext camel , @ NonNull RouteBuilder route , RouteBuilder ... routes ) {
94+ this .camel = camel ;
8095 this .routes = registry -> concat (route , routes ).collect (Collectors .toList ());
8196 }
8297
@@ -88,11 +103,29 @@ public CamelModule(RouteBuilder route, RouteBuilder... routes) {
88103 * @param route Route configuration.
89104 * @param routes Optional route configuration.
90105 */
91- public CamelModule (Class <? extends RouteBuilder > route , Class <? extends RouteBuilder >... routes ) {
106+ public CamelModule (
107+ @ NonNull Class <? extends RouteBuilder > route ,
108+ @ NonNull Class <? extends RouteBuilder >... routes ) {
109+ this (null , route , routes );
110+ }
111+
112+ /**
113+ * Creates a new camel module adding one or more routes. Route provisioning is delegated to
114+ * Dependency Injection framework (if any), otherwise camel does basic/minimal injection using
115+ * {@link org.apache.camel.impl.engine.DefaultInjector}.
116+ *
117+ * @param route Route configuration.
118+ * @param routes Optional route configuration.
119+ */
120+ public CamelModule (
121+ @ NonNull CamelContext camel ,
122+ @ NonNull Class <? extends RouteBuilder > route ,
123+ Class <? extends RouteBuilder >... routes ) {
124+ this .camel = camel ;
92125 this .routes =
93- camel ->
126+ context ->
94127 concat (route , routes )
95- .map (type -> camel .getInjector ().newInstance (type ))
128+ .map (type -> context .getInjector ().newInstance (type ))
96129 .collect (Collectors .toList ());
97130 }
98131
@@ -130,9 +163,11 @@ public void install(@NonNull Jooby application) throws Exception {
130163 main .init ();
131164
132165 // Do routes
133- List <RouteBuilder > routeList = routes .apply (camel );
134- for (RouteBuilder route : routeList ) {
135- camel .addRoutes (route );
166+ if (routes != null ) {
167+ List <RouteBuilder > routeList = routes .apply (camel );
168+ for (RouteBuilder route : routeList ) {
169+ camel .addRoutes (route );
170+ }
136171 }
137172 // Start camel:
138173 main .start ();
0 commit comments