Skip to content

Instantly share code, notes, and snippets.

View kawasima's full-sized avatar

Yoshitaka Kawashima kawasima

View GitHub Profile
import java.util.ArrayList;
import java.util.UUID;
import java.util.WeakHashMap;
import org.junit.Test;
public class BadCache {
@Test
public void test() {
@kawasima
kawasima / RedirectServlet.java
Created July 23, 2012 10:00
A servlet for redirect with hash code.
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.security.GeneralSecurityException;
import java.security.Key;
import java.util.UUID;
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
import javax.servlet.RequestDispatcher;
@kawasima
kawasima / EmbeddedServer.java
Created September 14, 2012 03:35
Tomcat Embedded Server
package net.unit8.starborn.hotpepper;
import java.io.File;
import org.apache.catalina.core.AprLifecycleListener;
import org.apache.catalina.core.StandardServer;
import org.apache.catalina.startup.Tomcat;
public class EmbeddedServer {
public static void main(String[] args) throws Exception {
@kawasima
kawasima / ClassInstrumenter.java
Created September 21, 2012 05:11
Tomcat server with reporting coverage in realtime
import java.util.Collection;
import net.sourceforge.cobertura.coveragedata.ClassData;
import net.sourceforge.cobertura.coveragedata.ProjectData;
import net.sourceforge.cobertura.instrument.FirstPassMethodInstrumenter;
import org.apache.log4j.Logger;
import org.objectweb.asm.ClassAdapter;
import org.objectweb.asm.ClassVisitor;
import org.objectweb.asm.MethodVisitor;
@kawasima
kawasima / RestfulActionServlet.java
Created September 25, 2012 08:15
How to enable PUT and DELETE method in sastruts
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionServlet;
@SuppressWarnings("serial")
public class RestfulActionServlet extends ActionServlet {
@kawasima
kawasima / Usage
Created October 15, 2012 09:09
Handlebars template loader for backbone.js
Handlebars.TemplateLoader.load(["index", "list", "detail"], {
complete: function() {
var router = new Router();
Backbone.history.start();
}
});
//----
Handlebars.TemplateLoader.config({prefix: "/hbs/"});
@kawasima
kawasima / cell_value.clj
Last active December 31, 2015 16:59
Convert a cell value to a suitable type for Clojure and retrieve it, using POI.
(import [org.apache.poi.ss.usermodel Cell DateUtil FormulaError]))
(defmulti cell-value (fn [cell]
(let [type (.getCellType cell)]
(if (= type Cell/CELL_TYPE_FORMULA)
(.getCachedFormulaResultType cell)
type))))
(defmethod cell-value Cell/CELL_TYPE_STRING [cell]
(.getStringCellValue cell))
@kawasima
kawasima / print_sink.clj
Created December 27, 2013 10:32
Flume custome sink written by Clojure.
(ns example.print-sink
(:import [org.apache.flume Sink Sink$Status]
[org.apache.flume.event EventHelper])
(:gen-class :name example.PrintSink
:extends org.apache.flume.sink.AbstractSink
:exposes-methods {getChannel parentGetChannel}))
(defn -configure [this context])
@kawasima
kawasima / gist:8311601
Last active January 2, 2016 13:39
Publish and consume clojure values via RabbitMQ.
(require '[langohr.queue :as lq]
'[langohr.core :as rmq]
'[langohr.channel :as lch]
'[langohr.basic :as lb]
'[langohr.consumers :as lc]
'[clojure.data.fressian :as fress])
;; Publish clojure values
(let [conn (rmq/connect {:uri "amqp://localhost"})
ch (lch/open conn)]
@kawasima
kawasima / all-instances.clj
Created January 20, 2014 09:55
Get the count of all instances in clojure.
(import [com.sun.management HotSpotDiagnosticMXBean]
[java.lang.management ManagementFactory]
[java.io DataInputStream EOFException]
[java.nio ByteBuffer])
(require '[clojure.java.io :as io])
(declare ^:dynamic read-id)
(declare ^:dynamic idsize)
(def names (atom {}))