better introduction.
[utils] / support / general / src / site / xdoc / index.xml
1 <?xml version="1.0"?>
2 <document xmlns="http://maven.apache.org/XDOC/2.0"
3   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4   xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
5   
6   <properties>
7     <title>overview</title>
8     <author email="erik@brakkee.org">Erik Brakkee</author>
9   </properties>
10   <body>
11     <section name="Introduction">
12       <p>The general support library contains various smaller utilities that
13          can be useful for any java project. I started this in 2005 when I realized that it
14          would be very nice to have a support library readily available instead of having to 
15          cut and paste from old code.
16       </p>
17       <p>
18         There are many purposes for this documentation: 
19       </p>
20       <ul>
21         <li>To allow others to use this library.</li>
22         <li>To allow myself to use the library(!). This is because I have written a lot of stuff in the
23         past and need to make sure I have good enough documentation describing what I have made and
24         how to use it. </li>
25         <li>To document the current state of development. In particular, some parts may be deprecated because of
26           other developments).</li>
27         <li>To allow extension of the library.</li>
28       </ul>
29      
30     </section>
31     <section name="Philosopy">
32       <p>
33         Some parts in the utilities library may seem familiar to users of 
34         other popular frameworks such as <a href="http://www.springframework.org">Spring</a> and 
35         <a href="http://code.google.com/p/google-guice/">Guice</a>. This
36         is not always a coincidence. It is my view that Spring is just another IOC framework and
37         that there can be many IOC frameworks. Also, the support that one actually needs to develop
38         applications and in particular enterprise applications efficiently only requires a few basic
39         support utilities and typically not a big framework. 
40       </p>
41       <p>Apart from this, there are many other
42         interesting developments going on: 
43       </p>
44       <ul>
45         <li><em>Java EE 6 dependency injection:</em> Java EE 6 provides a powerful dependency injection framework called 
46           <a href="http://jcp.org/en/jsr/summary?id=299">Contexts and Dependency Injection (CDI)</a>, that
47           contains a lot of experience from proven frameworks such as Spring and Guice. In
48           particular, I think CDI can be viewed as a standardization of Guice (although some people
49           might disagree). This, in effect,
50           should make anyone think twice before depending heavily on a 3rd party IOC framework
51           instead of using CDI.  
52         </li>
53         <li><em>Lightweight component technologies:</em> Integration of lightweight component technologies such as <a
54           href="http://www.osgi.org">OSGI</a> and Java EE is under way
55           which will also shift the balance. In effect, the enterprise spec for OSGI was released
56           March 23rd 2010 and Glassfish V3 is already partly using it. </li>
57       </ul>
58       <p>
59         In particular, I believe that Java EE 6 with new powerful concepts such as singleton beans,
60         lifecycle management, Contexts and Dependency Injection, and Enterprise OSGI will provide
61         the most powerful way to develop applications in the future. In this. I am making only an
62         exception for web frameworks to which I think JSF is not a good solution. I would use 
63         <a href="http://wicket.apache.org">Wicket</a> anyday if it's up to me. 
64       </p>
65       
66     </section>
67   </body>
68 </document>