View Javadoc

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  }