Programming Languages

New C++ features in GCC 10

New C++ features in GCC 10

The GNU Compiler Collection (GCC) 10.1 was released in May 2020. Like every other GCC release, this version brought many additions, improvements, bug fixes, and new features. Fedora 32 already ships GCC 10 as the system compiler, but it’s also possible to try GCC 10 on other platforms (see godbolt.org, for example). Red Hat Enterprise Linux (RHEL) users will get GCC 10 in the Red Hat Developer Toolset (RHEL 7), or the Red Hat GCC Toolset (RHEL 8).

Continue reading New C++ features in GCC 10

Share
Set up continuous integration for .NET Core with OpenShift Pipelines

Set up continuous integration for .NET Core with OpenShift Pipelines

Have you ever wanted to set up continuous integration (CI) for .NET Core in a cloud-native way, but you didn’t know where to start? This article provides an overview, examples, and suggestions for developers who want to get started setting up a functioning cloud-native CI system for .NET Core.

We will use the new Red Hat OpenShift Pipelines feature to implement .NET Core CI. OpenShift Pipelines are based on the open source Tekton project. OpenShift Pipelines provide a cloud-native way to define a pipeline to build, test, deploy, and roll out your applications in a continuous integration workflow.

In this article, you will learn how to:

  1. Set up a simple .NET Core application.
  2. Install OpenShift Pipelines on Red Hat OpenShift.
  3. Create a simple pipeline manually.
  4. Create a Source-to-Image (S2I)-based pipeline.

Continue reading “Set up continuous integration for .NET Core with OpenShift Pipelines”

Share
Troubleshooting user task errors in Red Hat Process Automation Manager and Red Hat JBoss BPM Suite

Troubleshooting user task errors in Red Hat Process Automation Manager and Red Hat JBoss BPM Suite

I’ve been around Red Hat JBoss BPM Suite (jBPM) and Red Hat Process Automation Manager (RHPAM) for many years. Over that time, I’ve learned a lot about the lesser-known aspects of this business process management engine.

If you are like most people, you might believe that user tasks are trivial, and learning about their details is unnecessary. Then, one day, you will find yourself troubleshooting an error like this one:

User '[User:'admin']' was unable to execution operation 'Start' on task id 287271 due to a no 'current status' match.

Receiving one too many similar error messages led me to learn everything that I know about user tasks, and I have decided to share my experience.

User tasks are a vital part of any business process management engine, jBPM included. Their behavior is defined by the OASIS Web Services—Human Task Specification, which has been fully adopted by Business Process Model and Notation (BPMN) 2.0—the standard for business processes diagrams. The spec defines two exceptionally important things that I will discuss in this article: The user task lifecycle and task access control. Without further ado, let’s jump right in.

Note: These troubleshooting tips are applicable to Red Hat JBoss BPM Suite 6.2 and above and Red Hat Process Automation Manager 7.

Continue reading “Troubleshooting user task errors in Red Hat Process Automation Manager and Red Hat JBoss BPM Suite”

Share
Migrating from Fabric8 Maven Plugin to Eclipse JKube 1.0.0

Migrating from Fabric8 Maven Plugin to Eclipse JKube 1.0.0

The recent release of Eclipse JKube 1.0.0 means that the Fabric8 Maven Plugin is no longer supported. If you are currently using the Fabric8 Maven Plugin, this article provides instructions for migrating to JKube instead. I will also explain the relationship between Eclipse JKube and the Fabric8 Maven Plugin (they’re the same thing) and introduce the highlights of the new Eclipse JKube 1.0.0 release. These migration instructions are for developers working on the Kubernetes and Red Hat OpenShift platforms.

Eclipse JKube is the Fabric8 Maven Plugin

Eclipse JKube and the Fabric8 Maven Plugin are one and the same. Eclipse JKube was first released in 2014 under the name of Fabric8 Maven Plugin. The development team changed the name when we pre-released Eclipse JKube 0.1.0 in December 2019. For more about the name change, see my recent introduction to Eclipse JKube. This article focuses on the migration path to JKube 1.0.0.

Continue reading “Migrating from Fabric8 Maven Plugin to Eclipse JKube 1.0.0”

Share
New language support features in Apache Camel VS Code extension 0.0.27

New language support features in Apache Camel VS Code extension 0.0.27

In this article, I share several new language support features in the recently released Language Support for Apache Camel VS Code extension 0.0.27. Before I discuss these improvements, please note that updates to the VS Code extension are available in other IDEs that support the Camel Language Server, including Eclipse IDE, Eclipse Che, and more. It is simply easier to focus on one IDE for my demonstrations, so I’ve chosen VS Code.

Note: Apache Camel is a versatile open source integration framework based on known enterprise integration patterns.

