One of our customers is in the process of decommisioning their OpenShift v3.11 cluster. This cluster is currently still used for building customer specific base images. Over time quite a few elaborated pipeline builds (based on Jenkins) have been developed for that purpose.

The customer wanted me to migrate the existing pipeline builds on their v3.11 cluster to Tekton (aka OpenShift Pipeline) builds running on their new v4.9 cluster. This task turned out to be quite pesky. Tekton is a beast in many aspects.

weiterlesen...

Author:Markus Hansmair
Tags:CI/CD, Kubernetes, OpenShift
Categories:development, kubernetes, openshift

The documentation of software is an everyday business of a software developer and engineer. Especially for integration scenarios a diagram on the flow of a message through the system or the whole landscape is an essential illustration. Fortunately there are standardised messaging patterns which can be used. Unfortunately, however, there is no tool which can create such visualizations out of the box directly of source code. In this article we will have a look at Apache Camel and how it is possible to get a graphical representation of an integration route. We will also discuss about debugging it, as some tools have the feature to do this.

weiterlesen...

Author:Martin Kurz
Tags:integration, java, debugging
Categories:integration, development
A look insight Camel K

Today software often needs to be run in cloud environments. Newly developed software, especially microservices are developed with cloud readiness in mind.
But we not only have microservices in business environments, we also have integration software. This type of software is developed and designed to connect external services to internal ones.

weiterlesen...

Author:Andy Degenkolbe
Tags:Camel, Camel k, kubernetes, Openshift, knative
Categories:development

Some time ago, I started a project to create a Helm based operator for an OpenShift application. I used the Operator SDK to create the Helm operator. The Operator SDK documentation describes the parameters pretty good, and it contains a simple tutorial. it does not, however, describe the complete development cycle. This article aims to describe everything from creating the operator to the point where you can upload your operator to OperatorHub.io. We start with a basic Helm Chart. With this, you can install Nginx as a StatefulSet. You can find the source code in my github repo. Before we can start with creating an operator, we need to fulfill some prerequisites.

weiterlesen...

Author:Olaf Meyer
Tags:openshift, kubernetes, operator, olm
Categories:development

Last summer I watched the Red Hat master course about Kafka from Sébastien Blanc. The Kafka setup in Kubernetes presented in the course looked pretty easy. The Kafka client implementation for Java seemed to be easy as well. Furthermore, I wanted to use Kafka for a long time, so I got the idea to extend my Istio example. Each time a service is called, a message is sent to a topic. The service (implemented in Quarkus), as well as the Kafka cluster should be in an Istio Service Mesh and secured with mTLS. I found descriptions of Joel Takvorian that Kafka works with Istio, so I knew (or at least hoped) that my plan should work.

This article will describe the overall architecture of the example and which obstacles I encountered during deployment.

weiterlesen...

Author:Olaf Meyer
Tags:openshift, kubernetes, kafka, istio, kiali
Categories:development

Automatic integration tests as part of the development life cycle can save a lot of time and money. Not only when dealing with other service APIs or offering some, also if the application uses a database or other infrastructure services.

We at Consol made a lot of good experience to develop the integration tests as part of the life cycle from the beginning of a project. Therefor the Citrus framework is often a good choice to do it automated.

But there are other frameworks and libraries which can be useful. In this article, we’ll have a look at Testcontainers. By using a sample microservice, we will show how Testcontainers can be used and what chances it provides.

weiterlesen...

During a discussion with a customer, we talked about which steps are necessary to add an application to a services mesh. Which should be no big deal. Unfortunately, there is not a simple guideline how to do that for the Red Hat OpenShift Service Mesh. Furthermore, I was not sure how the requests for the application would look like in Jaeger. To clarify these points, I created a small application. Which I then deployed on OpenShift and added it to a service mesh control plane. This is the documentation of the steps that I have done.

weiterlesen...

Author:Olaf Meyer
Tags:openshift, kubernetes, istio, jaeger, kiali
Categories:development

During this year’s Red Hat Summit I had the chance to get a glimpse of the latest version of Kiali. This version had some nice features, like the traffic flow of the application graph during a time period (Graph replay). It also contains wizards to create destination rules and virtual services. This demo has struck my curiosity to get the hands on this Kiali version. One obstacle for me was that my Kiali is running in Red Hat OpenShift Service Mesh and is controlled by the Kiali operator. Currently, it is using version 1.12. The version that I wanted to try was the latest release version (1.17). The Red Hat OpenShift Service Mesh does not support this version. This article describes what we need to do in order to replace the Kiali version of an Red Hat OpenShift Service Mesh with the latest version of Kiali.

weiterlesen...

Author:Olaf Meyer
Tags:openshift, kubernetes, istio, kiali
Categories:development

Some time ago, I did a webinar about the RedHat Service Mesh, which is based on Istio. For this webinar, I prepared a demo application. Among other things, I wanted to show how to do the authentication with JWT token in general and, more specific, with Keycloak. This article will describe how to configure Keycloak. In the second article, I will show you what problems I encountered running the application in Istio and how I figured out what was wrong in my configuration. You can find the article here

weiterlesen...

Author:Olaf Meyer
Tags:openshift, kubernetes, istio, keycloak
Categories:development
Debugging Istio

In the article, I’m going to describe what we can do, if we configured our application to use Istio, but it is not working like intended. Originally, I wanted to give a detailed description what problems I encountered during the creation of my webinar and how I fixed them. However, I came to a point where this would be a very long one. I hope that you don’t mind that I shortened it and just describe which tools are available to debug the Istio configuration. In my previous article I described how to configure Keycloak for my webinar. So without further ado, let’s start.

weiterlesen...

Author:Olaf Meyer
Tags:openshift, kubernetes, istio, keycloak
Categories:development
Introduction to AWS CDK

AWS Cloud Development Kit (CDK) is a relatively new kid on the block. It is a tool for defining Infrastructure as Code (IaC) and is considered to be the future successor of AWS CloudFormation.

This article overviews the IaC approach, introduces a reader to the AWS CDK, shows what problems it aims to solve and presents a simple example application implemented with it.

weiterlesen...

Author:Alexander Ryndin
Tags:AWS, AWS-CDK, AWS-Lambda, Infrastructure-As-Code
Categories:development

GraphQL is a nice way to publish a highly customizable API. In combination with Spring Boot, which makes development really easy and offers features like database integration and security, you can quickly build your API service from scratch.

This is the second part of the series in which we will create a REST-Service based on Spring Boot which will be translated in a GraphQL Service in the 3rd part of this little series.

weiterlesen...

Author:Andy Degenkolbe
Tags:SpringBoot, GraphQL, API, API Transformation, Spring Security
Categories:development

GraphQL is a nice way to publish a highly customizable API. In combination with Spring Boot, which makes development really easy and offers features like database integration and security, you can quickly build your API service from scratch.
This is the start of a series from articles showing you the way to a Spring Boot powered REST-Service with an API running Spring Boot and Graphql.

weiterlesen...

Author:Andy Degenkolbe
Tags:SpringBoot, GraphQL, API, API Transformation
Categories:development

Under the name of “Managed Kubernetes for AWS”, or short EKS, Amazon offers its own dedicated solution for running Kubernetes upons its cloud platform. The way this is provided is quite interesting: While the Kubernetes Master Infrastructure is offered “as a service” (and also billed separately) the Kubernetes Worker Nodes are simply EC2 instances for which Amazon provides a special setup procedure. These now also offer the potential to use well known AWS features like Autoscaling for Kubernetes workloads.

However, manually setting up this infrastructure is still quite a complex process with multiple steps. To be able to quickly have an EKS Kubernetes Cluster up and running, and also to deploy a software project on it, we created a small helper project that offers the creation of a “turnkey ready” EKS cluster that can be quickly pulled up and also teared down after usage.

weiterlesen...

Author:Oliver Weise
Tags:Kubernetes, aws, eks, eksctl
Categories:development
oc patch unleashed

