adding all of botlist, initial add
[botlist.git] / openbotlist / docs / publications / tex / java.tex
blob4f4dffc787bbbf7a2186bc0576752514d9f0f5fd
1 \section{Java Programming Language and Tools}
3 Empty
5 \subsection{Spring MVC Framework}
6 Spring is one of the latest Java Enterprise Edition (J2EE) replacement
7 frameworks that is supposed to provide minimal presentation layer support,
8 business logic support as well as the backend, persistance support.
9 It is basically a framework to bind all frameworks. And, on top
10 of everything I just mentioned, it is lightweight.
11 From working with it, it is a lot easier to work with than with the early EJBs.
13 It was created by Rod Johnson, orignally in the year 2000, but recently released over the last few years.
14 It is a Java framework that is growing rapidly. Recently, BEA have been in talks with
15 Interface21 (Spring's Host company) for a possible partnership. The key is light but flexible. What does
16 that mean exactly? Spring is modular, all the Spring libraries are broken up so that you can work with
17 separate parts of your application individually as opposed to tackling everything at once.
19 With a MVC(Model-View-Controller) application, you are concerned with modular design,
20 seperating the View from the Controller and Action logic, but also you need to worry about "Flow". "If
21 the user submits a 'print' command, seperate that logic from the 'add' logic, and what pages are
22 presented to the user". Doing this within the limitations of JSP, Servlets, and Taglibs becomes difficult.
23 So, This reated a need for frameworks like the Pico container and Spring, Struts.
25 \subsection{Hibernate Object Relational Mapping and Model Beans}
27 Our web-application would not be complete without a clear approach
28 for persisting the link data. So we have used the Hibernate ORM
29 (object relational mapping) library do the backend persistance work for us.
30 It is not really necessary to use Hibernate for such a simple
31 application, but as your enterprise application grows,
32 the need for a more robust persistance mechanism will greatly become evident.
33 MySQL 5.0.2 is used for our database and most of the recent
34 MySQL connector APIs will work with this example.
36 Almost like Struts, a lot of the hibernate settings
37 are defined in a hibernate configuration file, 'hibernate.cfg.xml'
38 and your hibernate mapping file, 'Botlist.hbm.xml'.
39 Normally the most important settings for your application
40 include what database dialect you are using; we are using MySQL
41 and the definition of your hibernate POJO beans.
42 The simple bean contains an almost one-to-one mapping between
43 your database fields and the Java members, accompanied by
44 the appropriate getters and setters.
46 \subsection{Full Text Search with Lucene}
48 \subsection{Developer tools, Eclipse and Emacs}