package com.aol.micro.server.rest.jersey; import java.util.Map; import java.util.Optional; import java.util.function.Function; import javax.servlet.ServletContextListener; import javax.ws.rs.core.FeatureContext; import cyclops.collections.MapXs; import cyclops.collections.immutable.PMapX; import cyclops.collections.immutable.PSetX; import org.glassfish.jersey.CommonProperties; import com.aol.micro.server.Plugin; import com.aol.micro.server.rest.RestConfiguration; import com.aol.micro.server.servers.model.ServerData; public class JerseyPlugin implements Plugin{ @Override public Optional<RestConfiguration> restServletConfiguration(){ return Optional.of(new ConfigureMainServlet().servletConfig()); } @Override public Function<FeatureContext,Map<String,Object>> jacksonFeatureProperties(){ return context-> PMapX.fromMap(MapXs.of( CommonProperties.MOXY_JSON_FEATURE_DISABLE + '.' + context.getConfiguration().getRuntimeType().name().toLowerCase(),true)); } @Override public Optional<String> jaxWsRsApplication(){ return Optional.of(JerseyRestApplication.class.getCanonicalName()); } @Override public PSetX<Function<ServerData,ServletContextListener>> servletContextListeners(){ Function<ServerData,ServletContextListener> f = serverData ->new JerseySpringIntegrationContextListener(serverData); return PSetX.of(f); } }