/* * This library is free software; you can redistribute it and/or modify it under the terms of * the GNU Lesser General Public License as published by the Free Software Foundation; * either version 2.1 of the License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License along with this * library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA */ package com.restfully.shop.services; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import javax.naming.InitialContext; import javax.ws.rs.core.Application; import java.util.HashSet; import java.util.Set; public class ShoppingApplication extends Application { private Set<Class<?>> classes = new HashSet<Class<?>>(); public ShoppingApplication() { classes.add(EntityNotFoundExceptionMapper.class); } public Set<Class<?>> getClasses() { return classes; } protected ApplicationContext springContext; public Set<Object> getSingletons() { try { InitialContext ctx = new InitialContext(); String xmlFile = (String) ctx.lookup( "java:comp/env/spring-beans-file"); springContext = new ClassPathXmlApplicationContext(xmlFile); } catch (Exception ex) { ex.printStackTrace(); throw new RuntimeException(ex); } HashSet<Object> set = new HashSet(); set.add(springContext.getBean("customer")); set.add(springContext.getBean("order")); set.add(springContext.getBean("product")); set.add(springContext.getBean("store")); return set; } }