This document details all the possible changes that you should investigate when
updating your project from Doctrine Common 2.1 to 2.2:

## Annotation Changes

- AnnotationReader::setIgnoreNotImportedAnnotations has been removed, you need to
  add ignore annotation names which are supposed to be ignored via
  AnnotationReader::addGlobalIgnoredName

- AnnotationReader::setAutoloadAnnotations was deprecated by the AnnotationRegistry
  in 2.1 and has been removed in 2.2

- AnnotationReader::setEnableParsePhpImports was added to ease transition to the new
  annotation mechanism in 2.1 and is removed in 2.2

- AnnotationReader::isParsePhpImportsEnabled is removed (see above)

- AnnotationReader::setDefaultAnnotationNamespace was deprecated in favor of explicit
  configuration in 2.1 and will be removed in 2.2 (for isolated projects where you
  have full-control over _all_ available annotations, we offer a dedicated reader
  class ``SimpleAnnotationReader``)

- AnnotationReader::setAnnotationCreationFunction was deprecated in 2.1 and will be
  removed in 2.2. We only offer two creation mechanisms which cannot be changed
  anymore to allow the same reader instance to work with all annotations regardless
  of which library they are coming from.

- AnnotationReader::setAnnotationNamespaceAlias was deprecated in 2.1 and will be
  removed in 2.2 (see setDefaultAnnotationNamespace)

- If you use a class as annotation which has not the @Annotation marker in it's
  class block, we will now throw an exception instead of silently ignoring it. You
  can however still achieve the previous behavior using the @IgnoreAnnotation, or
  AnnotationReader::addGlobalIgnoredName (the exception message will contain detailed
  instructions when you run into this problem).

## Cache Changes

- Renamed old AbstractCache to CacheProvider

- Dropped the support to the following functions of all cache providers:

 - CacheProvider::deleteByWildcard

 - CacheProvider::deleteByRegEx

 - CacheProvider::deleteByPrefix

 - CacheProvider::deleteBySuffix

- CacheProvider::deleteAll will not remove ALL entries, it will only mark them as invalid

- CacheProvider::flushAll will remove ALL entries, namespaced or not

- Added support to MemcachedCache

- Added support to WincacheCache

## ClassLoader Changes

- ClassLoader::fileExistsInIncludePath() no longer exists. Use the native stream_resolve_include_path() PHP function