package de.holisticon.dw; import com.google.common.collect.Maps; import io.dropwizard.Bundle; import io.dropwizard.assets.AssetsBundle; import io.dropwizard.setup.Bootstrap; import io.dropwizard.setup.Environment; import org.eclipse.jetty.server.session.SessionHandler; import javax.servlet.Servlet; import java.util.HashMap; import java.util.LinkedHashMap; import java.util.Map; public class VaadinBundle implements Bundle { private final Map<String, Class<? extends Servlet>> servlets = Maps.newLinkedHashMap(); private final SessionHandler sessionHandler; public VaadinBundle(Class<? extends Servlet> servlet, String pathSpec) { this.sessionHandler = new SessionHandler(); servlets.put(pathSpec, servlet); } @Override public void initialize(Bootstrap<?> bootstrap) { bootstrap.addBundle(new AssetsBundle("/VAADIN", "/VAADIN", null, "vaadin")); } @Override public void run(Environment environment) { environment.servlets().setSessionHandler(sessionHandler); for (Map.Entry<String, Class<? extends Servlet>> servlet : servlets.entrySet()) { environment.getApplicationContext().addServlet(servlet.getValue(), servlet.getKey()); } } }