====================
2.0.0
====================

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Base Distribution
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[TASK] Remove minimum stability setting
-----------------------------------------------------------------------------------------

This removes the minimum-stability so tagged releases of dependencies
are used. For doctrine/migrations it explicitly allows dev versions,
because no suitable stable release exists.

The packages that are part of TYPO3 Flow directly (Flow, Fluid, Party,
Welcome, Kickstart, BuildEssentials) are explicitly allowed in beta
state.

This change speeds up installation (because zip archives will be used
instead of git clones) and avoids surprises due to possibly unstable
code being pulled in.

* Related: `#47808 <http://forge.typo3.org/issues/47808>`_
* Commit: `5fdd797 <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=5fdd79788877109bb79d9f4ecc6d022aaaa07e5c>`_

[TASK] Remove Jenkins repository from  composer manifest
-----------------------------------------------------------------------------------------

Since our packages are on Packagist now, the Satis repository on Jenkins
should no longer be used by the public.

* Resolves: `#44022 <http://forge.typo3.org/issues/44022>`_
* Commit: `e40206b <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=e40206bcae662bc4bff1c56285f6d356d8f8f8f3>`_

[TASK] Update composer.json with new dependencies
-----------------------------------------------------------------------------------------

* Commit: `7cdcca7 <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=7cdcca7f31c4b7ae9d3fd86cfd41e525b16e4318>`_

[TASK] Rename Vendor to Libraries
-----------------------------------------------------------------------------------------

* Resolves: `#42013 <http://forge.typo3.org/issues/42013>`_
* Commit: `c46b3c3 <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=c46b3c34560f21a93e0781fe27c8738f2b899eed>`_

[TASK] adjust to FLOW3 renaming
-----------------------------------------------------------------------------------------

* Commit: `749ce77 <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=749ce7721bcea1e0499b034622fbc2b312bc03c7>`_

[!!!][TASK] Composerify base distribution
-----------------------------------------------------------------------------------------

Removes submodules in favor of installing via composer. Files installed
via composer from the FLOW3 package are removed as well.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `3922aea <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=3922aeaeadae68cb04e30722d5e6cf01b00b6382>`_

[TASK] Update phoenix project name
-----------------------------------------------------------------------------------------

* Commit: `709e9a1 <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=709e9a1aadb1add683d2b2a2cae487c0aed15cf1>`_

[TASK] Do not recurse into submodules for Phoenix distribution
-----------------------------------------------------------------------------------------

* Commit: `4d74d89 <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=4d74d895f9556734425f4c5942485a995b6910cd>`_

[TASK] Add Phoenix distribution build surf configuration
-----------------------------------------------------------------------------------------

Note: This needs the corresponding change in BuildEssentials as well.

* Resolves: `#38500 <http://forge.typo3.org/issues/38500>`_
* Commit: `218bcbf <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=218bcbf45ff4cb0dcbeaea63e0b8826718cdf704>`_

[TASK] Adjust release deployment descriptor
-----------------------------------------------------------------------------------------

This adds the configuration needed to push tags based on
the PUSH_TAGS environment variable and tweaks some tiny
(style) issues.

* Commit: `34b5bfb <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=34b5bfbe8670a8d6a7bd337b62f1edbf26ceefc0>`_

[TASK] Mention PhpSession configuration change in Upgrading.txt
-----------------------------------------------------------------------------------------

This informs about the PhpSession settings key change.

* Related: `#37993 <http://forge.typo3.org/issues/37993>`_
* Commit: `839d054 <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=839d0544a05036f2cefb04069428a94472baaf73>`_

[BUGFIX] Remove dead symlinks from release archives
-----------------------------------------------------------------------------------------

The default Surf configuration symlinks Data and Configuration
to a shared folder. For release archives that leads to dead
symlinks being in the archives.

This changes disables both symlink tasks in the release
deployment descriptor.

* Fixes: `#37569 <http://forge.typo3.org/issues/37569>`_
* Commit: `96c47dd <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=96c47dd4bc2476a06159157bf212a8906d3a719c>`_

[TASK] Adjust Surf deployment descriptor
-----------------------------------------------------------------------------------------

The deployment descriptor used to release archives of FLOW3
needed a little adjustment.

* Commit: `5971c56 <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=5971c56a1dc387ccf905fca298d1bf51d3802503>`_

[TASK] Clean Upgrading.txt from 1.1 content
-----------------------------------------------------------------------------------------

* Commit: `402ac49 <http://git.typo3.org/FLOW3/Distributions/Base.git?a=commit;h=402ac49130f6d85e071133f0dfb878c2b4e6bda3>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Flow
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[FEATURE] Bind routes to HTTP request methods
-----------------------------------------------------------------------------------------

This change allows routes to be limited to certain request methods.
This is especially useful for REST services where you often need the
same URI to invoke different actions depending on the HTTP method.

Usage::

	-
	  uriPattern: 'foo/bar'
	  defaults:
	    '@package':    'Some.Package'
	    '@controller': 'Standard'
	    '@action':     'first'
	  httpMethods: ['GET']

	-
	  uriPattern: 'foo/bar'
	  defaults:
	    '@package':    'Some.Package'
	    '@controller': 'Standard'
	    '@action':     'second'
	  httpMethods: ['POST', 'PUT']

* Resolves: `#27117 <http://forge.typo3.org/issues/27117>`_
* Commit: `0b62998 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=0b629987369565fb91c447511afdb962b68e3a80>`_

[BUGFIX] Doctrine DocParser ignores Flow autoloader
-----------------------------------------------------------------------------------------

The Doctrine DocParser does not utilize the autoloaders
registered into spl_autoload. This change registers
the Flow autoloader into Doctrines AnnotionRegistry so
it will be used in the lookup.

The error only occurs in Production context, but
it's hard to say how this change can be verified as
it seems to be very specific when the error occurs
and does not have to occur for all controller /
action combinations in the application.

* Resolves: `#48551 <http://forge.typo3.org/issues/48551>`_
* Commit: `6e22079 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6e22079902e0b2c7d0683242b463ce9982d2e473>`_

[BUGFIX] Controllers must not be of scope singleton
-----------------------------------------------------------------------------------------

Removes the scope("singleton") annotation from the
provided base controllers.

Background:
Usually the scope of a controller doesn't really make a difference,
because they are only instantiated once per request.
But if the same controller is used multiple times
(e.g. within two plugin/widget instances on one page) the side
effects could be very confusing.

* Related: `#45647 <http://forge.typo3.org/issues/45647>`_
* Commit: `e6a334b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e6a334be9afee57d5261a47b9faacf75bb9bf8e3>`_

[BUGFIX] Validation is not reset in functional tests
-----------------------------------------------------------------------------------------

If using the internal request engine (= in functional tests) the ValidationResolver
that contains a 1st level cache for validated objects is not properly reset.

This change fixes this by introducing a reset() method that is called by
InternalRequestEngine::sendRequest()

* Fixes: `#46715 <http://forge.typo3.org/issues/46715>`_
* Commit: `85f4f6a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=85f4f6aced36a935045e6e6428105d679f81a12c>`_

[BUGFIX] Provide working apache settings in documentation
-----------------------------------------------------------------------------------------

The provided AllowOverride is now matching the needs of Flow.

* Fixes: `#48951 <http://forge.typo3.org/issues/48951>`_
* Commit: `2785f9d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2785f9d9510ac98f24b33261b893aeb5e02bbe85>`_

[BUGFIX] ORM fails on databases with low maximum length for table names
-----------------------------------------------------------------------------------------

This fixes a bug that creates too long database identifiers on
systems where maxIdentifierLength is less than 31 as Oracle has.

This patch fixes the bug in a backwards compatible way.

* Fixes: `#49007 <http://forge.typo3.org/issues/49007>`_
* Commit: `89db103 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=89db1038abee37e2c39a434df82bda0970faed04>`_

[TASK] Fix rST markup in Routing chapter
-----------------------------------------------------------------------------------------

Some code blocks were not correctly marked up, leading to block quotes
instead of code listings.

* Commit: `a93ddeb <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a93ddeb72d72858808a50b42eae1d296457a9875>`_

[BUGFIX] Exception in ProxyClassBuilder cannot be thrown because wrong exception message
-----------------------------------------------------------------------------------------

This leads to weird exceptions such as:

  Notice: Undefined variable: TYPO3\\Flow\\Command\\ConfigurationCommandController

* Resolves: `#49370 <http://forge.typo3.org/issues/49370>`_
* Commit: `f6513a4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f6513a440d3a941db98bbe709a925fd1b033cdf3>`_

[BUGFIX] Fix a serialization problem with intercepted request
-----------------------------------------------------------------------------------------

This change fixes a recursive serialization problem where the
ActionRequest is serialized multiple times in a session entry.

* Resolves: `#49289 <http://forge.typo3.org/issues/49289>`_
* Commit: `ee843b5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ee843b5ec8eb9f3b9b01b63a1b6bb852edc0f51c>`_

[FEATURE] Iterator support for APC cache backend
-----------------------------------------------------------------------------------------

This adds support for iterating over entries of an APC cache.

* Related: `#49185 <http://forge.typo3.org/issues/49185>`_
* Commit: `95016a8 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=95016a801e2ee4c4a181a44137db44b6efda517f>`_

[BUGFIX] Session storage has poor performance for hundreds of sessions
-----------------------------------------------------------------------------------------

Fixes an issue with the storage backend for sessions which resulted in
a bad overall performance when hundreds of sessions were active
simultaneously. The improved implementation is now based on two separate
cache storages and a new garbage collector which allows for more fine
grained tuning.

If you previously used a different than the default cache backend for
sessions, you will need to adjust your configuration because this
implementation is based on two distinct cache backend configurations
(see updated Caches.yaml).

The option name for setting the garbage collection probability has
changed: the settings now come with a dedicated section for garbage
collection which contains the probability and, added by this patch, the
maximum number of old sessions which may be removed by the garbage
collector during one invocation.

You need to flush caches with --force after applying this change set.

* Fixes: `#49189 <http://forge.typo3.org/issues/49189>`_
* Resolves: `#49190 <http://forge.typo3.org/issues/49190>`_

* Commit: `54d08ed <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=54d08ed5606ce4d87c63f0d571eeb4837679322b>`_

[FEATURE] Iterator support for Cache Frontends / Backends
-----------------------------------------------------------------------------------------

This adds support for iterating over entries of a cache. In this
particular patch only support for the VariableFrontend and the file
based backends is included. Further implementations will be part of
separate commits.

* Resolves: `#49185 <http://forge.typo3.org/issues/49185>`_
* Commit: `f1c8c79 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f1c8c79f2aa6ba0ae7faf46a468f7e16c18823e1>`_

[BUGFIX] Property introduction is broken
-----------------------------------------------------------------------------------------

This change fixes property introduction through aspects by adding
missing checks for available property introductions.

* Fixes: `#39413 <http://forge.typo3.org/issues/39413>`_
* Commit: `2349202 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=23492025086f7482d96dcc668ecb4615c31b1aa5>`_

[BUGFIX] Session garbage collection is non-functional
-----------------------------------------------------------------------------------------

Fixes an issue with the newly introduced session handling which resulted
in a big amount of orphaned cache entries due to a non-functional
garbage collection. In combination with a non-optimized implementation
of the garbage collector, this resulted in very long request times if
thousands of entries existed.

* Resolves: `#49021 <http://forge.typo3.org/issues/49021>`_
* Commit: `32d97dc <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=32d97dcfa6b16ad5361ed1a94417e9951a347435>`_

[FEATURE] Add setOption() to CurlEngine
-----------------------------------------------------------------------------------------

This allows to configure cURL in the CurlEngine. Examples for use are
proxy server settings or SSL certification handling::

 $engine = new CurlEngine();
 $engine->setOption(CURLOPT_PROXY, '127.0.0.1');
 $engine->setOption(CURLOPT_PROXYPORT, 8888);

In addition the singleton scope of the CurlEngine is removed.

* Resolves: `#43903 <http://forge.typo3.org/issues/43903>`_
* Commit: `31ad55a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=31ad55a74cb231e1c86c33b3e14b42b1780e51a8>`_

[TASK] Small documentation correction
-----------------------------------------------------------------------------------------

* Commit: `b081619 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b0816196c3bc71ece71f414bebbac853f2b3f21e>`_

[TASK] Tiny CGL cleanup
-----------------------------------------------------------------------------------------

* Commit: `67f9c72 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=67f9c72327058aca8999f36db3ceaaabd5870a2d>`_

[BUGFIX] Cache is not flushed for changes in sub routes
-----------------------------------------------------------------------------------------

The CacheManager automatically flushes routing caches in
Development context if a Routes.yaml file was changed.
This extends the behavior to flush caches even if a custom
sub route (Routes.xyz.yaml) was modified.

* Fixes: `#47255 <http://forge.typo3.org/issues/47255>`_
* Related: `#43966 <http://forge.typo3.org/issues/43966>`_

* Commit: `2382549 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2382549ff49e1e3460d890c131cb6b31ba602b55>`_

[FEATURE] Routing: Nested SubRoutes
-----------------------------------------------------------------------------------------

With this change it's possible to load SubRoutes from other SubRoutes.
The syntax is the same as before with two additions:

1. You can specify a ``suffix`` in order to load a SubRoute from
    a different file than the default ``Routes.yaml``
2. You can set ``variables`` that will be replaced in the merged SubRoutes

Usage::

    -
      name: 'Product'
      uriPattern: 'products/<EntitySubroutes>'
      defaults:
        '@package':    'My.Package'
        '@controller': 'Product'
      subRoutes:
        'EntitySubroutes':
          package: 'MyPackage.RestTest'
           # load SubRoutes from My.Package/Configuration/Routes.Entity.yaml
          suffix:  'Entity'
           # replace placeholder "<entityName>" with "product":
          variables:
            'entityName': 'product'

* Resolves: `#43966 <http://forge.typo3.org/issues/43966>`_
* Commit: `dc6ec95 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=dc6ec95ecfd21a49eb0f1707f847a3e377dc14b6>`_

[TASK] Re-enable and fix FlowAnnotationDriver tests
-----------------------------------------------------------------------------------------

* Commit: `087d19a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=087d19a23393a0d7521a6f33df75aef056b6b757>`_

[TASK] Remove leftover package manager controller for CLI
-----------------------------------------------------------------------------------------

This one was replaced by a command controller some time ago.

* Commit: `18ff7ac <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=18ff7ac5d33f6102593620fae8760c96a8a97758>`_

[TASK] Fix mailing list URI on first guide page
-----------------------------------------------------------------------------------------

* Commit: `a42d124 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a42d124200dadd2bec1cfe137851b3c2fdaad2ed>`_

[TASK] Update configuration schemas
-----------------------------------------------------------------------------------------

This change updates the configuration schemas to the latest merges.

On top, it allows for configuration of doctrine connection
wrappers and the MasterSlaveConnection wrapper, that allows to setup
a master/slave database connection.

* Resolves: `#47346 <http://forge.typo3.org/issues/47346>`_
* Commit: `cb2d6fb <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=cb2d6fbdb8abe048eaf0bd36d080c842187250bf>`_

[BUGFIX] Add missing "search" ACL to file permission script
-----------------------------------------------------------------------------------------

* Resolves: `#48133 <http://forge.typo3.org/issues/48133>`_
* Commit: `7d28786 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7d287860ba612676eabe6af88dfff4e03fb990f8>`_

[TASK] Some translation corrections and addition of French
-----------------------------------------------------------------------------------------

* Add new trans-unit id and new target-language fr translation
  for ValidationErrors.xlf
* Add new file and new target-language fr for translation
  for Main.xlf

* Resolves: `#45279 <http://forge.typo3.org/issues/45279>`_
* Commit: `8666254 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8666254913c7ee2c63ec844e8e60f174ebbbfe0e>`_

[TASK] Fix rST markup in ObjectManagement chapter
-----------------------------------------------------------------------------------------

A note block was not correctly marked up.

* Commit: `a75daf3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a75daf3df6b5f79ba39bbd878743f512f2f4d8e9>`_

[BUGFIX] Authentication does not work any longer without redirects
-----------------------------------------------------------------------------------------

This fixes a regression that made the authenticated roles only available
in the security context after a redirect following authentication.

Background:

This is a regression introduced with the 1st level cache added in
Id256b168ff9c6aa4cac8da8957ada237f9236c71 but the actual problem is
that the PersistenceQueryRewritingAspect initializes the security
context if it was not initialized before (since change
I44838de1503cbe49cf3fee51921b731bfaa0cfc5) when intercepting QOM
queries setting the context roles to "Anonymous" and "Everybody".

This change adds a new method Context::withoutAuthorizationChecks()
that allows you temporarily disable authorization related interceptors
e.g. PolicyEnforcement and PersistenceQueryRewriting aspects in order
to be able to circumvent authorization in low level operations (for
example to fetch the current account in an AuthenticationProvider).

Usage::

 $this->securityContext->withoutAuthorizationChecks(
   function ($accountRepository, $username, $providerName, &$account) {
     // this will disable the PersistenceQueryRewritingAspect for this one call
     $account = $accountRepository
       ->findActiveByAccountIdentifierAndAuthenticationProviderName($username, $providerName)
   }
 );

* Related: `#46352 <http://forge.typo3.org/issues/46352>`_
* Fixes: `#46636 <http://forge.typo3.org/issues/46636>`_

* Commit: `b964e06 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b964e06bb30ce6eb6e2efcae8723d6b762876139>`_

[BUGFIX] Handle open basedir properly during file upload
-----------------------------------------------------------------------------------------

This solves the issues of uploading files when using open_basedir
restriction. Instead of having to add the temporary upload
directory (upload_tmp_dir) in the open_basedir configuration,
which is a bad idea, this ensures that it works even though the
open basedir restricts access to the temporary upload directory.

Make sure that the temporary upload directory is writable to test
this issue.

* Resolves: `#45936 <http://forge.typo3.org/issues/45936>`_
* Commit: `32410bd <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=32410bdd9f63050ba48c812d8b3264b2591ae851>`_

[TASK] Adjust dependencies to doctrine packages
-----------------------------------------------------------------------------------------

This changes the dependencies to migrations and data-fixtures so they
explicitly point to dev versions. This allows to set the global minimum
stability to something lower than dev.

* Related: `#47808 <http://forge.typo3.org/issues/47808>`_
* Commit: `3d4d723 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3d4d72334f25c0a343f52a09651f3787ce962183>`_

[BUGFIX] ClassLoader does not handle underscore correctly
-----------------------------------------------------------------------------------------

For class names containing an underscore the ClassLoader now correctly
replaces that with a directory separator when loading classes.

This fixes compatibility with some PSR-0 compatible composer packages.

* Fixes: `#47675 <http://forge.typo3.org/issues/47675>`_
* Commit: `fd830e6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=fd830e6a62dcdf321409ba2aa4d70a8aaf3da011>`_

[BUGFIX] initializeObject is no longer executed twice
-----------------------------------------------------------------------------------------

In every session-scope object initializeObject() was
called twice as soon as the session is started.
Now initializeObject() is only called once.

* Fixes: `#45609 <http://forge.typo3.org/issues/45609>`_
* Commit: `298ee69 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=298ee692ee2381d0b525e4da071ac9a3307e05b5>`_

[TASK] Complete documentation for Error Rendering Groups
-----------------------------------------------------------------------------------------

This adds a section about how to configure and use the custom error
views resp. rendering groups.

* Related: `#39423 <http://forge.typo3.org/issues/39423>`_
* Commit: `29b87b0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=29b87b09b08fe2d04a788d874862dd52b2b545ba>`_

[BUGFIX] PropertyMapper now normalizes simple types
-----------------------------------------------------------------------------------------

This fixes a bug where the property mapper was unable to find a
valid typeconverter for properties annotated with int or bool.

* Fixes: `#47054 <http://forge.typo3.org/issues/47054>`_
* Commit: `f6d8d4f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f6d8d4fbc3a4cc5ce86c44089d146c37bc312fb7>`_

[BUGFIX] Lazy DI causes endless loop for certain session objects
-----------------------------------------------------------------------------------------

Fixes an issue with the Lazy Dependency Injection mechanism which caused
and endless loop if session-scoped objects were unserialized and later on
injected lazily.

Background:

when a session is resumed (rather early in the HTTP Request Handler), the
objects contained in the session are unserialized and register their
instance automatically at the Object Manager. If
such an object, for example the Security Context, is later on injected
lazily into another class, the generated proxy code will overwrite the
instance which was previously set at the Object Manager.

In the reported case the RequestHandler retrieved the Security Context
via ObjectManager->get() and received a DependencyProxy instead of the
expected real instance. On using it, the DependencyProxy called the
ObjectManager->get() method to retrieve the real instance which resulted
in a recursion.

This patch corrects the generated proxy code to check for an existing
real instance before trying to generate a Dependency Proxy.

* Resolves: `#46424 <http://forge.typo3.org/issues/46424>`_
* Commit: `be43db2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=be43db2a12c63d1da71272f5310186d56dceaa7b>`_

[BUGFIX] generateUUID() creates uppercase characters in UUIDs
-----------------------------------------------------------------------------------------

The UUIDs generated by that method were always lowercase, now they are
uppercase (since change I1237fdfbee75cbfca2f2082cf30a69383dbc7fd5). As
soon as you do a case-sensitive comparison on those UUIDs as strings,
this will now break, even if the UUIDs are the same semantically.

This change makes them lowercase again.

* Fixes: `#47534 <http://forge.typo3.org/issues/47534>`_
* Related: `#46862 <http://forge.typo3.org/issues/46862>`_

* Commit: `60ea131 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=60ea1313d0206c8528830872eec2c7a712424b6e>`_

[BUGFIX] Fix PolicyService->createRole to use the Role object
-----------------------------------------------------------------------------------------

* Fixes: `#47500 <http://forge.typo3.org/issues/47500>`_
* Commit: `2399c8a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2399c8ab33f0f9c08799ba7df87d0ce4c18630a1>`_

[TASK] Fix spelling error related to static method advice test
-----------------------------------------------------------------------------------------

This was introduced with I15817e357d98eb78de8984a78582de5cdf16064e

* Related: `#47371 <http://forge.typo3.org/issues/47371>`_
* Commit: `41b3710 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=41b37104cb38d9b24740a0a10acf42f347412028>`_

[BUGFIX] AOP erroneously allows to advise static methods
-----------------------------------------------------------------------------------------

Fixes an issue with the AOP proxy builder which erroneously allowed to
advise static methods which resulted in a PHP fatal error as soon as
such a method was called.

* Fixes: `#47371 <http://forge.typo3.org/issues/47371>`_
* Commit: `a8e61f7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a8e61f717b3a2f57a746aa0e38ebfe7a9341d175>`_

[BUGFIX] generateUUID can be broken by seeding mt_rand
-----------------------------------------------------------------------------------------

Use randomizer which cannot be seeded / configured by userspace code.

* Resolves: `#46862 <http://forge.typo3.org/issues/46862>`_
* Commit: `e8f8e08 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e8f8e08e0885419651c494aff6ae804e8bf643b3>`_

[BUGFIX] setParentRoles() fails if passed roles contain duplicates
-----------------------------------------------------------------------------------------

Fixes an issue where Doctrine failed inserting parent roles if the array
passed to Role->setParentRoles() contained duplicates.

Even though getParentRoles() does return roles without duplicates,
setParentRoles() did not filter duplicates and caused the SQL error
mentioned in the related issue ticket.

* Resolves: `#47473 <http://forge.typo3.org/issues/47473>`_
* Commit: `ec284d8 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ec284d851ef79af9440dd94bb73168a56edbe886>`_

[BUGFIX] ActionController throws warning because of short method names
-----------------------------------------------------------------------------------------

Fixes an issue in ActionController which caused a PHP warning if the
concrete ActionController implementation contained methods whose name
was shorter than 7 characters.

* Resolves: `#47469 <http://forge.typo3.org/issues/47469>`_
* Commit: `084d607 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=084d60756f361186676ee96042f38aaedf6eb4cd>`_

[BUGFIX] Add hasRole() to PolicyService
-----------------------------------------------------------------------------------------

The PolicyService needs hasRole() to allow checks for existing roles
without workarounds.

* Fixes: `#47416 <http://forge.typo3.org/issues/47416>`_
* Commit: `899b0dc <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=899b0dc8d0f4f26d3123bb2eda041f99c01717e4>`_

[TASK] Update Upgrading.txt
-----------------------------------------------------------------------------------------

Adds some words about role handling and safe requests.

* Commit: `451033a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=451033a28227fbcb753fda6fb53cb18cb29b2c26>`_

[TASK] Update references in documentation
-----------------------------------------------------------------------------------------

* Commit: `a82d6f9 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a82d6f9e5aa9a9ca1a43d2c7caf1c6dfb70e1a4e>`_

[FEATURE] HTTP method tunneling
-----------------------------------------------------------------------------------------

This change allows the HTTP method to be overridden by the client.
This is especially useful for clients that only support a subset of the
supported methods (e.g. browsers).

The request method can be overridden by specifying a ``__method``
argument. Additionally Flow now respects the ``X-HTTP-Method``
respectively ``X-HTTP-Method-Override`` header.

usage::

	<form method="POST">
		<input type="hidden" name="__method" value="DELETE" />
	</form>

Note::

	The HTTP request method can only be changed for POST requests

* Resolves: `#47137 <http://forge.typo3.org/issues/47137>`_
* Commit: `f5b5024 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f5b5024bdb618b5b018188ea16bd138490a02b1c>`_

[BUGFIX] Fix exception header in InternalRequestEngine
-----------------------------------------------------------------------------------------

When using the virtual browser in functional tests, the
InternalRequestEngine communicates any exceptions
which occurred during the request by adding special
headers to the HTTP response.

Previously the "X-Flow-ExceptionCode" header contained
exception codes like "#1222268609: ". This patch fixes
the rendering to just the code, like "1222268609".

* Commit: `a8f20ca <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a8f20ca26b7039c3d8adb715b0e544511e8e3d74>`_

[!!!][FEATURE] Skip automatic persistence and CSRF protection for "safe" requests
-----------------------------------------------------------------------------------------

This change set introduces an important behavior for Flow applications:
HTTP request methods which are, by definition, considered to be "safe"
(that is, "read-only") are now treated as such.

In practice it means that GET requests will not trigger a persistAll() call
anymore and CSRF protection for actions is not checked anymore if
the request is a GET request.

Please adjust your applications to cleanly observe this principle since
more optimizations in this direction are planned for later versions of
TYPO3 Flow.

This patch contains the corresponding documentation.

* Resolves: `#47252 <http://forge.typo3.org/issues/47252>`_
* Commit: `e9d2336 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e9d2336c740f8478a60aa0092fe536c068280222>`_

[BUGFIX] Property mapper can again map account roles
-----------------------------------------------------------------------------------------

Due to the type hint in the setter method of roles, the property
mapper was unable to set the converted property.

* Resolves: `#47232 <http://forge.typo3.org/issues/47232>`_
* Commit: `903271f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=903271f4f4959c8ee279e61dcc894ffd9968e6c7>`_

[BUGFIX] Flow Exception shouldn't be in use statement
-----------------------------------------------------------------------------------------

* Fixes: `#47253 <http://forge.typo3.org/issues/47253>`_
* Commit: `524b0e5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=524b0e5abfdf8c193dc86a925769659f5255d388>`_

[BUGFIX] System roles don't get a package namespace
-----------------------------------------------------------------------------------------

The role change I39f335baa01fbe9b883e98e85cb1f063bbaf5744
introduced the automatic prepend of the package namespace
where the role has been defined; except for system roles
which are at the moment Anonymous and Everybody.

For ACLs, however, the package namespace has been prepended
also for the system roles. This fixes that behavior.

* Fixes: `#47229 <http://forge.typo3.org/issues/47229>`_
* Related: `#28862 <http://forge.typo3.org/issues/28862>`_

* Commit: `5936bb5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5936bb558470a485cee61948c030e498c1af0d5f>`_

[TASK] Use composer/installers instead of own fork
-----------------------------------------------------------------------------------------

* Commit: `7d38c53 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7d38c53dc1de23ebdd0101b0945661a9a845396c>`_

[FEATURE] Static compilation of compile time data
-----------------------------------------------------------------------------------------

Implement a CompileStatic annotation for static methods that will be
evaluated by the proxy builder in production. Update bootstrap and some
classes to enable efficient caching of reflection information and lazy
loading of the reflection service.

Note: It is not possible to give a type hint to those static methods,
since it could be a DependencyProxy that is actually passed.

* Related: `#46371 <http://forge.typo3.org/issues/46371>`_
* Commit: `6d56d5f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6d56d5f73a93e2edaa7ea5d25050d9259e4296c7>`_

[TASK] Remove @-operator again in SimpleFileBackend and ClassLoader
-----------------------------------------------------------------------------------------

This change removes the shut-up operator again from include_once()
calls in the ClassLoader and SimpleFileBackend in order to provide
meaningful error messages to the developer if class files or cache
entries were not found.

* Related: `#46689 <http://forge.typo3.org/issues/46689>`_
* Commit: `8d4f25b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8d4f25bd9fadccc1b7c27a68f7b00289499bb450>`_

[TASK] Two tweaks to the documentation
-----------------------------------------------------------------------------------------

Add a hint on setting the default collation for MySQL and tweak the
installation instructions a tiny bit.

* Commit: `c90918c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c90918c71d93914cbb787e3602a4f2b39d9a252b>`_

[BUGFIX] Keep array keys with nested _descendAll in JsonView
-----------------------------------------------------------------------------------------

When nesting _descendAll the JsonView discards array keys. This change
fixes that.

* Fixes: `#46046 <http://forge.typo3.org/issues/46046>`_
* Commit: `b21ad76 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b21ad76f92ea34d4a0fff26e83c862059e508ca4>`_

[FEATURE] Support arguments in Scripts::executeCommand
-----------------------------------------------------------------------------------------

Previously it was not supported to have command arguments in a CLI
subcommand. This patch solves this issue by adding a $commandArguments
parameter to the executeCommand() method.

* Resolves: `#46072 <http://forge.typo3.org/issues/46072>`_
* Commit: `5ee0e9d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5ee0e9deaf97b96d12426cdf0cf09e20b890f7a1>`_

[FEATURE] Allow influencing ini usage for sub process
-----------------------------------------------------------------------------------------

With a newly introduced configuration directive
``TYPO3.Flow.core.subRequestPhpIniPathAndFilename`` it
is now possible to control whether to use an ini file
or not for sub processes. The allowed values for this
setting might either be NULL or not set to use the
parent process' ini file; or might be a path to a
specific ini file.

If this setting is set to ``false``, no explicit ini file
will be used for sub processes.

Additionally, this patch refactors the actual command
generation out of the execution method in order to make
it unit-testable, which is also included in this patch.

* Resolves: `#45178 <http://forge.typo3.org/issues/45178>`_
* Commit: `8c6aab2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8c6aab2b16c8020535862ae76008ec485b6f6ea4>`_

[BUGFIX] Initialize $roleRepository correctly
-----------------------------------------------------------------------------------------

The $roleRepository is set "manually" in initializeRolesFromPolicy() -
only if caches are outdated. But the $roleRepository is needed even if
the caches are up to date, so this breaks.

This change moves the initialization outside the check.

* Fixes: `#47115 <http://forge.typo3.org/issues/47115>`_
* Commit: `f2f334d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f2f334d51d64b9c81fff8c566eb23a9cf2b76d45>`_

[TASK] Throw exception on lacking @var annotation
-----------------------------------------------------------------------------------------

In the Validation\\ValidationResolver now an
exception is thrown if the validated
property does not have an @var annotation
which is mandatory.

This prevents a Notice exception when
accessing the not present 'var' key
on the tag values array, and gives instead
a more helpful exception message.

* Commit: `d5fff3f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d5fff3f64b54437db774e922b85262abac4e2723>`_

[TASK] Re-add Testing Routes.yaml
-----------------------------------------------------------------------------------------

This partly reverts I9aa80105cf05e675fbb6ca26bd99f377f52254c8
which rendered functional routing tests useless (they are skipped if
the testing routes are not available).

Now, if Flow Subroutes are included in a distribution, Routing tests
will be executed again.

* Commit: `30f916c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=30f916ce983b2d0cfe56fdf9d8e2fd2e20cf5a55>`_

[TASK] Add default route in functional test for security
-----------------------------------------------------------------------------------------

If the Flow framework routes were not mounted some functional tests
failed due to the request matcher of the TestingProvider. This change
adds the required route programatically. Since the Routes.yaml for
functional tests is not needed anymore it can be removed.

* Commit: `96493ab <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=96493aba44faf36ed59f0422361a72d69146ed8b>`_

[!!!][FEATURE] Handle roles consistently as objects
-----------------------------------------------------------------------------------------

With this change roles are consistently used as objects.

To prevent naming conflicts between roles from different packages the
package key is added to the role names.

The handling of roles now is more strict and does not allow the use of
not configured (non-existent) roles anymore.

Roles are now referenced as real instances instead of their string
identifiers in models. Roles which were defined in policies are now
automatically mirrored to the RoleRepository (usually stored as a
table in a database).

The getRoles() method has been removed from TokenInterface.

* Resolves: `#28862 <http://forge.typo3.org/issues/28862>`_
* Resolves: `#43578 <http://forge.typo3.org/issues/43578>`_
* Related: `#37451 <http://forge.typo3.org/issues/37451>`_
* Related: `#27698 <http://forge.typo3.org/issues/27698>`_

* Commit: `28e52aa <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=28e52aa8883c1fabc630b2f0f7756f72adaf1707>`_

[FEATURE] Allow split configuration sources
-----------------------------------------------------------------------------------------

