javax.servlet.ServletContext#getServletRegistrations ( )源码实例Demo

下面列出了javax.servlet.ServletContext#getServletRegistrations ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

@Test
public void testSaveUrlPrefixNormal(@Mocked ServletContext servletContext,
    @Mocked ServletRegistration servletRegistration) {
  ClassLoaderScopeContext.clearClassLoaderScopeProperty();
  new Expectations() {
    {
      servletContext.getContextPath();
      result = "/root";
      servletRegistration.getClassName();
      result = RestServlet.class.getName();
      servletRegistration.getMappings();
      result = Arrays.asList("/rest/*");
      servletContext.getServletRegistrations();
      result = Collections.singletonMap("test", servletRegistration);
    }
  };

  ServletUtils.saveUrlPrefix(servletContext);

  Assert.assertThat(ClassLoaderScopeContext.getClassLoaderScopeProperty(DefinitionConst.URL_PREFIX),
      Matchers.is("/root/rest"));
  ClassLoaderScopeContext.clearClassLoaderScopeProperty();
}
 
源代码2 项目: flow   文件: JSR356WebsocketInitializer.java
/**
 * Initializes Atmosphere for use with Vaadin servlets found in the given
 * context.
 * <p>
 * For JSR 356 websockets to work properly, the initialization must be done
 * in the servlet context initialization phase.
 *
 * @param servletContext
 *            The servlet context
 */
public void init(ServletContext servletContext) {
    if (!atmosphereAvailable) {
        return;
    }
    getLogger().debug("Atmosphere available, initializing");

    Map<String, ? extends ServletRegistration> regs = servletContext
            .getServletRegistrations();
    for (Entry<String, ? extends ServletRegistration> entry : regs
            .entrySet()) {
        String servletName = entry.getKey();
        ServletRegistration servletRegistration = entry.getValue();

        getLogger().debug("Checking if {} is a Vaadin Servlet",
                servletRegistration.getName());

        if (isVaadinServlet(servletRegistration, servletContext)) {
            try {
                initAtmosphereForVaadinServlet(servletRegistration,
                        servletContext);
            } catch (Exception e) {
                getLogger().warn("Failed to initialize Atmosphere for {}",
                        servletName, e);
            }
        }
    }
}
 
源代码3 项目: tomee   文件: TomEEWebConfigProvider.java
@Override
public List<ServletMapping> getFacesServletMappings(final ExternalContext externalContext) {
    final List<ServletMapping> facesServletMappings = super.getFacesServletMappings(externalContext);
    try { // getContext() is a runtime object where getServletRegistrations() is forbidden so unwrap
        final ServletContext sc = ServletContext.class.cast(Reflections.get(externalContext.getContext(), "sc"));
        if (sc != null && sc.getServletRegistrations() != null) {
            for (final Map.Entry<String, ? extends ServletRegistration> reg : sc.getServletRegistrations().entrySet()) {
                final ServletRegistration value = reg.getValue();
                if ("javax.faces.webapp.FacesServlet".equals(value.getClassName())) {
                    for (final String mapping : value.getMappings()) {
                        final Class<?> clazz = sc.getClassLoader().loadClass(value.getClassName());
                        final org.apache.myfaces.shared_impl.webapp.webxml.ServletMapping mappingImpl =
                                new org.apache.myfaces.shared_impl.webapp.webxml.ServletMapping(
                                    value.getName(), clazz, mapping);
                        facesServletMappings.add(new ServletMappingImpl(mappingImpl));
                    }
                }
            }
        } else {
            facesServletMappings.addAll(super.getFacesServletMappings(externalContext));
        }
    } catch (final Exception e) { // don't fail cause our cast failed
        facesServletMappings.clear();
        facesServletMappings.addAll(super.getFacesServletMappings(externalContext));
    }
    return facesServletMappings;
}
 
public void init(@Observes @Initialized(ApplicationScoped.class) final ServletContext context) {
    final Map<String, ? extends ServletRegistration> servletRegistrations = context.getServletRegistrations();
    servletRegistrations.forEach((servletName, servletRegistration) -> {
        try {
            final Class<?> servletClass = Thread.currentThread().getContextClassLoader().loadClass(servletName);
            if (servletClass.isAnnotationPresent(BasicAuthenticationMechanismDefinition.class)) {
                servletAuthenticationMapper.put(servletName,
                                                CDI.current().select(BasicAuthenticationMechanism.class).get());
            }

            if (servletClass.isAnnotationPresent(FormAuthenticationMechanismDefinition.class)) {
                servletAuthenticationMapper.put(servletName,
                                                CDI.current().select(FormAuthenticationMechanism.class).get());
            }

        } catch (final ClassNotFoundException e) {
            // Ignore
        }
    });

    final Set<HttpAuthenticationMechanism> availableBeans =
            authenticationMechanisms.stream().collect(Collectors.toSet());
    availableBeans.removeAll(servletAuthenticationMapper.values());
    availableBeans.remove(defaultAuthenticationMechanism);

    if (availableBeans.size() == 1) {
        defaultAuthenticationMechanism.setDelegate(availableBeans.iterator().next());
    } else if (availableBeans.size() > 1) {
        throw new IllegalStateException(
                "Multiple HttpAuthenticationMechanism found " +
                availableBeans.stream()
                              .map(b -> substringBefore(b.getClass().getSimpleName(), "$$"))
                              .collect(toList()) + " " +
                "without a @WebServlet association. " +
                "Deploy a single one for the application, or associate it with a @WebServlet.");
    }
}
 
@Test
public void setServletParameters_supportUpload(@Mocked ServletContext servletContext, @Mocked Dynamic d1,
    @Mocked ServletRegistration d2) throws IOException {
  Map<String, ServletRegistration> servletRegistrations = new HashMap<>();
  servletRegistrations.put("d1", d1);
  servletRegistrations.put("d2", d2);
  new Expectations() {
    {
      servletContext.getServletRegistrations();
      result = servletRegistrations;
      d1.getClassName();
      result = RestServlet.class.getName();
      d2.getClassName();
      result = HttpServlet.class.getName();
    }
  };

  List<MultipartConfigElement> multipartConfigs = new ArrayList<>();
  new MockUp<Dynamic>(d1) {
    @Mock
    void setMultipartConfig(MultipartConfigElement multipartConfig) {
      multipartConfigs.add(multipartConfig);
    }
  };

  File tempDir = Files.createTempDirectory("temp").toFile();
  File uploadDir = new File(tempDir, "upload");
  ArchaiusUtils.setProperty(RestConst.UPLOAD_DIR, uploadDir.getAbsolutePath());

  ServletUtils.setServletParameters(servletContext);

  Assert.assertEquals(1, multipartConfigs.size());

  MultipartConfigElement multipartConfigElement = multipartConfigs.get(0);
  Assert.assertEquals(uploadDir.getAbsolutePath(), multipartConfigElement.getLocation());
  Assert.assertEquals(-1, multipartConfigElement.getMaxFileSize());
  Assert.assertEquals(-1, multipartConfigElement.getMaxRequestSize());
  Assert.assertEquals(0, multipartConfigElement.getFileSizeThreshold());

  uploadDir.delete();
  tempDir.delete();
  Assert.assertFalse(tempDir.exists());
}