Searching for available install packages on Debian / Raspbian / Ubuntu (Installing Java on a Raspberry Pi Zero)

On Linux distros that use apt package manager, you can search for packages by name using:

sudo apt search package-name

I’m looking to install a supported version of OpenJDK on a Raspberry Pi Zero, which has significantly less resources than a regular Pi and I believe is also an older ARM cpu version than current Pi 4 and 5.

Using ‘apt search’ for openjdk shows a number of 7, 8, 11 and 17 candidates, and also versions compiled specifically for the Pi Zero:

openjdk-17-jre-zero/oldstable-security 17.0.11+9-1~deb11u1 arm64
Alternative JVM for OpenJDK, using Zero

Configuring Java version in a Maven based app

There’s a couple of different ways to configure the Java version for an app in your Maven pom.xml file.

The simplest is with the following properties:

<properties>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
</properties>

If you’re configuring a Spring Boot app with Maven, you can also use this single property (only works for a Spring Boot app using the starter parent spring-boot-starter-parent) to override the Spring Boot default:

<properties>
<java.version>17</java.version>
</properties>

VMWare Fusion Pro for MacOS and Workstation Pro for Windows now free for personal use

Following Broadcom’s buyout of VMWare, many home users of virtualization software such as VMWare’s ESXi were disappointed that the free personal use was discontinued.

News today however is more promising: from today you can download Fusion Pro for MacOS and Workstation Pro for Windows free for personal use. You need to sign up for an account at support.broadcom.com and then search for either product to download. More details here.

Deploying a Docker container to AWS Elastic Beanstalk

In my previous post, I looked at using the EB cli to deploy a Spring Boot app to Beanstalk. If you have an app that you have packaged in a Docker container, you can prepare this for deployment to Beanstalk using the EB cli command:

$ eb init -p docker application-name

This is described in the docs here.

This command inits the app for deployment, creating a default .elasticbeanstalk/config.yml file that looks like this:

branch-defaults:
default:
environment: null
group_suffix: null
global:
application_name: beanstalk-docker-with-mounted-volume
branch: null
default_ec2_keyname: null
default_platform: Docker
default_region: us-west-2
include_git_submodules: true
instance_profile: null
platform_name: null
platform_version: null
profile: null
repository: null
sc: null
workspace_type: Application

Next create a Beanstalk environment for deploying your app:

$ eb create environment-name

This will take a few minutes on your first deploy as it provisions everything required for running your app on Beanstalk, including an Auto Scaling Group and an EC2 instance.