Java

Java libraries/wrappers for FFMPEG

There're quite some. Here's a short list as a result of some googling:
  • jffmpeg (an extension of JMF, last release in Jan 2006)
  • FMJ and FFMPEG-Java (aka. Freedom for Media in Java, a more up-to-date alternative of JMF/jffmpeg, last release in Sep 2007)
  • Xuggler (yet another Java lib for FFMPEG Smiling, last release in Feb 2010)
  • JAVE (Java Audio Video Encoder, last release in Apr 2009)

TCP Catcher

I've already written about a number of web debugging proxies (Charles, Fiddler, Paros) and now I've stumbled on another one. Smiling TCP Catcher comes as a simple JAR (yes, this one is written in Java too, just like Charles) and has a lot less features than Fiddler or Charles. However less is sometimes more. It consists of only two screens: settings page and request (TCP or HTTP) list. It's very easy and fast to set up and works quite well. If you don't need the rich feature set of Charles, TCP Catcher is the way to go. Smiling

Patch for SQuirreL SQL Client v3.2.1 - adds keyboard shortcut for SQL Query rerun/re-execution

SQuirreL SQL Client is a really awesome piece of software. It's a universal SQL client written in pure Java, thus it's portable to virtually any platform (at least all major desktop environments -Mac OSX, Windows, Linux- that people use nowadays). It's very compact and it allows you to work with all sorts of databases that have a pure Java JDBC driver available (most DBs do). A small annoyance has been bugging me for quite some time now and today I took the time to make a patch for it (big hurray for open source! Smiling ).

Hibernate, C3P0 and robust database connection handling

Quoting from the official Hibernate docs: "Hibernate's own connection pooling algorithm is, however, quite rudimentary. It is intended to help you get started and is not intended for use in a production system, or even for performance testing. You should use a third party pool for best performance and stability."
And it's all true: you should never (imho not even for development) use the default connection provider.

JDBC Navigator

"JDBC Navigator is a free database browser and editor. It lets you open JDBC database connections, browse schemas and tables, traverse relations by finding rows referencing a row's primary key, traverse relations by finding rows referenced by a row's foreign keys, edit table data (inserting new rows, and editing or deleting existing rows)."

SQuirreL SQL Client

"SQuirreL SQL Client is a graphical Java program that will allow you to view the structure of a JDBC compliant database, browse the data in tables, issue SQL commands, etc."

Tracking Class Loading and Garbage Collection

I've already written a post about tracking class loading in Tomcat webapps. This post is about trackingt class loading of the JVM classloader. There're two options:
  • a command-line switch: -verbose:class
  • the verbose attribute of the java.lang.management.ClassLoadingMXBean bean (which can be set via the setVerbose(boolean value) function)
The former should be used to enable tracking of class loading right from the start of the application. The latter is used to enable/disable tracking of class loading in an already running application/JVM. This page describes how to do the latter with JConsole.

Compiling Axis2 from source

The instructions are quite straightforward. There's just one catch: using Maven v2.2.1 will probably give tons of error messages and a failed build. Maven will download all sorts of JARs from the main Maven repository. However the repository location has changed and the old URLs give you a HTTP 301 "Moved Permanently" response. Unfortunately the HTTP client libraries in Maven v2.2.1 do not cope well with this.

Using Axis2 from a WAR bundle

If you pack your Axis2-enabled webapp into a WAR (or EAR) and specify that the WAR/EAR bundle must not be unpacked (eg. in case of Tomcat you can do this with the unpackWAR="false" context attribute), then you'll run into the following error during context initialization (ie. application startup):
10.11.29 09:02:32,702 ERROR org.apache.axis2.scripting.ScriptModule - AxisConfiguration getRepository returns null, cannot deploy scripts
It's easy to fix, once you know your way around the Axis2 source code. Smiling

JarDiff - create a diff of the public API of two JAR files

I've written a simple shell script to generate "signatures" of all the *.class files in two JAR files and compare these with diff. The output is pretty well usable to spot the (sometimes accidental) differences between two versions of the same library.

Syndicate content