Title: J2EE Development with Open Source
1J2EE Development with Open Source Free Tools
Make the most of any budget
- Erin Mulder
- Enterprise Architect
- Chariot Solutions
Aaron Mulder Chief Technical Officer Chariot
Solutions
2In this BOF well
Look at open-source and free offerings in almost
every area of J2EE development Compare them to
the commercial alternatives
3Topics well cover
4Not just about cost
In each of these areas, also consider
- Comfort, Productivity, Morale
- Will developers be happy with the tools that are
chosen? - Would more advanced tool features speed up the
project? - How much time will be lost learning new
interfaces? - How portable does the development environment
need to be? - Expected production environment
- Do customers / corporate policies dictate certain
vendors? - Will testing be easier if you match the
production environment? - Will diverse development platforms help avoid
portability pitfalls?
5 6Operating Systems
Take a look at
- Linux
- Windows 2000, XP
- Mac OS-X
7Operating Systems
Conclusions
- Often free with the hardware
- Use what youre most productive with
- Multiple development platforms within one project
may help productivity and morale, but can
sometimes be an obstacle to teamwork - Someone should use the target platform
- OS-X is great, but a lot of commercial
J2EE/database servers dont support it yet
8Databases
Take a look at
- PostgreSQL
- MySQL
- SAP DB
- Hypersonic
- McKoi
9Databases
Conclusions
- Several worthy free offerings which are easy to
administrate - Often the best choice for applications that need
to ship with an embedded database - Be sure to still test early and often on your
production database
10Persistence Frameworks
Take a look at
- EJB 2.0 CMP
- OJB
- Hibernate
- Castor
11Persistence Frameworks
Conclusions
- Dont write SQL
- (unless you have to)
12Application Servers
Take a look at
- Servlet/JSP
- Tomcat
- Jetty
- EJB
- JBoss
- JOnAS
- OpenEJB
13Application Servers
Conclusions
- The real choice is JBoss/Tomcat vs. JBoss/Jetty
- Both are ready for primetime
- Lots of production deployments of each
- Administration via config files, not graphical
interfaces - Multiple companies providing support
14Portals, Integration Workflow
Take a look at
- Jetspeed
- OFBiz
- InfoSapient
15Portals, Integration Workflow
Conclusions
- Weak compared to commercial offerings
- Starting to get a lot of attention, though
- Portlet API will improve EIP prospects
- All of these can be a good headstart if youre
choosing build over buy
16Content Management
Take a look at
17Content Management
Conclusions
- Still evaluating
- Cocoon is an XML/XSLT engine that can load and
transform arbitrary XML content - CoFax and OpenCMS are more full-fledged content
management systems that edit, track, version and
present content
18Reporting
Take a look at
19Reporting
Conclusions
- Great for small number of canned reports
- Jasper has a more powerful engine
- DataVision focuses on report building UI
- Get a commercial product if your users need to
create complex ad-hoc reports
20Scheduling
Take a look at
21Scheduling
Conclusions
- Platform-independent scheduling
- Can be embedded in J2EE applications
- JCronTab is a simple cron-like scheduler
- Quartz is more powerful, but more complicated
22 23IDEs
Take a look at
24IDEs Eclipse Screenshot
25IDEs NetBeans Screenshot
26IDEs
Conclusions
- Everything you need for most Java/J2EE
development - Loads of great plug-ins
- May want to look at IBM/Rational or
Borland/Together for better modeling and GUI
design integration - May want to look at IntelliJs IDEA for more
intuitive, Java-centric development
27Database Browsers
Take a look at
- SQuirreL
- TORA
- DBVisualizer free version
- TOAD free version (Oracle only)
28DB Browsers SQuirreL
29DB Browsers TORA
30DB Browsers DBVisualizer
31DB Browsers TOAD
32Database Browsers
Conclusions
- If you work with databases, you should definitely
be using a database browser - Free offerings usually fit the bill
- Most are limited to the JDBC API
- DBAs and developers relying heavily on specific
features of non-Oracle databases may want to
invest in a DB-specific tool (for query analysis,
stored procedure language tools, custom admin
tools, etc.)
33Source Control
Take a look at
- CVS (with ViewCVS, QueryCVS, etc.)
- Subversion
34Source Control
Conclusions
- CVS is often the best option
- Allows concurrent (non-locking) access
- Great tools support
- Great web interfaces available
- Easily configurable to take action on commits
(bug tracking, email, etc.) - Great for secure, remote development
- Keep an eye on the Subversion project
35Documentation
Take a look at
36Documentation DocBook Source
37Documentation DocBook HTML
38Documentation DocBook PDF
39Documentation
Conclusions
- Text-based format great for version control
- Developers can edit docs from within IDE
- Can configure CVS to rebuild browsable
documentation on every check-in - Produces great, professional looking PDFs
- Still weak on WYSIWIG tool support (hopefully
coming soon to OpenOffice) - Go with XML version, not SGML
40Modeling/Design Tools
Take a look at
- Eclipse Modeling Framework (EMF) and the free
edition of Omondos EclipseUML plug-in - ArgoUML Poseidon Community Edition
41Modeling EclipseUML
42Modeling ArgoUML Screenshot
43Modeling/Design Tools
Conclusions
- Eclipses EMF projects offer sophisticated
modeling and code generation - Not as simple to configure as many commercial
modelers - Sometimes nice to use smaller tools (e.g. Violet)
for simple diagram creation
44Profiling
Take a look at
- Suns JVM Xprof Xrunhprof options
- Eclipse Profiler Plug-In
45Profiling Eclipse Profiler Plug-In
46Profiling
Conclusions
- Every project can benefit from the built-in JVM
tools - Eclipse Profiler plug-in looks a lot like popular
commercial profilers - Use with a load-generator to investigate
performance under realistic conditions
47Testing
Take a look at
- JUnit, HttpUnit, JUnitPerf
- Cactus
- JMeter, MaxQ
- Grinder, http_load, httperf, other load
generators - http//www.javaperformancetuning.com
48Testing
Conclusions
- JUnit works great for unit testing
- Plenty of options for load generation (both Java
and non-Java) - Lots of proxies for point-and-click automated
testing of web applications - Still weak on automated testing of Swing apps
- Not a lot of integration with specs,
bug-tracking, etc.
49Bug Tracking
Take a look at
- Bugzilla and variants
- Scarab
- JIRA (if youre non-profit)
50Bug Tracking Bugzilla
51Bug Tracking Scarab
52Bug Tracking JIRA
53Bug Tracking
Conclusions
- JIRA is great, but only free for non-commercial
use - Other free offerings get the job done
- Still some usability issues
- Dont integrate as well with requirements
tracking, testing and general project management
products
54Scripting Debugging
Take a look at
- Jython
- Interact with your classes and EJBs outside of
the traditional build/run cycle - AspectJ
- Enforce coding standards
- Log debug info
- Castor
- Save XML-representations of objects that cause
unexpected exceptions - Use these to debug and as input for unit tests
55Scripting Debugging
Conclusions
- Open source tools can solve a lot of problems you
didnt even know you had - Consider useful ways you can use them during
development, even if you disable them for
delivery - Experiment with scripting languages and other
methods to minimize the debuggtgtfixgtgtrebuildgtgttest
cycle
56Build Management
Take a look at
57Build Management Maven
58Build Management Maven
59Build Management
Conclusions
- Ant is the de facto standard for builds
- Maven centralizes builds across projects and adds
more sophisticated analysis, dependency tracking,
etc.
60Project Management
Take a look at
- Gantt chart tools like MrProject
- Other suggestions???
61Project Management
Conclusions
- Lots of MS-Project knock-offs out there
- Free tools dont integrate full lifecycle
management (reqs, tasks, tests, bugs, releases,
etc.) the way some commercial suites do - If youre interested in helping to change that,
email jellico_at_opentools.org
62Putting it all together
- Recent IDE releases integrate almost all of these
tools - Many new tools are being developed primarily as
plug-ins without a standalone version - Still weak on full project lifecycle management
(i.e. specgtgtdevgtgttestgtgtbugsgtgtrelease, etc.) - Still weak on value-added enterprise features
(portals, connectors, caching, graphical server
monitoring/management) - Where are the open-source UI experts? ?
63More informationhttp//chariotsolutions.com/pres
entations.html
NetBeans netbeans.org SQuirreL squirrel-sql.sour
ceforge.net TORA globecom.com/tora DBVisualizer
minq.se/products/dbvis TOAD www.toadsoft.com CVS
www.cvshome.org Subversion subversion.tigris.org
DocBook docbook.org Eclipse Profiler eclipsecol
orer.sourceforge.net JUnit www.junit.org Cactus
jakarta.apache.org/cactus JMeter jakarta.apache.o
rg/jmeter
- PostgreSQL
- postgresql.org
- MySQL
- mysql.com
- SAP DB
- sapdb.com
- Hypersonic
- hsqldb.sourceforge.net
- McKoi
- mckoi.com
- OJB
- db.apache.org/ojb
- Hibernate
OpenEJB openejb.sourceforge.net JetSpeed jakarta.
apache.org/jetspeed OFBiz ofbiz.org InfoSapient
info-sapient.sourceforge.net Cocoon cocoon.apache
.org CoFax cofax.org OpenCMS opencms.org Jasper
Reports jasperreports.sourceforge.net DataVision
datavision.sourceforge.net Quartz quartz.sourcefo
rge.net JCronTab jcrontab.sourceforge.net Eclips
e eclipse.org
EMF eclipse.org/emf EclipseUML eclipseuml.com Ar
goUML argouml.tigris.org Poseidon
C.E. gentleware.com Scarab scarab.tigris.org Bug
zilla bugzilla.org JIRA atlassian.com Ant ant.ap
ache.org Maven maven.apache.org MrProject mrproj
ect.codefactory.se Jython jython.org AspectJ ecl
ipse.org/aspectj
64(No Transcript)