Java

Put all Maven dependency versions in properties

Put all Maven dependency versions in properties

Because security vulnerabilities in third-party software are so common, it is important to manage the versions of your dependencies and to be prepared to upgrade them quickly. For Maven projects, I recommend putting the versions of all your dependencies in the properties section of your pom.xml. Furthermore, for libraries which require multiple dependency entries in pom.xml, this allows you to ensure you use the same version for all of those dependencies.
Publishing a Java Servlet to Azure Website Using Maven

Publishing a Java Servlet to Azure Website Using Maven

This blog post shows how to publish a Java Servlet, encapsulated in a WAR file, to an Azure Web Site using FTP via Maven. The first step will be to generate a simple servlet using Maven: mvn archetype:generate -DgroupId=com.example -DartifactId=hello-world -DarchetypeArtifactId=maven-archetype-webapp This creates a simple, Hello World application in the hello-world directory. We can verify it works by running it in a local servlet container using the instructions found in Supporting mvn jetty:run in Maven applications.
Supporting mvn jetty:run in Maven applications

Supporting mvn jetty:run in Maven applications

When I’m writing a Java servlet using Maven, I find it convenient to be able to run the Java servlet in a local servlet container for testing purposes. This is very easy to do using the Jetty Maven plugin. To add the Jetty Maven plugin to your project, modify pom.xml as follows: <build> <plugins> <plugin> <groupId>org.eclipse.jetty</groupId> <artifactId>jetty-maven-plugin</artifactId> <version>9.2.0.M0</version> </plugin> ... </plugins> </build> You can then run your project in Jetty using the following command:
Work Email Statistics Through 2013-12-31

Work Email Statistics Through 2013-12-31

In a previous post, I noted that I have a copy of every single email I’ve sent or received at work since mid-2003. Here is the updated chart of the number of work emails I send and receive per year through December 31, 2013. Here’s the same data charted by month: This data was calculated by a simple Outlook PST parsing program I wrote called pststats.
Instrumenting a Java Web Application with JMX

Instrumenting a Java Web Application with JMX

Java Management Extensions (JMX) is a technology for managing and monitoring Java applications. JMX instructs application developers how to instrument their applications to expose metrics and management mechanisms, and instructs operations teams how to collect metrics and manage Java applications. JMX is ubiquitous: there are a large number of off-the-shelf commercial and open source tools which speak JMX. This article is intended for application developers to introduce JMX, to teach them how to create some simple metrics via JMX, and to encourage them to thoroughly instrument their applications with JMX.
Creating a Virtual Java RPM

Creating a Virtual Java RPM

Some RPMs (e.g. jpackage.org’s tomcat7-7.0.39-1.jpp6.noarch.rpm) express their dependency upon Java by requiring a RPM that provides capability java (as opposed to, for example, depending on the existence of a file /usr/bin/java). On CentOS, this capability is normally provided by the java-*-openjdk RPM. Therefore, if you execute # yum install tomcat7 on a clean install of CentOS, yum will install OpenJDK in addition to Tomcat 7. Some people prefer to run the Oracle JRE/JDK instead of OpenJDK.
Work Email Statistics

Work Email Statistics

I have a copy of every single email I’ve sent or received at work since mid-2003. Here is a chart of the number of work emails I send and receive per year.