<document xmlns="http://maven.apache.org/XDOC/2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/XDOC/2.0 http://maven.apache.org/xsd/xdoc-2.0.xsd">
-
+
<properties>
<title>overview</title>
<author email="erik@brakkee.org">Erik Brakkee</author>
</properties>
<body>
<section name="Introduction">
- <p>
- The utilities library consists of software to support development of
- Java and in particular Java EE applications.
- See the links on the left side for information about various
- components of the utilities library.
- </p>
+ <p> The utilities library consists of software to support development of Java and in
+ particular Java EE applications. I started this in 2005 when I realized that it would be
+ very nice to have a support library readily available instead of having to cut and paste
+ from old code. </p>
+ <p> There are many purposes for this documentation: </p>
+ <ul>
+ <li>To allow others to use this library.</li>
+ <li>To allow myself to use the library(!). This is because I have written a lot of stuff in
+ the past and need to make sure I have good enough documentation describing what I have
+ made and how to use it. </li>
+ <li>To document the current state of development. In particular, some parts may be
+ deprecated because of other developments).</li>
+ <li>To allow extension of the library.</li>
+ </ul>
+ <p> See the links on the left side for information about various components of the utilities
+ library. </p>
+
+ </section>
+ <section name="Philosopy">
+ <p> Some parts in the utilities library may seem familiar to users of other popular frameworks
+ such as <a href="http://www.springframework.org">Spring</a> and <a
+ href="http://code.google.com/p/google-guice/">Guice</a>. This is not always a coincidence.
+ It is my view that Spring is just another IOC framework and that there can be many IOC
+ frameworks. Also, the support that one actually needs to develop applications and in
+ particular enterprise applications efficiently only requires a few basic support utilities
+ and typically not a big framework. </p>
+ <p>Apart from this, there are many other interesting developments going on: </p>
+ <ul>
+ <li><em>Java EE 6 dependency injection:</em> Java EE 6 provides a powerful dependency
+ injection framework called <a href="http://jcp.org/en/jsr/summary?id=299">Contexts and
+ Dependency Injection (CDI)</a>, that contains a lot of experience from proven frameworks
+ such as Spring and Guice. In particular, I think CDI can be viewed as a standardization of
+ Guice (although some people might disagree). This, in effect, should make anyone think
+ twice before depending heavily on a 3rd party IOC framework instead of using CDI. </li>
+ <li><em>Lightweight component technologies:</em> Integration of lightweight component
+ technologies such as <a href="http://www.osgi.org">OSGI</a> and Java EE is under way which
+ will also shift the balance. In effect, the enterprise spec for OSGI was released March
+ 23rd 2010 and Glassfish V3 is already partly using it. </li>
+ </ul>
+ <p> In particular, I believe that Java EE 6 with new powerful concepts such as singleton
+ beans, lifecycle management, Contexts and Dependency Injection, and Enterprise OSGI will
+ provide the most powerful way to develop applications in the future. In this. I am making
+ only an exception for web frameworks to which I think JSF is not a good solution. I would
+ use <a href="http://wicket.apache.org">Wicket</a> anyday if it's up to me. </p>
+
</section>
</body>
</document>