1 /* 2 * Created on Jun 5, 2006 by scytacki 3 * 4 * Copyright (c) 2006 Regents of the University of California (Regents). Created 5 * by TELS, Graduate School of Education, University of California at Berkeley. 6 * 7 * This software is distributed under the GNU Lesser General Public License, v2. 8 * 9 * Permission is hereby granted, without written agreement and without license 10 * or royalty fees, to use, copy, modify, and distribute this software and its 11 * documentation for any purpose, provided that the above copyright notice and 12 * the following two paragraphs appear in all copies of this software. 13 * 14 * REGENTS SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 15 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE. THE SOFTWAREAND ACCOMPANYING DOCUMENTATION, IF ANY, PROVIDED 17 * HEREUNDER IS PROVIDED "AS IS". REGENTS HAS NO OBLIGATION TO PROVIDE 18 * MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. 19 * 20 * IN NO EVENT SHALL REGENTS BE LIABLE TO ANY PARTY FOR DIRECT, INDIRECT, 21 * SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, INCLUDING LOST PROFITS, 22 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF 23 * REGENTS HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26 package net.sf.sail.core.bundle; 27 28 import net.sf.sail.core.service.ServiceContext; 29 30 /** 31 * A Bundle provides services and has a lifecyle: 32 * - register the services that it provides 33 * - initialize the services 34 * 35 * One bundle might have multiple services 36 * 37 * When initialize() is called before registerServices, 38 * the behavior is undefined 39 * 40 * @author scytacki 41 * AUDIT07 42 */ 43 public interface Bundle { 44 45 /** 46 * Allows bundle to provide all the services that it has 47 * This method has to be called before initializeBundle 48 * 49 * @param serviceContext 50 */ 51 public void registerServices(ServiceContext serviceContext); 52 53 /** 54 * Initializes the services that this bundle provides 55 * 56 * @param serviceContext 57 */ 58 public void initializeBundle(ServiceContext serviceContext); 59 }