Skip to main content

Some useful Java libraries

Here is a video from Javazone, where some useful Java libraries are mentioned:

02:30 xbean-finder: Annotation finder in jars.
03:50 shrinkwrap: Can download artifacts from Maven repo.
05:50 zt-zip: zip file utils from Zeroturnaround.
07:25 Airline: command line parser helper.
10:30 really-executable-jars-maven-plugin: makes self-extracting jars.
12:00 jansi: colorized command line.
13:30 jmxutils: JMX beans by annotations.
15:00 Feign: HTTP helper / annotation lib. OkHttp is also mentioned.
17:20 Jerry / Lagarto: JQuery-style selectors in Java.
20:00 jchronic: converting English free-text to time.
21:40 assertj: fluent interface for asserts in unit tests.
23:10 vtte: very trivial template engine.
24:45 tape: a collection of queue-related classes for Android.
26:10 connector/mxj (GPL): mysql helper.
28:10 ness-pg-embedded: prostgresql helper.
29:10 slice: effective off-heap memory helper tool instead of ByteBuffers.
32:20 paranamer: named params in java from bytecode.
34:00 sshj: ssh client.
35:00 sshd-core: ssh daemon.
36:50 jline2: emacs style CLI helper.
38:00 zt-exec: starting processes conveniently.
39:30 jBcrypt: password hashing easily.
40:50 joda-money: helper for working with amounts of money.
42:10 jnr-ffi: JNI helper.
43:30 sqlite-jdbc: jdbc driver for sqlite.
44:50 java-classmate: generics parameter type discoverer.
46:20 jackson-module-afterburner: speeds up Jackson.
47:30 jackson-dataformat-yaml: YAML support for Jackson.
48:20 unix4j: command line tools from Java, like grep.
49:40 parboiled: parser generator library.
51:45 MVEL: simple brebuilt expression language.
52:40 typesafe-config: tool for reading configs.

Comments

Popular posts from this blog

Client's transaction aborted

I've met the above error message using a Wicket 1.2 / EJB3 intranet application under Glassfish v2 . Here is the more particular head of the stack trace: javax.ejb.TransactionRolledbackLocalException: Client's transaction aborted at com.sun.ejb.containers.BaseContainer.useClientTx(BaseContainer.java:3394) at com.sun.ejb.containers.BaseContainer.preInvokeTx(BaseContainer.java:3274) at com.sun.ejb.containers.BaseContainer.preInvoke(BaseContainer.java:1244) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:195) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:127) This exception raised on the integration server sometimes, randomly, for simple page fetch operations. After pressing reload on the browser, the operation was usually successful. I couldn't reproduce the failure on the local machine where I regularly restart the app server and...

jxl.log

In an intranet production environment we have running a Glassfish v2 appserver with several J2EE applications which all use JexcelApi , a.k.a JXL, which is an open source library for accessing, generating or manipulating Microsoft Excel documents. We use version 2.6.3 of JXL because it's the recent one in the Maven repository which we use, however, at the official JXL site there are newer versions. Additionally we have log4j and Java Commons Logging (JCL), ignoring Glassfish's JSR-47 Java Util Logging (JUL) facility. Application #1 uses purely log4j and gets its log4j.xml config from a custom location. Application #2 runs Java Commons Logging with no explicite configuration file given, so JCL uses the default JUL facility of the appserver. Application #1 had been running for a long time without problems but when we installed #2 we realized that a jxl.log file had been created in the glassfish/domain/domain1/config directory and it's rapidly growing. As it happens, we ...

Standup

Recently I was asked if it makes sense to do standups. Is it just a formal waste of time? Wouldn't it be more useful to spend the same amount of time by actual work? This is how our standup looks like, this is how the work would look like without it according to me and this is why I think it's worth doing standups: Standup optionally starts with a half-minute long announcement by the Scrum Master if somebody is missing and when will be this person available again. Without standup:  We could check out this information from a well-prepared shared calendar but unexpected lates or illnesses which are missing from the calendar would require a little bit more communication and irrelevant discussion during the day. It would cause some delay for sure. Then we look at the burn-down chart of the sprint and to the status of the latest nightly build. Is it stable, what about automated tests which were run last night? We make a common standpoint in one minute which is clear a...