Recently, I stumbled on a situation where I wanted to add a couple of values to an OpenShift deployment configuration. Previously I had modified or added a single attribute in a yaml file with oc patch. So I started to wonder whether it is possible to update multiple attributes with oc patch as well. To get right to the result: Yes, it is possible. This article will show you which features oc patch and likewise kubectl patch really have, beside a simple modification of one attribute.

weiterlesen...

Author:Olaf Meyer
Tags:openshift, kubernetes
Categories:development

After some time, let’s move on to another topic around making OpenShift environments more developer friendly. This time we are going to look at what happens, when a system test actually failed, and how to enable developers to properly react.

weiterlesen...

Author:Oliver Weise
Tags:openshift
Categories:development

The license change to Java SE 8, as well as the new license for Java SE 9 and onwards lead to confusion within the Java community. Looking for information on the web, one finds results in the spectrum from “Is Java in Jepoardy?” to “Java is still free!”. The good news is: yes, Java is still free. The bad news: not necessarily Oracle’s Java distribution.

In this article, we discuss the situation revolving around Oracle’s license change and its consequences. For this, we need to understand how the Oracle JDK is connected to OpenJDK. Furthermore, we take a look at some alternatives to Oracle’s Java distribution and how divergence between the different distribution is avoided.

What you will need:

  • about 15-20 minutes of time

weiterlesen...

Author:Marco Bungart
Tags:java
Categories:development

Lambda is AWS’ realization of a serverless architecture. Instead of deploying instances and scaling them manually, developers deploy only their code and AWS executes the code. Different triggers for code executions can be defined, e.g. when a new event in an AWS Kinesis stream is published or when a REST endpoint is accessed.

Since AWS takes care of Lambda execution, the Lambda does automatically scale in and out to current needs. Coupled with its “pay only for what you use” pricing and the fact that lambda execution can scale to zero when no lambda is executed, AWS Lambda is an interesting technology.

weiterlesen...

Author:Marco Bungart
Tags:serverless, faas, aws, aws-lambda, java
Categories:development

The OpenShift command line interface is a very powerful tool which is quite useful for beginners and advanced user of OpenShift alike. Some of its features are not well documented or not documented at all. In this article I would like to shed some light on commands that I personally find useful and that are, from my observation, not widely in use. So without further ado, let’s start with the commands:

weiterlesen...

Author:Olaf Meyer
Tags:openshift
Categories:development

Our world is full of various processes: tracking of goods delivery, currencies trading, monitoring of server resources, hotel bookings, selling goods or services etc. Since these processes occur over time, they can be described by time series data.

Successful businesses always take advantage of their data by analyzing it and then making predictions (e.g. predicting volume of sales for the next month) and business decisions (e.g. if the volume of sales grows then additional goods need to delivered to a warehouse).

There are a number of technologies for analysing the time series data. This article gives an introduction to one of them which is called TimescaleDB which is an open source solution for time series data analysis based on battle-tested PostgreSQL DBMS.

weiterlesen...

Author:Alexander Ryndin
Tags:time series, timescale, postgres, postgresql, openshift
Categories:development

Let’s move on with this little series about how OpenShift environments may fall short in terms of developer experience.

Today we focus on the role that system tests have in an OpenShift infrastructure and what might possibly go wrong here testdata-wise.

weiterlesen...

Author:Oliver Weise
Tags:openshift
Categories:development
Sakuli v1.2.0 released!

_nowhere_ It’s about time for a new Sakuli release! Our latest release v1.2.0 is the first version to include a beta of Sakuli-UI, a web UI to help you develop and manage your tests.

The new release also brings a bunch of enhancements and bug-fixes, a detailed changelog is included in this post.

Once again, we want to say THANK YOU for the great support of our contributors, our valued supporting companies and of course ConSol!

weiterlesen...

In some OpenShift environments for building and delivering software we notice that the needs of developers, arguably a group of people who will have a great deal of contact with the platform, are not met as thoroughly as would have been possible.

Especially when it comes to software testing there is often much room for improvement. The usage of container platforms can improve testing techniques a lot but might also be a major blocker when it comes to the provided infrastructure. Good testing is already hard. Everything that makes it even harder, by forcing your developers into workarounds or compromises on testing quality will result in larger round trips, more testing effort, less valid testing, in short: wasted time.

So in this mini series of blog posts we will have a look into some possible fields of improvement and give recommendations on how to fix the respective situation.

Today we evaluate the fact, that some CI/CD setups for OpenShift may spoil the most simple type of testing a developer uses: Just running the software locally - in OpenShift.

weiterlesen...

Author:Oliver Weise
Tags:openshift
Categories:development
Arch Linux for Devs

This report is about the experience, I’ve made with Arch Linux as the operating system for a developers workstation. You’ll be introduced into the concepts of Arch Linux, followed by a introduction into the main tasks such as package installation and OS maintenance. At the end, I’ll discuss why I think that Arch Linux is a great OS for developers, and finish with a conclusion.

weiterlesen...

Docker Headless VNC Container 1.3.0 has been released today. The different Docker images contains a complete VNC based, headless UI environment for testautomation like Sakuli does or simply for web browsing and temporary work in a throw-away UI container. The functionality is pretty near to a VM based image, but can be started in seconds instead of minutes. Each Docker image has therefore installed the following components:

weiterlesen...

Author:Tobias Schneck
Tags:docker, openshift, kubernetes, continuous integration, testautomation
Categories:development

When you are developing software, you will most likely stumble upon situations where you must perform frequent, but minor, code changes. Changes that do not alter your software’s basic functionality, changes so simple that from a developer’s perspective are more like a different configuration for your code but are still a bit too complex to use a simple configuration file.

In this article I will show you how to use Apache FreeMarker to implement dynamic and complex configurations in Java projects that can be configured from outside the application.

weiterlesen...

Author:Jan Lipphaus
Tags:java, freemarker
Categories:development

Database communication is an essential part of many applications, when persistent data storage is required. May it be orders, customer data, product recommendations or product information, if persistent storage is in place, the data contains a certain business value. Therefore it’s important that your software handles your persistent storage the right way.

In this blog post you’ll learn how to test your database communication using Citrus.

weiterlesen...

Author:Sven Hettwer
Tags:citrus, integration-tests, test-automation, database, jdbc
Categories:development, citrus

There are a lot of articles that show how to monitor an OpenShift cluster (including the monitoring of Nodes and the underlying hardware) with Prometheus running in the same OpenShift cluster. This article however is based on a different scenario: You are responsible for an application on an OpenShift cluster and want to monitor just this application, but you don’t have any administrative permission on it. The reason for this can be that you are working in a big company where the operation of the OpenShift environment is outsourced or the process to introduce a new monitoring solution takes way too long or the current monitoring solution doesn’t match your requirements and so on.

In this article I’m going to show you how to setup the monitoring of a demo application in 6 easy steps. The example is built in that manner that it will be easy for you to do the same for your application. A side note: If the OpenShift cluster that you are using will be monitored in the future with a different Prometheus setup, you don’t need to start from scratch. You might need to tweak the configuration of your scraping a bit and you need to move your dashboard to a different Grafana but that should be it.

weiterlesen...

Author:Olaf Meyer
Tags:openshift, prometheus, grafana
Categories:development
_nowhere_

Imagine your’re working on a bigger feature in a complex piece of software. Your implementation is complete, all tests in scope turned green and you push your changes for integration testing. Then, some integration tests from a completely different module fail and you have no clue which change may have caused this. Now you start analyzing the issue. Probing your commits by hand would end up in a very tedious process for sure. Thankfully git can do all the work for you, while you enjoy a cup of coffee.

The high-level command git bisect allows you to automatically run a specified test procedure, while it’s crawling through your commit history to find the bad revision.

weiterlesen...

Author:Sven Hettwer
Tags:git, debugging, automation
Categories:development, git
Sakuli v1.1.0 released!

