static ServletBuildItem newServlet()

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();
    }