/* * Copyright 2014, The Sporting Exchange Limited * * 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 com.betfair.cougar.core.api; import org.springframework.context.ApplicationContext; /** * A factory that creates and starts cougar application server. Can be used to start cougar application server as a * stand-alone java application or to start it as an embedded component, e.g. from a servlet-based web application. * <p/> * Examples: * To start cougar as a standalone app just call: * new CougarSpringCtxFactoryImpl().create(null); * <p/> * To integrate cougar with existing servlet-based web application, create custom ServletContextListener and call: * WebApplicationContext parentCtx = WebApplicationContextUtils.getWebApplicationContext(servletContext); * new CougarSpringCtxFactoryImpl().create(parentCtx); */ public interface CougarSpringCtxFactory { /** * Creates and starts cougar application server without using a parent context. * * @return Cougar spring context. */ ApplicationContext create(); /** * Creates and starts cougar application server. * * @param parentCtx Parent spring context. Useful when starting cougar as an embedded component, e.g. from a servlet-based * web application. If null then parent context is not set. * @return Cougar spring context. */ ApplicationContext create(ApplicationContext parentCtx); }