(back to ProgrammingBookmarks)
(over to JavaTips)
http://datavision.sourceforge.net/ - A report generation tool in Java:, has a GUI for interactive report building. Kinda clumsy, but works OK and has a low learning curve.
http://xreporter.cocoondev.org/ - a web-based report framework based on Cocoon. Demo looks very nice. Hand-coded XML report definitions.
Many languages have been implemented (or re-implemented) in Java. Here's a list:
Programming Languages for the Java Virtual Machine
http://grunge.cs.tu-berlin.de/~tolk/vmlanguages.html
This is an interesting paper about how the singleton pattern gets abused, why that's bad, and one approach to working around the problem:
http://www-106.ibm.com/developerworks/webservices/library/co-single.html
Java(TM) 2 Platform, Enterprise Edition Blueprints |
http://java.sun.com/j2ee/blueprints/ This is how Sun thinks you should build big applications using Java. I pretty much agree, except that I don't like JSP.
xslt -> PDF print formatter |
http://xml.apache.org/fop/
Log4j - a java logging and tracing package |
http://www.log4j.org/
Java Run-time Versioning -
http://java.sun.com/j2se/1.4.1/docs/guide/versioning/spec/VersioningTOC.html
EJB Containers
Compilers
JVM's
XML<->Java
http://skaringa.sf.net - works very well for "inside-out" XML, i.e. you start with some Java objects and want to marshal them to XML, do something, and then unmarshal. Most of the other tools are designed to work "outside-in" i.e. you've got a DTD and want to get documents that match that DTD into Java.
http://www.bifrost.org/xmlio/ - looks similar to Skaringa, very Java-centric
http://jxv.sourceforge.net/ - xml <->objects
also JAXB (from Sun), Castor (from Exolab, very fussy).
http://jaxme.sf.net/ - another. sucky website, dunno bout the code.
http://sourceforge.net/projects/xjr/ - another
http://tibco.com/solutions/products/extensibility/turbo_xml.jsp
A co-worker says "This is by far the best XML product I have used in terms
functionality and usability. However, this is also the most expensive."
rdbms<->Java
http://hibernate.sf.net/ - I've been experimenting with this and it's
very good.
Castor JDO.
Jakarta Torque -
http://jakarta.apache.org/turbine/torque/index.html
http://objectstyle.org/cayenne/
http://voruta.sourceforge.net/
Code Format/Conventions
Sun's code conventions
QA/Metrics
JUnit -
http://www.junit.org/ - Testing Resources for Extreme Programming
http://doctorj.sourceforge.net/ - sort of like lint for Java
http://www.cs.umd.edu/~pugh/java/bugs/ - Some code patterns usually indicate bugs. This is a tool to find some of those patterns.
http://pmd.sourceforge.net/ - finds miscellaneous flaws in Java code.
UML
I like to have code generate documentation where possible, since that keeps the docs close to the code. I'm intrigued by the idea of literate programming but don't really have the time to pick it up.
Frameworks
Interesting server framework:
http://www.destinystar.com/
Apache Avalon:
http://jakarta.apache.org/avalon/
Open For Business -
http://www.ofbiz.org/ - an extensive framework released under a very liberal license.
Carbon Component Framework -
http://carbon.sourceforge.net/ - Sapient's Java/J2EE framework. Looks pretty good overall, covers a lot of the crufty things that j2ee doesn't.
Open Symphony -
http://www.opensymphony.com/
Keel "meta framework" -
http://keelframework.org/
Charts/Graphs
JFreeChart - Java chart library, generates raster images from data -
http://www.jfree.org/jfreechart/index.html
JGraph - Swing component to manipulate graph structures interactively
http://jgraph.sourceforge.net/
TouchGraph - a tool for visualizing graphs -
http://sourceforge.net/projects/touchgraph/
Misc
http://jakarta.apache.org/commons/ - truly miscellaneous, but very useful code that's shared by Jakarta projects.
Java stack trace:
http://www.javaworld.com/javaworld/javatips/jw-javatip124.html
Clover ETL - ETL in Java
http://cloveretl.berlios.de/
Ejen - a tool to generate many types of file (sort of like XDoclet only perhaps more flexible)
http://ejen.sourceforge.net/
Units and Measurements Package:
http://www.cs.queensu.ca/home/dalamb/java/units/
http://jaxe.sourceforge.net/ - XML editor in Java
http://www.jpevans.com/software/jjcl/ - the JarJar classloader loads classes from jars inside another jar which provides a convenient way to distribute a program as a single jar file.
Decimal arithmetic for Java - 1.08 |
http://www2.hursley.ibm.com/decimalj/ also a great reference that explains why you don't ever want to use
float
or
double
to represent money.
Advanced Programming for the Java 2 Platform |
http://developer.java.sun.com/developer/onlineTraining/Programming/JDCBook/index.html
Sun's JDBC Technology Site -
http://java.sun.com/products/jdbc/
JDBC
RowSet is a good way to move jdbc data around a system.
jGuru: Enterprise JavaBeans(TM) Fundamentals |
http://developer.java.sun.com/developer/onlineTraining/EJBIntro/EJBIntro.html | An online course in Enterprise JavaBeans at Sun's web site
JavaWorld |
http://www.javaworld.com/
ICU4J - International Components for Unicode for Java |
http://oss.software.ibm.com/icu4j/
Java(TM) Technology & XML |
http://java.sun.com/xml/
the serverside.com - your middleware portal |
http://www2.theserverside.com/
Implementing the Singleton Pattern in Java - Rod Waldhoff |
http://members.tripod.com/rwald/java/articles/Singleton_in_Java.html
JSwat - Graphical Java Debugger |
http://www.bluemarsh.com/java/jswat/
http://alfj.sourceforge.net/ - a trace logging library that can log all call/returns without explicit log statements.
http://opensource.yourdecor.ca/jspdoc/ - JSP documentation generator, like javadoc for jsp's. (I tried version
20020909 and it was pretty rough. I think that it would be good to integrate into a new project but it might be hard to retrofit into an existing one.)
Quartz job scheduler -
http://www.part.net/quartz.html - "Quartz is a job scheduling system that can be integrated with, or used along side virtually any
J2EE or
J2SE application. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs—who's tasks are defined as standard Java components or EJBs."
ejb-jar reference -
http://www.ejb-ql.com/ejb-jar-ref.html - a nice html cross-reference of the ejb-jar.xml dtd.