Continue reading “New language support features in Apache Camel VS Code extension 0.0.27”

Share
Using OpenAPI with .NET Core

Using OpenAPI with .NET Core

In this article, we’ll look at using OpenAPI with .NET Core. OpenAPI is a specification for describing RESTful APIs. First, I’ll show you how to use OpenAPI to describe the APIs provided by an ASP.NET Core service. Then, we’ll use the API description to generate a strongly-typed client to use the web service with C#.

Writing OpenAPI descriptions

Developers use the OpenAPI specification to describe RESTful APIs. We can then use OpenAPI descriptions to generate a strongly-typed client library that is capable of accessing the APIs.

Note: Swagger is sometimes used synonymously with OpenAPI. It refers to a widely used toolset for working with the OpenAPI specification.

Continue reading “Using OpenAPI with .NET Core”

Share
Deploying serverless Node.js applications on Red Hat OpenShift, Part 1

Deploying serverless Node.js applications on Red Hat OpenShift, Part 1

Red Hat OpenShift Serverless recently became GA, and with it came new options for application deployment. This article introduces one of those new options, Knative Serving. I provide an overview of OpenShift Serverless and Knative Serving, then show you how to deploy a Node.js application as a Knative Serving service.

What is OpenShift Serverless?

According to the OpenShift Serverless GA release:

OpenShift Serverless enables developers to build what they want, when they want, with whatever tools and languages they need. Developers can quickly get their applications up and deployed using serverless compute, and they won’t have to build and maintain larger container images to do so.

OpenShift Serverless is based on the Knative open source Kubernetes serverless project. While it has a few different parts, we will focus on deploying a serverless Node.js application as a Knative Serving service.

Continue reading “Deploying serverless Node.js applications on Red Hat OpenShift, Part 1”

Share
5 tips for developing Kubernetes Operators with the new Operator SDK

5 tips for developing Kubernetes Operators with the new Operator SDK

Kubernetes Operators are all the rage this season, and the fame is well deserved. Operators are evolving from being used primarily by technical-infrastructure gurus to becoming more mainstream, Kubernetes-native tools for managing complex applications. Kubernetes Operators today are important for cluster administrators and ISV providers, and also for custom applications developed in house. They provide the base for a standardized operational model that is similar to what cloud providers offer. Operators also open the door to fully portable workloads and services on Kubernetes.

The new Kubernetes Operator Framework is an open source toolkit that lets you manage Kubernetes Operators in an effective, automated, and scalable way. The Operator Framework consists of three components: the Operator SDK, the Operator Lifecycle Manager, and OperatorHub. In this article, I introduce tips and tricks for working with the Operator SDK. The Operator SDK 1.0.0 release shipped in mid-August, so it’s a great time to have a look at it.

Continue reading “5 tips for developing Kubernetes Operators with the new Operator SDK”

Share
Quarkus and Jakarta EE: Together, or not?

Quarkus and Jakarta EE: Together, or not?

In this article, I answer a question that I have seen asked on various forums: Will Quarkus be compatible with Jakarta EE? To understand our answer to that question, it is helpful to know the history of Quarkus and what we’re trying to achieve with it. So, please indulge me while I lay that groundwork.

A short history of Quarkus and Java EE

When Emmanuel Bernard, Jason Greene, Bob McWhirter, and I first discussed kicking off the ThornFly.x proof of concept, which would later become Quarkus, we had conversations about where Java EE (now Jakarta EE) would eventually fit. I think we all agreed that we already had the best open source implementation of Java EE in the form of WildFly and Red Hat JBoss Enterprise Application Platform (JBoss EAP). Creating yet another addition to this space seemed confusing at best. At worst, we feared that it would split our engineering and open source community efforts.

Continue reading “Quarkus and Jakarta EE: Together, or not?”

Share
How to run Red Hat CodeReady Containers on Windows 10 Enterprise

How to run Red Hat CodeReady Containers on Windows 10 Enterprise

Red Hat CodeReady Containers allows you to spin up a small Red Hat OpenShift cluster on your local PC, with the need for a server, a cloud, or a team of operations people. For developers who want to get started immediately with cloud-native development, containers, and Kubernetes (as well as OpenShift), it’s a simple and slick tool. It runs on macOS, Linux, and all versions of Windows 10.

Except for Windows 10 Enterprise.

Which I painfully learned.

Because I lazily didn’t pay attention to the documentation.

OK, so I’m the only developer who glosses over documentation. Fortunately for you, I struggled and managed to get CRC running on my Windows 10 Enterprise notebook computer, and this article explains what is involved to get it working. So, in a sense, you’re welcome that I’m lazy.

Continue reading “How to run Red Hat CodeReady Containers on Windows 10 Enterprise”

Share