_nowhere_ Just in time before X-Mas holidays starts, we crate a huge release of our open source end-to-end testing framework Sakuli. The v1.1.0 release brings a bunch of new features and a brand new documentation with. The list of the current changes you will find bellow. Also we created a Short Overview Presentation so that you be able to get quick intro about what purpose of Sakuli is.

Also we wan’t to say a big THANK YOU for the great support of our contributors, our valued supporting companies and at least ConSol for making this possible as open source software. Double Thumbs up!!!

weiterlesen...

The Tutorial “Docker based E2E application monitoring with Xfce UI and OMD Labs” describes how to:

  • Implement a complete containerized end-to-end monitoring environment
  • Testing HTML content
  • Testing native UI content
  • Setting up a monitoring with OMD Labs:
    • Grafana graphs about the performance times (end user perspective)
    • Alerts on errors with screenshots
  • Continuous execution of the test suite in a loop

Sources: see github.com/ConSol/sakuli-examples

weiterlesen...

Author:Tobias Schneck
Tags:sakuli, docker, omd, end2end, testautomation, javascript, grafana
Categories:development, monitoring

When developing software that exchanges data with other components or services you may be confronted with the proper simulation of those foreign services during integration testing. This is because you need to connect with a foreign service
that is simply not available on your local machine or in a test environment.

For unit testing purpose you can use mocks that help out to simulate proper responses. There will be times where your software is deployed to a test environment
in order to perform some acceptance tests with your stakeholders before going to a final release. Usually this is also done with the customer exploring the software through manual testing. In these situations traditional service mocking is not
a good option and you need a real simulator instance that receives requests and responds with proper test data.

This is exactly what the Citrus simulator project provides for you. Standalone simulation and complex request/response processing with solid validation capabilities. The Citrus simulator provides a very easy and reliable definition of inbound and outbound messages for different scenarios.
Good news is that this is not only for Http REST interfaces but also for SOAP WebService, JMS, RMI, mail messaging and many more. So you can use the simulator whenever you need to integrate with another service that is simply not available on your local machine or in your test environment.

weiterlesen...

Author:Christoph Deppisch
Tags:spring, gradle, citrus
Categories:citrus, spring boot, development

Docker Headless VNC Container 1.2.0 has been released today. The different Docker images contains a complete VNC based, headless UI environment for testautomation like Sakuli does or simply for web browsing and temporary work in a throw-away UI container. The functionality is pretty near to a VM based image, but can be started in seconds instead of minutes. Each Docker image has therefore installed the following components:

weiterlesen...

Author:Tobias Schneck
Tags:docker, openshift, continuous integration, testautomation
Categories:development

Which programming language should we use to write monitoring check_plugins? This question rose some discussion and this post is trying to give some hints.

weiterlesen...

Author:Philip Griesbacher
Tags:bash, c, go, java, perl, python
Categories:development, monitoring
_nowhere_

I recently had to deal with two projects that have a common origin but separated at some point in time. I now had to try to bring them back together again - basically merging the changes. Sounds like a pretty standard git merge or git rebase job.

Unfortunately the separation was done in a not so clever way. Someone cloned the original repository, checked out some branch, made some first refactoring steps, got rid of the git stuff (probably rm -rf .git) and started a new git repository with this status. Rumors are that the situation at that time was so tense that people wanted to make a clear cut - which they did in a technical way.

Quite some time later it was my task to try to get the projects together again. The only input I had was two git URLs and the above story.

weiterlesen...

Author:Markus Hansmair
Tags:git
Categories:development, git
NEB Modules with Go

Have you ever written a NEB (Nagios Event Broker) module? This article will explain a tool which makes this a lot easier, especially if the reason was that you are not familiar with C or C++. In this case the “Go NEB Wrapper” could come very handy and if you are new to this topic it is a good point to start with.

weiterlesen...

Author:Philip Griesbacher
Tags:nagios, naemon, go, neb
Categories:development, monitoring, nagios

The GitHub repository toschneck/openshift-example-bakery-ci-pipeline contains, the sourcecode for the examples of the talk Continuous Testing: Integration- und UI-Testing mit OpenShift-Build-Pipelines at the Redhat/ConSol OpenShift-Day:

weiterlesen...

Author:Tobias Schneck
Tags:openshift, continuous integration, jenkins, sakuli, citrus
Categories:development

At ConSol we use GitLab as our central Git server and I am quite happy with its functionality. Lately, I have been playing around with GitLab CI with the objective of finding out if we can use it instead of Jenkins, our current CI server of choice.

Since most of our projects use Maven, I was particularly interested in setting up a simple Maven build job.

To cut a long story short, yes, I would use GitLab CI in my next project. We’ll later see why, but first I want to give a quick walkthrough of GitLab CI.

weiterlesen...

Author:Christian Guggenmos
Tags:gitlab, continuous integration
Categories:development

It has been a while since the last release in the Citrus universe. It took us some time to get the new Citrus release 2.7.2 ready for you.
Of course we were not being lazy in that time. Besides the new Citrus 2.7.2 release we are proud to announce a new player in the Citrus team. The Citrus administration UI is a
web-based user interface that helps you to manage your Citrus projects and test cases.

Often users complained about the complexity of having to learn all about Citrus and the Spring framework in particular as Citrus uses Spring for configuration and dependency injection.
Especially non-developers had problems to master the learning curve for Citrus and Spring when starting to use the framework. Also people asked for a way to have a user interface for managing
components and tests.

We heard you and introduced a new administration user interface for Citrus! There is a detailed Citrus Admin documentation (which is still ongoing).
However I would like to outline the main features of that web UI here in a short post for you.

weiterlesen...

Author:Christoph Deppisch
Tags:docker, maven, citrus
Categories:citrus, development

Sowohl End-2-End-Testing als auch End-2-End-Monitoring folgen dem gleichen Paradigma – sie betrachten eine Applikation aus der Sicht des End-Users. Hier darf es keine Rolle spielen, in welcher Oberflächentechnologie die Applikation geschrieben ist oder in welcher Art sie mit dem End-User in Verbindung tritt. Genau an diesem Punkt setzt das Open-Source-Tool Sakuli an.

weiterlesen...

About three or four years ago I had the first contact with AngularJs (obviously V1.x) and what should I say? I loved it! It perfectly added the missing piece that JQuery wasnt able to solve: Bind data to the Dom in an easy way. Since this days there where a lot of evolution in Javascriptland. A lot of new Frameworks for entire SPAs, new techniques like functional and reactive programming, a lot (!) of build systems / task manager and even the language itself developed towards an serious programming language (I know some people have a different opinion). At least with the power of Typescript (or Flow) Javascript projects doenst have to be a Pain. Angular2+ took many of the the mordern aspects to provide a good and productive developer experience to develop application in time, quality and budget. Dont get me wrong: They made a very good job! But I have personally some concerns which I want to point out in this post.

weiterlesen...

Author:Tim Keiner
Tags:javascript, angular, angular2
Categories:development
assets/images/safe.png

Typical Java backend applications need to integrate with existing 3rd party services. In most cases, calls to these 3rd party services are authenticated. Frequently, Java applications are required to use login credentials for authenticated calls: A username and a password.

This scenario raises a problem: How can we store the password needed for calling the 3rd party service? We could store it in a properties file, but then everyone with access to the properties file learns the password. We could provide the password as a command line parameter or environment variable, but then everyone with access to the startup script learns the password. We could hard-code it in our application, but then everyone with access to the JAR file learns the password. We could encrypt the password using a master key, but then we have the same problem again: How to store the master key?

The common solution is to use a secure data store provided by the operating system. Our application runs on Windows Server, so we use the Windows Data Protection API (DPAPI) for protecting our secret passwords. This blog post shows how to use the DPAPI in Java applications.

weiterlesen...

Author:Fabian Stäber
Tags:java, security
Categories:development
DevoxxUS - review

DevoxxUS 2017

