Skip to content

Instantly share code, notes, and snippets.

View eeichinger's full-sized avatar

Erich Eichinger eeichinger

View GitHub Profile
@eeichinger
eeichinger / assertThatWithSpinWait.java
Last active August 12, 2016 17:19
in asychronous test cases it sometimes is necessary to wait for a condition to occur
@SneakyThrows
private static <T> void assertThatWithSpinWait(Callable<T> actual, Matcher<? super T> matcher, long timeoutMillis) {
long endMillis = System.currentTimeMillis() + timeoutMillis;
while (System.currentTimeMillis() < endMillis) {
try {
assertThat("", actual.call(), matcher);
return;
} catch (AssertionError ignored) {
// ignore
}
@eeichinger
eeichinger / Observable#zipN.java
Created September 24, 2016 11:17
typed Observable.zipN for input observables of same type
@SuppressWarnings("unchecked")
static <R, T> Observable<R> zip(Iterable<? extends Observable<T>> ws, Func1<List<T>, ? extends R> zipFunction) {
FuncN<R> funcN = (Object[] array) -> {
List<T> l = new ArrayList<T>();
for (Object o : array) {
l.add((T) o);
}
return zipFunction.call(l);
};
@eeichinger
eeichinger / CachingCloseableHttpAsyncClientTest.java
Last active October 7, 2016 08:44
experiment testing Apache HttpAsyncClient HttpCache behaviour
package de.porsche.pcc.instrumentation;
import com.github.tomakehurst.wiremock.client.WireMock;
import com.github.tomakehurst.wiremock.junit.WireMockRule;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.http.HttpException;
import org.apache.http.HttpHeaders;
import org.apache.http.HttpResponse;
import org.apache.http.HttpResponseInterceptor;
@eeichinger
eeichinger / LogbackSocketHubAppender.java
Created November 26, 2012 16:34
A logback SocketHubAppender implementation - shamelessly stolen from log4j and adapted to logback. Just copy & paste into your project
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
@eeichinger
eeichinger / resolve_paths.sh
Created April 19, 2017 17:37
Various ways to resolve a script path in bash
#!/usr/bin/env bash
#
# For my own reference in the future demo's various ways to resolve a script's full qualified path
# Usage: copy this file to /tmp/resolve_paths_demo.sh and run it from root
#
# Note: this script uses the 'realpath' utility - to get this on OSX, you need to install 'brew install coreutils'
if [ -z "${doit+x}" ]; then # for if [exists $var] technique, see http://stackoverflow.com/a/13864829/51264
scriptfilereal=$(realpath -P "$0")
@eeichinger
eeichinger / .profile_aws.sh
Created May 1, 2017 11:32
AWS CLI utilities to hook into e.g. ~/.profile
# it's inconvenient to pollute knownhosts with temporary AWS EC2 instances - use aws_ssh instead of ssh to ssh into EC2 instances
alias aws_ssh='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
#
# This function allows to easily switch between AWS CLI profiles. If necessary, it will assume the given role
#
# usage:
# set-aws-profile rolename[@accountname]
#
# "rolename": the profilename as defined in your ~/.aws/config

Keybase proof

I hereby claim:

  • I am eeichinger on github.
  • I am eeichinger (https://keybase.io/eeichinger) on keybase.
  • I have a public key ASDxtzTW3lx3A2x-vRF-8yIANoqhSNzFcuSP2Hc6Ok9xuwo

To claim this, I am signing this object:

@eeichinger
eeichinger / winupdatefix.cmd
Created March 8, 2012 22:57
Windows Update Fix Script
rem windows update fix
rem taken from http://www.akaplan.com/blog/wp-content/uploads/2011/11/WindowsUpdateFix_cmd.txt
ipconfig /flushdns
Cd /d %windir%
del /s *.chk;*.rip;*.tmp;~*.*
msiexec /regserver
sc config msiserver start= auto
net stop msiserver
msiexec /unreg
@eeichinger
eeichinger / pom.xml
Created May 20, 2015 08:34
maven plugins to compile java 1.8 syntax but target jvm 1.7
<!--
compile java 1.8, target java 1.7
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<encoding>utf-8</encoding>
<source>1.8</source>
@eeichinger
eeichinger / backup_jenkins.sh
Created January 10, 2015 10:09
Backup complete Jenkins config via ssh, excluding archived binaries
ssh <user>@<server> "tar -cvzf - -C /home/jenkins/ . --exclude 'maven-repositories' --exclude 'jobs/*/builds' --exclude 'backup' --exclude 'workspace' " > jenkins_backup.tar.gz