ServletInfo defaultServlet = d.getServlets().get(DEFAULT_SERVLET_NAME); defaultServlet.addInitParam(DefaultServlet.DIRECTORY_LISTING, servletContainer.getDirectoryListingEnabled().toString());
public UndertowJaxrsServer deploy(ResteasyDeployment deployment, String contextPath, Map<String, String> contextParams, Map<String, String> initParams) { if (contextPath == null) contextPath = "/"; if (!contextPath.startsWith("/")) contextPath = "/" + contextPath; DeploymentInfo builder = undertowDeployment(deployment); builder.setContextPath(contextPath); builder.setDeploymentName("Resteasy" + contextPath); builder.setClassLoader(deployment.getApplication().getClass().getClassLoader()); if (contextParams != null) { for (Entry<String, String> e : contextParams.entrySet()) { builder.addInitParameter(e.getKey(), e.getValue()); } } if (initParams != null) { ServletInfo servletInfo = builder.getServlets().get("ResteasyServlet"); for (Entry<String, String> e : initParams.entrySet()) { servletInfo.addInitParam(e.getKey(), e.getValue()); } } return deploy(builder); }
private void createServletsAndFilters(final DeploymentImpl deployment, final DeploymentInfo deploymentInfo) { for (Map.Entry<String, ServletInfo> servlet : deploymentInfo.getServlets().entrySet()) { deployment.getServlets().addServlet(servlet.getValue()); } for (Map.Entry<String, FilterInfo> filter : deploymentInfo.getFilters().entrySet()) { deployment.getFilters().addFilter(filter.getValue()); } }
private void createServletsAndFilters(final DeploymentImpl deployment, final DeploymentInfo deploymentInfo) { for (Map.Entry<String, ServletInfo> servlet : deploymentInfo.getServlets().entrySet()) { deployment.getServlets().addServlet(servlet.getValue()); } for (Map.Entry<String, FilterInfo> filter : deploymentInfo.getFilters().entrySet()) { deployment.getFilters().addFilter(filter.getValue()); } }
private void createServletsAndFilters(final DeploymentImpl deployment, final DeploymentInfo deploymentInfo) { for (Map.Entry<String, ServletInfo> servlet : deploymentInfo.getServlets().entrySet()) { deployment.getServlets().addServlet(servlet.getValue()); } for (Map.Entry<String, FilterInfo> filter : deploymentInfo.getFilters().entrySet()) { deployment.getFilters().addFilter(filter.getValue()); } }
@Override public Set<String> tryAddServletMappings(ServletInfo servletInfo, String... urlPatterns) { final Set<String> ret = new HashSet<>(); if(existingUrlPatterns == null) { existingUrlPatterns = new HashSet<>(); for (ServletInfo s : deploymentInfo.getServlets().values()) { if (!s.getName().equals(servletInfo.getName())) { existingUrlPatterns.addAll(s.getMappings()); } } } for (String pattern : urlPatterns) { if (existingUrlPatterns.contains(pattern)) { ret.add(pattern); } } //only update if no changes have been made if (ret.isEmpty()) { for (String pattern : urlPatterns) { existingUrlPatterns.add(pattern); if (!servletInfo.getMappings().contains(pattern)) { servletInfo.addMapping(pattern); } } } getServletPaths().invalidate(); return ret; }
@Override public void handleDeployment(DeploymentInfo deploymentInfo, ServletContext servletContext) { BeanManager beanManager = CDI.current().getBeanManager(); deploymentInfo.getServlets().values() .forEach(s -> s.setInstanceFactory(new HammockInstanceFactory<>(s.getServletClass(), beanManager))); deploymentInfo.getFilters().values() .forEach(f -> f.setInstanceFactory(new HammockInstanceFactory<>(f.getFilterClass(), beanManager))); deploymentInfo.getListeners() .forEach(l -> l.setInstanceFactory(new HammockInstanceFactory<>((Class<? extends EventListener >)l.getListenerClass(), beanManager))); } }
@Override public void handleDeployment(DeploymentInfo deploymentInfo, ServletContext servletContext) { BeanManager beanManager = CDI.current().getBeanManager(); deploymentInfo.getServlets().values() .forEach(s -> s.setInstanceFactory(new HammockInstanceFactory<>(s.getServletClass(), beanManager))); deploymentInfo.getFilters().values() .forEach(f -> f.setInstanceFactory(new HammockInstanceFactory<>(f.getFilterClass(), beanManager))); deploymentInfo.getListeners() .forEach(l -> l.setInstanceFactory(new HammockInstanceFactory<>((Class<? extends EventListener >)l.getListenerClass(), beanManager))); } }
@Override public ServletRegistration.Dynamic addServlet(final String servletName, final Servlet servlet) { ensureNotProgramaticListener(); ensureNotInitialized(); ensureServletNameNotNull(servletName); if (deploymentInfo.getServlets().containsKey(servletName)) { return null; } ServletInfo s = new ServletInfo(servletName, servlet.getClass(), new ImmediateInstanceFactory<>(servlet)); readServletAnnotations(s); deploymentInfo.addServlet(s); ServletHandler handler = deployment.getServlets().addServlet(s); return new ServletRegistrationImpl(s, handler.getManagedServlet(), deployment); }
@Override public void execute(final OperationContext context, final ModelNode operation) throws OperationFailedException { final ServiceController<?> deploymentServiceController = context.getServiceRegistry(false).getService(UndertowService.deploymentServiceName(server, host, path)); if (deploymentServiceController == null) { return; } final UndertowDeploymentService deploymentService = (UndertowDeploymentService) deploymentServiceController.getService(); final DeploymentInfo deploymentInfo = deploymentService.getDeploymentInfoInjectedValue().getValue(); final UndertowMetricsCollector collector = (UndertowMetricsCollector)deploymentInfo.getMetricsCollector(); final String name = address.getLastElement().getValue(); final ServletInfo servlet = deploymentInfo.getServlets().get(name); final ModelNode response = new ModelNode(); MetricsHandler.MetricResult result = collector != null ? collector.getMetrics(name) : null; if (result == null) { putDefault(response); } else { handle(response, name, result, servlet); } context.getResult().set(response); } }, OperationContext.Stage.RUNTIME);
@Override public ServletRegistration.Dynamic addServlet(final String servletName, final Class<? extends Servlet> servletClass){ ensureNotProgramaticListener(); ensureNotInitialized(); ensureServletNameNotNull(servletName); if (deploymentInfo.getServlets().containsKey(servletName)) { return null; } try { ServletInfo servlet = new ServletInfo(servletName, servletClass, deploymentInfo.getClassIntrospecter().createInstanceFactory(servletClass)); readServletAnnotations(servlet); deploymentInfo.addServlet(servlet); ServletHandler handler = deployment.getServlets().addServlet(servlet); return new ServletRegistrationImpl(servlet, handler.getManagedServlet(), deployment); } catch (NoSuchMethodException e) { throw UndertowServletMessages.MESSAGES.couldNotCreateFactory(servletClass.getName(),e); } }
@Override public void handleDeployment(DeploymentInfo deploymentInfo, ServletContext servletContext) { // Servlet injection for (ServletInfo servlet : deploymentInfo.getServlets().values()) { UndertowLogger.LOG.installingCdiSupport(servlet.getServletClass()); servlet.setInstanceFactory(WeldInstanceFactory.of(servlet.getInstanceFactory(), servletContext, servlet.getServletClass())); } try { // Filter injection for (FilterInfo filter : deploymentInfo.getFilters().values()) { UndertowLogger.LOG.installingCdiSupport(filter.getFilterClass()); filter.setInstanceFactory(WeldInstanceFactory.of(filter.getInstanceFactory(), servletContext, filter.getFilterClass())); } // Listener injection for (ListenerInfo listener : deploymentInfo.getListeners()) { UndertowLogger.LOG.installingCdiSupport(listener.getListenerClass()); listener.setInstanceFactory(WeldInstanceFactory.of(listener.getInstanceFactory(), servletContext, listener.getListenerClass())); } servletContext.setAttribute(INSTALLED, INSTALLED_FULL); } catch (NoSuchMethodError e) { // Undertow 1.2 and older does not have setInstanceFactory() on listeners/filters servletContext.setAttribute(INSTALLED, INSTALLED_SERVLET); return; } } }
@Override public void handleDeployment(DeploymentInfo deploymentInfo, ServletContext servletContext) { // Servlet injection for (ServletInfo servlet : deploymentInfo.getServlets().values()) { UndertowLogger.LOG.installingCdiSupport(servlet.getServletClass()); servlet.setInstanceFactory(WeldInstanceFactory.of(servlet.getInstanceFactory(), servletContext, servlet.getServletClass())); } try { // Filter injection for (FilterInfo filter : deploymentInfo.getFilters().values()) { UndertowLogger.LOG.installingCdiSupport(filter.getFilterClass()); filter.setInstanceFactory(WeldInstanceFactory.of(filter.getInstanceFactory(), servletContext, filter.getFilterClass())); } // Listener injection for (ListenerInfo listener : deploymentInfo.getListeners()) { UndertowLogger.LOG.installingCdiSupport(listener.getListenerClass()); listener.setInstanceFactory(WeldInstanceFactory.of(listener.getInstanceFactory(), servletContext, listener.getListenerClass())); } servletContext.setAttribute(INSTALLED, INSTALLED_FULL); } catch (NoSuchMethodError e) { // Undertow 1.2 and older does not have setInstanceFactory() on listeners/filters servletContext.setAttribute(INSTALLED, INSTALLED_SERVLET); return; } } }
@Override public void handleDeployment(DeploymentInfo deploymentInfo, ServletContext servletContext) { // Servlet injection for (ServletInfo servlet : deploymentInfo.getServlets().values()) { UndertowLogger.LOG.installingCdiSupport(servlet.getServletClass()); servlet.setInstanceFactory(WeldInstanceFactory.of(servlet.getInstanceFactory(), servletContext, servlet.getServletClass())); } try { // Filter injection for (FilterInfo filter : deploymentInfo.getFilters().values()) { UndertowLogger.LOG.installingCdiSupport(filter.getFilterClass()); filter.setInstanceFactory(WeldInstanceFactory.of(filter.getInstanceFactory(), servletContext, filter.getFilterClass())); } // Listener injection for (ListenerInfo listener : deploymentInfo.getListeners()) { UndertowLogger.LOG.installingCdiSupport(listener.getListenerClass()); listener.setInstanceFactory(WeldInstanceFactory.of(listener.getInstanceFactory(), servletContext, listener.getListenerClass())); } servletContext.setAttribute(INSTALLED, INSTALLED_FULL); } catch (NoSuchMethodError e) { // Undertow 1.2 and older does not have setInstanceFactory() on listeners/filters servletContext.setAttribute(INSTALLED, INSTALLED_SERVLET); return; } } }
for (final ServletInfo servlet : deployment.getDeploymentInfo().getServlets().values()) { final ServletSecurityInfo securityInfo = servlet.getServletSecurityInfo(); if (securityInfo != null) {
public ServletRegistration.Dynamic addServlet(final String servletName, final String className, List<HandlerWrapper> wrappers) { ensureNotProgramaticListener(); ensureNotInitialized(); ensureServletNameNotNull(servletName); try { if (deploymentInfo.getServlets().containsKey(servletName)) { return null; } Class<? extends Servlet> servletClass=(Class<? extends Servlet>) deploymentInfo.getClassLoader().loadClass(className); ServletInfo servlet = new ServletInfo(servletName, servletClass, deploymentInfo.getClassIntrospecter().createInstanceFactory(servletClass)); for(HandlerWrapper i : wrappers) { servlet.addHandlerChainWrapper(i); } readServletAnnotations(servlet); deploymentInfo.addServlet(servlet); ServletHandler handler = deployment.getServlets().addServlet(servlet); return new ServletRegistrationImpl(servlet, handler.getManagedServlet(), deployment); } catch (ClassNotFoundException e) { throw UndertowServletMessages.MESSAGES.cannotLoadClass(className, e); } catch (NoSuchMethodException e) { throw UndertowServletMessages.MESSAGES.couldNotCreateFactory(className,e); } }
private HTTPContext registerDeploymentInfo(Archive<?> archive) { UndertowWebArchive servletBuilder = (UndertowWebArchive) archive; final DeploymentInfo deploymentInfo = servletBuilder .getDeploymentInfo(); deploymentManager = defaultContainer().addDeployment( deploymentInfo); deploymentManager.deploy(); try { this.undertow = createUndertow(deploymentManager.start()); this.undertow.start(); } catch (ServletException e) { throw new IllegalArgumentException(e); } HTTPContext httpContext = new HTTPContext( configuration.getBindAddress(), configuration.getBindHttpPort()); final Map<String, ServletInfo> servlets = deploymentInfo.getServlets(); final Collection<ServletInfo> servletsInfo = servlets.values(); for (ServletInfo servletInfo : servletsInfo) { httpContext.add(new Servlet(servletInfo.getName(), deploymentManager.getDeployment().getDeploymentInfo() .getContextPath())); } return httpContext; }
for (final ServletInfo servlet : super.getDeployment().getDeploymentInfo().getServlets().values()) { final ServletSecurityInfo securityInfo = servlet.getServletSecurityInfo(); if (securityInfo != null) {
for (final ServletInfo servlet : super.getDeployment().getDeploymentInfo().getServlets().values()) { final ServletSecurityInfo securityInfo = servlet.getServletSecurityInfo(); if (securityInfo != null) {
public static void deploy(Optional<String[]> args) { cliArguments = args; //executeStartupActions(args); //DI.bootstrap(); // per config steuern final Builder builder = Undertow.builder() //TODO .setDirectBuffers(true) .setServerOption(UndertowOptions.ENABLE_HTTP2 , true); // deploy servlets DeploymentInfo deploymentInfo = createServletDeploymentInfos(); final boolean anyServlets = ! deploymentInfo.getServlets().isEmpty(); if (anyServlets) { try { deployServlets(builder , deploymentInfo); } catch (ServletException e) { e.printStackTrace(); LOGGER.warning("deploy Servlets " , e); } } final JaxRsActivator jaxRsActivator = new JaxRsActivator(); if (jaxRsActivator.somethingToDeploy()) { deployRestResources(builder , jaxRsActivator); } else { undertowServer = builder.build(); undertowServer.start(); } new HeaderScreenPrinter().printOnScreen(); new ActiveUrlPrinter().printActiveURLs(new ActiveUrlsDetector().detectUrls()); }