DevoxxUS has been my first Devoxx outside of Europe so far. It was a total different Devoxx experience for me compared to the six times in Antwerp Belgium that I have been to in the past years.
Yet different it has been a great conference! I would like to share some of my adventures and thoughts in this post.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus, Cucumber, BDD, devoxx, testautomation
Categories:citrus, development

If you ever needed to request HTTP resources with Java, you probably came across several solutions put together from a surprising number of lines. And you probably ended up with using a third party library to achieve your goal in a reasonable manner.

Good news: besides [Java 9 modules], the next JDK version comes with a brand new HTTP client, and it not only brings support for HTTP/2, but also a sleek and comprehensive API. Let’s have a closer look at the new features.

weiterlesen...

Author:Jens Klingen
Tags:java9, java, http, http2
Categories:development

The ELK-Stack is a good option to aggregate and visualize distributed logging-data. It basically based on

The core of the most ELK applications is the Logstash configuration. A user defines here which data (inputs) is processed, how (filter) the data is processed and where it will go afterwards (outputs). Especilly this configuration contains a lot of logic which is unfortunally not easy to test. In this article I want to show you how to setup a testing environment for your Logstash configuration.

weiterlesen...

Author:Tim Keiner
Tags:ELK, Logstash, elasticsearch, docker, maven, citrus
Categories:citrus, development

DevoxxUS

In about three weeks [DevoxxUS] will take place in San Jose, California on March 21-23. After having visited Devoxx Belgium six
consecutive times this will be my first Devoxx conference outside of Europe. Once again I am honored
to be a speaker at that conference! After my Devoxx BE talk in 2015 ([Testing Microservices with a Citrus twist]) this is my second time speaking
in front of Devoxxians from all around the world. Fantastic!

This time I am going to talk about behavior driven integration with [Cucumber] and [Citrus].

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus, Cucumber, BDD, devoxx, testautomation
Categories:citrus, development
_nowhere_

