Port CacheHeader away from ObjectOutputStream