/** * generated by Xtext 2.10.0 */ package org.thingml.xtext.web; import com.google.inject.Provider; import java.util.List; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; import java.util.function.Consumer; import javax.servlet.annotation.WebServlet; import org.eclipse.xtext.web.servlet.XtextServlet; import org.eclipse.xtext.xbase.lib.CollectionLiterals; import org.eclipse.xtext.xbase.lib.Exceptions; import org.eclipse.xtext.xbase.lib.ObjectExtensions; import org.eclipse.xtext.xbase.lib.Procedures.Procedure1; import org.thingml.xtext.web.ThingMLWebSetup; /** * Deploy this class into a servlet container to enable DSL-specific services. */ @WebServlet(name = "XtextServices", urlPatterns = "/xtext-service/*") @SuppressWarnings("all") public class ThingMLServlet extends XtextServlet { private final List<ExecutorService> executorServices = CollectionLiterals.<ExecutorService>newArrayList(); @Override public void init() { try { super.init(); final Provider<ExecutorService> _function = () -> { ExecutorService _newCachedThreadPool = Executors.newCachedThreadPool(); final Procedure1<ExecutorService> _function_1 = (ExecutorService it) -> { this.executorServices.add(it); }; return ObjectExtensions.<ExecutorService>operator_doubleArrow(_newCachedThreadPool, _function_1); }; final Provider<ExecutorService> executorServiceProvider = _function; ThingMLWebSetup _thingMLWebSetup = new ThingMLWebSetup(executorServiceProvider); _thingMLWebSetup.createInjectorAndDoEMFRegistration(); } catch (Throwable _e) { throw Exceptions.sneakyThrow(_e); } } @Override public void destroy() { final Consumer<ExecutorService> _function = (ExecutorService it) -> { it.shutdown(); }; this.executorServices.forEach(_function); this.executorServices.clear(); super.destroy(); } }