<body>
<section name="Introduction">
<p>The general support library contains various smaller utilities that
- can be useful for any java project.
+ can be useful for any java project. 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>
- The purpose of this documentation is threefold:
+ There are many purposes for this documentation:
</p>
<ul>
- <li>To allow others and myself to use this library.</li>
- <li>To document the current state of development (some parts may be deprecated because of
- other evolutions in technology).</li>
+ <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>
+
+ </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>