improvements to the documentation.
[utils] / support / inject / src / main / java / org / wamblee / inject / package-info.java
1 /*
2  * Copyright 2005-2010 the original author or authors.
3  * 
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  * 
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  * 
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 /**
17  * This package provides a mini-framework for interfacing to existing dependency injection 
18  * mechanisms. This package does not provide dependency injection, but implementations are expected to 
19  * implement it, usually by delegating to an existing dependency injection framework. The interfaces in this
20  * package provide independence on the actual framework chosen and also allow for better testability. 
21  * 
22  * <h2>Users of the package</h2>
23  * 
24  * <p>Users of this package will typically use: </p>
25  * <ul>
26  *   <li> <code>SimpleInjector</code>: This is the class used to perform injection of dependencies into 
27  *        a given object. </li>
28  *   <li> <code>Injectable</code>: By subclassing this class, the classes automatically get their 
29  *        dependencies injected at construction. </li>
30  *   <li> <code>InjectorFactoryBuilder</code>: To get an injector factory reference for use in the 
31  *       <code>SimpleInjector</code>
32  * </ul>
33  * 
34  * <h2>Implementors of the package</h2>
35  * 
36  * <p>Of interest to implementations of this package integrating with dependency injection frameworks are: </p>
37  * <ul>
38  *   <li> <code>Injector</code>: The main interface to be implemented is the {@link Injector}, by which injection is done.</li>
39  *   <li> <code>InjectorFactory</code>: Injectors are created by an implementation of the {@link InjectorFactory} which 
40  * creates injectors based on the class.</li>
41  *   <li> <code>InjectorFactoryBuilder</code>: Implementations must make their <code>InjectorFactory</code>
42  *       available through the <code>ServiceLoader</code> mechanism. 
43  *   </li>
44  * </ul>
45  * 
46  * <p>Class overview</p>
47  * <img src="doc-files/Class_Diagram__overview.png"/>
48  *
49  */
50 package org.wamblee.inject;
51
52