/**
  * @param FilterResponseEvent $event
  */
 public function onKernelResponse(FilterResponseEvent $event)
 {
     if (!$event->isMasterRequest()) {
         return;
     }
     $request = $event->getRequest();
     $response = $event->getResponse();
     if (substr((string) $response->getStatusCode(), 0, 1) !== '2') {
         // TODO UT this
         return;
     }
     if (RequestListener::isModifyingMethodRequest($request)) {
         $version = $this->store->update($request, (string) microtime(true));
     } elseif (!RequestListener::isIgnoreMethodRequest($request)) {
         if (!($version = $this->store->fetch($request))) {
             $version = $this->store->register($request, (string) microtime(true));
         }
     }
     if (isset($version)) {
         $response->headers->set('ETag', $version);
     }
 }