====================
1.1.0
====================

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

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

This change adds missing content to the instructions (based on the [!!!]
changes from the overview of merged changes) and reorganizes the document
a little.

* Commit: `79aad6f <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=79aad6f11cc765887c36f55b2517e4963649c88e>`_

[TASK] Mention Repository(Interface) changes in Upgrading.txt
-----------------------------------------------------------------------------------------

* Commit: `410b1a8 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=410b1a871c539690cf69517cd3b9a90a23432f33>`_

[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: `fef1a40 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=fef1a40c5c6dd3510c591ddcd472dac526b6c7a8>`_

[TASK] Update upgrading instructions
-----------------------------------------------------------------------------------------

Adds instructions to replace DataNotSerializeableException with
DataNotSerializableException.

* Commit: `0bfbf2e <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=0bfbf2e6f74133225ea530fec477dc336760d4bb>`_

[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: `138dfc3 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=138dfc36418977b4c019db2fb38c1323a569a64a>`_

[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: `052524c <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=052524c7bd296814da0af023ba77fafd35c11a89>`_

[TASK] Correct information about frozen packages
-----------------------------------------------------------------------------------------

The upgrading instructions explained that packages were frozen by
default, which is no longer true.

* Commit: `c5b25bf <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=c5b25bfe8c62cf0e935c9531b2ec4f8faebdec41>`_

[TASK] Update Upgrading.txt with two more adjustments
-----------------------------------------------------------------------------------------

Add the needed changes for getOriginalRequestMappingResults() and
getOriginalRequest()->getArguments() to the upgrading instructions.

* Related: `#37762 <http://forge.typo3.org/issues/37762>`_
* Commit: `8cad35a <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=8cad35ab295fe0a75f32cbdca3465a01c5769f41>`_

[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: `70608e7 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=70608e77eeb7ec75ad0e57e5c6fd9f034cefee96>`_

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

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

* Commit: `abb312c <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=abb312c262cebcbec429262b8384ebbeb4c4602d>`_

[TASK] Amend upgrade instructions
-----------------------------------------------------------------------------------------

This brings the update instructions in sync with the
amended version from the wiki.

Some edits have been applied and also synced back to
the wiki.

* Commit: `7bd5832 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=7bd58320bd058ff7e2bbdcae1fa5ac471b3eb840>`_

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

* Commit: `698c177 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=698c177691cb5c24b96cad5d30113827eac5bafd>`_

[TASK] Change comment on RewriteBase directive
-----------------------------------------------------------------------------------------

* Commit: `36de07e <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=36de07efc1bf0475c98263203a44b69b0ec7ff7b>`_

[BUGFIX] Make Settings.yaml.example a working example
-----------------------------------------------------------------------------------------

With this change the Settings.yaml.example can be used as is,
because the key "doctrine" is commented out now.

* Fixes: `#33410 <http://forge.typo3.org/issues/33410>`_
* Commit: `b7570a0 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=b7570a03555b9f7f362e9af32ada0a0982172eea>`_

[BUGFIX] Fixes wrong URL to tutorials page in Readme.txt
-----------------------------------------------------------------------------------------

* Fixes: `#33031 <http://forge.typo3.org/issues/33031>`_
* Commit: `0ceedb0 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=0ceedb094ebae330ea3b90faf2c4f5002466981d>`_

[TASK] Document YAML syntax changes for upgrade
-----------------------------------------------------------------------------------------

* Resolves: `#33268 <http://forge.typo3.org/issues/33268>`_
* Commit: `6d97b48 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=6d97b48bf5642e20e677cc4aa4c9cfde4142f1ec>`_

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

* Commit: `0807179 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=0807179c909e87214dacf4b91ac53e2e1f7b6391>`_

[TASK] Adjust Surf deployment descriptor to new git option
-----------------------------------------------------------------------------------------

The branch option is now git-checkout-branch.

* Commit: `d48af1a <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=d48af1a18c9e4352db2f74e8ce60d8b9a46ee8b9>`_

[TASK] Add .Shortcuts folder to .gitignore
-----------------------------------------------------------------------------------------

Related to https://review.typo3.org/7164

* Commit: `0f55c7f <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=0f55c7faa307976ef38746ac65df2ddffba589b8>`_

[TASK] Update Surf configuration for release job
-----------------------------------------------------------------------------------------

This updates the Surf configuration to interact with
the TYPO3.Release package on the FLOW3 website.

* Resolves: `#31896 <http://forge.typo3.org/issues/31896>`_
* Commit: `757364c <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=757364cf219b84ba78890b749cf7f55223f0909f>`_

[TASK] Split Doctrine package into three parts
-----------------------------------------------------------------------------------------

Following our vendor name concept, the package Doctrine would need to
include all of the code from the Doctrine project. Obviously it doesn't.
To solves this (and to make maintenance easier), the package has been
split into three separate packages.

This change adjusts the FLOW3 base distributions as needed.

* Resolves: `#31219 <http://forge.typo3.org/issues/31219>`_
* Commit: `b44e86e <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=b44e86ebde92616e6725ef07cfdb1b68325ddd15>`_

[BUGFIX] Clean up configuration README
-----------------------------------------------------------------------------------------

Removes mentions of the non-used files FLOW3.yaml and Packages.yaml.

* Fixes: `#31215 <http://forge.typo3.org/issues/31215>`_
* Commit: `41eb1f7 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=41eb1f780c1bcb4323bfbb214c2361b3fd109a49>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Common
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[TASK] Refactor FLOW3 Distribution Build into generic and specific parts
-----------------------------------------------------------------------------------------

As we do not only build a single distribution but multiple ones using Jenkins,
we should refactor the common environment-variable handling into a base setup
to be included in each individual deployment.

* Resolves: `#38500 <http://forge.typo3.org/issues/38500>`_
* Commit: `5a9f769 <http://git.typo3.org/Flow/Packages/Common.git?a=commit;h=5a9f769301faa498aa6a799dff8e520655f15771>`_

[TASK] Disable test timeout when using PHP_Invoker
-----------------------------------------------------------------------------------------

when PHP_Invoker is installed, PHPUnit will by default only let a test
run for one second. This kills most of our functional tests when being
run in this setup.

Setting this default value to 0 (undefined) fixes the problem.

* Commit: `ce42ca6 <http://git.typo3.org/Flow/Packages/Common.git?a=commit;h=ce42ca6fd9b372f4009c8778edd49ae5ce72efbb>`_

[TASK] Adjust to relocated FunctionalTestRequestHandler
-----------------------------------------------------------------------------------------

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `ab6e4cb <http://git.typo3.org/Flow/Packages/Common.git?a=commit;h=ab6e4cbe067c14ec5b60430aa539a8098bfbef3a>`_

[TASK] Make TYPO3\\FLOW3\\var_dump() available in unit tests
-----------------------------------------------------------------------------------------

FLOW3's var_dump() function could not be used in unit tests
because the class loader has no way to derive the path and
filename from the function name. In a non-testing context
that's no problem as the containing file is loaded anyway
but that was not the case in a unit testing context.

Now the Debugger class is loaded in the unit test bootstrap.

* Commit: `faec8c5 <http://git.typo3.org/Flow/Packages/Common.git?a=commit;h=faec8c5bde4259010eae5f676ec336af35b98dee>`_

[TASK] Rename functional test request handler
-----------------------------------------------------------------------------------------

The functional test request handler was moved to the Tests\\Functional
namespace after the recent class loader change.

Related to https://review.typo3.org/7252

* Commit: `948a244 <http://git.typo3.org/Flow/Packages/Common.git?a=commit;h=948a244ef527ecfb8aea64f20d69b5ddb483be0c>`_

[TASK] Adjust Unit Test bootstrap
-----------------------------------------------------------------------------------------

The complete removal of the whitelist in change I7ec62f19 made the
generated HTML coverage report unusable and includes any code. But we
can ignore coverage for Doctrine and Symfony.

* Related: `#32333 <http://forge.typo3.org/issues/32333>`_
* Commit: `78587cb <http://git.typo3.org/Flow/Packages/Common.git?a=commit;h=78587cbed4cb78e1c6f49a5a5b66c0bc36d10a4f>`_

[TASK] Adjust Functional Test bootstrap
-----------------------------------------------------------------------------------------

This adjusts the functional test bootstrap for PHP to fit the
new bootstrap and request handling mechanism. Also removes
a whitelist filter from the unit test bootstrap which prevented
using code coverage while executing single tests.

* Related: `#32333 <http://forge.typo3.org/issues/32333>`_
* Commit: `9ee94c7 <http://git.typo3.org/Flow/Packages/Common.git?a=commit;h=9ee94c7265b879525518fec8c284a6c51dbf9cff>`_

[TASK] Clean up ping task files; remove phpunit tasks
-----------------------------------------------------------------------------------------

The phpunit tasks can be done more efficient by using phpunit
directly, thus they are dropped. Some other legacy cruft has
been removed as well.

I re-enabled some commented out stuff in exchange. :)

* Commit: `17cf7a3 <http://git.typo3.org/Flow/Packages/Common.git?a=commit;h=17cf7a3f2206d7afcc1be15df845bd30bda8425a>`_

[TASK] Exclude Yaml and Doctrine sources from PHP fileset
-----------------------------------------------------------------------------------------

This fileset (files-php) is used for code metrics, and  we do not really
want our CI server to compute those for 3rd party code.

* Commit: `b8565ba <http://git.typo3.org/Flow/Packages/Common.git?a=commit;h=b8565ba9b237e02581b0ede62552c7da68202281>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Doctrine.Common
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[TASK] Update to 2.2.2
-----------------------------------------------------------------------------------------

DataFixtures is at f201391349f3dc6bd9c9c698927ea7c78104c461.

* Related: `#37468 <http://forge.typo3.org/issues/37468>`_
* Commit: `63f85c6 <http://git.typo3.org/Flow/Packages/Doctrine.Common.git?a=commit;h=63f85c63a6f8d992b36c71a617213836d3b7ba77>`_

[TASK] Fixes code style
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `df66b8f <http://git.typo3.org/Flow/Packages/Doctrine.Common.git?a=commit;h=df66b8f797842e6388f19da98f7fa3b6c50909b9>`_

[TASK] Update to 2.2.1
-----------------------------------------------------------------------------------------

DataFixtures is at ffee818a6e3af526b774de11b690a36512fa6235.

* Related: `#34760 <http://forge.typo3.org/issues/34760>`_
* Commit: `bd3776c <http://git.typo3.org/Flow/Packages/Doctrine.Common.git?a=commit;h=bd3776c0c0b9ca9b1ce94fabc08d76c1d3a00a87>`_

[TASK] Update to 2.2.0
-----------------------------------------------------------------------------------------

DataFixtures is at bed8908ae929562317e5c59dc0bee24f3b63067e.

* Related: `#32608 <http://forge.typo3.org/issues/32608>`_
* Commit: `81c7bb3 <http://git.typo3.org/Flow/Packages/Doctrine.Common.git?a=commit;h=81c7bb37b4ca7726a2ff6fa1c189311b31dd50bc>`_

[TASK] Update to current 2.2.0-DEV
-----------------------------------------------------------------------------------------

Equivalent to upstream commit 3107f295eb17ed40116ae4cd2499e5c5c3adde42.

DataFixtures is at f09c0840df9cb7968c89acb91a9fa262f158b1c5.

* Related: `#32608 <http://forge.typo3.org/issues/32608>`_
* Commit: `aea87d6 <http://git.typo3.org/Flow/Packages/Doctrine.Common.git?a=commit;h=aea87d6ad6c2ce3381f7ecae2178625dfac8ac74>`_

[TASK] Make Doctrine.Common package protected
-----------------------------------------------------------------------------------------

* Related: `#32599 <http://forge.typo3.org/issues/32599>`_
* Commit: `926f321 <http://git.typo3.org/Flow/Packages/Doctrine.Common.git?a=commit;h=926f321366030da85cd97135e98a5ed918f3a104>`_

[TASK] Isolate Doctrine Common from old Doctrine package
-----------------------------------------------------------------------------------------

This change removes DBAL and ORM, moves Common into the classes folder
directly and adjusts metadata as needed.

* Resolves: `#31219 <http://forge.typo3.org/issues/31219>`_
* Commit: `d476728 <http://git.typo3.org/Flow/Packages/Doctrine.Common.git?a=commit;h=d476728520ae729df49f176656b70334f92536bd>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Doctrine.DBAL
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[TASK] Update to 2.2.2
-----------------------------------------------------------------------------------------

Contains one of our own changes to fix connection charset with MySQL
for PHP < 5.3.6 (https://review.typo3.org/4587).

Migrations is at fe98141b1e460baf5ab52f9139e1ae238101b28b.

* Related: `#37468 <http://forge.typo3.org/issues/37468>`_
* Commit: `dc5292c <http://git.typo3.org/Flow/Packages/Doctrine.DBAL.git?a=commit;h=dc5292c774dd8befcd77790baaa7b3259f9365e5>`_

[TASK] Add Doctrine.Common to the dependencies
-----------------------------------------------------------------------------------------

* Related: `#28213 <http://forge.typo3.org/issues/28213>`_
* Commit: `8ef1593 <http://git.typo3.org/Flow/Packages/Doctrine.DBAL.git?a=commit;h=8ef15939e0b505eca65f5cb2d7701b8d4de584e7>`_

[TASK] Fixes code style
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `4db9ec9 <http://git.typo3.org/Flow/Packages/Doctrine.DBAL.git?a=commit;h=4db9ec9e4e8fdf50f63928d6d086b52fca577ed7>`_

[TASK] Update to 2.2.1
-----------------------------------------------------------------------------------------

Contains one of our own changes to fix connection charset with MySQL
for PHP < 5.3.6 (https://review.typo3.org/4587).

Migrations is at 9e81984b0f126b0830d9ac6acc2d1da81aba2b94.

* Related: `#32608 <http://forge.typo3.org/issues/32608>`_
* Commit: `8ecd70a <http://git.typo3.org/Flow/Packages/Doctrine.DBAL.git?a=commit;h=8ecd70a98fddc074bb9be37470892e3d54a6a8b6>`_

[BUGFIX] Make MySQL connection charset work on PHP < 5.3.6
-----------------------------------------------------------------------------------------

The charset connection option is built into the DSN, but it is ignored
in PHP below 5.3.6.

This change adds the charset to a SET NAMES command used as value for
\\PDO::MYSQL_ATTR_INIT_COMMAND for PHP < 5.3.6 if no init command has been
set by the user.

This was once fixed with https://review.typo3.org/4587 and the fix got
lost again with https://review.typo3.org/7672.

* Fixes: `#33125 <http://forge.typo3.org/issues/33125>`_
* Commit: `b231de4 <http://git.typo3.org/Flow/Packages/Doctrine.DBAL.git?a=commit;h=b231de400af149a7e6a980939b067c6177707e3d>`_

[TASK] Update to current 2.2.0-DEV
-----------------------------------------------------------------------------------------

Equivalent to upstream commit 15bcd83a392df19de22cde6c9d5b28c1f7207751.

Migrations is at 9610f6bfe3bfb99c98da1f425e6c71bf02e52aaf.

* Related: `#32608 <http://forge.typo3.org/issues/32608>`_
* Commit: `e5a4932 <http://git.typo3.org/Flow/Packages/Doctrine.DBAL.git?a=commit;h=e5a49320058057c9078b514f6c7191f179dfe17a>`_

[TASK] Make Doctrine.DBAL package protected
-----------------------------------------------------------------------------------------

* Related: `#32599 <http://forge.typo3.org/issues/32599>`_
* Commit: `dbd8537 <http://git.typo3.org/Flow/Packages/Doctrine.DBAL.git?a=commit;h=dbd853797b1df9baa66a7aac9bb72ff276188421>`_

[TASK] Isolate Doctrine DBAL from old Doctrine package
-----------------------------------------------------------------------------------------

This change removes Common and ORM, moves DBAL into the classes folder
directly and adjusts metadata as needed.

* Resolves: `#31219 <http://forge.typo3.org/issues/31219>`_
* Commit: `7ccdcd0 <http://git.typo3.org/Flow/Packages/Doctrine.DBAL.git?a=commit;h=7ccdcd035924e3b3de53d6d00177c44a9d623c55>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Doctrine.ORM
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[BUGFIX] Fix clone side effects in PersistentCollection
-----------------------------------------------------------------------------------------

When a PersistentCollection (PC) is loaded and is cloned before it is
initialized, anything that is already in that collection will be duplicated
if the collection is initialized after it has been marked dirty. The cause is
a too late clone operation on the internal (Array)Collection (AC) in the PC.

* PC is loaded, but not initialized. The internal AC is empty.
* PC is cloned. PC' calls initialize() in __clone()
* PC' fills AC (as that has not been cloned yet)
* PC' clones AC

As a result the AC in PC now contains elements, but PC still is
uninitialized. If PC is afterwards initialized and dirty, the elements
already in AC will be considered new and added again to the AC.

The effect will be constraint violations in join tables due to duplicate
entries.

* Fixes: `#37476 <http://forge.typo3.org/issues/37476>`_
* Commit: `bb917bf <http://git.typo3.org/Flow/Packages/Doctrine.ORM.git?a=commit;h=bb917bf601df2baf220e0a9612c9f609d5ed16a4>`_

[TASK] Update to 2.2.2
-----------------------------------------------------------------------------------------

Upstream release plus two of our own changes on top:

* 12c6917 Throw exception if no identifier can be found in UnitOfWork
* f2b493f In proxies add docblocks and move __wakeup() call around

* Related: `#37468 <http://forge.typo3.org/issues/37468>`_
* Commit: `43d7993 <http://git.typo3.org/Flow/Packages/Doctrine.ORM.git?a=commit;h=43d79933ae2536ba9f07cc86fee7502af7c35ac5>`_

[TASK] Add Doctrine.DBAL to the dependencies
-----------------------------------------------------------------------------------------

* Related: `#28213 <http://forge.typo3.org/issues/28213>`_
* Commit: `53d845c <http://git.typo3.org/Flow/Packages/Doctrine.ORM.git?a=commit;h=53d845c9246e127db42d01d9feff5f29ebad12ae>`_

[TASK] Fixes code style
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `fc55d08 <http://git.typo3.org/Flow/Packages/Doctrine.ORM.git?a=commit;h=fc55d08be898e4039c4f2fb07be52c1ce8a3bc9a>`_

[TASK] Update to 2.2.1
-----------------------------------------------------------------------------------------

Upstream release plus three of our own changes on top:

* 9bfd46b Use temporary file and rename for proxy class creation
* 1582551 Throw exception if no identifier can be found in UnitOfWork
* 5fba342 In proxies add docblocks and move __wakeup() call around
* Related: `#34760 <http://forge.typo3.org/issues/34760>`_

* Commit: `d2ce448 <http://git.typo3.org/Flow/Packages/Doctrine.ORM.git?a=commit;h=d2ce448456fe3d7b1ba2bd4b11c20433c27178bf>`_

[BUGFIX] Fix atomic writes in proxy factory
-----------------------------------------------------------------------------------------

This fixes the atomic writes check so it actually works.

* Fixes: `#27989 <http://forge.typo3.org/issues/27989>`_
* Commit: `07cd1a6 <http://git.typo3.org/Flow/Packages/Doctrine.ORM.git?a=commit;h=07cd1a61c32538c2a4484e6e52faacc366f99292>`_

[TASK] Update to 2.2.0
-----------------------------------------------------------------------------------------

Upstream release plus three of our own changes on top:

* 96f0bd1 Use temporary file and rename for proxy class creation
* f846d64 Throw exception if no identifier can be found in UnitOfWork
* fe0b562 In proxies add docblocks and move __wakeup() call around
* Related: `#32608 <http://forge.typo3.org/issues/32608>`_

* Commit: `d6321bb <http://git.typo3.org/Flow/Packages/Doctrine.ORM.git?a=commit;h=d6321bb480a30d9312e4308ae9b5b5fef14b12ad>`_

[TASK] Update to current 2.2.0-DEV
-----------------------------------------------------------------------------------------

Upstream commit d34c39555d356e771452a6f397a4cb1146594304 plus four
of our own changes on top.

* Related: `#32608 <http://forge.typo3.org/issues/32608>`_
* Commit: `fdbbdc5 <http://git.typo3.org/Flow/Packages/Doctrine.ORM.git?a=commit;h=fdbbdc51965a89b3ea8e9b1bbcb0cd2d89d9124c>`_

[TASK] Make Doctrine.ORM package protected
-----------------------------------------------------------------------------------------

* Related: `#32599 <http://forge.typo3.org/issues/32599>`_
* Commit: `fa83423 <http://git.typo3.org/Flow/Packages/Doctrine.ORM.git?a=commit;h=fa83423fe1c7e21451ffc386e72bee1b7a1f053e>`_

[TASK] Isolate Doctrine ORM from old Doctrine package
-----------------------------------------------------------------------------------------

This change removes Common and DBAL, moves ORM into the classes folder
directly and adjusts metadata as needed.

* Resolves: `#31219 <http://forge.typo3.org/issues/31219>`_
* Commit: `729f21b <http://git.typo3.org/Flow/Packages/Doctrine.ORM.git?a=commit;h=729f21b4586a2db0ae0ef76e81bc8a98f91a43b9>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Symfony.Component.DomCrawler
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

No changes

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Symfony.Component.Yaml
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[TASK] Clean up Package.xml
-----------------------------------------------------------------------------------------

* Commit: `db6daed <http://git.typo3.org/Flow/Packages/Symfony.Component.Yaml.git?a=commit;h=db6daedfba2286bfd501d715d5c72041203c2d04>`_

[TASK] Fixes code style
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `5d0bff8 <http://git.typo3.org/Flow/Packages/Symfony.Component.Yaml.git?a=commit;h=5d0bff830c3612ade80dc0d9221371fa67b0bf62>`_

[BUGFIX] Update YAML component
-----------------------------------------------------------------------------------------

This updates the Symfony YAML component from 1.0.6 to 2.1.0.

* Fixes: `#31289 <http://forge.typo3.org/issues/31289>`_
* Commit: `cb659bc <http://git.typo3.org/Flow/Packages/Symfony.Component.Yaml.git?a=commit;h=cb659bca12875e06f4f91f2055f8db24232bbda5>`_

[TASK] Make Yaml package protected
-----------------------------------------------------------------------------------------

* Related: `#32599 <http://forge.typo3.org/issues/32599>`_
* Commit: `b794742 <http://git.typo3.org/Flow/Packages/Symfony.Component.Yaml.git?a=commit;h=b7947423346c10399e25a275acd3d6e2ec7bc123>`_

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

Add changelog for FLOW3 1.0.6
-----------------------------------------------------------------------------------------

* Commit: `3fd525c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3fd525c7b260aa4ec90e603b3d9ba8ce2697c65a>`_

[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: `28c82ae <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=28c82ae23d90b17f6514b0cd93fae17dd7bc0dc7>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `1b1ed7d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=1b1ed7d2b6c439af1d103847b739ad9833186ea1>`_

[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: `2fbc3d4 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2fbc3d4437439b640dad8aeceea406c62e4cfc17>`_

[CLEANUP] Some CGL fixes
-----------------------------------------------------------------------------------------

* Commit: `437c2a0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=437c2a06ace0be3af30450a4313fb057b7f70c4a>`_

[TASK] Fix markup errors on documentation
-----------------------------------------------------------------------------------------

* Related: `#27561 <http://forge.typo3.org/issues/27561>`_
* Commit: `6878b35 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=6878b35dacb71a360472140d6386e91a5d68c352>`_

[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: `3a8c98e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3a8c98e9cc88783d39d9478afdc4d2da319dba0c>`_

[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: `ea2f7f2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ea2f7f2b489dfbb5240472750d83c851d5e6a2a7>`_

[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: `9fec020 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9fec020c332b1be058d5b615ad60adaf5cec4340>`_

[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: `9483632 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9483632f0b08e924b83a7f703350d31ca5796f46>`_

[TASK] New chapter: HTTP
-----------------------------------------------------------------------------------------

This adds a new chapter to The Definitive Guide

* Resolves: `#39424 <http://forge.typo3.org/issues/39424>`_
* Commit: `db3fdbe <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=db3fdbedec9e16ffa15e31c10cc47a2f86a46f98>`_

[BUGFIX] Fix some outdated code (examples) in Part II
-----------------------------------------------------------------------------------------

* Fixes: `#39374 <http://forge.typo3.org/issues/39374>`_
* Commit: `7324b7b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7324b7be52d02681f0c5b639adb0f07e51802e44>`_

[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.Flow.core.subRequestEnvironmentVariables setting.

* Resolves: `#39648 <http://forge.typo3.org/issues/39648>`_
* Commit: `b7b5dfd <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b7b5dfdb36f37498e06173887b765cb4e1fb8d82>`_

[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: `637e604 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=637e604d1af9c9142e67c9934ba64b6f8b0adf89>`_

[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: `a444d40 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a444d4095f3b244c38b7c4555345770d1ef2f5e2>`_

[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: `aaa3027 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=aaa3027158ee86770f5c413812f20bf2afb28f47>`_

[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: `4990b14 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4990b14673b6f661a0fecfbd635f4d33e6b12d50>`_

[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: `545a0b2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=545a0b20adfd00920762f761e69c750434f4c279>`_

[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: `0aa62e5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0aa62e5227ed5d4d4daa410ee7677a7dd4ff7e28>`_

[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: `d8ada91 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d8ada91c3b28422dc397448287d8ba46fbf078cd>`_

[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: `3402cd6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3402cd673d55288b388be4d74cb0c759934c4f84>`_

[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: `20da395 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=20da3954745e9d424381a12512ab09dceb5bce34>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `ea717f7 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ea717f7d7f748d5860284486920ae0bdccf6e511>`_

[TASK] Add changelog for FLOW3 1.1.0-rc2
-----------------------------------------------------------------------------------------

* Commit: `0a092f0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0a092f071d02a8c23b658a0301848704af0556c9>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `78b8a86 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=78b8a86f1467e0f0c36bcd16cbfe4d94a58d5b98>`_

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

This updates command, type converter and Fluid VH references.

Counterpart to If61f27e9f55a42fc7fd0d10eb87b644f946aef7c.

* Commit: `e9e3779 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e9e377903a8698e78314029845e5aef9eaafc6bd>`_

[BUGFIX] Fix broken links StandardView template
-----------------------------------------------------------------------------------------

The links pointed to URLs no longer working.

* Fixes: `#39062 <http://forge.typo3.org/issues/39062>`_
* Commit: `167b85e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=167b85e487ab3619c9200c5c47599d4f8e3693c9>`_

[!!!][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: `d2ea90a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d2ea90ac1c02d5bb63cdc3f8d1ac38041e5bee22>`_

[!!!][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: `53049d6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=53049d6c5f12450292bd8b7ec6a4c8264c858066>`_

[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: `9365812 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=936581210737b8f0dd05a7f4e94b283740194418>`_

[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: `219d22c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=219d22c83b7c3ae2027468abdc597154d2ecc9b4>`_

[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: `9ca9ac5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9ca9ac545a9a874075bc908a1b07365fb3420f5d>`_

[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: `c01cc4a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c01cc4a20553c585b4afc926e5563143aaffc93b>`_

[TASK] Add annotation reference to documentation
-----------------------------------------------------------------------------------------

* Resolves: `#38669 <http://forge.typo3.org/issues/38669>`_
* Commit: `ec458ee <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ec458ee69fc5a6cde665027e32bb0f6121ed2055>`_

[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: `2b09113 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2b09113f409dc67c756c60fd6cf19ca1032c252e>`_

[TASK] Document configuration validation
-----------------------------------------------------------------------------------------

* Resolves: `#38680 <http://forge.typo3.org/issues/38680>`_
* Commit: `736c7c4 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=736c7c4f5789c09d810a645bbba221e0b8f25415>`_

[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: `31f2559 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=31f255997d8f9f2c0437a104ac430b3efc0597e2>`_

[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: `f9f3a4f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f9f3a4fb66abb3aaf24ac6c737f264a7fb6ea776>`_

[TASK] Add TypeConverter reference
-----------------------------------------------------------------------------------------

Tweaks the DateTimeConverter docblock to be proper reST.

* Resolves: `#38646 <http://forge.typo3.org/issues/38646>`_
* Commit: `af7eb9e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=af7eb9e9d64a257d5865037592e24d7c717e9148>`_

[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: `195ec43 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=195ec432616c2e790b8d6421c9551b89cdd2fa2b>`_

[TASK] Create Reflection manual page
-----------------------------------------------------------------------------------------

* Resolves: `#38561 <http://forge.typo3.org/issues/38561>`_
* Commit: `7c36835 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7c368357656e7d02506f8204b3dda8fba8e0d0ae>`_

[BUGFIX] Fix indentation in "Contributing to FLOW3"
-----------------------------------------------------------------------------------------

* Fixes: `#38884 <http://forge.typo3.org/issues/38884>`_
* Commit: `227aaac <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=227aaacf13299d025c0f542507a9b4e2f543b4bd>`_

[TASK] Add documentation to annotation classes
-----------------------------------------------------------------------------------------

* Related: `#38669 <http://forge.typo3.org/issues/38669>`_
* Related: `#34875 <http://forge.typo3.org/issues/34875>`_

* Commit: `51a4e2c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=51a4e2c973e9e592fced81e526015217bf3ed1d6>`_

[BUGFIX] Fix use of Target in annotation classes
-----------------------------------------------------------------------------------------

* Fixes: `#38667 <http://forge.typo3.org/issues/38667>`_
* Commit: `280003f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=280003f29746167f771064008f6bfa0cb95fd97b>`_

[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: `272893a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=272893adddf7bdd4ae979edac7652180f6c97fba>`_

[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: `8e393d3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8e393d38794c3da3201562dede34649215a99626>`_

[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: `8996d94 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8996d94c01686d010749448351b274be945edbbf>`_

[BUGFIX] MemcachedBackendTest fail
-----------------------------------------------------------------------------------------

MemcachedBackendTest doesn't use TYPO3\\FLOW3\\Core\\ApplicationContext
to initialize MemcacheBackend.

* Fixes: `#38713 <http://forge.typo3.org/issues/38713>`_
* Commit: `00ff17e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=00ff17ef1149bdfa6df5fed07d06d94bd51280bb>`_

[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: `06e2108 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=06e21083c4f806973bcb1176d6ae74bd473a6ffc>`_

[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: `fc7b877 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fc7b877445e9172639663f461d2410f157f5fc5d>`_

[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: `efe74d5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=efe74d516d0c82994f28adc1e0867b9be1a74027>`_

[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: `593f84a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=593f84a214b8ac1f432681d2aa74872b86857ea4>`_

[BUGFIX] Correct a code migration's class name
-----------------------------------------------------------------------------------------

A code migration class name didn't match its file name,
this patch corrects this.

* Fixes: `#38442 <http://forge.typo3.org/issues/38442>`_
* Commit: `e175c52 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e175c5223f352ed9a60cd3f6c91562736288459e>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `03bacc6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=03bacc61e5de2a9f65698f17b7f137097eaede61>`_

[TASK] Add changelog for FLOW3 1.1.0-rc1
-----------------------------------------------------------------------------------------

* Commit: `8bb3a97 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8bb3a97b763ff014fbe270a32b4a8d17a8149ff0>`_

[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: `fe1e420 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fe1e420c73c06d19d3ebef13872237db652ff3e7>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `2e7f224 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2e7f224c3fb4c838b8b505ed8d0383c83061edc1>`_

[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: `3664972 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3664972e8be221277fd3443efb7c41cb4d9ed6dc>`_

[!!!][TASK] Minor typo corrections in code
-----------------------------------------------------------------------------------------

This trivially corrects some typos in code.

As a consequence, the DataNotSerializeableException was renamed
to DataNotSerializableException.

* Commit: `fec3f04 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fec3f046d336725bcbdbe39212ef313ec90d4552>`_

[TASK] Remove trailing colon from example headlines
-----------------------------------------------------------------------------------------

It just looked weird this way…

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `bfeeb2a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=bfeeb2ad9584902081c8b1aa5d587001d6ca4c52>`_

[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: `94d73f3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=94d73f3a914df16882f2a6e84917178a768cc8f1>`_

[TASK] Document Routing feature "appendExceedingArguments"
-----------------------------------------------------------------------------------------

* Resolves: `#35394 <http://forge.typo3.org/issues/35394>`_
* Commit: `833f676 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=833f676ee146ce5a7b1626c83440cca47d06b058>`_

[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: `bd08fb9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=bd08fb9999a31a8f76173f7b31d6660ce14e4905>`_

[TASK] Adjust filename spelling to match rest of package
-----------------------------------------------------------------------------------------

* Related: `#35298 <http://forge.typo3.org/issues/35298>`_
* Commit: `f310050 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f310050e8b51bb977413762cb7593256f38ba6b0>`_

[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: `b51a56b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b51a56b7e3be08d2667eb1db399f6fd91a28f73f>`_

[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: `3de0e72 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3de0e728f9d91bc83ce03ff9051fd0f370cad27e>`_

[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: `a56ac99 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a56ac99b15a86aa1c9aedb57f78c32780368539a>`_

[TASK] Provide conventions for ids in XLIFF files
-----------------------------------------------------------------------------------------

* Resolves: `#32606 <http://forge.typo3.org/issues/32606>`_
* Commit: `70f5662 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=70f56623582d1a203a358c2785b0eaee04570058>`_

[TASK] Update and link CGL on one page
-----------------------------------------------------------------------------------------

* Resolves: `#36651 <http://forge.typo3.org/issues/36651>`_
* Commit: `fc2d196 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fc2d196907bc4d68221cc4b6d92d09480b68cacb>`_

[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: `70457ec <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=70457ec8d7d9aae57221d4c7dccbcddb2c3d156d>`_

[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: `0d3440f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0d3440fc74be4f49628dd0c71aa8ba121e1083a1>`_

[TASK] Update "CGL on one page"
-----------------------------------------------------------------------------------------

* Resolves: `#36651 <http://forge.typo3.org/issues/36651>`_
* Commit: `2e85be9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2e85be9b40c89c5393f2ea77784fc2759c802bc9>`_

[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: `1ba1631 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=1ba1631bd5b21ac3fa62341bc90d8f6f9bd281c2>`_

[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: `02647e4 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=02647e4dc260e2c993eab3d88d34f3b364042c8d>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `838fe96 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=838fe96829086a485b243badf059dcbbf9327883>`_

[TASK] Some tiny tweaks to the 1.1.0b3 changelog
-----------------------------------------------------------------------------------------

* Commit: `fd417d6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fd417d6e91d92741db5c3fbfdc7a55a448b0e4a4>`_

[TASK] Add changelog for FLOW3 1.1.0-beta3
-----------------------------------------------------------------------------------------

* Commit: `8da82b2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8da82b23127b0e99907374fbcdb96ca904d0386f>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `e7812ee <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e7812eef060c19dcc85d66caea43aed8d56022c6>`_

[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: `4441c3c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4441c3cb94079e602bcfbebc3c7e10cb95d32b53>`_

[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: `82e8f43 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=82e8f439859418654723011431c4a3ed8f2a5a6c>`_

[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: `27951cf <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=27951cf889df5b82e87ba01c05083c3c688ae1a3>`_

[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: `de4ea73 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=de4ea73dc015b18d7e2ed887e66d3d49a3ccc8bd>`_

[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 e.g.
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: `ca4ef91 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ca4ef91cee2ecb84fa8d8abcd24418a1e83d3c16>`_

[TASK] Documentation corrections, each minor
-----------------------------------------------------------------------------------------

Some additional corrections, basically typo corrections,
for the manual.

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `53227d0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=53227d03a0aaeb15820640a58f14dae2a7b39729>`_

[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: `ff2fc38 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ff2fc38d01fd04d1610d506eb96fd09032db447a>`_

[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: `091a37f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=091a37f7ab8332fe69b79df5659bf1559235099a>`_

[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: `c0a7fc5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c0a7fc5ce2048cc44ca0915dafaf473c479a9ede>`_

[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: `b898eb9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b898eb9b2f91d8e7bf3572093ac761c6741c24ba>`_

[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: `4257fae <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4257faebb635394c9b0bff1d6139be147be5975f>`_

[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: `c2caff2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c2caff2490ee39b6b5c032fe713c315f72e00e7a>`_

[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: `37145b1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=37145b1f83e3828095f2b584ecc02a0eed3cb551>`_

[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.Flow: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: `ead2734 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ead273410f52ae50390c20116e0826e9186b60a4>`_

[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: `70b26b8 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=70b26b8f633114611a93158ae81da13e09887c51>`_

[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: `f75c243 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f75c243edf5e1a0de222e8dc6f930bfc5d020b62>`_

[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: `a54ebdb <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a54ebdb9b8f70986aacb96248601596b41e1f152>`_

[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: `ec51212 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ec5121249cf900fac1675014b3c5eaf445db5e39>`_

[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: `8ee6404 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8ee6404b73c77b8f25ab651d5617205fd7b559ad>`_

[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: `1f3cdea <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=1f3cdea0960f6abd0f4fb6b1bee0e63b65e2c8b7>`_

[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: `e3039f6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e3039f6849ef2e681582bb7c0d6987c2a1d08933>`_

[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: `174cf9c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=174cf9c0228ee01f7d0f90b23af4b2961e4ef48a>`_

[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: `cb2e18d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=cb2e18d1859b26aa06e360e994b7124ae23df1cd>`_

[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: `b62de73 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b62de73c2eb7b1231a94ebd28e8e89892494877c>`_

[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: `9300c10 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9300c1013f23100969bf45023d9e1bdff4f2f4c8>`_

[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: `4e9ebe2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4e9ebe29f3df59dc9e3a5c6f1c2fda3a256065d4>`_

[TASK] Update object management chapter
-----------------------------------------------------------------------------------------

This updates the section on custom factories.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `57a5d13 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=57a5d13c61f4a4ca1849e2692de64d8a314db76d>`_

[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: `f1bda0b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f1bda0b8e6bf1bfade6a47ac52ec29366f88b1a4>`_

[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: `f661930 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f66193005cb83dcc90151a4b806afba4ca893b14>`_

[TASK] Session handling documentation
-----------------------------------------------------------------------------------------

* Resolves: `#37668 <http://forge.typo3.org/issues/37668>`_
* Commit: `63b7c09 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=63b7c09ce4964e7d09013a7ee4d3b95dba6693c2>`_

[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: `3e918ee <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3e918ee71059ea3b36885d599fe38d1fa6e2fde6>`_

[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".

You should adjust your settings, but for backwards compatibility
settings from "PHPSession" will still be used if present.

* Fixes: `#37993 <http://forge.typo3.org/issues/37993>`_
* Commit: `8a9619a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8a9619abb8404ce98a86d8d267043530d349c1ee>`_

[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: `b00d9cc <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b00d9cc046c2e5ea8f859e191a4dcc99ac4f59fc>`_

[TASK] Documentation of Validation
-----------------------------------------------------------------------------------------

* Resolves: `#37666 <http://forge.typo3.org/issues/37666>`_
* Commit: `394f188 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=394f1884d2c496eee6d94a7736205daf3d197b66>`_

[TASK] document utility functions
-----------------------------------------------------------------------------------------

* Resolves: `#37669 <http://forge.typo3.org/issues/37669>`_
* Commit: `ac4d62a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ac4d62af08724fe21871676f83d06586cb0c4e9d>`_

[TASK] improve Property Mapping Documentation
-----------------------------------------------------------------------------------------

* Resolves: `#37664 <http://forge.typo3.org/issues/37664>`_
* Commit: `95a686c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=95a686c03dd57ca3f98a501ceca4fd310f71f241>`_

[TASK] Tiny docblock fix in DoctrineCommandController
-----------------------------------------------------------------------------------------

* Commit: `f6e8532 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f6e85325ca88c65e5b20d52c0b34fdb6271f9a53>`_

[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: `13220e0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=13220e0e23602d7a70e2ffdf1ebd1928a300d040>`_

[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: `3bfddf0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3bfddf0331b9a7df4272d367f104975ea5a118e4>`_

[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: `977ba8e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=977ba8e14cf080be32f5d51527f7f1dcec1917da>`_

[TASK] Add validator reference to the FLOW3 guide
-----------------------------------------------------------------------------------------

* Commit: `bc34734 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=bc3473461a6fc062962b00310368e90f66fb119b>`_

[TASK] Add CLI command reference to guide
-----------------------------------------------------------------------------------------

Adds a reference for the CLI commands in the FLOW3
base distribution.

* Commit: `932d713 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=932d7135b2da8a4c1d2bcf5a5362ac46236d48ce>`_

[TASK] Add contributors list
-----------------------------------------------------------------------------------------

* Commit: `74671a3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=74671a3c2d2ba512e8c10f73783dbb65a0423d19>`_

[TASK] Update Fluid ViewHelper reference
-----------------------------------------------------------------------------------------

This change updates the Fluid VH reference and does some tiny
tweaks along the way.

* Commit: `42e16cf <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=42e16cff73fc5918fab2d9b1f195199154e19239>`_

[TASK] Add changelog for FLOW3 1.0.5
-----------------------------------------------------------------------------------------

* Commit: `d88b1df <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d88b1df97d61ea21e9f58accf58c504d62ee3783>`_

[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: `8b383f6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8b383f621e0c3a91a39d13b5b677476d71c24d2d>`_

[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: `62053eb <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=62053eb7fce82f961bbdbbb2752e58c37223e71d>`_

[TASK] Some tiny tweaks to the 1.1.0b2 changelog
-----------------------------------------------------------------------------------------

* Commit: `98b914a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=98b914afee089823869802669fb8c41f5c250299>`_

[TASK] Add changelog for FLOW3 1.1.0-beta2
-----------------------------------------------------------------------------------------

* Commit: `fa870e2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fa870e26b7263e3b12f102ec18d826aa57178dad>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `99815da <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=99815da9f4e7edc5d663945b4bb83e875d534b2e>`_

[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: `4ae13b5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4ae13b54054bfeee87f3f3c1afad561f74ccd303>`_

[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: `42f4e5e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=42f4e5ec0d5a071431d93a7e696956b172a7db91>`_

[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: `c7da751 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c7da751a3cba3427acc14c6f5a3d568e05f7da49>`_

[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: `0caf926 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0caf926f31d31f8753eb9f2977f3db92b0280f28>`_

[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: `aa1a0c5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=aa1a0c5feb6a95691e3df2f40302b69b9c78dae0>`_

[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: `253a939 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=253a939213dc6aaa8f4f18f6b364972fc82c9d6b>`_

[!!!][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: `29618c5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=29618c52b31a51acb1ddc4fb7796dfdab909cafe>`_

[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: `2a22847 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2a2284752dc73b432e05bdac6197fc646935e2e4>`_

[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: `fdc462b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fdc462b04fe21bb35e08191d659f0ccf004849e7>`_

[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: `632685d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=632685da16e266bb1cfdabf223a938d3cf3476f8>`_

[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: `4ffcef3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4ffcef32bca0ee9d05c743126ce9c4fd0904d726>`_

[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: `d8bb6a4 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d8bb6a461e15cfbd5f6b9b4b1349d1528432171a>`_

[!!!][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: `fc4c4ab <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fc4c4ab510ddc1705f0c06a40e90335b5301ee4c>`_

[BUGFIX] Fix QueryTest using add twice for the same object
-----------------------------------------------------------------------------------------

The new check for objects being added to persistence broke one
of the tests in the functional QueryTest. Turns out the test
was buggy, adding the same object twice (instead of a different
one).

* Related: `#34527 <http://forge.typo3.org/issues/34527>`_
* Commit: `96b49cb <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=96b49cb6219d7cccd2bce479cec2f0bcc8c418bb>`_

[!!!][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: `996f20c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=996f20ce3a61fd4c9f4645d64df44235246b79bf>`_

[TASK] Tweak wrong docblock in PersistenceManager->add()
-----------------------------------------------------------------------------------------

The change to fix #34527 introduced a wrong @throws clause in
the method docblock.

* Related: `#34527 <http://forge.typo3.org/issues/34527>`_
* Commit: `102cee2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=102cee20fc823c59f82249109f1898c4f41307db>`_

[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: `1a688df <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=1a688df60b1b57077cdc1fdedbae245eae088dba>`_

[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: `2290d9f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2290d9febc7b7fc9a5bb0d67d8f89e97c8a345f0>`_

[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: `3469127 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=34691272f6a2ea722d475762ada0a27c35eaa3d5>`_

[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: `462fec1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=462fec11312d0ad520e0ced8a201bf7adde2e544>`_

[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: `3e5836f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3e5836faa8fb8d70b301521ab6ccc0022d72ae55>`_

[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: `11f8eb8 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=11f8eb8e96ad0f103b384734e17062bd57777d6b>`_

[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: `c403439 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c403439441bd05ab025d3547fca2bf07c25d7d83>`_

[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: `27f1622 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=27f162261c23b560e4fe408a03b7237dede3454a>`_

[TASK] Remove debug output in log on configuration changes
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `c6fa1ba <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c6fa1ba536077670eee753ae67f9357819fa02d6>`_

[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: `9a8bc9b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9a8bc9b1ae81ed85e5a86da3af377592367385df>`_

[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: `55b5a55 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=55b5a555ec747466bbe83b3dfa7eea13f3a5010e>`_

[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: `91cb54f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=91cb54f9ca1c09e0adc42b4e554fcdea115dfa69>`_

[BUGFIX] Add hint on validator empty handling to migration
-----------------------------------------------------------------------------------------

* Fixes: `#37231 <http://forge.typo3.org/issues/37231>`_
* Commit: `ce852a1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ce852a134f31eed612780c76878feabfbc33ab87>`_

[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: `8ce2f8d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8ce2f8da04576f850dc1bb02c22fdd582f02df86>`_

[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: `4f6850f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4f6850ffcf85c8984a2ba4236f0d8ad2b6ad7009>`_

[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: `5151598 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5151598fee6f1b4bd95aa6b750c04fa55e172a29>`_

[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: `86350b1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=86350b16355bfced486d2ee2af64180ee62efc26>`_

[TASK] Annotation cleanup for http response __toString method
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `93a8b37 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=93a8b37e6a8a690587ccdc0766f9a42be3ff6556>`_

[TASK] Clean up some coding style issues
-----------------------------------------------------------------------------------------

Add space to "foreach(".

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `3473e74 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3473e746c7806c74fb120aeb5cea952d42164f3f>`_

[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: `20c9c7e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=20c9c7e92362c18dbbbf8aacc728e96223edbb1b>`_

[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: `03ccfed <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=03ccfedd23591b0ad8eba0cba6ac6032034e1802>`_

[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: `87120b3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=87120b37fa21b92c02fcce53279a03cc0b0c987a>`_

[BUGFIX] Correction of double-"ed" ending in isMethodAnnotatededWith
-----------------------------------------------------------------------------------------

* Fixes: `#37343 <http://forge.typo3.org/issues/37343>`_
* Commit: `bca3a38 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=bca3a383ed47237caf8a2e0de4a9c629a775cff1>`_

[BUGFIX] Correction of double-"ed" ending in isMethodAnnotatededWith
-----------------------------------------------------------------------------------------

* Fixes: `#37343 <http://forge.typo3.org/issues/37343>`_
* Commit: `992cc65 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=992cc655b1088d379aea73fbb96b2630ed04653a>`_

[BUGFIX] generateHmac method does not use safe getEncryptionKey
-----------------------------------------------------------------------------------------

The generateHmac function uses encryptionKey property directly
and not through the safe getEncryptionKey method, leading to
uninitialized access without having an encryptionKey set.

* Fixes: `#36767 <http://forge.typo3.org/issues/36767>`_
* Commit: `7c1cadb <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7c1cadb78710f05da01c9208ad39470edb8df310>`_

[BUGFIX] generateHmac method does not use safe getEncryptionKey
-----------------------------------------------------------------------------------------

The generateHmac function uses encryptionKey property directly
and not through the safe getEncryptionKey method, leading to
uninitialized access without having an encryptionKey set.

* Fixes: `#36767 <http://forge.typo3.org/issues/36767>`_
* Commit: `6631255 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=66312551e0797cfe255dd0acb1b7d33ca86cc9b4>`_

[BUGFIX] Package refreeze command is too verbose
-----------------------------------------------------------------------------------------

flow3:package:refreeze currently displays the output of cache:flush
which contains hints about frozen packages.

This change adds a flag $outputResults to Scripts::executeCommand()
that only outputs errors if set to FALSE.
The package commands now set this flag in order to skip output from
cache:flush.

* Fixes: `#37186 <http://forge.typo3.org/issues/37186>`_
* Commit: `2810a6c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2810a6cc168300f5381953631a1b953ca2b3b3ac>`_

[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: `01f9e3d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=01f9e3d082fd7b72bc994dc5abd594b9a737f9b6>`_

[BUGFIX] Fix wrong hint in code migration
-----------------------------------------------------------------------------------------

* Fixes: `#37224 <http://forge.typo3.org/issues/37224>`_
* Commit: `7592d25 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7592d2542c72b24e1469e60787f8d31de121e7d4>`_

[TASK] Clean up some coding style issues
-----------------------------------------------------------------------------------------

Add spaces to "){"

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `0cae226 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0cae2267b772bf4cc3678333d2edb081a5f01088>`_

[TASK] Add changelog for FLOW3 1.1.0-beta1
-----------------------------------------------------------------------------------------

* Commit: `f746c9b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f746c9b30b7309d54fc27b182926bac5b0323660>`_

[TASK] Add changelog for FLOW3 1.1.0-beta1
-----------------------------------------------------------------------------------------

* Commit: `d1cee8d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d1cee8d66e04bf1bdb8b0a076ec50f4d4b0801be>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `379bc96 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=379bc9697d30080c2530cb726c6ea9d1cc13ce4f>`_

[BUGFIX] Do not use double quotes in Policy.yaml files
-----------------------------------------------------------------------------------------

To avoid potential treatment of backslashes as escape character
in YAML files, wrap strings in single quotes.

* Fixes: `#36056 <http://forge.typo3.org/issues/36056>`_
* Commit: `8e9332e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8e9332e7ec1e6a7cdc4c241d99be843c888f4711>`_

[BUGFIX] Add "classesPath" to PackageStates.php on creating a package
-----------------------------------------------------------------------------------------

When doing a ./flow3 package:create, the PackageStates.php is updated by
adding the new package, but the new entry lacks the "classesPath" field without
this change.

* Fixes: `#36446 <http://forge.typo3.org/issues/36446>`_
* Commit: `41d0dc2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=41d0dc266f4c764009777b6aaf4a0b1d870eebac>`_

[BUGFIX] Session: Do not throw an exception at logging
-----------------------------------------------------------------------------------------

While logging the session destruction there was an exception thrown if
no reason was given, because getArgument() can not be called for non
existing arguments

Also added a testcase for the LoggingAspect.

Additionally removed the type hint for the proxy object in JoinPoint -
although that's correct, it imposes unnecessary hassle for testing,
like in this case.

* Fixes: `#35200 <http://forge.typo3.org/issues/35200>`_
* Commit: `7246651 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=724665186decd31dc56f30a9a63777a00a903432>`_

[BUGFIX] PolicyService could drop ACLs for overlapping resources
-----------------------------------------------------------------------------------------

The PolicyService has to properly reuse all data gathered from
parsing the method resources, the traces were dropped for
different roles and so something wrong would be reused.

* Fixes: `#37105 <http://forge.typo3.org/issues/37105>`_
* Commit: `a617bd0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a617bd03d06cd434151117e828b60f6ed25dbc38>`_

[TASK] Added dependency on DomCrawler
-----------------------------------------------------------------------------------------

* Related: `#36830 <http://forge.typo3.org/issues/36830>`_
* Commit: `18e2542 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=18e2542ba0a6881c6125848c2c07236f54d0ea03>`_

[!!!][FEATURE] (MVC): Whitelist-based Property Mapping Configuration
-----------------------------------------------------------------------------------------

Up to now, property mapping always allowed to modify all properties of a given
object. Especially in the MVC stack, this functionality was relied upon for
all update and create actions. However, for nested objects, the user needed
to configure whether updates and creations should be allowed.

This was an inconsistent behavior, especially because for read-only actions the
object could be also modified.

The behavior is now changed to be more predictive:

- the default PropertyMappingConfiguration used in the MVC stack is changed
  to be very restrictive: we do neither allow creation of any new objects nor
  modification of existing ones; and all properties which should be modified
  must be explicitly configured.

- For each form, Fluid now generates a list of trusted properties, based upon
  which the PropertyMappingConfiguration is set correctly. This means only
  properties which have been rendered by fluid are allowed to be modified,
  and creation / insertion is only permitted if needed.

BREAKING CHANGES
----------------

- PropertyMappingConfiguration::doNotMapProperty (no public API) was removed.
  Instead, use ::allowAllPropertiesExcept(…).
- Furthermore, an exception is now thrown if a property is not allowed to be
  mapped. Before, the property was just ignored silently. You should either
  write your own TypeConverter to deal with that or filter the input data
  correctly before property mapping.

In a nutshell:

- If you used Fluid forms, everything will still work as expected.
- If you used Fluid forms and needed to adjust the property mapping configuration
  manually, you can remove these manual adjustments.
- If you manually called the Property Mapper and passed a custom Property Mapping
  Configuration, you probably need to call …->allowAllProperties() on the property
  mapping configuration.
- If you did not used Fluid forms but relied upon the old behavior of the Property
  Mapper (e.g. in a web service), you need to configure the Property Mapper
  inside your initializeAction correctly now.

Note: You need the accompanying Fluid change for testing this feature as well.

* Resolves: `#36776 <http://forge.typo3.org/issues/36776>`_
* Commit: `3f6576e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3f6576e47756a170d98232ff7f5a35d679052701>`_

[FEATURE] Inclusion of DomCrawler in Functional Test Browser
-----------------------------------------------------------------------------------------

In order to run meaningful end-to-end functional tests, we need a way
to navigate through HTML by clicking links and submitting forms.

We use DomCrawler to make this possible. This needs to be included
separately.

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

* Commit: `18e7219 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=18e7219fc970e498e98098e14c4df3ede7923a6a>`_

[FEATURE] Order package loading by dependencies
-----------------------------------------------------------------------------------------

This change simply reorders the internal packages arrays
of the PackageManager in a way that if PackageA depends
on PackageB, PackageA comes later then PackageB when
iterating over those arrays.

This change does not introduce a sophisticated dependency
management, however it makes sure to be be able to load
configuration settings in the correct order.

* Resolves: `#28213 <http://forge.typo3.org/issues/28213>`_
* Commit: `df6b2a2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=df6b2a2113bd9d680985b7d12211935ff4a4952d>`_

[TASK] Some cleanup to security (tests)
-----------------------------------------------------------------------------------------

No functional changes, just whitespace, spelling and some
PHPUnit warnings squashed.

* Commit: `e9b691f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e9b691ff132ec3d49ff6518ca31cbbb3c933cff2>`_

[TASK] HTTP Request: hasArgument() and getArgument()
-----------------------------------------------------------------------------------------

This change set provides two new getters for the unified
request arguments.

* Related: `#35243 <http://forge.typo3.org/issues/35243>`_
* Commit: `c00ef3b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c00ef3bf007e4b99d82f4b64df29c7d8ec653422>`_

[BUGFIX] Use ActionRequest to validate PasswordToken
-----------------------------------------------------------------------------------------

The (new) PasswordToken was not included in the fix for #36997.

* Related: `#36997 <http://forge.typo3.org/issues/36997>`_
* Commit: `bbdafab <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=bbdafabc935210213b8f2fecf432568844025fcb>`_

[BUGFIX] Skip functional test if Doctrine is not enabled
-----------------------------------------------------------------------------------------

The Flow3AnnotationDriverTest should be skipped if Doctrine is not
enabled to prevent problems if no actual driver or connection
can be created.

* Commit: `e5cb7f0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e5cb7f0df9f9dc3f59606c0b1f5aab3955af8e20>`_

[BUGFIX] Make core:migrate work on Windows
-----------------------------------------------------------------------------------------

On Windows redirection to /dev/null does not work. Also
some migrations would not be found due to useless type
casting.

* Related: `#29389 <http://forge.typo3.org/issues/29389>`_
* Commit: `c7038c4 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c7038c4e0c4507c803531a06c59ef77bbe2b1f70>`_

[TASK] Fix PackageManager unit test
-----------------------------------------------------------------------------------------

One of the tests failed because the order of found packages
was not as expected. That order is not relevant, though…

* Commit: `5a7a5a1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5a7a5a12bd35954bae13af2b841b3e724214c069>`_

[FEATURE] Implement file based encrypted key authentication
-----------------------------------------------------------------------------------------

This commit introduce a new password token, which works like the username
password token but only requires a password.

The file based simple key provider authenticates a password token using the
file based simple key service to get the matching password in the key which
is configurable for every instance of the provider. Furthermore the service
is capable of storing, removing, getting, checking and generating keys.
Optional values for generation key length and password hashing strategy is
configurable for the service.

* Resolves: `#34648 <http://forge.typo3.org/issues/34648>`_
* Commit: `af6de01 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=af6de01a2a8760e17f31584076461c38eaa98a44>`_

[BUGFIX] Use ActionRequest to validate authentication tokens
-----------------------------------------------------------------------------------------

Currently the security context passes the HTTP Request to
TokenInterface::updateCredentials() in updateTokens().
This has the disadvantage that authentication tokens can
only access raw GET / POST parameters from the HTTP request.
Arguments that are only available through routing are not accessible.

This change adjusts Security/Context, TokenInterface and the provided
implementations accordingly.

* Fixes: `#36997 <http://forge.typo3.org/issues/36997>`_
* Commit: `2aa6a02 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2aa6a02414916d7f7725b0aa83a3b6fb63dc9568>`_

[BUGFIX] Fix use of removed Environment methods in CsrfProtectionAspect
-----------------------------------------------------------------------------------------

CsrfProtectionAspect now no longer uses methods from environment that
no longer exist since the environment cleanup. It tries to get the
arguments from the active RequestHandler instead.

* Fixes: `#37018 <http://forge.typo3.org/issues/37018>`_
* Commit: `34f3725 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=34f3725060cc4de6c386481708fbe695550c8b07>`_

[BUGFIX] Avoid reverse ordering of packages in configuration manager
-----------------------------------------------------------------------------------------

This issue causes some problems when packages are overwriting YAML settings,
because in #27490 the package order is reversed in order to put TYPO3.Flow
at the top. This has some unnecessary consequences.

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

* Commit: `d100a28 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d100a281547da020c6bd628384fc4af7222b69c3>`_

[TASK] Add Doctrine.ORM to the dependencies
-----------------------------------------------------------------------------------------

* Related: `#28213 <http://forge.typo3.org/issues/28213>`_
* Commit: `2fba45e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2fba45eb4dd9e2e4dd16ae6ce0d676e5cc099fed>`_

[TASK] Some cleanup to PackageManager and it's unit test
-----------------------------------------------------------------------------------------

Fixes some docblocks, adds a few type hints and fixes / simplifies some
unit tests.

* Commit: `67c257c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=67c257c91fba12e9dc25888382415eaf5ebeca4e>`_

[TASK] Small docblock cleanup to Bootstrap
-----------------------------------------------------------------------------------------

* Related: `#33581 <http://forge.typo3.org/issues/33581>`_
* Commit: `4fe6851 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4fe6851bb5959cca49e52c945a17f29673f01419>`_

[TASK] Clean up class names in validators
-----------------------------------------------------------------------------------------

No functional changes.

* Commit: `015cde6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=015cde674b8b9948f814f95ac4367c05b94fc476>`_

[FEATURE] Add __toString() and make Resource use more convenient
-----------------------------------------------------------------------------------------

To use a Resource with file operations, one can use the
resource:// scheme and the __toString() method of any
ResourcePointer.

To make this a little easier, this change adds two new
methods to the Resource class:

``__toString()`` returns the SHA1 of the ResourcePointer the
Resource is holding (as is documented for ages).

getUri() returns a ready-to-use resource://<sha1> URI of
the ResourcePointer the Resource is holding.

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

* Commit: `8cdaae4 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8cdaae41c0af199402358e2171766af14f9379e9>`_

[FEATURE] Destroy all sessions on cache:flush command
-----------------------------------------------------------------------------------------

When the typo3.flow3:cache:flush command is called all session data
for the currently configured session implementation will be
destroyed too.

* Resolves: `#25923 <http://forge.typo3.org/issues/25923>`_
* Commit: `dc804a6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=dc804a6f9c42d60cf982a67fdca8f9812b77715b>`_

[FEATURE] Have a way to delete all sessions
-----------------------------------------------------------------------------------------

Introduces the static method destroyAll to the
SessionInterface and all implementations and so
makes it possible to destroy all session data for a
specific implementation.

Resolves #34817

* Commit: `5713941 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=57139411256f90e52f5954c5e12ec243ded37849>`_

[BUGFIX] Only use ansi colors for var_dump() if supported
-----------------------------------------------------------------------------------------

\\TYPO3\\FLOW3\\var_dump() currently uses ANSI codes to colorize
the output on the CLI.
On Windows that's not supported by default. It renders all special
characters instead.

This change disables ansiColors on Windows.

* Fixes: `#36954 <http://forge.typo3.org/issues/36954>`_
* Commit: `aeaa424 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=aeaa424b48d22c0e532c44fb223aa25be67beac3>`_

[FEATURE] Makes it possible to wire signals to static slots
-----------------------------------------------------------------------------------------

To use a static slot simply prefix the slot method name with ``::``

* Resolves: `#34185 <http://forge.typo3.org/issues/34185>`_
* Commit: `00ea791 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=00ea79198668b30e3fefbd277f8070965ff83c18>`_

[FEATURE] Introduce the magic role "Anonymous"
-----------------------------------------------------------------------------------------

This introduces a second magic role (besides the
role "Everybody") which is active as long as nobody
is authenticated. This allows for designing policies
in a way that anonymous users still have access to
certain resources.

Also fixes a small bug in the PolicyService which
previously did not return the Everybody or Anonymous
role on getRoles().

* Resolves: `#34900 <http://forge.typo3.org/issues/34900>`_
* Commit: `b70090b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b70090b742a764381053e9bd170d3197b39d5de0>`_

[FEATURE] Improve Property Mapping Exception message
-----------------------------------------------------------------------------------------

The exception message for when a Mapping fails now
contains a hint about the concerning target type.

* Resolves: `#36949 <http://forge.typo3.org/issues/36949>`_
* Commit: `fb0c15a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fb0c15a2d8b2f9caa65e7758be5f26c308287212>`_

[TASK] Slightly improve documentation of properties
-----------------------------------------------------------------------------------------

The properties used to enable testable HTTP and security influence
each other (like the good old image handling settings in v4).

This change adds comments that clarify the behavior.

* Commit: `a87b12d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a87b12d284a9093df9d85c8bcb434776b6c39790>`_

[TASK] Getting Started: Add filenames to code snippets
-----------------------------------------------------------------------------------------

* Resolves: `#35263 <http://forge.typo3.org/issues/35263>`_
* Commit: `160d0a4 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=160d0a430f77a5898c04a191155f43b66efb8360>`_

[TASK] Handle exceptions in virtual HTTP browser
-----------------------------------------------------------------------------------------

The virtual HTTP browser now catches any exceptions
and returns the exception information in the response
rather than letting the actual exception slip through.

* Resolves: `#36943 <http://forge.typo3.org/issues/36943>`_
* Commit: `5b26f74 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5b26f74b49ff96b565a0c18351c5f4e991aba9cc>`_

[BUGFIX] Authentication: context now reliably stores the intercepted request
-----------------------------------------------------------------------------------------

On authentication the original intercepted request was not stored,
when there was no current session. The session now gets automatically
initialized via @Flow\\Session(autoStart=true).

* Fixes: `#31905 <http://forge.typo3.org/issues/31905>`_
* Commit: `4756966 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4756966d29055e09150648fd85f78f87204c6026>`_

[TASK] Improve security isolation in functional tests
-----------------------------------------------------------------------------------------

This change makes sure that also the intercepted request
(if any) is cleared on clearContext() and renames the
authentication provider configured for the Testing
context from "DefaultProvider" to "TestingProvider".

* Related: `#31905 <http://forge.typo3.org/issues/31905>`_
* Commit: `900a207 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=900a207aac90539e08f9c65b1743335f3ac3849e>`_

[BUGFIX] Adjust TransientSession unit test to recent change
-----------------------------------------------------------------------------------------

The change in TransientSession to close the session when destroy()
is called needed to be reflected in the unit test.

* Related: `#35965 <http://forge.typo3.org/issues/35965>`_
* Commit: `a2033af <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a2033af01b4f0c38a7f56b365ed4dd0a25d8dea1>`_

[BUGFIX] Assure fresh session for functional tests
-----------------------------------------------------------------------------------------

The changes done to resolve #35965 came with a functional
test that worked fine when run in isolation but failed when
run with other tests that would start a session.

This patch moves the $session->destroy() call in the
base test case from the tearDown() to the setUp()
method and fixes the behavior of destroy() in the
TransientSession which did not reset the "started"
flag.

* Related: `#35965 <http://forge.typo3.org/issues/35965>`_
* Commit: `69c5912 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=69c5912c41eaa714f10c46294cb9a4db6eb5304d>`_

[!!!][TASK] Change session autostart handling for authentication providers
-----------------------------------------------------------------------------------------

The session autostart annotation is set at the
providers, not at the authentication manager. By
this every provider can decide on its own, if a
session is needed or not.

Also adds a safeguard in the Session Logging Aspect
to prevent errors while trying to log renewId()
even though the session was not started yet.

* Resolves: `#35965 <http://forge.typo3.org/issues/35965>`_
* Commit: `ab61bd4 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ab61bd444fe1d2b1feb0e6e6a224575824fc7ce9>`_

[TASK] Add section on XLIFF plural form handling to guide
-----------------------------------------------------------------------------------------

Adds a short explanation of plural form handling in XLIFF files to
the FLOW3 guide.

* Related: `#36088 <http://forge.typo3.org/issues/36088>`_
* Commit: `3c0e30a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3c0e30a0783314d932cf82e38522b409c58ca5db>`_

[FEATURE] Improve logging for translation handling
-----------------------------------------------------------------------------------------

When a translation is not found a warning is logged so that the
user gets a clue what is wrong.

* Resolves: `#36088 <http://forge.typo3.org/issues/36088>`_
* Commit: `9ee4f38 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9ee4f38a9caa0974e45d378e7fa35b1c1fb6ab75>`_

[FEATURE] Make migration of a single package possible
-----------------------------------------------------------------------------------------

Now the option "--package-key" can be given to "core:migrate" to
migrate a single package.

This allows for migration of single packages, including those in the
"Framework" category, which are now skipped by default.

* Related: `#29389 <http://forge.typo3.org/issues/29389>`_
* Commit: `b7d3014 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b7d30145a427147738cc6928d6125481952340f2>`_

[TASK] Add providerOptions example to Settings.yaml
-----------------------------------------------------------------------------------------

* Related: `#33495 <http://forge.typo3.org/issues/33495>`_
* Commit: `f433747 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f433747137733801ebca2f9e7aa7c4d2c5bc7c3f>`_

[!!!][FEATURE] (Core): Nested FLOW3 Application Contexts
-----------------------------------------------------------------------------------------

With this change, it is possible to use nested FLOW3 contexts like
"Production/Live" or "Production/Staging/Server1". The main context,
has to be one of "Production", "Development" or "Testing", whereas
arbitrary sub contexts are supported.

If you run in the context "Production/Staging/Server1", the configuration
is inherited in the following way (from most specific to most general):

- Production/Staging/Server1
- Production/Staging
- Production
- as a fallback, the, non-context-specific configuration is used

This change is breaking in the following cases:

- You called TYPO3\\FLOW3\\Core\\Bootstrap::getContext() or
  TYPO3\\FLOW3\\Object\\ObjectManagerInterface::getContext()

  In this case, not the context string is returned anymore, but instead
  the TYPO3\\FLOW3\\Core\\ApplicationContext object. It can be cast to a string to
  get the old behavior back; but usually you instead want to call
  $context->isDevelopment(), $context->isProduction() or $context->isTesting().

- You wrote your own cache backend

  The cache backend constructor now expects the $context object to be of type
  TYPO3\\FLOW3\\Core\\ApplicationContext.

Additionally, we removed some leftovers from the configuration manager,
especially Signals/Slots configuration as this is not used anymore.

* Resolves: `#33581 <http://forge.typo3.org/issues/33581>`_
* Commit: `9df5567 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9df5567135e42e1ab312f9a560c3eed382517c83>`_

[TASK] Fix hints about frozen packages to cache:flush command
-----------------------------------------------------------------------------------------

This enhances the hints about frozen packages introduced in
change I4db274dcf0376ada53a3a46ed5c6b945543698d1.

* Related: `#36807 <http://forge.typo3.org/issues/36807>`_
* Commit: `692f73b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=692f73b74bd7c0b80191bc25acd70e90054b626f>`_

[TASK] Tweak code migration tool code and output
-----------------------------------------------------------------------------------------

This makes the output of the code migration tool a little
more readable and shifts some parts of the code around to
clean it up.

* Related: `#29389 <http://forge.typo3.org/issues/29389>`_
* Commit: `06930c3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=06930c3be589d35d80fe9f25eddbfd7f20b7a7f4>`_

[TASK] Fix schema migrations adding useless unique indexes
-----------------------------------------------------------------------------------------

This change removes the index creation commands on the Role table from
the migrations supplied with Ief9455e10c58f999cf46e0586e632ff3e2ef9ad5,
as the involved field is the primary key (and thus a unique index) anyway.

* Related: `#29547 <http://forge.typo3.org/issues/29547>`_
* Commit: `a788b29 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a788b2920e366a817d913e600e4eccd21335f5b9>`_

[TASK] Adjust the code migration for FLOW3 1.1
-----------------------------------------------------------------------------------------

This tweaks the code migration a little to be more complete and
produce better readable output.

* Related: `#29389 <http://forge.typo3.org/issues/29389>`_
* Commit: `05f80eb <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=05f80eb8cf434e9d447f1d4bf55a26dc5ced7509>`_

[FEATURE] Provide outputFormatted() function for CLI
-----------------------------------------------------------------------------------------

This introduces a new method for outputting formatted
(that is, word wrapped and optionally padded) text to
the command line.

* Resolves: `#36813 <http://forge.typo3.org/issues/36813>`_
* Commit: `95af0e5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=95af0e5fb3d64f423160aaa94cee0f0c46a77062>`_

[TASK] Add hints about frozen packages to cache:flush command
-----------------------------------------------------------------------------------------

By default precompiled reflection data of frozen packages is not
recreated on flushing the cache.
This adds a hint to the response of the cache:flush command if
there are frozen packages.

* Resolves: `#36807 <http://forge.typo3.org/issues/36807>`_
* Commit: `9243aa1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9243aa1c61a28861edcf5f1bb21d2708086f818f>`_

[BUGFIX] (Persistence): Fix failing RepositoryTest
-----------------------------------------------------------------------------------------

The test fails since Ic3782452e941574dd85068535092877efd7ca190 which
forgot to adjust the Unit Tests.

* Related: `#33883 <http://forge.typo3.org/issues/33883>`_
* Commit: `cfbc8fa <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=cfbc8fa0a56d1c35d02e8e438ca636f1854b41ee>`_

[FEATURE] Identity annotation should make properties unique
-----------------------------------------------------------------------------------------

With this change all properties annotated with the Identity
annotation will be added to an unique constraint in the database.

* Resolves: `#29547 <http://forge.typo3.org/issues/29547>`_
* Commit: `b0fb449 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b0fb449cc9dc7266fd027b2c3618041e6fad3ef7>`_

[TASK] Remove Identity annotation from Resource
-----------------------------------------------------------------------------------------

As preparation to give the Identity annotation some meaning we
remove it here to still allow multiple resources with the same
pointer and filename / fileExtension.

This doesn't change the behavior at all as Identity has no
technical meaning (yet).

* Resolves: `#36717 <http://forge.typo3.org/issues/36717>`_
* Commit: `b9fd146 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b9fd14644de323164c5d096421e73484cefa7ba5>`_

[FEATURE] DateTimeConverter should support DateTime subclasses
-----------------------------------------------------------------------------------------

Currently DateTimeConverter only accepts target types of 'DateTime'.
This change adjusts the converter so that it works for subclasses
of \\DateTime too.

* Resolves: `#33531 <http://forge.typo3.org/issues/33531>`_
* Commit: `f12ba2d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f12ba2d320d98bac6f3ac16e7fee026722e59eb6>`_

[FEATURE] Use lifecycle annotations without HasLifecycleCallbacks
-----------------------------------------------------------------------------------------

When using lifecycle annotations on methods, this change removes the need
to annotate the class itself with HasLifecycleCallbacks.

* Resolves: `#36714 <http://forge.typo3.org/issues/36714>`_
* Commit: `955b786 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=955b786a937127f9c39cbb6506d9d7ad2119a7c1>`_

[FEATURE] Code migration tool
-----------------------------------------------------------------------------------------

This adds support for "code" migrations. As with database migrations,
steps needed to adjust existing code to changes done in some package
can be delivered in a migration file with said package.

A new command flow3:core:migrate can be used to apply migrations to
all packages still in need of that migration. The tool requires git
to be available and will work only on code in clean git working copies.

* Resolves: `#29389 <http://forge.typo3.org/issues/29389>`_
* Commit: `ed8fdea <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ed8fdeafc57bad85358c960daf2e7751ef161796>`_

[TASK] Add functional content security tests
-----------------------------------------------------------------------------------------

* Commit: `1bc9921 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=1bc99215f7d8da7c30767671d83a1be13c392854>`_

[TASK] A few more content security examples
-----------------------------------------------------------------------------------------

This adds some very basic notes which could help a few
people started with content security.

* Commit: `e0e903b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e0e903b83da64cb796557e5b3a4b54bad02cc5c1>`_

[TASK] Documentation: Add a link to installation hints
-----------------------------------------------------------------------------------------

* Resolves: `#35262 <http://forge.typo3.org/issues/35262>`_
* Commit: `012c659 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=012c6595533debe54bb4b20561e702cb3f06b779>`_

[TASK] Update to support orphanRemoval on ManyToMany associations
-----------------------------------------------------------------------------------------

In Doctrine 2.2.1 support for orphanRemoval on ManyToMany associations was
added, thus it is added to our driver as well.

In addition unnamed indexes and unique constraints are now possible, also
a "port" from the upstream codebase.

* Related: `#34760 <http://forge.typo3.org/issues/34760>`_
* Commit: `8baab13 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8baab130e156725e3c041892418ed2588225a6ac>`_

[BUGFIX] Adjust "fileName" spelling to "filename"
-----------------------------------------------------------------------------------------

The spelling for filename differs throughout the code. With this
change we use "filename" everywhere possible.

* Fixes: `#35298 <http://forge.typo3.org/issues/35298>`_
* Commit: `c55e4f6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c55e4f69e0c866e1b1e6a04d5c1f035eee068a8b>`_

[BUGFIX] Prevent Route class from appending an extra question mark
-----------------------------------------------------------------------------------------

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

* Commit: `dc3532f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=dc3532f4a4bbb187c26129d1d4b78410ff8bee53>`_

[TASK] Fixes exception message building causing error
-----------------------------------------------------------------------------------------

When the providerClass for an authentication provider
is not configured, the building of an exception message
caused a notice (and that caused an error).

* Related: `#34399 <http://forge.typo3.org/issues/34399>`_
* Commit: `fc71de3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fc71de3f2f60e8de92e14596134490d015d2a3eb>`_

[BUGFIX] Adjust documentation to correct folder structure for xlf-files
-----------------------------------------------------------------------------------------

* Commit: `4e17257 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4e17257dd25f314b851eec9a6c7b577ae593a10b>`_

[TASK] Move XLIFF files so that Pootle copes with the file layout
-----------------------------------------------------------------------------------------

This changes the file layout for translations so that for every language
a directory named after the locale identifier is looked up below
Resources/Private/Translations. Inside that directory one XLIFF file
for each message catalog can be put:

 Resources/Private/Translataions/
   en/
     Main.xlf
	 ValidationErrors.xlf
   fr/
     Main.xlf
	 ValidationErrors.xlf

* Resolves: `#36284 <http://forge.typo3.org/issues/36284>`_
* Commit: `7275a13 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7275a130a1f552467b41d973f6533522c8dfb194>`_

[TASK] Fix RestController to work with HTTP foundation
-----------------------------------------------------------------------------------------

This fixes RestController to work again with HTTP foundation.

* Related: `#35243 <http://forge.typo3.org/issues/35243>`_
* Commit: `9de4a2c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9de4a2c9c6101b44ef5a00686f0f8ce296e6e44a>`_

[BUGFIX] Check that repositories are of singleton scope
-----------------------------------------------------------------------------------------

Repositories must be singletons, otherwise strange things and
seemingly weird errors happen. This change adds a check for the
scope, so that developers at least know what is wrong.

* Fixes: `#33883 <http://forge.typo3.org/issues/33883>`_
* Commit: `5e34219 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5e342192819640b75bb54f86873622e537af810b>`_

[BUGFIX] Use lowercase table names to fix functional tests
-----------------------------------------------------------------------------------------

There seems to be a problem with (certain versions of) MySQL and
lower / uppercase table names (maybe only on case insensitive
filesystems).

This change adjusts some Table annotations used in functional
test fixtures to use lowercase identifier.

* Fixes: `#35007 <http://forge.typo3.org/issues/35007>`_
* Commit: `019507a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=019507ae40359ac87558d79178caf1267de21480>`_

[TASK] Adjust some leftover uppercase namespace parts
-----------------------------------------------------------------------------------------

There were still some uses of AOP and MVC in the codebase.

* Related: `#33705 <http://forge.typo3.org/issues/33705>`_
* Commit: `e04da49 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e04da494a1995084c696c444d822cd24c769178c>`_

[BUGFIX] Query rewriting now works with one additional constraint
-----------------------------------------------------------------------------------------

PersistenceQueryRewritingAspect was broken if only one additional
constraint was added, leading to invalid queries that failed with
an invalid number of bound parameters.

* Fixes: `#36679 <http://forge.typo3.org/issues/36679>`_
* Commit: `7d13b3f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7d13b3fbcbd2d82aaa1aa0e7f05c3406a79cf651>`_

[BUGFIX] Fix MethodSecurity functional test
-----------------------------------------------------------------------------------------

After #36659 was fixed, the session handling works
as expected. That means, however, that if no account
is logged in, an AuthorizationRequiredException is
thrown on trying to access a restricted method.
The tests, however, anticipated an AccessDeniedException.

* Related: `#36626 <http://forge.typo3.org/issues/36626>`_
* Related: `#36659 <http://forge.typo3.org/issues/36659>`_

* Commit: `09dba14 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=09dba14bbc6c3dfd5409ff333ffa9d9cc4fac14d>`_

[!!!][BUGFIX] Fix session handling in functional tests
-----------------------------------------------------------------------------------------

Sessions were kept across test boundaries which had bad
side effects on, for example, authentication: previously
authenticated roles where still active during the following
Test under certain circumstances.

This patch makes sure that sessions are destroyed after
each functional test.

It also introduces a previously missing parameter into the
destroy() method signature of the SessionInterface. If you
implemented your own session handler, you need to adjust the
destroy() method accordingly.

* Resolves: `#36659 <http://forge.typo3.org/issues/36659>`_
* Commit: `41a5fa0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=41a5fa000b9228ce43566fc92211b729dca775e3>`_

[TASK] Fix debug output marking entity/value object
-----------------------------------------------------------------------------------------

This removes the FIXME from debug output and just
uses "persistable" as an umbrella term for an entity
or value object.

* Commit: `ad3c7d9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ad3c7d9aab25b94a6d3574d2de69e9d0381da424>`_

[BUGFIX] PersistenceQueryRewritingAspect now supports count(0)
-----------------------------------------------------------------------------------------

If the aspect intercepted a count() method and the result (because
of lacking access rights) would be "none", the aspect returned an
EmptyQueryResult object which in turn could not be cast into an
integer by the client code.

This patch now correctly returns a 0 in that case.

* Fixes: `#36625 <http://forge.typo3.org/issues/36625>`_
* Commit: `21cf88e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=21cf88e55a2757ff928a784ec3aa867faf6cfa83>`_

[FEATURE] Introduce ANY matcher for content security
-----------------------------------------------------------------------------------------

* Related: `#36626 <http://forge.typo3.org/issues/36626>`_
* Commit: `ed4538b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ed4538b8ac9347fbf68463d3363becad28aa259c>`_

[TASK] Log exception in Doctrine\\Query->getResult()
-----------------------------------------------------------------------------------------

When an exception occurs during getResult() it was silently
ignored. Now it will be logged to the system log.

* Commit: `f20526c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f20526cc9e1e15f83cbc37a81d1a6a9c1a68a276>`_

[TASK] Adjust Testing settings
-----------------------------------------------------------------------------------------

Fixes YAML style and makes use of SQL logger in Testing possible.

* Commit: `be0c797 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=be0c79758f39b598a553770bdefd6324389bd696>`_

[BUGFIX] Implement fallback for password hash migration
-----------------------------------------------------------------------------------------

The new BCrypt default hashing strategy causes problems if a FLOW3
application is migrated from version 1.0 which didn't use strategy
identifiers inside credentials. A new "fallback" configuration
option allows to specify the strategy that was used to generate
these legacy credentials. It defaults to "pbkdf2" and allows for a
seamless migration from 1.0 to 1.1. New passwords will be hashed with
the default strategy ("bcrypt" by default) and get the strategy
identifier prepended.

* Fixes: `#32991 <http://forge.typo3.org/issues/32991>`_
* Commit: `78279ca <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=78279ca9a0c1b6808db415b678722791c66f4d0f>`_

[TASK] Add functional tests for content security
-----------------------------------------------------------------------------------------

This add some first basic functional tests for
content security.

* Related: `#36626 <http://forge.typo3.org/issues/36626>`_
* Commit: `3198e41 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3198e416672b1313b2a890f564c45eced401b9c8>`_

[BUGFIX] Make getHttpRequest() work in functional tests
-----------------------------------------------------------------------------------------

In some cases functional tests need to access getHttpRequest() on the
active RequestHandler. In functional tests this did not work, because
the FunctionalTestRequestHandler did not implement the new
HttpRequestHandlerInterface.

Now it does and the InternalRequestEngine sets the current request.

* Fixes: `#36617 <http://forge.typo3.org/issues/36617>`_
* Commit: `d38e25b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d38e25b36b17af2843fe9d11bbb5f5aa1ec7e647>`_

[BUGFIX] Fix functional testing for security features
-----------------------------------------------------------------------------------------

The authenticated roles from one test have not been
cleared after the test.

Adds a safeguard for getAccount() to the security context
along the way.

* Fixes: `#34466 <http://forge.typo3.org/issues/34466>`_
* Commit: `771bc9b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=771bc9b8a43b25be454e71b8acd61e18e79bbf87>`_

[FEATURE] (Validation): Context-specific validation through Validation Groups
-----------------------------------------------------------------------------------------

Sometimes, Validation should only be executed on Persist, or on the Controller
invocation. Especially when building multi-step forms, one needs to be able to
partially validate an object and store the invalid object in the database.

This change set implements "validation groups", i.e. each validator annotation
can have a "validation group" assigned, and when validation happens, the validators
get only executed if at least one validation group matches.

Furthermore, it adds a documentation skeleton for partial validation.

* Resolves: `#32832 <http://forge.typo3.org/issues/32832>`_
* Commit: `7aebd16 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7aebd16f388f07424bb6a016be7312cc01d9feea>`_

[BUGFIX] Fix Typo3OrgSsoToken use of removed method
-----------------------------------------------------------------------------------------

Environment does no longer have getRawGetArguments(), instead using
getArguments() on the HTTP request we have available.

* Fixes: `#36657 <http://forge.typo3.org/issues/36657>`_
* Commit: `4595e40 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4595e40c0d963e32b0d73d6bd94ec2427d1394ff>`_

[BUGFIX] Fix isClassImplementationOf in ReflectionService
-----------------------------------------------------------------------------------------

In some cases (depending on filesystem load order probably) the
Production context would fail to return the correct result in the
isClassImplementationOf() method of the ReflectionService.

This change fixes it.

* Fixes: `#34672 <http://forge.typo3.org/issues/34672>`_
* Commit: `e40b221 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e40b22193fe0a52b24f090e1cb16b095cacea1d9>`_

[TASK] Use correct order or static function declaration
-----------------------------------------------------------------------------------------

This is the only occurence of this order for declaring a static method.

* Commit: `319fa7e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=319fa7e4a7b48f30bea52414d80149a7ad2d474d>`_

[TASK] Add example of request pattern to provider example
-----------------------------------------------------------------------------------------

* Commit: `4c598ce <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4c598ceb250683a1e5bcb866c05c7f8adba6980a>`_

[BUGFIX] AdviceChain has to take the proxy from the joinpoint
-----------------------------------------------------------------------------------------

The advice chain object got its proxy instance in the constructor,
which was possibly not the correct instance for a given joinpoint.
This change removes the constructor parameter and fetches the proxy
instance always from the current joinpoint.

* Resolves: `#36637 <http://forge.typo3.org/issues/36637>`_
* Commit: `7a79ea2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7a79ea2c1b186d8d96278691a82c3f5ff913ed44>`_

[BUGFIX] Call PersistAll after every controller invocation
-----------------------------------------------------------------------------------------

If0020fdedbaf4779ff24d0e4248e2137cdf5bc67 introduced a regression
which caused persistAll() to be uncalled.

* Related: `#28136 <http://forge.typo3.org/issues/28136>`_
* Commit: `72b91a1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=72b91a1e581a59e60f7bc1a3bda318b10c66999e>`_

[TASK] Add clarifying note on PersistenceMagicAspect.cloneObject
-----------------------------------------------------------------------------------------

Adds a note clarifying that this method is not unused.

* Commit: `9761517 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9761517bef6be4a9b69ba35966342ffe2e69c64e>`_

[!!!][FEATURE] Turn content security acl logic upside down
-----------------------------------------------------------------------------------------

This change realizes a whitelist approach for content
security acls. By this content security acls work with
the same logic as method security.

* Resolves: `#34464 <http://forge.typo3.org/issues/34464>`_
* Commit: `6cdc131 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=6cdc131bbc480fe6999aaf001a1143da504e5948>`_

[BUGFIX] Skip token separation without request in Security\\Context
-----------------------------------------------------------------------------------------

separateActiveAndInactiveTokens() in Security\\Context fails if
$this->request is NULL.

With this change, token separation is skipped completely in that case.

* Fixes: `#36624 <http://forge.typo3.org/issues/36624>`_
* Commit: `1148aeb <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=1148aebf3342cc5891c333c514514c17e4b1b0e5>`_

[BUGFIX] Fix functional tests with security and sendWebRequest
-----------------------------------------------------------------------------------------

This change fixes some security related aspects of the functional
base testcase. Field visibility and method visibility is restored
to protected since custom tests need to be able to call some
of the dependencies (e.g. to initialize or reset additional test
providers). Also sendWebRequest is working again with the new
request implementation and without mocks.

* Fixes: `#36517 <http://forge.typo3.org/issues/36517>`_
* Commit: `b839259 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b839259f6730c2a327a85803bf3388e573356915>`_

[BUGFIX] Adds detection of missing id attributes in XLIFF files
-----------------------------------------------------------------------------------------

XLIFF requires id attributes on trans-unit tags, but if they are missing,
FLOW3 does not complain. An exception is now thrown, instead of
some unspecified behavior.

* Fixes: `#33971 <http://forge.typo3.org/issues/33971>`_
* Commit: `3872d43 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3872d4354eb20ec50e06380e409dc1e564b888ae>`_

[FEATURE] Persist after every controller invocation
-----------------------------------------------------------------------------------------

Wire persistAll() from afterControllerInvocation instead of the
finishedRuntimeRun signal.

This is useful because it wraps all changes done in one dispatch in
a transaction, thus enabling better rollback in case of errors.

* Related: `#28136 <http://forge.typo3.org/issues/28136>`_
* Commit: `9a0e128 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9a0e128a6c4725f2a60c0426acacf9d313c1be57>`_

[BUGFIX] Make BCrypt the default hashing strategy (again)
-----------------------------------------------------------------------------------------

In https://review.typo3.org/5756 the default hashing strategy was
changed to BCrypt. Later, in https://review.typo3.org/6598, support for
multiple strategies was added. But that change make PBKDF2 the default
again.

This change fixes that and makes the SaltedMd5 strategy available in
the YAML file as well (for completeness).

* Fixes: `#32991 <http://forge.typo3.org/issues/32991>`_
* Commit: `28a049f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=28a049fc0d5ca17e5ee1ec8c92c020aa9a32864c>`_

[BUGFIX] Exceeding roles of accounts are now ignored
-----------------------------------------------------------------------------------------

If an account had one ore more roles which were not
defined in a policy, access was denied to this account
because the role could not be matched. It is, however,
more practical to simply ignore exceeding roles.

This patch makes sure that getRoles() only considers
roles of the active tokens which really exist in one
of the policies.

* Resolves: `#35422 <http://forge.typo3.org/issues/35422>`_
* Commit: `a513961 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a513961f1b2b0a771c900e626ccc93d0d0c1e171>`_

[BUGFIX] Guard against missing server global variables
-----------------------------------------------------------------------------------------

Calling Http\\Request::createFromEnvironment() gives a notice about an
undefined array index for HTTP_HOST and REMOTE_URI if used e.g. in
CLI based tests.

This change adds guards against this in the Request implementation.

* Fixes: `#36518 <http://forge.typo3.org/issues/36518>`_
* Commit: `69e3820 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=69e38209d2a4ff221d777fb0405d3a2906986281>`_

[BUGFIX] Action arguments of type DateTime throw Exception
-----------------------------------------------------------------------------------------

If an action argument is an object, the ValidatorResolver tries to
instantiate that object to use it as Validator without checks.

This change solves this by checking if the specified object implements
the ValidatorInterface.

* Fixes: `#35338 <http://forge.typo3.org/issues/35338>`_
* Commit: `5d1aa1b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5d1aa1b9aba4f1f80e0c82fd950b62aad4ee6b88>`_

[TASK] Remove leftover session dependency from Http\\Request
-----------------------------------------------------------------------------------------

This is actually not used and causes circular dependency problems
in some cases.

* Related: `#35243 <http://forge.typo3.org/issues/35243>`_
* Commit: `b2ee527 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b2ee527c5c127205fbb31bbbec5abc901a83478c>`_

[FEATURE] Track all configuration changes
-----------------------------------------------------------------------------------------

This change set greatly improves the file monitoring of FLOW3's
system relevant files, such as class files, settings, object
configuration, policies and translations.

In Development context, changes to any of the above will be
tracked and the related caches are flushed. For performance
reasons, the new mechanism does not rely on the tagging
feature of the cache framework, but uses the new Simple
File Backend and rather flushes a few caches too many than
missing an important change.

* Resolves: `#5849 <http://forge.typo3.org/issues/5849>`_
* Resolves: `#33811 <http://forge.typo3.org/issues/33811>`_
* Related: `#35912 <http://forge.typo3.org/issues/35912>`_
* Commit: `fb277f3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fb277f305a7cbfb73d60ce2de218790f3093fdb8>`_

[!!!][FEATURE] Make cache backends more flexible
-----------------------------------------------------------------------------------------

This change makes cache backends more flexible. It adds a new interface
"TaggableBackendInterface" and a new "SimpleFileBackend". The latter
does not support tagging but is faster in certain cases (where with a
lot of tags/entries flushing everything is faster than flushing by tag).

If you have implemented a cache backend and support tagging, you must
add the "TaggableBackendInterface" to the list of interfaces implemented
by your backend.

In addition this change makes the PDO backend a little more robust and
resolves some code style issues.

* Resolves: `#36563 <http://forge.typo3.org/issues/36563>`_
* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Extbase Issue: `#36564 <http://forge.typo3.org/issues/36564>`_
* Commit: `08924c0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=08924c0cf8ceec3c181b31f61d5ae6cf2c6b8467>`_

[!!!][FEATURE] FileMonitor now uses identifier and has getIdentifier()
-----------------------------------------------------------------------------------------

This change makes the FileMonitor use the identifier internally and
provides a getIdentifier() method. With this, using multiple file
monitors becomes feasible.

The "ChangeDetectionStrategyInterface" contains the two new methods
"setFileMonitor" and "shutdownObject" now, so if you implemented your
own change detection strategy, you need to implement those.

The ModificationTimeStrategy provided with FLOW3 is no longer singleton
and thus usable with multiple file monitor instances in parallel.

* Resolves: `#36568 <http://forge.typo3.org/issues/36568>`_
* Commit: `cf6bb69 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=cf6bb6911b4f609a59a8cf7986f364162a18abed>`_

[!!!][TASK] Clean up Environment after HTTP refactoring
-----------------------------------------------------------------------------------------

With the HTTP foundation quite some things from Environment have become
obsolete. The class and it's "users" are adjusted in this change.

The following methods are removed from Environment (check Http\\Request
to see if a method you need is available there) with this change:

* setBaseUri
* getHTTP*
* getAcceptedFormats
* getRemoteAddress
* getRemoteHost
* getRequestProtocol
* getRequestUri
* getBaseUri
* getScriptPathAndFileName
* getScriptRequestPathAndFileName
* getScriptRequestPath
* getRequestMethod
* getCommandLineArgumentCount
* getCommandLineArguments
* getSAPIName
* getRawGetArguments
* getRawPostArguments
* getUploadedFiles
* getRawServerEnvironment

Most of those were marked as public API, but we still decided to drop
them, as their use cases were only guesswork.

For some things that used to be available, access to the current request
is now needed. For this, getHttpRequest() was added to the new
HttpRequestHandlerInterface, which returns the current HttpRequest.

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

* Commit: `817017e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=817017e0051be25da3a675c666f811f88a62c802>`_

[!!!][TASK] Move baseUri setting from Environment to Http\\Request
-----------------------------------------------------------------------------------------

The Environment class optionally used a setting to specify a fixed
baseUri to be used. With the HTTP foundation this settings was no
longer used (consistently).

If in Settings.yaml the "utility:environment:baseUri" settings was used,
it must be changed to "http:baseUri"!

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

* Commit: `e2d704e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e2d704e7895ee971a51ec3f37c78e7b3b50bdf69>`_

[BUGFIX] Uploaded files are not untangled anymore
-----------------------------------------------------------------------------------------

TYPO3\\FLOW3\\Http\\Request is missing the functionality that is implemented
in TYPO3\\FLOW3\\Utility\\Environment::untangleFilesArray().

This causes the $source array in
TYPO3\\FLOW3\\Property\\PropertyMapper::convert() to have invalid keys from
the $_FILES array (name, type, tmp_name, error, size) which causes an
exception.

* Fixes: `#36114 <http://forge.typo3.org/issues/36114>`_
* Commit: `1256837 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=1256837a3d1ed1d9f7b54d5ccdc6c31dceecc73e>`_

[FEATURE] Introduce HttpRequestHandlerInterface
-----------------------------------------------------------------------------------------

This new interface identifies request handlers which are
supporting and working with HTTP requests as such and
allows other application parts to retrieve the current HTTP
request.

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

* Commit: `9dcd31d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9dcd31d94865a984ce7b17e56fd8109028cf86da>`_

[TASK] Tweak doc comments to be more explanatory
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `5ddf514 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5ddf5140f6e3bd1e59478919c517ec14ea8f2d30>`_

[BUGFIX] Base PrecompiledReflectionData path on temporary path
-----------------------------------------------------------------------------------------

The path to the precompiled reflection data is no longer
configured separately but instead always derived from the FLOW3
temporary path.

* Resolves: `#36578 <http://forge.typo3.org/issues/36578>`_
* Fixes: `#36572 <http://forge.typo3.org/issues/36572>`_
* Fixes: `#36569 <http://forge.typo3.org/issues/36569>`_
* Commit: `286a7d6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=286a7d6d1a20a65c106b22ac41c57481074bff07>`_

[BUGFIX] Do not use fallback temporary directory
-----------------------------------------------------------------------------------------

With this change you will get an exception if you miss the
temporary path setting in your settings instead of falling
back to the system temporary path, because this could lead to
problems with multiple FLOW3 instances on the same system.

* Fixes: `#36577 <http://forge.typo3.org/issues/36577>`_
* Commit: `d1a05a2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d1a05a20c8e6f024291752c63aa58b29d6add618>`_

[TASK] Improve "compilation error message"
-----------------------------------------------------------------------------------------

When the compile run failed, an exception was thrown until now. This
lead to confusing output. With this change it doesn't output useless
PHP version info etc. anymore.

* Resolves: `#36562 <http://forge.typo3.org/issues/36562>`_
* Commit: `9539aca <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9539aca721deb3bfb54c6188612e9e3e0f923856>`_

[BUGFIX] Update package states after package:import
-----------------------------------------------------------------------------------------

This patch makes sure that the package states information
is updated after a new package has been imported.

As before, the new package is not active by default.

* Resolves: `#36519 <http://forge.typo3.org/issues/36519>`_
* Commit: `dc3a284 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=dc3a2842e1dd506d1aad0868c0c726c1b378d250>`_

[BUGFIX] Don't rewrite PackageStates.php if not necessary
-----------------------------------------------------------------------------------------

This fix adjusts a comparison so that the PackageStates.php
file is only written if truly necessary.

* Resolves: `#36516 <http://forge.typo3.org/issues/36516>`_
* Commit: `75d4bea <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=75d4bea5179322ee2a8f0b634cb4b4ae42721d06>`_

[BUGFIX] Remove precompiled reflection data on force flush
-----------------------------------------------------------------------------------------

This patch makes sure that any precompiled reflection data
of frozen packages is removed on a cache:flush --force.

* Fixes: `#36502 <http://forge.typo3.org/issues/36502>`_
* Commit: `77fa8af <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=77fa8af3e98d55d5e29829b4eb0515a46112da28>`_

[FEATURE] Adds a quiet flag to doctrine:migrate
-----------------------------------------------------------------------------------------

With the flag set only the version numbers of the executed
migrations are output, one per line.

* Resolves: `#36276 <http://forge.typo3.org/issues/36276>`_
* Commit: `64420ca <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=64420cac2474b254c4c69dcee3092784443d6f00>`_

[FEATURE] Allow "configurable" classes path in packages
-----------------------------------------------------------------------------------------

Package instances can be asked for their classes path, which is now set
determined by the PackageManager and stored in PackageStates.php.

It can - in the future - thus be read from a Composer file and
does no longer have to be the hardcoded "Classes".

This change removes the use of the .Shortcuts folder again and makes
"overlapping" package keys possible (e.g. TYPO3.JobQueue and
TYPO3.JobQueue.Beanstalk).

* Resolves: `#36337 <http://forge.typo3.org/issues/36337>`_
* Commit: `83a56d5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=83a56d56f81554b9f4d4810173afd7d3425da4db>`_

[BUGFIX] Fix content security current.globalObject expansion
-----------------------------------------------------------------------------------------

Using for example current.securityContext in Policy.yaml made
FLOW3 crash completely in "eval'd" code.

This fixes the crash and removes the eval code by using the
TYPO3\\FLOW3\\Object\\ObjectManager.

* Fixes: `#31677 <http://forge.typo3.org/issues/31677>`_
* Commit: `a5a90de <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a5a90def350b789e0758982b97bd9d27b20576a5>`_

[TASK] Adjust functional test fixture to new maximum table length
-----------------------------------------------------------------------------------------

* Related: `#35517 <http://forge.typo3.org/issues/35517>`_
* Commit: `58b7c5f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=58b7c5f027cf452b7b7aa198201a0c34d77ecaf1>`_

[TASK] Add DB migration for PostgreSQL
-----------------------------------------------------------------------------------------

This adds an initial migration for PostgreSQL to create the needed
schema for the package.

* Related: `#36301 <http://forge.typo3.org/issues/36301>`_
* Commit: `a95ffee <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a95ffeee29a9ab4c129b8db699efe806ab540af3>`_

[BUGFIX] Fixes column type detection when using Column annotation
-----------------------------------------------------------------------------------------

If a Column annotation is used but no type argument is given, the default
"string" type was used and did override the detection. Now the detection
is used again in those cases.

The only drawback is that you cannot force a column to be "string" any
more.

* Fixes: `#35011 <http://forge.typo3.org/issues/35011>`_
* Commit: `503891c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=503891c2854b05359902ae1b7984b9c2fe2f9396>`_

[TASK] Cleans up some smaller issues
-----------------------------------------------------------------------------------------

This change collects a number of smaller issues:
 - clarifies description of migrationGenerateCommand
 - an exception is thrown on invalid Package.php file

* Commit: `aafecb5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=aafecb5765aa78c4110c5be15f418a85085e34b2>`_

Fixes code style issues
-----------------------------------------------------------------------------------------

This change adds a ton of @throws to docblocks and fixes other
documentation issues. Some code cleanup, like removing unused
variables and tweaking use statements is done as well.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `fafc62e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fafc62ef6e89add4d622077f4282841e1b02fc8d>`_

[TASK] Derive maximum table name length from Doctrine.DBAL
-----------------------------------------------------------------------------------------

Doctrine.DBAL drivers have informations about the maxmimum
allowed table length, so the annotation driver uses this
information now.

* Resolves: `#35517 <http://forge.typo3.org/issues/35517>`_
* Commit: `cc2477f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=cc2477fa3ac2096c10834522d5f4beefdcff0b55>`_

[!!!][BUGFIX] Changes the default for nullable columns to FALSE
-----------------------------------------------------------------------------------------

This change makes columns not nullable by default, as is the case with
vanilla Doctrine 2.

This is a breaking change if you rely on NULL values to be returned
to detect special cases, like for not using unset date properties.
In those cases you need to mark your property with the Doctrine
annotation: Column(nullable=true)

* Fixes: `#35059 <http://forge.typo3.org/issues/35059>`_
* Commit: `115bda5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=115bda50778c04619481554a94bf5b47ab98409b>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `28a0904 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=28a090457ee4df8ec45c514c01072c73fd0867e8>`_

[BUGFIX] flow3.php now uses return code from setfilepermissions.sh
-----------------------------------------------------------------------------------------

* Fixes: `#36279 <http://forge.typo3.org/issues/36279>`_
* Commit: `e6cd5cd <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e6cd5cdb5aad759463fdd1c8e09c0e0d53589f59>`_

[TASK] Fix functional test for HTTP RequestHandler
-----------------------------------------------------------------------------------------

The HTTP RequestHandler test can only be executed if the
global routes configuration include the routes from the
FLOW3 package. That might not be the case in other than
the FLOW3 distribution and then this test fails.

Fixed this by skipping the test if it can't succeed.

* Commit: `dd014d2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=dd014d2ee22861d41833378bbe9f4d17877f04c8>`_

[TASK] Remove a rather dubious unit test for Redis cache backend
-----------------------------------------------------------------------------------------

Fixes a catch statement around connect as well.

* Commit: `e06bd9b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e06bd9bb0a3e602a6b067d91b94e88cd78d96135>`_

[FEATURE] Improve value object support
-----------------------------------------------------------------------------------------

This allows to handle value objects as intended. Create a new
one and persistence will take care to check if the value object
exists already.

* Related: `#3585 <http://forge.typo3.org/issues/3585>`_
* Commit: `0af0647 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0af0647d5295353f29b9f5fbdff678f33bdaa6d7>`_

[BUGFIX] Fixed empty exception for CLI commands
-----------------------------------------------------------------------------------------

When issuing an invalid command line (missing or wrong arguments),
FLOW3 displayed an exception #0 without further explanation.
The reason was an uncaught StopActionException thrown in the
CommandController::forward() method.

This patch fixes that bug and additionally eliminates some
duplicate code in CommandRequestHandler.

* Fixes: `#36030 <http://forge.typo3.org/issues/36030>`_
* Commit: `f9847d2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f9847d2b25c7d700f715932ef18c1473e8b251fc>`_

[BUGFIX] Skip CSRF protection if not authenticated
-----------------------------------------------------------------------------------------

CSRF protection prevented the triggering of authentication entry
points in some cases. As CSRF protection is not needed,
if nobody is authenticated, we completely skip this feature
in those cases.

* Resolves: `#36035 <http://forge.typo3.org/issues/36035>`_
* Commit: `6ed045c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=6ed045ce6283a6c359d2aef681a64f96bcec8958>`_

[TASK] Stability improvement to functional persistence test
-----------------------------------------------------------------------------------------

Adds ordering to TestEntityRepository to make results predictable.

* Commit: `49d0b48 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=49d0b48aec80d7b6db3cf05cfb4e51115a2085ab>`_

[TASK] Make output of doctrine:migration status more compact
-----------------------------------------------------------------------------------------

This change removes some superfluous newlines that made the
migration status output rather long…

* Commit: `3ca5db8 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3ca5db88e46cd9ee47b48d2d9470938974c9ced3>`_

[TASK] Give hint with exception on aggregate roots in hierarchies
-----------------------------------------------------------------------------------------

The message "In a class hierarchy either all or no classes must be
an aggregate root, "Foo" is one but the parent class "Bar" is not."
is not really helpful for developers.

This change adds a hint on how to solve the problem.

* Resolves: `#35892 <http://forge.typo3.org/issues/35892>`_
* Commit: `5b10bd1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5b10bd1c0037f163a92be6b34464725eb86a655c>`_

[TASK] Ignore @codeCoverageIgnore annotation
-----------------------------------------------------------------------------------------

* Commit: `59bec6a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=59bec6a65d05d5523a85e7811c1f75c65c45b4eb>`_

[SECURITY] Protect arguments of form __referrer with HMAC
-----------------------------------------------------------------------------------------

The request arguments of the referring request are
a serialized string written to one of the hidden
fields in a Fluid form. This string has to be protected
by a HMAC to protect FLOW3 from possible unserialize
attacks.

Note: For now there is no object known within the FLOW3
Distribution, that could be used for an unserialize
exploit!

* Security-Bulletin: `FLOW3-SA-2012-001 <http://typo3.org/teams/security/security-bulletins/flow3/FLOW3-SA-2012-001/>`_
* Fixes: `#35300 <http://forge.typo3.org/issues/35300>`_

* Commit: `dc46450 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=dc46450431cf55667da03bfdd9c624291479d953>`_

[TASK] add "Group" tag to excluded tags, as PHPunit now requires to tag big testcases
-----------------------------------------------------------------------------------------

* Commit: `5d6c3ea <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5d6c3eaa29d2d8f72636224541b15ab12f35565b>`_

[TASK] Add missing getParentRequest() method in HTTP Response
-----------------------------------------------------------------------------------------

Furthermore, some documentation cleanup.

* Related: `#35243 <http://forge.typo3.org/issues/35243>`_
* Related: `#33371 <http://forge.typo3.org/issues/33371>`_

* Commit: `eb813f9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=eb813f9640c3a22c14711a61187ef5320150784c>`_

[FEATURE] HTTP Client for Functional Testing
-----------------------------------------------------------------------------------------

This adds a virtual HTTP client which supports pluggable request engines
for different purposes. The first scenario in which we'll use this new
"Browser" is for seamless functional testing of controllers and other
features which should be tested through the whole request / response
chain.

The FunctionalTestCase now provides a new class property called
"testableHttpEnabled" which, if set to TRUE, initializes a new browser
for each test and provides it as $this->browser.

Also adds a bunch of functional tests for the MVC ActionController using
this new feature.

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

* Commit: `ecb44c5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ecb44c545eb5bbb5b89718c9de1236414b9b770c>`_

[FEATURE] Provide method getContent() for HTTP request
-----------------------------------------------------------------------------------------

This implements a method for retrieving the HTTP request body.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `bbc5e33 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=bbc5e3349d8378329da28a052b683ec847d9abd6>`_

[!!!][BUGFIX] Alternative entry points can be configured again
-----------------------------------------------------------------------------------------

This fix allows for using other than the pre-defined WebRedirect
entry points (for example the HTTP Basic entry point).

In order to avoid confusion, this patch also streamlines the setting
names for authentication providers. It makes sure that only one entry
point can be defined at all and adjusts the naming of other settings
to be in line with other FLOW3 setting conventions.

The keys of settings for the authentication provider have changed as
follows:

DefaultProvider:
  provider:          '(a class name)'
  providerOptions:   [ ... options ... ]
  token:             '(a class name)'
  entryPoint:        '(a class name)'
  entryPointOptions: [ ... options ... ]

* Resolves: `#33495 <http://forge.typo3.org/issues/33495>`_
* Commit: `ad0bcd5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ad0bcd5e3ce536658d0a7625ce5bbb1de098411a>`_

[!!!][FEATURE] HTTP 1.1 Support – Foundations
-----------------------------------------------------------------------------------------

This commit contains the foundations for a better HTTP support in
FLOW3. It extracts request and response handling into a dedicated
sub package "Http" and clearly distinguishes between HTTP requests
and "action requests".

While this change set does contain a few new features which are
related to HTTP support, it is by far not complete and rather serves
as a foundation for further features which are following.

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

* Commit: `0e05ccc <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0e05ccc570e5d0a46c860e23d38eec3566e6e36e>`_

[!!!][TASK] Sub package name case and location adjustments
-----------------------------------------------------------------------------------------

This change set contains (mostly) renames and relocations of FLOW3 sub
namespaces. These changes are necessary to meet the FLOW3 coding
guidelines and naming conventions and to support the new CLI / HTTP
and MVC structure.

* \\TYPO3\\FLOW3\\AOP -> \\TYPO3\\FLOW3\\Aop
* \\TYPO3\\FLOW3\\MVC -> \\TYPO3\\FLOW3\\Mvc
* \\TYPO3\\FLOW3\\MVC\\CLI -> \\TYPO3\\FLOW3\\Cli
* \\TYPO3\\FLOW3\\MVC\\Web\\Routing -> \\TYPO3\\FLOW3\\Mvc\\Routing
* \\TYPO3\\FLOW3\\MVC\\Web\\Request -> \\TYPO3\\FLOW3\\Mvc\\ActionRequest
* \\TYPO3\\FLOW3\\MVC\\Web\\Response -> \\TYPO3\\FLOW3\\Http\\Response
* \\TYPO3\\FLOW3\\MVC\\Web\\SubRequest -> \\TYPO3\\FLOW3\\Mvc\\ActionRequest
* \\TYPO3\\FLOW3\\MVC\\Web\\SubResponse -> TYPO3\\FLOW3\\Http\\Response
* \\TYPO3\\FLOW3\\MVC\\Controller\\CommandController -> \\TYPO3\\FLOW3\\Cli\\CommandController
* \\TYPO3\\FLOW3\\Property\\DataType\\Uri -> \\TYPO3\\FLOW3\\Http\\Uri
*
* \\TYPO3\\FLOW3\\MVC\\Web\\RequestBuilder doesn't exist anymore. If
  you need to create requests, do "new ActionRequest($parentRequest)"
* \\TYPO3\\FLOW3\\MVC\\Web\\SubRequestBuilder doesn't exist anymore.
  If you need to create sub requests, do "new ActionRequest($parentRequest)""

Note that this change set contains most but not every single adjustment
to the new locations as it is part of a bigger change for the respective
feature.

* Resolves: `#33705 <http://forge.typo3.org/issues/33705>`_
* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `331a78e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=331a78e8ba19923951a83d50e5f30cc09068db61>`_

[FEATURE] --force option for flow3:cache:flush
-----------------------------------------------------------------------------------------

Packages containing invalid PHP code which cause fatal errors
can prevent FLOW3 from flushing code caches with
./flow3 typo3.flow3:cache:flush

This patch provides a new --force option which skips all non-
essential initialization and flushes caches directly, including
emptying the whole temporary directory.

* Resolves: `#35826 <http://forge.typo3.org/issues/35826>`_
* Commit: `3ceb727 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3ceb727c29ee61e4bec43d23cee0912bbbc24d58>`_

[TASK] Getting started: Correct snippet description
-----------------------------------------------------------------------------------------

* Resolves: `#35264 <http://forge.typo3.org/issues/35264>`_
* Commit: `c7c095c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c7c095c10d682bc812fb9f1a7a74620e69f874a5>`_

[BUGFIX] Adjust documentation to new documentation workflow
-----------------------------------------------------------------------------------------

* Resolves: `#35666 <http://forge.typo3.org/issues/35666>`_
* Commit: `d12ce44 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d12ce447263257851c8ddaeb68182edf96981d9a>`_

[TASK] Remove Selenium Test Case
-----------------------------------------------------------------------------------------

This removes the unsupported, unnecessary and unfunctional
Selenium Test Case.

* Resolves: `#35682 <http://forge.typo3.org/issues/35682>`_
* Commit: `8cec12a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8cec12a92f83f59fa05a2012b2c2175a8c976c1d>`_

[BUGFIX] Virtual host configuration contains Production context definition
-----------------------------------------------------------------------------------------

* Fixes: `#34902 <http://forge.typo3.org/issues/34902>`_
* Commit: `ff4eb7e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ff4eb7e3c5b18563f91299e898ffc5ba36a84c27>`_

[BUGFIX] Proxy methods with referenced arguments should work
-----------------------------------------------------------------------------------------

Arguments given by reference would result in an exception if
the method was proxied due to AOP.

* Fixes: `#30914 <http://forge.typo3.org/issues/30914>`_
* Fixes: `#13333 <http://forge.typo3.org/issues/13333>`_

* Commit: `fa08678 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fa0867857380f9d843a2d749d3dd4195f5a6535e>`_

[TASK] Improve TextValidator unit tests
-----------------------------------------------------------------------------------------

This introduces more test texts for the TextValidator tests.

* Related: `#3977 <http://forge.typo3.org/issues/3977>`_
* Commit: `cfa4bd5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=cfa4bd554d4fa6b462768b3e862ae6b2639598f7>`_

[TASK] add FLOW3 documentation to TYPO3.Flow
-----------------------------------------------------------------------------------------

* Related: `#35524 <http://forge.typo3.org/issues/35524>`_
* Commit: `fdd5c99 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fdd5c99378b2a7491f29b1c141b0e8048b25eff0>`_

[BUGFIX] DateTimeValidator throws exception when validating DateTime objects
-----------------------------------------------------------------------------------------

The DateTimeValidator tries to parse DateTime objects
with the L18n DatesParser which throws an exception.

This change fixes this by checking if the specified value
is an instance of DateTime first.

* Related: `#34050 <http://forge.typo3.org/issues/34050>`_
* Commit: `3cafccf <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3cafccf68f5d082c312946c79b29c23bf761a365>`_

[TASK] Fix doc comments for authentication providers
-----------------------------------------------------------------------------------------

Fixes the wrong return doc annotation for the getTokenClassnames method

* Resolves: `#35317 <http://forge.typo3.org/issues/35317>`_
* Commit: `2dd67d2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2dd67d26e151496771e8ef4c3c4e2016a904971d>`_

[TASK] Grammar police at work
-----------------------------------------------------------------------------------------

* Commit: `8ec5166 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8ec5166f43dd6aaef81d241b3834b6060b545875>`_

[TASK] Cosmetic changes in test cases
-----------------------------------------------------------------------------------------

This removes the @category annotation from a bunch
of security related tests and replace an inject
method in the PackageCommandController by property
injection.

* Commit: `30a007d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=30a007d1c2fe5aa033c7ba5df89114e052686bd8>`_

[FEATURE] inject() convenience method in Base Test Case
-----------------------------------------------------------------------------------------

Testing code which uses dependency injection requires
some additional lines of code for manually injecting
the dependencies needed to run a unit test.

This patch provides a new convenience method – inject() –
which takes care of manual injection of dependencies
in unit test cases.

* Resolves: `#35135 <http://forge.typo3.org/issues/35135>`_
* Commit: `8152b8c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8152b8c97a292e79e24b514b161850ccdba85b03>`_

[BUGFIX] Clear .Shortcuts on cache flush command
-----------------------------------------------------------------------------------------

In case some directories were renamed you are able to get
back to a defined state with the cache:flush command.

It will also clean the .Shortcuts directory to prevent
mismatches.

* Fixes: `#34837 <http://forge.typo3.org/issues/34837>`_
* Commit: `6d13ef2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=6d13ef279506dddfa7230ed935347eadaf513e6b>`_

[BUGFIX] StreamWrapperAdapter::stream_lock does not return result
-----------------------------------------------------------------------------------------

StreamWrapperAdapter::stream_lock() does not return the results
of the actual stream wrapper. But according to the docs this
should return TRUE on success and FALSE on failure.

This change fixes this and adds unit tests for all public methods
of the adapter.

* Fixes: `#34555 <http://forge.typo3.org/issues/34555>`_
* Commit: `2fd21b1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2fd21b11f5b72a668d3d408328a3f7bbd72dc646>`_

[FEATURE] Configurable hint about log message origin
-----------------------------------------------------------------------------------------

This feature allows for enabling the additional hint for the origin of
logged messages handled by the FileBackend. By default these hints are
now omitted.

* Resolves: `#35052 <http://forge.typo3.org/issues/35052>`_
* Commit: `becbc65 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=becbc65f77c30547c0a56a5a1e93b6b68be1365a>`_

[FEATURE] Automatic session expiration on user inactivity
-----------------------------------------------------------------------------------------

This feature lets sessions expire automatically after a certain time
of user inactivity. The actual timeout can be specified through a
new setting called "inactivityTimeout".

This patch also sets the default cookie lifetime to infinite, as
expiration can be better controlled through the new timeout feature.

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

* Commit: `cfe4af2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=cfe4af2e7423da6adbe881d1c97e14abc62ce189>`_

[BUGFIX] Context::hasRole() now checks roles recursively
-----------------------------------------------------------------------------------------

Previously, hasRole() only considered the first level of roles of a
token. getRoles() instead always considered all roles, including those
on a lower level.

This patch fixes the behavior of hasRole() by checking for roles
recursively. As before, the "Everybody" role is a role even non-
authenticated and anonymous users have.

This also fixes <f:security.ifHasRole>, as this ViewHelper directly uses
Context::getRoles.

* Fixes: `#31997 <http://forge.typo3.org/issues/31997>`_
* Commit: `861231e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=861231e1eff72b53d3dd415c496bed2b29752358>`_

[BUGFIX] YamlSource creates invalid YAML files
-----------------------------------------------------------------------------------------

YamlSource::save() currently creates Windows style EOLs
and indentation is lost in YAML files.

* Fixes: `#35016 <http://forge.typo3.org/issues/35016>`_
* Commit: `36e46e7 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=36e46e7464a35dea2b7febe7b337817511fc8210>`_

[FEATURE] Precompiled reflection data for frozen packages
-----------------------------------------------------------------------------------------

This feature introduces "frozen packages". Through the command line
command "package:freeze" one ore more packages can be set into a
frozen state. A frozen package is excluded from file monitoring and
its reflection data is stored in a file separate from the regular
caches. After caches have been flushed, this precompiled reflection
data is loaded in order to speed up the compile run during that first
hit.

With "package:unfreeze" packages can be unfrozen and "package:refreeze"
will refresh the precompiled reflection data of an already frozen
package.

Package freezing is only supported for Development context.

* Resolves: `#34827 <http://forge.typo3.org/issues/34827>`_
* Resolves: PHX-71
* Commit: `e181054 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e1810549a590de455a609443a1f35e2e3d9baee3>`_

[FEATURE] Optimize AOP proxy building
-----------------------------------------------------------------------------------------

This simply makes AOP proxy building a lot faster.

* Resolves: `#9568 <http://forge.typo3.org/issues/9568>`_
* Resolves: PHX-72
* Commit: `38c3c8e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=38c3c8e7edbb730699dbd993e180e8aee39b3e3d>`_

[FEATURE] Allow setting dataType from outside
-----------------------------------------------------------------------------------------

This change introduces a public setter method for
the dataType property, making it possible to
influence the target type for propery mapper.

* Resolves: `#34867 <http://forge.typo3.org/issues/34867>`_
* Commit: `6475457 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=6475457dadf9f8d00da542e99567395dad796c51>`_

[FEATURE] Package help in CLI
-----------------------------------------------------------------------------------------

This extends the CLI to display a list of all commands of a
specified package including their short description.
Also if more commands match a given identifier, now the list
of all matching commands with short descriptions is displayed.

* Resolves: `#30256 <http://forge.typo3.org/issues/30256>`_
* Commit: `e382d9f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e382d9fe499e9c0302fd97bb6046a16cf2f063d8>`_

[BUGFIX] Removes "ghost command" getflow3
-----------------------------------------------------------------------------------------

The fix for #33048 in Ia8561a7878b7dd9ba8a6f3bb926c9da10b46bd0c caused a
ghost command to appear in all command controllers…

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

* Commit: `d8ee470 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d8ee47023607e65be59f30ea6c43bc37042f96dd>`_

[BUGFIX] HTML should be escaped in Debug Exception
-----------------------------------------------------------------------------------------

HTML in the code that is output as part of the stack trace is
escaped now.

* Fixes: `#25961 <http://forge.typo3.org/issues/25961>`_
* Commit: `fa8fd72 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fa8fd72a7c1f6794561e0ce111484fcccd3cc867>`_

[BUGFIX] Make flow3.bat output usage texts matching Windows
-----------------------------------------------------------------------------------------

When using flow3.bat on Windows the usage information would tell the
user to call "./flow3", which doesn't fit the Windows world.

* Fixes: `#33048 <http://forge.typo3.org/issues/33048>`_
* Commit: `7e567e8 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7e567e8d38e5a24f052a7da4fa7ae0fd657540e3>`_

[TASK] Remove deprecated methods and unused code
-----------------------------------------------------------------------------------------

Things which have been deprecated prior to the 1.0.0 release are
removed with this change:

* Cache\\AbstractFrontend->getClassTag()
* ObjectManager->create()
* ObjectManager->recreate()
* HashService->generateSaltedMd5()
* HashService->validateSaltedMd5()
* Resolves: `#27770 <http://forge.typo3.org/issues/27770>`_
* Fixes: `#33789 <http://forge.typo3.org/issues/33789>`_
* Commit: `a29012b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a29012b669e90a7e39a4727514538ace5a77eb80>`_

[BUGFIX] PackageManager should update .Shortcuts when needed
-----------------------------------------------------------------------------------------

The PackageManager needs to update the shortcuts when saving
package states. Besides that the PackageManager should ignore
inactive packages when creating shortcuts.

* Fixes: `#33417 <http://forge.typo3.org/issues/33417>`_
* Fixes: `#34322 <http://forge.typo3.org/issues/34322>`_

* Commit: `fec2ff9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fec2ff945c3b1a73e0811637fe4bb2ecbce8e6df>`_

[BUGFIX] Package.php template should have correct use statements
-----------------------------------------------------------------------------------------

The Package.php template will generate clean use statements with
same usage of backslashes.

* Commit: `b6191e9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b6191e900e1546122e8f1147de96e050224ace82>`_

[BUGFIX] typo in return statement for getAccessDecisionVoters()
-----------------------------------------------------------------------------------------

Fix return value to array.
Fix type hinting for var $securityContext and $authenticationManager

* Fixes: `#34620 <http://forge.typo3.org/issues/34620>`_
* Commit: `94a0799 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=94a079947cfd9ca80ad4fd308aec32aa7f95dced>`_

[TASK] Fix variable annotations (missing prepending backslashes)
-----------------------------------------------------------------------------------------

* Commit: `62d0629 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=62d0629d5ddd7e2106fae6ebe664a401a266b30b>`_

[BUGFIX] ResourceStreamWrapper returns wrong value for fseek
-----------------------------------------------------------------------------------------

Calling fseek will always return the wrong value, as fseek
return 0 on success otherwise -1.
The stream_wrapper expects a boolean value. So 0 will be
evaluated to false and -1 will be evaluated to true

* Fixes: `#34608 <http://forge.typo3.org/issues/34608>`_
* Commit: `dd761bb <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=dd761bb014e45eda471a24b209aaf56c0bf279dd>`_

[BUGFIX] wrong variable name inside rename function
-----------------------------------------------------------------------------------------

Use the propper variable name to create the stream wrapper.

* Fixes: `#34547 <http://forge.typo3.org/issues/34547>`_
* Commit: `fe76887 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fe76887f75aa80b82be3104ef1f51e065dd774f0>`_

[BUGFIX] Fixes getPasswordHashingStrategyAndIdentifier() return value
-----------------------------------------------------------------------------------------

getPasswordHashingStrategyAndIdentifier() is supposed to return an
array, but in case a strategy identifier has been requested already,
an object will be returned and break the calling code.

This change fixes that.

* Fixes: `#33645 <http://forge.typo3.org/issues/33645>`_
* Commit: `999b950 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=999b95082c1b5695f698a7f640e9eeaec51d9231>`_

[BUGFIX] NotFoundView sets 404 status
-----------------------------------------------------------------------------------------

The default NotFoundView, which renders a 404 template,
sets now also the HTTP status to 404.

* Resolves: `#34407 <http://forge.typo3.org/issues/34407>`_
* Commit: `ca5b3b9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ca5b3b9a535ff29a4e34c70bbeb68612d135b0f1>`_

[TASK] Add utility function to retrieve class names for objects
-----------------------------------------------------------------------------------------

* Resolves: `#34426 <http://forge.typo3.org/issues/34426>`_
* Commit: `5938c22 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5938c224ec764b7d9d878077006d5fe84224994c>`_

[TASK] Remove collection validation from Lazy collections
-----------------------------------------------------------------------------------------

The change to validate collections introduced unwanted behavior
by validating lazy annotated and not yet initialized collections.
This basically disables lazy loading and introduces a major memory
problem.

* Related: `#34154 <http://forge.typo3.org/issues/34154>`_
* Commit: `91a9590 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=91a9590f80b91d7067e006d77c0855863d829381>`_

[BUGFIX] Add missing $context field to ObjectManager
-----------------------------------------------------------------------------------------

The ObjectManager refers to $this->context which didn't exist.

* Fixes: `#34423 <http://forge.typo3.org/issues/34423>`_
* Commit: `74838ac <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=74838ac1f5e96f097aac0addaad89940c10b766f>`_

[BUGFIX] isAuthenticated should work in authentication request
-----------------------------------------------------------------------------------------

AuthenticationManager::isAuthenticated now checks for resumable
and new sessions before returning FALSE, so it works also in the
request that triggers the authentication.

* Fixes: `#33311 <http://forge.typo3.org/issues/33311>`_
* Commit: `08b70b8 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=08b70b827705d1c1001a2bf92ca6cb0d423f13d0>`_

[!!!][BUGFIX] (Security): Remove default authentication provider
-----------------------------------------------------------------------------------------

* Fixes: `#34399 <http://forge.typo3.org/issues/34399>`_
* Related to: #34398
* Commit: `3f28855 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3f288553a845c904596dd51454cbc90a3e89e06d>`_

[TASK] Add abstract classes for entrypoint, provider & token in security authentication
-----------------------------------------------------------------------------------------

* Resolves: `#34304 <http://forge.typo3.org/issues/34304>`_
* Commit: `2a7a67f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2a7a67fca12db09aa970549f36b34a50446d4a26>`_

[BUGFIX] Fixes missing function visibility declarations
-----------------------------------------------------------------------------------------

Some methods were missing their visibility declarations, this
change adds them.

* Fixes: `#33460 <http://forge.typo3.org/issues/33460>`_
* Commit: `95e0ca4 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=95e0ca4941f447f898f84298e529a78c44976dc3>`_

[TASK] Fix doc comments
-----------------------------------------------------------------------------------------

Fixes doc comments issues, like missing or wrong @param
annotations. Removes @author annotations.

* Commit: `9c9decd <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9c9decda5d832d80ef1f4bbda319d6ae8fee32c9>`_

[BUGFIX] Now filters correctly for '__destruct' in pointcut filter
-----------------------------------------------------------------------------------------

The filter for proxyable methods in SessionObjectMethodsPointcutFilter skips
the method '__desctruct' instead of '__destruct'

* Fixes: `#34293 <http://forge.typo3.org/issues/34293>`_
* Commit: `5c5934c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5c5934c38c177d7c8ffb0235177c15001e79dec5>`_

[BUGFIX] Keep class doc comments when building proxies
-----------------------------------------------------------------------------------------

Currently the doc comment of a class is replaced with
"Autogenerated Proxy Class" when the proxy class is generated.
This change fixes this and keeps the original doc comment.

That is particulary useful if you rely on the original comment
when creating automatic class documentations.

* Fixes: `#34110 <http://forge.typo3.org/issues/34110>`_
* Commit: `899eb3f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=899eb3f37229244f2938f84d52c655b80c91d759>`_

[BUGFIX] Makes translateById() work if no arguments need to be replaced
-----------------------------------------------------------------------------------------

If translateById() is able to find a translation but is not given
any arguments to embed in the output, NULL is returned without this
change.

* Fixes: `#34171 <http://forge.typo3.org/issues/34171>`_
* Commit: `2b0b5b9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2b0b5b96657f731bcdef8ecd7ccbcf3edd4cc5de>`_

[BUGFIX] Fixes wrong locale in XLIFF models
-----------------------------------------------------------------------------------------

If a translation is requested but no (exact) match is found,
a different locale may take effect (e.g. en instead of en_UK).

The XLIFF model created will refer to the en XLIFF file, but
claim it's locale is en_UK. This leads to further problems
with translations (like missing labels if no target elements
are present in XLIFF files).

This change fixes that…

* Fixes: `#34170 <http://forge.typo3.org/issues/34170>`_
* Commit: `b24339c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b24339c953375fc738fca7ad364af78c558186b2>`_

[FEATURE] Adds fallback rules for locale resolution
-----------------------------------------------------------------------------------------

Allows to set a fallback order for locale resolving. If not set,
the implicit inheritance of locales will be used. That is, if a
locale of en_UK is requested, matches will be searched for in en_UK
and en before trying the default locale configured in FLOW3.

If FLOW3 is given an order of [dk, za, fr_CA] a request for en_UK will
be looked up in en_UK, en, dk, za, fr_CA, fr before trying the default
locale.

If strict rule adherence is requested, the above example would instead look
in en_UK, dk, za, fr_CA before trying the default locale. In other words,
the implicit fallback is not applied to the locales in the fallback rule.

* Resolves: `#34172 <http://forge.typo3.org/issues/34172>`_
* Commit: `9ccbdb0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9ccbdb00a87a21796f28212c480a35112d014196>`_

[!!!][FEATURE] Adds i18n configuration holder
-----------------------------------------------------------------------------------------

To control the behavior of the i18n component a way to
configure the "current" locale, fallback rules for resolving
of translations and possible more is needed.

This change adds a Configuration object to the i18n code
which encapsulates the configurable parts.

For early adopters this change means the calls to
getDefaultLocale() and getCurrentLocale() on I18n\\Service
need to be routed to Service->getConfiguration()->…
instead.

* Resolves: `#34169 <http://forge.typo3.org/issues/34169>`_
* Commit: `7323b90 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7323b900fb1c96e14f36e2cc7b67b064dc01d912>`_

[FEATURE] Makes quantity optional in translation methods
-----------------------------------------------------------------------------------------

When using plural forms, the quantity to be used for finding
the correct plural form had to be given explicitly. This was
cumbersome when using a single numeric argument, as it meant
to pass the same value twice.

With this change the quantity is determined automatically if
a single numeric argument is given to translateById() or
translateByOriginalLabel() in Translator.

Also fixes a few I18n unit tests along the way.

* Resolves: `#33959 <http://forge.typo3.org/issues/33959>`_
* Commit: `e7141cb <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e7141cb693168c2785c0b7e075ead8c73b96194a>`_

[FEATURE] Shorthand syntax for custom validators
-----------------------------------------------------------------------------------------

This change allows the Validate annotation for properties to
be given a value like "Mypkg:My". This is equivalent to using
"Mypkg\\Validation\\Validator\\MyValidator" - just shorter.

Thanks to Martin Kutschker for reporting and inspiring patch.

* Resolves: `#33862 <http://forge.typo3.org/issues/33862>`_
* Commit: `8fca8ee <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8fca8ee3dad4669fca46f161ec11b4777f5700c2>`_

[BUGFIX] (Reflection): ObjectAccess::setProperty must work with numeric indexes
-----------------------------------------------------------------------------------------

When trying to set a value to an ArrayAccess object with a numeric index, the
ObjectAccess::setProperty() method throws an exception because $propertyName
must be a string.

However, we should allow integers there as well.

* Resolves: `#33698 <http://forge.typo3.org/issues/33698>`_
* Commit: `d473ee2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d473ee2f0e9409959b594d1198bd4d225d8b367c>`_

[BUGFIX] Fixes handling of numeric annotation parameters
-----------------------------------------------------------------------------------------

Annotations like @FooBar(amount=2) lost their parameter value
in renderAnnotation(). This change fixes that.

* Fixes: `#33932 <http://forge.typo3.org/issues/33932>`_
* Commit: `895d48b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=895d48b95b40e340d5b5f81aee2df72a47abd545>`_

[TASK] Implement best practices in XLIFF files
-----------------------------------------------------------------------------------------

Adds some "required" attributes to the XLIFF files.

* Resolves: `#33975 <http://forge.typo3.org/issues/33975>`_
* Commit: `ca35b1a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ca35b1a8e869a22b99414fe56dc49348747f20f8>`_

[BUGFIX] Fixes duplicate error id in StringValidator
-----------------------------------------------------------------------------------------

StringValidator uses the error id 1238108068, but that is
used in StringLengthValidator. This change makes the former
use 1238108070 instead.

* Fixes: `#33973 <http://forge.typo3.org/issues/33973>`_
* Commit: `30d2c4c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=30d2c4cc816e7a3e27b639cbb5f8b6d9c8d128c9>`_

[FEATURE] Add translations for validation error messages
-----------------------------------------------------------------------------------------

* Resolves: `#33970 <http://forge.typo3.org/issues/33970>`_
* Commit: `b484e6a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b484e6a4f3725091765cdf9c898b81c03245d3d9>`_

[TASK] Add better handling of XML parse errors to I18n
-----------------------------------------------------------------------------------------

When parsing XML files the exception thrown in case of errors did not
differentiate between filesystem and parsing errors, now it does.

In case of XML errors, a detailed list of errors reported by
libxml are added to the thrown exception.

* Resolves: `#33836 <http://forge.typo3.org/issues/33836>`_
* Commit: `987a264 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=987a264f0322b1125ed41fcc26dd41b494b6b2ce>`_

[FEATURE] Make tag ignores configurable
-----------------------------------------------------------------------------------------

Makes the list of ignored tags configurable. This can be used to add
tags to the list if needed by your package by simply setting
TYPO3.Flow.reflection.ignoredTags to an array of tag names in your
Settings.yaml.

* Resolves: `#33142 <http://forge.typo3.org/issues/33142>`_
* Commit: `cebbf8e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=cebbf8e2851b28ffaf32abafbb675e47af6ae783>`_

[!!!][BUGFIX] Validators should allow empty values
-----------------------------------------------------------------------------------------

Currently most of the provided validators do not accept empty
values.
This makes it impossible to have an optional email address
property for example (without using the disjunction validator).

This change adjusts all Validators to consider empty values
(NULL or an empty string) valid.

This is a breaking change if you expected the previous behavior.
In order to make a property required you now need to add the
NotEmptyValidator explicitly!

E.g. previously::

 /**
  * @Flow\\Validate(type="EmailAddress")
  */
 protected $propertyToValidate;

Now::

 /**
  * @Flow\\Validate(type="NotEmpty")
  * @Flow\\Validate(type="EmailAddress")
  */
 protected $propertyToValidate;

* Fixes: `#33300 <http://forge.typo3.org/issues/33300>`_
* Commit: `9b62795 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9b627954f289d793b808db2ac19edc6a04c25426>`_

[TASK] Remove CGL DocBook XML files from package
-----------------------------------------------------------------------------------------

They have been transformed to reST long ago…

* Related: `#29318 <http://forge.typo3.org/issues/29318>`_
* Commit: `81a8da3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=81a8da3eea0a0084513396217a1c40010f63357a>`_

[BUGFIX] Fix default lifetime use in cache backend
-----------------------------------------------------------------------------------------

This fixes the FileBackend so it actually uses the default lifetime
in cases it should do that.

ArrayAccess detection for configuration in AbstractBackend is fixed
along the way and the RedisBackend code cleaned up a little.

* Fixes: `#33562 <http://forge.typo3.org/issues/33562>`_
* Commit: `a0ee47d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a0ee47d189f0a2141b6c8de2813d984c69a44eba>`_

[BUGFIX] Makes account expiry work as expected
-----------------------------------------------------------------------------------------

The expiry if an account was checked in a way that left an account
enabled until after it's last day. Now it will expire exactly when
it should.

* Fixes: `#33707 <http://forge.typo3.org/issues/33707>`_
* Commit: `b1cbf2b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b1cbf2ba554993a6236099f706d352bf3f78fb87>`_

[BUGFIX] Fixes wrong \\TYPO3\\FLOW3\\I18n\\Xml\\* namespace use
-----------------------------------------------------------------------------------------

The mentioned namespace doesn't exist and the resulting error
e.g. breaks the Admin package.

Along the way some doc comments are fixed.

* Fixes: `#33720 <http://forge.typo3.org/issues/33720>`_
* Commit: `5572609 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5572609a0e9a5087a1185e3c0b30227c4618345d>`_

[TASK] Throw exception when private properties have @Inject
-----------------------------------------------------------------------------------------

Properties annotated for injection do obviously have to
be at least protected in order for the proxy class
having access to it.
This patch makes an exception thrown when such private
properties occur.

* Resolves: `#33589 <http://forge.typo3.org/issues/33589>`_
* Commit: `837fc98 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=837fc9800a6530274df2b2d575afdc20c24280f0>`_

[BUGFIX] Fixed logging of incorrect doc comments in reflection
-----------------------------------------------------------------------------------------

If one enables logIncorrectDocCommentHints nothing happens, as the
settings are not available in the ReflectionService. This change
fixes that.

* Fixes: `#33601 <http://forge.typo3.org/issues/33601>`_
* Commit: `9d06eed <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9d06eed31b3980193470f87bb2a91c48f3750ffe>`_

[TASK] Adjust test fixture to Doctrine.ORM 2.2.0
-----------------------------------------------------------------------------------------

The proxy interface in Common is now used, the fixture needs to
be adjusted.

* Related: `#32608 <http://forge.typo3.org/issues/32608>`_
* Commit: `c2c171d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c2c171d440e60457cbefc8e11ec83bc41b4fc7f9>`_

[TASK] Clean up i18n settings
-----------------------------------------------------------------------------------------

This renames the locale settings section to i18n and changes the
defaultLocaleIdentifier setting to be defaultLocale.

* Resolves: `#32736 <http://forge.typo3.org/issues/32736>`_
* Resolves: `#32733 <http://forge.typo3.org/issues/32733>`_

* Commit: `4542cd6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4542cd6ee47ba36892f098a94b070f570c974ba4>`_

[BUGFIX] CLDR locale chaining doesn't work correctly
-----------------------------------------------------------------------------------------

When collecting CLDR resource files, the required chaining
is corrected (i.e. de_DE.xml also requires de.xml to be
included).

* Fixes: `#33148 <http://forge.typo3.org/issues/33148>`_
* Commit: `b2e4f3e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b2e4f3e94039135614bf8f3976da4f833cfaae42>`_

[FEATURE] Add validators for objects inside of collections
-----------------------------------------------------------------------------------------

Model validation stops as soon as a property is of type collection. What one
would expect here is, that all objects inside this collection get validated as
well.

* Resolves: `#32700 <http://forge.typo3.org/issues/32700>`_
* Commit: `dd6f600 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=dd6f600dca46366e3109a47488bc6c3b607105d9>`_

[FEATURE] Add currentLocale to I18n translation service
-----------------------------------------------------------------------------------------

Also add localeIdentifier validator.

* Related: `#33188 <http://forge.typo3.org/issues/33188>`_
* Commit: `721f8e7 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=721f8e71c72dfe473a8c2611744db09fde6093d3>`_

[FEATURE] Add Getter for validator options and child validators
-----------------------------------------------------------------------------------------

Validation options are set through the constructor but there is
currently no way of accessing the options afterwards.
This change introduces the respective getters.

* Resolves: `#33226 <http://forge.typo3.org/issues/33226>`_
* Commit: `0acd993 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0acd9937f4cd9b638c436eeea144f05e6038dbdf>`_

[TASK] Replace bool by boolean in docblocks
-----------------------------------------------------------------------------------------

A CGL conformity fix. Just because I noticed. :)

* Resolves: `#33398 <http://forge.typo3.org/issues/33398>`_
* Commit: `a655ebc <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a655ebced9c650a3d3ce1f754187616ebd24c833>`_

[TASK] Add early returns to Security\\Context::hasRole
-----------------------------------------------------------------------------------------

Change the behavior of hasRole so it has an early return
when the authenticationManager is not yet authenticated
(and thus no role can be assigned to the authenticated user).

Also an earlier return on the Everyone role.

* Fixes: `#32841 <http://forge.typo3.org/issues/32841>`_
* Commit: `00d2506 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=00d25062713bf4ae1d16e98a48b61a8e2f36568c>`_

[BUGFIX] Hint at possible exception cause
-----------------------------------------------------------------------------------------

When using @MappedSuperclass without @Entity an exception is thrown.
Since FLOW3 needs the @Entity annotation even with a mapped superclass,
this change adds a hint to the exception message.

* Fixes: `#27285 <http://forge.typo3.org/issues/27285>`_
* Commit: `ad89e84 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ad89e84eecd5170b0ce87ac340c1c564acc67983>`_

[TASK] Some cleanup around authentication
-----------------------------------------------------------------------------------------

Does some coding style cleanup, amends a docblock and makes the
authenticateAction() use $this->errorMethodName() instead of hardcoding
$this->errorAction()

* Resolves: `#33177 <http://forge.typo3.org/issues/33177>`_
* Commit: `d7a9af6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d7a9af6bfb77d1b9bd14b9b967600fbdab4e1460>`_

[BUGFIX] Make QueryResult::offsetGet() behavior consistent
-----------------------------------------------------------------------------------------

offsetGet() on QueryResult for Doctrine persistence now checks if
the offset exists and returns NULL if not, instead of running into
an error.

* Fixes: `#33106 <http://forge.typo3.org/issues/33106>`_
* Commit: `9c421d6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9c421d6401df8d0e45ede739041507d38f9d2fe4>`_

[FEATURE] Create .Shortcuts directory if it is missing
-----------------------------------------------------------------------------------------

The .Shortcuts directory will now be built if it is missing. That allows
developers to just trash a broken .Shortcuts directory if they messed
with package directories manually.

* Resolves: `#33112 <http://forge.typo3.org/issues/33112>`_
* Commit: `8dd2ea5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8dd2ea5352ca1fafb38fbe1d2b6b26b6f432e985>`_

[TASK] Regard return type of preg_match
-----------------------------------------------------------------------------------------

As of PHP-documentation, preg_match() may return int 0 or 1
or boolean FALSE. This patch takes care of this behaviour.

* Resolves: `#33097 <http://forge.typo3.org/issues/33097>`_
* Commit: `b03e9ea <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b03e9eaed2f8ba2a7f944dd09e4c54ee800bc07e>`_

[FEATURE] Add support for not mapped properties
-----------------------------------------------------------------------------------------

The PropertyMappingConfiguration now has a doNotMapProperty() method that
tells the mapper to ignore the data / property

* Resolves: `#31021 <http://forge.typo3.org/issues/31021>`_
* Commit: `08414d6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=08414d613f58923de25a0befe1be10cc17c95aef>`_

[BUGFIX] Make updating a Doctrine Lazy Loading Proxy work
-----------------------------------------------------------------------------------------

When a Doctrine lazy loading proxy is persisted again, a fatal error is thrown
because the Reflection Service cannot handle Doctrine Proxies.

We work around this issue by asking the Doctrine Entity Manager to resolve the
class name.

A Functional Test reproducing the issue is included.

* Fixes: `#32830 <http://forge.typo3.org/issues/32830>`_
* Commit: `2fdc342 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2fdc342d181d816f6a6ee41b7b30500f3a8741d7>`_

[TASK] Adjust YAML handling and files to updated parser
-----------------------------------------------------------------------------------------

The fix for #31289 requires some adjustments to FLOW3 and the
existing YAML files.

Additionally adjust boolean and NULL values to all uppercase
according to CGLs.

* Related: `#31289 <http://forge.typo3.org/issues/31289>`_
* Commit: `38ec74e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=38ec74e1dcf595405a06d23e4e3965c4c5d501f8>`_

[TASK] Adjust to updated Doctrine libraries
-----------------------------------------------------------------------------------------

This adjusts the FLOW3 annotation driver and the ClassMetadata
implementation to the changes in Doctrine 2.

* Related: `#32608 <http://forge.typo3.org/issues/32608>`_
* Commit: `e83da5c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e83da5c28260fc5922f12b10de51d5a1748e007e>`_

[BUGFIX] (Utility): ArrayMergeRecursiveOverrule does not override arrays with simple types
------------------------------------------------------------------------------------------

If the first element contains an array, and the second element contains a simple
type at a certain position, the ORIGINAL array is used. That bug prevents to reset
array in configuration for example.

A full example is given in issue #32984.

I also added first unit tests for the ArrayMergeRecursiveOverrule function.

* Fixes: `#32984 <http://forge.typo3.org/issues/32984>`_
* Commit: `b7e76ff <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b7e76ffd7eed0fb6648d07ec0d5cf109f3ff8568>`_

[FEATURE] DateTimeRange Validator
-----------------------------------------------------------------------------------------

This offers validation for Date/Time ranges, e.g. if a
given date is ahead or prior to a reference date or
between to boundaries.

* Resolves: `#32619 <http://forge.typo3.org/issues/32619>`_
* Commit: `8e6c2ba <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8e6c2baa8ad8eb3be96ce8d19b9edd06c0a0b1c5>`_

[FEATURE] (CLI): Add configuration:show command for debugging
-----------------------------------------------------------------------------------------

Adds the cli command "configuration:show" with the options --type and --path.
The patch adds the method getAvailableConfigurationTypes to the configurationManager which is used by the cli-command.

* Resolves: `#32470 <http://forge.typo3.org/issues/32470>`_
* Commit: `ac7f4bd <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ac7f4bd9decc5f2781eaf76f3ce86b9153cc5e23>`_

[BUGFIX] Fix unit tests with PHPUnit 3.6.5 in strict mode
-----------------------------------------------------------------------------------------

* Fixes: `#32738 <http://forge.typo3.org/issues/32738>`_
* Commit: `38270b0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=38270b0d017279ee6d03441e00f740b18160a709>`_

[TASK] Move Translations folder up one level
-----------------------------------------------------------------------------------------

This moves the folder for translations into Resources/Private and
renames the remaining Resources/Private/Locale folder to I18n along
the way.

* Resolves: `#32735 <http://forge.typo3.org/issues/32735>`_
* Commit: `6da0e03 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=6da0e03701a719b3830ef3702f511fe96284a26f>`_

[BUGFIX] Fix UriBuilder with subrequests
-----------------------------------------------------------------------------------------

This change fixes the argument handling of the UriBuilder for nested
subrequests. The namespaces of all parent requests get added
recursively.

* Fixes: `#30536 <http://forge.typo3.org/issues/30536>`_
* Commit: `ef54418 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ef5441837625f4d85ada118b60b2448f8cfa4145>`_

[TASK] Enhance help texts and parameter names for Doctrine commands
-----------------------------------------------------------------------------------------

* Resolves: `#32729 <http://forge.typo3.org/issues/32729>`_
* Commit: `68d7cf6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=68d7cf650364b32f17f0af7178147aa5ed1d4ac0>`_

[FEATURE] Command to mark all migrations as executed
-----------------------------------------------------------------------------------------

It is now possible to mark all migrations as (not) executed with
 ./flow3 doctrine:migrationversion all --delete
 ./flow3 doctrine:migrationversion all --add

* Resolves: `#32631 <http://forge.typo3.org/issues/32631>`_
* Commit: `f53be7a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f53be7acc8707652a6d76a8dc302601ffd35d15c>`_

[BUGFIX] Unit tests remove their temporary files
-----------------------------------------------------------------------------------------

Some unit tests create many temporary files outside vfs://
that are now removed after running the test.

* Fixes: `#32723 <http://forge.typo3.org/issues/32723>`_
* Commit: `78a7482 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=78a7482ac2927fc3898e25bf6edf011da4255240>`_

[BUGFIX] Doctrine@PostLoad calls DI and AOP initialization explicitly.
-----------------------------------------------------------------------------------------

When a Doctrine lazy loading proxy for an object is
created for some specific purpose (e.g. when initializing
session objects relating to an entity) but filled afterwards
"on the fly" if this object is part of a wide range "findBy"
call through some query, Doctrine initializes the lazy
loading proxy but does not call __wakeup and therefore not initialize AOP and DI.
We work around this issue, by initializing those objects
with a Doctrine PostLoad hook explicitly.

* Resolves: `#30467 <http://forge.typo3.org/issues/30467>`_
* Commit: `3b70495 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3b704952dfd3b26967d93caa621a8d9687a71185>`_

[FEATURE] Support multiple password hashing strategies
-----------------------------------------------------------------------------------------

Add configurable password hashing strategies to the HashService.

* Resolves: `#31679 <http://forge.typo3.org/issues/31679>`_
* Commit: `c3c9dfc <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c3c9dfcc317604077c5a7c313f8ca9f3dccf7681>`_

[BUGFIX] Make emptyDirectoryRecursively() ignore . and ..
-----------------------------------------------------------------------------------------

The check for this breaks when the iterator returns . and .., they are
then handled like files, which cannot work.

* Fixes: `#32725 <http://forge.typo3.org/issues/32725>`_
* Commit: `71ee867 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=71ee8671a3ae9857e450b91d625de0af1cb30214>`_

[FEATURE] Add createResourceFromContent to ResourceManager
-----------------------------------------------------------------------------------------

This enables the ResourceManager to put files into the persistent
resource storage out of a given content string.

* Resolves: `#29572 <http://forge.typo3.org/issues/29572>`_
* Commit: `7f3cb07 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=7f3cb076e07ba30b774a1b5e18dd59e9822b0401>`_

[BUGFIX] Functional tests die with fatal error
-----------------------------------------------------------------------------------------

The breaking tests lacked parent::setUp() in their own setup method.

* Fixes: `#32724 <http://forge.typo3.org/issues/32724>`_
* Commit: `5e46fbe <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=5e46fbe5e10515f720327b550d6f0fca77d9be8d>`_

[BUGFIX] Wire file monitor to doctrine proxy invalidation
-----------------------------------------------------------------------------------------

* Fixes: `#32719 <http://forge.typo3.org/issues/32719>`_
* Commit: `e64b845 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=e64b8450224989d5515dfcba014e11ecf238e331>`_

[BUGFIX] The declaring class for an advice is the interface for introductions
-----------------------------------------------------------------------------------------

* Fixes: `#32691 <http://forge.typo3.org/issues/32691>`_
* Commit: `40a6844 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=40a68449476d258448a093a9ae087f3979b29194>`_

[BUGFIX] Files::is_link() returns TRUE for vfs paths on Windows
-----------------------------------------------------------------------------------------

This adds a check to \\TYPO3\\FLOW3\\Utility\\Files::is_link() that
prevents the method from returning TRUE for virtual paths
(e.g. streamwrapper like "vfs://").

* Fixes: `#32697 <http://forge.typo3.org/issues/32697>`_
* Commit: `fdd7884 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fdd78845379a1e9b76a1519e4e363a01edbcba4a>`_

[BUGFIX] Update package states only when needed
-----------------------------------------------------------------------------------------

While scanning of available packages will still happen on every request
in non-production contexts, the package state will only be saved if
there has actually been a change.

* Resolves: `#32552 <http://forge.typo3.org/issues/32552>`_
* Commit: `8634aae <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8634aaec568b3e4f58d24b5c2f7137260b9e682f>`_

[BUGFIX] Change code in emptyDirectoryRecursively()
-----------------------------------------------------------------------------------------

This change reverts Iadcfe9b6d143e1fa856a3ce93f51888a18bb5e35 which
reintruduced the bug explained in #32550. It fixes the issue at hand
by simplifying the code a bit.

* Fixes: `#32550 <http://forge.typo3.org/issues/32550>`_
* Commit: `f7cc65f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f7cc65f5726f9eae5431a5bf452c2cf74c280527>`_

[BUGFIX] Logout doesn't work anymore
-----------------------------------------------------------------------------------------

Since eab9bf9 calling AuthenticationProviderManager::logout()
without initializing the Security Context first, returns without
actually destroying the authentication cookie.
This change fixes this by introducing a new convenience method
isAuthenticated() to the AuthentcationManagerInterface allowing the
AuthenticationProviderManager to check whether a user is
authenticated before trying to fetch the session.

* Fixes: `#32285 <http://forge.typo3.org/issues/32285>`_
* Commit: `9cab55e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9cab55e0fdf701fe0bdf857a58c7f9e79d9554d6>`_

[BUGFIX] (Command): Improve explanations of doctrine:migrationgenerate
-----------------------------------------------------------------------------------------

Instead of::

    Generated new migration class to ...

the command output now reads like::

    Generated new migration class!

    Next Steps:
    - Move ... to YourPackage/Migrations/Mysql/
    - Review and adjust the generated migration.
    - (optional) execute the migration using ./flow3
      doctrine:migrate

This is much more understandable, and less error-prone, especially to new users.

* Fixes: `#32663 <http://forge.typo3.org/issues/32663>`_
* Commit: `f0d3773 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f0d37738c2f0ddfbb709a54cae8633ba19a6ea0a>`_

[BUGFIX] Correct spelling error in account repository
-----------------------------------------------------------------------------------------

* Commit: `577e158 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=577e158025ec1d16f77809c50082a60b59f3af16>`_

[FEATURE] Add doctrine metadata dumping feature
-----------------------------------------------------------------------------------------

This is purely a debugging aid, neither smart nor pretty: If you
give the --dump-mapping-data option to docrine:entitystatus the
collected mapping data will be dumped to the console.

* Commit: `2f83c8e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2f83c8e18b34f2cf756b0c2be16952fe1a4f23d0>`_

[FEATURE] Optimized Reflection Service
-----------------------------------------------------------------------------------------

A new Reflection Service which specifically supports development and
production scenarios. While the development version is tailored to
flexibility and partial flushing, the production variant works with
frozen caches and loads per-class information only on demand.

Memory consumption in Production context will be notably lower and also
the overall performance is better.

This change set updates but also removes several unit tests. Those
removed should be replaced by a more meaningful and better maintainable
functional test.

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

* Commit: `97af40e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=97af40ea290fd29a875f67bf641399d32b75d0b0>`_

[BUGFIX] Only flush() the Doctrine ORM if it is open
-----------------------------------------------------------------------------------------

In some cases it can happen, that the EntityManager is closed at the end
of a request This can be a valid situation (see #30933 for more).

This change makes persistAll() check if the EntityManager is open
before calling flush() on it.

* Fixes: `#30934 <http://forge.typo3.org/issues/30934>`_
* Commit: `f8dd931 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f8dd931115eaa67d707171ed34d8f8fb5bc845ce>`_

[BUGFIX] Reorder code in emptyDirectoryRecursively()
-----------------------------------------------------------------------------------------

The change in Iad2e358ec8a94fe91dd27eda5737f075f277f2dc did break one
test, after all. This fixes it for me, I hope it works on Windows.

* Related: `#32550 <http://forge.typo3.org/issues/32550>`_
* Commit: `a58728d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a58728dd33fc90d4afa79ebbbcabf85ec793f97b>`_

[BUGFIX] Files::emptyDirectoryRecursively affects targets of symlinks
-----------------------------------------------------------------------------------------

\\TYPO3\\FLOW3\\Utility\\Files::removeDirectoryRecursively() fails to
properly unlink directory symlinks on Windows.

Thus \\TYPO3\\FLOW3\\Utility\\Files::emptyDirectoryRecursively()
iterates through the target files of a symlinked folder and
removes them!

This change fixes this by introducing a custom unlink() function
that can remove a symlink regardless of it's type (file/directory).

* Fixes: `#32550 <http://forge.typo3.org/issues/32550>`_
* Commit: `0a9a47b <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0a9a47bb85fb874be64728f3a47b91896a73ca4a>`_

[BUGFIX] "Wrong" EOL characters break parsing of doc comments
-----------------------------------------------------------------------------------------

When \\r\\n was used as EOL instead of just \\n the parsed doc comments
would retain the \\r which would cause confusing exceptions in some
cases later on.

* Fixes: `#31363 <http://forge.typo3.org/issues/31363>`_
* Related: `#32466 <http://forge.typo3.org/issues/32466>`_
* Related: `#31087 <http://forge.typo3.org/issues/31087>`_
* Commit: `40af60c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=40af60c9d7013757b4f980daf31b038c494e6f6a>`_

[BUGFIX] getObjectByIdentifier() does not pass $objectType to backend
-----------------------------------------------------------------------------------------

The parameter is optional and historically unused in Generic
persistence, but still it should be passed along.

* Fixes: `#32370 <http://forge.typo3.org/issues/32370>`_
* Commit: `ae72b5c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ae72b5cb370889b894e99a9282e9d48aac6202eb>`_

[TASK] Removed unused configuration types "Package", "PackageStates"
-----------------------------------------------------------------------------------------

The patch removes unused parts from the configurationManager:

- Removed unused configuration types "Package" and "PackageStates"
- Removed methods "setConfiguration" and "saveConfiguration". The
  methods were only intended to work with packageStates which is unused.
- Adjusted unit tests of configurationManager

* Resolves: `#32591 <http://forge.typo3.org/issues/32591>`_
* Commit: `d9f9b19 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d9f9b194b2e20318ffc8721ee9b228b9be48728b>`_

[TASK] Make FLOW3 package protected
-----------------------------------------------------------------------------------------

* Related: `#32599 <http://forge.typo3.org/issues/32599>`_
* Commit: `150b476 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=150b476a15df28a92b9d287ce414671350fbb167>`_

[FEATURE] Making property mapping exception more verbose
-----------------------------------------------------------------------------------------

When an exception occurs during property mapping it's hard for the
developer to track what a specific type the intended value at
runtime is.

This change adds the object's class name to the exception, if it is
an object; otherwise the scalar type name is added.

* Resolves: `#32587 <http://forge.typo3.org/issues/32587>`_
* Commit: `0073e18 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0073e184580db3b180ae60e12748179907fcf292>`_

[BUGFIX] Fix unit tests failures with new class loader
-----------------------------------------------------------------------------------------

Two unit tests failed with the new class loader[1]. One because there
was a check for ignored classes, but it came too late. The other because
for the shortcut link creation the package path is now needed right
after activation of a package.

[1] https://review.typo3.org/7164

* Fixes: `#32519 <http://forge.typo3.org/issues/32519>`_
* Commit: `a90afba <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a90afba2352254259f0c861ea6934d01527113fa>`_

[BUGFIX] Fix functional tests with new class loader
-----------------------------------------------------------------------------------------

This change moves the FunctionalTestRequestHandler to the
Tests\\Functional namespace and registers functional test classes
again.

Needs https://review.typo3.org/7258

Related to https://review.typo3.org/7164

* Commit: `7771616 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=77716167834488c638ce8a817c041676cb8b03d8>`_

[TASK] Remove execute bit on some source files
-----------------------------------------------------------------------------------------

* Resolves: `#32507 <http://forge.typo3.org/issues/32507>`_
* Commit: `f7848bf <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f7848bf6159911d4b17f672827ce5b1cb8898fe3>`_

[TASK] Improved Class Loader
-----------------------------------------------------------------------------------------

This patch introduces an improved loading strategy based on symbolic
links leading directly to the Classes directory of each package.
The symlinks reside in a ".Shortcuts" directory below the general
Packages folder and are created whenever the PackageStates.php file
is saved by the Package Manager.

This patch also contains minor speed improvements in the Proxy Compiler
and the Object Manager (getCaseSensitiveObjectName).

* Commit: `70c98b6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=70c98b680befcbbd5f493479cd4a5537324fcad0>`_

[BUGFIX] ACL file permissions do not work correctly
-----------------------------------------------------------------------------------------

When setting file permissions the setting of ACL would succeed but
the set permissions did not work as expected. This changes fixes that.

In addition it makes the calls in a chain so that the check for the
return value of the chmod commands is more robust. The directories
that are created are now always owned by the command line user.

* Fixes: `#32499 <http://forge.typo3.org/issues/32499>`_
* Commit: `0d40353 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0d40353066e08a231388cd6127a0d7859809dbbe>`_

[TASK] Clean up emptyDirectoryRecursively() and hex2bin()
-----------------------------------------------------------------------------------------

* Resolves: `#32503 <http://forge.typo3.org/issues/32503>`_
* Commit: `c698d90 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c698d90e46525616db9739567d3bc5bb9d76ec39>`_

[BUGFIX] Remove MockWebRequestHandler, use FunctionalTestRequestHandler
-----------------------------------------------------------------------------------------

* Fixes: `#32424 <http://forge.typo3.org/issues/32424>`_
* Commit: `19f6c48 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=19f6c486fe88260fa78c27a75e5d4fddd95ca46a>`_

[BUGFIX] Fix check for stripped comments
-----------------------------------------------------------------------------------------

The bootstrap checks for the presence of doc comments, to avoid
problems with some bytecode caches that strip comments.

That check did not work correctly (FALSE is returned but the check
expects an empty string). In case an error is seen, the exception
cannot be thrown as well (no classloader available at that point).
That exception issue has been been fixed for another check as well.

On top of this the check for magic_quotes_gpc has been adjusted a
tiny bit.

* Fixes: `#32049 <http://forge.typo3.org/issues/32049>`_
* Commit: `acf8f34 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=acf8f34c16ff294ef2992fbecc0fa604c120b2e3>`_

[BUGFIX] Trigger allObjectsPersisted after every functional test
-----------------------------------------------------------------------------------------

The tearDown() method of the base functional test case clears the
persistence manager's state so it is ready for the next test, avoiding
side effects.

However, certain repositories (such as the TYPO3CR NodeRepository) rely
on the signal "allObjectsPersisted" which triggers their internal
cleanup function. If this signal is not, sent, the next test will still
see added objects stored directly in the repository.

The solution is to call persistAll() in the tearDown() method, even if
the just executed test doesn't require it.

* Fixes: `#32346 <http://forge.typo3.org/issues/32346>`_
* Commit: `46646d8 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=46646d8153185d899626107c1b55e7db30f8fcf2>`_

[TASK] Remove echo statement in functional test request handler
-----------------------------------------------------------------------------------------

* Resolves: `#32421 <http://forge.typo3.org/issues/32421>`_
* Commit: `fc5e581 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=fc5e5819da1dd4f0b3ee7ed7de35db43a7c3be68>`_

[FEATURE] Freezable Cache Backend
-----------------------------------------------------------------------------------------

This introduces a new type of cache backends which supports freezing.
In a frozen state no modifications are allowed and thus enables the
cache implementation to optimize its tasks for speed.

The FileBackend was extended to support freezing and is now used for
the class cache in Production context. Measured on the blog example,
this change improved number of transactions per second by 29 %.

* Resolves: `#32398 <http://forge.typo3.org/issues/32398>`_
* Commit: `c94e6f1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c94e6f1747e607a3fc8e2da2cecbfc15ebf443b8>`_

[FEATURE] (MVC): Introduce some more Signals for performance measurements
-----------------------------------------------------------------------------------------

This change set introduces signals which can be used to measure the
controller and Request Builder runtime.

* Commit: `dc43c26 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=dc43c2609f2bced6d0cac4309b9a1393a0343774>`_

[FEATURE][!!!] Modular and configurable bootstrap
-----------------------------------------------------------------------------------------

This extracts all specific initialization methods from the bootstrap
into a "Scripts" class and instead of hard-wiring each initialization
step, introduces a loose, configurable coupling by means of a sequence
and steps. The responsibility for the actual boot sequence now lies at
the request handler taking care of the request.

Request handlers must now be explicitly registered in the package
class. The interface to be implemented was moved to the Core namespace.

* Resolves: `#32333 <http://forge.typo3.org/issues/32333>`_
* Commit: `ae111dd <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ae111dd0a0f15e548989d45c0186f4e4ec30bbf9>`_

[TASK] Optimized package manager and configuration manager initialization
-----------------------------------------------------------------------------------------

This patch introduces a somewhat lazier initialization for the
Configuration Manager's cache and the scanning of available packages
and loading of package state information.

NOTE: On the first hit, the modified Package Manager will introduce
a new format for the PackageStates.php. From now on the configuration
in that file also contains a version number which allows for automatic
migration of that file in the future.

* Related: `#32333 <http://forge.typo3.org/issues/32333>`_
* Commit: `a7844b0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a7844b0ddb9b301dd7ea5bed91aac417fe2015a4>`_

[TASK] Configuration Manager throws exception on permission problems
-----------------------------------------------------------------------------------------

If the compiled configuration could not be written, the configuration
manager now throws an exception instead of silently ignoring it.

* Commit: `c27a965 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c27a965a789d5b77ce89d9cd02839da8ca17f65d>`_

[FEATURE] Implement base URI setting
-----------------------------------------------------------------------------------------

This change adds a configurable base URI to FLOW3. The environment will
use the setting instead of trying to guess the base URI from the current
request if it is configured.

* Resolves: `#32084 <http://forge.typo3.org/issues/32084>`_
* Commit: `1cfb139 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=1cfb139a0dc840bfcfe78cb99966a45614fade67>`_

[FEATURE] Make target in XLIFF optional if source equals target language
-----------------------------------------------------------------------------------------

This allows for less duplication when using XLIFF as a message catalog
when the target language is the file's source language.

* Resolves: `#32329 <http://forge.typo3.org/issues/32329>`_
* Commit: `957be68 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=957be681c0e9391dce131ccd001aa3998c2e583f>`_

[TASK] Move AbstractXmlParser class up one level
-----------------------------------------------------------------------------------------

* Related: `#11034 <http://forge.typo3.org/issues/11034>`_
* Commit: `8de58fe <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8de58fef175bd2a321e5ae4c64abe47c86b44d77>`_

[TASK] Remove AbstractXmlModel from I18n
-----------------------------------------------------------------------------------------

* Resolves: `#11034 <http://forge.typo3.org/issues/11034>`_
* Commit: `acc2f9f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=acc2f9f5b88e74627bfc61ac03a4ea62d361f09c>`_

[TASK] Functional tests for i18n Translator and FormatResolver
-----------------------------------------------------------------------------------------

* Related: `#11955 <http://forge.typo3.org/issues/11955>`_
* Commit: `c804bf2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c804bf2553993f527c422125dc9cf1dca2685c84>`_

[FEATURE] Add XLIFF files with common labels for translation
-----------------------------------------------------------------------------------------

This adds XLIFF files with a few basic labels and a german translation.
This shows the principle and can be used as a base for a generic
label catalog to use in all FLOW3 applications.

* Related: `#11955 <http://forge.typo3.org/issues/11955>`_
* Commit: `3ddaf8e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3ddaf8ee513249b8f6665e301373386762399f43>`_

[BUGFIX] Make date formatting in translations work
-----------------------------------------------------------------------------------------

When using date formatting in translations the system would
break really bad.

* Fixes: `#31974 <http://forge.typo3.org/issues/31974>`_
* Commit: `ff62bbd <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ff62bbd1e2352e4e404596ea9e7f1c5bcd611860>`_

[BUGFIX] Fix handling of plural forms
-----------------------------------------------------------------------------------------

Internal handling of plurals forms was broken.

* Fixes: `#31975 <http://forge.typo3.org/issues/31975>`_
* Commit: `30081c3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=30081c31062119ea301fefe3b0a5ba56cb355efe>`_

[TASK] Clean up some smaller things in I18n
-----------------------------------------------------------------------------------------

Fixes a method name not renamed in an earlier refactoring, makes some
@return annotations fully qualified, simplifies some unit tests, ...

* Related: `#11955 <http://forge.typo3.org/issues/11955>`_
* Commit: `c40c9d3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c40c9d32db0543a2b49aa70c49393fa71ebd9670>`_

[FEATURE] Allow translation files (XLIFF) on a per package basis
-----------------------------------------------------------------------------------------

Fixes issue in which XliffTranslationProvider prefaces a hardcoded
base path of resource://FLOW3/Private/Locale/Translations before
the sourceName argument passed to getTranslationByOriginalLabel and
getTranslationById methods.

This fix modifies the translateById and translateByOriginalLabel
methods in the TYPO3\\FLOW3\\I18n\\Translator to use packageKey
as an argument. The XliffTranslationProvider will construct a
base path of "<packageName>/Private/Locale/Translations". This base
path is prepended to the value of the sourceName argument to create
the translation file resource string.

Unit tests have been adjusted as well to accommodate these changes
to the XliffTranslationProvider and Translator classes. The
TranslationProviderInterface has been adjusted as well.

* Resolves: `#14037 <http://forge.typo3.org/issues/14037>`_
* Commit: `f5afd4f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=f5afd4fc082c67072a734a0d3b1e7416050419cd>`_

[BUGFIX] Fix boolean default values in YAML config
-----------------------------------------------------------------------------------------

The previously used YAML parser accepted 'n' and 'y' as legitimate
boolean values resulting in FALSE and TRUE respectively.

The Symfony parser does not recognize these values as boolean
but expects 'no' and 'yes' instead.

* Commit: `8784c29 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8784c2984f587e34d6d917ae37c261b1d2c137a1>`_

[BUGFIX] Make validation upon persistence work again
-----------------------------------------------------------------------------------------

The validation upon persistence was dropped (more or less by accident)
when we switched to Doctrine. This change brings it back.

In addition it fixes the exception message produced in the generic
AbstractBackend when validation fails.

* Fixes: `#31502 <http://forge.typo3.org/issues/31502>`_
* Commit: `b809a39 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=b809a3951f44558eb44989008ae8bab528ca5852>`_

[TASK] Move ObjectValidationFailedException out of Generic
-----------------------------------------------------------------------------------------

The exception is not specific to generic persistence, thus it should
not be inside the Generic namespace.

* Related: `#31502 <http://forge.typo3.org/issues/31502>`_
* Commit: `c87cc00 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c87cc0079ce84e60f364e89ec33c34630b5f1643>`_

[BUGFIX] Fix unit tests failing with PHPUnit 3.6
-----------------------------------------------------------------------------------------

* Fixes: `#32015 <http://forge.typo3.org/issues/32015>`_
* Commit: `c1b8ce9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c1b8ce9d222ccbfa6eed7c31f2342165714dfda1>`_

[FEATURE] Add routing:show, routing:route and routing:resolve commands
-----------------------------------------------------------------------------------------

Adds 3 CLI commands:
- routing:show show informations for a single route
- routing:getPath show the generated route-path for a given package, controller and action
- routing:routePath take a route-path and show package, controller and action

The patch alters the routing:list command to show the index number for the routes.

* Resolves: `#31909 <http://forge.typo3.org/issues/31909>`_
* Commit: `270dced <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=270dced5220bd9922b45f3cbb9cff07b98eafcb7>`_

[BUGFIX] Adjust AuthenticationController to FlashMessages
-----------------------------------------------------------------------------------------

* Fixes: `#31931 <http://forge.typo3.org/issues/31931>`_
* Commit: `4883a09 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4883a0956ae15ef7cc252009c2bad885c89dffda>`_

[TASK] Use curly braces instead of hashes in NotFoundView
-----------------------------------------------------------------------------------------

* Resolves: `#31957 <http://forge.typo3.org/issues/31957>`_
* Commit: `56899fc <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=56899fc7b26e65da2da7edf3b5e08dc0b2952add>`_

[BUGFIX] Fix link to issue tracker
-----------------------------------------------------------------------------------------

Adapts the project link after a renaming of the FLOW3 package in forge.

* Fixes: `#31781 <http://forge.typo3.org/issues/31781>`_
* Commit: `96b9db3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=96b9db36210428cca6930a8a855e591d0afac65b>`_

[TASK] Escape phpBinaryPathAndFilename in Command execution
-----------------------------------------------------------------------------------------

Currently the bootstrap fails to properly escape the php path
when dispatching sub requests in command execution.
This leads to exceptions when the path contains spaces or other
special characters.
This is fixed by putting the command in quotes and replacing
backslashes.

* Fixes: `#30040 <http://forge.typo3.org/issues/30040>`_
* Commit: `d87ef93 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d87ef93a58d7160110620ed14fd567c91a658301>`_

[BUGFIX] Allow usage of query parameter "_"
-----------------------------------------------------------------------------------------

Assert that the length of $argumentName is >= 2 before accessing it at
position 1

* Fixes: `#31773 <http://forge.typo3.org/issues/31773>`_
* Commit: `69f3542 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=69f35424dca9569054e5dff6c968e1e2c7546b69>`_

[BUGFIX] Fix Persistence\\Doctrine\\Query serialization cycle
-----------------------------------------------------------------------------------------

If you assign a QueryResult to a ViewHelper and later on use
$result->getQuery(), this query is not executable any more, if
you used complex "where"-clauses involving joins, as these
joins are not reapplied to the object during the __wakeup()
call.

This patch ensures the query being callable like the
original one after __wakeup() by saving all joins in array
and reapplies them after wakeup. A functional test is
included.

* Fixes: `#31696 <http://forge.typo3.org/issues/31696>`_
* Commit: `c131afa <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=c131afab8cf210afc29e797b4029530e2034369e>`_

[BUGFIX] (CLI): CLI arguments should be usable with equals sign (=)
-----------------------------------------------------------------------------------------

With this fix the last argument may use the equals sign (=)
again to separate between argument name and value.

Besides writing an additional test case which reproduces the issue,
the other test cases have been strengthened by replacing assertEquals()
by assertSame().

* Resolves: `#30493 <http://forge.typo3.org/issues/30493>`_
* Commit: `578b580 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=578b580da127c3a907cd3dbc81e1e7b2063e2ce4>`_

[BUGFIX] Symlink related Unit Tests fail on some Windows systems
-----------------------------------------------------------------------------------------

This replaces sys_get_temp_dir() by tempnam() in unit tests that
use symlinks to avoid them from failing on some Windows
environments.

* Resolves: `#31070 <http://forge.typo3.org/issues/31070>`_
* Commit: `60b45d7 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=60b45d7d1d9ea6e87dc4fc690183f281a50c286c>`_

[FEATURE] (Security): HMAC Convenience methods in HashService
-----------------------------------------------------------------------------------------

This adds the methods appendHmac() and validateAndStripHmac()
to the Cryptography\\HashService allowing users to deal with HMAC
validation more conveniently.

* Resolves: `#31698 <http://forge.typo3.org/issues/31698>`_
* Commit: `061beb0 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=061beb04f08b4ab8768b4a0500251ce013dbcab7>`_

[FEATURE] Add BCrypt hashing strategy
-----------------------------------------------------------------------------------------

This adds a wrapper for the BCrypt hashing algorithm and
makes it the default password hashing strategy.
Also provides a fallback when using hashes generated by PBKDF2.

* Resolves: `#31678 <http://forge.typo3.org/issues/31678>`_
* Commit: `23fec41 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=23fec41b62b15601eaa3053e0152238fb5f2f91a>`_

[BUGFIX] Also remove new objects on clear state of persistence manager
-----------------------------------------------------------------------------------------

See: #29578

* Commit: `3a6f794 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3a6f7940c289c92fdabeea9632cab03df055b72b>`_

[FEATURE] Support mapping to specific subtypes by property (__type)
-----------------------------------------------------------------------------------------

When type hierarchies are used for modeling, it's sometimes necessary
to use a special subclass when creating new entities (e.g. from user
selection). This change enables the use of a special (request)
property "__type" in the source array of a type converter. For security
reasons, this feature must be configured explicitly through a mapping
configuration.

* Resolves: `#30300 <http://forge.typo3.org/issues/30300>`_
* Commit: `41c21ba <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=41c21ba3b019c4f6e31760235cff96950c750a01>`_

[TASK] Fix a @var annotation to be fully qualified
-----------------------------------------------------------------------------------------

* Commit: `3b01bd2 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=3b01bd2576ac85da6777458b75fef7358137347c>`_

[FEATURE] Persistence Manager knows about unmanaged, new objects
-----------------------------------------------------------------------------------------

This patch enhances the persistence aspect and the related code in the
Persistence Manager so that getObjectByIdentifier() also returns those
objects which have been created but not yet added to any repository.

That allows, among other things, to render URIs pointing to not yet
persisted objects which have been carried around in a session container.

* Resolves: `#29578 <http://forge.typo3.org/issues/29578>`_
* Commit: `10a0ad6 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=10a0ad65e9e6697f9f14fd9823e2c44fa15e36ae>`_

[TASK] Add clearState() to PersistenceManagerInterface
-----------------------------------------------------------------------------------------

Also implements it for both PersistenceManager implementations.

* Commit: `d2d33bc <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=d2d33bcd2254ceba4c809f222da8e881a4aae7ba>`_

[TASK] Clean up of the Abstract Persistence Manager
-----------------------------------------------------------------------------------------

Removed unused dependency to Reflection Service and move the dependency
to System Logger into the concrete Persistence Manager.

* Commit: `53403be <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=53403be6df91922c9f6fe0ea1b72faf2febf2941>`_

[TASK] Unify usage of random byte generator
-----------------------------------------------------------------------------------------

We already use the randomizer library, now all calls to it are
wrapped in Utilities\\Algorithms.

* Resolves: `#25714 <http://forge.typo3.org/issues/25714>`_
* Commit: `59b4919 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=59b49197913a31a3dc917a96bc802259c99ec916>`_

[BUGFIX] Reset argument list before initializing action arguments
-----------------------------------------------------------------------------------------

This change fixes a problem with functional tests of controller
actions. It's also needed to reset the state of the controller when
multiple requests are dispatched.

It also refactors a unit test to use the actual arguments class instead
of a mock which is more expressive.

* Fixes: `#31134 <http://forge.typo3.org/issues/31134>`_
* Commit: `a320135 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=a320135465d586b2e4cd50c890709f4d2e7e64bf>`_

[BUGFIX] Use correct method to get CLI arguments for DQL command
-----------------------------------------------------------------------------------------

Call TYPO3\\FLOW3\\MVC\\CLI\\Request::getExceedingArguments() instead of the
removed TYPO3\\FLOW3\\MVC\\CLI\\Request::getCommandLineArguments()

* Fixes: `#31474 <http://forge.typo3.org/issues/31474>`_
* Commit: `47b8f4a <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=47b8f4a8fd7769df592dd1515901670691b416e5>`_

[FEATURE] AOP: Make JoinPoint methodArguments settable
-----------------------------------------------------------------------------------------

As at least BeforeAdvices and AroundAdvices can be
used to manipulate the behavior of the original method,
the advice method should be able to change the
original method's arguments.

* Resolves: `#29514 <http://forge.typo3.org/issues/29514>`_
* Commit: `66b8095 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=66b809564eab282ed6cf791bbdcd5ed81727816a>`_

[BUGFIX] Enhance entity classname detection in repository constructor
-----------------------------------------------------------------------------------------

Fix bug where all occurrences of the word "Repository" were stripped
out during the automatic retrieval of the entity classname. This changes
the behavior in the way, that only removes the last occurrence.

* Fixes: `#30312 <http://forge.typo3.org/issues/30312>`_
* Commit: `2f5d0cb <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2f5d0cbd5a9f225ddd813eee30e5b091390d3170>`_

[TASK] Display line number of exception in command line mode
-----------------------------------------------------------------------------------------

* Related: `#31269 <http://forge.typo3.org/issues/31269>`_
* Commit: `6ed7ecd <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=6ed7ecd2771ed419939549953b418f176929b0b2>`_

[BUGFIX] Use annotations in ActionController for IgnoreValidation
-----------------------------------------------------------------------------------------

Use annotations for the action method instead of method tags values
which return wrong results if an explicit argumentName is given
to the annotation. See the functional test that is added.

* Fixes: `#31452 <http://forge.typo3.org/issues/31452>`_
* Commit: `1c92bdd <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=1c92bdd443bb90f881b566eee1ec5235f7d5f8c2>`_

[TASK] Optimized AOP Pointcut Filter matching
-----------------------------------------------------------------------------------------

This change set greatly reduces compilation time for AOP proxies for
applications intensively using AOP and security policies. It is a quick
fix rather than the ultimate solution.

Class name and method name matching have been simplified, matching
against annotations does not support regular expressions any more
(wasn't supported officially anyway) and the order of a few point cut
expressions has been optimized.

* Related: `#9568 <http://forge.typo3.org/issues/9568>`_
* Commit: `9c3a9dc <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=9c3a9dca08939c76be49e487d81b284b399da9b5>`_

[BUGFIX] Logout must not rely on a session
-----------------------------------------------------------------------------------------

AuthenticationProvider::logout() currently throws an Exception
if no session has been initialized yet.
This change fixes this by checking whether the Security Context
has been initialized.

* Resolves: `#31311 <http://forge.typo3.org/issues/31311>`_
* Commit: `eab9bf9 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=eab9bf953180dcff96f5ae33666cafa0bf587a7a>`_

[BUGFIX] Proxy class builder should retain original annotations
-----------------------------------------------------------------------------------------

Original metadata information on proxied methods should be retained
to allow for code inspection and usage of metadata for dynamic code
generation.

* Fixes: `#31270 <http://forge.typo3.org/issues/31270>`_
* Commit: `ecb650c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=ecb650c82d6f10a715b2a27e562315ba80d6417e>`_

[FEATURE] Make path for migrate-annotations configurable
-----------------------------------------------------------------------------------------

Optional parameter --packages-path to configure an individual absolute
path to the folder with the packages.

* Fixes: `#31160 <http://forge.typo3.org/issues/31160>`_
* Commit: `1a24f58 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=1a24f58215f0fe8a0e2f29ee53d4963c4c491451>`_

Revert "[FEATURE] Make path for migrate-annotations configurable"
-----------------------------------------------------------------------------------------

This reverts commit 985ce27723bc8cb5b2b8b4f5269ffe4b4aac45ac

* Commit: `90bba5c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=90bba5c1ad4b90d9d4335401e36b342f543155b5>`_

[FEATURE] Make path for migrate-annotations configurable
-----------------------------------------------------------------------------------------

Optional parameter --packages-path to configure an individual absolute
path to the folder with the packages.

* Fixes: `#31160 <http://forge.typo3.org/issues/31160>`_
* Commit: `985ce27 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=985ce27723bc8cb5b2b8b4f5269ffe4b4aac45ac>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Fluid
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `24ce9d8 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=24ce9d851e167de1475729006458fa686cb09de3>`_

[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: `c852f27 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=c852f275cf73da7fece821976e771dea823bea24>`_

[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: `299ad01 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=299ad012139f6b96e69b61f2834f6be6b7a6b509>`_

[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: `a5752cf <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=a5752cfdfd9b16aa708a121cd8d07889c0efae49>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `c845ccc <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=c845ccc86a0459ca12734f4f3108edf0b9ecd00e>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `6613e1e <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=6613e1ed236ee6a8653bcfe84b2677ae37ae7a70>`_

[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: `492a8da <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=492a8daa397c66d2b7f07082f7d583a1a969ad66>`_

[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: `a4a939c <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=a4a939cbecd9f15b2bdb3e864b84f81a41371450>`_

[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: `049704f <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=049704f0f77cdae986c03d8ca435013425c15881>`_

[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: `7e68ea4 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=7e68ea46467ec978c0bd54c25632582690eca6c2>`_

[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: `73c686b <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=73c686b0ff4710e2a89f30a526f9bdb132723f95>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `a479713 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=a479713a1f737e8cdb2b0d94eb2bbe4840814808>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `2a9e2f2 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=2a9e2f2fe2fe71b52860a33a6fa009fbe8cab0b7>`_

[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: `0c8ef04 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=0c8ef04ce86582e4eea8a702b3f4a90c9d639227>`_

[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: `ecc4f01 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=ecc4f01ead99f3993bd3908d974485e2c65dd080>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `40a283f <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=40a283fb44865efde9d36645130eae7c15b85f72>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `a8b5832 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=a8b58323292ee09529a5cb2cd6fc55b7d7c91f21>`_

[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: `ad4ed84 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=ad4ed8417fd8e3897c417e168898557e7989f6e6>`_

[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: `dec3b18 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=dec3b187b6db773a5a84dec70918c22f428cb994>`_

[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: `9f01a42 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=9f01a42dc97a85f22a08c4d7ca75405fe1e75557>`_

[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: `85bca32 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=85bca3221ba3150baf59f8fd9ccd1f9e7732f02f>`_

[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: `5a75ed8 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=5a75ed885661b11d73715acc82922936b438f0b1>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `9ea875e <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=9ea875e87938df580e06207755859297737c90fe>`_

[TASK] Standalone View: enable escaping for "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.

This change enables the escape interceptor if the format
is *either* "html" or not set at all
* Related: `#37561 <http://forge.typo3.org/issues/37561>`_

* Commit: `6f1b39d <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=6f1b39d8c75a2ce37e3e5ef1a725790b4283c2ef>`_

[FEATURE] Allow access to attributes in TagBuilder
-----------------------------------------------------------------------------------------

* Resolves: `#37460 <http://forge.typo3.org/issues/37460>`_
* Commit: `f533788 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=f5337883f083ff2ec7226a7f7fb4f0a5560701c8>`_

[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: `cd86a2d <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=cd86a2dd032dc564e7a5eb10cbd75dfbcee478c5>`_

[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: `bca7ade <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=bca7ade025701e7de6bcc9d3ad1328bd8633a312>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `4ba7cda <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=4ba7cda690f79a9e68987c22acd42dfee7f1e81b>`_

[!!!][FEATURE] (MVC): Whitelist-based Property Mapping Configuration
-----------------------------------------------------------------------------------------

See the corresponding FLOW3 change at https://review.typo3.org/#/c/10926/ for a
detailed explanation.

Furthermore, this change adds comprehensive end-to-end Functional Tests for the
Fluid and FLOW3 Form Handling

Note: You need the accompanying FLOW3 change for testing this feature as well.

* Related: `#36776 <http://forge.typo3.org/issues/36776>`_
* Commit: `6da7875 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=6da787569dfb5f279f16740f5305bf3a160e068c>`_

[BUGFIX] Fix request handling for Ajax widgets
-----------------------------------------------------------------------------------------

Requests to AJAX widgets were not handled properly
because the routing configuration was not available
to the request handler being in charge for handling
that request.

This patch removes the specialized WidgetRequestHandler
completely and implements the specialized handling of
AJAX widget requests through an aspect which advices
the original Router.

This change set also introduces functional tests which
cover the basic widget request handling executed through
the full request / response stack.

* Resolves: `#36500 <http://forge.typo3.org/issues/36500>`_
* Resolves: `#36236 <http://forge.typo3.org/issues/36236>`_

* Commit: `380d683 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=380d683777152993c1e9b24256781653be961122>`_

[TASK] Update Package.xml
-----------------------------------------------------------------------------------------

* Commit: `d7b34b3 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=d7b34b3ea49e8cb6b25b9f82f1513aa2d51850e1>`_

[!!!][TASK] Move link.widget & uri.widget Widget subfolder
-----------------------------------------------------------------------------------------

This moves widget related ViewHelpers link.widget & uri.widget
to the Widget subfolder (as in v4).

Instead of link.widget you should use widget.link, instead of
uri.widget widget.uri from now on.

This is not a breaking change right now as the old classes
are still there (with @deprecated annotation). But if you
used one of the ViewHelpers you should adjust your code.

* Resolves: `#34231 <http://forge.typo3.org/issues/34231>`_
* Commit: `b2ae197 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=b2ae19789639c72c88c5de11e9ecd5e5a939bcfb>`_

[FEATURE] DebugViewHelper allows output of type only
-----------------------------------------------------------------------------------------

Because sometimes var_dump is too verbose, this patch adds
a flag where only the type of the intended variable
can be output.

* Resolves: `#33493 <http://forge.typo3.org/issues/33493>`_
* Commit: `fb14d2a <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=fb14d2ad206d8cb94503cdf16f367e9e5aa14c0f>`_

[FEATURE] Declare namespaces in XML tag
-----------------------------------------------------------------------------------------

This makes it possible to declare Fluid namespace identifiers with
the common xmlns syntax <html xmlns:foo="http://some/unique/namespace">
That works as a replacement for xml/html based Fluid templates which
can be used instead of the {namespace foo=Bar} syntax.

This syntax triggers auto-completion in most IDEs if the xml
namespace is bound to a valid XSD schema!

Usage:

* Create a XSD file for your ViewHelpers by executing
  ./flow3 documenation:generatexsd Your\\\\Package\\\\ViewHelpers
  --target-file some/directory/your.package.xsd

* Import the XSD file in your favorite IDE and map it to the
  namespace "http://typo3.org/ns/Your/Package/ViewHelpers"

* Add the namespace to your Fluid template by adding the "xmlns:"
  attribute to the root tag (usually <xml ...> or <html ...>).

If you want to use this inside partials, you can use the "section"
argument of the render ViewHelper in order to only render the content
of the partial:

Partial::

 <html xmlns:x="http://typo3.org/ns/Your/Package/ViewHelpers">
 <f:section name="content">
 	<x:yourViewHelper />
 </f:section>

Template::

 <f:render partial="PartialName" section="content" />

Note:

You are able to use a different XML namespace pattern by specifying
the --xsd-namespace argument in the generatexsd command.

The default pattern "http://typo3.org/ns/<php namespace>" is resolved
automatically by the Fluid parser. If you use a custom XML namespace,
you need to configure the namespace mapping.

The (YAML) syntax for that is::

 TYPO3:
   Fluid:
     namespaces:
       'http://some/unique/namespace': 'My\\Php\\Namespace'

* Resolves: `#27119 <http://forge.typo3.org/issues/27119>`_
* Commit: `432ebf6 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=432ebf65baab808251f8954a12f5678f87b37550>`_

[FEATURE] Command for XSD Schema generation
-----------------------------------------------------------------------------------------

This adds a command controller for rendering XSD schemas
for ViewHelpers.

Usage: ./flow3 documentation:generatexsd 'Some\\Namespace'

This also removes the no longer needed and forever broken
Controllers from the package.

* Resolves: `#13643 <http://forge.typo3.org/issues/13643>`_
* Commit: `1cde8ca <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=1cde8ca124027849ffe610e0a4db479e9ab619b4>`_

[TASK] adjustments to refactored FLOW3 Context
-----------------------------------------------------------------------------------------

As the Context is now an object and not a string anymore, we adjust
our context checks appropriately.

* Related: `#33581 <http://forge.typo3.org/issues/33581>`_
* Commit: `5435a8b <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=5435a8bd6da5d32ee1dc95fdec7fad06019168d6>`_

[TASK] Add code migration to adjust templates to Fluid 1.1
-----------------------------------------------------------------------------------------

This changes form.textbox to form.textfield in HTML files.

* Related: `#29389 <http://forge.typo3.org/issues/29389>`_
* Commit: `214c79a <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=214c79a4470453ccfa6e0fb8dc979ad3cb85e109>`_

[BUGFIX] Adjust filename spelling to changes in FLOW3
-----------------------------------------------------------------------------------------

Adapt the usage of fileName to filename to match FLOW3

* Relates: `#35298 <http://forge.typo3.org/issues/35298>`_
* Commit: `e547570 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=e547570a504e745bab6490095144a01bff6e6b89>`_

[BUGFIX] Fixes doc comment of Form.ValidationResultsViewHelper
-----------------------------------------------------------------------------------------

The example in the class doc comment was outdated and is fixed with
this change.

* Fixes: `#31380 <http://forge.typo3.org/issues/31380>`_
* Commit: `f187644 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=f18764473d62d0b39b10b19cf98f680b07ee133d>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `554de6c <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=554de6c03a407176e8683a38dd4bfc526cab75f3>`_

[BUGFIX] Render childnodes in validation results VH
-----------------------------------------------------------------------------------------

The adjustments to the new HTTP implementation in FLOW3
introduced a regression that prevents the child nodes of the
ValidationResults ViewHelper from being rendered if no
validation errors occurred.
This change reverts this breaking behavior and adds unit
tests for the ViewHelper.

* Fixes: `#36297 <http://forge.typo3.org/issues/36297>`_
* Commit: `b136cfb <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=b136cfb5b015307fa58f21c3d95c6eff5490549f>`_

[TASK] Adjust a comment to HTTP foundation
-----------------------------------------------------------------------------------------

* Related: `#35243 <http://forge.typo3.org/issues/35243>`_
* Commit: `0914e9d <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=0914e9da46c731746fc71a871c363cc00be16e62>`_

[SECURITY] Protect arguments of form __referrer with HMAC
-----------------------------------------------------------------------------------------

The request arguments of the referring request are
a serialized string written to one of the hidden
fields in a Fluid form. This string has to be protected
by a HMAC to protect FLOW3 from possible unserialize
attacks.

Note: For now there is no object known within the FLOW3
Distribution, that could be used for an unserialize
exploit!

* Security-Bulletin: `FLOW3-SA-2012-001 <http://typo3.org/teams/security/security-bulletins/flow3/FLOW3-SA-2012-001/>`_
* Related: `#35300 <http://forge.typo3.org/issues/35300>`_

* Commit: `7390198 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=73901980bb1c224f50cf7f790bba3379c2373ee5>`_

[TASK] Adjust to FLOW3's new HTTP framework
-----------------------------------------------------------------------------------------

This adjusts API usage within Fluid to the refactored MVC and new HTTP
support in FLOW3 1.1.

* Related: `#35243 <http://forge.typo3.org/issues/35243>`_
* Commit: `be4e0ec <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=be4e0ec060d231ec77b773ec7098e9c99c8baabe>`_

[TASK] Sub package name case and location adjustments
-----------------------------------------------------------------------------------------

This adjusts code to use the corrected namespaces and class names in
FLOW3.

Also contains a few cosmetic changes.

* Related: `#35243 <http://forge.typo3.org/issues/35243>`_
* Commit: `e7c8c12 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=e7c8c12caede03207575497fab4bc4ac793cb308>`_

[FEATURE] Make renderSection callable outside of template context
-----------------------------------------------------------------------------------------

This makes it possible to call $this->renderSection('sectionName') to
render only only a single section out of a complex template.

This change is needed for the refactored TypoScript rendering.

* Related: `#31638 <http://forge.typo3.org/issues/31638>`_
* Related: PHX-57

* Commit: `a3cb456 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=a3cb456a474f86288c40110f6dc80c81dab5df6e>`_

[TASK] Remove occurences of removed form.textbox ViewHelper
-----------------------------------------------------------------------------------------

There are still some places referring to the no longer existing
Textbox form ViewHelper.
This adjusts code accordingly by replacing textbox with textfield
where applicable.

* Related: `#27770 <http://forge.typo3.org/issues/27770>`_
* Commit: `039ef09 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=039ef098bd7742594af47c96b6447484576cc1ab>`_

[TASK] Fixes a wrong return type annotation
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `edc73d2 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=edc73d2f2a3363319b1d5415574d2ac133c299db>`_

[FEATURE] Add translation support to SelectViewHelper
-----------------------------------------------------------------------------------------

The change adds support for translation of the options labels
produced in SelectViewHelper.

The view helper can be given a "translate" argument with
configuration on how to translate option labels. The array
can have the following keys:

- "by" defines if translation by message id or original
  label is to be used ("id" or "label")
- "using" defines if the option tag's "value" or "label"
  should be used as translation input, defaults to "value"
- "locale" defines the locale identifier to use, optional,
  defaults to current locale
- "source" defines the translation source name, optional,
  defaults to "Main"
- "package" defines the package key of the translation source,
  optional, defaults to current package
- "prefix" optionally defines a prefix to use for the message id

* Resolves: `#34232 <http://forge.typo3.org/issues/34232>`_
* Commit: `305a279 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=305a27906f98555133b6728ba5b4633c3499d5cd>`_

[TASK] Fixes code style
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `c523847 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=c523847f67b86ff5c49abe04371a46b724f976a9>`_

[TASK] Fix types in variable annotations (missing prepending backslash)
-----------------------------------------------------------------------------------------

Minor changes due to automated scan for missing backslash.

* Fixes: `#34643 <http://forge.typo3.org/issues/34643>`_
* Commit: `ba99bfe <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=ba99bfede974f6d4e524cfd45a5c63d975b1d25e>`_

[BUGFIX] Fix @var annotation type in identity.json VH
-----------------------------------------------------------------------------------------

* Fixes: `#33043 <http://forge.typo3.org/issues/33043>`_
* Commit: `7262314 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=7262314810a6c8de2b991deeb0ca3c3befb6969c>`_

[FEATURE] Hint about achieving string comparison in IfViewHelper
-----------------------------------------------------------------------------------------

IfViewHelper's condition doesn't support real string
comparison. There's a known workaround which is now
mentioned in the VH's code examples.

* Resolves: `#33814 <http://forge.typo3.org/issues/33814>`_
* Commit: `0582852 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=05828520c2aa0a9b23535e20c9746470d8bf248c>`_

[TASK] Fix doc comments
-----------------------------------------------------------------------------------------

Fixes doc comments issues, like missing or wrong @param
annotations. Removes @author annotations.

* Commit: `1049dbd <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=1049dbdaec969f724565db99219471ad30d4d83a>`_

[TASK] Remove utterly useless line of code
-----------------------------------------------------------------------------------------

In I24acacf9fe10ffd1f8daa640b86f1a6709cf2a8a a small fix was made.
Only to leave an utterly useless line of code behind. This change
remedies that.

* Related: `#33812 <http://forge.typo3.org/issues/33812>`_
* Commit: `a2928ff <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=a2928ff78460d8294f36b14aba482117606e0c87>`_

[TASK] Rename key to id in TranslateViewHelper
-----------------------------------------------------------------------------------------

The key attribute refers to the trans-unit id in XLIFF and thus
should be named id.

Along the way a type cast of quantity to integer is removed, as
it doesn't make sense (plural form handling can take care of
floats just fine).

* Resolves: `#33812 <http://forge.typo3.org/issues/33812>`_
* Commit: `2fe6308 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=2fe6308fd2cec8927c0bc9b103287e6cb1f9c4b1>`_

[TASK] Cleanup/Fix ViewHelper doc comments
-----------------------------------------------------------------------------------------

This tweakes some ViewHelper doc comments so that they can be
rendered with the new Reference command introduced with #33675.
No functional changes.

* Related: `#33675 <http://forge.typo3.org/issues/33675>`_
* Commit: `bf846ce <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=bf846ce58731b60fa904639f4440bbb1b33dff50>`_

[TASK] Remove deprecated methods and unused code
-----------------------------------------------------------------------------------------

Things which have been deprecated prior to the 1.0.0 release are
removed with this change.

* Resolves: `#27770 <http://forge.typo3.org/issues/27770>`_
* Commit: `00b9643 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=00b96438b98c37dae50d3f04f92183eb61372fa0>`_

[BUGFIX] UploadViewHelper must not convert resources if errors occurred
-----------------------------------------------------------------------------------------

If getMappingResultsForProperty() contains errors, uploaded
resources should not been converted to resource objects but
instead the hidden fields should be empty.

* Fixes: `#33570 <http://forge.typo3.org/issues/33570>`_
* Commit: `a1a61db <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=a1a61db96a08fdc5e901dc74bd0f940518226144>`_

[BUGFIX] AbstractFormFieldViewHelper always converts entities
-----------------------------------------------------------------------------------------

AbstractFormFieldViewHelper::getValue() currently always tries
to convert objects to identities by calling
PersistenceManager::getIdentifierByObject().
This makes it impossible for custom ViewHelpers to access the
unmodified value that was previously submitted (or bound to the
form field view helper).

This change introduces an argument $convertObjects that allows
experienced developers to disable this behavior in custom
view helpers.

* Fixes: `#33569 <http://forge.typo3.org/issues/33569>`_
* Commit: `02f8a92 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=02f8a9235927c13f1aa80746312415cb315358ed>`_

[FEATURE] GroupedForViewHelper accepts property path as groupBy argument
-----------------------------------------------------------------------------------------

This change allows the GroupedForViewHelper to accept not only a property/array key as
argument but also a property path. This reduces memory consumption for more complex
object graphs. Also, It enables a developer to create a custom algorithm (getter) to provide
the value to compare. The change is backwards compatible.

* Related: `#9244 <http://forge.typo3.org/issues/9244>`_
* Commit: `f2f7032 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=f2f70329201489bd3ebe6f48907eaff9f91dd25b>`_

[FEATURE] (View): Implement StandaloneView
-----------------------------------------------------------------------------------------

This view can be used to render E-Mails or other things outside a controller
scope.

It is mostly forward-ported from TYPO3 v4, just with Functional Tests added.

* Resolves: `#32930 <http://forge.typo3.org/issues/32930>`_
* Commit: `9897a1a <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=9897a1acfd5608afb0ef5f75db5a9d765d88df5c>`_

[BUGFIX] FormFieldViewHelpers do not resolve property path
-----------------------------------------------------------------------------------------

When binding a form to an object the form elements fail to
correctly resolve the property path if no "formObjectName" is
specified.

* Fixes: `#33421 <http://forge.typo3.org/issues/33421>`_
* Commit: `483a866 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=483a866c564b8dadc97a05bed36433e2618f0704>`_

[BUGFIX] (ViewHelpers): Fix wrong comment in ValidationResults ViewHelper
-----------------------------------------------------------------------------------------

* Commit: `b9a8a5c <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=b9a8a5cf5d6aea03f815f4bed1fd37b5af800dac>`_

[BUGFIX] form.checkbox ViewHelper throws Exception in newAction
-----------------------------------------------------------------------------------------

This adds an argument "multiple" to the checkbox ViewHelper
which makes it possible to mark the property as multi value
even if the bound object is NULL.

Besides the ViewHelper can now be bound to all scalar properties,
arrays and Traversable objects.
This change is backwards-compatible.

* Fixes: `#8854 <http://forge.typo3.org/issues/8854>`_
* Commit: `97e44d5 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=97e44d5de9331e3b496fb0e1fbc8aaf11d10325f>`_

[FEATURE] form.button ViewHelper
-----------------------------------------------------------------------------------------

Adds a ViewHelper that renders <button /> form elements

* Resolves: `#33302 <http://forge.typo3.org/issues/33302>`_
* Commit: `8447517 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=8447517f3fe029577d92ae86927ad8b0dabe1ddb>`_

[TASK] Rename default attribute to value in TranslateViewHelper
-----------------------------------------------------------------------------------------

The default attribute for the TranslateViewHelper is renamed to
value, because it is more intuitive if not translating by key when
using inline notation.

* Related: `#11955 <http://forge.typo3.org/issues/11955>`_
* Commit: `3f0b26b <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=3f0b26b4a95880397c7eb8b64172be52dee41bde>`_

[FEATURE] TranslateViewHelper accepts package argument
-----------------------------------------------------------------------------------------

This change allows the TranslateViewHelper to accept an optional
package argument, which is passed to the Translator class for lookups.
If the package argument is NULL, the view helper will default to the
current controller's package key.

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

* Commit: `cf05b1f <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=cf05b1fa6a5e7e4e3f870db6ed787aa204d33952>`_

[TASK] Adjust Tests to optimized Reflection Service
-----------------------------------------------------------------------------------------

This fixes unit tests that are broken with
Idbaa7906dcdad82131eaf74a8dbfa371b78fe94e applied.

* Related: `#32531 <http://forge.typo3.org/issues/32531>`_
* Commit: `4540f9b <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=4540f9b8358ebd5aac1e974e8b43556a35bfc4a2>`_

[BUGFIX] Fix WidgetRequestHandler unit tests
-----------------------------------------------------------------------------------------

This change fixes unit tests that were broken with eeadd2b

* Related: `#32451 <http://forge.typo3.org/issues/32451>`_
* Commit: `a535ee7 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=a535ee72d344b670ab394fd58e615890cadd0a07>`_

[TASK] Make Fluid package protected
-----------------------------------------------------------------------------------------

* Related: `#32599 <http://forge.typo3.org/issues/32599>`_
* Commit: `b781e08 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=b781e085e3e44afeabac24ba8121853a679a2271>`_

[BUGFIX] (Widget): Adjust Ajax Widgets to rewritten Bootstrap
-----------------------------------------------------------------------------------------

As the concept of Request Handlers has been updated and extended,
we need to adjust the WidgetRequestHandler accordingly.

This bugfix is testable with the Viewhelpertest package, using the
manual test "Widgets: AJAX widget context is reset correctly".

* Fixes: `#32451 <http://forge.typo3.org/issues/32451>`_
* Commit: `eeadd2b <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=eeadd2bbb8559b7434d95e41ddc5e998b7cf18b2>`_

[BUGFIX] Fix unit tests failing with PHPUnit 3.6
-----------------------------------------------------------------------------------------

* Fixes: `#32016 <http://forge.typo3.org/issues/32016>`_
* Commit: `70647cf <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=70647cf6f6d60c4ded3c75235f486066801ffd3a>`_

[FEATURE] (Core): Stateless AJAX Widgets
-----------------------------------------------------------------------------------------

Currently an AJAX Widget stores the WidgetContext in the
WidgetContextHolder which again puts it in the current user
session.
This change adds a property "stateless" to the
AbstractWidgetViewHelper. If that's TRUE, the widget context
won't be stored in the session anymore. Instead, the
WidgetRequestBuilder then expects the "internal argument"
``__widgetContext`` to be specified (with a valid HMAC appended).

The Widget Link/Uri-Viewhelpers now add the serialized and
HMAC'ed WidgetContext to the generated URI if the new argument
"includeWidgetContext" is set.

Besides this change renames the widgetId argument from
"typo3-fluid-widget-id" to "__widgetId" as discussed.
Note: This would be a breaking change, if you relied on that
specific GET argument (which is however very unlikely)!

Lastly the WidgetRequestBuilder now interprets merged GET + POST
arguments instead of relying on GET only. This makes it possible
to pass the widgetId/Context via POST.

* Resolves: `#31167 <http://forge.typo3.org/issues/31167>`_
* Commit: `2db3587 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=2db358732b01c977b9c5709b772601ab483129e6>`_

[FEATURE] (ViewHelpers): Render FlashMessage title and severity
-----------------------------------------------------------------------------------------

Currently the FlashMessages ViewHelper only renders the body of
the respective Flash Messages.
This change modifies the ViewHelper in a backwards compatible
way so that it outputs the message title if specified.
Additionally the severity (notice, warning, error, ok) is
added to each list item.

Additionally free rendering foreach style is possible now.

* Resolves: `#31019 <http://forge.typo3.org/issues/31019>`_
* Commit: `50db4d2 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=50db4d21b800a571c949fb5c62ddc02d7dc858a6>`_

[BUGFIX] ViewHelper Exceptions should be logged in Production
-----------------------------------------------------------------------------------------

In Production context all Exceptions from ViewHelpers will be
silently logged. In Development they will be re-thrown so the global
exception handler will be triggered.

* Resolves: `#30935 <http://forge.typo3.org/issues/30935>`_
* Commit: `5fa1329 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=5fa13298c467f56d5e5f3fe5a6a233817144526d>`_

[FEATURE] Widgets: Reset WidgetViewHelpers when being reused from ViewHelperNode
-----------------------------------------------------------------------------------------

* Introduce an AbstractViewHelper::resetState method to handle any kind
  of statefull interaction, empty by default.
* Make ViewHelperNode call resetState when reusing a ViewHelper, and also
  call it when reusing it in a compiled template.
* AbstractWidgetViewHelper implements resetState for creating a new
  WidgetContext object.

As ViewHelpers are supposed to be stateless they were create once per
RenderingContext and reused whenever the RenderingContext fits.
Some ViewHelpers are not stateless, e.g. AJAX widgets.

AJAX widgets push their WidgetContext into an AjaxWidgetContextHolder
before they get rendered.

As soon as AJAX-WidgetViewHelpers were used multiple times within the
same RenderingContext (widgets in ForViewHelpers for example) differet
widgets share the same ViewHelper containing the same WidgetContext.
Because the WidgetContext contains all statefull information about a
widget, only the last rendered widget gets stored in the ContextHolder.
That makes equal AJAX widgets within a for-loop impossible because
each GUI representation interacts with only the last rendered PHP object.

A test case has been committed to Viewhelpertest with http://review.typo3.org/6594

* Resolves: `#31667 <http://forge.typo3.org/issues/31667>`_
* Commit: `e450794 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=e45079412d945aab812a48933ea5c3ff362e0b08>`_

[BUGFIX] pre-selecting entities does not work with multiple flag set
-----------------------------------------------------------------------------------------

The SelectViewHelper is not able to retrieve the selected uuid values for
a collection of objects

* Resolves: `#29395 <http://forge.typo3.org/issues/29395>`_
* Commit: `1d9943d <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=1d9943d2bd8d8087750ee422d24d791ae916b4df>`_

[!!!][TASK] Change argument handling of WidgetViewHelpers
-----------------------------------------------------------------------------------------

* Change action parameter from "action" to "@action"
* Add "@format" parameter

This is potentially a breaking change when you rely on the naming of "action".
However, this is very improbable.

* Resolves: `#31658 <http://forge.typo3.org/issues/31658>`_
* Commit: `02bbddb <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=02bbddbd036ecd8effd2068a6c868d43eb7b6d06>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Kickstart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `5de6410 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=5de6410a39479374bbfe5dcc7470b7ff30f72428>`_

[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: `007c52c <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=007c52cd45e78010c01e3a61badd8c6da23b19f2>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `a0cdc11 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=a0cdc11d53681275782e509a0dc9fad53c38155a>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `45931af <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=45931af82d389dd29374f2ed322b2e73d0d43b79>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `fb00dfc <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=fb00dfcbcb1ea28782c524aff96ca82f32b1d6b0>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `7c65b11 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=7c65b111bf6b2d0b1501e26b9124cf3c4f832de3>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `c96108a <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=c96108a799dbac24d228a21a6e370d421d655ce7>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `6efcb5a <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=6efcb5a4ee49d26c4691f4e44be9b2e3bd91bde3>`_

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

Does cleanup to code documentation.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `57f4099 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=57f4099b65a8e269748cf44b1b4b0c45b3ba71e9>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `b88e140 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=b88e140f4a42c2ce39f4d4b3917611b35d255c75>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `c23776a <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=c23776acf3b6d79edbb3e1c8ceff489cd2e61d55>`_

[TASK] Add TYPO3.Flow to the dependencies
-----------------------------------------------------------------------------------------

* Related: `#28213 <http://forge.typo3.org/issues/28213>`_
* Commit: `15c2925 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=15c2925d0c1410eac0a1247c6fc7074dcb2df472>`_

[FEATURE] Generate layout on kickstart:package
-----------------------------------------------------------------------------------------

With this change the kickstart:package command generates a
layout from the same template as the kickstart:action command.
So resulting view has a base tag included which allows for
easier usage of the resulting StandardController.

* Resolves: `#34751 <http://forge.typo3.org/issues/34751>`_
* Commit: `888a5cf <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=888a5cf3f9cae446ab1b3429d399aa3e0dcd77cc>`_

[BUGFIX] Kickstarting a command controller produces invalid code
-----------------------------------------------------------------------------------------

* Fixes: `#35963 <http://forge.typo3.org/issues/35963>`_
* Commit: `6c71644 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=6c716444acdd5d049e44f88fb9001c9f64950faa>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `941a94b <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=941a94b6d7bb132e0ea911a6453a5baab59c43e1>`_

[BUGFIX] Kickstart kickstart:model should give correct example
-----------------------------------------------------------------------------------------

* Fixes: `#36155 <http://forge.typo3.org/issues/36155>`_
* Commit: `c4f28da <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=c4f28daa13b0a8e8d8665536ff19557993f2d9ab>`_

[TASK] Sub package name case and location adjustments
-----------------------------------------------------------------------------------------

This adjusts code to use the corrected namespaces and class names in
FLOW3.

* Related: `#35243 <http://forge.typo3.org/issues/35243>`_
* Commit: `329c182 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=329c1828e47b40a8dc4a150c1fa1878978183f60>`_

[TASK] Fixes code style
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `1162fb4 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=1162fb4826874f16eefd30ba45c58146868e8af9>`_

[BUGFIX] Fix variable annotations (missing prepending backslash)
-----------------------------------------------------------------------------------------

Minor changes due to automated scan for missing backslash.

* Fixes: `#34660 <http://forge.typo3.org/issues/34660>`_
* Commit: `00defba <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=00defba2c350e1d4b55d538a32956075369b0e4a>`_

[TASK] Fix doc comments
-----------------------------------------------------------------------------------------

Fixes doc comments issues, like missing or wrong @param
annotations.

* Commit: `617e8dd <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=617e8dd0411013e4b0e152f268f1c061fcab9878>`_

[FEATURE] Create empty test case when creating a domain model
-----------------------------------------------------------------------------------------

In order to encourage TDD, we create an empty base test case
when creating a domain model.

* Resolves: `#32660 <http://forge.typo3.org/issues/32660>`_
* Commit: `ffec8e3 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=ffec8e3df88af933ac6621b15b0bad7597306444>`_

[BUGFIX] scope prototype annotation should not be generated
-----------------------------------------------------------------------------------------

Kickstarter should not generate scope prototype in models,
as prototype is the default scope.

* Fixes: `#32657 <http://forge.typo3.org/issues/32657>`_
* Commit: `ec98302 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=ec983023ca452c257c336c1f079436a7a44bd87c>`_

[BUGFIX] Generated Entities should contain Doctrine use statement
-----------------------------------------------------------------------------------------

Generated Entities should contain "use Doctrine\\ORM\\Mapping as ORM;"
statement, as the user most probably needs this later when adjusting
the kickstarter output.

* Fixes: `#32656 <http://forge.typo3.org/issues/32656>`_
* Commit: `ce3ce81 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=ce3ce816fbe045ada3834811d949f8028354a46f>`_

[BUGFIX] Wrong doc comment in generated CRUD controller
-----------------------------------------------------------------------------------------

In the create action of a CRUD controller, the parameter is
$newSomething, while the docblock says it's $something. This leads to
e.g. a warning in some IDEs.

* Fixes: `#31494 <http://forge.typo3.org/issues/31494>`_
* Commit: `7970770 <http://git.typo3.org/Flow/Packages/TYPO3.Kickstart.git?a=commit;h=79707703c963d02e2d49a307105dd52abc2dbd6e>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Party
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `d320c74 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=d320c7445980a1125a6fa862edb91fe884c54161>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `c170b3f <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=c170b3f2ade9eef7ea97f2d2a3421f8014340116>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `6b182c1 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=6b182c15903ee80ac6f01158929d75128cfe3261>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `436c90f <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=436c90f382bc1e857115d8a3cfeb7372629069f6>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `45afa0b <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=45afa0ba497770ed12fcfbc4c2c8477c34fb7b7d>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `80b82d4 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=80b82d4e979cd7e787339572abb080260d7726d8>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `feb68d1 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=feb68d11bcf380d33bcbf59bcb7b367609304d14>`_

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

Tweaks a single constructor docblock.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `8d04ec5 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=8d04ec579623233576ad77c2b8316cfd106ee0cb>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `02a04f6 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=02a04f6e74de4e99009118e6e88a705214005bb3>`_

[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: `735ccef <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=735ccefcaf41c46f60cc2327a7ca259e22f34d6b>`_

[TASK] Adjust validators to avoid validating more than needed
-----------------------------------------------------------------------------------------

* Related: `#34154 <http://forge.typo3.org/issues/34154>`_
* Commit: `8646019 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=864601991b49bed50303601b1859345dee86227e>`_

[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: `9d10e01 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=9d10e0135395325bdb6c6bf0d9bcc695b2f6e26e>`_

[TASK] Clean up some coding style issues
-----------------------------------------------------------------------------------------

Add space to "foreach(".

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `7ddab64 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=7ddab64756f87ac50f9bc096eab076f0ccfc7d4f>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `4ec32e9 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=4ec32e9c08bc0073b54b06c36c008d78c3c49d23>`_

[TASK] Add TYPO3.Flow to the dependencies
-----------------------------------------------------------------------------------------

* Related: `#28213 <http://forge.typo3.org/issues/28213>`_
* Commit: `0e933f4 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=0e933f46796647dda56ff584a99efc13323ae61e>`_

[TASK] Add migrations to create unique indexes
-----------------------------------------------------------------------------------------

Identity annotations now create an unique index, this change
adds a migration to adjust the database schema accordingly.

* Related: `#29547 <http://forge.typo3.org/issues/29547>`_
* Commit: `38af75b <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=38af75b9609c690eedbff6b393cc815e18f79d04>`_

[TASK] Move XLIFF files so that Pootle copes with the file layout
-----------------------------------------------------------------------------------------

* Related: `#36284 <http://forge.typo3.org/issues/36284>`_
* Commit: `6d5d0e0 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=6d5d0e08cbb289df6b16753da2d118ea8fe4fee7>`_

[TASK] Add DB migration for PostgreSQL
-----------------------------------------------------------------------------------------

This adds an initial migration for PostgreSQL to create the needed
schema for the package.

* Related: `#36301 <http://forge.typo3.org/issues/36301>`_
* Commit: `795dbd4 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=795dbd489ecd6da1bf3d19074db19dc905cb7d3d>`_

[TASK] Adjust columns to NOT NULL default.
-----------------------------------------------------------------------------------------

* Related: `#35059 <http://forge.typo3.org/issues/35059>`_
* Commit: `0814162 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=0814162745e15e5cb0ef6acf6c71e272da2c0e36>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `8c287b9 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=8c287b9cd796f1b06146cfe4209f40125417ea98>`_

[BUGFIX] PrimaryElectronicAddress should check before adding
-----------------------------------------------------------------------------------------

With setPrimaryElectronicAddress the electronic address is also
added to the electronicAddress collection but it should check
first if it is already in to avoid creating duplicate entries.

* Fixes: `#29484 <http://forge.typo3.org/issues/29484>`_
* Commit: `5f751de <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=5f751de47830ed6204e0ac539f5f0baa69d9c330>`_

[TASK] Fixes code style
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `82bee4c <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=82bee4c7250c162387d3541bf08a2e0b77a1e1e5>`_

[TASK] Implement best practices in XLIFF files
-----------------------------------------------------------------------------------------

Adds some "required" attributes to the XLIFF files.

* Resolves: `#33975 <http://forge.typo3.org/issues/33975>`_
* Commit: `97023e7 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=97023e77a1bb02945b437ea36c34ed1f7c4f0049>`_

[BUGFIX] Make PartyRepository a singleton
-----------------------------------------------------------------------------------------

The PartyRepository lacked the Scope annotation it should have had.

* Fixes: `#33600 <http://forge.typo3.org/issues/33600>`_
* Commit: `2515d25 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=2515d253873904b73e70b95dc647df5b1cbf525b>`_

[TASK] Move Translations folder up one level
-----------------------------------------------------------------------------------------

This moves the folder for translations into Resources/Private.

* Related: `#32735 <http://forge.typo3.org/issues/32735>`_
* Commit: `65ff6f8 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=65ff6f8e7cbc6b5897a570e367559272b92554e7>`_

[TASK] Make Party package protected
-----------------------------------------------------------------------------------------

* Related: `#32599 <http://forge.typo3.org/issues/32599>`_
* Commit: `43e55ba <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=43e55bad39510b3550d4080e7d9abcf81ea8f5b6>`_

[TASK] Add XLIFF files with common labels
-----------------------------------------------------------------------------------------

This adds XLIFF files with a few basic labels and a german translation.

* Related: `#11955 <http://forge.typo3.org/issues/11955>`_
* Commit: `fc84d2d <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=fc84d2d78ba64008ab7cf2fcdf38e840692816c3>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Welcome
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `8f81aa3 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=8f81aa36b3984f7ea203ba6cbe9a5ce737dc3b25>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `6ec83a7 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=6ec83a745fe2dd4ad769e37919d53be48b3bfa53>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `97b935a <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=97b935a91b05b40b88f18824c8a9d7dd2e95b52f>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `cb90a4a <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=cb90a4ad9ca410102b929eca3ea895283ac3a5c1>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `4c4f158 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=4c4f158101c4d572344f4f1335bbd65e956e393d>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `d3a82c0 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=d3a82c0edc1f34e65b54b3edfbc08fc0dbc35a45>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `09229df <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=09229df2adb1897c248c50593d82b0abb5bfd7fe>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `5ae0c32 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=5ae0c323a4d8783e221a1e4ac8b9687b77642577>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `e8998d5 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=e8998d5f7eb012be2dc43c580ba34440cfbf23c9>`_

[TASK] Add TYPO3.Flow to the dependencies
-----------------------------------------------------------------------------------------

* Related: `#28213 <http://forge.typo3.org/issues/28213>`_
* Commit: `5951b54 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=5951b5410662b837242880db2266437691a7f42e>`_

[TASK] adjustments to refactored FLOW3 Context
-----------------------------------------------------------------------------------------

As the Context is now an object and not a string anymore, we adjust
our context checks appropriately.

* Related: `#33581 <http://forge.typo3.org/issues/33581>`_
* Commit: `baa1de2 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=baa1de25b1f49ecc56aea272c373f2512edbcbfb>`_

[BUGFIX] Fix links and update "About" content
-----------------------------------------------------------------------------------------

* Fixes: `#36580 <http://forge.typo3.org/issues/36580>`_
* Commit: `3833396 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=38333960413637646b5cc59016d96a19e174bfd5>`_

[TASK] Update Package.xml with new version number
-----------------------------------------------------------------------------------------

* Commit: `49d0c9e <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=49d0c9e58e88405fbe58d71996ac61de3fe00c34>`_

[TASK] Adjust to HTTP implementation
-----------------------------------------------------------------------------------------

Adjusts a call to getBaseUri() to be done on the correct object.

* Related: `#35243 <http://forge.typo3.org/issues/35243>`_
* Commit: `1eecf42 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=1eecf426a52c08cad1fa47deb213928f7b630523>`_

[TASK] Fixes code style
-----------------------------------------------------------------------------------------

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `8cb3327 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=8cb33270af9d98a4c7aba6fc02cecaf5f34c7182>`_

[BUGFIX] Fix links on Welcome screen
-----------------------------------------------------------------------------------------

The links to the FLOW3 website were mostly wrong.

* Fixes: `#32005 <http://forge.typo3.org/issues/32005>`_
* Commit: `20b1c70 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=20b1c70179ba75f7f99cd22ee5850346bd9bb5a2>`_

[TASK] Add hint to remove SubRoute definition after deactivating package
-----------------------------------------------------------------------------------------

When a SubRoute definition refers to a non-existing or disabled
package an exception is thrown, which confused some followers of
the mini tutorial of the Welcome screen.

This change adds a notice to remove the SubRoute definition
after deactivating the Welcome package.

Besides this renames "Remove the Welcome package ..." to
"Disable the Welcome package ...".

Note: Some infos have been added to the exception wiki page at
http://wiki.typo3.org/wiki/Exception1318414040

* Resolves: `#31284 <http://forge.typo3.org/issues/31284>`_
* Commit: `1a775b9 <http://git.typo3.org/Flow/Packages/TYPO3.Welcome.git?a=commit;h=1a775b9deac2726a72d1217f3f88b242ed0e7934>`_