Have you ever wondered what kind of patterns .gitignore allows? Was it **/*/target, target/* or *target*?? Read on and find out!

weiterlesen...

Author:Christian Guggenmos
Tags:git
Categories:development, git
_nowhere_

So, 2017 has arrived - this is the year when Java 9 will finally be released. And with it, the brand new module system called Jigsaw. In January, Marc Reinhold has announced that [JDK 9 is feature complete], so we have every reason to be optimistic that the final release will actually ready in July. So it is about time to get acquainted with project Jigsaw, also known as Java 9 modules.

weiterlesen...

Author:Jens Klingen
Tags:java9, java, jigsaw, modules
Categories:development
_nowhere_

Getting started with Kubernetes can be intimidating at first. Installing Kubernetes is not the easiest of tasks and can get quite frustrating.[^1] Luckily, there is an out-of-the box distribution called Minikube which makes toying around with Kubernetes a bliss.

weiterlesen...

Author:Christian Guggenmos
Tags:kubernetes, minikube, docker
Categories:development, java, kubernetes
assets/images/gopher.png

At this year’s [FOSDEM] conference I did a 20 minutes presentation on how to implement tail -f in [Go]. The video is available below.

Abstract: As part of a log file monitoring tool, I implemented a file tailer that keeps reading new lines from log files. This turned out to be much more challenging than I thought, especially because it should run on multiple operating systems and it should be robust against logrotate. In this 20 Minutes talk I will present the lessons learned, the pitfalls and dead-ends I ran into.

weiterlesen...

Author:Fabian Stäber
Tags:golang, grok_exporter, conference, FOSDEM, talk
Categories:development
_nowhere_

Undertow is an open-source lightweight, flexible and performant Java server, they say. I can confirm that it’s
- lightweight: just have a look at those few lines of code to start a server and 1MB core JAR
- flexible: always feel free to provide your own implementations or use Undertow helpers to delegate usual server glue code to a more specific implementation you provide

I didn’t check or compare performance. It is the default server implementation of Wildfly Application Server and sponsored by JBoss.

weiterlesen...

Author:Philipp Renoth
Tags:undertow, http
Categories:java, http, development

Die Software-Entwicklung ist im Wandel. Immer schneller, immer häufiger, immer einfacher müssen neue Features in Produktion gebracht werden. Große, schwergewichtige Alleskönner werden durch mehrere kleine, individuelle Services ersetzt. Jeder Microservice bildet einen Aspekt der gesamten Fachlichkeit ab und lässt sich deshalb unabhängig entwickeln und warten. …

Der vollständige Artikel ist in der Java aktuell 01-2017 zu finden:

assets/images/2017-01-java_aktuell_titel.JPG
Author:Tobias Schneck, Christoph Deppisch
Tags:Sakuli, Citrus, testing, testautomatisierung
Categories:sakuli, citrus, development

Stabile und skalierbare Testumgebungen für End-2-End-Tests sind seit jeher schwer aufzusetzen und zu warten. Besonders in Kombination mit automatisierten UI-Tests stellen sie Tester und Entwickler immer wieder vor große Herausforderungen. Einen eleganten Ausweg bieten in Container verpackte Testumgebungen, die sowohl Web- als auch Rich-Clients in echten Desktop-Umgebungen testen können. Als “Immutable Infrastruktur” betrieben, wird es dadurch möglich, einen definierten Systemstand jederzeit reproduzierbar aufzurufen und Tests darin performant auszuführen.

weiterlesen...

Author:Tobias Schneck
Tags:Sakuli, end2end, e2e, testing, docker
Categories:sakuli, development

The [Sakuli Java DSL] setup shows how easily you can use [Sakuli] to test your application in an end-2-end scenario. This is a great starting point to learn how to use [Sakuli] together with [Maven] and [Docker].

_nowhere_

weiterlesen...

Author:Tobias Schneck
Tags:Sakuli, end2end, e2e, testing, docker
Categories:sakuli, development
_nowhere_

Sakuli wird für EndToEnd mit Linux und Windows Applikationen bereits vielfach eingesetzt. Wie sieht es aber mit Android, dem verbreitetsten mobilen Betriebssystem, aus? Hierzu ein Beispiel.

weiterlesen...

Author:Philip Griesbacher
Tags:Android, Sakuli, EndToEnd, end2end
Categories:android, monitoring, sakuli, development
assets/images/jsd2016.png

Der JUG Saxony Day fand am 30.09.2016 im Konferenzzentrum Radisson Blu Park Hotel in Dresden statt. Die von Anfang an gute und entspannte Atmosphäre beeindruckte ebenso wie die Auswahl der Vorträge. Insgesamt waren es über 30 Vorträge in 5 parallelen Tracks, die sowohl die aktuellen Trends in der Container-Technologie behandelten, Überblick über die neuesten Testing-Konzepte zeigten als auch einen Ausblick auf das zukünftige JDK 9 in petto hatten.

weiterlesen...

Author:Tobias Schneck
Tags:Sakuli, end2end, e2e, testing, docker
Categories:sakuli, development

Mit seinem Vortrag “Containerized End-2-End-Testing” war Tobi am 31.08. als Redner beim [Herbstcampus] 2016 in Nürnberg.

weiterlesen...

Author:Jens Klingen
Tags:conference, herbstcampus, talk, sakuli, end2end, testing
Categories:development

_nowhere_ “Sakuli”, das Open-Source-Framework zum automatisierten Testen von Applikationen, ist vor kurzem in Version 1.0 erschienen. Ein kleiner Blick auf die zurückliegenden Änderungen.

weiterlesen...

Author:Simon Meggle
Tags:e2e, end2end, monitoring, nagios, omd, sakuli
Categories:sakuli, omd, nagios, development

In a previous article we went through how to build a chat room web application that used REST and STOMP for communicating between the client and server. In this article I use the very same application and show how to write automated integration tests using the open source Citrus integration test framework.

If you haven’t read the first article don’t worry. A quick summary of all the important bits will be shown shortly below. But before I get to that lets talk a little bit about automated integration testing and citrus.

One of the biggest challenges when testing any application is being able to simulate all endpoints.

weiterlesen...

Author:Martin Maher
Tags:citrus, stomp, websocket
Categories:citrus, integration-testing, development
Caching with JCache

Introduction

A couple of years have passed since we last looked into in-memory caches here at ConSol. In that time a bunch of things have happened:

  • Probably the most significant thing that happened was that the oldest Java Service Request JSR 107, also known as JCache, finally reached ‘Release’ status. This JSR was a long time in the making taking a whole 13 years since the initial proposal back in 2001.

  • Grid Gains In-memory Data Fabric became an open source project and is now available under the Apache Foundation Project and known as Apache Ignite.

  • The existing In-memory caches providers, like Hazelcast, have received a whole host of new features including things like support for distributed transactions, a new Map-Reduce API, interceptors for executing business logic, when the cache entries change, to mention just a few.

weiterlesen...

Author:Martin Maher, Georgi Todorov
Tags:jcache, hazelcast, ignite, bigdata
Categories:cache, java, development
Sakuli v0.9.2 Released

Sakuli todays release is a great milestone because it introduces a brand new graphical installer and a bunch of other features!
Sakuli installer

Download and check it out sakuli-v0.9.2-installer.jar!

weiterlesen...

Author:Tobias Schneck
Tags:e2e, end2end, monitoring, nagios, omd, sakuli
Categories:sakuli, omd, nagios, development

Fabian and Christoph have been invited to speak at [Devoxx Conference] 2016 in Antwerp, Belgium. Watch their talks to learn more about HTTP2 and Citrus Framework.

weiterlesen...

Author:Jens Klingen
Tags:conference, devoxx, talk, citrus, http2
Categories:development

Some time has passed since part one of this blog post series and we have made some improvements on the Citrus Arquillian extension.
So we can look forward to this post as we move on with a more complex test scenario where we include some Citrus mail server within our test. In part one we have already combined both frameworks Arquillian
and Citrus with a basic example.

weiterlesen...

Author:Christoph
Tags:Citrus
Categories:development, citrus

Citrus and Arquillian
both refer to themselves as integration test frameworks. Following from that you might think these frameworks somehow ship the same package but this is not the case. In fact the frameworks work
brilliant together when it comes to automate the integration testing of JEE applications.

weiterlesen...

Author:Christoph
Tags:Citrus
Categories:citrus, development

Just recently I gave a presentation on Git (the version control system, not the British pejorative). I introduced newbies to the Git world and the concepts behind it and demonstrated advanced users some lesser known Git features.

Additionally, I introduced my personal workflow when working on small scale features, let’s say the size of one commit to the main line. Some of my colleagues found this workflow to be particularly interesting, so I’d like to share it here and discuss its benefits and drawbacks.

weiterlesen...

Author:Christian Guggenmos
Tags:git, workflow
Categories:git, development

In this post I will continue with the Apache Camel integration testing scenario that we have worked on in part one and part two of this series.
This time we focus on exception handling in Camel routes. First of all let’s add exception handling to our Camel route.

weiterlesen...

Author:Christoph
Tags:Citrus
Categories:citrus, development

In part one of this blog series we have used Citrus in combination with Apache Camel for setting up a complete integration test scenario. Remember we have interacted with our Camel route
via JMS as client and via SOAP Http WebService as a server.
Now in the second part we want to interact with a Camel route using direct and Seda in memory message transports. First of all we need a Camel route to test.

weiterlesen...

Author:Christoph
Tags:Citrus
Categories:citrus, development

Eine Konferenz in einem Vergnügungspark? Klang zunächst so ungewöhnlich, wie spannend. Zugegebenermaßen konnten wir uns im Vorfeld auch nicht genau vorstellen, wie so etwas aussehen wird. Und bereits beim Check-In im Hotel wurde klar: Das wird kein rein monotoner Talk-Marathon. Die beiden Hotels, welche von ConSol bezogen wurden, hatten jeweils ein Motto (asiatisch und afrikanisch) und wussten dieses auch für die Gäste, teils sehr detailverliebt, darzustellen. Nachfolgend wollen wir ein paar unserer persönlichen Eindrück schildern:

weiterlesen...

Author:Tobias Schneck
Tags:conference, java, javaland
Categories:development

This blog post shows how to set up the new Docker plugin for Intellij IDEA 14.1 on Ubuntu Linux 14.10.
**1. Install Docker
If you haven’t installed Docker already, use the following command to install it:

<br />
wget -qO- https://get.docker.com/ | sudo sh<br />

weiterlesen...

Author:Fabian Stäber
Categories:docker, development

Apache Camel is a great mediation and routing framework that integrates with almost every enterprise messaging transport. In the past I have experienced Camel projects struggling with integration testing where the actual message interfaces to boundary applications are not tested properly in an automated way.

So in a series of posts I would like to talk about integration testing strategies for Apache Camel projects using the Citrus integration test framework.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus
Categories:citrus, development

The GoTo Conference Berlin is part of a conference series with stops in Berlin, Chicago, Amsterdam, Aarhus and Copenhagen. The 3 day conference was divided in workshops on the first day and talks on the second and third day.

The talks and the catering were very well organized. The only drawback was, that the WLAN wasn’t working most of the time.

Now lets go through the talks:

weiterlesen...

Author:Johannes Pieringer
Tags:conference
Categories:goto conference, java, development

Devoxx is over, sadly, and under normal circumstances this would be the time when we Devoxxians return to our everyday’s lives for another year.

However, this time it is different: At Google’s booth at the exhibition area we got their latest Cardboard gadget. Cardboard is a virtual reality viewer for Android phones and it is absolutely the greatest thing I have ever seen on a phone. The Cardboard app comes with a lot of fancy demos like a virtual reality tour through Versailles, flying around in Google earth and even a short animated 360° movie.

For me Devoxx did not stop when I left the venue this afternoon. Devoxx continued at home when I opened that Cardboard give-away. Infinite possibilities, the motto of this year’s Devoxx, couldn’t fit better. I definitely need to check it out and learn more about it.

Thank you very much for that, Google! (fabian)

See you next year, at the Devoxx. But before that lets have a look at the last day and a very inspiring talk on Android Wear:

weiterlesen...

Author:Christoph Deppisch
Tags:devoxx, conference
Categories:devoxx, development
Devoxx 2014, Day 4

First of all a small notice on the Ignite sessions at Devoxx. The 5 minute talks with 20 slides were very entertaining and I am glad that Roland kind of talked us into this. The sessions take place during lunch break but it is definitely worth taking the time and listening to the talks.

Now let’s go through the talks of day 4 in Antwerp.

weiterlesen...

Author:Christoph Deppisch
Tags:devoxx, conference
Categories:devoxx, development

“Devoxx Ignite sessions” (fabian)

Devoxx ignite sessions are a great thing: Each speaker has 20 slides in 5 minutes, the slides are auto-forwarding, so each slide is up 15 seconds. During the hour long ignite session you would hear 8 talks. Today, we learned how to make money, ride a mountain bike, do performance tuning, save the planet, be a diabolical developer, share a house, do open source, decode the airspace, and why Stephen Chin’s job sucks.

The format reminds a bit of TED’s talks, talks are quick, innovative, and engaging. Sometimes I even felt that the take away of a five minute talk is not necessarily less than the take away of the three hour university sessions.

Author:Christoph Deppisch
Tags:devoxx, conference
Categories:devoxx, development
Devoxx 2014, Day 3

So the group of ConSol Devoxxians is now complete as the rest of the posse has finally arrived for the upcoming conference days in Antwerp. And we are all excited to hear the latest news in the opening keynote from Stephan Janssen, who is best named as the father of the Devoxx conference and the Parleys platform.

IMG_20141112_091456

Stephan has some great announcements in his keynote. One of them is to welcome Devoxx Poland as new family member in Krakow next year, which is indeed great news for our ConSol colleagues in Poland.

weiterlesen...

Author:Christoph Deppisch
Tags:devoxx, conference
Categories:devoxx, development
Devoxx 2014, Day 2

2nd day in Antwerp where Torsten, Julian, Roland and Fabian are able to listen to awesome university and tools in action talks. Tomorrow on Wednesday the rest of the ConSol posse (Ana, Georgi, Christian and Christoph) arrives in Antwerp to see the 3-day conference part of Devoxx. And still another highlight to come on Devoxx day 2: Roland speaks about “Spicing up JMX with Jolokia” in his tools in action talk scheduled 18:05-18:35 in room 8.

So here is the wrap up of Devoxx Day 2:

weiterlesen...

Author:Christoph Deppisch
Tags:devoxx, conference
Categories:devoxx, development
Devoxx 2014, Day 1

It’s Devoxx time! Mid of November in lovely Antwerp, Belgium. Five days packed with technical talks, hacks and technologies. And of course as usual a group of Consolis will bring the Devoxx atmosphere to you. We blog our experiences and impressions from Antwerp.

So be prepared to receive some on site summaries of what we have seen and what inspired us here.

weiterlesen...

Author:Christoph Deppisch
Tags:devoxx, conference
Categories:devoxx, development
Jmx4Perl 1.10

It took some time, yes. In the past year most of the action was on the Jolokia side, but now Jmx4Perl 1.10 is out of the cage. It comes with a tons of fixes plus additional goodies:

weiterlesen...

Author:Roland Huß
Categories:jmx4perl, development

Achieving Continuous Integration for ESB Projects with Citrus (Part II: Basic Project Setup)

In Part I of this tutorial I introduced the basic concepts and benefits of Citrus as a test driver for ESB projects in general and webMethods in particular. In this second part I want to discuss some Citrus project setup options and provide a quickstart template project for Ant users.

weiterlesen...

Author:Jan Zahalka
Tags:Citrus
Categories:citrus, development
Citrus 1.4 is here!

A new package of the Open Source integration test framework Citrus has just arrived. Version 1.4 comes with new features such as data dictionaries, SMTP mail support and an improved endpoints API for easier configuration. See the 1.4 documentation changes report for a detailed overview on all changes.

With the new configuration components we give credit to all users continuously giving us feedback on the Citrus configuration. With 1.4 our primary goal was to simplify the configuration without loosing the great extendability and customization capabilities of Citrus.

If you are coming from Citrus 1.x we have summarized the configuration changes in this migration sheet.

The old Citrus configuration components were marked as deprecated, so you can continue to use those components when upgrading to 1.4 without any changes. However you should consider to upgrade to the new endpoint configuration in order to be ready for the upcoming versions.

Also have a look at the new config sheet to see how the new configuration works for you.

Author:Christoph Deppisch
Tags:Citrus
Categories:citrus, development
ConSol @JavaLand

Jatumba ConSolis! Zwei aufregende Tage gehen zu Ende und was können wir euch berichten? Das JavaLand hat einen super Start in der Welt der Konferenzen hingelegt! Sowohl die Speaker als auch die Atmosphäre ließen keine Zweifel offen, hier entsteht etwas Großes. Neben sieben parallelen Tracks, einem Hacker-Garten und zahlreichen Community-Aktivitäten gab es einen kompletten Freizeitpark zu entdecken.

weiterlesen...

Author:Fabian Stäber
Tags:conference, Java, JavaLand
Categories:java, javaland, development

Achieving Continuous Integration for ESB Projects with Citrus (Part I: Introduction)

Continuous integration is almost mainstream nowadays. Probably no one wants to argue against the value of having an all-embracing integration test suite in place, which is lightweight enough to be executed on each code change. In this blog series I want to show the interplay between Citrus, the integration test framework written and maintained by ConSol and a commonly used Enterprise Service Bus, the webMethods Integration Server.

weiterlesen...

Author:Jan Zahalka
Tags:Citrus
Categories:citrus, development

New year, new release. Jolokia 1.2.0 is in the house.

weiterlesen...

Author:Roland Huß
Categories:jolokia, development
First ConSol FedEx Day

For most employees at ConSol, today is the last day before their Christmas vacation. Eight of us took that opportunity and organized our first FedEx day:
During the full day event, we formed small teams and worked on innovative projects we are enthusiastic about.
At the end of the day, we had small presentations showing the results to the company.

In this blog post we’d like to share the projects we came up with:

Infinispan Cluster on Raspberry Pis

There seem to be a lot of interest in building Raspberry Pi clusters for
demo
projects.
One of the teams took the chance and built our own, with five Pis running an Infinispan distributed cache.
It turns out that having a real hardware cluster yields different results than testing Infinispan locally.
While clean shutdowns and startups are no problem, unplugging and plugging network cables is a much greater challange to the Infinispan infrastructure.
The Raspberry Pi hardware is sufficient to run embedded Infinispan instances, the JBoss based distributions don’t seem to fit well with the hardware.

Kiosk systems based on Raspberry Pis

The Raspberry Pi and a large screen is all that is needed for building an information kiosk.
One of the teams built a kiosk for our entrance hall, showing the current event schedule for our meeting rooms.
Access to the event database was implemented as a Spring application, on the front-end side
HTML5 and JavaScript magic was used to visualize the data.

Evaluating the Ceylon Programming Language

Ceylon 1.0.0 was released recently, and one of the teams took the chance to make some first experiences with the new programming language.
Ceylon runs on the JVM, and can also be compiled to JavaScript. It comes with an Eclipse-based IDE, which is, however, not very easy to run.
The strong type system enables a lot of tool support, but sometimes also results in errors that are hard to understand for the novice.

Video Recordings for the ConSol Academy

The ConSol academy is a company event where employees share their knowledge with their peers. One team used the FedEx day to build
a prototypical hardware for recording academy talks on video, to archive the talks for colleagues who cannot participate.
As most other project, the video recording hardware was also based on the Raspberry Pi.
The Pi was equipped with a small camera and a microphone, and streams the data over the network for recording.

Summary

The Raspberry Pi is currently the most popular thing
among our developers. It is easy to set up, and provides an open platform for a wide range of projects.
The FedEx day was a great opportunity to experiment with that, and it is also a good way to get together with colleagues who work in other projects.

Author:Fabian Stäber
Categories:misc, raspberrypi, development
Devoxx 2013, Wrap up

It’s time to wrap up our Devoxx 2013 visit (after 1, 2, 3, 4, 5 days geek heaven)

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development
Devoxx 2013, Day 4

So that Devoxx is now nearly over, here are some reviews of talks of the last full conference day. Day 5 is typically a phase-out day with only a handful talks and everybody is an hurry, our Devoxx 2013 wrap out will be published on Monday.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development
Devoxx 2013, Day 3

On Wednesday Torsten, Christoph and Jan joined our team, and the conference kicked off with full blast: Full Keynote, full rooms, full toilettes, empty coffee and much fun.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development
Devoxx 2013, Day 2

Yesterday was the last university day with in depth, 3 hour talks. Here we go.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development
Devoxx 2013, Day 1

We are back again. The ConSol posse enters Devoxx again and will posts some expressions from this largest independent Java conference. Roughly 3500 attendees transform Antwerp into Java’s epicenter for one week.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development

Distributed caches have evolved into an independent branch of Big Data solutions: When it comes to fast read and write access, distributed caches are the solution of choice.

Dr. Fabian Stäber gave a talk a JayDay 2013 where he introduced and compared the leading distributed cache implementations:

  • Ehcache / Terracotta
  • Hazelcast
  • Infinispan

Based on a simple example application, the basic functionality is presented, and the specific strengths and weaknesses of the different cache architectures are highlighted and compared.

The results of this ‘shootout’ and an executive summary can be found here at /java-caches and the example application is available from GitHub.

Start here …

Author:Roland Huß
Tags:bigdata, ehcache, hazelcast, infinispan, terracotta
Categories:cache, java, development
Jmx4Perl 1.07

It took quite some time, but now Jmx4Perl 1.07 is out with some nice bug fixes and enhancements for the Nagios plugin check_jmx4perl.

weiterlesen...

Author:Roland Huß
Categories:jmx4perl, jolokia, development
Citrus 1.3 released

I am excited to announce that Citrus 1.3 has been released! We hope you enjoy the new feature set coming with this version like the new Java test builder for writing tests with Java code only and the new citrus-ssh module that adds connectivity to the ssh protocol as a client or server. Now let’s have a quick look at the major changes with this release.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus
Categories:citrus, development
Jolokia 1.1.x

Two new Jolokia releases (1.1.0 and 1.1.1) in the past month add some nice new features.

weiterlesen...

Author:Roland Huß
Categories:jolokia, development
Devoxx 2012 - Day 5

Last day of Devoxx conference in Antwerp Belgium is scheduled. We have had many awesome talks in the past 4 days and the conference closes with more talks to fit in this category. So before we ship home to our beloved ones let’s have a look at these last-minute impressions.

weiterlesen...

Author:Christoph Deppisch
Tags:devoxx, conference
Categories:devoxx, development
Devoxx 2012 - Day 4

Let’s go directly into todays talks and sessions.

weiterlesen...

Author:Christoph Deppisch
Tags:devoxx, conference
Categories:devoxx, development
Devoxx 2012 - Day 3

Conference part of the Devoxx 2012 starts today. This means three keynotes in the morning and 60 minute talks for the rest of the day. Finally all 3400 developers have arrived in Belgium to share the 3 day Devoxx conference. Also the rest of the ConSol gang has arrived in Antwerp so we are now 6 people.

weiterlesen...

Author:Christoph Deppisch
Tags:devoxx, conference
Categories:devoxx, development
Devoxx 2012 - Day 2

The second day of Devoxx is history, here are our impressions.

weiterlesen...

Author:Roland Huß
Tags:devoxx, conference
Categories:devoxx, development
Devoxx 2012 - Day 1

It’s time again: The ConSol gang is coming back to Antwerp. And again,
we are presenting you our Devoxx impressions fresh from the movie
theaters. As last year, two of use (Georgi and Roland) went ahead
wereas the rest of us (Olaf, Kathrin, Christoph and Torsten) will join
us on Wednesday.

Monday and Tuesday are traditionally the days for the University talks
with in-depth coverage of certain topics.

weiterlesen...

Author:Roland Huß
Tags:devoxx, conference
Categories:devoxx, development

I just returned from the GOTO Aarhus 2012 conference. Here’s some of my highlights:

weiterlesen...

Author:Joachim Wiedmann
Tags:conference, gotoaar, gotocon
Categories:development

This year was the first time I went to a GOTO conference,
i.e. [GOTO Aarhus 2012][1]. Traveling to Denmark took me remarkably
long (12 hours), but this is probably due to my inability in
effectively route planning (though it would be cool, if somebody could
point me how to go faster from Nuremberg, Germany to Aarhus,
Denmark. Just in case ;-). This blog sums up my impressions of this
developer event.

weiterlesen...

Author:Roland Huß
Tags:conference, gotoaar, gotocon
Categories:development
Citrus 1.2 Final

It has been a while since our last final release for Citrus. Now I am proud to announce the final 1.2 release. The package ships with a huge list of new features and improvements that I would like to highlight in a few lines for you.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus
Categories:citrus, development

When working a lot with git knowing which branch you are in is an important information. Putting the branch information in your bash prompt makes this information always visible and also shows immediatly if you are in a folder managed by git.

This is how it looks:

13:46:50 sven@tsui:~/projects/Thruk (master) %>

All you need is a simple function in your .bashrc

weiterlesen...

Author:Sven Nierlein
Tags:git
Categories:development
Devoxx 2011 - Wrap up

Now that Devoxx has finished and we had a weekend in between, it is time to wrap things up. In this last #Devoxx blog for this year, everyone from the ConSol posse draws his very own personal conclusion.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development

Here are two talks reviews from Jan which didn’t made it into our last blog. (But this was not the only hangover this week ;-). Tomorrow we will wrap up things with some personal statements about the whole show. Sorry, for day 5 we didn’t managed to write a single review. Devoxx visitors might guess the reason ;-)

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development
Devoxx 2011 - Day 4

The last full day was again packed with high-end tech stuff before we enter the 10th anniversary party of Devoxx. So I guess, the fifth day gets a bit less blog coverage than the previous blogs. The ConSol posse has some reviews about Akka, JavaFX, HTML-5 and Android again, Play, JMS 2.0 and Clojure for you.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development
Devoxx 2011 - Day 3

Day 3 and Devoxx is running at full blast now. Rooms are crowded, WiFi breaks down periodically, lanes in front of the toilets and lunch lanes, but nothing will stop the FUN we are having here ;-). There we go with our reviews about the diabolical developer, Play 2.0, Kotlin, JAX-RS 2.0, NoSQL, Phone Gap, HTML5 and the JDK 7 Filesystem API. Please fasten your seat belt for some geeky stuff.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development
Devoxx 2011 - Day 2

On the second the rest of the ConSol posse joined us : Christoph, Christian and Torsten arrived for the fireside chat. A session format which lacked a bit the tension, but there were some rare highlights like the following joke: Q: “What’s the difference between Ant and Maven ?”, A: “The author of Ant apologized”. The other stuff covered were the ServiceMix combo, Groovy, Spring in the cloud, Infinispan, JDK 7 and Jenkins for Continous Delivery.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development

Here are the links I mentioned in my Devoxx Tools-in-Action Talk “Jolokia - JMX on Capsaicin”. Most of the pointers can of course be reached by starting at www.jolokia.org

weiterlesen...

Author:Roland Huß
Tags:conference, talk, devoxx
Categories:devoxx, jolokia, development
Devoxx 2011 - Day 1

We are back again. The first day as always is some sort of warming up and getting into the flow. This year was special in so far as one os us (roland) gave his first talk at Devoxx. But let’s start with the first talk. Here are our personal reviews for some of the talks we’ve attended with the author of each review is mentioned after the title in parentheses. These reviews covers JEE6 Enterprise applications, Arquillian, Continous Delivery, Spring Data JPA, Jolokia (of course ;-), Scala and Glassfish rolling updates.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, development
Devoxx - here we come !

The ConSol posse is on the road again for having a good and inspiring time at Devoxx. Devoxx is probably one of the best things what can happen to a Java developer. Marcel, Alvin, Jan and myself (Roland) will be at the show for the whole week, Christoph, Torsten and Christian will join us on wednesday.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, java, development

Lately I had to deal with Excel files as REST Http service response. I came up with a pretty clever validation mechanism in Citrus that I would like to share with you. You can apply the Excel validator to your Citrus project, too. It is not very complicated as you will see in this post.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus
Categories:citrus, development

TestNG provides brilliant support for test parameters and data providers. With some annotation magic you are able to pass parameter values to your test method and finally to your Citrus test logic.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus, testng
Categories:citrus, development
Citrus 1.2.M2

The next Citrus milestone release for version 1.2 has landed. This version introduces new REST Http support on client and server side. In particular we are now able to handle the Http request methods (GET, POST, PUT, DELETE, …) as well as Http response codes (e.g. 404 Not Found).

Citrus 1.2.M2 now works with Spring 3.0, Spring Integration 2.0 and Spring WS 2.0. In addition to that we have some bugfixes and improvements in this release. Check out the reference documentation for the complete changes list on what’s new.

Author:Christoph Deppisch
Tags:Citrus, REST
Categories:citrus, development
Citrus 1.2.M1 released

We are very happy to announce the first milestone release of Citrus 1.2 in early 2011. The framework comes with great new features and many improvements to you. This post gives a short overview of the major changes, hope you enjoy the new features:

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus
Categories:citrus, development

Citrus includes a lot of convenient features which are only waiting for you to discover and use them. The other day I needed to validate a SoapAttachment. As you probably already know, a SoapAttachment is referenced by a href property in an Include tag like this: <Include href="..." xmlns="http://www.w3.org/2004/08/xop/include"/>. Validation is quite easy when you’re still mock testing your application because you have full control over what your mock response will look like.

weiterlesen...

Author:Yvonne Sunke
Tags:Citrus
Categories:citrus, development
Devoxx - Wrap-up

Devoxx is over and it’s time for a
summary. We, the Citrus posse ;-), enjoyed the trip to Antwerp very
much and came back with a bunch of new impressions. It was a pleasure
to be part of this Java community event with great speakers and
excellent talks.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:citrus, devoxx, java, development
Devoxx - Day 4

The last full conference day of the Devoxx was again packed full with very interesting talks of various kind. It started with a keynote about the roadmap of JEE 7. Summarizing we can expect some smooth refinements of the platform (exept maybe the support for virtualization out of the box). Here are our impression on the talks of Thursday. Please expect our summary blog post on monday since we are all now in rush to get out things done and to catch train, plain etc. We hope, you enjoyed the blog flood so far ;-)

weiterlesen...

Author:Roland Huß
Tags:cloud, devoxx, Java, scala, conference
Categories:devoxx, java, development
Devoxx - Day 3

The rest of Citrus posse (Christoph, Martin, Ralf, Torsten) joined us
(Marcel, Roland) yesterday, so we are able to spread over much more
talks and will flood this blog with even more reports from interesting
Java talks.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, java, development
Devoxx - Day 2

The second day at Devoxx continues with a university day, with much introductory talks.
BTW, catering was fine today, better than two years ago. I think the is worth mentioning, since this was one of the weak points last time we visited the Devoxx. Ah yes, Wifi is ok, too. Now for the talks ;-)

weiterlesen...

Author:Admin
Tags:conference, devoxx
Categories:devoxx, java, development
Devoxx - Day 1

Some of us ConSol Labs guys enter this year’s Devoxx, the largest
Java conference in Europe. You can expect some blogging about the
state of Java, the newest trends and cool stuff in general out there
for this week.

weiterlesen...

Author:Roland Huß
Tags:conference, devoxx
Categories:devoxx, java, development
Citrus 1.1 released

Citrus 1.1 release is here (download)! The release comes with a bunch of new features and bugfixes. Here is a short list of major features and changes in this release:

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus
Categories:citrus, development

By setting the SOAP mustUnderstand header attribute to “1”, you indicate that the service provider must process the SOAP header entry. In case the service provider is not able to handle this special header a SOAP fault server error is sent back to the calling client. In this post I would like to point out an easy way to support these mustUnderstand headers when simulating SOAP WebServices with Citrus.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus, SOAP WebServices, Spring
Categories:citrus, development

If you have ever sent or received mail messages via Java, chances are high that you have used JavaMail for this task. Most of the time JavaMail does an excellent job and a lot of use cases are described in the JavaMail FAQ. But there are still some additional quirks you should be aware of when doing advanced mail operations like adding or removing attachments (or “Parts”) from existing mails retreived from some IMAP or POP3 store. This post gives a showcase for how to remove an attachment from a mail at an arbitrary level which has been obtained from an IMAP store. It points to the pitfalls which are waiting and shows some possible solutions. The principles laid out here are important for adding new attachments to a mail as well, but that’s yet another story.

weiterlesen...

Author:Roland Huß
Tags:J2EE, Java, javamail
Categories:java mail, development

In my last post (citrus-xpath-validation-power) I solved a validation problem regarding generic XML data structures with some XPath expression power. Now in latest 1.1-SNAPSHOT version of Citrus things become even more straightforward.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus, XPath
Categories:citrus, development

I recently struggled with the validation of a very generic XML data structure in some message payload. It turned out to be a good example where XPath validation can overcome the normal XML tree comparison. I’d like to share my thoughts about this issue, because others might run into similar problems too and the solution with XPath really impressed me with its powerful validation possibilities.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus, XPath
Categories:citrus, development
Citrus sources on GitHub

The Citrus project sources are now available on GitHub for public checkout. You can clone/fork the Citrus project via Git and build your own version on your local machine. Visit the Citrus project site on GitHub for more details.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus
Categories:citrus, development

In larger projects usually a team of testers is working on Citrus integration tests. This means that we need to localize the citrus.properties for testing on different machines, as each tester executes test cases with individual environment settings. In this post I’d like to share an easy way to localize the Citrus settings with Maven.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus, Maven
Categories:citrus, development

We put a further Citrtus 1.1-SNAPSHOT version online (see http://www.citrusframework.org).

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus
Categories:citrus, development

Test cases in Citrus are usually provided with some meta information like the author’s name or the date of creation. This post shows how to extend on this to include your very specific meta data on your own.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus, reporting
Categories:citrus, development

Once you have written Citrus integration tests it would be nice to also use these test scenarios for performance testing. In a recent project we accomplished basic performance tests just using some out-of-the-box features in TestNG. In this post I would like to share a simple example with you regarding performance testing in Citrus.

weiterlesen...

Author:Christoph Deppisch
Tags:Citrus, performance-testing, testng
Categories:citrus, development
Citrus still improving

We fixed some issues in our 1.1-SNAPSHOT version of Citrus and also improved some features. For a detailed change history follow our changes report.

The latest version now supports multi-threaded performance tests. We recently tested a SOAP WebService regarding performance using Citrus. I will try to add a new post describing how to accomplish performance testing with Citrus as soon as possible.


Download the latest snapshot version of Citrus: Download

Author:Christoph Deppisch
Tags:Citrus
Categories:citrus, development
Labs Maven Repository

Labs got its own maven repository now:

How do I access the repo for my Maven project?

Add the repos to your project POM. Here’s an example for the release repository:

</p>
<repository>
  <id>consol-labs-release</id>
  <url>http://labs.consol.de/maven/repository/</url>
  <snapshots>
    <enabled>false</enabled>
  </snapshots>
 <releases>
    <enabled>true</enabled>
  </releases>
</repository>
<repository>
  <id>consol-labs-snapshots</id>
  <url>http://labs.consol.de/maven/snapshots-repository/</url>
  <snapshots>
    <enabled>true</enabled>    <!-- Policy: always, daily, interval:xxx (xxx=#minutes, 60*24*7=10080), never -->
    <updatepolicy>interval:10080</updatepolicy>
  </snapshots>
  <releases>
    <enabled>false</enabled>
  </releases>
</repository>
<p>

How do I release to the repos?

Simply add this profile to your project, and activate it when deploying:

</p>
<profile>
  <id>dist-labs</id>
  <distributionmanagement>
    <repository>
      <id>consol-labs-release</id>
      <url>scpexe://labs.consol.de/home/maven-repository/www/htdocs/repository</url>
    </repository>
    <snapshotrepository>
      <id>consol-labs-snapshots</id>
      <url>scpexe://labs.consol.de/home/maven-repository/www/htdocs/snapshots-repository</url>
    </snapshotrepository>
  </distributionmanagement>
</profile>
<p>

Additionally, you’ll have to modify your $HOME/.m2/settings.xml and configure the user for SSH deployment:
</p>
<server>
  <id>consol-labs-release</id>
  <username>maven-repository</username>
</server>
<server>
  <id>consol-labs-snapshots</id>
  <username>maven-repository</username>
</server>
<p>

Now you can simply deploy using Maven:
<br />
mvn clean install deploy -Pdist-labs<br />

Note: We only support SSH transport for now, using SSH authorized keys.

Author:Admin
Tags:Maven, repository
Categories:maven, development

In a multi module Maven project, it seems non trival to reference the project root location from the sub modules deeper down in the module hierarchy. The following approach describes how to configure a plugin referencing a root POM relative file.

weiterlesen...

Author:Admin
Tags:gmaven, Maven
Categories:maven, development