With this change it is possible to allow split configuration sources
when defining a custom configuration type. This allows to use multiple
YAML for a type (when using the bundled YamlSource), which will be
merged together.

* Related: `#37854 <http://forge.typo3.org/issues/37854>`_
* Commit: `b783aec <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b783aec907500d918283bd1c3444a79201989757>`_

[FEATURE] Allow custom custom configuration files in ConfigurationManager
-----------------------------------------------------------------------------------------

Using the added methods it is possible to register new "types" of
configuration. The set of processing types remains constant, but one
can now e.g. register "Assets" as configuration type and use the
"Settings" processing rule for that. This way it it possible to move
settings for assets into a dedicated file, "Assets.yaml".

The change adds

- resolveConfigurationProcessingType() method
- registerConfigurationType() method
- 2 tests to add a new ConfigurationType
- emitConfigurationManagerReady() to register new ConfigurationTypes during boot

* Resolves: `#37854 <http://forge.typo3.org/issues/37854>`_
* Commit: `7807856 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=78078564f6c3aad3ababfb4a1262d41a444f3a0f>`_

[FEATURE] Support for sessionless authentication
-----------------------------------------------------------------------------------------

This feature enables authentication without the need of a session to
be started. This is useful for stateless services (e.g. REST) where
you don't want Flow to create a session cookie.

Authentication tokens which don't rely on a session simply implement
the SessionlessTokenInterface marker interface.

This patch reverts parts of the first implementation of sessionless
authentication introduced in https://review.typo3.org/#/c/18388
(commit I5f86cb7a3a3fff3220d61d705f216e1b1d4f2369).
The original implementation was a breaking change with a few
unresolved side effects.

The implementation contained in this change set is backwards
compatible with already existing authentication tokens which
relied on sessions.

This patch also contains a small speed optimization for the CSRF
Protection pattern which assumes that no account has been
authenticated yet if the Authentication Manager is still a Dependency
Proxy.

* Resolves: `#45282 <http://forge.typo3.org/issues/45282>`_
* Resolves: `#46428 <http://forge.typo3.org/issues/46428>`_

* Commit: `ff5de86 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ff5de86a050865abee0fb5c860261c66710b74f5>`_

[BUGFIX] Session: add safeguard against incompatible request handlers
-----------------------------------------------------------------------------------------

This adds additional checks and throws an exception if a session should be
started but the currently active request handler does not implement the
HttpRequestHandlerInterface.

* Resolves: `#44087 <http://forge.typo3.org/issues/44087>`_
* Commit: `27e892d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=27e892dbbbb17a5f04deea1f359b2d5872d1b1c2>`_

[BUGFIX] Reduce side effects of sessions used in functional tests
-----------------------------------------------------------------------------------------

This patch makes sure that once a session has been closed or
destroyed, it will rebuild information determined from the request /
response in case it is started again.

While this scenario (a session is closed and started again during
the same PHP request) is uncommon in real world projects, it may
happen during functional tests. Therefore this is mainly a fix to
reduce side effects in functional tests.

A concrete side effect Flow has without this patch is that session
cookies are set to the HTTP response only when a session was
started the first time.

This patch also adds an explanation about starting / resuming
sessions to the class doc comment.

* Resolves: `#46703 <http://forge.typo3.org/issues/46703>`_
* Resolves: `#44202 <http://forge.typo3.org/issues/44202>`_

* Commit: `8f6917b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8f6917b64af670e3b0bd4d288b94fde74971ae6c>`_

[!!!][TASK] Cache result of isAuthenticated in AuthenticationProviderManager
-----------------------------------------------------------------------------------------

This change will calculate the result of the authentication in
authenticate() and respect the authentication strategy for the result.
The authenticate() method will be called lazily if not done before.

This is breaking since isAuthenticated() before would behave like the
"at least one token" strategy was used, even the strategy was set to
"all tokens".

* Commit: `3fc07ad <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3fc07ade13ac9f4beca541b6bd0a2ad01fa25008>`_

[BUGFIX] Flow should work with PHP versions lower than 5.3.9
-----------------------------------------------------------------------------------------

The change Ia42e374202845dfe5e95c72512e9fefb4f00e789 introduced
usage of is_a() with 3 arguments which is only implemented from
PHP 5.3.9. This change replaces the call with a manual check for
inheritance.

* Related: `#32829 <http://forge.typo3.org/issues/32829>`_
* Commit: `f64f3cc <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f64f3cc984c1dad5455036700b14b1353ce7af3e>`_

[TASK] Use property injection where possible
-----------------------------------------------------------------------------------------

This change refactors setter injection to property injection to allow
lazy dependency injection.

* Commit: `d65ba46 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d65ba467a0579149bfa291ef1407d5dd8525e150>`_

[TASK] Optimize I18N service
-----------------------------------------------------------------------------------------

This change makes the I18N service usable for lazy loading by removing
it from the default runtime. Additionally the Locale class is marked
as non-proxyable to prevent calls to the wakeup function.

* Commit: `a9db0dc <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a9db0dc455d32da7d26a4790ff64665f8082ab8f>`_

[FEATURE] Set packageType when creating new package
-----------------------------------------------------------------------------------------

When calling packageManager->createPackage you have
no way to define what package type you are creating.

This allows for ex. SiteKickstarter to set correct
package type in composer manifest

* Resolves: `#44258 <http://forge.typo3.org/issues/44258>`_
* Commit: `0146a62 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=0146a6228a33ed17cc60030f4d0bb44eb12c0acd>`_

[BUGFIX] Avoid side effects in APC cache backend
-----------------------------------------------------------------------------------------

When more than one cache was using the APC cache backend, use of the
same entry identifiers would cause side effects, as the frontends would
access the same entries.

This is fixed by including the cache identifier in the prefix hash.

* Fixes: `#44471 <http://forge.typo3.org/issues/44471>`_
* Related: `#38135 <http://forge.typo3.org/issues/38135>`_

* Commit: `84d3271 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=84d3271ebad7f5eaba08ec4ef67171e2d21397b0>`_

[BUGFIX] Fix variable type declaration in Security\\Context
-----------------------------------------------------------------------------------------

The $request member is annotated as being Http\\Request but must be
Mvc\\ActionRequest instead.

* Fixes: `#44743 <http://forge.typo3.org/issues/44743>`_
* Commit: `f8791c6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f8791c69d6d4c4ce1d7ce5adbe29714f416749c0>`_

[TASK] Adjust tests to rewritten URLs in functional tests
-----------------------------------------------------------------------------------------

The resolution for #44434 makes Flow behave as if mod_rewrite was
available during functional tests. Some tests checking against
generated URLs need to be adjusted, so they no longer expect it  to
produce links with embedded "index.php".

* Related: `#44434 <http://forge.typo3.org/issues/44434>`_
* Commit: `ee050af <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ee050af39aa52d12aa7ec776ae71e2fe419a9c97>`_

[BUGFIX] Actually do regex search/replace in code migrations
-----------------------------------------------------------------------------------------

Actually makes searchAndReplaceRegex() in code migrations do something
with the target files.

* Fixes: `#44402 <http://forge.typo3.org/issues/44402>`_
* Commit: `2ee1ea0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2ee1ea0f9b61920b817a84d807bdd03e9ffea8d1>`_

[!!!][BUGFIX] Enable settings override with empty array value
-----------------------------------------------------------------------------------------

This change updates the behavior of arrayMergeRecursiveOverrule such
that empty arrays are also treated as empty values. If you used this
function before it can lead to different results after the change.

Before the change an empty array value was always merged
into the first array, even if emptyValuesOverride was set to TRUE.
With the new behavior an empty array value overrides a given input
value if emptyValuesOverride is set. This allows to override settings
with an empty array in the settings hierarchy.

This change is breaking if your settings hierarchy depends on
empty array values not overriding a parent configuration.

* Resolves: `#36720 <http://forge.typo3.org/issues/36720>`_
* Commit: `339f877 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=339f877cf93665d25932a7a2da45b1a4c6b5c8ee>`_

[BUGFIX] Allow upload of files without file extension
-----------------------------------------------------------------------------------------

This change allows upload of files without a file extension. The upload
of PHP-Files is still not allowed. The method importUploadedResource
does not have a unit test, since it is not testable through the use of
move_uploaded_file.

* Resolves: `#46536 <http://forge.typo3.org/issues/46536>`_
* Commit: `8210663 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8210663811ac91ec6e822319a6876572b2ce1990>`_

[BUGFIX] Compile original and proxy class into one file
-----------------------------------------------------------------------------------------

Reduce amount of file inclusions by combining original class
code and proxy class code into the same file as both need to
be loaded anyway.

* Fixes: `#46338 <http://forge.typo3.org/issues/46338>`_
* Commit: `29636d5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=29636d53d0a8db3277696942a84b6183263c2a36>`_

[BUGFIX] Remove unneeded filesystem calls
-----------------------------------------------------------------------------------------

This change removes a call to is_dir in the FileMonitor
which is duplicate as the ReadDirectoryRecursively does
exactly the same and throws an error in this case.
Also 2 calls to file_exists are removed as they're not
necessary at this point as filemtime() will just return
FALSE if something goes wrong.

* Resolves: `#46290 <http://forge.typo3.org/issues/46290>`_
* Commit: `ab5f67c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ab5f67c48ab44a96d29aab0f5b08a0b9e8bccdc7>`_

[BUGFIX] Add Flow-Doctrine cache adapter
-----------------------------------------------------------------------------------------

This adds a cache adapter for Doctrine. It is used for the Doctrine ORM
metadata and query cache instead of the ArrayCache used until now.

Until now the cache implementations of Doctrine that could be configured
were not usable. This change fixes that, so that actually a cache for
metadata and query caching is used.

* Fixes: `#45264 <http://forge.typo3.org/issues/45264>`_
* Commit: `e5933c3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e5933c388ca151e09167f42d80938a6cc1719eed>`_

[TASK] Keep roles until tokens get updated
-----------------------------------------------------------------------------------------

* Resolves: `#46352 <http://forge.typo3.org/issues/46352>`_
* Commit: `750ad08 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=750ad089bc8f8b26f362bb2e340fb3738b373076>`_

[BUGFIX] Fix security related functional tests
-----------------------------------------------------------------------------------------

With the fix related to "sessionless authentication"
(I5f86cb7a3a3fff3220d61d705f216e1b1d4f2369) settings have been
adjusted in order to use the testing provider & token only for requests
matching a ControllerObjectName of "TYPO3\\Flow\\Tests\\.*".

This change adjusts the tests accordingly.

* Related: `#45282 <http://forge.typo3.org/issues/45282>`_
* Resolves: `#45953 <http://forge.typo3.org/issues/45953>`_

* Commit: `6a94328 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6a94328fee89740dc40edc930125840fae3d0025>`_

[!!!][FEATURE] Support for "sessionless authentication"
-----------------------------------------------------------------------------------------

This feature enables authentication without the need of a session to be started.
This is useful for stateless services (e.g. REST) where you don't want Flow to create
a session cookie.

This is a breaking change if you created a custom authentication provider or -token
and relied on the fact that AuthenticationProvider::authenticate() started a session.
With this change the session is started when AuthenticationToken::updateCredentials() is
called. This way the token can decide if it needs a session.
Just add a @Flow\\Session(autoStart=true) to the updateCredentials() method if your custom
token relies on a session.

* Resolves: `#45282 <http://forge.typo3.org/issues/45282>`_
* Commit: `158f351 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=158f3519fd043533c3deef8dbc300527a0020490>`_

[BUGFIX] Fix security-related unit test failures
-----------------------------------------------------------------------------------------

The change I724c1b352dd1807ba53b1e336f2d90e90360ff4d introduced some
test failures. This change takes care of the failing unit tests.

* Related: `#42601 <http://forge.typo3.org/issues/42601>`_
* Commit: `18fa6d1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=18fa6d16149925e01eafc67a345cfaa3c6265243>`_

[BUGFIX] Fix security-related functional test failures, part 2
-----------------------------------------------------------------------------------------

The change I724c1b352dd1807ba53b1e336f2d90e90360ff4d introduced some
test failures. This change takes care of the failing functional tests.

It does that by:

* setting the "current request" again after a call to clearContext() in
  ContentSecurityTest
* adjusting the expected exception in MethodSecurityTest in two places

This is a followup to I353e2cba11473cf9ddef82f96b6a79d9d6fefbba which
was broken after having fixed those already.

* Related: `#42601 <http://forge.typo3.org/issues/42601>`_
* Fixes: `#44765 <http://forge.typo3.org/issues/44765>`_

* Commit: `5612a56 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5612a5619107d5e40728264a19a0fb02bad460ec>`_

[BUGFIX] Fix security-related functional test failures
-----------------------------------------------------------------------------------------

The change I724c1b352dd1807ba53b1e336f2d90e90360ff4d introduced some
test failures. This change takes care of the failing functional tests.

It does that by:

* changing the order in which security is set up in the
  FunctionalTestCase provided by Flow.
* setting the "current request" again after a call to clearContext() in
  ContentSecurityTest
* adjusting the expected exception in MethodSecurityTest in two places
* Fixes: `#44765 <http://forge.typo3.org/issues/44765>`_
* Related: `#42601 <http://forge.typo3.org/issues/42601>`_
* Commit: `26a5654 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=26a56543fb2227c4664b107d7c72cae688b6bbfc>`_

[BUGFIX] The security context is only allowed to be initialized after routing took place
-----------------------------------------------------------------------------------------

This bugfix solves the root-cause for the following two symptoms:

* two logins needed in Neos until the Site is shown
* if the Flow_Mvc_Routing_FindMatchResults cache is deactivated completely,
  the login does not work at all.

The problem is as follows:

* The security context needs the current *request* for working properly;
  such that it can separate the active and inactive tokens correctly in
  \\TYPO3\\Flow\\Security\\Context::separateActiveAndInactiveTokens()

* The current request is built during *routing*. Thus, the routing mechanism
  (f.e. RoutePart handlers) is not allowed to access the Security Context
  in any way. If it does (like in this example), things might break in various
  ways.

* For Neos, the following call chain takes place:

	* Routing
	* FrontendNodeRoutePartHandler->matchValue line 51
	* NodeService->getNodeByContextNodePath() line 57
	* new ContentContext() calls "initializeObject"
	* ContentContext->initializeObject does $this->domainRepository->findByHost()
	* this internally uses Repository->findAll()
	* this executes the *TYPO3\\Flow\\Security\\Aspect\\PersistenceQueryRewritingAspect->rewriteQomQuery*
	* because Neos has policy entries for entities (TYPO3\\TYPO3CR\\Domain\\Model\\Node),
	  $this->securityContext->initialize() is called, WITHOUT HAVING A
	  REQUEST SET BEFORE.

	* This results in a half- and wrongly-initialized Security Context
	  set up, with activeTokens not properly set, and also only the
	  standard roles assigned ("Everybody").
	* Thus, the check in TYPO3\\Neos\\Controller\\Frontend\\NodeController->showAction() fails:
	    $this->accessDecisionManager->decideOnResource('TYPO3_Neos_Backend_BackendController');
	* This redirects the user back to the login ($this->redirect('index', 'Login'))

	* Now, if the routing cache is activated, the aspect kicks in (in
	  the second iteration) and directly returns the match result, without
	  triggering a database query before.

Thus, we need to enforce that the security context is not initialized during
the routing phase.

The attached patch is just a quick fix; with not really the clean solution.
But at least it works and the problem is properly described ;-)

This is a follow-up to issue #42601; where the according code has been
implemented.

* Commit: `ff2a411 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ff2a4117465b5b108dfac55bfdf7d1dd3aaf1034>`_

[BUGFIX] Throw exception when using options with singleton validators
-----------------------------------------------------------------------------------------

Validators being singleton must not be called with options because
the options are then inherent properties of the Validator and cannot
be executed subsequently with other options.

An exception is thrown if such a case occurs because it is then
a design mistake of the developer.

Besides, this improves the namespace use a bit.

* Fixes: `#34872 <http://forge.typo3.org/issues/34872>`_
* Commit: `05fc389 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=05fc389ba3bf7022960cfd6cd9f66f1f82732f11>`_

[BUGFIX] Reintroduce support for entities with custom id properties
-----------------------------------------------------------------------------------------

This adjusts the pointcut expressions of the PersistenceMagicAspect
to introduce UUID identifiers only to entities that do not contain custom
identifier properties (annotated with @ORM\\Id).

This change also refactors the unit tests and adds functional tests for
the aspect.

* Fixes: `#46883 <http://forge.typo3.org/issues/46883>`_
* Commit: `20270da <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=20270da59e12142d4a4e9282bfe779505a9998a5>`_

[TASK] Code cleanup in Error classes
-----------------------------------------------------------------------------------------

* Make proper use of namespace
* Fixes a number of CGL violations
* Fixes other small issues
* Commit: `0efc639 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=0efc639ea60a6fd2bdc80f6bc918c2b2ff65d5e9>`_

[TASK] Some documentation fixes regarding Caching
-----------------------------------------------------------------------------------------

This corrects an incorrect mentioned of ``Settings.yaml``
(which must be ``Objects.yaml`` correctly), and some
occurrences of an unnecessary additional colon in a
literal block (``::``)

* Commit: `7a93e92 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7a93e92aefc7bf3f1b6a829ee7aa5bd978d92118>`_

[BUGFIX] StringLengthValidator should use UTF-8 safe function
-----------------------------------------------------------------------------------------

StringLengthValidator no longer uses strlen to determine the
length of the string to be validated but uses the
Utility\\Unicode\\Functions::strlen method which relies on
mb_string internally.

* Fixes: `#36159 <http://forge.typo3.org/issues/36159>`_
* Commit: `33ca019 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=33ca0190410ebee2fcc1a76e6fed29ff5e14092c>`_

[TASK] Optimize Validation to improve performance
-----------------------------------------------------------------------------------------

The validation result object traverses the whole result-
tree every time someone checks for errors, notices or
warnings.

This patch refactors the Result object to cache the result
internally and propagate changes to the parent result object.

In addition the heavy merge actions use this cached
information to prevent unnecessary operations.

Furthermore the validators are reworked to prevent
superfluous object creation.

* Resolves: `#46340 <http://forge.typo3.org/issues/46340>`_
* Commit: `e7ac72f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e7ac72fedde36df838183d34a191c33c79bd5ce9>`_

[TASK] Add Unit Tests for Utility\\Algorithms
-----------------------------------------------------------------------------------------

This adds Unit Tests for the Utility\\Algorithms class and its functions.

* Commit: `50e730f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=50e730f7b682910e9678f442ee604c83a39c0f6d>`_

[BUGFIX] Undefined index breaks logger setup in Production
-----------------------------------------------------------------------------------------

With I6da4763fb94798b1d1647b6108457996a48aa128 the logger used for the
system log was made configurable. In Production context, when cached
settings are used, this breaks after an update - and even --force with a
cache flush does not help.

This change adds a safeguard against the settings not being there.

* Related: `#40738 <http://forge.typo3.org/issues/40738>`_
* Related: `#46053 <http://forge.typo3.org/issues/46053>`_

* Commit: `8ece749 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8ece74988defc7b3b38e8d2dbcbe76987a18883a>`_

[FEATURE] Make System Logger frontend configurable
-----------------------------------------------------------------------------------------

Move hard coded TYPO3\\FLOW3\\Log\\Logger to Settings.yaml instead. This
allows a user to fully replace the logger instead of just adding or
removing backends.

* Resolves: `#40738 <http://forge.typo3.org/issues/40738>`_
* Resolves: `#46053 <http://forge.typo3.org/issues/46053>`_

* Commit: `b1c2313 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b1c23134f132bfce2b2eb828222b966d3e06e360>`_

[BUGFIX] Make the AbstractExceptionHandler check for error_reporting()
-----------------------------------------------------------------------------------------

When the shut-up operator is used in PHP the error_reporting level is
temporarly lowered to 0. The AbstractExceptionHandler does not check
for this, and outputs the exception whenever it is called.

This is a problem when the set_exception_handler method is used, as
PHP will still call those exception handlers even if the shut-up
operator is used. This is why the AbstractExceptionHandler should
check for error_reporting() === 0 and ignore the exception if so.

This change fixes the exit code 255 error during the compile run
which is thrown in the Testing context where we set E_WARNING to
be an exceptional error.

* Resolves: `#46485 <http://forge.typo3.org/issues/46485>`_
* Commit: `706fee4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=706fee4a2f7fa0a1c98b1177c28810b247919a45>`_

[BUGFIX] Fix composer requirements
-----------------------------------------------------------------------------------------

This fixes some requirements that were a bit too relaxed (due to a
misunderstanding when introducing composer to Flow).

* Commit: `c17ad7f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c17ad7f249e1966460b7499aa2cdbbb433779f69>`_

[!!!][FEATURE] Lazy Dependency Injection
-----------------------------------------------------------------------------------------

This introduces lazy dependency injection for dependencies injected
through Property Injection. Instead of loading the respective class
and instantiating the dependency right away, a proxy object is
injected which automatically replaces itself with the real dependency
once a method is called on it.

The @Inject annotation now accepts an optional argument "lazy" which
allows for turning off lazy dependency injection in specific cases.

Please read the new section in the Object Management chapter of
the Flow manual, included in this change set.

* Resolves: `#43819 <http://forge.typo3.org/issues/43819>`_
* Commit: `7e03bb9 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7e03bb9ed82540d47d10c7278e60a7f61cc924e0>`_

[BUGFIX] Mapping to subtype with [__type] fails
-----------------------------------------------------------------------------------------

The type of a target object can be manipulated by setting __type in the
form (or during action initialization when saving the form). This
however fails if the target subclass contains fields that the original
class does not have, because the property mapping is done before the
final class is extracted from the __type request variable.

To get this working, the process of getting the final class name is
moved before the property mapping.

If you wrote your own type converters, you might need to implement the
new getTargetTypeForSource() method if you do not extend the provided
AbstractTypeConverter of Flow.

* Fixes: `#32829 <http://forge.typo3.org/issues/32829>`_
* Commit: `e23dc49 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e23dc49cda973f4bdf255b352eab9efb3852861c>`_

[TASK] Remove cache has call in router caching aspect
-----------------------------------------------------------------------------------------

This change removes a call to "has" on the cache frontend, which is not
needed if we want to use the entry with "get". This improves the
performance when building a larger number of URIs.

* Commit: `ffa3068 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ffa30680ad75180db824dea740aea9ea5d82b5ff>`_

[TASK] Remove file_get_contents call in Cache FileBackend
-----------------------------------------------------------------------------------------

* Fixes: `#46343 <http://forge.typo3.org/issues/46343>`_
* Commit: `127c881 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=127c88101a479900e80a9a8326f97cc420d74b10>`_

[BUGFIX] Routing includes object arguments even though it should not
-----------------------------------------------------------------------------------------

Route::resolve() considered "__identity" arguments as internal and ignored them,
if they were not part of the respective Route defaults or uriPattern.
This change fixes this by only iterating through sub requests (marked with a "--")

* Fixes: `#45463 <http://forge.typo3.org/issues/45463>`_
* Commit: `890fda2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=890fda2e46eb3c3eb7147c3f985f847a65e03124>`_

[BUGFIX] Implement case-sensitivity switch for Query::equals()
-----------------------------------------------------------------------------------------

That was left as a todo and never done. Now it is possible to check
case-insensitive. Checking case-sensitive works depending on database
support, it can only be done if the database allows for case-sensitive
checking.

The change also trivially solves a todo about NULL checking in equals().

* Fixes: `#44520 <http://forge.typo3.org/issues/44520>`_
* Commit: `2951352 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2951352155ba0842c1f4276ca5200f04abd66cd0>`_

[BUGFIX] Constants use in YAML Configuration maintains type
-----------------------------------------------------------------------------------------

If a constant expression in the YAML configuration is used,
for example ``foo: '%PHP_VERSION_ID%'``, and the value
exclusively represents this constant (i.e. no additional string
concatenation like ``path: '%FLOW_PATH_DATA%Logs/Exception'``),
the value is substituted directly in order to maintain the initial
type of the constant.

Prior to this, a ``str_replace`` was done which resulted in a string
in every case no matter if the constant was meant to be an integer,
for example.

* Fixes: `#45864 <http://forge.typo3.org/issues/45864>`_
* Commit: `67f0b8b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=67f0b8b80ab981b37f8cc212e7a6669d7bc04cb7>`_

[!!!][BUGFIX] Expose timezone in JsonView's DateTime output
-----------------------------------------------------------------------------------------

This corrects the string formatting in JsonView regarding
DateTime objects. The additionally required Timezone offset
is appended as of ISO 8601 in order to not lead into timezone
issues after transferring the resulting JSON.

This is breaking in cases where the original incorrect behaviour
was worked around by subsequent processing of the transmitted
timestamp.

* Fixes: `#44997 <http://forge.typo3.org/issues/44997>`_
* Commit: `dfb87c1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=dfb87c1373ced4d18c0fe4cd8999820639366b82>`_

[BUGFIX] Fix getIdentifierByObject for lazy doctrine proxy
-----------------------------------------------------------------------------------------

This bug was introduces with Ib6e1eda1ac38677e84c46a441d099b2c5c1e6e24
and causes the content security functional test to fail. There was no
unit test or other indication for this behaviour, so this change adds
a unit test for the Doctrine persistence manager.

* Commit: `915b29a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=915b29ab03c5f6c39d30e2e0163708d89e1bbf3b>`_

[TASK] Change order of accessing identity in getIdentifierByObject
-----------------------------------------------------------------------------------------

This change improves the performance of getIdentifierByObject since
the EntityManager contains method is rather slow.

* Commit: `c9da4d5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c9da4d587687511703dc4709332bd4e601c96ed4>`_

[BUGFIX] Flow CLI again works for Windows command prompt
-----------------------------------------------------------------------------------------

Probably introduced with Ibd70e2dc8ff3a958a33ad0eb422060dc0fd8b799,
the Flow CLI call via the provided .bat file didn't work anymore
because the used ``$_SERVER['PHP_SELF']`` will behave differently
for the flow shell and the flow.bat file: in case of the shell,
the actual ``Scripts/flow.php`` file will be *included*, while in
case of the .bat file, the ``Scripts/flow.php`` file is immediately
called with PHP. This results in a different PHP_SELF value.

The ``FLOW_ROOTPATH`` value which has to be determined, now is built
manually in case of a ``DIRECTORY_SEPARATOR`` equaling a
Windows one.

Additionally, in order to still allow calling the flow executable
from arbitrary locations also for Windows, the flow.bat file
is adjusted a bit in order to not rely on being at the root
path when calling the file.

* Fixes: `#44000 <http://forge.typo3.org/issues/44000>`_
* Related: `#31642 <http://forge.typo3.org/issues/31642>`_

* Commit: `5590bde <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5590bded94b9a21d0eb11b5f497d49b5c2fd877f>`_

[BUGFIX] Redirect instead of raising "Entity not found" exception
-----------------------------------------------------------------------------------------

If you are logged in into a secured Flow project and delete the
corresponding db user (for whatever reasons) an exception "Entity not
found" is raised and not caught.

With this change the exception is caught and instead PolicyEnforcement
will throw an AuthenticationRequiredException, usually calling a
redirect to the configured login page.

* Resolves: `#29907 <http://forge.typo3.org/issues/29907>`_
* Commit: `7b1564b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7b1564bfa839be258fe2759491dba5db241d5e08>`_

[BUGFIX] Correctly handle boolean values with property injection
-----------------------------------------------------------------------------------------

This change fixes a bug in the property injection where an empty string
or 1 are used for representing a boolean value. This change forces the
value to be TRUE or FALSE when the value configured in Objects.yaml
is a boolean value.

* Resolves: `#45413 <http://forge.typo3.org/issues/45413>`_
* Commit: `4f67ebe <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4f67ebe472a176676b2e6dd7741db77441c7224a>`_

[BUGFIX] Account's expirationDate can be set NULL
-----------------------------------------------------------------------------------------

After setting the expirationDate once, it's impossible to set it
NULL again due to the typehint in the function parameters.

* Fixes: `#45629 <http://forge.typo3.org/issues/45629>`_
* Commit: `82b7b0b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=82b7b0b76e6fad97ec38d81ddd3da2359e18ae1d>`_

[TASK] Clean up JsonView and JsonViewTest internals
-----------------------------------------------------------------------------------------

Fix docblock and add array type hint to $configuration argument of
transformValue() and transformObject(); fix language in JsonViewTest
test names.

A tiny, non-functional change to Http\\Message is included.

* Commit: `d75f998 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d75f9981422ba9fed5255fd34279de2ec83afe5f>`_

[BUGFIX] Check inheritance in TypeHandling::isCollectionType()
-----------------------------------------------------------------------------------------

With this change TypeHandling::isCollectionType() does consider
inheritance when it comes to the checking it does. Thus a subclass of
SplObjectStorage or an implementation of Doctrine's Collection interface
will now be seen as a collection type.

* Fixes: `#44535 <http://forge.typo3.org/issues/44535>`_
* Commit: `59c0976 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=59c0976870264f59ca88b186f27b2a89c4c2cd4e>`_

[TASK] Use include with shutup instead of file_exists
-----------------------------------------------------------------------------------------

This change uses include with shutup operator instead of file_exists
checks for optimized performance.

* Fixes: `#46337 <http://forge.typo3.org/issues/46337>`_
* Commit: `0a84926 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=0a84926a859cd077c3c9d6f2744c01552805c045>`_

[BUGFIX] Flow Bootstrap now works if PhpUnit is used as Phar file
-----------------------------------------------------------------------------------------

If PhpUnit was used as a Phar file, the Flow Core Bootstrap failed
during initialization in Testing context because it tried to find
PhpUnit's autoloader. Since autoloading is already in effect when
using the Phar version, a simple check for the existence of a
PhpUnit class is sufficient.

* Commit: `21e5468 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=21e54686026649542814cab9c7f8d47c3699c57f>`_

[BUGFIX] Exception thrown in TypeHandling (follow up)
-----------------------------------------------------------------------------------------

When using isCollectionType() on an string, a warning is thrown.
The change id Iae59221cbd72677e6c18ad0a383792a798447253 introduced this.

* Resolves: `#45876 <http://forge.typo3.org/issues/45876>`_
* Commit: `2a8841d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2a8841d3a8ac1e940fce964d1f9e4c5457b054db>`_

[BUGFIX] Exception thrown in TypeHandling
-----------------------------------------------------------------------------------------

When using isCollectionType() on an unknown class, an exception is
caused by a warning PHP gives about that class being unknown.

The issue has been introduced together with the patch
I007b0faf486680ecfb2fe7c753ef4cabcf6d618c

This adds a check that the element is a known class before using
is_subclass_of() to prevent the exception.

* Fixes: `#45876 <http://forge.typo3.org/issues/45876>`_
* Commit: `988e05c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=988e05c29b61c2e4f1f71611f7d7171ab13616f1>`_

[BUGFIX] Correct method listing of cache FrontendInterface
-----------------------------------------------------------------------------------------

The documented listing of the method the cache's FrontendIterface
supports is now in sync with the actually supported methods.

* Commit: `6de5ac3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6de5ac3086f7ec8b57ff4447193b9a6450808249>`_

[TASK] Tiny tweaks to security documentation
-----------------------------------------------------------------------------------------

Some markup fixes to the security chapter.

* Commit: `d4a4189 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d4a4189cc08763cfbfe3a672b206a5d0678c6e3b>`_

[TASK] Add rendering date to documentation index
-----------------------------------------------------------------------------------------

This includes Ief5e120f763c53f998db8b261eea7e810146c2dc as well.

* Commit: `1d09cb2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1d09cb29c91b25fa42c4635fa0947f23f5d2c97c>`_

[TASK] Ignore Libraries in core:migrate commands
-----------------------------------------------------------------------------------------

This change makes the core:migrate commands ignore the folder
Packages/Libraries to avoid unintended side effects.

* Resolves: `#44398 <http://forge.typo3.org/issues/44398>`_
* Commit: `b097497 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b097497435d559617b7c04feda6c8137671b3fc7>`_

[TASK] Allow package key wildcards for excludeClasses
-----------------------------------------------------------------------------------------

The object.excludeClasses setting can now handle a trailing * as a
wildcard character in the package key.

* Commit: `2906824 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2906824777003eabcae17a84f2dcb56a9e496301>`_

[TASK] Make Aspects singletons
-----------------------------------------------------------------------------------------

This sets the scope of three aspects to Singleton in order to improve
the overall performance.

* Commit: `266ef94 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=266ef9405eec256c8a8d26c8b3c3fd15fc5c574e>`_

[BUGFIX] Dependency Injection: safeguard for malformed DocBlocks
-----------------------------------------------------------------------------------------

This adds a safeguard to the Dependency Injection Proxy Class Builder
which previously ended with a fatal error if client code contained a
malformed DocBlock

* Resolves: `#45219 <http://forge.typo3.org/issues/45219>`_
* Commit: `774d5a3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=774d5a32c71548ff69626b2c6ed4881254724ceb>`_

[FEATURE] Add unique entity validator
-----------------------------------------------------------------------------------------

This adds a validator for ensuring uniqueness of submitted
entities. It uses the entity identity properties to determine
the uniqueness of the entity. Made with intended use in create
& update actions using the action parameter validation.

* Resolves: `#44622 <http://forge.typo3.org/issues/44622>`_
* Commit: `e4377e5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e4377e565640c487042607195008f8b1c1bc861d>`_

[BUGFIX] Adjust YAML schemas to latest changes
-----------------------------------------------------------------------------------------

the CLI command "./flow configuration:validate" currently reports
invalid configuration for type "Settings" and "Objects" due to
outdated schema files.
This adjust respective schemas to recent Flow changes.

