GraalVM is a polyglot virtual machine that provides a shared runtime to execute applications written in multiple languages like Java, C, Python, and JavaScript. GraalVM also provides a Native Image Generator utility that allows you to compile Java code ahead-of-time (AOT) into a standalone executable, called a native image. A native image typically achieves faster startup time and smaller footprint. GraalVM and its native image generation is well suited to build native applications and command line interfaces (CLIs).

This post walks you through the main building blocks used to build a native application using GraalVM. The application is a rudimentary…


One of the many salient features of Java 11 is the ability to directly run a single file of Java source code without the need to compile the source code first. Complementing JShell, this feature helps in learning Java and in writing simple utility applications and CLIs.

Say you created a HelloWorld.java file that, you guessed it, prints “Hello World”:

public class HelloWorld {
public static void main (String... args) {
System.out.println("Hello World");
}
}

With JDK 11 installed, you can run this file using the “java” launcher:

java HelloWorld.java

The “java” launcher in JDK 11 has been updated to…


Photo by frank mckenna on Unsplash

As you may know, JDK 9 introduced a native module system to design and build applications from a host of individual, independent modules that communicate with each other over well defined public interfaces. Some of the advantages of using the Java module system are:

  • Strong encapsulation that promotes maintainability since the implementation details are hidden
  • Reliable configuration to allow modules to declare their dependencies and address some of the issues with the traditional classpath mechanism
  • Ability to build custom runtime images specific to an application
  • Improved platform integrity and better performance through faster startup time and reduced memory footprint
  • Indirect…


“Amante” 10 A 1983 Peterson designed Choate 48 sailboat photo D Ramey Logan

This article will walk you through the steps that can be used to install and setup a Spinnaker instance on Kubernetes that’s behind a corporate proxy. We will use Halyard on docker to manage our Spinnaker deployment.

For a super quick installation, you can use Spinnaker’s Helm chart

Prerequisites

Make sure to take care of these prerequisites before installing Spinnaker:

  • Docker 17.x with proxies configured (click here for OL setup)
  • A Kubernetes cluster (click here for OL setup)
  • Helm with RBAC enabled (click here for generic setup)

Install Halyard on Docker

Halyard is used to install and manage a Spinnaker deployment. In fact, all production…


Photo by chuttersnap on Unsplash

This article walks you through the steps required to install and configure Docker and Kubernetes on a bare metal or virtual machine running Oracle Linux (OL) 7.x that’s behind a corporate proxy.

Prerequisites

Make sure you meet these prerequisites:

  • OL 7.x using Unbreakable Enterprise Kernel Release 4 (UEK R4) or later
  • yum is configured to talk to your corporate proxy. For quick reference, you can edit “/etc/yum.conf” and add or update the proxy entry:
proxy=http://<proxy-host>:<proxy-port>

Install Docker Engine

Edit “/etc/yum.repos.d/public-yum-ol7.repo” and enable the “ol7_addons” channel. It’s a matter of setting the “enabled” option to “1” under “ol7_addons” section. …


At Oracle Commerce Cloud, we strive to build and equip our customers with powerful APIs and tools to manage their commerce sites. We’ve recently released a new set of APIs and tools that will allow our customers to create rules that can influence the order of product listings presented to shoppers. We call this “dynamic curation”. Let’s take a look at some use cases to see when you would want to use this feature:

  1. For shoppers who search on “iPhone,” top results should include a blended mixture of: (a) most viewed products like the latest iPhone models and (b) best…


You must have heard about the new kid on the block––Helidon from Oracle. It is an open source Java framework that enables one to write, among other things, lightweight microservices using functional and reactive programming paradigms. One can use Helidon’s simple yet powerful core reactive web server to quickly build cloud native microservices. And if you like writing applications using the 12 factor methodology, Helidon has you covered. Helidon’s config component provides multiple options to load and configure your app — from loading properties or YAML files to loading from external sources like Git. …


Antlr is a powerful tool that can be used to create formal languages. Vital to the formalization of a language are symbols and rules, also known as grammar. Defining custom grammar and generating the associated parsers and lexers is a straightforward process with Antlr. Antlr’s runtime enables tokenization of a given character stream and parsing of those tokens. It provides mechanisms to walk through the generated parse tree and apply custom logic. Let’s take this tool for a spin and create a custom grammar to query JSON. …


Photo by Joseph Chan on Unsplash

Introduction

Utilities like grep, awk and sed are very powerful command line tools to have in one’s arsenal when dealing with text search and text processing tasks. Having said that, I seldom use them since most times my favorite IDE gets the job done for me. On occasion, I google for grep, awk and sed commands or their respective manual pages to get the command and options right. …


Photo by Joshua Sortino on Unsplash

Introduction

Over the course of the last 11 months, we have seen two major releases of Java — Java 9 and Java 10. Come September, we will get yet another release in the form of Java 11, all thanks to the new 6 month release train. Each new release introduces exciting features to assist the modern Java developer. Let’s take some of these features for a spin and build an auto-updatable, self-contained command line interface.

The minimum viable feature-set for our CLI is defined as follows:

  • Display the current bitcoin price index by calling the free coin desk API
  • Check for…

Uday Tatiraju

Technologist, ML Practitioner, and Tech Lead at Oracle

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store