Skip to content

Instantly share code, notes, and snippets.

View dhanji's full-sized avatar

Dhanji R. Prasanna dhanji

View GitHub Profile
@At("/person") @Async
public class PersonService {
@Before
void pre(Request request) {
System.out.println("headers were: " + request.headers());
}
/**
* Callback for request body. Can return a continuation, which will
@dhanji
dhanji / PersonService.java
Created May 4, 2011 01:02
Async IO Sitebricks design try
@At("/person/:name") @Async
public class PersonService {
@Before
void pre(Request request, @Named("name") String name) {
System.out.println("headers were: " + request.headers());
// We can either return a "Reply" here, or do nothing to continue processing
}
#!/bin/bash /usr/local/bin/coffee
-#
-# CLU by Dhanji R. Prasanna. Cluster Manager for EC2 processes.
-
-sys = require 'util'
-spawn = (require 'child_process').spawn
-
-
-# Cell descriptor
-cell =
@dhanji
dhanji / SessionControl.java
Created December 8, 2011 05:35
Session management master class
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.MapMaker;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import com.mongodb.DBObject;
import com.pastebo.data.User;
import com.pastebo.persist.MongoStore;
@dhanji
dhanji / UserSessionScope.java
Created December 8, 2011 05:36
For scoping sessions per request
package com.pastebo.web.auth;
import com.google.common.base.Preconditions;
import com.google.inject.Key;
import com.google.inject.OutOfScopeException;
import com.google.inject.Provider;
import com.google.inject.Scope;
/**
* Special simulated proxy session scope for use with UserSession objects ONLY!
@dhanji
dhanji / AuthFilter.java
Created December 8, 2011 05:37
Authentication for all urls, sets up session management etc.
package com.pastebo.web.auth;
import com.google.inject.Inject;
import com.google.inject.Singleton;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
@dhanji
dhanji / Cookies.java
Created December 8, 2011 23:29
Tools for manipulating cookies
package com.wideplay.mailsy.web.auth;
import com.wideplay.mailsy.data.index.Ids;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* @author dhanji@gmail.com (Dhanji R. Prasanna)
@dhanji
dhanji / gist:1841835
Created February 16, 2012 03:57
License scanner report
Scanning...
CacheStorage.java: [asl1.0: 52%, asl1.1: 66%]
ClassTemplateLoader.java: [asl1.0: 52%, asl1.1: 66%]
ConcurrentCacheStorage.java: []
ConcurrentMapFactory.java: []
FileTemplateLoader.java: [asl1.0: 52%, asl1.1: 66%]
MruCacheStorage.java: [asl1.0: 52%, asl1.1: 66%]
MultiTemplateLoader.java: [asl1.0: 52%, asl1.1: 66%]
NullCacheStorage.java: [asl1.0: 52%, asl1.1: 66%]
@dhanji
dhanji / gist:4014182
Created November 4, 2012 22:51
Completely type-safe query-DSL for Java
Person p = query.topic(Person.class);
List<Person> results = query.from(p)
.where(p.getName(), is("Jason"))
.and(p.getAge(), greaterThan(10))
.and(p.getCountry(), like("Canad*"))
.or()
.where(p.getName(), is("Dhanji"))
.and(p.getCountry(), not("Canada"))
.list();
@At("/person") @Service
public class PersonService {
@Get
@As(Json.class) Reply<List<Person>> getRelatives(@As(Json.class) Person p) {
return Reply.with(relativesOf(p));
}
}