Skip to content

Instantly share code, notes, and snippets.

View slorber's full-sized avatar
🏠
Working from home

Sébastien Lorber slorber

🏠
Working from home
View GitHub Profile
@slorber
slorber / AbstractStampleUnitTest.java
Created July 5, 2012 12:57
ElasticSearch mapping multi_field analyzer
package com.stample.search;
import com.google.common.collect.Collections2;
import com.stample.search.engine.SearchEngineBuilder;
import com.stample.search.enums.EnumIndex;
import com.stample.search.enums.EnumType;
import org.elasticsearch.action.admin.indices.analyze.AnalyzeResponse;
import org.elasticsearch.action.index.IndexResponse;
import org.elasticsearch.client.AdminClient;
import org.elasticsearch.client.Client;
@slorber
slorber / gist:3524256
Created August 30, 2012 08:37
Install latest git from source
sudo add-apt-repository ppa:git-core/ppa
sudo apt-get update
sudo apt-get git-core git-doc gitk
import java.io.PrintStream;
import java.util.HashSet;
import java.util.Set;
/**
* @author Lorber Sebastien <i>(lorber.sebastien@gmail.com)</i>
*/
public class MagicalLand {
public static void main(String[] args) {
@slorber
slorber / gist:5082320
Created March 4, 2013 13:44
Basic extension / custom SpringBatch support for NewRelic
<?xml version="1.0" encoding="UTF-8"?>
<urn:extension xmlns:urn="newrelic-extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="newrelic-extension extension.xsd" name="Custom SpringBatch extension" version="1.0">
<urn:instrumentation metricPrefix="SpringBatch">
<urn:pointcut transactionStartPoint="true" ignoreTransaction="false" excludeFromTransactionTrace="false" metricNameFormat="Job execution">
<urn:className>org.springframework.batch.core.launch.support.SimpleJobLauncher</urn:className>
<urn:method>
<urn:name>run</urn:name>
<urn:parameters>
@slorber
slorber / gist:5083211
Created March 4, 2013 15:54
NewRelic SpringBatch JobLauncher
public class NewRelicTracingJobLauncherDecorator implements JobLauncher {
private static final Logger LOGGER = LoggerFactory.getLogger(NewRelicTracingJobLauncherDecorator.class);
private final JobLauncher jobLauncher;
public NewRelicTracingJobLauncherDecorator(JobLauncher jobLauncher) {
this.jobLauncher = jobLauncher;
}
00400000-00401000 r-xp 00000000 fc:02 152969 /usr/local/java/jdk1.7.0_09/bin/java
00600000-00601000 rw-p 00000000 fc:02 152969 /usr/local/java/jdk1.7.0_09/bin/java
00684000-006e7000 rw-p 00000000 00:00 0 [heap]
678000000-7fb23b000 rw-p 00000000 00:00 0
7fb23b000-800000000 rw-p 00000000 00:00 0
7f0c682e5000-7f0c682e8000 ---p 00000000 00:00 0
7f0c682e8000-7f0c683e6000 rw-p 00000000 00:00 0
7f0c683e6000-7f0c683e9000 ---p 00000000 00:00 0
7f0c683e9000-7f0c684e7000 rw-p 00000000 00:00 0
7f0c684e7000-7f0c684ea000 ---p 00000000 00:00 0
@GET
@Path("/")
@ApiOperation(
value = "Returns all user's documents",
responseClass = SWAGGER_RESPONSE_CLASS
)
@ApiErrors({
@ApiError(code = HttpServletResponse.SC_BAD_REQUEST, reason = SwaggerErrorReasons.BAD_PAGINATION),
@ApiError(code = HttpServletResponse.SC_NOT_FOUND, reason = "No document to list")
public static class FeedBodyGeneratorOutputStream extends OutputStream {
private static final HeapBuffer EMPTY_BUFFER = HeapBuffer.wrap(new byte[0]);
private final FeedableBodyGenerator feedableBodyGenerator;
private FeedBodyGeneratorOutputStream(FeedableBodyGenerator feedableBodyGenerator) {
if ( feedableBodyGenerator == null ) {
throw new NullPointerException("The feedableBodyGenerator is required");
}
/*
* Copyright (c) 2012 Sonatype, Inc. All rights reserved.
*
* This program is licensed to you under the Apache License Version 2.0,
* and you may not use this file except in compliance with the Apache License Version 2.0.
* You may obtain a copy of the Apache License Version 2.0 at http://www.apache.org/licenses/LICENSE-2.0.
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the Apache License Version 2.0 is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
RequestBuilder requestBuilder = new RequestBuilder("POST").setUrl("http://myUrl/multipartUploadEndpoint");
MultipartBodyGeneratorFeeder bodyFeeder = MultipartBodyGeneratorFeeder.create(requestBuilder);
Request request = requestBuilder.build();
ListenableFuture<Response> asyncRes = asyncHttpClient
.prepareRequest(request)
.execute(new AsyncCompletionHandlerBase());