Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View aesteve's full-sized avatar
👋

Arnaud Esteve aesteve

👋
  • Sant Cugat del Vallès, Barcelona, Catalonia, Spain
  • X @arnaudesteve
View GitHub Profile
@aesteve
aesteve / JDK8 OpenShift
Created February 19, 2015 16:05
Download Oracle's JDK 8 on Openshift DIY cartridge
cd $OPENSHIFT_DATA_DIR
wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-linux-x64.tar.gz
tar -zxvf jdk-8u31-linux-x64.tar.gz
rm -f jdk-8u31-linux-x64.tar.gz
# JAVA_HOME and PATH are set in startup hook according to these paths
@aesteve
aesteve / build.gradle
Last active August 29, 2015 14:15
Multi-project Vert.x 3 + Gradle
if (!JavaVersion.current().java8Compatible) {
throw new IllegalStateException("This needs Java 8. You are using ${JavaVersion.current()}.")
}
buildscript {
repositories { jcenter() }
dependencies {
classpath 'com.github.jengelman.gradle.plugins:shadow:1.1.1'
}
}
@aesteve
aesteve / JavaNature eclipse
Created February 24, 2015 09:05
JavaNature eclipse
<!-- comments / name / etc. -->
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
@aesteve
aesteve / _.mapjava 8
Created February 26, 2015 13:57
underscore.map Java 8
List<String> strings = new ArrayList<String>();
// ... populate list
List<String> mappedStrings = strings.stream().map(someString -> someString.toLowerCase()).collect(Collectors.toList());
@aesteve
aesteve / logback.groovy
Created April 2, 2015 15:38
Logback configuration for rolling files
import static ch.qos.logback.classic.Level.*
import ch.qos.logback.classic.encoder.PatternLayoutEncoder
import ch.qos.logback.core.rolling.RollingFileAppender
import ch.qos.logback.core.rolling.TimeBasedRollingPolicy
import ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP
appender("FILE", RollingFileAppender) {
file = "logs/server.log"
append = true
encoder(PatternLayoutEncoder) { pattern = "%d{HH:mm:ss.SSS} %-5level %logger{60} - %msg%n" }
@aesteve
aesteve / build.gradle
Created April 3, 2015 16:41
vertx-metrics-demo Gradle
plugins {
id 'java'
id 'eclipse'
id 'idea'
id 'com.github.johnrengelman.shadow' version '1.2.1'
}
repositories {
mavenLocal()
mavenCentral()
@aesteve
aesteve / Perf example
Created July 10, 2015 08:36
Some example on what we could benchmark
// create an object
public class SomeObject {
public Date someDate;
public Integer someInt;
public String someString;
public Double someDouble;
}
// create vertx handler
router.put("/vertx", ctx -> {
import io.vertx.core.Handler
import io.vertx.groovy.ext.unit.Async
import io.vertx.groovy.ext.unit.TestContext
import io.vertx.groovy.ext.unit.junit.VertxUnitRunner
import org.junit.runner.RunWith
@RunWith(VertxUnitRunner.class)
abstract class GroovyTestBase {
public GroovyTestBase() {
@aesteve
aesteve / AuthorizationLogic.java
Created December 15, 2015 13:18
centralize auth logic
public static authorize(JsonObject authInfo, Handler<User> onAuthorized, Handler<Throwable> onFailure) {
return res -> {
if (res.succeeded()) {
User user = res.result();
user.isAuthorised("newsletter:edit:13", res2 -> {
if (res2.succeeded()) {
boolean hasPermission = res2.result();
if(hasPermission){
onAuthorized.handle(user);
}
@aesteve
aesteve / MyAsyncTest.groovy
Created December 31, 2015 09:38
async bdd unit runner
class MyAsyncSpec {
@Test
void asyncTestRequest(TestContext context) {
// startsWith async => creates context.async()
def client
setup {
client = vertx.createHttpClient(...)
}
when {
client.getNow('/api')