* Fixes: `#44602 <http://forge.typo3.org/issues/44602>`_
* Commit: `7a41f8b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7a41f8bd5fc5bdbcb05f9f424add621a0fa5f6dc>`_

[TASK] Tweak figures used in documentation
-----------------------------------------------------------------------------------------

Tweaks image inclusions in the sources and fixes some tiny markup
errors along the way.

* Related: `#44885 <http://forge.typo3.org/issues/44885>`_
* Commit: `22b0c7d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=22b0c7d847c190afc5b29fcb37e3399d25357dfe>`_

[TASK] Adjust reST documentation for docs.typo3.org
-----------------------------------------------------------------------------------------

Moves images around, adjust sources as needed, add Settings.yml.

Some source syntax fixes along the way.

* Resolves: `#44885 <http://forge.typo3.org/issues/44885>`_
* Commit: `e5b2639 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e5b2639284dbae9a16d51942812ca98dfc5a3e31>`_

[TASK] Add @api tags for methods in Resource
-----------------------------------------------------------------------------------------

This just adds missing @api tags to those methods we support as part of
the API.

* Commit: `ebadfb3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ebadfb3b3a775b56339007ba21edb7018cdcd781>`_

[BUGFIX] Fix high memory consumption of renderObjectDump()
-----------------------------------------------------------------------------------------

This change reduces the maximum recursion level for Doctrine Collection
dumps from 12 to 3. This reduces memory consumption during exception
handling and when using \\TYPO3\\Flow\\var_dump().

* Fixes: `#44278 <http://forge.typo3.org/issues/44278>`_
* Commit: `4e54aaa <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4e54aaa06849f6ddcb8bf48fed9089e75f0b02fe>`_

[TASK] Adds a documentation tip to keep type hinting
-----------------------------------------------------------------------------------------

This adds a tip to the PropertyMapping documentation
in relation to the MVC stack; mentioning how to not
lose type hinting capabilities due to index-accessing
controller's ``arguments`` array.

* Commit: `009fb0b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=009fb0b5230e9c6b22ab4f7e1117591960175dfb>`_

[BUGFIX] Prevent UriBuilder adding current namespaced arguments
-----------------------------------------------------------------------------------------

UriBuilder no longer removes namespaced arguments from the
parent request causing all arguments of namespaced sub request to
be added to new request even though addQueryString isn't set.

The bug was introduced in Iba56bfffa9d8f47670afb1297575607b1b0023a8

* Fixes: `#44139 <http://forge.typo3.org/issues/44139>`_
* Commit: `4064c29 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4064c298a56da4514b32901444d38872b475e776>`_

[BUGFIX] Make use of DateTimeValidator possible
-----------------------------------------------------------------------------------------

When one used Validate(type="DateTime") the ValidatorResolver would try
to use DateTime as the validator itself. This change fixes that.

* Fixes: `#40449 <http://forge.typo3.org/issues/40449>`_
* Commit: `6cdca9d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6cdca9d99b56542ce6eea5cf982ecbc7909610e8>`_

[BUGFIX] Fix code migration status command
-----------------------------------------------------------------------------------------

Calling flow:core:migrate --status is fixed by this change.

* Fixes: `#44397 <http://forge.typo3.org/issues/44397>`_
* Commit: `b7fa745 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b7fa745ce4563bd0d32095284296b1cc68db2f2e>`_

[TASK] Adjust suggested folder structure in Package Management section
-----------------------------------------------------------------------------------------

I7772051938a4306328108bacde34710c54fc3a69 introduced suggested
names for directories under Resources/Public.

This adjusts the suggested folder names as discussed and adds a link
to the ResourceManagement chapter.

* Related: `#42726 <http://forge.typo3.org/issues/42726>`_
* Resolves: `#13694 <http://forge.typo3.org/issues/13694>`_

* Commit: `ea26797 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ea2679715d92e404570200a17992c056bf91fef8>`_

[BUGFIX] Lock Doctrine ORM to version 2.3.x
-----------------------------------------------------------------------------------------

This change locks the Doctrine ORM to version 2.3.x to avoid unwanted
changes from sneaking in.

To be on the safe side, YAML and Dom Crawler from Symfony are locked
down as well (2.1.x and 2.2.x respectively).

* Fixes: `#44496 <http://forge.typo3.org/issues/44496>`_
* Fixes: `#44479 <http://forge.typo3.org/issues/44479>`_

* Commit: `4d27277 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4d27277a9e6869fd22a66bf1edb4800f47c83b7d>`_

[BUGFIX] Fix git error with "core:migrate --status" command
-----------------------------------------------------------------------------------------

Obviously there are some different ways git handles the --grep option
to the log command. This changes should make it work everywhere, and
uses the syntax actually spelled out in the help text.

* Fixes: `#44280 <http://forge.typo3.org/issues/44280>`_
* Commit: `1e14c97 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1e14c97cabb2e106e0dc5ef2096655a98621c695>`_

[BUGFIX] Fix migration error on missing Configuration directory
-----------------------------------------------------------------------------------------

For packages having no Configuration directory the core migration tool
died with an error message when trying to process configuration. This
is solved by checking for existence before trying to read any files.

* Fixes: `#43948 <http://forge.typo3.org/issues/43948>`_
* Commit: `c1aba30 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c1aba304a5d837771618bb498a0b58e7dcbac684>`_

[TASK] Some documentation fixes
-----------------------------------------------------------------------------------------

* Commit: `a7a3628 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a7a362804f5e154a0d74a1388043c2cace677fd2>`_

[TASK] Update link and thumbnail for one-page CGL
-----------------------------------------------------------------------------------------

* Related: `#43882 <http://forge.typo3.org/issues/43882>`_
* Commit: `cbf4702 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=cbf470282cb95ace0089d469ac9d8a9160b9bf3c>`_

[TASK] Adjust routing documentation to recent changes
-----------------------------------------------------------------------------------------

This fixes the routing examples provided with the definitive guide.

* Related: `#43589 <http://forge.typo3.org/issues/43589>`_
* Commit: `59dc58e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=59dc58efd03bd29507b6c8c3df739786de1b6318>`_

[BUGFIX] Silence warning on writing PackageStates.php
-----------------------------------------------------------------------------------------

When the file permissions on for example the configuration folder are
not correct a PHP warning is shown. This is shown on top of the
friendly error TYPO3.Setup message and should be hidden.

The only way to silence this is to use the shut-up operator in
sortAndSavePackageStates() inside PackageManager. Any exception or
error code thrown at that point are not catchable by a (setup)
controller.

* Fixes: `#42202 <http://forge.typo3.org/issues/42202>`_
* Commit: `87a50e9 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=87a50e978f482aea7656ff2faf8d6ddc270df19f>`_

[BUGFIX] Handle constant correctly in Doctrine\\Service
-----------------------------------------------------------------------------------------

The runDql() method in Persistence\\Doctrine\\Service didn't
use the passed by value for the hydrationMode correctly.

Now that value is considered to be an already resolved constant
as annotated and noted down in the method's signature.

* Fixes: `#44049 <http://forge.typo3.org/issues/44049>`_
* Commit: `70cb604 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=70cb604b783ce348cd192aa2cb50e01832b46176>`_

[TASK] Add ChangeLog for 2.0 beta 1
-----------------------------------------------------------------------------------------

* Commit: `21d6a69 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=21d6a69d63e0192b45a6d9e8341dcbf798a8fe64>`_

[TASK] Update composer.json with new dependencies
-----------------------------------------------------------------------------------------

* Commit: `aa45f04 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=aa45f04d0aff0e7bab73030e1e18390297806e49>`_

[TASK] Set FLOW_VERSION_BRANCH to 2.0
-----------------------------------------------------------------------------------------

* Commit: `36817a6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=36817a61b02bd7466fc607b3147ec445122029d1>`_

[TASK] Remove API annotation from View::canRender()
-----------------------------------------------------------------------------------------

With #40888 View::canRender() is no longer called from within
ActionController::resolveView().
As the framework no longer relies on that method to exist the
@api annotation is removed.

Besides this marks EmptyView deprecated.

* Related: `#40888 <http://forge.typo3.org/issues/40888>`_
* Related: `#42176 <http://forge.typo3.org/issues/42176>`_

* Commit: `6f03a9a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6f03a9a448b7d9981c0cc2bc40dea5f4be863ae4>`_

[TASK] Update references in the Guide
-----------------------------------------------------------------------------------------

Another update to references forvalidators, converters and Fluid
ViewHelpers.

* Commit: `14c861f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=14c861fafa5e42f361b302097e46c169c3b4f5e7>`_

[TASK] Update Readme.txt and Upgrading.txt files
-----------------------------------------------------------------------------------------

This updates the Readme.txt and Upgrading.txt files of TYPO3 Flow for
the release of 2.0.

* Commit: `80850d0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=80850d0fc3cf7fee5f016188d87e8652971c1186>`_

[TASK] Update Package Management section
-----------------------------------------------------------------------------------------

This adjusts the package management section of the TYPO3 Flow Guide to
the composer changes.

* Resolves: `#42726 <http://forge.typo3.org/issues/42726>`_
* Commit: `6606d48 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6606d48f0b9aa28ccddb7ba8604089b00a0c9a9a>`_

[!!!][TASK] Use \\ instead of _ for entity resources in Policies
-----------------------------------------------------------------------------------------

When defining entity resources in a Policy.yaml file, the entity type
had to be the class name with \\ replaced by _. With this change the
regular class name is to be used instead.

A code migration to adjust Policy.yaml files is part of the change.

* Resolves: `#43629 <http://forge.typo3.org/issues/43629>`_
* Commit: `e6c6ac5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e6c6ac5b53c1510739c03f0f065901bc3eff1199>`_

[TASK] Update Quickstart and Getting Started installation instructions
-----------------------------------------------------------------------------------------

Updates the download instructions to talk about composer instead of
unpacking archives.

* Commit: `6e18986 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6e18986e785b936907f90aa50c8cc60396f7cdde>`_

[BUGFIX] Invoking CLI from a different directory doesn't work
-----------------------------------------------------------------------------------------

When executing the TYPO3 Flow CLI from a directory that is
not equal to the root path and if the FLOW_ROOTPATH environment
variable is not set, Flow dies with an exception.

This change fixes this by falling back to the current directory in that
case.

* Fixes: `#31642 <http://forge.typo3.org/issues/31642>`_
* Commit: `81ed883 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=81ed883987a7efa78db18b61bc0204c6aef76126>`_

[!!!][BUGFIX] Route defaults have to be specified when creating URIs
-----------------------------------------------------------------------------------------

Currently when creating URIs one can omit route values that are defined
as defaults of the route.
This is not the intended behavior though, because with a lot of routes
in place this leads to the situation where it gets difficult to target
a certain route.
Thus for a route to match the given route values, one should have to
specify all the routing defaults exactly as they are specified by the
route (except for when a route part appears in the uriPattern).

