Java tutorial
/** * * ESUP-Portail MONDOSSIERWEB - Copyright (c) 2016 ESUP-Portail consortium * * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * */ package fr.univlorraine.mondossierweb.utils; import java.util.ArrayList; import java.util.List; import javax.servlet.ServletException; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import com.vaadin.server.DefaultUIProvider; import com.vaadin.server.ServiceException; import com.vaadin.server.SessionInitEvent; import com.vaadin.server.SessionInitListener; import com.vaadin.server.UIProvider; import com.vaadin.server.VaadinSession; import com.vaadin.spring.server.SpringUIProvider; import com.vaadin.spring.server.SpringVaadinServlet; import fr.univlorraine.mondossierweb.MdwUIProvider; @SuppressWarnings("serial") public class MdwSpringVaadinServlet extends SpringVaadinServlet { @Override protected void servletInitialized() throws ServletException { getService().addSessionInitListener(new SessionInitListener() { private static final long serialVersionUID = -6307820453486668084L; @Override public void sessionInit(SessionInitEvent sessionInitEvent) throws ServiceException { WebApplicationContext webApplicationContext = WebApplicationContextUtils .getWebApplicationContext(getServletContext()); // remove DefaultUIProvider instances to avoid mapping // extraneous UIs if e.g. a servlet is declared as a nested // class in a UI class VaadinSession session = sessionInitEvent.getSession(); List<UIProvider> uiProviders = new ArrayList<UIProvider>(session.getUIProviders()); for (UIProvider provider : uiProviders) { // use canonical names as these may have been loaded with // different classloaders if (DefaultUIProvider.class.getCanonicalName().equals(provider.getClass().getCanonicalName())) { session.removeUIProvider(provider); } } // add Spring UI provider SpringUIProvider uiProvider = new MdwUIProvider(webApplicationContext); session.addUIProvider(uiProvider); } }); } }