package example.server; import example.server.providers.JsonResourceBodyReader; import example.server.providers.JsonResourceBodyWriter; import example.server.store.ModelStore; import example.server.store.SampleStore; import example.shared.model.ModelPackage; import org.eclipse.emf.common.util.URI; import org.eclipse.emf.ecore.EcorePackage; import org.eclipse.emf.ecore.resource.ResourceSet; import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; import org.emfjson.jackson.resource.JsonResourceFactory; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.server.ResourceConfig; import javax.inject.Singleton; import javax.ws.rs.ApplicationPath; @ApplicationPath("api") public class ServerApplication extends ResourceConfig { public ServerApplication() { register(new AbstractBinder() { @Override protected void configure() { bind(createResourceSet()).to(ResourceSet.class); bind(SampleStore.class).to(ModelStore.class).in(Singleton.class); } }); packages("example.server.resources"); register(JsonResourceBodyReader.class); register(JsonResourceBodyWriter.class); } private static ResourceSet createResourceSet() { ResourceSet resourceSet = new ResourceSetImpl(); resourceSet.getPackageRegistry().put(EcorePackage.eNS_URI, EcorePackage.eINSTANCE); resourceSet.getPackageRegistry().put(ModelPackage.eNS_URI, ModelPackage.eINSTANCE); resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put( "*", new JsonResourceFactory()); resourceSet.getURIConverter().getURIMap().put( URI.createURI("http://resources/"), URI.createURI("files/")); return resourceSet; } }