package com.aol.micro.server.spring.boot;
import java.util.Map;
import java.util.function.Function;
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.jersey.SpringBootJerseyRestApplication;
import com.aol.micro.server.spring.SpringBuilder;
/**
*
* @author johnmcclean
*
*/
public class BootPlugin implements Plugin{
/**
* @return Engine for building Spring Context
*/
public SpringBuilder springBuilder(){
return new BootFrontEndApplicationConfigurator();
}
@Override
public PSetX<Class> springClasses() {
return PSetX.of(SpringBootJerseyRestApplication.class);
}
@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));
}
}