Search
The Caboteria
/
Tech Web
/
TechBookmarks
>
ProgrammingBookmarks
/
JavaProgrammingBookmarks
(revision 77) (raw view)
_(over to JavaNotes)_ ---+ EJB Containers * A list of commercial and free EJB servers: http://www.mgm-edv.de/ejbsig/ejbservers.html * <nop>OpenEJB - an open-source ejb container from the author of the o'reilly ejb book . Very much under construction: a great opportunity to find out how an EJB container really works. http://openejb.exolab.org/ * jBoss -- open source EJB server - Eliot Polk recommends http://www.jboss.org/ * <nop>JOnAS Open Application Server for EJB, looks like it was written by a research group inside Groupe Bull and now it's a spin-off called Evidian. http://www.evidian.com/jonas/index.htm * Geronimo is a project started in the summer of 2003 to build a <nop>J2EE server under the auspices of the Apache project. It caused a big ruckus before a single line of code was written because some of the contributors are/were jboss committers, and they were promptly kicked out of jboss. http://geronimo.apache.org/ ---+ Compilers * Kopi - http://www.dms.at/kopi/index.html * <nop>KopiSusu - a GPL java compiler ( a branch of Kopi) http://www.klomp.org/KopiSusu/ ---+ JVM's * joeq - a JVM written in Java: http://joeq.sourceforge.net/ * JRockit - a "server" JVM written by a small co that was acquired by BEA, now available for free download and use (no source available). Only works on Intel chips, might be good on Linux as it manages its own threads (so at least WL on linux won't drive top nuts). http://www.bea.com/products/weblogic/jrockit/ * IBM - http://www6.software.ibm.com/dl/lxdk/lxdk-p - _substantially_ faster than Sun's JVM on Linux.<br/> http://www-128.ibm.com/developerworks/java/jdk/java5beta/ - the 1.5/5.0 JDK ---+ XML Binding https://bindmark.dev.java.net/ - a detailed comparison of many binding frameworks. 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. Very fast, very easy to get a handle on. Supports pipelined XSLT transforms which lets you generate/parse pretty much any XML structure. http://xstream.codehaus.org/ - like skaringa, but doesn't need a no-arg constructor.<br/> http://www.bifrost.org/xmlio/ - looks similar to Skaringa, very Java-centric<br/> http://jakarta.apache.org/commons/betwixt/ - an apache project, seems to be oriented towards Javabeans rather than plain old java<br/> http://jxv.sourceforge.net/ - xml<->objects <br/> also JAXB (from Sun), Castor (from Exolab, very fussy).<br/> http://jaxme.sf.net/ - another. sucky website, dunno bout the code.<br/> http://sourceforge.net/projects/xjr/ - another<br/> http://www.commerceone.com/developers/docsoapxdk/xgen.html - based on Castor, claims to have better support for XML schema features.<br/> http://jibx.sourceforge.net/ - claims to be fast. decorates the compiled classes with code that lets them marshal and unmarshal themselves. <br/> http://www-106.ibm.com/developerworks/library/x-databdopt/index.html - an article about java/xml data binding ---+ rdbms binding http://hibernate.sf.net/ - I've used this at work and it's _very_ good. Recommended. Castor JDO. Jakarta Torque - http://jakarta.apache.org/turbine/torque/index.html http://objectstyle.org/cayenne/ - looks pretty nice, has an integrated cache. http://voruta.sourceforge.net/ http://freshmeat.net/projects/result-set-dom/ - DOM wrapper for SQL result sets, might be useful with Maverick http://be4gle.sourceforge.net/ - a web UI framework that generates web pages that interact with the server using SOAP. http://www.bs-factory.org/BSFDocs/Features/LOV.html - *List Of Values* component that reads enumerated key/value pairs from the database and manages them. Part of a larger framework that's mostly oriented around Java fat clients. http://discoverdbgui.sourceforge.net/ - a GUI that will pull metadata out of a database and put it in an XML file. I've used a tool from the Jakarta Torque project for the same purpose, but this might be easier in a one-shot case. ---+ Persistence http://www.prevayler.org - a framework for persisting Java objects. http://pot.forgeahead.hu/ - similar to Prevayler but uses class decoration so it's more transparent (i.e. you don't need to use the command pattern). http://javamatch.sourceforge.net/ - might be a good query front end to work with a Prevayler or POT back end. http://dom-result-set.sourceforge.net/ - wraps jdbc result sets allowing them to be sent into pipelines ---+ Code Format/Conventions http://java.sun.com/docs/codeconv/ - Sun's code conventions<br/> https://sites.google.com/a/android.com/opensource/submit-patches/code-style-guide - Android's style guide builds on the standard Sun conventions ---+ QA/Metrics JUnit - http://www.junit.org/ - Testing Resources for Extreme Programming http://doctorj.sourceforge.net/ - sort of like lint for Java http://pmd.sourceforge.net/ - finds miscellaneous flaws in Java code. http://www.jutils.com/ - claims to be more powerful than PMD because it performs "type analysis". http://findbugs.sourceforge.net/ - another static analyzer from the university of Maryland. ---+ 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. * Here's a little javadoc plug-in that generates UML diagrams from Java source code: http://relativity.yi.org/jase/ * Here's another that generates UML diagrams in HTML (which are well-integrated into javadoc): http://www.objectclub.jp/download/uml_doc_e * another doclet, this one can do sequence diagrams - http://www.spinellis.gr/sw/umlgraph/ * And last but not least here's a project that generates UML image files from java code (standalone, not javadoc, has a GUI): http://jug.sourceforge.net/ ---+ 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/ "JEgg is a framework designed to reduce the complexity and cost of developing robust, multithreaded Java applications" - http://jegg.sourceforge.net/ ---+ Charts/Graphs <nop>JFreeChart - Java chart library, generates raster images from data - http://www.jfree.org/jfreechart/. Looks very good. LGPL license, but docs cost $40. I've used this and it can do _anything_ but the API was a little confusing to me, so it's a good thing that the source is available. If you pay for the docs you also get a sample application (with source code) that's extremely useful.<br/> <nop>MonarchGraph - a co-worker of mine recommends this - http://www.singleton-labs.com/mgraph.php<br/> <nop>JGraph - Swing component to manipulate graph structures interactively http://jgraph.sourceforge.net/<br/> <nop>TouchGraph - a tool for visualizing graphs - http://sourceforge.net/projects/touchgraph/ ---+ Misc Strangely enough, it can be hard to find a list of all of the command-line options to the =java= executable, especially the pesky but occasionally useful =-XX= options. Here's a page that lists many of them: http://java.sun.com/javase/technologies/hotspot/vmoptions.jsp . One option that's missing on that page but is very useful is =-XX:+HeapDumpOnCtrlBreak=. Tuning the Java garbage collector: http://www.petefreitag.com/articles/gctuning/<br/> http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html The *Heap Analysis Tool* analyzes Java heap dump files. It's included in Java 1.6 but can be downloaded to use with older versions: https://hat.dev.java.net/ *JCA* is the Java Connector Architecture. http://java.sun.com/developer/technicalArticles/J2EE/connectorclient/resourceadapter.html 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.<br/> 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 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/ An article on JSR-108 the Java Units Specification: http://www.onjava.com/pub/a/onjava/2004/01/07/units.html <br/> 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 <nop>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 JDBC [[http://developer.java.sun.com/developer/earlyAccess/crs/index.html][RowSet]] is a good way to move jdbc data around a system. jGuru: Enterprise <nop>JavaBeans(TM) Fundamentals | http://developer.java.sun.com/developer/onlineTraining/EJBIntro/EJBIntro.html | An online course in Enterprise <nop>JavaBeans at Sun's web site <nop>ICU4J - International Components for Unicode for Java | http://oss.software.ibm.com/icu4j/ 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. https://taglibrarydoc.dev.java.net/ - the tool that sun seems to be using for their jsp documentation<br/> 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 <nop>J2EE or <nop>J2SE application. Quartz can be used to create simple or complex schedules for executing tens, hundreds, or even tens-of-thousands of jobs whose "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. http://joda-time.sourceforge.net/ - this looks like a nice little package. it's both a replacement for =java.util.Date= etc and it also models ideas like "duration" and "interval." Advanced Java Serialization - http://java.sun.com/developer/technicalArticles/ALT/serialization/ http://www.macchiato.com/columns/Durable1.html - "Durable Java", a nice set of articles about Serialization, equals/hashCode, designing API's etc. Recommended. What bytecode version was a given jar compiled for? You don't often need to know, but when you do, you really do: http://alumnus.caltech.edu/~leif/opensource/bcver/index.html Annotations to cut down on boilerplate code: http://projectlombok.org/
Edit
|
Attach
|
P
rint version
|
H
istory
:
r79
<
r78
<
r77
<
r76
<
r75
|
B
acklinks
|
V
iew topic
|
Raw edit
|
More topic actions...
Copyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding The Caboteria?
Send feedback