Skip to content

Instantly share code, notes, and snippets.

Created April 16, 2016 00:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save anonymous/209faa3ca93099140f12698a7c6ce625 to your computer and use it in GitHub Desktop.
Save anonymous/209faa3ca93099140f12698a7c6ce625 to your computer and use it in GitHub Desktop.
import static com.google.common.base.Throwables.getRootCause;
import static com.google.common.base.Throwables.propagate;
import java.util.concurrent.ExecutionException;
import org.apache.cxf.jaxb.JAXBDataBinding;
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
import com.google.inject.Singleton;
@Singleton
public class JAXBDataBindingHolder {
private final LoadingCache<Class<?>, JAXBDataBinding> cache =
CacheBuilder.newBuilder()
.build(new CacheLoader<Class<?>, JAXBDataBinding>() {
@Override
public JAXBDataBinding load(Class<?> clazz) throws Exception {
return new JAXBDataBinding();
}
});
public JAXBDataBinding getDataBinding(Class<?> clazz) {
try {
return cache.get(clazz);
} catch (ExecutionException e) {
throw propagate(getRootCause(e));
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment