Although Apache doesn't focus on infrastructure, they do have some very
good infrastructure. Currently i BATIS makes use of Subversion source control
( SVN ), Atlassian's JIRA for issue tracking, Atlassian's Confluence for collaborative
wiki documentation, and Apache's mailing list servers for communication among
the development team, users, and the community in general.
Apache has what it takes to protect i BATIS and ensure that it will be around for
as long as there are people who want to use it.
Simpler, smaller, with fewer dependencies
Unlike some frameworks, the i BATIS project has no goals to branch out into new
areas and take over the world. i BATIS is a very focused project and with each
release we only hope to make it smaller and simpler and maintain independence
from third-party libraries.
We believe that i BATIS has much room for innovation. There are a lot of new tech-
nologies and design approaches that i BATIS can benefit from to make configuration
more concise and easier to work with. For example, both C# and Java have attribute
(a.k.a. annotation) functionality built in. In future versions, i BATIS will likely lever-
age this to reduce the amount of XML needed to configure the framework.
There is also a lot of room for tools development. The i BATIS design lends
itself well to graphical tools such as integrated development environments. It is
also possible for i BATIS configurations to be generated from database schemas,
for which there are already tools available. You can see examples of some of the
tools on our website at http://ibatis.apache.org.
More extensions and plug-ins
i BATIS already has a number of extension points. We'll talk about them in detail in
chapter 12. You can already implement your own transaction manager, data source,
cache controllers, and more. But we have a goal to make i BATIS even more extend-
ible. We'd like to see a pluggable design at nearly every layer of JDBC architecture,
meaning you'd be able to implement your own ResultSet handlers and SQL exe-
cution engines. This would help us support more complex or legacy systems that
operate in a proprietary way. It would also enable developers to take greater advan-
tage of customized features of particular databases or application servers.
Additional platforms and languages
As you've noticed in both chapters 1 and 2, we've discussed i BATIS for .NET and
Java. The remainder of this topic will focus mostly on the Java API s, but most of
the information is transferable to the .NET platform as well. We'll also discuss