cat /dev/snapshot

Software Development since 1985

Integrating Jenkins, SonarQube, and Nexus

In this post I will describe a solution to add a portal page, a common header and a dynamic panel to each of the three tools Jenkins, SonarQube, and Nexus. Those modifications lead to a better visual integration and intensifies the impression that the tools belong together. As a pre-requisite you need an Apache HTTP server, configured as reverse proxy and the tools accessible via the following context path: /jenkins /sonarqube /nexus The folder structure which contains the portal page and the customization fragments looks like this: ...

February 24, 2014 · 5 min · Michael Rumpf

Page decoration plugins for Jenkins, SonarQube, and Nexus

While trying to apply a unified visual layout to the tools Jenkins, SonarQube, and Nexus I learned that there are some plugins available, but none of them really fits the intended purpose. Jenkins has no easy way of changing its appearance and the Simple Theme plugin comes only close to what is needed. In SonarQube there is a Branding plugin with which you can display an image at the top of each page, but that’s basically all. The Nexus plugin to change the Sonatype Nexus logo is available for the professional version only, but buying the professional version just for being able to change the logo is not really an option. ...

February 23, 2014 · 2 min · Michael Rumpf

Music Player Daemon on Raspberry Pi

This is not yet another “how to configure MPD on the Raspberry Pi” article, because there are a lot of excellent MPD HOWTOs already available: http://hempeldesigngroup.com/embedded/stories/raspberry-pi-setup-as-mpd-sever/ http://www.t3node.com/blog/streaming-audio-with-mpd-and-icecast2-on-raspberry-pi/ http://lesbonscomptes.com/pages/raspmpd.html However, I experienced a bottleneck with the configuration described by those articles. The load was slightly over 1 but it was high enough to cause some stuttering every 30 seconds. The first optimization is to avoid using a separate streaming solution like icecast MPD has its own, built-in streaming plugin which can be configured like this: ...

June 10, 2013 · 2 min · Michael Rumpf

Debugging UPnP/DLNA traffic to a Sony LCD TV

The issue I have is that my Sony LCD TV seems to be very picky regarding the UPnP/DLNA protocol when playing media from a control point to the television. The Android App BubbleUPnP does a good job here as playing music works out of the box. Initial tests with the Cling Java library to play music does not work out of the box. Therefore I wanted to debug the HTTP SOAP protocol in order to see where the differences are. ...

October 8, 2012 · 3 min · Michael Rumpf

Use Java 7 on Buildhive

Changing source and target version to 1.7 is not sufficient to enable Java 7 on Buildhive at the moment. Adding the following profile to your Maven POM makes sure that your local build is not affected by the special configuration and when running on Buildhive, JDK 7 is used for both build and test-run. <profiles> <profile> <id>buildhive</id> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.5.1</version> <configuration> <source>1.7</source> <target>1.7</target> <showDeprecation>true</showDeprecation> <showWarnings>true</showWarnings> <encoding>UTF-8</encoding> <executable>/opt/jdk/jdk1.7.0/bin/javac</executable> <fork>true</fork> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <configuration> <jvm>/opt/jdk/jdk1.7.0/bin/java</jvm> <forkMode>once</forkMode> </configuration> </plugin> </plugins> </build> </profile> </profiles> The profile can be selected by adding the following line to the configuration of your Buildhive job: ...

August 14, 2012 · 1 min · Michael Rumpf

Raspberry Pi

My Raspberry Pi finally arrived after 4 months: The stable Debian distribution “Squeeze” does not contain support for all of the Raspberry Pi features. That means there is no way around the the latest Debian “Wheezy” image: http://www.raspberrypi.org/archives/1435 But even with the latest image version there is still some configuration effort left… WLAN Stick For network connectivity I have chosen the Conrad WLAN Stick N150 Nano, which is based on the following chipset: USB: 0BDA:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter. Unfortunately this chipset has some issues with the current drivers from both Debian Linux images as discussed in the forum thread Automatic setup for RTL8188CUS based wifi adapters. By executing the script install-rtl8188cus-latest.sh from the forum thread, the adapter started working immediately after the script was finished. The general WLAN configuration is described in detail in the Debian Wiki: http://wiki.debian.org/WiFi/HowToUse#Command_Line ...

June 30, 2012 · 3 min · Michael Rumpf

Wake On LAN

Under Ubuntu I chose the following way to activate wake on LAN on the eth0 device: # Install ethtool sudo apt-get install ethtool # Create init script to set the wol bit on the device sudo vi /etc/init.d/wakeonlan #!/bin/sh ethtool -s eth0 wol g exit # Make the script executable sudo chmod a+x /etc/init.d/wakeonlan # Create the init links sudo update-rc.d wakeonlan defaults Under Debian the following approach has been chosen: ...

March 3, 2012 · 1 min · Michael Rumpf

Deploying weld-osgi to jcoderz.org repository

For deploying weld-osgi to the jcoderz.org repository the following modifications to the pom.xml files are necessary (after applying the wagon-ssh extensions to the your Maven installation, see previous post): Deploy the WELD API packages git clone -b WELD-963 http://github.com/mathieuancelin/api.git WELD-963 cd WELD-963 vi pom.xml Add the following XMl fragment to the maven-deploy-plugin <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <configuration> <skip>true</skip> </configuration> <dependencies> <dependency> <groupId>org.apache.maven.wagon</groupId> <artifactId>wagon-ssh</artifactId> <version>2.2</version> </dependency> </dependencies> </plugin> </plugins> </build> mvn -e clean install -Dmaven.test.skip=true mvn -e deploy -DaltDeploymentRepository=jcoderz-snapshots::default::scp://jcoderz.org/var/www/repos/maven2-snapshot/ -Dmaven.test.skip=true cd .. 2. Deploy the WELD OSGi packages ...

December 31, 2011 · 1 min · Michael Rumpf

Maven 3: SSH deployment to foreign repository

Using the maven-deploy-plugin to deploy artifacts to a repository that is not the original target repository of a project is getting complicated with Maven 3 when the wagon SSH provider is not part of the Maven distribution. The following JAR files must be added to the Maven distribution into the lib/ext extension folder: jsch-0.1.44-1.jar plexus-utils-3.0.jar plexus-interactivity-api-1.0-alpha-6.jar wagon-ssh-2.2.jar\n* wagon-ssh-external-2.2.jar wagon-ssh-common-2.2.jar Then the parent pom.xml of the project must be extended by the following lines: ...

December 31, 2011 · 1 min · Michael Rumpf

Building weld-osgi

In case you want to use Weld inside your OSGi application you first need to compile a few branches on your own: WELD-963 branch of the weld/api project weld-osgi branch from the weld/core project Those branches will soon be merged into the official Weld codebase. But in the meantime you need to follow the steps below in order to get the packages compiled. A prerequisite is that git and Maven 3 is available ...

December 6, 2011 · 2 min · Michael Rumpf