J2EE Programming Tips

Popular Java/J2EE Development/Testing Tools

1. IDE => Eclipse/Netbeans/IntelliJ IDEA/JBuilder/JDeveloper/WSAD

2. Application Server => WebSphere/Weblogic/Sun GlassFish/Apache Tomcat/JBoss/JRun/Iplanet/NES(Netscape Enterprise Server)/NAS(Netscape Application Server) /IPLANET(It is latest version of NES and NAS)

3. Database Server => Oracle/Sqlserver/Sybase/MySql/DB2(if Application is Mainframe)

4. Middle Tier => EJB/Hibernate/TopLink/JDO/JMS/Corba(TAO,JavaOrb,OmniOrb ...)

5. Web Application Frameworks => Struts/Spring/JSF/GWT/Apache Wicket/Grails/Adobe Flex/ OpenLaszlo/SAILS/Tapestry

6. XML Parser => Xerces(Apache Parser)/JAXP(Sun Parser)

7. XSLT Parser => Xalan(Apache XSLT)/Saxon

8. JAVA XML Binding => JAXB/Castor/XMLBeans

9. Unit Testing Framework for Java => JUnit/GJTester

10. Unit Testing Framework for Servlets => Cactus/AppPerfect

11. Unit Testing Framework for Servlets/JSP/EJB => HtmlUnit/AppPerfect

12. Unit Testing Framework for Java Database Programming => SQLUnit / DBUnit / DAO

13. Java Memory Leak Tool => HeapRoots / JRockit JVM

14. Java Performance Checking Tool => Apache JMeter / JProfiler / JUnitPerf / The Grinder

15. Java Code Static Analysis Tool => ASSENT(TCS Product)/JTest

16. Java Code Coverage Tools => CheckStyle/PMD

17. Java Build Tool => Ant/Maven/Apache Ivy

18. Java Bug tracking Tool => Bugzilla/SVN Trac/QC(Quality Center)

19. Java Webservices Tool => Axis(SOAP WebServices) / Crispy(REST Webservices)

20. Java Common Utilities API => Apache Commons Library ( Please check this Library before you develop any new Java Utilities Classes)

21. Java Reporting Tools => BI Crystal Reports/Actuate/Jasper Reports/JCharts

22. Open Source UML & Modeling in Java => AgroUML/Jude/Violet

23. Logging Tools => Log4J / Commons Logging / AspectJ / Log4plsql(Open-Source Tool for PL/SQL Logging) / jLo

24. Java Security Frameworks => Acegi, JaaS

25. Java Graph/Network Visualization Tools => Tom Sawyer / VizServer / Giny

26. Java Desktop GUI : AWT/SWING/SWT/JFace

27. Open Source Wiki Engines in Java => JSPWiki / MediaWiki

28. Web Browsers => Mozilla FireFox / IE / Safari

29.
Miscellaneous -

a. Integration Server => Talend / Hudson

b. Encryption/Decryption Libraries => JASYPT (Pretty good Java cryptography library to encrypt/decrypt your usernames, passwords, files ...)

c. Image API => Jai (Java Advanced API for Imaging)

d. Configuration Management Tools - Subversion / CVS

e. Java Service Wrapper (To run your java applications as a windows service)

f. Content Management System(CMS) - plone / zoomla / zope / drupal

g. Java Persistence API(JPI)

h. JCR - Content Repository API for Java (JCR) is a specification for a Java platform API for accessing content repositories in a uniform manner

i. MULE - Mule is the world's most widely used open source Enterprise Service Bus (ESB).

j. JSON - JSON (JavaScript Object Notation) is a lightweight data-interchange formatFor data-oriented applications, prefer JSON to XML due to its simplicity and ease of processing on the client side. XML may be great on the server side, but JSON is definitely easier to deal with on the client side.

k. Rhino - Javascript Engine in Java

l. Apache Lucene - A high-performance, full-featured text search engine library written entirely in Java

Core Java Focus:

1. Core Java Fundamentals (Core Packages)

2. Collections, Generics, Reflections

3. Multithreaded Programming

4. AWT/SWING GUI Programming

5. JDBC programming

6. Network Progamming (sockets, ...)

7. HTTP Programming

8. RMI

9. JNDI

Compared to JDK 4.0 ( 1.4.4) , JDK 5.0 ( 1.4.5) has more features like -

1. Generics => which are like C++ STL (Standard Template Library)

2. Variable Args

3. enum

4. Auto Boxing

5. Reading Commandline Arguments

6. printf

J2EE Focus:

Here you will focus on one of the J2EE Web Application Frameworks -

Any Web Application Framework => Presentation Tier, Middle Tier
Examples:

1. Struts => Presentation Tier(Servlets,JSP),Middle Tier(EJB)
2. Spring => Presentation Tier(Servlets, JSP), Middle Tier(Hibernate)
...

So the common and fundamental stuff in J2EE is Servlets, JSP

Servlets => HTML code Snippets embedded with JAVA code
JSP => Java Code Snippets embedded with HTML code

