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 }