package org.github.etcd.rest; import org.apache.cxf.endpoint.Server; import org.apache.cxf.jaxrs.JAXRSServerFactoryBean; import org.apache.cxf.jaxrs.lifecycle.SingletonResourceProvider; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider; public class EtcdSimulator { public static void main(String[] args) { EtcdSimulator simulator = new EtcdSimulator(); simulator.start(); } private EtcdResource etcdResource; private Server endpointServer; public void start() { JAXRSServerFactoryBean sf = new JAXRSServerFactoryBean(); sf.setResourceClasses(EtcdResource.class); ObjectMapper mapper = new ObjectMapper(); mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL); sf.setProvider(new JacksonJsonProvider(mapper)); etcdResource = new EtcdResourceImpl(); sf.setResourceProvider(EtcdResource.class, new SingletonResourceProvider(etcdResource)); sf.setAddress("http://localhost:2379/"); endpointServer = sf.create(); endpointServer.start(); } public void stop() throws Exception { if (endpointServer != null) { endpointServer.stop(); endpointServer.destroy(); } if (etcdResource != null) { etcdResource.close(); } } }