Avatar

Organizations

  • Signing Git Commits

    I recently had a discussion with two fellow engineers about secure coding practices. After the discussion I realized that I am neglecting one of the most important practices: signing my commits.

    There are tons of articles on the internet explaining why and how. These are my notes on the subject that I decided to publish.

    These notes actually use literate programming so they are a mix of notes and code you can actually use via org-mode. You can find the actual notes file here.

    security git gpg ssh Created Wed, 02 Apr 2025 00:00:00 +0000
  • Intro

    A couple of weeks ago I came across Roberto Carratalla’s blog post on Function calling on OpenShift AI. At the time I was preparing for RedHat Summit Connect Zurich 2025 where I was meant to run a workshop on Quarkus and Langchain4j with Kyra Goud, Dimitris Andreadis and Codrin Bucur. We had an issue however, related to enabling functions on OpenShift AI.

    Roberto pointed us to the blog post, but I couldn’t spot what I was doing wrong. So, I decided to port the examples in the blog post to Java to make sure that I was comparing apples to apples.

    java quarkus langchain4j ai Created Fri, 14 Feb 2025 00:00:00 +0200
  • Introduction

    This year I decided to put some personal time in learning reactjs. While I enjoy using Javascript for the frontend, I’d say that it’s not the language of choice for me for backend use. I don’t have anything against nodejs, but I prefer use java frameworks, which is the focus of my day job. So, I wanted to combine reactjs with Quarkus. A combination that just became more fun with the Quinoa. Quinoa allows users to use their favorite javascript framework with Quarkus with no additional configuration. On top of that it allows development of both backend and fronted from via the Quarkus dev mode. Last but not least it allows for native compilation that produces a single binary containing both fronted and backend.

    quarkus quinoa keycloak react Created Mon, 17 Oct 2022 14:36:00 +0300
  • Introduction

    Kubernetes is around for almost 7 years now! Ever since the beggining there have been efforts to make consuming / binding to services simpler. And while discovering the actual service is not so much of an issue (if you employ a set of conventions), getting the credentials etc is slightly trickier.

    The Service Catalog has been an effort that promised to simplify provisioning and binding to services, but it seems that it has lost its momentum. The lack of uniformity between providers, the differences in how each service communicated the binding information and the fact that people tend to favor operators for provisioning services made it pretty hard to use in practice.

    java quarkus kubernetes Created Mon, 29 Nov 2021 17:56:00 +0200
  • Intro

    I used to be pretty vocal about things I work on. I used to write blogs, give conference talks or occasionally create short vlog kind of videos. If there is one topic I’ve completely missed, that is sundrio.

    So, what is sundrio ?

    sundrio is a code generation toolkit for generating code that no one wants to write by hand and everyone enjoys using. Besides the code generation frameworks, it also comes with modules (they are actually framework applications) for generating things like:

    sundrio Created Thu, 05 Aug 2021 09:19:00 +0300
  • Prologue

    ap4k is a collection of java annotations and processors for generating, customizing and testing kubernetes and openshift manifests.

    The idea of using java annotations for customizing kubernetes and openshift manifests is not something entirely new. In 2015 fabric8 provided an artifact called `kubernetes-generator` (not to be confused with other generators under the fabric8 umbrella) that allowed developers to hook into the compilation process code that customized these manifests. The way the code was hooked into the compilation processors was via java annotations. The idea was nice but did required developers to write actual code, and thus was soon abandoned as in favor of the fabric8-maven-plugin which was rewritten at the same time by Rolland Huss.

    java kubernetes openshift dekorate Created Mon, 07 Jan 2019 17:39:00 +0200
  • Prologue

    As I am approaching my 40s its becoming harder and harder to get really excited with a new framework. There are of course some exception to this rule and micronaut is such an exception. I won’t get into details here, but in many ways I feel that micronaut is a framework I would like to have written myself…

    So, this post is going to be a first look at micronaut. It will include:

    java micronaut Created Thu, 25 Oct 2018 14:39:00 +0300
  • Prologue

    In some previous blog post, I designed and implemented Cellar (a small clustering engine for Apache Karaf powered by Hazelcast). Since then Cellar grew in features and eventually was accepted inside Karaf as a subproject.

    This post will provide a brief description of Cellar as it is today.

    Cellar Overview

    Cellar is designed so that it can provide Karaf the following high level features

    • Discovery
      • Multicast
      • Unicast
    • Cluster Group Management
      • Node Grouping
    • Distributed Configuration Admin
      • per Group distributed configuration data
      • event driven distributed / local bridge
    • Distributed Features Service
      • per Group distributed features/repos info
      • event driven distributed / local bridge
    • Provisioning Tools
      • Shell commands for cluster provisioning

    The core concept behind cellar is that each node can be a part of one ore more groups, that provide the node distributed memory for keeping data (e.g. configuration, features information, other) and a topic which is used to exchange events with the rest group members.

    java osgi karaf Created Sat, 07 May 2011 00:00:00 +0300
  • OSGi in the clouds

    The last couple of years OSGi and Cloud Computing are two buzz words, that you don’t see go hand in hand that often. JClouds is going to change that, since 1.0.0 release is OSGi ready and it also provide direct integration with Apache Karaf.

    jclouds in the Karaf

    The last couple of weeks I have been working with the jclouds team in order to improve the OSGification of jclouds and also to provide integration with Apache Karaf. I will not go into much detail in this post, since there is a [[wiki. I will add however a small demo that shows how easy it is.

    java osgi karaf Created Sat, 07 May 2011 00:00:00 +0300
  • Presented on OSGi and Apache Karaf on Java Hellenic User Group.

    It was a great event with very interesting presentations. The full list of presentations can be found here.

    Regarding my presentation, I was a bit nervous at first, since I hadn’t practiced my “presentation” skills for a while, but things got better as time went by. I’ve had the chance to meet a lot of interesting people and discuss about OSGi, Apache Karaf & Apache ServiceMix. The slides of the presentation can be found at: Slide Share.

    java osgi karaf Created Tue, 19 Apr 2011 00:00:00 +0300
  • EDIT: The project “cellar” has been upgraded with a lot new features, which are not described by this post. A new post will be added soon.

    Prologue

    I have been playing a lot with Hazelcast lately, especially pairing it with Karaf. If you haven’t done already you can read my previous post on using Hazelcast on Karaf.

    In this post I am going to take things one step further and use Hazelcast to build a simple clustering engine on Karaf.

    java osgi karaf hazecast Created Fri, 11 Mar 2011 00:00:00 +0200
  • Prologue

    The last months Hazelcast caught my attention. I first saw the JIRA of the camel-hazelcast component, then I read about it, I run some examples and eventually I fell in love with it.

    If you are not already familiar with it, Hazelcast is an opensource clustering platform, which provdies a lot of features such as:

    • Auto discovery
    • Distributed Collection
    • Transactions
    • Data Partitioning

    You can visit the Hazelcast Documentation for more information. In this blog post I will show how to run hazelcast on Apache Karaf or Apache ServiceMix and I will provide an example application that creates a hazelcast instance, deploys the hazelcast monitoring web application and adds a couple of shell commands on Apache Karaf.

    java osgi karaf hazelcast Created Mon, 28 Feb 2011 00:00:00 +0200
  • Prologue

    Karaf 2.1.0 has been just released! Among other new features, it includes a major revamp in the JAAS module support:

    • Encryption support
    • Database Login Module
    • Role Policies

    This post will use all 3 features, in order to create a secured Wicket application on Karaf, using Karaf’s JAAS modules and Wicket’s auth-roles module.

    Introduction

    The application that we are going to build is a simple wicket application. It will be deployed on Karaf and the user credentials will be stored in a mysql database. For encrypting the password we will use Karaf’s Jasypt encryption service implementation, to encrypt passwords using MD5 algorithm in hexadecimal format.

    java osgi jaas security Created Sat, 25 Sep 2010 00:00:00 +0300
  • EDIT: Hibernate is now OSGi ready so most of those stuff are now completely outdated.

    The full source for this post has moved to github under my blog project on branch: wicket-spring-3-jpa2-hibernate-osgi-application-on-apache-karaf.

    Prologue

    Recently I attempted to modify an existing crud web application for OSGi deployment. During the process I encountered a lot of issues such as

    Lack of OSGi bundles. Troubles wiring the tiers of the application together. Issues on the OSGi container configuration. Lack of detailed examples on the web. So, I decided to create such a guide & provide full source for a working example (A very simple person crud application).

    java osgi karaf wicket spring Created Mon, 12 Jul 2010 00:00:00 +0300
  • EDIT: I am more than happy that this post is now completely obsolete. Hibernate is now OSGi ready, Yay!

    Prologue

    I was trying to migrate an application that uses JPA 2.0 / Hibernate to OSGi. I found out that hibernate does not provide OSGi bundles. There are some Hibernate bundles provided in the Spring Enterprise Bundle repository, however they are none available for Hibernate 3.5.x which implements JPA 2.0. So I decided to create them myself and share the experience with you.

    java osgi hibernate Created Sat, 10 Jul 2010 00:00:00 +0300