This is a breaking change if you used Router or UriBuilder to create
URIs without specifying all defaults (see #43589 for details).
Besides, all Fluid ViewHelpers that use the UriBuilder now require the
action argument to be specified.

* Fixes: `#43589 <http://forge.typo3.org/issues/43589>`_
* Commit: `f17a227 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f17a2274b512a0b8cbf8810a0b73600cb9736ff9>`_

[BUGFIX] Use correct DomCrawler (again)
-----------------------------------------------------------------------------------------

The latest manifest update downgraded the DomCrawler, breaking some
Fluid tests.

* Related: `#43822 <http://forge.typo3.org/issues/43822>`_
* Commit: `0d62cf6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=0d62cf61b438110e65df910e0cbbcbe087c504c5>`_

[FEATURE] Add array and object support for NotEmptyValidator
-----------------------------------------------------------------------------------------

This patch resolves the problem that empty arrays are not correctly
validated when using the NotEmpty validation annotation. Arrays
and Countables that are empty will now trigger an error.

Follow-up patch to https://review.typo3.org/14707

* Resolves: `#42467 <http://forge.typo3.org/issues/42467>`_
* Commit: `d228933 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d22893332b5457c73567a8c1b8cc2906d3d22b95>`_

[BUGFIX] Handle missing - but registered - packages gracefully
-----------------------------------------------------------------------------------------

In production a missing, but registered package leads to a fatal
error. Handle this situation gracefully.

Allow logging early on in the package manager.

* Fixes: `#42342 <http://forge.typo3.org/issues/42342>`_
* Commit: `f0ef163 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f0ef1636d0166263fd4696068d1d85476bea065b>`_

[TASK] Replace references to "Flow 1.2"
-----------------------------------------------------------------------------------------

This fixes some documentation/comments referring to "Flow 1.2"

* Fixes: `#43839 <http://forge.typo3.org/issues/43839>`_
* Commit: `886da55 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=886da55db84fef9943a92218a9f5596f7b0b9a95>`_

[BUGFIX] Throw ViewNotFoundException if view could not be resolved
-----------------------------------------------------------------------------------------

This improves the resolving of views by removing the canRender()
checks from ActionController::resolveView as discussed in #42176.

Besides this skips the creation of the obsolete NotFoundView in favor
of throwing a ViewNotFoundException.

This also adds overdue unit tests for the ActionController.

* Fixes: `#40888 <http://forge.typo3.org/issues/40888>`_
* Fixes: `#40857 <http://forge.typo3.org/issues/40857>`_
* Related: `#42176 <http://forge.typo3.org/issues/42176>`_
* Commit: `9f99c84 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9f99c840136955d14f5c39f0de8ac0a5f7ee1913>`_

[FEATURE] Taggable sessions
-----------------------------------------------------------------------------------------

This introduces the ability to tag a session and retrieve remote
sessions by tag through the Session Manager.

* Resolves: `#43832 <http://forge.typo3.org/issues/43832>`_
* Commit: `3a2c116 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3a2c1165a55a076c1a86ddac282043256c67165e>`_

[TASK] Prepare composer manifest for release
-----------------------------------------------------------------------------------------

Adjust some dependencies to pull in new stable releases only, instead
of the latest development version.

* Related: `#43822 <http://forge.typo3.org/issues/43822>`_
* Commit: `7552f05 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7552f0558a94f793db931a951dc3859b13605839>`_

[TASK] Update references in the Guide
-----------------------------------------------------------------------------------------

Freshly rendered references for commands, validators, converters,
ViewHelper and annotations.

* Commit: `96cb52d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=96cb52ddf0f61a3d86fc4fc9aeb9fea2a2b9a427>`_

[BUGFIX] Fix race condition in session shutdown
-----------------------------------------------------------------------------------------

This protects sessions against being revived through the shutdown
method even though they were destroyed remotely in the meantime.

This patch also contains a small modification and related test to make
sure that incoming session cookies are not blindly sent back to the
user agent in the response. Instead, a clean, new session cookie with
the parameters set in Flow's settings is created.

* Resolves: `#43673 <http://forge.typo3.org/issues/43673>`_
* Commit: `4dac593 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4dac593a462b55165f0df3a794180fee1381e4f5>`_

[TASK] Add reference for predefined constants to documentation
-----------------------------------------------------------------------------------------

This adds a new page in Chapter V, Appendixes, listing the
predefined constants Flow introduces, and their intended meaning.

* Resolves: `#43609 <http://forge.typo3.org/issues/43609>`_
* Commit: `ab44a1b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ab44a1b7087aae2bb59746426d59bc19e81fa9dc>`_

[FEATURE] Allow configuration processing in code migrations
-----------------------------------------------------------------------------------------

This adds the new method ``processConfiguration`` to AbstractMigration.

It is given a configuration type, a processor and an optional flag
stating whether or not the processed configuration should be saved.

The processor is a Closure and is handed the parsed configuration of the
package under migration, for each found file separately. If you need to
modify the configuration, make sure to use pass-by-reference for the
processor configuration parameter in addition to setting the $saveResult
flag to TRUE.

* Resolves: `#43089 <http://forge.typo3.org/issues/43089>`_
* Commit: `a3c0c8b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a3c0c8b171d65fb545cbc6c6e1a071f0aacb60a4>`_

[TASK] Make system call to php binary reliable, especially on Windows
-----------------------------------------------------------------------------------------

This solves execution of php binary on windows environments with paths
containing whitespace and special characters (like round brackets). On
windows, commands containing white spaces must be quoted, but quoted paths may
not be escaped, which escapeshellcmd() wrongly does.

This is solved by using escapeshellarg() on windows instead and also adds more
verbose exception messages in the case of failure.

* Resolves: `#35916 <http://forge.typo3.org/issues/35916>`_
* Commit: `17c31e3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=17c31e32c08a8a98bd851226137804c243bfeac1>`_

[BUGFIX] Fix session usage in functional test cases
-----------------------------------------------------------------------------------------

This fixes a bug in the FunctionalTestCase which resulted in a fatal
error in Session->start().

Testable HTTP is now always enabled. The enableTestableSecurity() method
(deprecated since 1.1) has been removed as well.

* Fixes: `#43590 <http://forge.typo3.org/issues/43590>`_
* Commit: `5629be5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5629be5b6e0135d087f64170cf7b4b6cac31adfb>`_

[TASK] Make getPropertyInternal() protected
-----------------------------------------------------------------------------------------

The getPropertyInternal() method obviously is intended for internal use
in the ObjectAccess class. This change makes it protected.

* Resolves: `#43617 <http://forge.typo3.org/issues/43617>`_
* Commit: `8d7e2cf <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8d7e2cf8d34fd65b9719bee4915b1b6a42439241>`_

[FEATURE] Destroy session explicitly in logout
-----------------------------------------------------------------------------------------

This change moves the call to Session->destroy() from a signal
to the AuthenticationProviderManager that already has the current
session as a dependency.

The "emitLoggedOut" signal is emitted before the session is
destroyed to allow other slots to inspect the session.

* Resolves: `#43575 <http://forge.typo3.org/issues/43575>`_
* Commit: `15e1aa0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=15e1aa055fa153e13d57cd181a63f908f2f5525b>`_

[BUGFIX] Fix arguments check in buildConstructorInjectionCode, allow NULL
-----------------------------------------------------------------------------------------

It was not possible to pass NULL as constructor arguments, because of
the use of isset() instead of array_key_exists().

Also a few other places needed to be changed and some tiny (unrelated)
tweaks were made.

* Fixes: `#38988 <http://forge.typo3.org/issues/38988>`_
* Commit: `798d2b3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=798d2b324dd420c64cfbfad6359befdadbb59f45>`_

[FEATURE] Touch remote sessions and tag with account info
-----------------------------------------------------------------------------------------

This introduces two new features: updating the last activity timestamp
of a remote session through a new method "touch()" and tagging sessions
with their respective account (if any).

* Resolves: `#43491 <http://forge.typo3.org/issues/43491>`_
* Commit: `c268993 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c268993d9e41e0fdfbc937b94a5cf230c7ba7693>`_

[!!!][FEATURE] Remote session management
-----------------------------------------------------------------------------------------

This introduces the foundations for remote session management – that is,
inspection, modification and destruction of sessions which are not
currently active in the browser running the current HTTP request

This patch also REMOVES the PhpSession implementation and configures
the new, Flow-native implementation to be the default session handler.

If you provided specific configuration for session cookies through
TYPO3:Flow:Session:PhpSession:*, you will need to adjust your settings
to use options in TYPO3:Flow:Session:* instead.

This change set also contains a new type converter which is capable of
converting a session identifier to a session object.

* Resolves: `#43376 <http://forge.typo3.org/issues/43376>`_
* Commit: `986ad3a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=986ad3a9ae9554c569b70596f7d5bb0cfe0dbdf3>`_

[TASK] Revert exclusion of classes with broken PSR-0 in DomCrawler
-----------------------------------------------------------------------------------------

This reverts commit ee8f8e1d898c15549c22278e3fe80cd5702df182 (source is
Id3fbb8ad5154c633b7153b4f8eef742f385b05a3).

The fix is no longer needed, as DomCrawler has been fixed, see
the pull request at https://github.com/symfony/DomCrawler/pull/7

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `4f162e2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4f162e24c5f99839bacc029052ed8fd92928c5dd>`_

[BUGFIX] Regard wildcard in PropertyConfiguration shouldMap()
-----------------------------------------------------------------------------------------

Using 'name.*' in property mapping configuration did not work for
fields added on the client, because shouldMap() would reject those
fields before the configuration was even checked.

* Fixes: `#43387 <http://forge.typo3.org/issues/43387>`_
* Commit: `bd0acd4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=bd0acd47f330e7c71f5af7165e8d1f71c65d5d25>`_

[BUGFIX] Check for installation of phpunit by composer
-----------------------------------------------------------------------------------------

Ib4b6c68c03590444addb7c2e5af89b2a2d90051f introduced a regression
for running functional tests when composer is used in the project,
but PHPUnit is still installed using PEAR.

This change adds an additional check to verify if phpunit is actually
installed in the Libraries folder. By doing so the Bootstrap will
fall back to the PEAR installation of phpunit.

* Resolves: `#43377 <http://forge.typo3.org/issues/43377>`_
* Commit: `a495545 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a4955450e2a23d943176c21a6ce11b4c2fa6b48a>`_

[BUGFIX] Exclude parameters of the current request from created URIs
-----------------------------------------------------------------------------------------

Since https://review.typo3.org/#/c/15261/ the arguments
of the current/uri-building-origin request were added
without although addQueryString was FALSE.

The UriBuilder now only keeps the requestArguments on
non-involved requestNamespaces.

* Resolves: `#42770 <http://forge.typo3.org/issues/42770>`_
* Commit: `feeb87c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=feeb87c5ee2f3a7edaa0d8c2bff7f67c262660f1>`_

[TASK] Cosmetic fixes in Http Cookie and Response
-----------------------------------------------------------------------------------------

This adds a missing type hint in Cookie and moves the status code array
in Response to a method: that way all the status codes don't appear in
debug backtraces anymore.

* Commit: `75ba1c1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=75ba1c190440edfd1c4c2e5c14054445c96eb676>`_

[BUGFIX] Package loading must be ordered by dependencies
-----------------------------------------------------------------------------------------

In order to ensure proper merging of configurations packages most
be loaded ordered by dependencies.

This should be handled by ordering PackageStates accordingly.

* Fixes: `#42730 <http://forge.typo3.org/issues/42730>`_
* Fixes: `#28672 <http://forge.typo3.org/issues/28672>`_

* Commit: `f9100b0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f9100b04ec5e7388a358bfa5540f6752b66b7a3d>`_

[!!!][BUGFIX] Respect limit/offset constraints when counting results
-----------------------------------------------------------------------------------------

Until now QueryResult::count() discarded limit constraints that were
active for the affected query, so
$query->setLimit(3)->execute()->count() could return a value > 3.
If the query had an offset Flow even threw an exception.

This changeset adjusts the Query so that limit and offset constraints
are taken into account. It furthermore unsets the offset in the query
in order to circumvent the exception.

This is a breaking change if you relied on Query::count() to always return
*all* results regardless of a specified limit. In this case better generate
multiple QueryResults (they're only created in-memory until you actually
access them)

* Fixes: `#42955 <http://forge.typo3.org/issues/42955>`_
* Commit: `d46eef4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d46eef43f377c15bd8987bc1c61d519e868d875a>`_

[TASK] Code cleanup
-----------------------------------------------------------------------------------------

This change

* fixes a number of CGL violations and typos
* changes public to protected in PolicyService
* removes an @api annotation
* adds a @throws annotation
* removes an unused use statement
* Commit: `0695c46 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=0695c46280d8222f355d92da896aecedb73dc0e9>`_

[FEATURE] Remove trailing slash from routes for empty subroutes
-----------------------------------------------------------------------------------------

Flow throws an exception if a route contains a trailing slash in
order to avoid duplicate slashes in URIs and to make it possible
to add some kind of global default suffix to all URIs.
When using sub routes and a prefix with a trailing slash in the
uriPattern of the main route (e.g. uriPattern: 'blog/<BlogSubroutes>')
this leads to an unwanted exception if there is an empty (fallback)
subroute because the merged uriPattern would contain a trailing
slash ("blog/").

This change strips trailing slashes from merged uriPatterns if the sub
routes uriPattern is empty.

* Resolves: `#31777 <http://forge.typo3.org/issues/31777>`_
* Commit: `4690433 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=46904338747b4c490d73e4e46f5aeef281a2135e>`_

[BUGFIX] Fix handling of paths with dots in getLocalizedFilename()
-----------------------------------------------------------------------------------------

When a path like resource://TYPO3.Neos/Public/JavaScript/ is handed to
getLocalizedFilename(), it tries to check for the existence of
resource://TYPO3.en.Neos/Public/JavaScript/ - which breaks, unless you
happen to have a package TYPO3.en.Neos activated.

This change fixes this by using the basename in the check for an
extension.

* Fixes: `#43195 <http://forge.typo3.org/issues/43195>`_
* Commit: `fefb00e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=fefb00eadefe768c1e8415fc6faac6b1f84c81bc>`_

[TASK] Add doctrine /bin/ folder to .gitignore file
-----------------------------------------------------------------------------------------

* Commit: `28c27ed <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=28c27ed8db97467755b19c340e0c9496b690ac72>`_

[TASK] Allow use of composer-installed PHPUnit in Testing context
-----------------------------------------------------------------------------------------

The Testing context loads PHPUnit for functional tests. If using
PHPUnit installed via composer, this needs to be handled differently
than for a PEAR-installed setup.

* Commit: `0e1ac1c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=0e1ac1c88c9a25f24333780e259dc4fc98b9bffa>`_

[BUGFIX] FlowSession: Fixed renewId()
-----------------------------------------------------------------------------------------

This patch provides a new implementation of FlowSession's renewId()
method. It previously loaded all data from the old cache entry in order
to write it into a cache entry with the new session identifier. This
effectively overwrote any existing session-scoped object which existed
in the old cache data.

The new implementation uses a session identifier independent internal
storage identifier which doesn't change on renewing the public session
identifier. This way we don't need to move around session data, but
can simply store a new mapping between session id and storage id.

This patch also lets the HTTP Request store only the baseUri instead of
the whole settings array which leads to a smaller footprint and less
information stored in a session (as the current request is, in most
cases, part of the serialized session data).

* Resolves: `#43110 <http://forge.typo3.org/issues/43110>`_
* Commit: `1b6267f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1b6267f73f9ab74ba4a6ba719e078ce530bf1b6f>`_

[TASK] Rename csrfStrategy and csrfTokens member variables
-----------------------------------------------------------------------------------------

The csrfStrategy and csrfTokens member variables have weird names,
since they protect against CSRF they should rather be named
csrfProtectionStrategy and csrfProtectionTokens.

This change adjusts the Security\\Context internals accordingly.

* Commit: `28f170d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=28f170d85a46f7ad6363c91e825e8b776575143d>`_

[FEATURE] Add logging of resource access decision voting
-----------------------------------------------------------------------------------------

This change adds a logging aspect for decideOnResource() to log votes
analogous to what is done for decideOnJoinPoint().

* Resolves: `#43091 <http://forge.typo3.org/issues/43091>`_
* Commit: `39dd293 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=39dd293d0bfb8d57608b37643c62764548df99ff>`_

[TAKS] Tweak and clean up code migration
-----------------------------------------------------------------------------------------

This change cleans up the code a little by fixing some CGL violations
and moving some code around.

Packages in Libraries are now skipped by default (was Vendors before).

If available, composer's autoload.php is used instead of manually
requiring class files.

* Commit: `8a1e24b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8a1e24b618ac6bdf0c7feb0af88585a63f42651c>`_

[TASK] Fix tiny FLOW3 leftover in docblock
-----------------------------------------------------------------------------------------

* Commit: `8daa495 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8daa495e5a6d1677334d6a29be353652dc3324e7>`_

[TASK] Update documentation to composer changes
-----------------------------------------------------------------------------------------

This updates the documentation to fix the most prominent errors and
inconsistencies regarding package handling and file locations that were
caused by the composer changes.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `98395c7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=98395c76c65efc477d2bf7e3b6dfc159b99f6153>`_

[BUGFIX] Fix FlowSession initialization
-----------------------------------------------------------------------------------------

This patch fixes the FlowSession initialization for non HTTP-Requests.
Previously the initializeObject() method was trying to retrieve the
HTTP request even from a CLI request handler, resulting in a fatal
error.

Additionally this patch now defines a default storage backend
(FileBackend) for FlowSession. Therefore it's now sufficient to enable
FlowSession in Objects.yaml for getting started.

The garbage collection now is more reliable and triggered when a session
is resumed instead of when the shutdownObject() method is called.

* Resolves: `#42801 <http://forge.typo3.org/issues/42801>`_
* Commit: `beac827 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=beac8272f684c69cc08df4b5f5e90736279aa654>`_

[BUGFIX] Fix composer manifest detection
-----------------------------------------------------------------------------------------

The method findComposerManifestPaths() would return wrong results if
the list of found JSON files was in the "wrong" order. Adding a call to
asort() makes the longer paths come later in the list and fixes the
behavior.

Also the direct detection of a manifest is fixed and a useless
condition is removed.

* Fixes: `#42807 <http://forge.typo3.org/issues/42807>`_
* Commit: `bc8e604 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=bc8e604853889861e23cd78da170a32e4c7731a1>`_

[TASK] Handle InheritanceType annotation more robust
-----------------------------------------------------------------------------------------

When specifying InheritanceType but no heirs exist, no longer
an exception will be thrown. Instead inheritance will be disabled
to allow specifying InheritanceType "for future use".

* Resolves: `#27283 <http://forge.typo3.org/issues/27283>`_
* Commit: `f08339d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f08339dcf8751f28c4843238e006a496ab8456cd>`_

[FEATURE] Allow arrays to be set via Object.yaml property values
-----------------------------------------------------------------------------------------

This introduces the option to also set arrays as plain native values
in Objects.yaml. This allows settings like the following::

  Acme\\Foobar\\Domain\\Repository\\BazRepository:
    properties:
      defaultOrderings:
        value:
          creationDate: 'ASC'

* Resolves: `#42539 <http://forge.typo3.org/issues/42539>`_
* Commit: `fd2178c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=fd2178cfa3cf880cd3add52189e517470b30eb4c>`_

[BUGFIX] Fix missing argument and superfluous trailing slash
-----------------------------------------------------------------------------------------

A few errors sneaked into Ifb6612a808e8cd8ee892de727dd961287a119152.

* Commit: `2338ac6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2338ac6491960005dab4f9741e829931efdd3ad8>`_

[TASK] Align signatures of methods involved in creating package
-----------------------------------------------------------------------------------------

The docblock of PackageFactory::create() was wrong, and the manifestPath
is now optional. PackageManager is adjusted as needed.

* Commit: `ad141e0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ad141e0bfe0e0556d68db5127724dde604319a7b>`_

[!!!][FEATURE] Check validator options and make them self-documenting
-----------------------------------------------------------------------------------------

Validators now must declare any options they accept using the class
property $supportedOptions. It is indexed by option name and
holds an array for each option giving the default value,
a description, type and an optional required flag.

This is used to check accepted options and to generate option
documentation for the validator reference documentation.

* Resolves: `#37820 <http://forge.typo3.org/issues/37820>`_
* Commit: `d374b12 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d374b12f2e7d13142ffc3ea9078ff3ba50ca7758>`_

[BUGFIX] Throw proper exception in ConfigurationBuilder
-----------------------------------------------------------------------------------------

Add a check if the return value of get_class_methods() used in
autowireProperties() actually is an array. Throw an exception if it is
not, as this should not happen.

* Fixes: `#41809 <http://forge.typo3.org/issues/41809>`_
* Commit: `d488398 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d488398654c2a1a88ec736aa38d1c8cb2aaa615c>`_

[TASK] Add checks for composer manifest in Package
-----------------------------------------------------------------------------------------

The existence of a Composer manifest has been a soft requirement,
make it hard.

* Commit: `2ff9a04 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2ff9a044ffa8457b71127319706c31937a9dc017>`_

[TASK] Cleanup use statements with leading backslash
-----------------------------------------------------------------------------------------

An almost purely cosmetic issue, but still: use always takes fully
qualified class names, thus no leading backslash should be used.

* Commit: `662fed7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=662fed794a7a8eee48ea1057b0f374305d864cb0>`_

[BUGFIX] Consider only a packages top-level composer manifest
-----------------------------------------------------------------------------------------

For different scenarios it is allowed for a package to contain more
than one composer-manifest. For example in tests or if a package
bundles several other packages. Only the root-manifest should be
evaluated by the PackageManager.

* Fixes: `#42516 <http://forge.typo3.org/issues/42516>`_
* Commit: `a148ca1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a148ca1ed1ded30ef8ecba4cdab2a0a575bd2c67>`_

[FEATURE] Native PHP-based session handler
-----------------------------------------------------------------------------------------

This introduces an alternative session implementation which is based on
the backend modules of the Flow Cache framework. All cache backend
implementations available for caching (PDO, Redis, Apc, Memcache etc)
can now be used for storing session data.

* Related: `#42366 <http://forge.typo3.org/issues/42366>`_
* Resolves: `#42403 <http://forge.typo3.org/issues/42403>`_

* Commit: `5b56ade <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5b56ade837f86ecb80678392b229cffd691232f3>`_

[TASK] Small design corrections in documentation part II
-----------------------------------------------------------------------------------------

Tweaks the error output in the New.html template. Some other tiny
corrections.

* Commit: `e311c25 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e311c25168a731a61379561107b4b9ef3108d3dc>`_

[TASK] Make Mvc\\Controller\\Exception extend Mvc\\Exception
-----------------------------------------------------------------------------------------

Formerly the exception subclassed FLOW3\\Exception directly.

* Resolves: `#42785 <http://forge.typo3.org/issues/42785>`_
* Commit: `2c27eb1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2c27eb19fc8c6ba777c2a542bebebc3c6fffa8c7>`_

[FEATURE] Add simple array insight in HTML debug backtrace
-----------------------------------------------------------------------------------------

In the visual HTML debug backtrace, now array arguments get an
additional title attribute, allowing to see the runtime values
of the particular array when hovered with the mouse.

Such a tooltip would look like::

  array(2)
    integer 0 => Acme\\FooBar\\SomeObject singleton object proxy
    integer 1 => string "indexAction" (11)

* Commit: `366174f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=366174f3d641d4969f748e35f483177c53a20efd>`_

[FEATURE] Show package keys in schema migration listing
-----------------------------------------------------------------------------------------

Additionally show the related package keys in the
doctrine:migrationstatus command listing. For this,
it brings a new PackageManager method ``getPackageOfObject()``
that allows retrieving a package by a package's member's
class name.

* Resolves: `#42011 <http://forge.typo3.org/issues/42011>`_
* Commit: `4b04b7d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4b04b7dcfec6b54e60632056869dfe3eb4a9b831>`_

[TASK] Fixed wrong filename in Documentation
-----------------------------------------------------------------------------------------

The documentation used a wrong filename for a code listing
(BlogRepository instead of PostRepository).

* Commit: `417a571 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=417a57148b8196eae55da7c4631c07779418013d>`_

[FEATURE] Allow integer value as timestamp in DateTimeConverter
-----------------------------------------------------------------------------------------

The DateTime TypeConverter cannot transform integer values to
a DateTime object because of a strict check for string.

Accept integer values and also assume plain digits to be
a timestamp and use "U" as date format if no additional
configuration is given.

Additionally change the is_numeric() checks to ctype_digit()
as is_numeric() would also allow float values.

* Resolves: `#41989 <http://forge.typo3.org/issues/41989>`_
* Commit: `4c80098 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4c800987247b122a91eb3e2a599f2e8eb9ad57af>`_

[FEATURE] Type converter for HTTP URIs
-----------------------------------------------------------------------------------------

This provides a type converter, converting simple strings
into their URI representations. This allows convenient type
converting for use in action methods.

* Resolves: `#42025 <http://forge.typo3.org/issues/42025>`_
* Commit: `b9fb686 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b9fb6863e088125b353d4ff9dc941de042d41fd7>`_

[FEATURE] Allow class constants in Configuration
-----------------------------------------------------------------------------------------

Currently, only plain PHP constants are allowed for substitution in
Configuration files. This changes the regular expression in order to
match class constants too.

So not only ``%PHP_VERSION%`` would be possible, but also, for example,
``%TYPO3\\FLOW3\\Core\\Bootstrap::MINIMUM_PHP_VERSION%``.

* Resolves: `#41358 <http://forge.typo3.org/issues/41358>`_
* Commit: `50832ab <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=50832abe17af1b8c37eb4fa84d0d87d8039c7a3f>`_

[BUGFIX] ObjectSerializer not capable of Collections
-----------------------------------------------------------------------------------------

Serializing Objects containing properties being a
Doctrine Collection fails with an exception since the
ObjectSerializer is not capable of recognizing them.

This change adds support for Collection properties in objects
and arrays.

* Resolves: `#42715 <http://forge.typo3.org/issues/42715>`_
* Commit: `a41d018 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a41d018e241abef08656daeea2920204dd78c72c>`_

[TASK] Small code cleanup in Http Request Handler
-----------------------------------------------------------------------------------------

* Commit: `2cc6c24 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2cc6c24482b63623fd5904415703b667a323d2ff>`_

[FEATURE] Cache Frontend: getByTag() now returns identifiers
-----------------------------------------------------------------------------------------

This changes the behavior of getByTag() to not only return a
numeric array of entry values but now index them with their
entry identifier.

* Resolves: `#42761 <http://forge.typo3.org/issues/42761>`_
* Commit: `5cc198c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5cc198c92686dd07ec834b5ac72ed9f0f55820b3>`_

[BUGFIX] Fix unit test for PersistenceQueryRewritingAspect
-----------------------------------------------------------------------------------------

The solution for #42601 broke one test in the
PersistenceQueryRewritingAspectTest.

* Fixes: `#42758 <http://forge.typo3.org/issues/42758>`_
* Commit: `3d94686 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3d946860c611b601492acd59a031d654d3503daa>`_

[BUGFIX] Fix functional BrowserTest in Neos context
-----------------------------------------------------------------------------------------

The functional BrowserTest in Flow (added as part of the solution to
issue #42049) fails when run in a Neos context. This is caused by the
different routes configuration.

The change tweaks the route used in the test slightly.

* Fixes: `#42756 <http://forge.typo3.org/issues/42756>`_
* Commit: `9736f94 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9736f94532c3776154e701354559fa3dba67705e>`_

[TASK] Use Doctrine 2.3 ORM and adjust as needed
-----------------------------------------------------------------------------------------

This adjusts our annotation driver to the changes in Doctrine 2.3 that
were breaking.

Also it adds the code needed to support new features:

* NamedNativeQueries annotation
* SqlResultSetMappings annotation
* Table->options
* DiscriminatorColumn->columnDefinition
* AssociationOverrides annotation
* AttributeOverrides annotation
* CustomIdGenerator annotation

Furthermore it requires doctrine/data-fixtures now, something we
previously had packaged into our Doctrine.Common package.

This change drops three changes we had applied to the stock packages
before:

* ORM - Throw exception if no identifier can be found in UnitOfWork
* ORM - In proxies add docblocks and move __wakeup() call around
* DBAL -  Fix connection charset with MySQL for PHP < 5.3.6
  (see https://review.typo3.org/4587).

* Resolves: `#40863 <http://forge.typo3.org/issues/40863>`_
* Commit: `b807ceb <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b807ceb06695ae742da2be7e2d9b3d51f21bfd97>`_

[TASK] Tweak exception message for not settable property
-----------------------------------------------------------------------------------------

This explains the possible reason for a not settable property
a bit more and describes how to solve the mentioned problem.

* Commit: `667ff17 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=667ff177cda4f6dff51ab06599e2d7da46062406>`_

[BUGFIX] Enforce Query Rewriting more reliably
-----------------------------------------------------------------------------------------

This initializes the security context if it hasn't been initialized
when the PersistenceQueryRewritingAspect becomes active.

Previously it could happen that entities which should be covered by
a policy are visible to anonymous users.

* Resolves: `#42601 <http://forge.typo3.org/issues/42601>`_
* Commit: `9af3204 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9af3204b3ceb08b488370d6d85802cac87821154>`_

[BUGFIX] Tweak help output, output version
-----------------------------------------------------------------------------------------

The help output was a bit clumsy regarding the name of Flow
and did not output the version (since it is missing in the manifest).

* Commit: `b6e3faa <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b6e3faac8a8ba0de37364b40e2ecd48c72368922>`_

[TASK] Rename Phoenix to Neos
-----------------------------------------------------------------------------------------

This change adjusts some technically irrelevant uses of Phoenix to
Neos, just for completeness.

* Related: `#41668 <http://forge.typo3.org/issues/41668>`_
* Commit: `c45b234 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c45b234356c9a3cde3160598a719a8a56a9ef648>`_

[!!!][BUGFIX] Http\\Uri constructor throws exception on invalid Uri
-----------------------------------------------------------------------------------------

The constructor of the Uri object now checks the return value
of the parse_url method and throws an exception if this returns
anything else than a valuable array, because in this case the
given Uri is considered seriously malformed.

This is considered breaking because prior to this change,
the Uri just silently was created with all empty values.

* Fixes: `#42511 <http://forge.typo3.org/issues/42511>`_
* Commit: `1b03b89 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1b03b89c9a61c5a8066544929a9be590eb3521b3>`_

[BUGFIX] Introduce HTTP Response::createFromRaw()
-----------------------------------------------------------------------------------------

The Response::createFromRaw method halted if a Set-Cookie header
arrives due to lacking handling.

This brings an implementation to parse the Set-Cookie directive
as described in RFC 6265 Section 5.2. The Response::createFromRaw
method passes the Set-Cookie header data to this new implementation
in order to create a Cookie object from it.

* Commit: `c17a95d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c17a95dbb96099897924493b92ea822d9c9fa6d6>`_

[BUGFIX] Initialize resource wrapper before session
-----------------------------------------------------------------------------------------

If you try to attach a resource-dependent object to a session, this
will fail, as the _wakeup() method is called before the resource
wrappers are initialized.

This patch makes sure that the resource framework is initialized
before the session framework in the standard runtime sequence of the
bootstrap.

* Fixes: `#42434 <http://forge.typo3.org/issues/42434>`_
* Commit: `84ef743 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=84ef743d1530b5344b2599efea211bd311f9e16c>`_

[FEATURE] Identify key pair by fingerprint in RsaWalletService
-----------------------------------------------------------------------------------------

This change uses SSH compatible fingerprints of the RSA public
key instead of a random UUID to store keys. This allows to have
a consistent reference of keys across systems.

This change is backwards-compatible with the old behavior, because#
stored keys can still be used with their generated UUID.

* Resolves: `#42355 <http://forge.typo3.org/issues/42355>`_
* Commit: `8a706f2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8a706f20a7bd3cd34f08778a52a40acf35f17313>`_

[BUGFIX] Support named indexes in multivalue translation labels
-----------------------------------------------------------------------------------------

* Resolves: `#42169 <http://forge.typo3.org/issues/42169>`_
* Commit: `71318ee <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=71318ee5819bc78a04d2c632774ac0abb13b946f>`_

[BUGFIX] Typo in setfilepermissions Script
-----------------------------------------------------------------------------------------

This fixes the output of the setfilepermissions script to the correct
spelling of TYPO3.

* Fixes: `#42368 <http://forge.typo3.org/issues/42368>`_
* Commit: `c3371af <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c3371afade3336c3ded27b99898ba05a5474f6fa>`_

[BUGFIX] Fix sign method in RsaWalletService
-----------------------------------------------------------------------------------------

Fixes the sign method to use the actual key string for
openssl_sign and adds a unit test for that.

Additionally a wrong return type is fixed in the interface.

* Commit: `e63ab73 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e63ab7329b4887455e1248611a5d8564d57de1f7>`_

[TASK] Tighten package key check a little
-----------------------------------------------------------------------------------------

The pattern used to check for a valid package key was made less strict
during composer integration. Although composer itself imposes almost no
restrictions, packagist requires a "vendor/name" format.

This changes thus adjusts the PATTERN_MATCH_PACKAGEKEY constant to
require a dot in the package key.

* Resolves: `#42319 <http://forge.typo3.org/issues/42319>`_
* Commit: `9762f62 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9762f6271c1bedbffe7295dfc9281e30a6d029a1>`_

[BUGFIX] Make HTTP_HOST not always followed by port colon
-----------------------------------------------------------------------------------------

If there is no port given, a trailing colon for the HTTP_HOST
is not allowed to follow.

* Fixes: `#42241 <http://forge.typo3.org/issues/42241>`_
* Commit: `53a6fde <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=53a6fde577e9e55792b8217b9874a286b3f75438>`_

[TASK] CGL-Documentation - Add a notice about byte order mark
-----------------------------------------------------------------------------------------

* Fixes: `#42164 <http://forge.typo3.org/issues/42164>`_
* Commit: `96f4778 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=96f47786555fb39f43f30f08c99a18c178c4664c>`_

[TASK] Remove oneline exception for throw statements
-----------------------------------------------------------------------------------------

Removes the exception for throwing exceptions in oneliners, which is
not allowed anymore.

* Resolves: `#42168 <http://forge.typo3.org/issues/42168>`_
* Related: `#39977 <http://forge.typo3.org/issues/39977>`_

* Commit: `580b963 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=580b963277d99d8a9d628274df3ebd2e124f9c40>`_

[BUGFIX] Workaround issues with multiline commit messages
-----------------------------------------------------------------------------------------

In core migration functionality, particularily on windows
systems, the commit message is cropped at the first occurrence
of a newline character. This leads into trouble when the core
migration tool searches for the Migration: ... footers in the
commit history as they won't be there then.

* Related: `#41848 <http://forge.typo3.org/issues/41848>`_
* Commit: `77f148c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=77f148cde87cbf3a4da95ba4b3786ea2dfc6ba33>`_

[FEATURE] Let HTTP browser follow Location redirects
-----------------------------------------------------------------------------------------

Since Http's Browser object should behave like a real browser, Location
headers are now followed (as soon as they come with a 3xx response code
as of RFC2616 14.30).

This patch includes a safeguard that prevents following infinite
redirect loops and an option to disable the automatic redirection
altogether.

* Resolves: `#42049 <http://forge.typo3.org/issues/42049>`_
* Commit: `e90a00d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e90a00d669c4ad196462ad12a7fd75a06c36b1a8>`_

[BUGFIX] Apply PSR-0 code migration only to non-PSR-0 packages
-----------------------------------------------------------------------------------------

This change adds a condition to prevent the code migration to move
classes inside the Classes directory if it is already in PSR-0 layout.

Additionally an already existing composer.json will not be overwritten
and a safeguard was added to AbstractMigration that checks if a file
that should be deleted actually exists.

* Related: `#41848 <http://forge.typo3.org/issues/41848>`_
* Commit: `03d6d6f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=03d6d6fdbdedc0819ba9b7aa9312bd436cb7a84d>`_

[BUGFIX] Correct path check in HTTP\\Cookie constructor
-----------------------------------------------------------------------------------------

A variable name has been corrected in the constructor
of the Cookie class.

* Related: `#39836 <http://forge.typo3.org/issues/39836>`_
* Commit: `9f40790 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9f407900b2f2c52c0215ef1a806e3a7e17712b87>`_

[FEATURE] Include technical details to exceptions in dev context
-----------------------------------------------------------------------------------------

Since the implementation of custom error renderers (#39423)
404 errors don't show any technical details to the user,
even in development context.

This change passes the exception to the fluid template which can
render it, if configured. Furthermore this adds default rendering
options and configures all exceptionHandlers to include technical
details in development context.

* Resolves: `#42135 <http://forge.typo3.org/issues/42135>`_
* Commit: `be181ef <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=be181ef7c6a4f46d3e2f753f3d55e74b8b773388>`_

[TASK] Documentation: Fix link to CGL on one page document
-----------------------------------------------------------------------------------------

The link was renamed during the FLOW3 to TYPO3 Flow replacement
but the site package is not yet renamed.

* Commit: `cf4f0ee <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=cf4f0ee4676f238189532328a8343da4f80ff3b5>`_

[BUGFIX] CSRF token is not appended for actions with mixed case characters
-----------------------------------------------------------------------------------------

The CrsfProtectionAspect no longer appends the CSRF token when the
target action contains uppercase characters (e.g. someSpecialAction).

This change fixes this by resolving the correctly cased method name
before checking for the SkipCsrfToken annotation in the aspect.

* Fixes: `#42083 <http://forge.typo3.org/issues/42083>`_
* Commit: `9ea304b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9ea304b4531e404112ae9c189554ef73057fa05b>`_

[BUGFIX] Respect explicit empty subpackage in uriFor with subrequests
-----------------------------------------------------------------------------------------

This change just checks for the empty string in the routing arguments and
sets a controller argument for building the URL. That way no subpackage
argument will be overriden from the subrequest.

* Fixes: `#42082 <http://forge.typo3.org/issues/42082>`_
* Commit: `8ebb3f6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8ebb3f6ecb6cbbb2eae971acc240e7091f5b9b5e>`_

[BUGFIX] Fix path to database error template
-----------------------------------------------------------------------------------------

The Settings.yaml contained an outdated path for the
Fluid template which is supposed to display database
errors.

The message of the fatal error caused by this bug contained:
'Template file "resource://TYPO3.Flow/Private/Error/Default_Template.html"
could not be loaded'

* Related: `#39423 <http://forge.typo3.org/issues/39423>`_
* Commit: `ec4d422 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ec4d4225a2cddeabda6deb45357140989bc18293>`_

[TASK] Check for unexpected properties in Policy schema
-----------------------------------------------------------------------------------------

This change disables unknown properties for resources and
acl group keys to prevent mistakes. For example, the schema should fail
if an entry is directly added to "resources" without using the
"method" subkey.

* Commit: `441957b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=441957b92d32e2b3c3bfd3d6cbf15721c8cf16e4>`_

[BUGFIX] Fix composer manifest loading and unit tests
-----------------------------------------------------------------------------------------

This change fixes 2 tests in PackageTest that failed when run from
a package directory, because the $package->getComposerManifest()
method did pick up the relative composer.json file inside that.

Additionally some minor CGL cleanups in PackageTest.

* Commit: `c85ccd7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c85ccd700f01b5f218469ebddd3b500c134054d9>`_

[BUGFIX] UriBuilder doesn't properly handle arguments of SubRequests
-----------------------------------------------------------------------------------------

If you're creating a link inside a SubRequest that link currently
doesn't add/remember the Arguments, Controller, etc from the
parentRequest if it's nested more than one level:

 MainRequest->SubRequest->SubRequest

This change fixes the mergeArgumentsWithRequestArguments
to properly add all of parentRequests for links inside SubRequests.

* Related: `#41571 <http://forge.typo3.org/issues/41571>`_
* Commit: `3b43e2a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3b43e2a9f19df8731af6c10655932694761a8932>`_

[BUGFIX] Remove unnecessary call for code compilation
-----------------------------------------------------------------------------------------

This change removes the forced compile command subrequest
in a non Production context. Proxy classes are only
initialized if the code cache is not up to date or with
a special second check after file monitoring was run.

This speeds up the development context quite enormous
if no code was changed.

* Fixes: `#41818 <http://forge.typo3.org/issues/41818>`_
* Commit: `c9f04ee <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c9f04ee02f519bf480d1902662f593663d31e059>`_

[BUGFIX] Tests fail when run from package path.
-----------------------------------------------------------------------------------------

Composer manifests missing in some tests, and not read properly by
package in others

* Commit: `f442e2f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f442e2f516043d7e35dee6814272650000dab741>`_

[TASK] Exclude classes with broken PSR-0 in DomCrawler
-----------------------------------------------------------------------------------------

See https://github.com/symfony/DomCrawler/pull/7

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `ee8f8e1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ee8f8e1d898c15549c22278e3fe80cd5702df182>`_

[BUGFIX] ActionRequest does not resolve correctly cased package key
-----------------------------------------------------------------------------------------

ActionRequest resolves lowercased package key by looking for
Package class instead of asking PackageManager. If no Package class
exists in the given Package, the request fails.

* Resolves: `#41657 <http://forge.typo3.org/issues/41657>`_
* Commit: `b744c35 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b744c359a9ff0373a5c22926cf3577468bbe952e>`_

[TASK] Small code cleanup in Package
-----------------------------------------------------------------------------------------

* Commit: `94a43b6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=94a43b695cb216c1654c21b3b824d1bbb7593f7c>`_

[BUGFIX] Documentation mentions the NotEmptyValidator
-----------------------------------------------------------------------------------------

The Part II (Getting Started), Validation chapter contains
a note about the requirement and purpose of the NotEmptyValidator.

* Fixes: `#41451 <http://forge.typo3.org/issues/41451>`_
* Commit: `d00e876 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d00e8767ac76b68a377153abca67523a8a69faa8>`_

[BUGFIX] Changed f:form.textbox to f:form.textfield in Documentation
-----------------------------------------------------------------------------------------

* Commit: `0a78fb8 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=0a78fb8ab46d0b398354e02bdaf205f464fc387e>`_

[TASK] Make exception templates more configurable
-----------------------------------------------------------------------------------------

At the moment only the file name can be set, but not
the format, partial & layout paths are configurable.

* Commit: `81c41cd <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=81c41cdf4892a406748368457748cc0e7f1a60fc>`_

[BUGFIX] Adjust unit test for YamlSource to changed indentation
-----------------------------------------------------------------------------------------

* Commit: `50c3e1c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=50c3e1c2655b3cf9fbf8daebe964a44c3ddef9ea>`_

[TASK] Use two spaces as yaml indentation instead of four
-----------------------------------------------------------------------------------------

This was introduced when upgrading the Symfony Yaml package
to the latest source with the move to composer.

* Commit: `41c6352 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=41c63520d77a4184730c5abbe7433efa9f90f4cf>`_

[TASK] make Package::getComposerManifest() public
-----------------------------------------------------------------------------------------

This is needed for fixing the site import of setup

* Commit: `4a53002 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4a53002a4666cb36ad2d10d63d30c0ac53f86ad5>`_

[BUGFIX] fix unit tests
-----------------------------------------------------------------------------------------

The test of Idc1d9d48998a0de0ecd07f834baa769ddf1e5ba4 was not adjusted
to the rename.

* Commit: `0146868 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=01468684ebf40b4e47d29f2c05770e8e889619e3>`_

[BUGFIX] Update composer type in migration
-----------------------------------------------------------------------------------------

* Commit: `8c73d8e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8c73d8e59651f0923c5d32f60ed89bd97d3cd42a>`_

[BUGFIX] Adjust Package Management to updated composer package types
-----------------------------------------------------------------------------------------

This fixes issues f.e. with functional test runs of Phoenix.

* Commit: `3f4b734 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3f4b7342bc30f0acc0a43bce27c15f4f8c8d0fc9>`_

[BUGFIX] Fix monitoring of changed class files
-----------------------------------------------------------------------------------------

This change fixes the resolving of the class name from a changed file
since the PSR-0 changes caused some problems with the assumption of
the class name layout in that place. The change keeps the old
behavior for test files since these are not yet updated to a new
layout.

* Resolves: `#41499 <http://forge.typo3.org/issues/41499>`_
* Commit: `3d0a981 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3d0a981f7c105641369793ae2eb847dafbd68d33>`_

[BUGFIX] Remove unnecessary call to to sortAndSavePackageStates
-----------------------------------------------------------------------------------------

This change should fix the saving of a new PackageStates.php file on
every request which causes a rebuild of proxy classes and flushing of
other caches through file monitoring.

* Resolves: `#41497 <http://forge.typo3.org/issues/41497>`_
* Commit: `14a7882 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=14a788244e4be7b84907e576d758567942d0cf07>`_

[BUGFIX] Fix Proxy Blacklisting
-----------------------------------------------------------------------------------------

* Commit: `f4b26da <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f4b26dadd7db648c972e6fc185827769a6ac2b23>`_

[BUGFIX] Try to fix composer loading problem
-----------------------------------------------------------------------------------------

* Commit: `33acf04 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=33acf04710f0dd7ef1209dac558b5fcaefd1dba6>`_

[!!!][TASK] Rename FLOW3 to TYPO3 Flow
-----------------------------------------------------------------------------------------

Adjusts the code, comments, documentation as needed.

A code migration to adjust packages and schema migrations are added as
well.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `57526b7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=57526b7fa57d82b08b64144214df9ffb1e475ffe>`_

[!!!][TASK] Rename FLOW3 to TYPO3 Flow, move files
-----------------------------------------------------------------------------------------

Moves files so names match the FLOW3 to Flow change.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `69d40a9 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=69d40a96d0795cab6414fa153e8cb586f48b988d>`_

[TASK] Some leftover case changes
-----------------------------------------------------------------------------------------

This adjusts the case of some forgotten namespaces and classes.

Also it marks a number of migrations as (correctly) applied.

* Commit: `569fcb8 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=569fcb8657b3c6521db122bef78f0717a98b1586>`_

[TASK] Adjust PackageManagerTest to "skip unnamed" change
-----------------------------------------------------------------------------------------

With I5e29317bbada2b6aed13fe26b50c1ae1ed9c2c80 a check was added that
lead to a failing unit test. So much for trivial stuff. :)

* Commit: `adc2fba <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=adc2fba0c4ecdee971bfbfacb99c49d5a69483f2>`_

[BUGFIX] Make sure generated composermanifest is valid
-----------------------------------------------------------------------------------------

* Fixes: `#41449 <http://forge.typo3.org/issues/41449>`_
* Commit: `17af2c0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=17af2c03a747b3fc2bb07e81c6395ed3bbf60a67>`_

[TASK] Skip "packages" without name in manifest
-----------------------------------------------------------------------------------------

When using packages that have example "composer.json" files (like
Doctrine ORM 2.3 in source form) this will avoid errors.

* Commit: `d40e50a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d40e50a39f2a0cb4fcaf4837724b44af57e754a4>`_

[BUGFIX] Fix package / manifest detection
-----------------------------------------------------------------------------------------

In production context class loading fails because the classloader has a
wrong map for namespaces. This is caused by getNamespace() doing the
wrong thing - because it finds no composer manifest.

This change fixes this.

* Fixes: `#41418 <http://forge.typo3.org/issues/41418>`_
* Commit: `d010f92 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d010f9205be95cde69d901070d5858a55f1ec9af>`_

[TASK] Copy dotfiles during composer install
-----------------------------------------------------------------------------------------

Dotfiles like .htaccess need to be copied as well.

* Related: `#41421 <http://forge.typo3.org/issues/41421>`_
* Commit: `8feeaa3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8feeaa3c2b630e32d00e0e647ccce59578b18550>`_

[FEATURE] Allow copy of dotfiles in copyDirectoryRecursively()
-----------------------------------------------------------------------------------------

Adds a new parameter to copyDirectoryRecursively(), namely the boolean
$copyDotFiles.

To enable this, also readDirectoryRecursively() now knows a new
parameter named $returnDotFiles.

* Resolves: `#41421 <http://forge.typo3.org/issues/41421>`_
* Commit: `9b63414 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9b63414540d98a64e26f361f017bee3bedf9de1a>`_

[TASK] Remove leftover .Shortcuts handling
-----------------------------------------------------------------------------------------

* Commit: `196e37d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=196e37dbae8039f391f739ca2978ac7c95f81c55>`_

[TASK] Fix flow3 commandline script
-----------------------------------------------------------------------------------------

Shortens a docblock and removes define() left over from recent work.

* Commit: `1a417b6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1a417b66d4f96da7de00ddb9a154107b23985e8a>`_

[TASK] Move .gitignore to composer install default
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `ee4d1f8 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ee4d1f8c3d4bd4089588dcc7392838f90672c614>`_

[TASK] Tweak install script behavior, add (example) configuration
-----------------------------------------------------------------------------------------

With this change the composer post install/update script will discern
between "Essentials", being files that will always be copied - even if
they already exist in their target location - and "Defaults", being
files that will be copied only if not already existing.

This is used to add the example configuration files as essentials and a
Routes.yaml as default.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `4179179 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4179179dc14d11e2617125d50017a83beaae4114>`_

[FEATURE] Allow keeping files in copyDirectoryRecursively()
-----------------------------------------------------------------------------------------

This change adds a flag $keepExistingFiles to copyDirectoryRecursively()
in Files. It defaults to FALSE and if set to TRUE allows to keep files
already present in the target location.

* Resolves: `#41378 <http://forge.typo3.org/issues/41378>`_
* Commit: `c7cce8d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c7cce8d502c9b55fea3b823c6a7d3ade45f17db4>`_

[BUGFIX] Add .htaccess file to installed files
-----------------------------------------------------------------------------------------

* Fixes: `#41369 <http://forge.typo3.org/issues/41369>`_
* Commit: `987b91a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=987b91a89a4c1792ed5c7b88887147758f189a2c>`_

[TASK] Update settings to new name of installer package
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `d303919 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d3039191d3f3b0edaa99280cc1da30b6bc89a64c>`_

[TASK] Update class exclusion to changed composer installer name
-----------------------------------------------------------------------------------------

The installer change it's package key from christianjul.installers to
flow3.composerinstallers so the exclusion needs to be adjusted.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `0ea33a3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=0ea33a38f2e5ab0b1a13e707d9c5715dec2c2cc2>`_

[TASK] Change dependency to require flow3/composer-installers
-----------------------------------------------------------------------------------------

* Commit: `125ff01 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=125ff01663cbea7bba36a42e3bcfb76f5d598783>`_

[TASK] Use composer version of installer
-----------------------------------------------------------------------------------------

* Commit: `947608e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=947608e4b8d6c9aef48e0418a1ce1bf313c605a7>`_

[TASK] Require christianjul/installers directly
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `9a68c0e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9a68c0eb9c7e37b1286c23d8463031c71e832d6f>`_

[TASK] Test commit for composer install
-----------------------------------------------------------------------------------------

* Commit: `37492ff <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=37492ff27740939f24a6a272c12a30c5aefd042e>`_

[TASK] Change requirement to real composer installer
-----------------------------------------------------------------------------------------

Also drop require-dev - only valid for root manifests

* Commit: `e3f9f13 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e3f9f13dcb1fde487741447f034c0a4c0150f526>`_

[BUGFIX] Handle missing composer type gracefully
-----------------------------------------------------------------------------------------

The type in a composer manifest is optional, so we need to check for it's
existence before we use it.

* Fixes: `#41334 <http://forge.typo3.org/issues/41334>`_
* Commit: `cb870e1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=cb870e17847dc8ef41d4928ed67bc5ed9706af2a>`_

[TASK] Install "Web/index.php" on Composer install
-----------------------------------------------------------------------------------------

* Fixes: `#41310 <http://forge.typo3.org/issues/41310>`_
* Commit: `0f8b4d2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=0f8b4d2fff8b5dd44b227a885a8338b63722422d>`_

[!!!][TASK] Add utility to get classes namespace entry-point
-----------------------------------------------------------------------------------------

With PSR-0 the entry-point of the classes files needs prefixing of the
pathified namespace. Add a getter, getClassesNamespaceEntryPath(), to
resolve this.

Also makes sure the namespace is only resolved once.

Renames getPackageNamespace() to getNamespace() - adjust your code as needed.

* Commit: `1594a52 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1594a523c9a5950b249f1b04e221fac61e1ccbac>`_

[BUGFIX] Allow excludeClasses setting for non-installed package
-----------------------------------------------------------------------------------------

* Fixes: `#41157 <http://forge.typo3.org/issues/41157>`_
* Commit: `a952d97 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a952d97feb4ba2802a0f182184464271585b87cc>`_

[BUGFIX] getClassesPath() returns path without trailing slash
-----------------------------------------------------------------------------------------

* Fixes: `#41181 <http://forge.typo3.org/issues/41181>`_
* Commit: `1925ba3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1925ba316fda179e624f4dc1a0ba76848517c0cc>`_

[TASK] Add code migration to "composerify" a package
-----------------------------------------------------------------------------------------

The migration moves all class files into a PSR-0 compatible directory
structure and adds a composer manifest; Package.xml is removed.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `6130251 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=613025176356c63973da4db8635cb99eb0f00338>`_

[FEATURE] Isolate migrations and provide package data
-----------------------------------------------------------------------------------------

With this change migrations have access to the data of the target
package (the package currently being migrated) and can be sure that each
migration run is isolated from other runs (the internal state is reset
for each execution).

The command output is tweaked a little along the way.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `2e2d98f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2e2d98f69efcb5a7ef1ce7a61946ad30c13d5fc1>`_

[FEATURE] Add moveFile() and deleteFile() operations to migrations
-----------------------------------------------------------------------------------------

Code migrations now can use deleteFile() and moveFile() to work on
files.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `5950a76 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5950a7640fcf0fd069a3bda6c91b05b4259b4145>`_

[FEATURE] Make metadata available to migrations
-----------------------------------------------------------------------------------------

This makes metadata from Package.xml and composer.json available
to migrations.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `bdc5a0e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=bdc5a0efa8062747dd8c5f006243b4da40651cea>`_

[TASK] Fix PSR-0 compatibility for functional tests
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `9b9e92b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9b9e92b1c9100ae586d0d1c0ec217c38de64e94b>`_

[TASK] Update unit tests to vfsStream > 1.0
-----------------------------------------------------------------------------------------

This adds "mikey179/vfsStream" to composer.json and adjusts the unit
tests to the new vfsStream API.

* Resolves: `#37813 <http://forge.typo3.org/issues/37813>`_
* Commit: `ef34261 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ef3426147586ba421d32416fd74d9a840acdd10a>`_

[BUGFIX] Fix failing tests in package management
-----------------------------------------------------------------------------------------

* Fixes: `#41092 <http://forge.typo3.org/issues/41092>`_
* Fixes: `#41093 <http://forge.typo3.org/issues/41093>`_

* Commit: `91e1881 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=91e1881846a9aef69a46cb7713927208b0d0b1ce>`_

[BUGFIX] PackageStates.php does not contains relative paths
-----------------------------------------------------------------------------------------

* Fixes: `#41088 <http://forge.typo3.org/issues/41088>`_
* Commit: `9476151 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=94761514bd3fac7bd48884569ed538cc7b8f7139>`_

[TASK] Make package management use Composer
-----------------------------------------------------------------------------------------

Refactor package management to use Composer, also relax constraints in order
to utilize 3rd party composer / PSR-0 components.

* Fixes: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `6fdd855 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6fdd85536dbf8737bcec264e7e3b1b75b6c265d2>`_

[TASK] Exclude specific classes from object management
-----------------------------------------------------------------------------------------

In order to exclude classes from object management - either for performance
or compatibility reasons - create a configuration that allows specific
classes to be excluded. Most be configurable outside of package in question
to support 3rd party components

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `6e88cac <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6e88cac9924a260e9275e9e4ed26919571e97991>`_

[TASK] Handle exceptions thrown in ClassReflection
-----------------------------------------------------------------------------------------

When a class cannot be loaded for reflection, it will be ignored and a message
is logged.

This makes sure that classes that are never used do not break the system. If
they are indeed used later, things will still break, but even at a more
helpful position.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `b811e14 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b811e14723bf45c0c5ddcb8fbcccca2429a4fcd9>`_

[TASK] Add Composer installer script and resources
-----------------------------------------------------------------------------------------

Upon running 'install' or 'update' with composer, required paths
and files outside of TYPO3.FLOW3 package must be created.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `f9b09a9 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f9b09a912bbe4f27cd0db982d3b58d2c18bfdf9c>`_

[TASK] Add composer manifest
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `f227c30 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f227c3091edc3795b3b830782b512ddd2b366902>`_

[TASK] Update referenced paths to reflect PSR-0 paths
-----------------------------------------------------------------------------------------

See Idad621923ffccdb7b2742d9aba0ff22fdab3e192 for the files being moved.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `5c1bde4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5c1bde47804d8b182432d1d88776ae958cd30ed5>`_

[!!!][TASK] Move all classes to PSR-0 compatible path
-----------------------------------------------------------------------------------------

In order to be fully PSR-0 compatible the path below the classes
directory should now be in a path identical to the namespace

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `6a5d4d7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6a5d4d75284f2d35ab3f694f74fc588f6b2c4986>`_

[FEATURE] Provide flag for disabling link protection in UriBuilder
-----------------------------------------------------------------------------------------

This introduces a new flag for the UriBuilder which allows to configure
if a link built by the UriBuilder may be modified by some security
mechanism or not. FLOW3's CSRF protection mechanism now considers this
flag.

By disabling link protection, it is now possible on a per-link basis,
to generate a link without CSRF protection tokens for cases when it's
clear that links are public.

This patch also removes the CSRF protection of links used in ExtDirect
services. This needs to be re-implemented in the ExtJS package.

* Resolves: `#41137 <http://forge.typo3.org/issues/41137>`_
* Commit: `2058a64 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2058a64d73c74a6a647115af95112fa05039bfeb>`_

[FEATURE] Convenience function for registering routes in functional tests
-----------------------------------------------------------------------------------------

This adds a new convenience function registerRoute() to the functional
base testcase.

* Resolves: `#41136 <http://forge.typo3.org/issues/41136>`_
* Commit: `6562a48 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6562a48e802265d404f1d80c6154a2280b122aa9>`_

[BUGFIX] Debugger now respects possible occurence of Closures
-----------------------------------------------------------------------------------------

A trial isset() call for a property of a Closure resulted in a PHP
error saying "Closure objects cannot have properties". To avoid this,
the isset() statement has been replaced with a property_exists().

This is considered slower than isset(), like claimed in a User Contributed
Note [1], but obviously the only workaround for these cases [2]. And speed
is not an issue when the debugger is used…

[1] http://www.php.net/manual/en/function.property-exists.php#97538
[2] https://bugs.php.net/bug.php?id=50146

* Fixes: `#41046 <http://forge.typo3.org/issues/41046>`_
* Commit: `15d3860 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=15d38605eb1e2597357ef0705cf70bf8303f97bb>`_

[TASK] Adjust CsrfProtectionAspect unit test
-----------------------------------------------------------------------------------------

* Related: `#40984 <http://forge.typo3.org/issues/40984>`_
* Commit: `e1f227c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e1f227cb3341b6f12436c9928d8903e28a0b703f>`_

[BUGFIX] Make sure autoloader is always unregistered
-----------------------------------------------------------------------------------------

ClassReflection adds an autoloader to catch cases of unresolved
classes. This autoloader needs to be unregistered reliably after
use.

* Fixes: `#40989 <http://forge.typo3.org/issues/40989>`_
* Commit: `dfc34e5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=dfc34e543391eab3aad5fd210eefe27050f2393a>`_

[BUGFIX] Cleanup CSRF protection issues
-----------------------------------------------------------------------------------------

* Fixes: `#40984 <http://forge.typo3.org/issues/40984>`_
* Commit: `4574114 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4574114c6c3e56be84b214c7993da87f036b18b4>`_

[TASK] Clarify parent request type in docblocks
-----------------------------------------------------------------------------------------

Instead of just "object" this uses a more specific type in a few
docblocks ("ActionRequest|HttpRequest").

* Commit: `a081efa <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a081efa618f57b7e582b8b6a0110e18775570840>`_

[TASK] Whitespace fix in class docblock
-----------------------------------------------------------------------------------------

* Commit: `d9b71a6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d9b71a6532240191cb37d84dbe5862ba1ea495e1>`_

[BUGFIX] Display error message if "Data/" is not writeable
-----------------------------------------------------------------------------------------

If the directory "Data/" or "Data/Persistent/" does not exist and could
not be created by the bootstrap, an error message is now displayed which
hints on using the setfilepermissions command.

* Resolves: `#40890 <http://forge.typo3.org/issues/40890>`_
* Commit: `939181e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=939181e9b8e78d8c8304c5d04cc275fb55d2c226>`_

[BUGFIX] Parse target type before comparing the instance with it
-----------------------------------------------------------------------------------------

The PropertyMapper chokes on already converted Objects if the targetType
is a compositeType like Collection<Entity>.

* Resolves: `#40661 <http://forge.typo3.org/issues/40661>`_
* Commit: `4168539 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4168539bb817cf17d0a17bff562c4d2694ada3e6>`_

[TASK] Small code cleanup in ReflectionService
-----------------------------------------------------------------------------------------

* Commit: `5ea5915 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5ea591536b41e99ff96b279e7878696274ce28d8>`_

[BUG] Fix wrong escape sequence in yaml
-----------------------------------------------------------------------------------------

Backslash is not a valid escape-character in yaml for single-
quoted strings.

see: http://yaml.org/spec/current.html#id2534365

* Resolves: `#40840 <http://forge.typo3.org/issues/40840>`_
* Commit: `604406e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=604406e9908306b19f0725c257bc212e6188ea6e>`_

[TASK] Custom error page: higher priority for class matches
-----------------------------------------------------------------------------------------

All custom error rendering options should be evaluated for
matches of the exception class name before trying to match
against status code because the latter are often used as
fallback options (for example, 404 for anything not found).

The TYPO3.TYPO3 package wouldn't be able to display a specific
"Missing Homepage" error message without this patch because
FLOW3's 404 handling would kick in before.

* Related: `#39423 <http://forge.typo3.org/issues/39423>`_
* Commit: `9b28224 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9b28224c55b04a88b545c5ee6732c63d6ffb591a>`_

[TASK] Handle errors in subprocesses properly
-----------------------------------------------------------------------------------------

To be able to properly handle missing class dependencies in ClassReflection
a ClassLoader should be added to end of the ClassLoader chain that throws
an exception if it's reached, meaning the class couldn't be loaded.

Make executeCommand throw an exception on errors, rather than just echo any
command output collected.

* Resolves: `#39599 <http://forge.typo3.org/issues/39599>`_
* Commit: `e590a18 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e590a18ea3b12b73e01fe890bb3df72d901325bb>`_

[!!!][FEATURE] Custom Error Renderers
-----------------------------------------------------------------------------------------

This extends the exception handlers so that they can render arbitrary
templates based on the status code and/or class name of the thrown
exception.

The template to be used and variables that should be passed to the
template are configured in so called "renderingGroups" in the options
of the exception handler.

This is a breaking change because it deprecates the provided
NotFoundController & NotFoundView.

This patch also contains the related documentation, including general
information about FLOW3's error handling.

Also included in this patch is an update to the YAML schema definitions.

Furthermore, removed all hints on "FLOW3" from the production exception
handler.

* Resolves: `#39423 <http://forge.typo3.org/issues/39423>`_
* Commit: `20e41f3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=20e41f38b36482eb3cd861463885e1a032111be4>`_

[FEATURE] Add identifier to Booting\\Sequence
-----------------------------------------------------------------------------------------

The identifier is set in Bootstrap to "runtime" and "compiletime"
respectively.

If you wire a slot to the beforeInvokeStep and afterInvokeStep
signals, the identifier will be handed over as second parameter
after the step instance.

* Resolves: `#38424 <http://forge.typo3.org/issues/38424>`_
* Commit: `e694792 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e69479279c5aa98905cb603df4a907d48759b9a2>`_

[TASK] Add logging to importResource() and createResource()
-----------------------------------------------------------------------------------------

When importing or creating a resource fails, the reason is
logged to the system log.

* Commit: `228cb54 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=228cb5486d0b3ab7c0fa97dea821c807a977857a>`_

[BUGFIX] Fix failing UnitTests for new AuthenticationController
-----------------------------------------------------------------------------------------

* Fixes: `#40760 <http://forge.typo3.org/issues/40760>`_
* Commit: `6ba2ae1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6ba2ae145d740bb2d8333072d3fc23040c3f09b7>`_

[BUGFIX] Always add CSRF token, if authenticated
-----------------------------------------------------------------------------------------

This ensures that the CSRF token is also present
if the main request is not restricted, but if
the subrequests is.

* Commit: `443d6f1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=443d6f1ad3f9aa76e43f18700eb38a9363db4aa5>`_

[FEATURE] Provide a general abstract authentication controller
-----------------------------------------------------------------------------------------

This can be used to be inherited from in a custom package,
to enable developers to quickly implement their own
authentication controller.

* Related: `#39839 <http://forge.typo3.org/issues/39839>`_
* Commit: `3eb7b5c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3eb7b5c080809497168ee36890c708ebc9a2e492>`_

[TASK] Fix return type documentation of createQuery
-----------------------------------------------------------------------------------------

* Commit: `f7f4671 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f7f467133705e2d86e98da4d6c35a432dbf40c7e>`_

[BUGFIX] Fix SQL logging in Production context
-----------------------------------------------------------------------------------------

The logger factory in Objects.yaml refers to a Setting directive which
with this change is present in Production context. Before, the Settings
could not be found, resulting in a NULL argument where an array is
expected as soon as query logging was enabled in Production.

Some cleanup to logging settings along the way.

* Fixes: `#40580 <http://forge.typo3.org/issues/40580>`_
* Commit: `007e41b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=007e41ba3e8906661647579ecba37720be968f3b>`_

[FEATURE] Improved argument type watch in HTML debug backtrace
-----------------------------------------------------------------------------------------

In the debug backtrace of method calls, this gives concrete
information about the actual argument values in case of being
boolean; and reveals the amount of array elements, if such.

An array is now presented as ``array|2|`` for example, if
it has two elements.

Boolean values are not longer only displayed as ``boolean``,
but as their concrete TRUE or FALSE value accordingly. Since
the color scheme stays the same, it can still easily be
distinguished from string values.

* Resolves: `#39879 <http://forge.typo3.org/issues/39879>`_
* Commit: `d953765 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d953765612a7a7f94cee46f77ceb94034be81e4c>`_

[BUGFIX] Session Timeout shouldn't be changed to 10 seconds
-----------------------------------------------------------------------------------------

This reverts the changed session timeout setting introduced
in If7d004c7.

* Fixes: `#40657 <http://forge.typo3.org/issues/40657>`_
* Commit: `3ef0662 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3ef0662e1abcd80c530fc9386a629f96404fb983>`_

[BUGFIX] InternalRequestEngine observes exception status code
-----------------------------------------------------------------------------------------

The InternalRequestEngine set the status code in case of an exception
to 500 in any case. With this change it will instead use the code
defined in an exception, if available.

* Fixes: `#40658 <http://forge.typo3.org/issues/40658>`_
* Commit: `4b479b2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4b479b2e5d13cec7eef8ba7184394d331d1eca31>`_

[BUGFIX] Prevent data from destroyed session from being loaded
-----------------------------------------------------------------------------------------

This fixes a problem with session data which is being unserialized
even though its session is about to be destroyed. Because the
time of the last activity was stored in the session and needs to be
retrieved in order to determine if the session is still valid, also all
other session data is being unserialized by PHP. This results in
session scope objects registering themselves at the Object Manager
due to their code in __wakeup().

Now the session time out is not stored in the session anymore but
in its own cookie. Therefore the session data is only unserialized
if the session is still valid.

* Resolves: `#37001 <http://forge.typo3.org/issues/37001>`_
* Commit: `1b409cc <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1b409cc3eeb853ee6a733e627752839f6050ce62>`_

[BUGFIX] Throw exception on CSRF token error
-----------------------------------------------------------------------------------------

Currently, if a required CSRF token is missing or invalid,
FLOW3 dies with a hard coded "Access denied!".

This change disables the try/catch blocks in the
RequestDispatchingAspect so that the access denied
exception is actually rendered.

This shouldn't pose a security issue as details are hidden
in production context.

* Related: `#27798 <http://forge.typo3.org/issues/27798>`_
* Commit: `1b3a9e2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1b3a9e25b1ee2738ea30547d395e9f6b576af4fa>`_

[BUGFIX] Fix request injection in security context
-----------------------------------------------------------------------------------------

As inject* methods are excluded from the session
lazy loading proxy mechanism, the injectRequest
method of the security context didn't work correctly
in requests with a session timeout. Renaming the
method to setRequest solves the problem.

* Related: `#37001 <http://forge.typo3.org/issues/37001>`_
* Commit: `8d1c137 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8d1c1372ce0e69abfac9716b493ed878e4a16baa>`_

[FEATURE] Enable functional tests to be executed by non CLI SAPI
-----------------------------------------------------------------------------------------

The FunctionalTestRequestHandler should be executable by non CLI requests to
enable TestRunners like VisualPHPUnit.

* Fixes: `#40273 <http://forge.typo3.org/issues/40273>`_
* Commit: `8d01cdf <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8d01cdf42987f9d1104f93ca785a69a69eebbd7e>`_

[FEATURE] cURL request engine for HTTP browser
-----------------------------------------------------------------------------------------

This provides a new request engine, based on cURL,
which can be used with the virtual browser contained
in FLOW3's HTTP foundation. It can be used to send
requests and receive responses via HTTP.

This patch also contains a few minor modifications in
the RequestEngineInterface and InternalRequestEngine
class.

* Resolves: `#40414 <http://forge.typo3.org/issues/40414>`_
* Commit: `20a8c74 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=20a8c74c3b5db0ce787c72cfdc44249a806690a1>`_

[!!!][BUGFIX] Misused JoinColumns in ManyToMany
-----------------------------------------------------------------------------------------

With this fix the JoinColumns are created and used in the same
way regardless if you have a JoinTable annotation.

This is (almost) a cosmetic fix as it works without, but can lead
to confusion if looking at the database.

Breaking change as the JoinColumns could change if you annotated
with JoinTable.

* Fixes: `#33397 <http://forge.typo3.org/issues/33397>`_
* Commit: `f8b0bb7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f8b0bb7ac110f0e3c5d9fae6e252fc9e326b4da9>`_

[!!!][BUGFIX] Don't override orphanRemoval setting from Doctrine
-----------------------------------------------------------------------------------------

In Doctrine 2 ORM, orphanRemoval is disabled by default. In FLOW3 we want
orphanRemoval to happen, if the target is not an aggregate root, changing
the default Doctrine behavior.

Because we want developers to be able to override that override, we had a
check in place, to favor the setting coming from the annotation. But since
there is no way to check if the FALSE in the orphanRemoval of an annotation
is the default or has been explitly set, this would fail to allow an
override with FALSE.

For many-to-many we thus assume that orphanRemoval is very rarely a
useful thing, and thus skip our own default handling.

If you want orphanRemoval on many-to-many associations, you now must
explicitly enable it with the annotation option!

* Fixes: `#40389 <http://forge.typo3.org/issues/40389>`_
* Commit: `ca60d48 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ca60d48ec5f7fc4e39c5a833c429ea83411e1fa5>`_

[BUGFIX] Fix Headers::has() for Cache-Control
-----------------------------------------------------------------------------------------

The Http\\Headers::get() method now correctly returns
TRUE if a cache control header exists.

* Resolves: `#40372 <http://forge.typo3.org/issues/40372>`_
* Commit: `28fc7e7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=28fc7e7b717218ee69516112373bd5b6a7c9237a>`_

[TASK] Add Windows version hint to documentation
-----------------------------------------------------------------------------------------

* Related: `#38038 <http://forge.typo3.org/issues/38038>`_
* Commit: `fe8c078 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=fe8c0786c1421d1ac379eb2ce619b66b018cc85c>`_

[TASK] Detect inject methods more strictly
-----------------------------------------------------------------------------------------

Currently every method starting with "inject" is considered
for property injection by the ConfigurationManager.
That includes methods named "inject" or "injectionFoo".

This change makes the detection more strict to only accept
methods that start with "inject" followed by an upper case
character.

* Related: `#39681 <http://forge.typo3.org/issues/39681>`_
* Commit: `45f872a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=45f872a57b3a07b7d08e3136f42effa3ebb15072>`_

[FEATURE] Make WebRedirect EntryPoint less Routing dependent
-----------------------------------------------------------------------------------------

The WebRedirect currently expects an option uri that points
to a relative or absolute URI to redirect when trying to access
a protected action.

This change makes it possible to specify *route values* instead
so that the Routing framework can determine the correct target
URI depending on the Routes.yaml configuration.

* Resolves: `#39837 <http://forge.typo3.org/issues/39837>`_
* Commit: `94c0c7b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=94c0c7bb26561a09a7df527a76572188ab8e06a9>`_

[BUGFIX] Loop confuses variable check on migrating
-----------------------------------------------------------------------------------------

When migrating code and not specifying a package to work on, the code
would get confused after the first available migration, because the
internal loop used $packageKey as well.

* Related: `#40263 <http://forge.typo3.org/issues/40263>`_
* Commit: `d8d6fee <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d8d6fee4ae3e177c5b4f4509126c266f5410ef68>`_

[TASK] Add changelog for FLOW3 1.1.0
-----------------------------------------------------------------------------------------

* Commit: `a47ccbf <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a47ccbf01bc7924571cb20497c47ec857525bec0>`_

[FEATURE] Allow mapping of indexed property names with placeholder
-----------------------------------------------------------------------------------------

For multi-valued property types (Doctrine\\Common\\Collections\\Collection or
array) the property mapper uses indexes as property names. To match the
property mapping configuration for any index, the path syntax supports an
asterisk as a placeholder::

	$propertyMappingConfiguration
		->forProperty('items.*')
		->setTypeConverterOption(
			'TYPO3\\FLOW3\\Property\\TypeConverter\\PersistentObjectConverter',
			\\TYPO3\\FLOW3\\Property\\TypeConverter\\PersistentObjectConverter::CONFIGURATION_CREATION_ALLOWED,
			TRUE
		);

This also works recursively, as in 'items.*.author'.

* Resolves: `#37436 <http://forge.typo3.org/issues/37436>`_
* Commit: `faaee92 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=faaee920c10087dad46980131ea01f41d40071bd>`_

Add changelog for FLOW3 1.0.6
-----------------------------------------------------------------------------------------

* Commit: `4fcbba8 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4fcbba8108b5e9911a97827a684b9feeb6ac8c27>`_

[BUGFIX] Fix reflection on PHP 5.3.16
-----------------------------------------------------------------------------------------

The fix for https://bugs.php.net/62715 landed in PHP 5.3.16, and because of
https://bugs.php.net/62874 reflection fails (in Production context) with a
pretty unhelpful exception:

 Fatal error: Uncaught exception … with message 'Parameter is not optional' in …

This change adds an additional check with isOptional() to the relevant code
part.

* Fixes: `#40003 <http://forge.typo3.org/issues/40003>`_
* Commit: `2dbfd8f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2dbfd8fe92a617e5f01339d8acae1a1287de2c5c>`_

[BUGFIX] Alphanumeric-Validator fails on umlauts
-----------------------------------------------------------------------------------------

This change adds support for umlauts in the AlphanumericValidator,
by changing the regex pattern to [:alnum:] and adding utf-8 mode flag.

* Fixes: `#35295 <http://forge.typo3.org/issues/35295>`_
* Commit: `f1fa750 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f1fa75067c1b58424b0be2d319696b9c01c34605>`_

[FEATURE] Control Validation Groups via annotations
-----------------------------------------------------------------------------------------

This feature adds support for overriding validation groups in actions through
@FLOW\\ValidationGroups annotation.

* Resolves: `#36695 <http://forge.typo3.org/issues/36695>`_
* Commit: `46ea9e1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=46ea9e11c74db201fd7dc127e618f657f8784d12>`_

[CLEANUP] Some CGL fixes
-----------------------------------------------------------------------------------------

* Commit: `d554ec2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d554ec231394c737dce09c4d672ef34ba03a92e5>`_

[TASK] Increase branch version number to 1.2
-----------------------------------------------------------------------------------------

This updates the constant in Bootstrap.

* Commit: `f7c29db <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f7c29db8d4186d06a0f19b1214249c8ad89843c4>`_

[TASK] Get rid of strtolower() in foreach loop
-----------------------------------------------------------------------------------------

A tiny optimization I could not resist.

* Commit: `41267d1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=41267d166924f51b770cf8de360a8bb74484b0c2>`_

[TASK] Fix markup errors on documentation
-----------------------------------------------------------------------------------------

* Related: `#27561 <http://forge.typo3.org/issues/27561>`_
* Commit: `522057e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=522057e5fbab87ee606039023c93cad3a1b7dfbf>`_

[FEATURE] Cookie management support
-----------------------------------------------------------------------------------------

This implements the cookie management feature
which previously only existed as a stub in the
HTTP foundation.

This patch also contains the corresponding tests
and documentation.

* Resolves: `#39836 <http://forge.typo3.org/issues/39836>`_
* Commit: `ea08462 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ea08462aeba9427b7bfe128ea15e1b67dc1542b2>`_

[WIP][TASK] New chapter: MVC
-----------------------------------------------------------------------------------------

This adds a new chapter to The Definitive Guide.

Also adjust some mentions of "DocComment" in other chapters
and adds a stub for a section about HMAC to the security chapter.

* Resolves: `#3881 <http://forge.typo3.org/issues/3881>`_
* Commit: `d961924 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d96192477241d8d04a00db0089b04b8dab911fe1>`_

[FEATURE] Validate email addresses with filter_var()
-----------------------------------------------------------------------------------------

This change makes FLOW3 use filter_var instead of a regex check
to validate email addresses.

* Resolves: `#39714 <http://forge.typo3.org/issues/39714>`_
* Extbase Issue: `#6970 <http://forge.typo3.org/issues/6970>`_

* Commit: `bf26810 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=bf268108c0bcad6559a52918810dcba92bcc3fb4>`_

[BUGFIX] PropertyMapper should be able to work with recursive already-converted objects
-----------------------------------------------------------------------------------------

If f.e. an array of already converted objects is passed into the PropertyMapper, a fatal error
will be thrown.

Thus, we move the check from convert() to doMapping() such that it works recursively.

* Resolves: `#39445 <http://forge.typo3.org/issues/39445>`_
* Commit: `8ac0366 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8ac03660b9c5835d67f9f514b3035fa2e9eb2dd5>`_

[FEATURE] Added some Signals for the Debug.Toolbar
-----------------------------------------------------------------------------------------

- added an Signal to AbstractAdvice on Advice invocation
- added an Signal to ActionRequest when it's dispatched
- added getSignals to the SignalSlot\\Dispatcher to get all configured Signals
  with it's slots

* Resolves: `#37879 <http://forge.typo3.org/issues/37879>`_
* Commit: `713ca78 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=713ca78986cc5d2c1b486a4a8a8ef84e5ee59c65>`_

[FEATURE] Configurable CLI Subrequest environment variables
-----------------------------------------------------------------------------------------

When debugging with xdebug, a major difficulty is that in development
and functional tests, there are always two requests being executed:
The main request and a CLI request inside.

Now, most IDEs do not support the (optional) feature of multi-threaded
PHP debugging, effectively stopping the sub-request and also the main
request in this case.

With this change it's possible to change xdebug configuration settings
for the CLI subrequests making it possible to debug them individually.
By default the remote port is now changed from 9000 to 9001 in
Development and Testing context. So you can debug the subrequest by
configuring your IDE to listen on port 9001.

Apart from that, this change allows you to set arbitrary environment
variables by adding entries to the
TYPO3.FLOW3.core.subRequestEnvironmentVariables setting.

* Resolves: `#39648 <http://forge.typo3.org/issues/39648>`_
* Commit: `cfa7069 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=cfa70692f78516d136d180598d0b689848ee0b4f>`_

[BUGFIX] Fix warning about property injection in test
-----------------------------------------------------------------------------------------

The DependencyInjectionTest testcase has a test called
injectionInParentClassIsDoneOnlyOnceOnCreationOfObject, leading to FLOW3
trying to use the inject method for the property
"ionInParentClassIsDoneOnlyOnceOnCreationOfObject"…

This change renames the test method to fix this.

* Fixes: `#39681 <http://forge.typo3.org/issues/39681>`_
* Commit: `a7fdef8 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a7fdef8459cee547770e3cf5611bd79b4fc169fc>`_

[TASK] Support literal strings in boolean arguments
-----------------------------------------------------------------------------------------

This change adds support for string literals in boolean comparisons.
String literals have to be surrounded by single or double quotes and
may contain escaped single or double quotes.

* Resolves: `#6757 <http://forge.typo3.org/issues/6757>`_
* Commit: `3b47daf <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3b47daf59e958b06eb6ae21b7986b3170dc17547>`_

[TASK] Add section about Uri class in HTTP chapter
-----------------------------------------------------------------------------------------

This adds some explanation for the use of the Uri class.

* Related: `#39424 <http://forge.typo3.org/issues/39424>`_
* Commit: `68d19d7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=68d19d7f323eeae42de93be85326ad8d0321a061>`_

[TASK] New chapter: HTTP
-----------------------------------------------------------------------------------------

This adds a new chapter to The Definitive Guide

* Resolves: `#39424 <http://forge.typo3.org/issues/39424>`_
* Commit: `a0db61b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a0db61b7c70c9d88845894d00181ccb2b4486d7b>`_

[BUGFIX] Fix some outdated code (examples) in Part II
-----------------------------------------------------------------------------------------

* Fixes: `#39374 <http://forge.typo3.org/issues/39374>`_
* Commit: `aafcbb6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=aafcbb696c90d9e8b81f6428ed7cd08be4be20bd>`_

[BUGFIX] Disable proxy building for Http classes
-----------------------------------------------------------------------------------------

This disables proxy building for (most of) the classes in
the Http part of FLOW3.

They are not needing it and some would circumvent the built
proxy because they are instantiated statically.

* Fixes: `#39005 <http://forge.typo3.org/issues/39005>`_
* Commit: `868e073 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=868e073b9877d562c6ed65a5158c1c67b3a501a8>`_

[BUGFIX] Fix arguments rendering for dumped backtraces
-----------------------------------------------------------------------------------------

When an exception was dumped to Data/Logs/Exceptions/…txt all
arguments were doubled, once with parenthesis around them, once
without. This change fixes this.

* Fixes: `#38625 <http://forge.typo3.org/issues/38625>`_
* Commit: `09d4a72 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=09d4a7203cf84ba031d1ea27e9318e5c1cf16b2c>`_

[BUGFIX] FLOW3's var_dump() still chokes on Doctrine collections
-----------------------------------------------------------------------------------------

Using Doctrine\\Common\\Util\\Debug::export() to render doctrine
collections leads to an exception because our Debugger expects
a string and doctrine's debugger returns an array.
This change fixes this by post processing the result.

* Fixes: `#39286 <http://forge.typo3.org/issues/39286>`_
* Related: `#37481 <http://forge.typo3.org/issues/37481>`_

* Commit: `fd3eaff <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=fd3eaff01fa0f8ce6ee3c3c4817db4d67d252089>`_

[BUGFIX] Corrected annotation of assign method in ViewInterface
-----------------------------------------------------------------------------------------

A view is basically intended to be able to get arbitrary values,
hence data types assigned, so the annotation gets corrected to
accomodate for this.

* Fixes: `#39293 <http://forge.typo3.org/issues/39293>`_
* Commit: `9ede9cc <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9ede9cc9fedde3ac39d53e06556f70d333e1371a>`_

[TASK] New chapter: Command Line
-----------------------------------------------------------------------------------------

This is a new chapter for The Definitive Guide.
Also marked the executeCommand() method in the
Scripts class as an @api function.

* Resolves: `#38944 <http://forge.typo3.org/issues/38944>`_
* Commit: `8f9b449 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8f9b4491bfeff21fe1e156366bd2a31a0874e772>`_

[BUGFIX] RsaWalletService: Save keys only if modified
-----------------------------------------------------------------------------------------

This patch adds a check to the shutdown() method of the
RsaWalletServicePhp to make sure that the keys are only
saved to disk if they were actually modified.

* Resolves: `#39267 <http://forge.typo3.org/issues/39267>`_
* Commit: `752e4a6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=752e4a6dc404667071261e9c210b867068cc7e01>`_

[BUGFIX] Missing setting namespace in error message
-----------------------------------------------------------------------------------------

When an invalid PHP binary is found, the error message hint at setting
the path in settings misses the setting namespace TYPO3 in the beginning.

* Fixes: `#39142 <http://forge.typo3.org/issues/39142>`_
* Commit: `32c8a20 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=32c8a20b3f512831ffc05402f1b72344df529e65>`_

[TASK] Fix partial validation example
-----------------------------------------------------------------------------------------

The partial validation example was flawed. This change updates the
example to an actual working usecase.

Credits to Ruud Alberts for finding.

* Commit: `c95d732 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c95d732a3343e09c6b6903174214a57676de9cff>`_

[TASK] Add changelog for FLOW3 1.1.0-rc2
-----------------------------------------------------------------------------------------

* Commit: `2f1a4ef <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2f1a4ef8f6ef96b8613efe9ff3fb4a1db9449cb0>`_

[TASK] Update references in documentation
-----------------------------------------------------------------------------------------

This updates command, type converter and Fluid VH references.

* Commit: `76c814b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=76c814b7bed7118bf2bab04e043ff3b15765f3b1>`_

[FEATURE] Catch PDOExceptions to prevent database information in debug backtrace
-----------------------------------------------------------------------------------------

Add catching of \\PDOExceptions to the Doctrine Query class, and output the
exception message & code, but prevent the debug backtrace leading up to
it, since it contains the database information in the method calls.

* Resolves: `#37360 <http://forge.typo3.org/issues/37360>`_
* Commit: `4df796a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4df796af78cca60f1fddb5ea09cec0081908dd86>`_

[BUGFIX] Fix broken links StandardView template
-----------------------------------------------------------------------------------------

The links pointed to URLs no longer working.

* Fixes: `#39062 <http://forge.typo3.org/issues/39062>`_
* Commit: `2b2fcaa <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2b2fcaab6f34eb6bb2ad4cfc01770bd3d492d9ec>`_

[BUGFIX] Fix functional tests after FloatConverter change
-----------------------------------------------------------------------------------------

Somehow two failing functional tests went unnoticed so far,
broken with Ib95c52d958d765eb0a9cd20e415642186e25ee57.

* Related: `#36333 <http://forge.typo3.org/issues/36333>`_
* Commit: `b83b9b4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b83b9b43d5872829e60b36fb2b554669755453e3>`_

[!!!][BUGFIX] Correct RepositoryInterface
-----------------------------------------------------------------------------------------

Fixes a docblock and adds __call() to the interface (thus the breaking
change flag), because everyone probably would expect it to be there.

* Fixes: `#38840 <http://forge.typo3.org/issues/38840>`_
* Commit: `f305aee <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f305aee0395b20a1a3de6d91dd9aed3cc7ecec98>`_

[!!!][BUGFIX] Fix return values of Doctrine\\Repository magic methods
-----------------------------------------------------------------------------------------

Overrides __call from EntityRepository to make the methods return
the expected QueryResultInterface. Also adds support for countBy().

This is marked as a breaking change because if you relied on the
specific return values before, you need to adjust your code.

Along the way the code inside __call() is simplified.

* Fixes: `#38841 <http://forge.typo3.org/issues/38841>`_
* Commit: `934c2c4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=934c2c425de2f0eb71c8df18a7dda1860445239f>`_

[FEATURE] FloatConverter uses Locale parser
-----------------------------------------------------------------------------------------

If configured using the Property Mapping Configuration,
the FloatConverter now can also use the Locale parser
to get the intended `float` value from a string input.

* Resolves: `#36333 <http://forge.typo3.org/issues/36333>`_
* Commit: `d10d076 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d10d076b3116d5eea2c124ad8a3a0ede4da6ee6c>`_

[TASK] Correct typos in Coding Guidelines
-----------------------------------------------------------------------------------------

This corrects some typos in PartV/CodingGuidelines of the
documentation.

* Related: `#27561 <http://forge.typo3.org/issues/27561>`_
* Commit: `d743972 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d743972f5f5ed2f8d9736faeaa40df90c06d0279>`_

[!!!][TASK] Minor typo corrections in code
-----------------------------------------------------------------------------------------

This trivially corrects some typos in code.

As a consequence, the DataNotSerializeableException was renamed
to DataNotSerializableException.

* Commit: `c86356c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c86356cca0346dcfa1327f47a0c24f5ea01fb7e8>`_

[TASK] Document configuration validation
-----------------------------------------------------------------------------------------

* Resolves: `#38680 <http://forge.typo3.org/issues/38680>`_
* Commit: `9f4dba0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9f4dba0552745df3e384da4f69ee5068b597263e>`_

[BUGFIX] Injections only on last level of class hierarchy
-----------------------------------------------------------------------------------------

Property injections are no longer called for every level of your
class hierarchy, which means they are only executed once now.

* Fixes: `#31179 <http://forge.typo3.org/issues/31179>`_
* Commit: `f9330b4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f9330b400d4fe8cac7e486becef043a9f82e1dca>`_

[BUGFIX] Fix order of monitoring and proxy building
-----------------------------------------------------------------------------------------

During bootstrap file monitoring would be run too late,
so that while change detection worked fine, the results
were not used correctly: Reflection data was updated,
but that happened after DI proxy building, so that e.g.
added Inject annotations would not have the expected
effect.

This change moves file monitoring before reflection
initialization to fix this.

* Fixes: `#37574 <http://forge.typo3.org/issues/37574>`_
* Commit: `d355326 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d35532647cd6c6279ff1c5e7cc9123371778c1f1>`_

[TASK] Add TypeConverter reference
-----------------------------------------------------------------------------------------

Tweaks the DateTimeConverter docblock to be proper reST.

* Resolves: `#38646 <http://forge.typo3.org/issues/38646>`_
* Commit: `16e1493 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=16e149351ab162cfe613b707461ac6eef6707e3f>`_

[TASK] Add HTTP status code to exceptions
-----------------------------------------------------------------------------------------

Currently if an exception is rendered with either Debug-
or ProductionExceptionHandler the HTTP status is set to
"500 Internal Server Error".

This change adds a property "statusCode" to the FLOW3
base Exception allowing to set a custom HTTP status code.

This also sets status codes for some of the FLOW3 exceptions

* Related: `#27798 <http://forge.typo3.org/issues/27798>`_
* Commit: `2a3bfd1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2a3bfd1e3ff6d07f7a79f245e1c61dfa9e182de1>`_

[TASK] Create Reflection manual page
-----------------------------------------------------------------------------------------

* Resolves: `#38561 <http://forge.typo3.org/issues/38561>`_
* Commit: `205d209 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=205d209a4f0c998665cfa89d5349b1a32fcd0d46>`_

[TASK] Tweak TypeConverter extends statements
-----------------------------------------------------------------------------------------

Use short class names for extends in TypeConverters.

* Related: `#38646 <http://forge.typo3.org/issues/38646>`_
* Commit: `69d2705 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=69d2705ca5012994cc66d86370521c5488f4dba0>`_

[!!!][TASK] Remove FLOW3's magic timezone setting behavior
-----------------------------------------------------------------------------------------

FLOW3 used to magically set a default timezone if there's none set
(in order to avoid the PHP notice being thrown, resulting in an
exception).

Because every default time zone will be the wrong one for most people;
and to raise awareness of having to care about the system's time zone,
this behavior is dropped.

This change is marked breaking because in cases where no timezone
is set in PHP configuration, FLOW3 will no longer work.

* Resolves: `#37438 <http://forge.typo3.org/issues/37438>`_
* Commit: `3f3b1e0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3f3b1e0034af0fd20533a1bdbdca8f20588d87ec>`_

[BUGFIX] Allow PublishingConfiguration to be persisted
-----------------------------------------------------------------------------------------

Any resource publishing configuration attached to a resource could
not be persisted, because the needed mapping information for
Doctrine was missing and the target type of the relation was an
interface.

This change adds an AbstractPublishingConfiguration and the needed
annotations, plus a schema migration.

* Fixes: `#32826 <http://forge.typo3.org/issues/32826>`_
* Commit: `9dd8a61 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9dd8a61234837658af6168f49237a9bab0890e85>`_

[BUGFIX] Fix indentation in "Contributing to FLOW3"
-----------------------------------------------------------------------------------------

* Fixes: `#38884 <http://forge.typo3.org/issues/38884>`_
* Commit: `91cb311 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=91cb31125ea1e5cab6bb96ccc705f33e64d244d3>`_

[FEATURE] Add flushConfigurationCache to ConfigurationManager
-----------------------------------------------------------------------------------------

This allows to remove the cached configuration in Production context.

* Resolves: `#38859 <http://forge.typo3.org/issues/38859>`_
* Commit: `42702ac <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=42702acc149b25756d6de32d424747a4ef274de7>`_

[BUGFIX] Adjust execute bit on some files
-----------------------------------------------------------------------------------------

This fixes the execute bit (and setfilepermissions.sh) so that
no differences are created when setting permissions on a fresh
clone.

* Fixes: `#36049 <http://forge.typo3.org/issues/36049>`_
* Commit: `f91996c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f91996c6117d2e095dac9dc68829805163f31778>`_

[TASK] Some code cleanup, CSRF settings documentation
-----------------------------------------------------------------------------------------

Does some code (style) cleanup and adds descriptions for CSRF
options in Settings.yaml.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `f406f7c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f406f7c96d9877fe1ffb1ed2f9c0162538665b68>`_

[BUGFIX] Have Doctrine\\Repository::findAll() return a QueryResult
-----------------------------------------------------------------------------------------

This makes the behavior of Doctrine\\Repository consistent and
allows the use of findAll() e.g. in combination with widgets.

With this change, findAll() also observes the default ordering
of a repository.

* Fixes: `#35035 <http://forge.typo3.org/issues/35035>`_
* Fixes: `#38381 <http://forge.typo3.org/issues/38381>`_

* Commit: `9825cdb <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9825cdbf68efafe86c8118e7b44e4d92a25470bf>`_

[BUGFIX] Fix timezone override side effect in DateTimeConverter
-----------------------------------------------------------------------------------------

Specifying a timezone override in DateTimeConverter would lead to
wrong times due to the timezone being applied to the finished date
instance, not upon creation.

* Fixes: `#35369 <http://forge.typo3.org/issues/35369>`_
* Commit: `49196a7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=49196a7cf539ce4eafb68e81d79fbfbfd265812a>`_

[FEATURE] Support tearDown for functional tests in generic persistence
-----------------------------------------------------------------------------------------

Implement a tearDown method in the generic persistence according to the
Doctrine PersistenceManager. The call is delegated to the underlying
backend.

* Resolves: `#38785 <http://forge.typo3.org/issues/38785>`_
* Commit: `af46cd9 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=af46cd9cbf1c8f6e7bb0dabd6142571ad8a7e04f>`_

[TASK] Clean up some code
-----------------------------------------------------------------------------------------

Fixes some comments, style issues and API usage.

* Related: `#37574 <http://forge.typo3.org/issues/37574>`_
* Related: `#34875 <http://forge.typo3.org/issues/34875>`_

* Commit: `d57781a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d57781ab6fc326571d14c7722b472623797c6cf3>`_

[BUGFIX] MemcachedBackendTest fail
-----------------------------------------------------------------------------------------

MemcachedBackendTest doesn't use TYPO3\\FLOW3\\Core\\ApplicationContext
to initialize MemcacheBackend.

* Fixes: `#38713 <http://forge.typo3.org/issues/38713>`_
* Commit: `b9f907d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b9f907d8c9f17251af0fd5522b221be6926ada42>`_

[BUGFIX] Remove f:uri.resource title parameter in Guide
-----------------------------------------------------------------------------------------

The resource management documentation described a title parameter
for the ResourceViewHelper that ceased to exist a long time ago.

* Fixes: `#38382 <http://forge.typo3.org/issues/38382>`_
* Commit: `d799913 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d799913e3e24caba4977b317a712aea57b5b0982>`_

[BUGFIX] Reset InternalRequestEngine for each functional test
-----------------------------------------------------------------------------------------

Currently all functional tests share the same instance of
\\TYPO3\\FLOW3\\Mvc\\Routing\\Router because the InternalRequestEngine
is of scope singleton.
This leads to unexpected results and failing tests if tests add
custom routes.

This change fixes this by making the ObjectManager forget the
singleton instance of the request engine after each testrun.
This also reverts the changes that were introduced with
I5a5bf17d00c5be05748a18122dae42989f429221 as they did not
have the expected effect.

* Fixes: `#38435 <http://forge.typo3.org/issues/38435>`_
* Commit: `cff94d7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=cff94d79b2146f315f1a1aff5fc8be4b30ff55ae>`_

[TASK] Add annotation reference to documentation
-----------------------------------------------------------------------------------------

* Resolves: `#38669 <http://forge.typo3.org/issues/38669>`_
* Commit: `086ee1e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=086ee1ec27a228bd4570238c5113414100a05387>`_

[TASK] Add documentation to annotation classes
-----------------------------------------------------------------------------------------

* Related: `#38669 <http://forge.typo3.org/issues/38669>`_
* Related: `#34875 <http://forge.typo3.org/issues/34875>`_

* Commit: `e4fbaad <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e4fbaad0b5217b3383eb04bb45efe63b7d1c7dbe>`_

[BUGFIX] Fix use of Target in annotation classes
-----------------------------------------------------------------------------------------

* Fixes: `#38667 <http://forge.typo3.org/issues/38667>`_
* Commit: `fbe64c7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=fbe64c7c65436af5b0b6fc5c7196322a69ecc757>`_

[FEATURE] Extract authenticateAccount functionality
-----------------------------------------------------------------------------------------

This extracts the portion that is responsible for the actual account
authentication in order to use this exclusively in own tests.

* Resolves: `#37470 <http://forge.typo3.org/issues/37470>`_
* Commit: `6bbe20c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6bbe20c397c81444422bf1345a499244d88f7481>`_

[BUGFIX] Skip abstract classes in ensureAggregateRootInheritanceChainConsistency
-----------------------------------------------------------------------------------------

When using an abstract base class for domain models, the checks done in
ensureAggregateRootInheritanceChainConsistency() would fail, even though
it is fine to have an abstract base class not being aggregate root.

* Fixes: `#31522 <http://forge.typo3.org/issues/31522>`_
* Commit: `2d62b1e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2d62b1e83ec1cdc3878c79ca6b4a2b08e8d44d40>`_

[TASK] Use Inject annotation instead of tag
-----------------------------------------------------------------------------------------

The ConfigurationBuilder still used getPropertyNamesByTag(),
this change replaces that with getPropertyNamesByAnnotation().

* Resolves: `#38622 <http://forge.typo3.org/issues/38622>`_
* Commit: `761e287 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=761e2876dbefe59e4fae759d7589b6505acbb2ec>`_

[TASK] Functional tests for Routing Framework
-----------------------------------------------------------------------------------------

Adds testing routes to the provided Testing/Routes.yaml
file and adds tests covering mathing and resolving of
arbitrary routes.

* Resolves: `#37608 <http://forge.typo3.org/issues/37608>`_
* Commit: `6c9633f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6c9633fac3e563480f15e242e736b0cac827895e>`_

[BUGFIX] Reset the router for each functional test
-----------------------------------------------------------------------------------------

Currently all functional tests share the same instance of
\\TYPO3\\FLOW3\\Mvc\\Routing\\Router because the InternalRequestEngine
is of scope singleton.
This leads to unexpected results and failing tests if tests add
custom routes.

This change fixes this by reinitializing the request engine for
each test case that has testableHttpEnabled set to TRUE.

* Fixes: `#38435 <http://forge.typo3.org/issues/38435>`_
* Commit: `3bb6604 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3bb66040c0c55d7ae5ded62d7df0878d61fe6b58>`_

[BUGFIX] BaseUri contains default HTTPS port
-----------------------------------------------------------------------------------------

By resolving #37770 now the BaseUri and thus the base tag when
using <f:base /> contains the HTTP port if it's not equal to 80.

This adjusts Request and Uri to omit the port if it is equal to
443 and the request scheme is https.

* Fixes: `#38547 <http://forge.typo3.org/issues/38547>`_
* Related: `#37770 <http://forge.typo3.org/issues/37770>`_

* Commit: `5835407 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=58354078b93ed5678abf205bb6563afdb4775d5a>`_

[TASK] Add "Introduction" to the guide
-----------------------------------------------------------------------------------------

Added introduction section for the guide.

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Related: `#27561 <http://forge.typo3.org/issues/27561>`_

* Commit: `439702c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=439702c189fa864ff26668986e6fbf5f04616aa4>`_

[TASK] Add changelog for FLOW3 1.1.0-rc1
-----------------------------------------------------------------------------------------

* Commit: `291cb17 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=291cb179bd8e0f6d535607227bc36226502e3f8d>`_

[BUGFIX] Fix wrong check in atomic writes code
-----------------------------------------------------------------------------------------

Fixes a wrong check in Cache\\FileBackend and RsaWalletServicePhp
as well as a bunch of one-line if blocks.

* Fixes: `#27989 <http://forge.typo3.org/issues/27989>`_
* Related: `#34875 <http://forge.typo3.org/issues/34875>`_

* Commit: `1355fcd <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1355fcd72db319e90fdd06dd8b78abcfbe069c8a>`_

[FEATURE] Inform about lock expiry in CLI
-----------------------------------------------------------------------------------------

When a CLI command is not executed because the FLOW3 system
is locked, the time remaining until lock expiry is shown in
the message to the user.

* Resolves: `#38419 <http://forge.typo3.org/issues/38419>`_
* Commit: `849e9e1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=849e9e1c3d1e6bd7e918274eb95ad70c81056615>`_

[TASK] Add "Essential Design Patterns" to the guide
-----------------------------------------------------------------------------------------

Re-uses some AOP verbage from part III of the guide.

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Related: `#27561 <http://forge.typo3.org/issues/27561>`_

* Commit: `90cad6b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=90cad6b682060a57d2c50bf06121a38ac378f0af>`_

[TASK] Document Routing feature "appendExceedingArguments"
-----------------------------------------------------------------------------------------

* Resolves: `#35394 <http://forge.typo3.org/issues/35394>`_
* Commit: `8dde9f2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8dde9f2b624b49c93cbc7f84ab73f4dee5d4194a>`_

[BUGFIX] IdentityRoutePart should accept identity array
-----------------------------------------------------------------------------------------

IdentityRoutePart::matchValue() returns an identity array in
the format array('__identity' => '<Identifier>') (see #37403).

This change ajusts resolveValue() to accept arrays in that
format, too.
This is required for widgets that fetch arguments from the
current request and pass them to the UriBuilder.

* Resolves: `#38404 <http://forge.typo3.org/issues/38404>`_
* Commit: `23a2b37 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=23a2b37d218ad04c90957e4fe49fd3791e22f93d>`_

[TASK] Adjust filename spelling to match rest of package
-----------------------------------------------------------------------------------------

* Related: `#35298 <http://forge.typo3.org/issues/35298>`_
* Commit: `91141a3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=91141a35001fc9f1a77c888bfdf906b42daac337>`_

[TASK] Remove trailing colon from example headlines
-----------------------------------------------------------------------------------------

It just looked weird this way…

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `63421e0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=63421e014ec3b9d687a2f9f19f85b98b6443b3e4>`_

[BUGFIX] Fix Objects.yaml className example in guide
-----------------------------------------------------------------------------------------

The guide still stated that setting className in Objects.yaml
was possible for classes, but it works only for interfaces.

* Fixes: `#37648 <http://forge.typo3.org/issues/37648>`_
* Commit: `dc396d0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=dc396d0b5a4fb64b99e3ed95613b2c96756a9dc5>`_

[BUGFIX] Fix code documentation of DatetimeParser
-----------------------------------------------------------------------------------------

The parser code documentation would state the parse methods
expect \\DateTime instances, but in fact strings are expected.

* Fixes: `#34050 <http://forge.typo3.org/issues/34050>`_
* Commit: `7024268 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7024268cd8cd45394aa764ba9f45a759f0629b2d>`_

[TASK] Provide conventions for ids in XLIFF files
-----------------------------------------------------------------------------------------

* Resolves: `#32606 <http://forge.typo3.org/issues/32606>`_
* Commit: `f4f841b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f4f841bdbd32eb8a7a5f66e79e2d7108b85aa4ad>`_

[TASK] Update and link CGL on one page
-----------------------------------------------------------------------------------------

* Resolves: `#36651 <http://forge.typo3.org/issues/36651>`_
* Commit: `20f273f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=20f273f4389698d3c9c40e1c0b831dc17f503da8>`_

[TASK] Show up hints for nesting inline ViewHelpers
-----------------------------------------------------------------------------------------

This adds a section with some examples about how to nest
and use inline ViewHelpers.
Besides, it does some minor typo and formatting corrections.

* Resolves: `#34749 <http://forge.typo3.org/issues/34749>`_
* Commit: `28ab103 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=28ab103142b0567498c4fc7ed744a72209f647bb>`_

[BUGFIX] Log route values if a route can't be resolved
-----------------------------------------------------------------------------------------

This re-introduces logging if a route could not be resolved.
This behaviour was lost with I9605731f78cb1be9b0fb5c439d7149a676b6ccb7

* Related: `#38172 <http://forge.typo3.org/issues/38172>`_
* Commit: `c110361 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c11036150d7814762dd9de67a0ed641c960d94a9>`_

[TASK] Update "CGL on one page"
-----------------------------------------------------------------------------------------

* Resolves: `#36651 <http://forge.typo3.org/issues/36651>`_
* Commit: `3633f65 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3633f65053ad7f072d6aa7a29754d62e0eebd37b>`_

[TASK] Code cleanup
-----------------------------------------------------------------------------------------

Does code cleanup, mostly to documentation, but also tweaks
unused variables, missing return statements and similar things.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `3128201 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3128201c0435a028d5a57aa0a9e1755c4e478495>`_

[TASK] Add "Architectural Overview" to the guide
-----------------------------------------------------------------------------------------

Based on the introduction from the old DocBook manual,
tweaked and amended.

* Resolves: `#29266 <http://forge.typo3.org/issues/29266>`_
* Commit: `fd62a02 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=fd62a028e424a14c117c36340c2e88f35369cb81>`_

[TASK] Some tiny tweaks to the 1.1.0b3 changelog
-----------------------------------------------------------------------------------------

* Commit: `4ae9c66 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4ae9c667d38e571a279d84e13a0de6cfd6dbb31f>`_

[TASK] Add changelog for FLOW3 1.1.0-beta3
-----------------------------------------------------------------------------------------

* Commit: `38e6e22 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=38e6e22486b3e5c08076c6ddfadc32ea50148360>`_

[BUGFIX] Only map file uploads to arguments if not empty
-----------------------------------------------------------------------------------------

Currently the HTTP request converts the FILES superglobal
to request arguments even if no file has been uploaded.
This leads to an exception when submitting a form without
uploading a file because the property mapper receives a
corrupt source array in that case.

This adjust the HTTP request to only map values from the
FILES superglobal to arguments if a file has been uploaded.

This also tweaks the ResourceTypeConverter to accept
an empty source. Besides the converter now only outputs
filer errors (for too large or corrupt files) to the user.
Server errors (e.g. non-existing/read-only tmp directory)
are logged to the systemLogger.

* Fixes: `#38184 <http://forge.typo3.org/issues/38184>`_
* Commit: `38fcda5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=38fcda543a3c4ad0600fdba19c6fbd31da895e20>`_

[BUGFIX] Inform about possible cause for "No class schema found"
-----------------------------------------------------------------------------------------

When mapping meta data for Doctrine an error about "No class schema
found for …" could occur. It would not tell in what model the mapping
was taking place, leaving the user to guesswork. This adds output
of the currently examined class to the exception.

* Fixes: `#37547 <http://forge.typo3.org/issues/37547>`_
* Commit: `a88b400 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a88b400cee51f51e032de71d42d8c03eec545d26>`_

[TASK] Add context information to cache clearing commands
-----------------------------------------------------------------------------------------

When using the flow3:cache:flush commands only the current
cli context is cleared. This is not clear when using the
commands and this change add the context information
to the command output.

* Resolves: `#38221 <http://forge.typo3.org/issues/38221>`_
* Commit: `44e04bf <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=44e04bfc8ca04f3fcc14b3dd5f3087388f8aad99>`_

[TASK] Fix section about Resources in FLOW3 manual
-----------------------------------------------------------------------------------------

This fixes the Fluid code snippet of the resource upload example
in the Resource Management section.
Besides this adds a sample domain model to make this easier to
understand.

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `e444f6a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=e444f6a9c5a12d53f983d0b9a7d7e368e2d0dbb7>`_

[TASK] Documentation corrections, each minor
-----------------------------------------------------------------------------------------

Some additional corrections, basically typo corrections,
for the manual.

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `13b891d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=13b891d201ec9605503b2c2be06db19efa04cbd6>`_

[BUGFIX] Routing cache only works for one request
-----------------------------------------------------------------------------------------

Currently the routing uses a TransientMemory cache backend by
default. Besides, objects in the routing values are converted
to hashes using spl_object_hash() - which generates a new hash
for every request.

This change configures the RouterCachingAspect to use a
SimpleFile cache backend and adjusts the aspect to use the
persistence manager in order to convert objects to their
identifiers before creating cache entries.

This also adds a signal to the FunctionalTestCase base
class that flushes the routing caches on teardown.

Furthermore this adds two convenience methods
getLastMatchedRoute() and getLastResolvedRoute() to the router
which should make debugging and testing easier.

* Fixes: `#38172 <http://forge.typo3.org/issues/38172>`_
* Commit: `c7386f4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c7386f4a917276f4f2fe65ca50fb8f6745a6bba8>`_

[TASK] Update Fluid ViewHelper reference
-----------------------------------------------------------------------------------------

This adds format.identifier documentation and a depreciation
notice for identity.json to the Fluid VH reference.

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `a96ea73 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a96ea73b410f06df2a542ed6b300c9f969579ec4>`_

[BUGFIX] Non-standard ports are now considered by HttpRequest
-----------------------------------------------------------------------------------------

Ports that are not 80 for HTTP or 443 for HTTPS were simply not
passed through to the Request when being created by the create()
method.

Also Uri will now set the port to 443 for HTTPS if no port is
given in the string handed to the constructor.

* Fixes: `#37770 <http://forge.typo3.org/issues/37770>`_
* Commit: `d7106f9 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d7106f99e8500fc8e1cdf88a114cd77d1368e100>`_

[TASK] Comment fixes for accuracy and grammar
-----------------------------------------------------------------------------------------

* Commit: `c2e90ad <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c2e90adf6c487d1e1a7f614fbe039139182c5a6a>`_

[BUGFIX] Make PhpSession read settings from "PhpSession"
-----------------------------------------------------------------------------------------

The settings for the PhpSession are read from the key "PhpSession" now,
to ensure consistency. Before that they were read from "PHPSession".

* Fixes: `#37993 <http://forge.typo3.org/issues/37993>`_
* Commit: `96de170 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=96de170837473596138e42112839c14d75e6c17f>`_

[BUGFIX] Uri respects query and fragment even without path
-----------------------------------------------------------------------------------------

Corresponding to the appropriate RFC 3986, section 3.3
the query and fragment indeed may be present also if no
path is given.

* Fixes: `#37903 <http://forge.typo3.org/issues/37903>`_
* Commit: `75d9852 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=75d98528be52c83c6226b2eca162e166d4c98cc3>`_

[TASK] Make extending GenericObjectValidator easier
-----------------------------------------------------------------------------------------

This change moves the check for already validated objects out
of the isValid() method and into validate() instead. Since in
custom validators isValid() is the method to implement, this
makes correct implementation less error-prone.

* Related: `#37363 <http://forge.typo3.org/issues/37363>`_
* Commit: `ed3788b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ed3788b39662247d03fec6e7f45f99ad2ccc3f9f>`_

[BUGFIX] Property Mapper chokes on already-converted objects
-----------------------------------------------------------------------------------------

This happens for example when using the TYPO3.Form Project with a DatePicker,
which already transforms the value to the correct data type.

* Fixes: `#36988 <http://forge.typo3.org/issues/36988>`_
* Commit: `6695a4c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6695a4cb88c1d7cb9cc351bb99ce2322b9a73486>`_

[BUGFIX] Correctly implement validator resolver short notation
-----------------------------------------------------------------------------------------

Currently, the short notation for validators which has been introduced
with Id807dbfa78ae1388aa8cd53bfc578893eade427c does only support syntax
like TYPO3\\FLOW3:EmailAddress; but we should rather support TYPO3.FLOW3:EmailAddress
as this is how we use package keys at all other places which are not PHP code.

* Fixes: `#38154 <http://forge.typo3.org/issues/38154>`_
* Related: `#33862 <http://forge.typo3.org/issues/33862>`_

* Commit: `fdfca9e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=fdfca9eb878fda281fc777afadb911b0bf26d6e9>`_

[TASK] Add note to View chapter about default model properties
-----------------------------------------------------------------------------------------

This note should be made seen the confusion around fixing #35894

* Related: `#35894 <http://forge.typo3.org/issues/35894>`_
* Commit: `a785bb6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a785bb6813f5d2131aecb529c03a10e2017a05bc>`_

[BUGFIX] Make baseUri setting work for resource publishing
-----------------------------------------------------------------------------------------

The baseUri setting was not observed in the filesystem resource
publisher.

* Fixes: `#37550 <http://forge.typo3.org/issues/37550>`_
* Commit: `92b4d99 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=92b4d9950e1ed0950062eebf01308c08dea907d7>`_

[BUGFIX] Use exception handling framework for CommandController
-----------------------------------------------------------------------------------------

The CommandRequestHandler brought its own tiny exception handling
with the main drawback exceptions not being logged anymore, unlike
the Error\\AbstractExceptionHandler features.

When handling a CommandRequest, a dedicated CommandExceptionHandler
is involved, taking care of occuring exceptions.

* Fixes: `#37995 <http://forge.typo3.org/issues/37995>`_
* Commit: `f0eaa57 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f0eaa57a8de45a941fefaadfc2cd9a44a9d4cbd5>`_

[FEATURE] Configuration validation through (adapted) JSON Schema
-----------------------------------------------------------------------------------------

Implementation of a PHP array schema validator modeled using the
JSON Schema specification as guideline.

The following CLI commands which utilize the validator are provided:

- configuration:validate validates the configuration of a certain type
  with respect to the provided schemata. The schema files are searched
  for in Resources/Private/Schema of all active packages.

- configuration:generateschema is a kickstarter which generates a basic
  schema to be used as a starting point for further adjustments

Furthermore, this change includes schemata for all FLOW3 settings and the other
configuration types (Caches, Objects, Policy and Routes).

* Resolves: `#31277 <http://forge.typo3.org/issues/31277>`_
* Commit: `1c8a80d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1c8a80de60bff7ad0f878ade7e1cedc0f28ee365>`_

[BUGFIX] Internal Request Engine needs to clear security context
-----------------------------------------------------------------------------------------

In order to get the security tokens matching the new request created
in the internal request engine, the security context should be cleared
using the "clearContext" method. This means that the tokens will be
matched with the configuration from the routing based on the new request
and not the parent request.

This patch also contains a small enhancement which adds two additional
headers to the virtual browser's response containing the code and message
of a possible exception.

* Fixes: `#37377 <http://forge.typo3.org/issues/37377>`_
* Commit: `f67078c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f67078cb7d88cc8c1c058244c63239fbd3616d92>`_

[TASK] Fix markup errors in FLOW3 manual
-----------------------------------------------------------------------------------------

This change fixes another markup issue resulting in rendering
glitches.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `70e012a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=70e012aa0dadea833484e52617f2c07e18c39e61>`_

[TASK] Fix markup errors in FLOW3 manual
-----------------------------------------------------------------------------------------

This change fixes a number of markup issues resulting in rendering
glitches.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `2ce7ec8 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2ce7ec8e5733d6e0c272cf1288058b57a53912bb>`_

[TASK] Update templating chapter
-----------------------------------------------------------------------------------------

Along with some style and markup tweaks this adds details
on XML namespace declaration and XSD generation.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `ad55bfb <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ad55bfbef4af6112a5a1a33e292bad0fb68444ab>`_

[TASK] Update validation chapter
-----------------------------------------------------------------------------------------

Along with some style and markup tweaks this moves some sections
around and adds details on avoiding recursive/duplicate validation.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `ffa7f56 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ffa7f5633c6c8719297c023be9963295dd838310>`_

[TASK] Update object management chapter
-----------------------------------------------------------------------------------------

This updates the section on custom factories.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `70cf2d8 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=70cf2d80347bc1fa2b4f3bfaf49125e51af22708>`_

[TASK] Update persistence chapter
-----------------------------------------------------------------------------------------

Some layout/markup tweaks and removed some outdated parts about
the generic PDO persistence we had earlier. Also explain identity
and value object handling in more detail.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `9ba6511 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9ba651114b766d7ecac17ba67e4f9dd31d0747f6>`_

[TASK] Update FLOW3 manual
-----------------------------------------------------------------------------------------

This change removes the glossary and colophon from the guide
and applies mostly markup changes to various parts.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `f951e29 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=f951e298d6a669b32a9bcf220ebbb4e2f8995454>`_

[BUGFIX] Discourage people to expose anything but the Web folder
-----------------------------------------------------------------------------------------

This updates the Quickstart to explicitly push people into using Web
as the document root for their web server.

* Fixes: `#38016 <http://forge.typo3.org/issues/38016>`_
* Commit: `6545e47 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6545e477153fd3d6026ab3673056e292bd5ded9e>`_

[TASK] Refactor constructor argument of ExceptionHandler implementors
-----------------------------------------------------------------------------------------

Moves the redundant constructor method of each AbstractExceptionHandler
implementor to the AbstractExceptionHandler itself.

* Resolves: `#38002 <http://forge.typo3.org/issues/38002>`_
* Commit: `62df179 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=62df179937f5ebdd120ce644787232ae4a349737>`_

[TASK] Session handling documentation
-----------------------------------------------------------------------------------------

* Resolves: `#37668 <http://forge.typo3.org/issues/37668>`_
* Commit: `8d7f0f3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8d7f0f38d125459e8a53d4b447d339d4d7baff24>`_

[BUGFIX] Fix recursion detection in instantiateClass
-----------------------------------------------------------------------------------------

When in ObjectManager->instantiateClass() the speedup case was
used, recursion detection would potentially fail, as it returns
early without removing the class name from the list of classes
currently being instantiated.

* Fixes: `#37997 <http://forge.typo3.org/issues/37997>`_
* Commit: `88988c5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=88988c587cb1fd45597f46766ae79f76cee4ac5e>`_

[TASK] Code cleanup without functional changes
-----------------------------------------------------------------------------------------

This change fixes some comments, shuffles the order of things a
little and adds some empty lines.

* Commit: `6584400 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6584400ca883ed991c123784d650a649cf6c0308>`_

[BUGFIX] Remove unused configuration option from settings
-----------------------------------------------------------------------------------------

This change removes a no longer used/supported option from the
shipped Development configuration.

* Fixes: `#37966 <http://forge.typo3.org/issues/37966>`_
* Commit: `9d72dba <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9d72dba06a5801d542b3c8f812ec2ea8d76b62c6>`_

[TASK] Update validator reference with correct option types
-----------------------------------------------------------------------------------------

* Commit: `8ad0388 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8ad03883fdf96e350732d1832187985b9a8d4918>`_

[TASK] Add validator reference to the FLOW3 guide
-----------------------------------------------------------------------------------------

* Commit: `ad190d4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ad190d453b430ca658a10267d33b7dc8c5f3a1f4>`_

[TASK] Add CLI command reference to guide
-----------------------------------------------------------------------------------------

Adds a reference for the CLI commands in the FLOW3
base distribution.

* Commit: `51ff07d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=51ff07dfa7915d00943b986a9cfd1126451220ec>`_

[TASK] Add contributors list
-----------------------------------------------------------------------------------------

* Commit: `de0a196 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=de0a19623de02e96f8f08f0bd6828038c72ddf29>`_

[TASK] Update Fluid ViewHelper reference
-----------------------------------------------------------------------------------------

This change updates the Fluid VH reference and does some tiny
tweaks along the way.

* Commit: `594b122 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=594b122e7f7e8e558e07bdbe0cf5b7bb68af5380>`_

[TASK] Tiny docblock fix in DoctrineCommandController
-----------------------------------------------------------------------------------------

* Commit: `a915d02 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a915d023260a43bdba5caeecccf0ee874244e75f>`_

[BUGFIX] Corrected "Uri host" regular expression
-----------------------------------------------------------------------------------------

The regular expression verifying the validity of
a host name in Uri's setHost method was of an incorrect
syntax leading to a PHP error message.
Besides correcting that, this patch adds a Test to
proof the intended functionality.

* Fixes: `#37554 <http://forge.typo3.org/issues/37554>`_
* Commit: `9b04755 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9b047552c5a560268fbe588d5d0f2d19605f4dbe>`_

[TASK] Add changelog for FLOW3 1.0.5
-----------------------------------------------------------------------------------------

* Commit: `083e453 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=083e453522432b271f909baf82f2cf3ee9f37567>`_

[TASK] Update code migration to do two more fixes
-----------------------------------------------------------------------------------------

This adds adjustments for getOriginalRequestMappingResults() and
getOriginalRequest()->getArguments().

* Resolves: `#37762 <http://forge.typo3.org/issues/37762>`_
* Commit: `65a3e7b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=65a3e7b65f0bebe162ba68cc7adbf40770da336a>`_

[BUGFIX] Packages can be frozen in Development only
-----------------------------------------------------------------------------------------

Freezing packages was not possible in other contexts than Development
with the related commands. But if a package was frozen according to
PackageStates.php, it would advertise itself as frozen in all contexts.

While this did not seem to have any real effects, it caused confusing
output with the cache:flush command in Production context.

This change makes the Package class ignore the frozen state in any
context except Development and adds a check in the freezePackage()
method of the PackageManager.

* Fixes: `#37223 <http://forge.typo3.org/issues/37223>`_
* Commit: `4bff558 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=4bff5587d71a10fab4bb6d4b83e881141959e389>`_

[BUGFIX] Purge Doctrine proxies that are no longer needed
-----------------------------------------------------------------------------------------

With this change the proxy target directory is emptied before
Doctrine proxies are (re)built, removing outdated proxy classes.

This solves fatal errors when (proxied) classes are removed, and
thus can no longer be found when referenced from their heirs.

* Fixes: `#26903 <http://forge.typo3.org/issues/26903>`_
* Commit: `2f2e3fc <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2f2e3fc0d236a68485f6fc5c682c7d460549f0c6>`_

[TASK] No longer freeze packages by default
-----------------------------------------------------------------------------------------

Due to the possible pitfalls with frozen packages, no packages will be frozen
by default. This way a developer has to learn about frozen packages before he
can be confronted with them (and their pitfalls).

* Resolves: `#37726 <http://forge.typo3.org/issues/37726>`_
* Commit: `cadcb61 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=cadcb6127fd1ae2eef6d08c48680428d0361c8a1>`_

[BUGFIX] Integrity constraint violation deleting resources
-----------------------------------------------------------------------------------------

If you have two resources using the same resource pointer,
deleting a Resource will trigger deletion of the
connected ResourcePointer which then leads to an integrity
constraint violation.

This patch tells doctrine NOT to cascade delete operations.
This will lead to orphan resource-pointers which have to
be deleted manually or on a regular base.

* Fixes: `#34448 <http://forge.typo3.org/issues/34448>`_
* Commit: `02a7d84 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=02a7d844e21f2481094a1dacc86ce51484a8d051>`_

[TASK] Update Security Framework chapter
-----------------------------------------------------------------------------------------

Quick update of the Security Framework chapter to reflect recent
changes in FLOW3. Also some minor spelling error fixes.

* Resolves: `#37672 <http://forge.typo3.org/issues/37672>`_
* Commit: `df033b0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=df033b0d9586b2734e93cabb780b97971734010a>`_

[TASK] document utility functions
-----------------------------------------------------------------------------------------

* Resolves: `#37669 <http://forge.typo3.org/issues/37669>`_
* Commit: `2ef191c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2ef191c942b7178e27e64e27dd86bdcc1d9b939d>`_

[TASK] Documentation of Validation
-----------------------------------------------------------------------------------------

* Resolves: `#37666 <http://forge.typo3.org/issues/37666>`_
* Commit: `8d40ad1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8d40ad114b615d854b13384c03b8eadfa38f71f9>`_

[TASK] Make validator resolver public API
-----------------------------------------------------------------------------------------

People should use it when validation is used in custom code instead of
creating validators using new; thus the ValidatorResolver must be marked
as public API.

* Resolves: `#37665 <http://forge.typo3.org/issues/37665>`_
* Commit: `8182c52 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8182c526ce6ee0c40f5845b4ac1d8df26cf87465>`_

[TASK] improve Property Mapping Documentation
-----------------------------------------------------------------------------------------

* Resolves: `#37664 <http://forge.typo3.org/issues/37664>`_
* Commit: `9be5bb0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9be5bb0b2b179dd7b3d24340be59cdcf61a19431>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `cab86de <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=cab86deb8830734db32da86dac3e662ff321fb1a>`_

[TASK] Some tiny tweaks to the 1.1.0b2 changelog
-----------------------------------------------------------------------------------------

* Commit: `57bbe65 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=57bbe6571b25a52ee413c98cc29812b2ab1780f0>`_

[TASK] Add changelog for FLOW3 1.1.0-beta2
-----------------------------------------------------------------------------------------

* Commit: `82590ff <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=82590ff253c61a6daf82241a69de467ad0c0e193>`_

[BUGFIX] Fix inconsistent Validate and IgnoreValidation behavior
-----------------------------------------------------------------------------------------

The Validate annotation does an ltrim of "$" on the argument which the
IgnoreValidation annotation did not do. This change makes the two behave
the same by adding that trim to IgnoreValidation as well.

* Fixes: `#37385 <http://forge.typo3.org/issues/37385>`_
* Commit: `24485a7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=24485a773ddc75867133d58d5980bda07885b0ab>`_

[TASK] Make "all" parameter optional in package:refreeze
-----------------------------------------------------------------------------------------

For freeze, unfreeze and refreeze the default value for
the packageKey is now "all".

* Resolves: `#37358 <http://forge.typo3.org/issues/37358>`_
* Commit: `bc84ef1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=bc84ef1d18b3bacc4443c3b52ae76c09b2f1f44c>`_

[BUGFIX] PersistenceManager->add() now requires objects being new
-----------------------------------------------------------------------------------------

The add method in repositories did also update existing entities,
this can be dangerous, as it allows an attacker to misuse creation
forms (i.e. a register form) and change existing entities.

* Fixes: `#34527 <http://forge.typo3.org/issues/34527>`_
* Commit: `8d4b3c7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8d4b3c7099b597525ebb3406dbef0b9f204d67d2>`_

[TASK] Log skipped persistAll() due to closed EntityManager
-----------------------------------------------------------------------------------------

To avoid exceptions we only flush the EM if it is still open. To be
able to spot errors more easily, this adds a log entry if the EM
was closed and flushing was skipped.

* Related: `#30934 <http://forge.typo3.org/issues/30934>`_
* Commit: `660ee7e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=660ee7e9909766a4a93cb73263a2ca9f73295e66>`_

[TASK] Clean up some coding style issues
-----------------------------------------------------------------------------------------

Add space to "foreach(".

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `1ff13c4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1ff13c47bb21555d2169bef0d534b55716f48149>`_

[TASK] Clean up some coding style issues
-----------------------------------------------------------------------------------------

Add spaces to "){"

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `bb514fd <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=bb514fda56fb8bd7a6cd723babc7ad1204aa0824>`_

[TASK] Create configuration directories only on save
-----------------------------------------------------------------------------------------

The configuration directories for cached configuration were created
inside the constructor of the ConfigurationManager. This caused the
unit test to create directories outside the VFS. Moving the creation
to the saveConfigurationCache method fixes that. Additionally cleans
up some unit tests related to ApplicationContext and
ConfigurationManager.

* Related: `#33581 <http://forge.typo3.org/issues/33581>`_
* Commit: `cb141c7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=cb141c73e994e84e4efd03d5e4228add6a3ec642>`_

[BUGFIX] Keep existing PackageStates.php
-----------------------------------------------------------------------------------------

A wrong check for the existence of the configured "packagePath" caused
the loss of custom package states configuration on every request in
development mode or initially in production.

* Resolves: `#37607 <http://forge.typo3.org/issues/37607>`_
* Commit: `166b44e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=166b44e139b7d93dd001ff9bd6502ce43a88cb06>`_

[BUGFIX] Router overrides request arguments
-----------------------------------------------------------------------------------------

With the reworked Request stack, the router kicks in after
the action request have been built, overriding all arguments
the respective route specifies.

This works for the most cases, but leads to issues when you
try to specify part of a complex target argument via the route
and part via request.

For example if you update a domain model via request body but
specify the model itself through the URI like
http://domain/products/product-1 - now the Identity-RoutePart
detects "product-1" and turns it into the corresponding __identity
array but then the Router kicks in and overrides the "product"
argument completely resulting in a new object to be created by
the property mapper.

This change adjusts the Router to recursively merge arguments
with the route values instead, with precedence to the route
values.

* Fixes: `#37445 <http://forge.typo3.org/issues/37445>`_
* Commit: `170733f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=170733fb8d83ab208b74fc56e6e9894f80276362>`_

[BUGFIX] Avoid validating instances more often than needed
-----------------------------------------------------------------------------------------

The GenericObjectValidator uses a static variable to store objects being
validated. Objects were still validated over and over because at the
end of isValid() they were detached again.

This change replaces that detach() call with another concept. Now
any validator implementing the new ObjectValidatorInterface can be
given an SplObjectStorage to keep track of instances already
validated.

If you reset that container when it makes sense (before you
actively validate objects) you can avoid validating single instances
more than once in one validation run but still validate at various
points on your logic flow.

If you have implemented your own object validator you should
implement the new ObjectValidatorInterface - the easiest way is
to extend the GenericObjectValidator, if you haven't done that
so far.

* Fixes: `#37363 <http://forge.typo3.org/issues/37363>`_
* Related: `#34154 <http://forge.typo3.org/issues/34154>`_

* Commit: `26e4b3f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=26e4b3fa846c50fdbdc7908c11eda0756ed85f2c>`_

[BUGFIX] Fix IP address validation
-----------------------------------------------------------------------------------------

The IP address validation done with filter_var() worked
on the development machine running PHP 5.3.12, however,
it failed on the integration server running PHP 5.3.5.
Apparently, the filter_var options for FILTER_VALIDATE_IP
behave differently in these versions.

This patch removes the validation for IPv4 / IPv6 addresses
because they didn't make sense anyway.

In that regard: hooray for PHP behavior changes. They actually
exploit bad application code. Sometimes.

* Related: `#37584 <http://forge.typo3.org/issues/37584>`_
* Commit: `744c759 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=744c7593aaf2faab82a2415a8e17015fd3bc60d0>`_

[FEATURE] Provide way to determine client IP address
-----------------------------------------------------------------------------------------

This adds a method getClientIpAddress() to the HTTP Request
class. It considers various kinds of environment variables
which are present when using proxies or certain server setups
for determining the actual client IP address.

* Resolves: `#37584 <http://forge.typo3.org/issues/37584>`_
* Commit: `66bcdf5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=66bcdf54a158a4731259bad05a5eee39ae6f5dcb>`_

[!!!][FEATURE] Content Negotiation for Media Types
-----------------------------------------------------------------------------------------

This improves the support for detecting the Media
Type (that is, "format" in an ActionRequest context)
based on the request's Accept header.

This implementation supports Quality Values and Media
Ranges as specified in RFC 2616.

The way to define the supported formats of a controller
has changed: Previously a class property $supportedFormats
contained a list of filename extensions which would be
supported. This property is not supported anymore.
Instead, controllers may now specify a list of IANA
Internet Media Types in a property $supportedMediaTypes.

The default setting for these supported media types
in ActionController is "text/html". You'll need to adjust
your controllers accordingly if you relied on the
$supportedFormats feature.

Also note that the format in ActionRequest is now NULL
by default. The ActionController makes sure to set the
correct format, but if you created your own ActionRequest
for a special purpose, you need to take care of setting
it yourself.

* Resolves: `#37561 <http://forge.typo3.org/issues/37561>`_
* Commit: `03b6d85 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=03b6d85916e46ed8b2e99bc549d7248957dca935>`_

[BUGFIX] Save relative package path in PackageStates.php
-----------------------------------------------------------------------------------------

Using absolute paths in the PackageStates.php causes problems in a
chroot environment where the absolute path is different in CLI then
in the HTTPD process.

Also relative paths allow to put PackageStates.php under version
control to maintain a specific state even when paths differ
on development and production systems.

* Fixes: `#37220 <http://forge.typo3.org/issues/37220>`_
* Related: `#33719 <http://forge.typo3.org/issues/33719>`_

* Commit: `531178a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=531178a24edaa3e23e0d6dee53a5ff69f03a7b9c>`_

[Bugfix] Property mapper should distinguish between error and NULL
-----------------------------------------------------------------------------------------

currently, when a nested type converter returns NULL, this is silently
caught by the property mapper. Thus, it is not possible to reset f.e.
an integer value to NULL again.

This change fixes that behavior, and adds a functional test for it.

* Related: `#35136 <http://forge.typo3.org/issues/35136>`_
* Commit: `5badcdb <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5badcdb095b688e96460f579ec131fbaaa3c6e3f>`_

[!!!][TASK] Switch from MIME to Media Types
-----------------------------------------------------------------------------------------

The term MIME type is outdated, at least if used in a web context. The correct
term is "Internet Media Type". Furthermore, our list of MIME types (or media
types) was not up to date.

This patch introduces a new utility class "MediaTypes" which replaces
"FileTypes". Along with the new class comes a script which allows the core team
to conveniently update the list of Media Types and filename extensions.

This is a breaking change as the FileTypes class is deprecated with it. The old
methods are still available but should not be used anymore. A code migration to
use the new ones instead is shipped with the change.

* Related: `#37402 <http://forge.typo3.org/issues/37402>`_
* Related: `#33371 <http://forge.typo3.org/issues/33371>`_

* Commit: `ef3e8fb <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=ef3e8fbbae550efc12af8fa69e1b39eafeddab6f>`_

[!!!][BUGFIX] Float and Integer converters do not correctly handle errors and empty values
------------------------------------------------------------------------------------------

When an argument of a controller action is annotated with
@param integer $var, the validation never fails if a string
is passed to the argument.
This is because the IntegerConverter implicitly casts the
string to an integer. The same problem exists with floats.

This change fixes this by checking the value and returning
an error object if it is not numeric. Besides this tweaks
the FloatConverter to accept float and integer values as
input and it adds a bunch of unit & functional tests.

Furthermore, empty strings are now correctly converted as NULL values.
This is a breaking change if you relied upon the old behavior that
empty values are converted to the number 0.

* Fixes: `#35136 <http://forge.typo3.org/issues/35136>`_
* Commit: `a915647 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a915647549a52621d1b23b7787f0bd2e03a91261>`_

[BUGFIX] Make our var_dump() usable with Doctrine collections
-----------------------------------------------------------------------------------------

For Doctrine\\Collection instances we use Doctrine's export()
method now to render the dump.

* Fixes: `#37481 <http://forge.typo3.org/issues/37481>`_
* Commit: `c5497de <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=c5497de779450b06de1f1f850b21d683d22b7b40>`_

[TASK] Remove debug output in log on configuration changes
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `cec2133 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=cec2133bb7916bf06af0ea97a0e09d84b87e046e>`_

[FEATURE] Add getHttpResponse() to HttpRequestHandler
-----------------------------------------------------------------------------------------

This adds a getter method to the HTTP request handler
which allows for retrieving the response corresponding
to the currently handled request.

* Resolves: `#36696 <http://forge.typo3.org/issues/36696>`_
* Commit: `7e1087a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7e1087a99a5f56bdf458cfd23f61a31f9e3749e4>`_

[FEATURE] Make HTTP responses standards compliant
-----------------------------------------------------------------------------------------

This adds a new API method to the HTTP response which
is called by a request handler to assure conformity
with RFC 2616 and other related specifications.

While there are a lot of rules to consider, this patch
only introduces a first set of important checks which
are all explained by a corresponding test.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `63283d9 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=63283d92fa34cff7ce5b3dcd244b1aae1711e652>`_

[BUGFIX] Set property mapping configuration in RestController
-----------------------------------------------------------------------------------------

Since Iac7bbb2a58ad890701fff2b0ad6b16a0e0b15bba we use a
whitelist-based approach to configure property mapping.
This change hooks into the create/update action of the
RestController and sets the required property mapping
configuration.

* Related: `#37402 <http://forge.typo3.org/issues/37402>`_
* Related: `#36776 <http://forge.typo3.org/issues/36776>`_

* Commit: `94d958a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=94d958a57f662a27c5411df52707778e6c077301>`_

[FEATURE] Allow configurable identity key in JsonView
-----------------------------------------------------------------------------------------

Providing _exposeObjectIdentifier option is
not restricted to result in __identity anymore,
but is configurable to be an arbitrary string.

* Resolves: `#34414 <http://forge.typo3.org/issues/34414>`_
* Commit: `29ffc63 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=29ffc635275a68fa84c76d4b3a30d4086255f0b5>`_

[BUGFIX] Add hint on validator empty handling to migration
-----------------------------------------------------------------------------------------

* Fixes: `#37231 <http://forge.typo3.org/issues/37231>`_
* Commit: `d511b04 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d511b04e01e96f7919fc804487b7e03f839313f7>`_

[BUGFIX] Fix Wrong exception message in Repository->remove()
-----------------------------------------------------------------------------------------

The message would say add() was involved, which is wrong.

* Fixes: `#37448 <http://forge.typo3.org/issues/37448>`_
* Commit: `57e1e95 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=57e1e955e4494f4fb506c753c9560cfe90234c03>`_

[FEATURE] Response setExpires() / getExpires()
-----------------------------------------------------------------------------------------

This adds two new convenience methods to the Response
API which allow for setting and retrieving the Expires
HTTP header.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `60c22ce <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=60c22ce6a6eb8ede184069ad52573ad3b4163c3a>`_

[FEATURE] Make Message / Response setters chainable
-----------------------------------------------------------------------------------------

This makes the setter methods of the Message and the
Response class chainable.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `149a012 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=149a012ea5afbc6e02014d6ec564ae7f0788a767>`_

[FEATURE] More convenience methods in Response
-----------------------------------------------------------------------------------------

This adds a few more convenience methods for setting
headers and cache control directives in the Response
object:

* setDate() / getDate()
* setLastmodified() / getLastModified()
* setMaximumAge() / getMaximumAge()
* setSharedMaximumAge() / getSharedMaximumAge()

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `b18a9a5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=b18a9a51db14f3f45e17c1f36323b54b8428af90>`_

[FEATURE] Support for HTTP Cache-Control headers
-----------------------------------------------------------------------------------------

This adds support for the Cache-Control header.
The "Headers" object now handles the Cache-Control
header in a special way by keeping track of the
various cache directives separately. Those can
be set through the method setCacheControlDirective()
and get('Cache-Control') returns a rendered version
based on the previously set directives.

Alternatively, a whole Cache-Control header can also
be set through set() / setHeader(). The given field
value will then be parsed and the individual cache
directives are stored internally.

This patch also corrects the behavior of set() and
get() to convert date / time values always to GMT.
Also added a related note in the comments of the
respective API methods.

This patch also adds the new API methods setPrivate()
and setPublic() to the Response class.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `fb8b064 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=fb8b06479e34efb38e610d4ad2684569d6092004>`_

[BUGFIX] Fix error message about command controller classes
-----------------------------------------------------------------------------------------

If you create a CommandController which is not in the "Controller" directory
of a package or where the name does not end in "CommandController" you will
get an error saying "Invalid controller class name [...] 1305100019".

This change makes the error message a little more helpful.

* Fixes: `#33139 <http://forge.typo3.org/issues/33139>`_
* Commit: `5756509 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=575650915f69773733108052ba7da3e0e82e5c11>`_

[FEATURE] Add @depends annotation to ignored ones
-----------------------------------------------------------------------------------------

To allow test dependencies in Unit Tests, the @depends
annotation is added to the ignored annotation array.

* Resolves: `#37475 <http://forge.typo3.org/issues/37475>`_
* Commit: `d84ffe2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d84ffe233f56dcd6265b5eaac1f5884380ecafe5>`_

[FEATURE] Add hasRole() method to Account entity
-----------------------------------------------------------------------------------------

At the moment the roles still have to be persisted as
strings in the serialized roles property in the database.
Already converting all roles to objects would require
some more refactoring.
This change is tested on already existing, and on new
users.

* Related: `#37451 <http://forge.typo3.org/issues/37451>`_
* Commit: `a79904d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a79904d9c67634f6562632db0bc4cbc45465504a>`_

[FEATURE] Support for HTTP PUT/DELETE arguments
-----------------------------------------------------------------------------------------

This adds transparent argument support for arguments
in PUT and DELETE requests which are passed through
the request body. Depending on the content type of
the request, the message body is parsed and then
mapped into arguments for further use in controllers.

The following content content types are currently
supported:

* application/x-www-form-urlencoded
* application/json
* xml
* Resolves: `#36913 <http://forge.typo3.org/issues/36913>`_
* Related: `#37402 <http://forge.typo3.org/issues/37402>`_
* Related: `#33371 <http://forge.typo3.org/issues/33371>`_

* Commit: `26f83dd <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=26f83dd314e9b38d7d7bca10ec3d4b27e467ab5e>`_

[TASK] Common base class Message for Request / Response
-----------------------------------------------------------------------------------------

This introduces a new class "Message" which acts as a
common parent class for the HTTP Request and Response.
It provides shared functionality such as setting and
getting headers, charset handling and more.

It is in line with the terminology in RFC 2616.

* Related: `#37259 <http://forge.typo3.org/issues/37259>`_
* Commit: `7ac583f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7ac583ff633d7653ae45a84e4c36a280da6eba93>`_

[TASK] Temporarily remove nested response code
-----------------------------------------------------------------------------------------

This temporarily removes the code in HTTP Response which
tackles support of nested responses. This feature needs
to be implemented only when most of the other features,
including Cache Control, are in place.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `238efb0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=238efb0698735cf49457da7f9fe01671b757a905>`_

[FEATURE] Support for HTTP Age and Date header
-----------------------------------------------------------------------------------------

This patch adds API methods and internal handling of
the HTTP "Date" and "Age" headers, according to
RFC 2616. It also introduces the use of the "Now"
singleton as a time reference for age calculations.

* Related: `#37259 <http://forge.typo3.org/issues/37259>`_
* Commit: `a1c37e3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a1c37e38dd6f015a53f087b6d8c398db5bbcdfeb>`_

[TASK] Annotation cleanup for http response __toString method
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `a2e8c45 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=a2e8c4559231edcc02cdf79d37fc825e5ca2daf6>`_

[TASK] IdentityRoutePart should return __identity array
-----------------------------------------------------------------------------------------

IdentityRoutePart::matchValue() currently returns the identifier
of the ObjectPathMapping record directly.
This makes it difficult to merge arguments with data from the
requestBody (e.g. for PUT requests).

This change adjusts the route part so that it sets $this->value
to an array in the format array('__identity' => '<Identifier>')

* Fixes: `#37403 <http://forge.typo3.org/issues/37403>`_
* Related: `#37402 <http://forge.typo3.org/issues/37402>`_

* Commit: `02fc35b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=02fc35beae76ab7488245e92ffdb2489a17c1b01>`_

[FEATURE] Fluent Interface for PropertyMappingConfiguration methods
-----------------------------------------------------------------------------------------

Setter and other methods not intended to return particular
values now return $this in order to provide a Fluent Interface
that allows chaining of multiple calls to the same object.

* Resolves: `#34866 <http://forge.typo3.org/issues/34866>`_
* Commit: `2eeca51 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2eeca51fe0feb8442da9832e6eb1e73bc9fa0291>`_

[BUGFIX] Http Response can be cast to string again
-----------------------------------------------------------------------------------------

This reverts the removal of the __toString() method for the
Http Response. We currently rely on this behavior in the
ActionController which combines response content by simple
string concatenation.

* Commit: `aa303c3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=aa303c35b427f35c6ffedb91e5e74c9d52b6a937>`_

[TASK] HTTP Response: Status Code and Content Type
-----------------------------------------------------------------------------------------

This adds a few new methods to the HTTP Response
class - including the related unit tests.

* Related: `#37259 <http://forge.typo3.org/issues/37259>`_
* Commit: `1bf8bbd <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1bf8bbd678c6f4ca76d087b83c6cb5fbbbb65cf7>`_

[FEATURE] Introduce "Now" as unique time reference
-----------------------------------------------------------------------------------------

This patch introduces a new class called "Now" which
inherits DateTime and has the scope Singleton. It can
be used in all cases where a reliably comparable value
of "now" is needed or where time needs to be mocked
in related tests.

* Resolves: `#37376 <http://forge.typo3.org/issues/37376>`_
* Commit: `7f9fb7d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7f9fb7db5a624cc6b545057e98a4a35540b64db2>`_

[BUGFIX] Nested arrays in Annotation options are no longer dropped
-----------------------------------------------------------------------------------------

When giving a nested array of options to an annotation the rendered
form in proxy classes was cut off.

* Fixes: `#37193 <http://forge.typo3.org/issues/37193>`_
* Commit: `5a2cbd0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5a2cbd05f001479e6bf2b9363a7f01e07b511c4e>`_

[BUGFIX] credentialsSource in Account should be nullable
-----------------------------------------------------------------------------------------

Not all authentication mechanisms need a "credentials source" (e.g. the
typo3.org SSO provider), so the column for the property should be nullable.

* Fixes: `#37341 <http://forge.typo3.org/issues/37341>`_
* Commit: `d3e991d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=d3e991d4bce23f46c4bd3d3287c4c67d3abcba16>`_

[BUGFIX] Fix wrong hint in code migration
-----------------------------------------------------------------------------------------

* Fixes: `#37224 <http://forge.typo3.org/issues/37224>`_
* Commit: `5d3a102 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5d3a102e22783b9293b2ac8834a00d8698539365>`_

[FEATURE] Day, month, year keys in DateTimeConverter source array
-----------------------------------------------------------------------------------------

This patch introduces additional possible array keys for the
source array of the DateTimeConverter. Now not only a string
representing the DateTime can be passed, but array keys
of the single day, month and year.

* Resolves: `#35195 <http://forge.typo3.org/issues/35195>`_
* Commit: `01d918d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=01d918d0b648374d88740caa5e1429f7f72727c5>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Fluid
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[FEATURE] CSRF token ViewHelper
-----------------------------------------------------------------------------------------

With I9d667aa451a7510cf12ab13be745fed1f7ca477e CSRF tokens
are not added to URIs any longer.
Therefore you need to add the token yourself for "unsafe" requests
(POST, PUT, DELETE, ...).

This is not true for fluid forms where the token is added automatically
if the form does not have method="get" set
(see Ic600a9e591d047ca9bbd39d352c4f337bcfaa6a9).

For other forms or AJAX requests the ViewHelper can be used like this::

 <form action="<someAction>" method="post">
   ...
   <input type="hidden" name="__csrfToken" value="{f:security.csrfToken()}" />
 </form>

* Related: `#47252 <http://forge.typo3.org/issues/47252>`_
* Commit: `2f7a925 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=2f7a92559eebff872fad8022061320ae00067d6e>`_

[BUGFIX] Declare ObjectManager property
-----------------------------------------------------------------------------------------

The objectManager is injected and used but the property is not
declared in the class.

* Fixes: `#47968 <http://forge.typo3.org/issues/47968>`_
* Commit: `d1b0407 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=d1b04071805570eee6afa8c5ce381eb63fa89a6b>`_

[FEATURE] Allow f:link.action to operate on parent request
-----------------------------------------------------------------------------------------

Add an useParentRequest argument to link.action, uri.action,
and form ViewHelpers to generate links using the Parent
Request instead of the current Request.

* Resolves: `#35790 <http://forge.typo3.org/issues/35790>`_
* Commit: `e3736a8 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=e3736a887a7278742961ef925a3bd8513e38447f>`_

[!!!][TASK] CSRF protection for "safe" request methods
-----------------------------------------------------------------------------------------

This change set adjusts URL related view helpers in Fluid to
an important behavior for Flow applications: HTTP request
methods which are, by definition, considered to be "safe"
(that is, "read-only") are now treated as such.

The Fluid Link and Uri view helpers will not generate CSRF tokens
anymore, since we assume that you are using them for GET requests.
The FormViewHelper however, will enable link protection if the
form does not have method="get" set.

Please adjust your applications to cleanly observe this principle since
more optimizations in this direction are planned for later versions of
TYPO3 Flow.

* Related: `#47252 <http://forge.typo3.org/issues/47252>`_
* Commit: `db1a420 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=db1a42045882eeafb1e677eccbf24b227d5f8b52>`_

[TASK] Remove dependency on installer
-----------------------------------------------------------------------------------------

Rely on implicit dependency through TYPO3.Flow

* Commit: `3bc590b <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=3bc590b49ef1177a9ec133ab61bec69fd3c43842>`_

[TASK] Add packageKey attribute to ifHasRole view helper
-----------------------------------------------------------------------------------------

This change adds support for handling a packageKey to the ifHasRole
view helper. It can be used in three ways:

1) The 'old' way, with just a string like 'Administrator'
   This will result in a check for the Administrator role within
   the current package (fetched from the controllerContext)
2) With a full role identifier like 'Foo.MyPackage:Administrator'
3) Using both, the role attribute and packageKey attribute

This was once Iae92119bf9f8d6125211d1e4b1e42a0a513d804b but had to be
reverted after an accidental merge.

* Related: `#37451 <http://forge.typo3.org/issues/37451>`_
* Commit: `81a9555 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=81a9555ac5566329766bd015dbb907f8ce50a1c8>`_

[TASK] filemtime is namespaced in TemplateView.php
-----------------------------------------------------------------------------------------

* Resolves: `#45987 <http://forge.typo3.org/issues/45987>`_
* Commit: `4dcc5f1 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=4dcc5f13534c27d3b55c77bee0c92a0b52687d2f>`_

[TASK] Adjust Fluid to Lazy Dependency Injection
-----------------------------------------------------------------------------------------

This adjusts the ViewHelperNode and AbstractWidgetViewHelper
to Lazy Dependency Injection introduced in Flow 2.0

* Related: `#43819 <http://forge.typo3.org/issues/43819>`_
* Commit: `26b0dad <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=26b0dad7ec00bf6400a65993e5b52204aa35494c>`_

[!!!][BUGFIX] urlencode viewhelper accepts objects with __toString
-----------------------------------------------------------------------------------------

This fixes a problem with the urlencode view helper. If you pass it an
object with __toString() method – for example an URI object – it is
returned as is. Now the view helper additionally checks for a __toString()
method.

This change is breaking if you rely on the viewhelper to return
values that are not a string or an object with __toString.
The viewhelper will now throw an exception in this case.

* Fixes: `#44889 <http://forge.typo3.org/issues/44889>`_
* Commit: `b10d6f6 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=b10d6f6b492c2241f73891760b8603bdc2d64df6>`_

[TASK] Add placeholder attribute to password ViewHelper
-----------------------------------------------------------------------------------------

As a follow-up to I24bb73c5de5a494259171ff289d434892f85e16e,
this also adds the placeholder attribute to the password
ViewHelper.

* Related: `#37558 <http://forge.typo3.org/issues/37558>`_
* Commit: `f40be1d <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=f40be1d798609dcbd528779faeb53955c24ac3f9>`_

[TASK] Make getTemplateRootPath() public like its setter
-----------------------------------------------------------------------------------------

The getTemplateRootPath() method in View\\TemplateView now
becomes public analogous to its setter counterpart which
already is public, too.

* Resolves: `#29303 <http://forge.typo3.org/issues/29303>`_
* Commit: `0c013e2 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=0c013e2ef49c4656c2cd55a8d79f9a5836c6ef75>`_

[BUGFIX] Adjust pagination widget to recent changes
-----------------------------------------------------------------------------------------

With #43589 the action argument of link/URI ViewHelpers is
not optional any longer.

This change adjusts the template of the provided pagination widget
to that breaking change by specifying the action argument.

Besides this adds a check to widget.link & widget.uri ViewHelpers
which throws a more meaningful exception if the action argument
was omitted.

* Fixes: `#44376 <http://forge.typo3.org/issues/44376>`_
* Related: `#43589 <http://forge.typo3.org/issues/43589>`_

* Commit: `7e09655 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=7e096556c737e64963cee43b8e3990dfcb840718>`_

[TASK] Update composer.json with new dependencies
-----------------------------------------------------------------------------------------

* Commit: `8ad378a <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=8ad378a9ccfd88d09da62b4cd8761f2316caac01>`_

[TASK] Remove API annotation from View::canRender()
-----------------------------------------------------------------------------------------

With #40888 View::canRender() is no longer called from within
ActionController::resolveView().
As the framework no longer relies on that method to exist the
@api annotation is removed.

* Related: `#40888 <http://forge.typo3.org/issues/40888>`_
* Related: `#42176 <http://forge.typo3.org/issues/42176>`_

* Commit: `06ac5bc <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=06ac5bce073785de32bec004a2c98c53726e8057>`_

[BUGFIX] Allow one of action and actionUri to be omitted in Form ViewHelper
-----------------------------------------------------------------------------------------

With I03fa30be2522ee53d5a8f184b57afe539ed4f991 the action argument
of the Form ViewHelper was made required. But in fact you can override the
action attribute by specifying the "actionUri" argument. In that case the
"action" argument should not be required.

This removes this requirement again. But if neither "action" nor "actionUri"
is specified, an exception will be thrown.

This also removes the obsolete method setFormActionUri()

* Related: `#43589 <http://forge.typo3.org/issues/43589>`_
* Commit: `8bc51f2 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=8bc51f201aa416478710e0642007ccf1ad19e4ce>`_

[TASK] Prepare composer manifest for release
-----------------------------------------------------------------------------------------

Remove the version field, so versions can be read from tags in git
instead. Fixes the description slightly.

* Related: `#43822 <http://forge.typo3.org/issues/43822>`_
* Commit: `af16656 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=af166567a6ae252606202b6e1cd29ee2ef13547b>`_

[!!!][BUGFIX] Mark action argument required in routing related ViewHelpers
-----------------------------------------------------------------------------------------

Currently you can omit the action attribute when creating a link/URI in
Fluid. If no action was specified the default action of the matching route
was assumed. With #43589 the behavior changed and you'll have to specify
all defaults of a route.

This change makes the action argument of follwing ViewHelpers required:

* f:link.action
* f:uri.action
* f:form

This is a breaking change if you created a link without specifying the action.
In this case change your Fluid code from
<f:action> to <f:action action="index"> (or whatever action is the default
of the target controller).

* Related: `#43589 <http://forge.typo3.org/issues/43589>`_
* Commit: `c9d4c4a <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=c9d4c4a269edf8652c83d64a32648bfabf49678c>`_

[TASK] Avoid use of getPropertyInternal()
-----------------------------------------------------------------------------------------

The getPropertyInternal() method obviously is intended for internal use
in the ObjectAccess class. This change replaces it's use with a call to
getProperty().

* Related: `#43617 <http://forge.typo3.org/issues/43617>`_
* Commit: `c06652a <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=c06652a11bdf3643a81fe5c9c62aa700daa1a8ae>`_

[TASK] Removed testable HTTP flag from tests
-----------------------------------------------------------------------------------------

Testable HTTP is now always enabled, thus the flag to switch it on can
be removed.

* Related: `#43590 <http://forge.typo3.org/issues/43590>`_
* Commit: `2a188cb <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=2a188cb0aabbbecbec8b644b982d96e4db21b8c1>`_

[BUGFIX] Make name attribute of LayoutViewHelper optional
-----------------------------------------------------------------------------------------

This change removes the required = TRUE from the registerArgument()
call for the name attribute of LayoutViewHelper. This matches the
fallback behavior in the postParseEvent() method.

* Fixes: `#43579 <http://forge.typo3.org/issues/43579>`_
* Commit: `5ce7ad5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=5ce7ad51c1ce96b2376bb4a8b5a89cf6e1a4faee>`_

[!!!][FEATURE] Allow Fluid arrays only in ViewHelper arguments
-----------------------------------------------------------------------------------------

This change greatly enhances the JavaScript compatibility of Fluid.

Fluid Arrays are a subset of the JavaScript object syntax, making it
hard to work with them in mixed HTML/JavaScript documents. For example
before this change, the following JavaScript Object was parsed by Fluid::

	var uris = {
	  endPoint1: '{f:uri.action(…)}',
	  endPoint2: '{f:uri.action(…)}',
	};

Before this change, the above snippet resulted in the following template,
as the generated array was casted to a string:

	var uris = Array

With this change, Fluid only parses arrays which are used inside
ViewHelper arguments, such that an array inside normal text is not
converted anymore.

Breaking Change
===============

This change is only breaking in very rare cases where one relied on
the inner contents of the ViewHelper being an array, f.e. if one used
the debug ViewHelper as follows::

	<f:debug>{key1: 'value1', key2: 'value2'}</f:debug>

… or if anybody wrote custom ViewHelpers which use this convention.

Relying on that would be very fragile anyways, as the insertion of a
single space character before the opening curly bracket or after the
closing one would cast the array back to a string.

ViewHelpers which were written like this should be re-written to take
the array as ViewHelper argument::

	<f:debug value="{key1: 'value1', key2: 'value2'}" />

* Resolves: `#43356 <http://forge.typo3.org/issues/43356>`_
* Commit: `ba09ec5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=ba09ec53d0fc932e4d65a4acfd925398e058b37e>`_

[!!!][FEATURE] Allow ResourceViewHelper to accept resource:// paths
-----------------------------------------------------------------------------------------

This enables the path argument of the Uri.ResourceViewHelper
to accept also resource URIs in the format "resource://Package.Name/Public/...".
This functionality used to be achievable with the former uri
argument but was removed with I92dccba6b5acd623ff33eb538e62d0682f00b95e.

This is marked breaking because it introduces Exceptions in case
of incorrect argument usage or values.

* Commit: `5504bee <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=5504beef578d5ef2e6c0f394fbed1a6e240d70c5>`_

[BUGFIX] Fix Doc comment in link.email ViewHelper
-----------------------------------------------------------------------------------------

Fixes the code example in the classes doc comment
and replaces a minor whitespace issue

* Fixes: `#43121 <http://forge.typo3.org/issues/43121>`_
* Commit: `d21bd9e <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=d21bd9e0629db33040b59df2f341b366bc79c07f>`_

[TASK] Add member for PaginateController::objects
-----------------------------------------------------------------------------------------

Adds declaration for the $objects member in the controller of the
pagination widget.

* Commit: `5695651 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=56956519d46f1a3bdeb1ecb8c5dfcf54b9e3952f>`_

[BUGFIX] Fix broken WidgetTest
-----------------------------------------------------------------------------------------

The fix for #42511 broke the functional WidgetTest in Fluid, because
it relied on "broken" URIs being accepted. The AJAX URI is now prefixed
with "http://localhost/" to make the test work again.

* Fixes: `#42746 <http://forge.typo3.org/issues/42746>`_
* Related: `#42511 <http://forge.typo3.org/issues/42511>`_

* Commit: `65ea61e <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=65ea61e4c17f6d635ef828afd90f2e01b3795e52>`_

[!!!][FEATURE] I18n support for uri.resource VH in Fluid
-----------------------------------------------------------------------------------------

This adds the (already documented) localization of resources to the
uri.resource VH. Any path will be localized if possible, unless the
feature is switched off using the "localize" argument.

The change is marked as breaking because it removed the "uri"
argument formerly available to the VH.

* Resolves: `#32339 <http://forge.typo3.org/issues/32339>`_
* Resolves: `#39792 <http://forge.typo3.org/issues/39792>`_

* Commit: `e9a21a4 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=e9a21a49bf1e6c72ccde995a582857c8bcac4609>`_

[BUGFIX] Fluid should depend on the composer installer
-----------------------------------------------------------------------------------------

* Commit: `913272d <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=913272d4260fd75610a195192969a926af48e94d>`_

[TASK] Adjust to FLOW3 renamed to TYPO3 Flow
-----------------------------------------------------------------------------------------

Adjusts the code, comments, documentation as needed.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `284e8f8 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=284e8f86439b3c8e0eb9abb4933ab78841d2f4bb>`_

[TASK] Update composer type to new naming scheme
-----------------------------------------------------------------------------------------

In accordance with the rename to TYPO3 Flow, the
composer-type is now 'typo3-flow-…'

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `45a3117 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=45a3117dc1c800f226c658757bdfa2d3738846ce>`_

[TASK] Change dependency to require flow3/composer-installers
-----------------------------------------------------------------------------------------

* Commit: `5682214 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=56822145986c86b490a178b48f9e72ff02280570>`_

[TASK] Use composer version of installers
-----------------------------------------------------------------------------------------

* Commit: `8061eeb <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=8061eeb300cb891dee2353f43c8731097e7e1447>`_

[TASK] Add christianjul/installers dependency
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `4449c2a <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=4449c2aa41c378f06e17b2faa879b880b3ef8bcf>`_

[TASK] Update unit tests to vfsStream > 1.0
-----------------------------------------------------------------------------------------

This adjusts the unit tests to the new vfsStream API.

* Related: `#37813 <http://forge.typo3.org/issues/37813>`_
* Commit: `e42dfb0 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=e42dfb079f34d017837358764e5c71fe898675af>`_

[TASK] Make PSR-0 and composer compatible
-----------------------------------------------------------------------------------------

Moves all classes into a PSR-0 directory structure and adds a composer
manifest instead of Package.xml.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `dfab7ff <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=dfab7ff48b4c29c65c0eab1bc4e63c121a28bb38>`_

[FEATURE] Allow using Locale in Currency and Date ViewHelper
-----------------------------------------------------------------------------------------

This enables switching the use of the current active Locale
in Format.Currency and Format.Date ViewHelper.

* Resolves: `#33143 <http://forge.typo3.org/issues/33143>`_
* Commit: `afdbc77 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=afdbc774a68af9e1a9aaf72a61680078b510d7c0>`_

[TASK] Whitespace fix in class docblock
-----------------------------------------------------------------------------------------

* Commit: `f20e61d <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=f20e61d31917e74d19e2b7fdd84a4dbf95c85d38>`_

[TASK] Code documentation fix on return types
-----------------------------------------------------------------------------------------

The variable container accepts any type, not only objects.

* Commit: `bbb9951 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=bbb99516cdb8f0252ad426f65b469bd55556a593>`_

[TASK] Enhance exception for duplicate variables
-----------------------------------------------------------------------------------------

The exception message for 'Duplicate variable declarations!' now
contains the variablename which is doubled.

* Resolves: `#40828 <http://forge.typo3.org/issues/40828>`_
* Commit: `438da61 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=438da61f6f460dd84079223c3b936c4df6e435fb>`_

[FEATURE] Format.JsonViewHelper escapes tag characters per default
-----------------------------------------------------------------------------------------

Since occuring plain greater-than or less-than characters in HTML
context could be dangerous (even CDATA sequences can be stopped with
this), the tags are now converted to their hexadecimal representation.
Since this is standard JSON syntax, this is considered not to be a
breaking change.

* Resolves: `#39886 <http://forge.typo3.org/issues/39886>`_
* Commit: `3d6a932 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=3d6a9326a0f1d28127a09c339c7a3da7743af33a>`_

[TASK] Support literal strings in boolean arguments
-----------------------------------------------------------------------------------------

This change adds support for string literals in boolean comparisons.
String literals have to be surrounded by single or double quotes and
may contain escaped single or double quotes.

* Resolves: `#6757 <http://forge.typo3.org/issues/6757>`_
* Commit: `125413c <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=125413ca638696bb4eef9b5c26eceed51acdcf4e>`_

[BUGFIX] TemplateParser unquoteString does not trim escaped quotes correctly
-----------------------------------------------------------------------------------------

This change fixes wrong trimming of trailing quotes in escaped sequences
by replacing trim() calls with a preg_replace() alternative.

* Fixes: `#39604 <http://forge.typo3.org/issues/39604>`_
* Commit: `009b1fc <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=009b1fc60ca13edc8aa95a2716a8b07c479ca169>`_

[FEATURE] Reserved variables represent their meaning when accessing
-----------------------------------------------------------------------------------------

All reserved variables, ie true, false, on, off etc. now represent
their intended value when accessing them.

* Resolves: `#39410 <http://forge.typo3.org/issues/39410>`_
* Commit: `3000719 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=3000719576da649017a4cbed51da2c2c058737f6>`_

[BUGFIX] Action URI of the form ViewHelper is not reset
-----------------------------------------------------------------------------------------

Form ViewHelpers store the action URI attribute for performance
reasons.
But because instances of ViewHelpers are reused, this value needs
to be reset.
Besides this removes an obsolete property "formActionUriArguments"

* Fixes: `#39456 <http://forge.typo3.org/issues/39456>`_
* Related: `#11636 <http://forge.typo3.org/issues/11636>`_

* Commit: `6945389 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=694538964346bc39f0dbf90725fd5474c6c5ee08>`_

[BUGFIX] Make TextareaViewHelper HTML5 aware
-----------------------------------------------------------------------------------------

This makes the arguments "rows" and "cols" of the form.textarea
ViewHelper optional.

* Fixes: `#31189 <http://forge.typo3.org/issues/31189>`_
* Commit: `2ed2091 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=2ed20916d219fa7a885ba6f9b65ae7265ed59dda>`_

[TASK] Make reflectionService property in AbstractViewHelper protected
-----------------------------------------------------------------------------------------

The property "reflectionService" in the AbstractViewHelper should be
protected instead of private to allow usage of the reflection service in
view helpers without having to inject again with another property name.

* Resolves: `#39255 <http://forge.typo3.org/issues/39255>`_
* Commit: `4b3c096 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=4b3c0967b73ebe13e044dab061192999c016b60b>`_

[TASK] Correct StripTags test because of unintended incompletion result
-----------------------------------------------------------------------------------------

A test's data provider's method name began with the character sequence
'test', was hence regarded as test to be executed.
This resulted into an "Incomplete" result when running the tests.

* Commit: `96f77ee <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=96f77ee3b32cdfe802b18792931e5b73cdbda831>`_

[BUGFIX] Make use of dashes in attribute names possible
-----------------------------------------------------------------------------------------

When using e.g. data-foo in VH tags, the parser would choke. This
change fixes this.

* Fixes: `#38592 <http://forge.typo3.org/issues/38592>`_
* Commit: `88d7486 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=88d7486d961daa35af376559675e93bcffe7756c>`_

[BUGFIX] Move functional test configuration to Testing
-----------------------------------------------------------------------------------------

This moves the functional test configuration to the
Testing context, to avoid errors in other contexts.

* Related: `#38873 <http://forge.typo3.org/issues/38873>`_
* Commit: `50370f1 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=50370f1ae6080b77502457d26245d5ad1cb271bf>`_

[BUGFIX] Remove eval from StandaloneViewTest
-----------------------------------------------------------------------------------------

Removes the use of eval from the StandaloneViewTest so that
now a Fixture class is used that extends the StandaloneView.

* Fixes: `#38873 <http://forge.typo3.org/issues/38873>`_
* Related: `#31179 <http://forge.typo3.org/issues/31179>`_

* Commit: `ec1b904 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=ec1b90495f25053418661025a311c8456b0c2cf3>`_

[BUGFIX] Replace placeholders in fallback for id translation
-----------------------------------------------------------------------------------------

When using id based translation and no translation is defined in XLIFF,
the tag value is used as a fallback in TranslateViewHelper.

With this change, the fallback is passed to label based translation,
making placeholder replacement work also if no translation does exist
yet.

* Fixes: `#37387 <http://forge.typo3.org/issues/37387>`_
* Commit: `96189df <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=96189df3951e77ed115c33d4a12603e0571c3f7a>`_

[BUGFIX] Remove (wrong) use of Internal annotation
-----------------------------------------------------------------------------------------

The internal annotation is used to declare command methods
as internal, not to mark things as not being public API.

Furthermore, it is not allowed to be used on properties
and with #38667 fixed Fluid would cause exceptions.

* Related: `#38667 <http://forge.typo3.org/issues/38667>`_
* Commit: `55e055c <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=55e055c0f3bd3c48f5bce02eba9ddd8661fd7cb4>`_

[TASK] Code cleanup
-----------------------------------------------------------------------------------------

Does code cleanup, mostly to documentation, but also tweaks
unused variables, missing return statements and similar things.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `edd10b4 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=edd10b4d737b3d21fc7e6b3d5b3a5dc69aa60cfb>`_

[BUGFIX] Only render hidden upload fields if a resource is available
-----------------------------------------------------------------------------------------

The UploadViewHelper always creates hidden fields for filename and
resource pointer so that previously uploaded files are not lost
if validation errors occur.

This change makes sure that those hidden fields are only rendered
if a file has been uploaded before because otherwise the property
mapper tries to create a Resource object and fails with an
exception (see #38184).

* Related: `#38184 <http://forge.typo3.org/issues/38184>`_
* Commit: `630992b <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=630992b7378e53ae51e2aa341837a4010dbe4bd2>`_

[TASK] Add query parameters for form action as hidden fields
-----------------------------------------------------------------------------------------

This change makes the form viewhelper usable with method GET by adding
query parameters of the action as hidden fields to the form. Otherwise
the browser would replace them by the form values
(http://www.w3.org/TR/html401/interact/forms.html#h-17.13.3.4).

* Resolves: `#11636 <http://forge.typo3.org/issues/11636>`_
* Commit: `488b238 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=488b238d9436d73df7e06679a6e76e83515f0fb7>`_

[BUGFIX] Fix unusable checkbox/radio if formObject is NULL
-----------------------------------------------------------------------------------------

When using a form object inside of a form view helper inside an index
action template and a checkbox is referring to a property $sth of
$someFormObject, the form object can be NULL with code like::

 indexAction(\\Some\\Type $someFormObject = NULL){ ... }

 <f:form ... object="{someFormObject}">
  <f:form.checkbox property="{sth}" value="yes" checked="{sth.value} == yes"/>
 </f:form>

Initially calling the index action makes someFormObject NULL. If the submitted
form had validation errors someFormObject is NULL, too. This possibility
was ignored in a call for the formObject from within the CheckboxViewHelper as
well as from the RadioViewHelper.

So you would get an exception telling you
 No value found for key "TYPO3\\Fluid\\ViewHelpers\\FormViewHelper->formObject"

This change fixes that bug and thus also sets the checkbox and radio
"checked" attribute properly when a validation error occurred.

* Fixes: `#35894 <http://forge.typo3.org/issues/35894>`_
* Commit: `cbe9304 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=cbe93048c094cdc1eec2feafc70bd1ee1d99c47b>`_

[FEATURE] Add a ViewHelper for entity identifier retrieval
-----------------------------------------------------------------------------------------

This adds a ViewHelper "format.identifier" that returns
the plain identifier for a given entity.

* Resolves: `#33494 <http://forge.typo3.org/issues/33494>`_
* Commit: `c8d53e9 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=c8d53e983c5a387b80560fd2bd62556a4c91833a>`_

[BUGFIX] ViewHelper exceptions should not be caught in testing context
-----------------------------------------------------------------------------------------

While it is correct that ViewHelper exceptions are silently logged in
production context, they should be displayed in development and testing
context; and not only in development context.

* Fixes: `#37671 <http://forge.typo3.org/issues/37671>`_
* Commit: `166e7e5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=166e7e54a8ff03e44cd5e692e273894280594b32>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `575adc2 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=575adc243a7a820104d0d5506eb0377c2a38150b>`_

[TASK] Standalone View: set default format "html"
-----------------------------------------------------------------------------------------

Since the introduction of Content Negotiation to FLOW3
(I7d753155aa72f41e3df85b076e8067bcbfe7ac04), the default
Format of the ActionRequest is not "html" but undefined.
The Standalone View relied on the default "html" format
and thus now needs to set it itself.

* Related: `#37561 <http://forge.typo3.org/issues/37561>`_
* Commit: `db77eca <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=db77eca6d3f97471fc0970e634a9d3ccf30b2abc>`_

[BUGFIX] hidden fields should be rendered in extra section
-----------------------------------------------------------------------------------------

Currently form.select and form.checkbox ViewHelpers render
hidden fields before the actual input field in order to
force submission of a value.
This leads to the situation that labels wrapped around the
field do not correspond to the actual form field, but to
the hidden field.
This is fixed by letting the form ViewHelper taking care of
rendering the requried hidden fields in the already existing
section on top of the form.

* Fixes: `#26481 <http://forge.typo3.org/issues/26481>`_
* Fixes: `#13342 <http://forge.typo3.org/issues/13342>`_

* Commit: `f25fa5f <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=f25fa5fbc2ce1eea24e6b5434ed82ead412149c7>`_

[BUGFIX] Avoid empty output of TranslateViewHelper
-----------------------------------------------------------------------------------------

If translation by ID is used but no translation is found, the ID will now be
returned if the view helper tag has no content. Before this change it would
just return nothing (printable, at least).

* Fixes: `#35041 <http://forge.typo3.org/issues/35041>`_
* Commit: `68e3bad <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=68e3bad56dfc67911d8c968f792b90bc8d55579f>`_

[FEATURE] Allow access to attributes in TagBuilder
-----------------------------------------------------------------------------------------

* Resolves: `#37460 <http://forge.typo3.org/issues/37460>`_
* Commit: `afaaceb <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=afaacebed16d6b9ab2cb320fecc32be6a9d7d69a>`_

[TASK] Disable escapingInterceptor in Format.Json ViewHelper
-----------------------------------------------------------------------------------------

Because the provided ViewHelper children will never be put
through to the template but only be used for source value
retrieval, the escapingInterceptor gets disabled.

* Related: `#12442 <http://forge.typo3.org/issues/12442>`_
* Commit: `50dcde3 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=50dcde38eeac969241e5b148e4610e4c1c4edb72>`_

[FEATURE] Adds a format.json ViewHelper
-----------------------------------------------------------------------------------------

Provide a ViewHelper that enables putting JSON out of an array or
object. Basically wraps PHP's native json_encode() method.

* Resolves: `#12442 <http://forge.typo3.org/issues/12442>`_
* Commit: `87ea437 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=87ea437e05eb0838afa45c24722785f7c0630240>`_

[TASK] Clean up some coding style issues
-----------------------------------------------------------------------------------------

Add spaces to "){" and to "foreach(", fixes some docblocks and
indentation. Also avoids a possible uninitialised variable warning.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `1a68840 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=1a688404901cc77d75807d798df8db9fdef96718>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Party
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[TASK] Remove dependency on installer
-----------------------------------------------------------------------------------------

Rely on implicit dependency thorugh TYPO3.Flow

* Commit: `8b51051 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=8b51051f1ca42c57bd86ce0cccdce5d0881a42fa>`_

[TASK] Remove Gizmo as electronic address type
-----------------------------------------------------------------------------------------

Due to discontinued support as of April 3, 2011.

* Resolves: `#45276 <http://forge.typo3.org/issues/45276>`_
* Commit: `d09ea87 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=d09ea87ce9b79ab442481a4edf99149478fd831c>`_

[BUGFIX] Removing primary electronic address fails in persistence
-----------------------------------------------------------------------------------------

When removing an electronic address which is also the primary
electronic address of a Person an exception is thrown in the
persistence layer due to a property being unset and not set
to NULL when validating the object before persisting.

* Fixes: `#45459 <http://forge.typo3.org/issues/45459>`_
* Commit: `0a493db <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=0a493dbb56907352b77f2d3d694f668312ad5856>`_

[TASK] Update composer.json with new dependencies
-----------------------------------------------------------------------------------------

* Commit: `587018d <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=587018d705b5b023699cf1ab10635a79475f2ab3>`_

[TASK] Prepare composer manifest for release
-----------------------------------------------------------------------------------------

Remove the version field, so versions can be read from tags in git
instead.

* Related: `#43822 <http://forge.typo3.org/issues/43822>`_
* Commit: `e15b0c2 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=e15b0c2ec34aee7f2e677920f9236b2964d119cd>`_

[TASK] Cleanup use statements with leading backslash
-----------------------------------------------------------------------------------------

An almost purely cosmetic issue, but still: use always takes fully
qualified class names, thus no leading backslash should be used.

* Commit: `aae5f6e <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=aae5f6ee2cbf6adb1728bf23a04707347785f4a9>`_

[BUGFIX] Fix down migration for Mysql, Version20120429213446
-----------------------------------------------------------------------------------------

* Fixes: `#41482 <http://forge.typo3.org/issues/41482>`_
* Commit: `930a1d4 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=930a1d41535f8fbe771e215d04eba5f71ccdb5bc>`_

[BUGFIX] Party should depend on the composer installer
-----------------------------------------------------------------------------------------

* Commit: `4f814fe <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=4f814fe1ed1a3d29504e2b67babc63ae8630a9ad>`_

[TASK] Adjust to FLOW3 renamed to TYPO3 Flow
-----------------------------------------------------------------------------------------

Adjusts the code, comments, documentation as needed.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `483d978 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=483d978a7771a0e4f1fe6080ba34de7e17e2fa62>`_

[TASK] Update composer type to new naming scheme
-----------------------------------------------------------------------------------------

In accordance with the rename to TYPO3 Flow, the
composer-type is now 'typo3-flow-…'

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `4e0c4b3 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=4e0c4b342c2912e2edd52450b0e8ac4f32ade817>`_

[TASK] Adjust composer manifest
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `1b33e69 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=1b33e6977b3e804e36b339d9d812e6ea87c46e0e>`_

[TASK] Change dependency to require flow3/composer-installers
-----------------------------------------------------------------------------------------

* Commit: `9ef4f5f <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=9ef4f5f730ddcb0310766fdc051bd14f8c11fee7>`_

[TASK] Add christianjul/installers dependency
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `1961f20 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=1961f20b9375ea1bca90d6412846e12ef771c8e1>`_

[TASK] Make PSR-0 and composer compatible
-----------------------------------------------------------------------------------------

Moves all classes into a PSR-0 directory structure and adds a composer
manifest instead of Package.xml.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `cbe85f3 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=cbe85f30a830a0625e106b815447a76eefc557e7>`_

[TAKS] Whitespace fix in class docblock
-----------------------------------------------------------------------------------------

* Commit: `6201a38 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=6201a388d9d20ac3a4e73358d19127c10277288a>`_

[TASK] Code cleanup
-----------------------------------------------------------------------------------------

Tweaks a single constructor docblock.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `ac08ac5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=ac08ac51415e1eef0da77f0d85be39e1597ee0e4>`_

[TASK] Adjust validators to avoid validating more than needed
-----------------------------------------------------------------------------------------

Corresponds to If2975bb2e4b79fd7227bda9c7c65b32a7f210e8e.

* Related: `#34154 <http://forge.typo3.org/issues/34154>`_
* Commit: `356939c <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=356939cec24a0194d4d6e5bff09cea8db6e60631>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `ed0a605 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=ed0a6052819f303caec2deba1133f5f5a8510a8e>`_

[TASK] Make usagetype on ElectronicAddress nullable
-----------------------------------------------------------------------------------------

The usage property has no default value and thus should be
nullable to make "any" usage possible.

Adds a functional test (thanks Adrian Föder) as well.

* Related: `#35059 <http://forge.typo3.org/issues/35059>`_
* Commit: `e1d0e7b <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=e1d0e7bd46afb82b58a484122b0b9fcb0d5edc29>`_

[TASK] Adjust validators to avoid validating more than needed
-----------------------------------------------------------------------------------------

* Related: `#34145 <http://forge.typo3.org/issues/34145>`_
* Commit: `eece558 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=eece55844a51c5cf8eba9229d66bccfd128df0b8>`_

[BUGFIX] Duplicate email address throws exception
-----------------------------------------------------------------------------------------

Since #29547 is resolved, trying to store an email address that
already exists throws an exception.
This change drops the unique indexes for "identifier", "type" and
"usagetype" from the ElectronicAddress domain model.

* Fixes: `#37266 <http://forge.typo3.org/issues/37266>`_
* Related: `#29547 <http://forge.typo3.org/issues/29547>`_

* Commit: `ed1f4b8 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=ed1f4b8b69706db4f1d3dcab7e7283566711aaec>`_

[TASK] Clean up some coding style issues
-----------------------------------------------------------------------------------------

Add space to "foreach(".

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `6445053 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=6445053e14cc7ad45cf7fc486dec9f3c8fe4ee9c>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Kickstart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[BUGFIX] Controllers must not be of scope singleton
-----------------------------------------------------------------------------------------

Adjusts the controller templates to create prototypes instead
of singletons.

Background:
Usually the scope of a controller doesn't really make a difference,
because they are only instantiated once per request.
But if the same controller is used multiple times
(e.g. within two plugin/widget instances on one page) the side
effects could be very confusing.

* Fixes: `#45647 <http://forge.typo3.org/issues/45647>`_
* Commit: `989eef8 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=989eef864d76e4b05dac0d7a09dd9d07cf69fc19>`_

[BUGFIX] Kickstarter creates "delete links"
-----------------------------------------------------------------------------------------

With 2.0 Flow won't persist changes automatically
for safe requests (see #47252).
This adjusts the index template accordingly so that it
creates delete forms instead of links.

* Fixes: `#48028 <http://forge.typo3.org/issues/48028>`_
* Related: `#47252 <http://forge.typo3.org/issues/47252>`_

* Commit: `7b3b2c8 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=7b3b2c8c4493658a72779b0b9df631d47a2c1908>`_

[BUGFIX] Kickstarter creates superfluous code
-----------------------------------------------------------------------------------------

The kickstarter creates a lot of code that is not needed.
Especially redundant doc comments are counter productive.

This change tweaks and cleans up the generator templates so
that they create less noise.

This also comes with following minor improvements:

* Remove leading slash from use statement
* Replace "<f:form name" with "<f:form objectName"
* Move formatting ViewHelpers to subdirectory for good measure
* Fixes: `#48030 <http://forge.typo3.org/issues/48030>`_

* Commit: `6c77979 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=6c77979c1add13e054ba71b0122af175cf28c1c3>`_

[BUGFIX] Fix command controller kickstart
-----------------------------------------------------------------------------------------

When kickstarting a command controller the class/file name would lack
the "Command" part (as of Ie758c26cecd591ed240478de3f9597714060fb88).

* Fixes: `#43908 <http://forge.typo3.org/issues/43908>`_
* Commit: `adc1c2b <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=adc1c2be8e8ada8b7dbc9538bdc986f97d438393>`_

[TASK] Update composer.json with new dependencies
-----------------------------------------------------------------------------------------

* Commit: `c2c556a <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=c2c556abeb379b3f17235399d02b44af36550cb8>`_

[TASK] Prepare composer manifest for release
-----------------------------------------------------------------------------------------

Remove the version field, so versions can be read from tags in git
instead.

* Related: `#43822 <http://forge.typo3.org/issues/43822>`_
* Commit: `3c7e9c5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=3c7e9c54b2eb2b4cdf91bd9da86755bc1c89b1c8>`_

[BUGFIX] Fix strpos() parameters in controller kickstart
-----------------------------------------------------------------------------------------

strpos() parameters were specified in reverse order which broke creation
of controllers for subpackages.

* Fixes: `#43423 <http://forge.typo3.org/issues/43423>`_
* Commit: `97c03c5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=97c03c55dbf1a213b95b43cdae064752c91eb420>`_

[BUGFIX] Fix type hint of collections in generated model classes
-----------------------------------------------------------------------------------------

This makes sure that, when using collections with element type hints,
only the collection class name ends up in the type hint of the generated setter.

* Fixes: `#29791 <http://forge.typo3.org/issues/29791>`_
* Commit: `3060ff7 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=3060ff79b14ea8ff7ca3fefb54dad911b625bc2f>`_

[BUGFIX] Fix error message about invalid package key
-----------------------------------------------------------------------------------------

When specifying an invalid package key in the kickstart
commands, the error message now includes a note about the
vendor namespace that has to be added.

* Fixes: `#43194 <http://forge.typo3.org/issues/43194>`_
* Commit: `7a4886a <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=7a4886a83d696a9e2db3f10286875b2cac9be723>`_

[BUGFIX] Fix case of class names to generate
-----------------------------------------------------------------------------------------

This makes sure the created controller class names and
references are upper cased in order to avoid misleading
exceptions if the controller was specified lower cased.

* Fixes: `#43144 <http://forge.typo3.org/issues/43144>`_
* Commit: `ee5f026 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=ee5f02611f1a4ddc9b5e0db338ef7c47e1d85246>`_

[TASK] Update composer type to new naming scheme
-----------------------------------------------------------------------------------------

In accordance with the rename to TYPO3 Flow, the
composer-type is now 'typo3-flow-…'

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `4280efb <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=4280efb254988ba03c6c1d2013377fd026cd1e29>`_

[TASK] Adjust to FLOW3 renamed to TYPO3 Flow
-----------------------------------------------------------------------------------------

Adjusts the code, comments, documentation as needed.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `5ee2ca0 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=5ee2ca0cab7a85f7ce804d1b80c527e017b9d48c>`_

[TASK] Add dependency to require flow3/composer-installers
-----------------------------------------------------------------------------------------

* Commit: `c86dcb7 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=c86dcb772cd884eb2283aa44e431d016c45a1742>`_

[TASK] Update to write in PSR-0 compatible path
-----------------------------------------------------------------------------------------

* Fixes: `#41180 <http://forge.typo3.org/issues/41180>`_
* Commit: `3cd555a <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=3cd555a208e7098c23af28bfd4e783b0bb7248bc>`_

[TASK] Make PSR-0 and composer compatible
-----------------------------------------------------------------------------------------

Moves all classes into a PSR-0 directory structure and adds a composer
manifest instead of Package.xml.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `e23e727 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=e23e727e87ae59124966093b8518e692bb617abb>`_

[TAKS] Whitespace fix in class docblock
-----------------------------------------------------------------------------------------

* Commit: `e7c7a48 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=e7c7a489cdd95e6e55a7da3c5f0f11ba9582375c>`_

[BUGFIX] kickstart:package gives wrong hint for valid package key
-----------------------------------------------------------------------------------------

The kickstarter wrongly claims that a valid package key
may contain underscores. This patch corrects the respective
messages.

* Fixes: `#38999 <http://forge.typo3.org/issues/38999>`_
* Commit: `211dcab <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=211dcabe868d9679ba20be862acc843258b05cd2>`_

[TASK] Code cleanup
-----------------------------------------------------------------------------------------

Does cleanup to code documentation.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `d6228ba <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=d6228bac6220e6c551dc9b1a7cbedacdd0e947eb>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `ed26ddf <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=ed26ddf4131a0479a8e73dbaa2bad05160bbcdc8>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Welcome
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[BUGFIX] Switch welcome site to jQuery for consistency
-----------------------------------------------------------------------------------------

The welcome site now also uses jQuery as JavaScript library.
Additionally folder names were adapted to match the best
practice proposal we have.

* Fixes: `#44670 <http://forge.typo3.org/issues/44670>`_
* Commit: `6d0b866 <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=6d0b866da48893e2a6ea00b8b6cde100bbd68ac5>`_

[TASK] Update composer.json with new dependencies
-----------------------------------------------------------------------------------------

* Commit: `662a7be <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=662a7beba0ae2a439a3482b567bd9fa80ba3fe6e>`_

[BUGFIX] Adjust tests to required action arguments
-----------------------------------------------------------------------------------------

Adjusts tests to changed requirements introduced with
I03fa30be2522ee53d5a8f184b57afe539ed4f991

* Related: `#43589 <http://forge.typo3.org/issues/43589>`_
* Commit: `7ad7b6c <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=7ad7b6c53a550f433415e433b095cc3623dfe1b2>`_

[TASK] Prepare composer manifest for release
-----------------------------------------------------------------------------------------

Remove the version field, so versions can be read from tags in git
instead. Fixes the description slightly.

* Related: `#43822 <http://forge.typo3.org/issues/43822>`_
* Commit: `c7697af <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=c7697af4ecb646412e338d2bbe6780c0424d8cc0>`_

[TASK] Update logo to TYPO3 Flow
-----------------------------------------------------------------------------------------

* Resolves: `#42766 <http://forge.typo3.org/issues/42766>`_
* Commit: `f05652e <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=f05652e2215e3dfad89984bc4f1468e2546186f8>`_

[TASK] Update composer type to new naming scheme
-----------------------------------------------------------------------------------------

In accordance with the rename to TYPO3 Flow, the
composer-type is now 'typo3-flow-…'

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `44a146a <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=44a146a59598a2e7e334372af0d480d4b9db5b5e>`_

[TASK] Adjust to FLOW3 renamed to TYPO3 Flow
-----------------------------------------------------------------------------------------

Adjusts the code, comments, documentation as needed.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `9a04182 <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=9a041821dea0484f321a2a22dad79ec77046eefd>`_

[TASK] Adjust composer manifest
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `79fade8 <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=79fade8bbbcee5dabcb3c20d7b97b71c9457e039>`_

[TASK] Make PSR-0 and composer compatible
-----------------------------------------------------------------------------------------

Moves all classes into a PSR-0 directory structure and adds a composer
manifest instead of Package.xml.

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `a18695b <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=a18695b540cb664c41ad04f83deb2c2d972cdf6e>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `f889660 <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=f889660f45eced95d9585a151ee57f2ead6d55f7>`_

