It is often expected of a DevOps team to also take security into consideration when delivering software. Often however, this does not get the attention it deserves. In this blog post I’ll describe some easy to use, CI/CD pipeline friendly, open source tools you can use to perform several checks […]
Java
Java Agent: Rewrite Java code at runtime using Javassist
You might want to change the behavior of a Java application at runtime without having to alter the original sources and recompile them. This can be done by using a Java Agent. Java Agents are used by several products. Dynatrace uses for example a Java Agent to collect data from inside […]
Jenkins Pipeline: SonarQube and the OWASP Dependency-Check
The OWASP Foundation plays an important role in helping to improve security of software worldwide. They have created a popular and well-known awareness document called the ‘OWASP Top 10‘. This document lists the following risk: using components with known vulnerabilities. Software nowadays can be quite complex consisting of many direct and […]
Quarkus – Supersonic Subatomic Java, trying out Quarkus guide “Quarkus – Kubernetes extension” (part 3)
In this article, you can read more about the Quarkus code guide I tried out, related to the following topic: The ability to automatically generate Kubernetes resources by Quarkus The guide covers generating and deploying Kubernetes resources based on sane defaults and user supplied configuration. In this article, I will […]
Quarkus – Supersonic Subatomic Java, trying out Quarkus guide “Quarkus – Kubernetes extension” (part 2)
In this article, you can read more about the Quarkus code guide I tried out, related to the following topic: The ability to automatically generate Kubernetes resources by Quarkus The guide covers generating and deploying Kubernetes resources based on sane defaults and user supplied configuration. In this article, I will […]
Quarkus – Supersonic Subatomic Java, trying out Quarkus guide “Quarkus – Kubernetes extension” (part 1)
In this article, you can read more about the Quarkus code guide I tried out, related to the following topic: The ability to automatically generate Kubernetes resources by Quarkus The guide covers generating and deploying Kubernetes resources based on sane defaults and user supplied configuration. In this article, I will […]
Jenkins: Building Java and deploying to Kubernetes
Kubernetes is a popular platform to run and manage containerized applications. A CI/CD solution is often needed but not always provided. You might need to set this up for yourself. In this blog post I’ll provide a minimal end-to-end solution for Java applications. This starts with a commit in source […]
My Steps for Getting Started with Java Development on Windows
In this article a brief overview of my steps to set up an environment on my Windows 10 laptop for doing Java programming. If you follow these steps, you should be up and running with coding, building, testing and packaging Java applications on your laptop in some 20 minutes. The […]
Quarkus – Supersonic Subatomic Java, trying out some Quarkus code guides (part2)
In this article, you can read more about a Quarkus code guide I tried out, related to the following topic: Packaging the native executable in a container In a next article, you can read more about another Quarkus code guide I tried out, related to the following topic: The ability […]
Quarkus – Supersonic Subatomic Java, trying out some Quarkus code guides (part1)
In my previous article, I already shared with you the Quarkus code guide “Quarkus – Creating Your First Application”, I tried out, including the hot deployment with background compilation. [ https://technology.amis.nl/2020/08/21/using-vagrant-and-shell-scripts-to-further-automate-setting-up-my-quarkus-demo-environment-from-scratch-and-trying-out-a-quarkus-code-guide/] In this article, you can read more about other Quarkus code guides I tried out, related to the following […]
Using Vagrant and shell scripts to further automate setting up my Quarkus demo environment from scratch and trying out a Quarkus code guide
In my previous article, I shared with you the steps I took, to set up a demo environment, so I could get started with Quarkus. [https://technology.amis.nl/2020/08/17/quarkus-supersonic-subatomic-java-setting-up-a-demo-environment-using-vagrant-and-oracle-virtualbox] In this article, you can read more about the steps I took to further automate setting up my demo environment and the Quarkus code […]
Quarkus – Supersonic Subatomic Java, setting up a demo environment using Vagrant and Oracle VirtualBox
In November 2019, I attended Devoxx Belgium together with other AMIS colleagues. The yearly gathering of over 3000 Java developers (numbers provided by Devoxx website) were Java and software development are the core themes. At Devoxx, among other things, I learned about Quarkus and wanted to know more about it. […]
Spring: Blocking vs non-blocking: R2DBC vs JDBC and WebFlux vs Web MVC
Spring Framework version 5, released in Sept 2017, introduced Spring WebFlux. A fully reactive stack. In Dec 2019 Spring Data R2DBC was released, an incubator to integrate relational databases using a reactive driver. In this blog post I’ll show that at high concurrency, WebFlux and R2DBC perform better. They have […]
The size of Docker images containing OpenJDK 11.0.6
When running Java applications in containers, you need to be careful with your resources. If you’re not careful with layering your images (for example using Google’s Jib), you can quickly get into disk-space issues, especially when your base image and/or application gets updated regularly. One of the ways you can save […]
Apache Camel + Spring Boot: Different components to expose HTTP endpoints
Apache Camel is an open source integration framework that allows you to integrate technologically diverse systems using a large library of components. A common use-case is to service HTTP based endpoints. Those of course come in several flavors and there is quite a choice in components to use. In this blog post […]
Java Microservices: What do you need to tweak to optimize throughput and response times?
Performance tuning usually goes something like followed: a performance problem occurs an experienced person knows what is probably the cause and suggests a specific change baseline performance is determined, the change is applied, and performance is measured again if the performance has improved compared to the baseline, keep the change, […]
The state of Java [developers] – reflections on Devoxx 2019
I attended Devoxx Belgium – November 2019. The yearly gathering of over 3000 Java developers (numbers provided by Devoxx website). Maybe not all of them Java and perhaps some not even developers. But by and large … Java and software development are the core themes. This conference has taken the […]
Oracle Database: Write arbitrary log messages to the syslog from PL/SQL
Syslog is a standard for message logging, often employed in *NIX environments. It allows separation of the software that generates messages, the system that stores them, and the software that reports and analyzes them. Each message is labeled with a facility code, indicating the software type generating the message, and assigned […]
Calling out from Java to JavaScript (with call back) – leveraging interoperability support of GraalVM
Interoperability from Java to JavaScript has been an objective for the Java community for quite a while. With Rhino and later Nashorn, two valiant attempts were made to add scripting interaction to the JDK and JVM. Now, with GraalVM, there is a better alternative for running JavaScript code from within […]
Microservice framework startup time on different JVMs (AOT and JIT)
When developing microservices, a fast startup time is useful. It can for example reduce the amount of time a rolling upgrade of instances takes and reduce build time thus shortening development cycles. When running your code using a ‘serverless’ framework such as for example Knative or FnProject, scaling and getting […]
Apache Camel and Spring Boot: Calling multiple services in parallel and merging results
Sometimes you have multiple services you want to call at the same time and merge their results when they’re all in (or after a timeout). In Enterprise Integration Patterns (EIP) this is a Splitter followed by an Aggregator. I wanted to try and implement this in Spring Boot using Apache Camel so I […]
A transparent Spring Boot REST service to expose Oracle Database logic
Sometimes you have an Oracle database which contains a lot of logic and you want to expose specific logic as REST services. There are a variety of ways to do this. The most obvious one to consider might be Oracle REST Data Services. ORDS is quite powerful and for example supports […]
Performance! 3 reasons to stick to Java 8 for the moment
It is a smart thing to move to newer versions of Java! Support such as security updates and new features are just two of them but there are many more. Performance might be a reason to stick to Java 8 though. In this blog post I’ll show some results of […]
Devoxx Belgium 2018, From Developers For Developers
Last November, I attended the Devoxx Belgium 2018 event. In this article I gathered some practical information about the event, and the sessions that were held. Perhaps this gives you more insight in what you can expect from such an event and it may help you in deciding if, as […]
Monitoring Spring Boot applications with Prometheus and Grafana
In order to compare the performance of different JDKs for reactive Spring Boot services, I made a setup in which a Spring Boot application is wrapped in a Docker container. This makes it easy to create different containers for different JDKs with the same Spring Boot application running in it. […]
Running Reactive Spring Boot on GraalVM in Docker
GraalVM is an open source polyglot VM which makes it easy to mix and match different languages such as Java, Javascript and R. It has the ability (with some restrictions) to compile code to native executables. This of course offers great performance benefits. Recently, GraalVM Docker files and images have […]
Running Spring Tool Suite and other GUI applications from a Docker container
Running an application within a Docker container helps in isolating the application from the host OS. Running GUI applications like for example an IDE from a Docker container, can be challenging. I’ll explain several of the issues you might encounter and how to solve them. For this I will use […]
Automate the installation of Oracle JDK 8 and 10 on RHEL and Debian derivatives
Automating the Oracle JDK installation on RHEL derivatives (such as CentOS, Oracle Linux) and Debian derivatives (such as Mint, Ubuntu) differs. This is due to different package managers and repositories. In this blog I’ll provide quick instructions on how to automate the installation of Oracle JDK 8 and 10 on […]
Oracle Service Bus 12.2.1.1.0: Service Exploring via WebLogic Server MBeans with JMX
In a previous article I talked about an OSBServiceExplorer tool to explore the services (proxy and business) within the OSB via WebLogic Server MBeans with JMX. The code mentioned in that article was based on Oracle Service Bus 11.1.1.7 (11g). In the meantime the OSB world has changed (for example […]
Application Container Cloud Service (ACCS): Using the Application Cache from a Spring Boot application
Spring Boot allows you to quickly develop microservices. Application Container Cloud Service (ACCS) allows you to easily host Spring Boot applications. Oracle provides an Application Cache based on Coherence which you can use from applications deployed to ACCS. In order to use the Application Cache from Spring Boot, Oracle provides […]
Java: How to fix Spring @Autowired annotation not working issues
Spring is a powerful framework, but it requires some skill to use efficiently. When I started working with Spring a while ago (actually Spring Boot to develop microservices) I encountered some challenges related to dependency injection and using the @Autowired annotation. In this blog I’ll explain the issues and possible […]
Getting started with Spring Boot microservices. Why and how.
In order to quickly develop microservices, Spring Boot is a common choice. Why should I be interested in Spring Boot? In this blog post I’ll give you some reasons why looking at Spring Boot is interesting and give some samples on how to get started quickly. I’ll shortly talk about […]
Handle HTTP PATCH request with Java Servlet
The Java Servlet specification does not include handling a PATCH request. That means that class javax.servlet.http.HttpServlet does not have a doPatch() method, unlike doGet, doPost, doPut etc. That does not mean that a Java Servlet can not handle PATCH requests. It is quite simple to make it do that. The […]
JSON manipulation in Java 9 JShell
In this article I will demonstrate how we can work with JSON based data – for analysis, exploration, cleansing and processing – in JShell, much like we do in Python. I work with a JSON document with entries for all sessions at the Oracle OpenWorld 2017 conference (https://raw.githubusercontent.com/lucasjellema/scrape-oow17/master/oow2017-sessions-catalog.json) The Java […]
Java 9 – First baby steps with Modules and jlink
In a recent article, I created an isolated Docker Container as Java 9 R&D environment: https://technology.amis.nl/2017/10/11/quick-and-clean-start-with-java-9-running-docker-container-in-virtualbox-vm-on-windows-10-courtesy-of-vagrant/. In this article, I will use that environment to take few small steps with Java 9 – in particular with modules. Note:this story does not end well. I wanted to conclude with using jlink […]
Quick and clean start with Java 9–running Docker container in VirtualBox VM on Windows 10 courtesy of Vagrant
The messages from JavaOne 2017 were loud and clear. Some of these: Java 9 is here, the OpenJDK has all previously exclusive commercial features from the Oracle (fka SUN) JDK – this includes the Java Flight Recorder for real time monitoring/metrics gathering and analysis, Java 9 will be succeeded by […]
Smooth, easy, lightweight – Node.js and Express style REST API with Java SE
It is easy to be seduced by some of the attractive qualities of Node (aka Node.js) – the JavaScript technology that makes server side development fun again. Developing light weight applications that handle HTTP requests in a rapid, straightforward way with little overhead and no bloated infrastructure is easy as […]
Oracle Service Bus : disable / enable a proxy service via WebLogic Server MBeans with JMX
At a public sector organization in the Netherlands an OSB proxy service was (via JMS) reading messages from a WebLogic queue. These messages where then send to a back-end system. Every evening during a certain time period the back-end system was down. So therefor and also in case of planned […]
Apache Kafka Streams – Running Top-N Aggregation grouped by Dimension – from and to Kafka Topic
This article explains how to implement a streaming analytics application using Kafka Streams that performs a running Top N analysis on a Kafka Topic and produces the results to another Kafka Topic. Visualized, this looks like this: Two previous articles are relevant as reference: Getting Started with Kafka Streams – […]
Getting Started with Kafka Streams – building a streaming analytics Java application against a Kafka Topic
Kafka Streams is a light weight Java library for creating advanced streaming applications on top of Apache Kafka Topics. Kafka Streams provides easy to use constructs that allow quick and almost declarative composition by Java developers of streaming pipelines that do running aggregates, real time filtering, time windows, joining of […]