in extensions/servlet/deployment/src/main/java/org/apache/camel/quarkus/component/servlet/deployment/ServletProcessor.java [80:122]
static ServletBuildItem newServlet(String key, ServletConfig servletConfig) {
final String servletName = servletConfig.getEffectiveServletName(key);
final Optional<List<String>> urlPatterns = servletConfig.urlPatterns();
if (!urlPatterns.isPresent() || urlPatterns.get().isEmpty()) {
throw new IllegalStateException(
String.format("Missing quarkus.camel.servlet%s.url-patterns",
ServletConfig.DEFAULT_SERVLET_NAME.equals(servletName) ? "" : "." + servletName));
}
final Builder builder = ServletBuildItem.builder(servletName, servletConfig.servletClass());
for (String pattern : urlPatterns.get()) {
builder.addMapping(pattern);
}
// NOTE: We only configure loadOnStartup, async & forceAwait if the default values were overridden
if (servletConfig.loadOnStartup() > -1) {
builder.setLoadOnStartup(servletConfig.loadOnStartup());
}
if (servletConfig.async()) {
builder.setAsyncSupported(servletConfig.async());
builder.addInitParam("async", "true");
}
if (servletConfig.forceAwait()) {
builder.addInitParam("forceAwait", "true");
}
servletConfig.executorRef().ifPresent(executorRef -> {
builder.addInitParam("executorRef", executorRef);
});
MultipartConfig multipartConfig = servletConfig.multipart();
if (multipartConfig != null) {
builder.setMultipartConfig(new MultipartConfigElement(
multipartConfig.location(),
multipartConfig.maxFileSize(),
multipartConfig.maxRequestSize(),
multipartConfig.fileSizeThreshold()));
}
return builder.build();
}