So we can say Servlets & JSP in J2EE as Fundamentals of J2EE programming.

To be a good one in J2EE, You have to be proficient in atleast one Application Server & one Database Server based on the Operating System that you are going to deploy J2EE Products/Applications.

Application Server can be => WebSphere/JBoss
Database Server can be => Oracle/SqlServer ( if OS is Windows then SqlServer )

Thanks To:
Special Thanks to my wife, Roja Koney for her inspiration, contribution and continuous support to write this Java/J2EE post.

Special Thanks to Changal Rayudu , Raghavendra Sai for their immense help in developing this write-up.

Books:

1. "Thinking in Java , 3rd Edition" by Bruce Eckle -
http://www.mindview.net/Books/TIJ/

2."'J2EE Web Services: The Ultimate Guide" by Richard Monson-Haefel -http://books.google.com/books?id=NNqmolbaApQC&pg=PA1&dq=j2ee&sig=ACfU3U3-RDn6uGY8QZ6DjYPT_Fb_dSPiKA#PPA885,M1

3. "J2EE Design Patterns" by William Crawford, Jonathan Kaplan -
http://books.google.com/books?id=N_cEwmcSauUC&printsec=frontcover&dq=j2ee&sig=ACfU3U0cgVRY8TUXpZc8TH31xU_4Z_XgRA

4. "Core J2ee Patterns: Best Practices and Design Strategies" by Deepak Alur, John Crupi -
http://books.google.com/books?id=1dx34EMVyi8C&printsec=frontcover&dq=j2ee&sig=ACfU3U34F4XCp2YQSIge-EQHvjjJqQcU9w#PPA11,M1

5. "J2EE and JAX: developing Web applications and Web services" by Michael Yawn -
http://books.google.com/books?id=SK0Im1uI3jsC&printsec=frontcover&dq=j2ee&lr=&sig=ACfU3U3gToC6jT-YLbNQ5WRzKgL7hlmNcQ

6. "Sun Certified Enterprise Architect for J2EE Study Guide (exam 310-051)" by Paul R. Allen, Joseph J. Bambara -
http://books.google.com/books?id=GJRKjnwYJcgC&printsec=frontcover&dq=j2ee&lr=&sig=ACfU3U3qAxMyrwvi8V26J7QYGiwp1vZkDA

7. "Sun Certified Enterprise Architect for J2EE technology study guide" by Mark Cade, Simon Roberts -
http://books.google.com/books?id=qczD49Yc9OoC&pg=PA11&dq=j2ee&sig=ACfU3U3fiZUtuhg0RHFnbFJEz5ZXu8-dlQ#PPP1,M1

8. "Core Web Programming" by Marty Hall and Larry Brown

9. "CodeNotes for J2EE: EJB, JDBC, JSP, and Servlets" by Gregory Brill

Links:
1. Open Source Software in Java - http://java-source.net/

2. Open Source Testing Tools in Java -
http://java-source.net/open-source/testing-tools

3. Java/J2EE IDEs Overview -
http://www.devx.com/Java/Article/34009

4. J2EE Interview Questions -
http://www.geekinterview.com/Interview-Questions/J2EE

5. J2EE Overview -
http://java.sun.com/j2ee/1.4/docs/tutorial/doc/Overview.html

6. J2EE Overview -
http://www.comptechdoc.org/docs/kanti/ejb/j2eeoverview.html

7. .NET vs J2EE -
http://www.oreillynet.com/pub/a/oreilly/java/news/farley_0800.html

8. Java Desktop GUI -
http://www.javaworld.com/javaworld/jw-04-2004/jw-0426-swtjface.html

9. Java Content Repository(JCR) API -
http://en.wikipedia.org/wiki/Content_repository_API_for_Java

10. Mule -
http://www.mulesource.com/products/mule.php

http://www.theserverside.com/tt/articles/article.tss?track=NL-461&ad=645256&l=COISWithMuleandJCR&asrc=EM_NLN_3809631&uid=3048354

11. JSON -
http://www.subbu.org/weblogs/main/2006/08/json_vs_xml_1.html

12. Ruby Blog :
http://ola-bini.blogspot.com/2008/06/fractal-programming.html

13. Java Interview Questions -
http://www.indijava.in/community/faq/java_interview_questions

14. Runtime Code Generation with JVM & CLR -
http://www.itu.dk/~sestoft/rtcg/rtcg.pdf

15. JVM vs CLR memory allocation - http://benpryor.com/blog/2006/05/04/jvm-vs-clr-memory-allocation/

16. Javascript Engines : WebMonkey(in C) , Rhino(In Java) - http://www.mozillazine.org/

17. Runtime Code Generation with JVM & CLR - http://www.itu.dk/~sestoft/rtcg/rtcg.pdf

18. JVM vs CLR memory allocation - http://benpryor.com/blog/2006/05/04/jvm-vs-clr-memory-allocation/

19. PHP Frameworks - CAKE, ZEND, SYMFONY

20. Java Server Magazine - http://www.javaskyline.com/