====================
2.0.0-beta1
====================

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This informs about the PhpSession settings key change.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Besides this marks EmptyView deprecated.

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

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

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

Another update to references forvalidators, converters and Fluid
ViewHelpers.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Allow logging early on in the package manager.

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

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

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

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

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

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

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

This also adds overdue unit tests for the ActionController.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This reverts commit ee8f8e1d898c15549c22278e3fe80cd5702df182 (source is
Id3fbb8ad5154c633b7153b4f8eef742f385b05a3).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This should be handled by ordering PackageStates accordingly.

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

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

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

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

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

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

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

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

This change

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

This change adjusts the Security\\Context internals accordingly.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

A few errors sneaked into Ifb6612a808e8cd8ee892de727dd961287a119152.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Formerly the exception subclassed FLOW3\\Exception directly.

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

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

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

Such a tooltip would look like::

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

The change tweaks the route used in the test slightly.

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

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

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

Also it adds the code needed to support new features:

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

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

This change drops three changes we had applied to the stock packages
before:

* ORM - Throw exception if no identifier can be found in UnitOfWork
* ORM - In proxies add docblocks and move __wakeup() call around
* DBAL -  Fix connection charset with MySQL for PHP < 5.3.6
  (see https://review.typo3.org/4587).

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

[TASK] Tweak exception message for not settable property
-----------------------------------------------------------------------------------------

This explains the possible reason for a not settable property
a bit more and describes how to solve the mentioned problem.

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

[BUGFIX] Enforce Query Rewriting more reliably
-----------------------------------------------------------------------------------------

This initializes the security context if it hasn't been initialized
when the PersistenceQueryRewritingAspect becomes active.

Previously it could happen that entities which should be covered by
a policy are visible to anonymous users.

* Resolves: `#42601 <http://forge.typo3.org/issues/42601>`_
* Commit: `9af3204 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9af3204b3ceb08b488370d6d85802cac87821154>`_

[BUGFIX] Tweak help output, output version
-----------------------------------------------------------------------------------------

The help output was a bit clumsy regarding the name of Flow
and did not output the version (since it is missing in the manifest).

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

[TASK] Rename Phoenix to Neos
-----------------------------------------------------------------------------------------

This change adjusts some technically irrelevant uses of Phoenix to
Neos, just for completeness.

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

[!!!][BUGFIX] Http\\Uri constructor throws exception on invalid Uri
-----------------------------------------------------------------------------------------

The constructor of the Uri object now checks the return value
of the parse_url method and throws an exception if this returns
anything else than a valuable array, because in this case the
given Uri is considered seriously malformed.

This is considered breaking because prior to this change,
the Uri just silently was created with all empty values.

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

[BUGFIX] Introduce HTTP Response::createFromRaw()
-----------------------------------------------------------------------------------------

The Response::createFromRaw method halted if a Set-Cookie header
arrives due to lacking handling.

This brings an implementation to parse the Set-Cookie directive
as described in RFC 6265 Section 5.2. The Response::createFromRaw
method passes the Set-Cookie header data to this new implementation
in order to create a Cookie object from it.

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

[BUGFIX] Initialize resource wrapper before session
-----------------------------------------------------------------------------------------

If you try to attach a resource-dependent object to a session, this
will fail, as the _wakeup() method is called before the resource
wrappers are initialized.

This patch makes sure that the resource framework is initialized
before the session framework in the standard runtime sequence of the
bootstrap.

* Fixes: `#42434 <http://forge.typo3.org/issues/42434>`_
* Commit: `84ef743 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=84ef743d1530b5344b2599efea211bd311f9e16c>`_

[FEATURE] Identify key pair by fingerprint in RsaWalletService
-----------------------------------------------------------------------------------------

This change uses SSH compatible fingerprints of the RSA public
key instead of a random UUID to store keys. This allows to have
a consistent reference of keys across systems.

This change is backwards-compatible with the old behavior, because#
stored keys can still be used with their generated UUID.

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

[BUGFIX] Support named indexes in multivalue translation labels
-----------------------------------------------------------------------------------------

* Resolves: `#42169 <http://forge.typo3.org/issues/42169>`_
* Commit: `71318ee <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=71318ee5819bc78a04d2c632774ac0abb13b946f>`_

[BUGFIX] Typo in setfilepermissions Script
-----------------------------------------------------------------------------------------

This fixes the output of the setfilepermissions script to the correct
spelling of TYPO3.

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

[BUGFIX] Fix sign method in RsaWalletService
-----------------------------------------------------------------------------------------

Fixes the sign method to use the actual key string for
openssl_sign and adds a unit test for that.

Additionally a wrong return type is fixed in the interface.

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

[TASK] Tighten package key check a little
-----------------------------------------------------------------------------------------

The pattern used to check for a valid package key was made less strict
during composer integration. Although composer itself imposes almost no
restrictions, packagist requires a "vendor/name" format.

This changes thus adjusts the PATTERN_MATCH_PACKAGEKEY constant to
require a dot in the package key.

* Resolves: `#42319 <http://forge.typo3.org/issues/42319>`_
* Commit: `9762f62 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9762f6271c1bedbffe7295dfc9281e30a6d029a1>`_

[BUGFIX] Make HTTP_HOST not always followed by port colon
-----------------------------------------------------------------------------------------

If there is no port given, a trailing colon for the HTTP_HOST
is not allowed to follow.

* Fixes: `#42241 <http://forge.typo3.org/issues/42241>`_
* Commit: `53a6fde <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=53a6fde577e9e55792b8217b9874a286b3f75438>`_

[TASK] CGL-Documentation - Add a notice about byte order mark
-----------------------------------------------------------------------------------------

* Fixes: `#42164 <http://forge.typo3.org/issues/42164>`_
* Commit: `96f4778 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=96f47786555fb39f43f30f08c99a18c178c4664c>`_

[TASK] Remove oneline exception for throw statements
-----------------------------------------------------------------------------------------

Removes the exception for throwing exceptions in oneliners, which is
not allowed anymore.

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

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

[BUGFIX] Workaround issues with multiline commit messages
-----------------------------------------------------------------------------------------

In core migration functionality, particularily on windows
systems, the commit message is cropped at the first occurrence
of a newline character. This leads into trouble when the core
migration tool searches for the Migration: ... footers in the
commit history as they won't be there then.

* Related: `#41848 <http://forge.typo3.org/issues/41848>`_
* Commit: `77f148c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=77f148cde87cbf3a4da95ba4b3786ea2dfc6ba33>`_

[FEATURE] Let HTTP browser follow Location redirects
-----------------------------------------------------------------------------------------

Since Http's Browser object should behave like a real browser, Location
headers are now followed (as soon as they come with a 3xx response code
as of RFC2616 14.30).

This patch includes a safeguard that prevents following infinite
redirect loops and an option to disable the automatic redirection
altogether.

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

[BUGFIX] Apply PSR-0 code migration only to non-PSR-0 packages
-----------------------------------------------------------------------------------------

This change adds a condition to prevent the code migration to move
classes inside the Classes directory if it is already in PSR-0 layout.

Additionally an already existing composer.json will not be overwritten
and a safeguard was added to AbstractMigration that checks if a file
that should be deleted actually exists.

* Related: `#41848 <http://forge.typo3.org/issues/41848>`_
* Commit: `03d6d6f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=03d6d6fdbdedc0819ba9b7aa9312bd436cb7a84d>`_

[BUGFIX] Correct path check in HTTP\\Cookie constructor
-----------------------------------------------------------------------------------------

A variable name has been corrected in the constructor
of the Cookie class.

* Related: `#39836 <http://forge.typo3.org/issues/39836>`_
* Commit: `9f40790 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9f407900b2f2c52c0215ef1a806e3a7e17712b87>`_

[FEATURE] Include technical details to exceptions in dev context
-----------------------------------------------------------------------------------------

Since the implementation of custom error renderers (#39423)
404 errors don't show any technical details to the user,
even in development context.

This change passes the exception to the fluid template which can
render it, if configured. Furthermore this adds default rendering
options and configures all exceptionHandlers to include technical
details in development context.

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

[TASK] Documentation: Fix link to CGL on one page document
-----------------------------------------------------------------------------------------

The link was renamed during the FLOW3 to TYPO3 Flow replacement
but the site package is not yet renamed.

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

[BUGFIX] CSRF token is not appended for actions with mixed case characters
-----------------------------------------------------------------------------------------

The CrsfProtectionAspect no longer appends the CSRF token when the
target action contains uppercase characters (e.g. someSpecialAction).

This change fixes this by resolving the correctly cased method name
before checking for the SkipCsrfToken annotation in the aspect.

* Fixes: `#42083 <http://forge.typo3.org/issues/42083>`_
* Commit: `9ea304b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9ea304b4531e404112ae9c189554ef73057fa05b>`_

[BUGFIX] Respect explicit empty subpackage in uriFor with subrequests
-----------------------------------------------------------------------------------------

This change just checks for the empty string in the routing arguments and
sets a controller argument for building the URL. That way no subpackage
argument will be overriden from the subrequest.

* Fixes: `#42082 <http://forge.typo3.org/issues/42082>`_
* Commit: `8ebb3f6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8ebb3f6ecb6cbbb2eae971acc240e7091f5b9b5e>`_

[BUGFIX] Fix path to database error template
-----------------------------------------------------------------------------------------

The Settings.yaml contained an outdated path for the
Fluid template which is supposed to display database
errors.

The message of the fatal error caused by this bug contained:
'Template file "resource://TYPO3.Flow/Private/Error/Default_Template.html"
could not be loaded'

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

[TASK] Check for unexpected properties in Policy schema
-----------------------------------------------------------------------------------------

This change disables unknown properties for resources and
acl group keys to prevent mistakes. For example, the schema should fail
if an entry is directly added to "resources" without using the
"method" subkey.

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

[BUGFIX] Fix composer manifest loading and unit tests
-----------------------------------------------------------------------------------------

This change fixes 2 tests in PackageTest that failed when run from
a package directory, because the $package->getComposerManifest()
method did pick up the relative composer.json file inside that.

Additionally some minor CGL cleanups in PackageTest.

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

[BUGFIX] UriBuilder doesn't properly handle arguments of SubRequests
-----------------------------------------------------------------------------------------

If you're creating a link inside a SubRequest that link currently
doesn't add/remember the Arguments, Controller, etc from the
parentRequest if it's nested more than one level: MainRequest->SubRequest->SubRequest

This change fixes the mergeArgumentsWithRequestArguments
to properly add all of parentRequests for links inside SubRequests.

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

[BUGFIX] Remove unnecessary call for code compilation
-----------------------------------------------------------------------------------------

This change removes the forced compile command subrequest
in a non Production context. Proxy classes are only
initialized if the code cache is not up to date or with
a special second check after file monitoring was run.

This speeds up the development context quite enormous
if no code was changed.

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

[BUGFIX] Tests fail when run from package path.
-----------------------------------------------------------------------------------------

Composer manifests missing in some tests, and not read properly by
package in others

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

[TASK] Exclude classes with broken PSR-0 in DomCrawler
-----------------------------------------------------------------------------------------

See https://github.com/symfony/DomCrawler/pull/7

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

[BUGFIX] ActionRequest does not resolve correctly cased package key
-----------------------------------------------------------------------------------------

ActionRequest resolves lowercased package key by looking for
Package class instead of asking PackageManager. If no Package class
exists in the given Package, the request fails.

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

[TASK] Small code cleanup in Package
-----------------------------------------------------------------------------------------

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

[BUGFIX] Documentation mentions the NotEmptyValidator
-----------------------------------------------------------------------------------------

The Part II (Getting Started), Validation chapter contains
a note about the requirement and purpose of the NotEmptyValidator.

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

[BUGFIX] Changed f:form.textbox to f:form.textfield in Documentation
-----------------------------------------------------------------------------------------

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

[TASK] Make exception templates more configurable
-----------------------------------------------------------------------------------------

At the moment only the file name can be set, but not
the format, partial & layout paths are configurable.

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

[BUGFIX] Adjust unit test for YamlSource to changed indentation
-----------------------------------------------------------------------------------------

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

[TASK] Use two spaces as yaml indentation instead of four
-----------------------------------------------------------------------------------------

This was introduced when upgrading the Symfony Yaml package
to the latest source with the move to composer.

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

[TASK] make Package::getComposerManifest() public
-----------------------------------------------------------------------------------------

This is needed for fixing the site import of setup

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

[BUGFIX] fix unit tests
-----------------------------------------------------------------------------------------

The test of Idc1d9d48998a0de0ecd07f834baa769ddf1e5ba4 was not adjusted
to the rename.

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

[BUGFIX] Update composer type in migration
-----------------------------------------------------------------------------------------

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

[BUGFIX] Adjust Package Management to updated composer package types
-----------------------------------------------------------------------------------------

This fixes issues f.e. with functional test runs of Phoenix.

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

[BUGFIX] Fix monitoring of changed class files
-----------------------------------------------------------------------------------------

This change fixes the resolving of the class name from a changed file
since the PSR-0 changes caused some problems with the assumption of
the class name layout in that place. The change keeps the old
behavior for test files since these are not yet updated to a new
layout.

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

[BUGFIX] Remove unnecessary call to to sortAndSavePackageStates
-----------------------------------------------------------------------------------------

This change should fix the saving of a new PackageStates.php file on
every request which causes a rebuild of proxy classes and flushing of
other caches through file monitoring.

* Resolves: `#41497 <http://forge.typo3.org/issues/41497>`_
* Commit: `14a7882 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=14a788244e4be7b84907e576d758567942d0cf07>`_

[BUGFIX] Fix Proxy Blacklisting
-----------------------------------------------------------------------------------------

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

[BUGFIX] Try to fix composer loading problem
-----------------------------------------------------------------------------------------

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

[!!!][TASK] Rename FLOW3 to TYPO3 Flow
-----------------------------------------------------------------------------------------

Adjusts the code, comments, documentation as needed.

A code migration to adjust packages and schema migrations are added as
well.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `57526b7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=57526b7fa57d82b08b64144214df9ffb1e475ffe>`_

[!!!][TASK] Rename FLOW3 to TYPO3 Flow, move files
-----------------------------------------------------------------------------------------

Moves files so names match the FLOW3 to Flow change.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `69d40a9 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=69d40a96d0795cab6414fa153e8cb586f48b988d>`_

[TASK] Some leftover case changes
-----------------------------------------------------------------------------------------

This adjusts the case of some forgotten namespaces and classes.

Also it marks a number of migrations as (correctly) applied.

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

[TASK] Adjust PackageManagerTest to "skip unnamed" change
-----------------------------------------------------------------------------------------

With I5e29317bbada2b6aed13fe26b50c1ae1ed9c2c80 a check was added that
lead to a failing unit test. So much for trivial stuff. :)

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

[BUGFIX] Make sure generated composermanifest is valid
-----------------------------------------------------------------------------------------

* Fixes: `#41449 <http://forge.typo3.org/issues/41449>`_
* Commit: `17af2c0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=17af2c03a747b3fc2bb07e81c6395ed3bbf60a67>`_

[TASK] Skip "packages" without name in manifest
-----------------------------------------------------------------------------------------

When using packages that have example "composer.json" files (like
Doctrine ORM 2.3 in source form) this will avoid errors.

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

[BUGFIX] Fix package / manifest detection
-----------------------------------------------------------------------------------------

In production context class loading fails because the classloader has a
wrong map for namespaces. This is caused by getNamespace() doing the
wrong thing - because it finds no composer manifest.

This change fixes this.

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

[TASK] Copy dotfiles during composer install
-----------------------------------------------------------------------------------------

Dotfiles like .htaccess need to be copied as well.

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

[FEATURE] Allow copy of dotfiles in copyDirectoryRecursively()
-----------------------------------------------------------------------------------------

Adds a new parameter to copyDirectoryRecursively(), namely the boolean
$copyDotFiles.

To enable this, also readDirectoryRecursively() now knows a new
parameter named $returnDotFiles.

* Resolves: `#41421 <http://forge.typo3.org/issues/41421>`_
* Commit: `9b63414 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9b63414540d98a64e26f361f017bee3bedf9de1a>`_

[TASK] Remove leftover .Shortcuts handling
-----------------------------------------------------------------------------------------

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

[TASK] Fix flow3 commandline script
-----------------------------------------------------------------------------------------

Shortens a docblock and removes define() left over from recent work.

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

[TASK] Move .gitignore to composer install default
-----------------------------------------------------------------------------------------

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

[TASK] Tweak install script behavior, add (example) configuration
-----------------------------------------------------------------------------------------

With this change the composer post install/update script will discern
between "Essentials", being files that will always be copied - even if
they already exist in their target location - and "Defaults", being
files that will be copied only if not already existing.

This is used to add the example configuration files as essentials and a
Routes.yaml as default.

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

[FEATURE] Allow keeping files in copyDirectoryRecursively()
-----------------------------------------------------------------------------------------

This change adds a flag $keepExistingFiles to copyDirectoryRecursively()
in Files. It defaults to FALSE and if set to TRUE allows to keep files
already present in the target location.

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

[BUGFIX] Add .htaccess file to installed files
-----------------------------------------------------------------------------------------

* Fixes: `#41369 <http://forge.typo3.org/issues/41369>`_
* Commit: `987b91a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=987b91a89a4c1792ed5c7b88887147758f189a2c>`_

[TASK] Update settings to new name of installer package
-----------------------------------------------------------------------------------------

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

[TASK] Update class exclusion to changed composer installer name
-----------------------------------------------------------------------------------------

The installer change it's package key from christianjul.installers to
flow3.composerinstallers so the exclusion needs to be adjusted.

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

[TASK] Change dependency to require flow3/composer-installers
-----------------------------------------------------------------------------------------

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

[TASK] Use composer version of installer
-----------------------------------------------------------------------------------------

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

[TASK] Require christianjul/installers directly
-----------------------------------------------------------------------------------------

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

[TASK] Test commit for composer install
-----------------------------------------------------------------------------------------

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

[TASK] Change requirement to real composer installer
-----------------------------------------------------------------------------------------

Also drop require-dev - only valid for root manifests

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

[BUGFIX] Handle missing composer type gracefully
-----------------------------------------------------------------------------------------

The type in a composer manifest is optional, so we need to check for it's
existence before we use it.

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

[TASK] Install "Web/index.php" on Composer install
-----------------------------------------------------------------------------------------

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

[!!!][TASK] Add utility to get classes namespace entry-point
-----------------------------------------------------------------------------------------

With PSR-0 the entry-point of the classes files needs prefixing of the
pathified namespace. Add a getter, getClassesNamespaceEntryPath(), to
resolve this.

Also makes sure the namespace is only resolved once.

Renames getPackageNamespace() to getNamespace() - adjust your code as needed.

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

[BUGFIX] Allow excludeClasses setting for non-installed package
-----------------------------------------------------------------------------------------

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

[BUGFIX] getClassesPath() returns path without trailing slash
-----------------------------------------------------------------------------------------

* Fixes: `#41181 <http://forge.typo3.org/issues/41181>`_
* Commit: `1925ba3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1925ba316fda179e624f4dc1a0ba76848517c0cc>`_

[TASK] Add code migration to "composerify" a package
-----------------------------------------------------------------------------------------

The migration moves all class files into a PSR-0 compatible directory
structure and adds a composer manifest; Package.xml is removed.

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

[FEATURE] Isolate migrations and provide package data
-----------------------------------------------------------------------------------------

With this change migrations have access to the data of the target
package (the package currently being migrated) and can be sure that each
migration run is isolated from other runs (the internal state is reset
for each execution).

The command output is tweaked a little along the way.

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

[FEATURE] Add moveFile() and deleteFile() operations to migrations
-----------------------------------------------------------------------------------------

Code migrations now can use deleteFile() and moveFile() to work on
files.

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

[FEATURE] Make metadata available to migrations
-----------------------------------------------------------------------------------------

This makes metadata from Package.xml and composer.json available
to migrations.

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

[TASK] Fix PSR-0 compatibility for functional tests
-----------------------------------------------------------------------------------------

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

[TASK] Update unit tests to vfsStream > 1.0
-----------------------------------------------------------------------------------------

This adds "mikey179/vfsStream" to composer.json and adjusts the unit
tests to the new vfsStream API.

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

[BUGFIX] Fix failing tests in package management
-----------------------------------------------------------------------------------------

* Fixes: `#41092 <http://forge.typo3.org/issues/41092>`_
* Fixes: `#41093 <http://forge.typo3.org/issues/41093>`_

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

[BUGFIX] PackageStates.php does not contains relative paths
-----------------------------------------------------------------------------------------

* Fixes: `#41088 <http://forge.typo3.org/issues/41088>`_
* Commit: `9476151 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=94761514bd3fac7bd48884569ed538cc7b8f7139>`_

[TASK] Make package management use Composer
-----------------------------------------------------------------------------------------

Refactor package management to use Composer, also relax constraints in order
to utilize 3rd party composer / PSR-0 components.

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

[TASK] Exclude specific classes from object management
-----------------------------------------------------------------------------------------

In order to exclude classes from object management - either for performance
or compatibility reasons - create a configuration that allows specific
classes to be excluded. Most be configurable outside of package in question
to support 3rd party components

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

[TASK] Handle exceptions thrown in ClassReflection
-----------------------------------------------------------------------------------------

When a class cannot be loaded for reflection, it will be ignored and a message
is logged.

This makes sure that classes that are never used do not break the system. If
they are indeed used later, things will still break, but even at a more
helpful position.

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

[TASK] Add Composer installer script and resources
-----------------------------------------------------------------------------------------

Upon running 'install' or 'update' with composer, required paths
and files outside of TYPO3.FLOW3 package must be created.

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

[TASK] Add composer manifest
-----------------------------------------------------------------------------------------

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

[TASK] Update referenced paths to reflect PSR-0 paths
-----------------------------------------------------------------------------------------

See Idad621923ffccdb7b2742d9aba0ff22fdab3e192 for the files being moved.

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

[!!!][TASK] Move all classes to PSR-0 compatible path
-----------------------------------------------------------------------------------------

In order to be fully PSR-0 compatible the path below the classes
directory should now be in a path identical to the namespace

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

[FEATURE] Provide flag for disabling link protection in UriBuilder
-----------------------------------------------------------------------------------------

This introduces a new flag for the UriBuilder which allows to configure
if a link built by the UriBuilder may be modified by some security
mechanism or not. FLOW3's CSRF protection mechanism now considers this
flag.

By disabling link protection, it is now possible on a per-link basis,
to generate a link without CSRF protection tokens for cases when it's
clear that links are public.

This patch also removes the CSRF protection of links used in ExtDirect
services. This needs to be re-implemented in the ExtJS package.

* Resolves: `#41137 <http://forge.typo3.org/issues/41137>`_
* Commit: `2058a64 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2058a64d73c74a6a647115af95112fa05039bfeb>`_

[FEATURE] Convenience function for registering routes in functional tests
-----------------------------------------------------------------------------------------

This adds a new convenience function registerRoute() to the functional
base testcase.

* Resolves: `#41136 <http://forge.typo3.org/issues/41136>`_
* Commit: `6562a48 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6562a48e802265d404f1d80c6154a2280b122aa9>`_

[BUGFIX] Debugger now respects possible occurence of Closures
-----------------------------------------------------------------------------------------

A trial isset() call for a property of a Closure resulted in a PHP
error saying "Closure objects cannot have properties". To avoid this,
the isset() statement has been replaced with a property_exists().

This is considered slower than isset(), like claimed in a User Contributed
Note [1], but obviously the only workaround for these cases [2]. And speed
is not an issue when the debugger is used…

[1] http://www.php.net/manual/en/function.property-exists.php#97538
[2] https://bugs.php.net/bug.php?id=50146

* Fixes: `#41046 <http://forge.typo3.org/issues/41046>`_
* Commit: `15d3860 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=15d38605eb1e2597357ef0705cf70bf8303f97bb>`_

[TASK] Adjust CsrfProtectionAspect unit test
-----------------------------------------------------------------------------------------

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

[BUGFIX] Make sure autoloader is always unregistered
-----------------------------------------------------------------------------------------

ClassReflection adds an autoloader to catch cases of unresolved
classes. This autoloader needs to be unregistered reliably after
use.

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

[BUGFIX] Cleanup CSRF protection issues
-----------------------------------------------------------------------------------------

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

[TASK] Clarify parent request type in docblocks
-----------------------------------------------------------------------------------------

Instead of just "object" this uses a more specific type in a few
docblocks ("ActionRequest|HttpRequest").

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

[TASK] Whitespace fix in class docblock
-----------------------------------------------------------------------------------------

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

[BUGFIX] Display error message if "Data/" is not writeable
-----------------------------------------------------------------------------------------

If the directory "Data/" or "Data/Persistent/" does not exist and could
not be created by the bootstrap, an error message is now displayed which
hints on using the setfilepermissions command.

* Resolves: `#40890 <http://forge.typo3.org/issues/40890>`_
* Commit: `939181e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=939181e9b8e78d8c8304c5d04cc275fb55d2c226>`_

[BUGFIX] Parse target type before comparing the instance with it
-----------------------------------------------------------------------------------------

The PropertyMapper chokes on already converted Objects if the targetType
is a compositeType like Collection<Entity>.

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

[TASK] Small code cleanup in ReflectionService
-----------------------------------------------------------------------------------------

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

[BUG] Fix wrong escape sequence in yaml
-----------------------------------------------------------------------------------------

Backslash is not a valid escape-character in yaml for single-
quoted strings.

see: http://yaml.org/spec/current.html#id2534365

* Resolves: `#40840 <http://forge.typo3.org/issues/40840>`_
* Commit: `604406e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=604406e9908306b19f0725c257bc212e6188ea6e>`_

[TASK] Custom error page: higher priority for class matches
-----------------------------------------------------------------------------------------

All custom error rendering options should be evaluated for
matches of the exception class name before trying to match
against status code because the latter are often used as
fallback options (for example, 404 for anything not found).

The TYPO3.TYPO3 package wouldn't be able to display a specific
"Missing Homepage" error message without this patch because
FLOW3's 404 handling would kick in before.

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

[TASK] Handle errors in subprocesses properly
-----------------------------------------------------------------------------------------

To be able to properly handle missing class dependencies in ClassReflection
a ClassLoader should be added to end of the ClassLoader chain that throws
an exception if it's reached, meaning the class couldn't be loaded.

Make executeCommand throw an exception on errors, rather than just echo any
command output collected.

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

[!!!][FEATURE] Custom Error Renderers
-----------------------------------------------------------------------------------------

This extends the exception handlers so that they can render arbitrary
templates based on the status code and/or class name of the thrown
exception.

The template to be used and variables that should be passed to the
template are configured in so called "renderingGroups" in the options
of the exception handler.

This is a breaking change because it deprecates the provided
NotFoundController & NotFoundView.

This patch also contains the related documentation, including general
information about FLOW3's error handling.

Also included in this patch is an update to the YAML schema definitions.

Furthermore, removed all hints on "FLOW3" from the production exception
handler.

* Resolves: `#39423 <http://forge.typo3.org/issues/39423>`_
* Commit: `20e41f3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=20e41f38b36482eb3cd861463885e1a032111be4>`_

[FEATURE] Add identifier to Booting\\Sequence
-----------------------------------------------------------------------------------------

The identifier is set in Bootstrap to "runtime" and "compiletime"
respectively.

If you wire a slot to the beforeInvokeStep and afterInvokeStep
signals, the identifier will be handed over as second parameter
after the step instance.

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

[TASK] Add logging to importResource() and createResource()
-----------------------------------------------------------------------------------------

When importing or creating a resource fails, the reason is
logged to the system log.

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

[BUGFIX] Fix failing UnitTests for new AuthenticationController
-----------------------------------------------------------------------------------------

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

[BUGFIX] Always add CSRF token, if authenticated
-----------------------------------------------------------------------------------------

This ensures that the CSRF token is also present
if the main request is not restricted, but if
the subrequests is.

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

[FEATURE] Provide a general abstract authentication controller
-----------------------------------------------------------------------------------------

This can be used to be inherited from in a custom package,
to enable developers to quickly implement their own
authentication controller.

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

[TASK] Fix return type documentation of createQuery
-----------------------------------------------------------------------------------------

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

[BUGFIX] Fix SQL logging in Production context
-----------------------------------------------------------------------------------------

The logger factory in Objects.yaml refers to a Setting directive which
with this change is present in Production context. Before, the Settings
could not be found, resulting in a NULL argument where an array is
expected as soon as query logging was enabled in Production.

Some cleanup to logging settings along the way.

* Fixes: `#40580 <http://forge.typo3.org/issues/40580>`_
* Commit: `007e41b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=007e41ba3e8906661647579ecba37720be968f3b>`_

[FEATURE] Improved argument type watch in HTML debug backtrace
-----------------------------------------------------------------------------------------

In the debug backtrace of method calls, this gives concrete
information about the actual argument values in case of being
boolean; and reveals the amount of array elements, if such.

An array is now presented as ``array|2|`` for example, if
it has two elements.

Boolean values are not longer only displayed as ``boolean``,
but as their concrete TRUE or FALSE value accordingly. Since
the color scheme stays the same, it can still easily be
distinguished from string values.

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

[BUGFIX] Session Timeout shouldn't be changed to 10 seconds
-----------------------------------------------------------------------------------------

This reverts the changed session timeout setting introduced
in If7d004c7.

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

[BUGFIX] InternalRequestEngine observes exception status code
-----------------------------------------------------------------------------------------

The InternalRequestEngine set the status code in case of an exception
to 500 in any case. With this change it will instead use the code
defined in an exception, if available.

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

[BUGFIX] Prevent data from destroyed session from being loaded
-----------------------------------------------------------------------------------------

This fixes a problem with session data which is being unserialized
even though its session is about to be destroyed. Because the
time of the last activity was stored in the session and needs to be
retrieved in order to determine if the session is still valid, also all
other session data is being unserialized by PHP. This results in
session scope objects registering themselves at the Object Manager
due to their code in __wakeup().

Now the session time out is not stored in the session anymore but
in its own cookie. Therefore the session data is only unserialized
if the session is still valid.

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

[BUGFIX] Throw exception on CSRF token error
-----------------------------------------------------------------------------------------

Currently, if a required CSRF token is missing or invalid,
FLOW3 dies with a hard coded "Access denied!".

This change disables the try/catch blocks in the
RequestDispatchingAspect so that the access denied
exception is actually rendered.

This shouldn't pose a security issue as details are hidden
in production context.

* Related: `#27798 <http://forge.typo3.org/issues/27798>`_
* Commit: `1b3a9e2 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1b3a9e25b1ee2738ea30547d395e9f6b576af4fa>`_

[BUGFIX] Fix request injection in security context
-----------------------------------------------------------------------------------------

As inject* methods are excluded from the session
lazy loading proxy mechanism, the injectRequest
method of the security context didn't work correctly
in requests with a session timeout. Renaming the
method to setRequest solves the problem.

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

[FEATURE] Enable functional tests to be executed by non CLI SAPI
-----------------------------------------------------------------------------------------

The FunctionalTestRequestHandler should be executable by non CLI requests to
enable TestRunners like VisualPHPUnit.

* Fixes: `#40273 <http://forge.typo3.org/issues/40273>`_
* Commit: `8d01cdf <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8d01cdf42987f9d1104f93ca785a69a69eebbd7e>`_

[FEATURE] cURL request engine for HTTP browser
-----------------------------------------------------------------------------------------

This provides a new request engine, based on cURL,
which can be used with the virtual browser contained
in FLOW3's HTTP foundation. It can be used to send
requests and receive responses via HTTP.

This patch also contains a few minor modifications in
the RequestEngineInterface and InternalRequestEngine
class.

* Resolves: `#40414 <http://forge.typo3.org/issues/40414>`_
* Commit: `20a8c74 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=20a8c74c3b5db0ce787c72cfdc44249a806690a1>`_

[!!!][BUGFIX] Misused JoinColumns in ManyToMany
-----------------------------------------------------------------------------------------

With this fix the JoinColumns are created and used in the same
way regardless if you have a JoinTable annotation.

This is (almost) a cosmetic fix as it works without, but can lead
to confusion if looking at the database.

Breaking change as the JoinColumns could change if you annotated
with JoinTable.

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

[!!!][BUGFIX] Don't override orphanRemoval setting from Doctrine
-----------------------------------------------------------------------------------------

In Doctrine 2 ORM, orphanRemoval is disabled by default. In FLOW3 we want
orphanRemoval to happen, if the target is not an aggregate root, changing
the default Doctrine behavior.

Because we want developers to be able to override that override, we had a
check in place, to favor the setting coming from the annotation. But since
there is no way to check if the FALSE in the orphanRemoval of an annotation
is the default or has been explitly set, this would fail to allow an
override with FALSE.

For many-to-many we thus assume that orphanRemoval is very rarely a
useful thing, and thus skip our own default handling.

If you want orphanRemoval on many-to-many associations, you now must
explicitly enable it with the annotation option!

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

[BUGFIX] Fix Headers::has() for Cache-Control
-----------------------------------------------------------------------------------------

The Http\\Headers::get() method now correctly returns
TRUE if a cache control header exists.

* Resolves: `#40372 <http://forge.typo3.org/issues/40372>`_
* Commit: `28fc7e7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=28fc7e7b717218ee69516112373bd5b6a7c9237a>`_

[TASK] Add Windows version hint to documentation
-----------------------------------------------------------------------------------------

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

[TASK] Detect inject methods more strictly
-----------------------------------------------------------------------------------------

Currently every method starting with "inject" is considered
for property injection by the ConfigurationManager.
That includes methods named "inject" or "injectionFoo".

This change makes the detection more strict to only accept
methods that start with "inject" followed by an upper case
character.

* Related: `#39681 <http://forge.typo3.org/issues/39681>`_
* Commit: `45f872a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=45f872a57b3a07b7d08e3136f42effa3ebb15072>`_

[FEATURE] Make WebRedirect EntryPoint less Routing dependent
-----------------------------------------------------------------------------------------

The WebRedirect currently expects an option uri that points
to a relative or absolute URI to redirect when trying to access
a protected action.

This change makes it possible to specify *route values* instead
so that the Routing framework can determine the correct target
URI depending on the Routes.yaml configuration.

* Resolves: `#39837 <http://forge.typo3.org/issues/39837>`_
* Commit: `94c0c7b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=94c0c7bb26561a09a7df527a76572188ab8e06a9>`_

[BUGFIX] Loop confuses variable check on migrating
-----------------------------------------------------------------------------------------

When migrating code and not specifying a package to work on, the code
would get confused after the first available migration, because the
internal loop used $packageKey as well.

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

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

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

[FEATURE] Allow mapping of indexed property names with placeholder
-----------------------------------------------------------------------------------------

For multi-valued property types (Doctrine\\Common\\Collections\\Collection or
array) the property mapper uses indexes as property names. To match the
property mapping configuration for any index, the path syntax supports an
asterisk as a placeholder::

	$propertyMappingConfiguration
		->forProperty('items.*')
		->setTypeConverterOption(
			'TYPO3\\FLOW3\\Property\\TypeConverter\\PersistentObjectConverter',
			\\TYPO3\\FLOW3\\Property\\TypeConverter\\PersistentObjectConverter::CONFIGURATION_CREATION_ALLOWED,
			TRUE
		);

This also works recursively, as in 'items.*.author'.

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

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

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

[BUGFIX] Fix reflection on PHP 5.3.16
-----------------------------------------------------------------------------------------

The fix for https://bugs.php.net/62715 landed in PHP 5.3.16, and because of
https://bugs.php.net/62874 reflection fails (in Production context) with a
pretty unhelpful exception:

 Fatal error: Uncaught exception … with message 'Parameter is not optional' in …

This change adds an additional check with isOptional() to the relevant code
part.

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

[BUGFIX] Alphanumeric-Validator fails on umlauts
-----------------------------------------------------------------------------------------

This change adds support for umlauts in the AlphanumericValidator,
by changing the regex pattern to [:alnum:] and adding utf-8 mode flag.

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

[FEATURE] Control Validation Groups via annotations
-----------------------------------------------------------------------------------------

This feature adds support for overriding validation groups in actions through
@FLOW\\ValidationGroups annotation.

* Resolves: `#36695 <http://forge.typo3.org/issues/36695>`_
* Commit: `46ea9e1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=46ea9e11c74db201fd7dc127e618f657f8784d12>`_

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

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

[TASK] Increase branch version number to 1.2
-----------------------------------------------------------------------------------------

This updates the constant in Bootstrap.

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

[TASK] Get rid of strtolower() in foreach loop
-----------------------------------------------------------------------------------------

A tiny optimization I could not resist.

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

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

* Related: `#27561 <http://forge.typo3.org/issues/27561>`_
* Commit: `522057e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=522057e5fbab87ee606039023c93cad3a1b7dfbf>`_

[FEATURE] Cookie management support
-----------------------------------------------------------------------------------------

This implements the cookie management feature
which previously only existed as a stub in the
HTTP foundation.

This patch also contains the corresponding tests
and documentation.

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

[WIP][TASK] New chapter: MVC
-----------------------------------------------------------------------------------------

This adds a new chapter to The Definitive Guide.

Also adjust some mentions of "DocComment" in other chapters
and adds a stub for a section about HMAC to the security chapter.

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

[FEATURE] Validate email addresses with filter_var()
-----------------------------------------------------------------------------------------

This change makes FLOW3 use filter_var instead of a regex check
to validate email addresses.

* Resolves: `#39714 <http://forge.typo3.org/issues/39714>`_
* Extbase Issue: `#6970 <http://forge.typo3.org/issues/6970>`_

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

[BUGFIX] PropertyMapper should be able to work with recursive already-converted objects
-----------------------------------------------------------------------------------------

If f.e. an array of already converted objects is passed into the PropertyMapper, a fatal error
will be thrown.

Thus, we move the check from convert() to doMapping() such that it works recursively.

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

[FEATURE] Added some Signals for the Debug.Toolbar
-----------------------------------------------------------------------------------------

- added an Signal to AbstractAdvice on Advice invocation
- added an Signal to ActionRequest when it's dispatched
- added getSignals to the SignalSlot\\Dispatcher to get all configured Signals
  with it's slots

* Resolves: `#37879 <http://forge.typo3.org/issues/37879>`_
* Commit: `713ca78 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=713ca78986cc5d2c1b486a4a8a8ef84e5ee59c65>`_

[FEATURE] Configurable CLI Subrequest environment variables
-----------------------------------------------------------------------------------------

When debugging with xdebug, a major difficulty is that in development
and functional tests, there are always two requests being executed:
The main request and a CLI request inside.

Now, most IDEs do not support the (optional) feature of multi-threaded
PHP debugging, effectively stopping the sub-request and also the main
request in this case.

With this change it's possible to change xdebug configuration settings
for the CLI subrequests making it possible to debug them individually.
By default the remote port is now changed from 9000 to 9001 in
Development and Testing context. So you can debug the subrequest by
configuring your IDE to listen on port 9001.

Apart from that, this change allows you to set arbitrary environment
variables by adding entries to the
TYPO3.FLOW3.core.subRequestEnvironmentVariables setting.

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

[BUGFIX] Fix warning about property injection in test
-----------------------------------------------------------------------------------------

The DependencyInjectionTest testcase has a test called
injectionInParentClassIsDoneOnlyOnceOnCreationOfObject, leading to FLOW3
trying to use the inject method for the property
"ionInParentClassIsDoneOnlyOnceOnCreationOfObject"…

This change renames the test method to fix this.

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

[TASK] Support literal strings in boolean arguments
-----------------------------------------------------------------------------------------

This change adds support for string literals in boolean comparisons.
String literals have to be surrounded by single or double quotes and
may contain escaped single or double quotes.

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

[TASK] Add section about Uri class in HTTP chapter
-----------------------------------------------------------------------------------------

This adds some explanation for the use of the Uri class.

* Related: `#39424 <http://forge.typo3.org/issues/39424>`_
* Commit: `68d19d7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=68d19d7f323eeae42de93be85326ad8d0321a061>`_

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

This adds a new chapter to The Definitive Guide

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

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

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

[BUGFIX] Disable proxy building for Http classes
-----------------------------------------------------------------------------------------

This disables proxy building for (most of) the classes in
the Http part of FLOW3.

They are not needing it and some would circumvent the built
proxy because they are instantiated statically.

* Fixes: `#39005 <http://forge.typo3.org/issues/39005>`_
* Commit: `868e073 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=868e073b9877d562c6ed65a5158c1c67b3a501a8>`_

[BUGFIX] Fix arguments rendering for dumped backtraces
-----------------------------------------------------------------------------------------

When an exception was dumped to Data/Logs/Exceptions/…txt all
arguments were doubled, once with parenthesis around them, once
without. This change fixes this.

* Fixes: `#38625 <http://forge.typo3.org/issues/38625>`_
* Commit: `09d4a72 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=09d4a7203cf84ba031d1ea27e9318e5c1cf16b2c>`_

[BUGFIX] FLOW3's var_dump() still chokes on Doctrine collections
-----------------------------------------------------------------------------------------

Using Doctrine\\Common\\Util\\Debug::export() to render doctrine
collections leads to an exception because our Debugger expects
a string and doctrine's debugger returns an array.
This change fixes this by post processing the result.

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

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

[BUGFIX] Corrected annotation of assign method in ViewInterface
-----------------------------------------------------------------------------------------

A view is basically intended to be able to get arbitrary values,
hence data types assigned, so the annotation gets corrected to
accomodate for this.

* Fixes: `#39293 <http://forge.typo3.org/issues/39293>`_
* Commit: `9ede9cc <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9ede9cc9fedde3ac39d53e06556f70d333e1371a>`_

[TASK] New chapter: Command Line
-----------------------------------------------------------------------------------------

This is a new chapter for The Definitive Guide.
Also marked the executeCommand() method in the
Scripts class as an @api function.

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

[BUGFIX] RsaWalletService: Save keys only if modified
-----------------------------------------------------------------------------------------

This patch adds a check to the shutdown() method of the
RsaWalletServicePhp to make sure that the keys are only
saved to disk if they were actually modified.

* Resolves: `#39267 <http://forge.typo3.org/issues/39267>`_
* Commit: `752e4a6 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=752e4a6dc404667071261e9c210b867068cc7e01>`_

[BUGFIX] Missing setting namespace in error message
-----------------------------------------------------------------------------------------

When an invalid PHP binary is found, the error message hint at setting
the path in settings misses the setting namespace TYPO3 in the beginning.

* Fixes: `#39142 <http://forge.typo3.org/issues/39142>`_
* Commit: `32c8a20 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=32c8a20b3f512831ffc05402f1b72344df529e65>`_

[TASK] Fix partial validation example
-----------------------------------------------------------------------------------------

The partial validation example was flawed. This change updates the
example to an actual working usecase.

Credits to Ruud Alberts for finding.

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

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

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

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

This updates command, type converter and Fluid VH references.

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

[FEATURE] Catch PDOExceptions to prevent database information in debug backtrace
-----------------------------------------------------------------------------------------

Add catching of \\PDOExceptions to the Doctrine Query class, and output the
exception message & code, but prevent the debug backtrace leading up to
it, since it contains the database information in the method calls.

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

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

The links pointed to URLs no longer working.

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

[BUGFIX] Fix functional tests after FloatConverter change
-----------------------------------------------------------------------------------------

Somehow two failing functional tests went unnoticed so far,
broken with Ib95c52d958d765eb0a9cd20e415642186e25ee57.

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

[!!!][BUGFIX] Correct RepositoryInterface
-----------------------------------------------------------------------------------------

Fixes a docblock and adds __call() to the interface (thus the breaking
change flag), because everyone probably would expect it to be there.

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

[!!!][BUGFIX] Fix return values of Doctrine\\Repository magic methods
-----------------------------------------------------------------------------------------

Overrides __call from EntityRepository to make the methods return
the expected QueryResultInterface. Also adds support for countBy().

This is marked as a breaking change because if you relied on the
specific return values before, you need to adjust your code.

Along the way the code inside __call() is simplified.

* Fixes: `#38841 <http://forge.typo3.org/issues/38841>`_
* Commit: `934c2c4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=934c2c425de2f0eb71c8df18a7dda1860445239f>`_

[FEATURE] FloatConverter uses Locale parser
-----------------------------------------------------------------------------------------

If configured using the Property Mapping Configuration,
the FloatConverter now can also use the Locale parser
to get the intended `float` value from a string input.

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

[TASK] Correct typos in Coding Guidelines
-----------------------------------------------------------------------------------------

This corrects some typos in PartV/CodingGuidelines of the
documentation.

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

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

This trivially corrects some typos in code.

As a consequence, the DataNotSerializeableException was renamed
to DataNotSerializableException.

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

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

* Resolves: `#38680 <http://forge.typo3.org/issues/38680>`_
* Commit: `9f4dba0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9f4dba0552745df3e384da4f69ee5068b597263e>`_

[BUGFIX] Injections only on last level of class hierarchy
-----------------------------------------------------------------------------------------

Property injections are no longer called for every level of your
class hierarchy, which means they are only executed once now.

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

[BUGFIX] Fix order of monitoring and proxy building
-----------------------------------------------------------------------------------------

During bootstrap file monitoring would be run too late,
so that while change detection worked fine, the results
were not used correctly: Reflection data was updated,
but that happened after DI proxy building, so that e.g.
added Inject annotations would not have the expected
effect.

This change moves file monitoring before reflection
initialization to fix this.

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

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

Tweaks the DateTimeConverter docblock to be proper reST.

* Resolves: `#38646 <http://forge.typo3.org/issues/38646>`_
* Commit: `16e1493 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=16e149351ab162cfe613b707461ac6eef6707e3f>`_

[TASK] Add HTTP status code to exceptions
-----------------------------------------------------------------------------------------

Currently if an exception is rendered with either Debug-
or ProductionExceptionHandler the HTTP status is set to
"500 Internal Server Error".

This change adds a property "statusCode" to the FLOW3
base Exception allowing to set a custom HTTP status code.

This also sets status codes for some of the FLOW3 exceptions

* Related: `#27798 <http://forge.typo3.org/issues/27798>`_
* Commit: `2a3bfd1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=2a3bfd1e3ff6d07f7a79f245e1c61dfa9e182de1>`_

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

* Resolves: `#38561 <http://forge.typo3.org/issues/38561>`_
* Commit: `205d209 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=205d209a4f0c998665cfa89d5349b1a32fcd0d46>`_

[TASK] Tweak TypeConverter extends statements
-----------------------------------------------------------------------------------------

Use short class names for extends in TypeConverters.

* Related: `#38646 <http://forge.typo3.org/issues/38646>`_
* Commit: `69d2705 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=69d2705ca5012994cc66d86370521c5488f4dba0>`_

[!!!][TASK] Remove FLOW3's magic timezone setting behavior
-----------------------------------------------------------------------------------------

FLOW3 used to magically set a default timezone if there's none set
(in order to avoid the PHP notice being thrown, resulting in an
exception).

Because every default time zone will be the wrong one for most people;
and to raise awareness of having to care about the system's time zone,
this behavior is dropped.

This change is marked breaking because in cases where no timezone
is set in PHP configuration, FLOW3 will no longer work.

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

[BUGFIX] Allow PublishingConfiguration to be persisted
-----------------------------------------------------------------------------------------

Any resource publishing configuration attached to a resource could
not be persisted, because the needed mapping information for
Doctrine was missing and the target type of the relation was an
interface.

This change adds an AbstractPublishingConfiguration and the needed
annotations, plus a schema migration.

* Fixes: `#32826 <http://forge.typo3.org/issues/32826>`_
* Commit: `9dd8a61 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9dd8a61234837658af6168f49237a9bab0890e85>`_

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

* Fixes: `#38884 <http://forge.typo3.org/issues/38884>`_
* Commit: `91cb311 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=91cb31125ea1e5cab6bb96ccc705f33e64d244d3>`_

[FEATURE] Add flushConfigurationCache to ConfigurationManager
-----------------------------------------------------------------------------------------

This allows to remove the cached configuration in Production context.

* Resolves: `#38859 <http://forge.typo3.org/issues/38859>`_
* Commit: `42702ac <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=42702acc149b25756d6de32d424747a4ef274de7>`_

[BUGFIX] Adjust execute bit on some files
-----------------------------------------------------------------------------------------

This fixes the execute bit (and setfilepermissions.sh) so that
no differences are created when setting permissions on a fresh
clone.

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

[TASK] Some code cleanup, CSRF settings documentation
-----------------------------------------------------------------------------------------

Does some code (style) cleanup and adds descriptions for CSRF
options in Settings.yaml.

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

[BUGFIX] Have Doctrine\\Repository::findAll() return a QueryResult
-----------------------------------------------------------------------------------------

This makes the behavior of Doctrine\\Repository consistent and
allows the use of findAll() e.g. in combination with widgets.

With this change, findAll() also observes the default ordering
of a repository.

* Fixes: `#35035 <http://forge.typo3.org/issues/35035>`_
* Fixes: `#38381 <http://forge.typo3.org/issues/38381>`_

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

[BUGFIX] Fix timezone override side effect in DateTimeConverter
-----------------------------------------------------------------------------------------

Specifying a timezone override in DateTimeConverter would lead to
wrong times due to the timezone being applied to the finished date
instance, not upon creation.

* Fixes: `#35369 <http://forge.typo3.org/issues/35369>`_
* Commit: `49196a7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=49196a7cf539ce4eafb68e81d79fbfbfd265812a>`_

[FEATURE] Support tearDown for functional tests in generic persistence
-----------------------------------------------------------------------------------------

Implement a tearDown method in the generic persistence according to the
Doctrine PersistenceManager. The call is delegated to the underlying
backend.

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

[TASK] Clean up some code
-----------------------------------------------------------------------------------------

Fixes some comments, style issues and API usage.

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

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

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

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

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

[BUGFIX] Remove f:uri.resource title parameter in Guide
-----------------------------------------------------------------------------------------

The resource management documentation described a title parameter
for the ResourceViewHelper that ceased to exist a long time ago.

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

[BUGFIX] Reset InternalRequestEngine for each functional test
-----------------------------------------------------------------------------------------

Currently all functional tests share the same instance of
\\TYPO3\\FLOW3\\Mvc\\Routing\\Router because the InternalRequestEngine
is of scope singleton.
This leads to unexpected results and failing tests if tests add
custom routes.

This change fixes this by making the ObjectManager forget the
singleton instance of the request engine after each testrun.
This also reverts the changes that were introduced with
I5a5bf17d00c5be05748a18122dae42989f429221 as they did not
have the expected effect.

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

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

* Resolves: `#38669 <http://forge.typo3.org/issues/38669>`_
* Commit: `086ee1e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=086ee1ec27a228bd4570238c5113414100a05387>`_

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

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

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

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

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

[FEATURE] Extract authenticateAccount functionality
-----------------------------------------------------------------------------------------

This extracts the portion that is responsible for the actual account
authentication in order to use this exclusively in own tests.

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

[BUGFIX] Skip abstract classes in ensureAggregateRootInheritanceChainConsistency
-----------------------------------------------------------------------------------------

When using an abstract base class for domain models, the checks done in
ensureAggregateRootInheritanceChainConsistency() would fail, even though
it is fine to have an abstract base class not being aggregate root.

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

[TASK] Use Inject annotation instead of tag
-----------------------------------------------------------------------------------------

The ConfigurationBuilder still used getPropertyNamesByTag(),
this change replaces that with getPropertyNamesByAnnotation().

* Resolves: `#38622 <http://forge.typo3.org/issues/38622>`_
* Commit: `761e287 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=761e2876dbefe59e4fae759d7589b6505acbb2ec>`_

[TASK] Functional tests for Routing Framework
-----------------------------------------------------------------------------------------

Adds testing routes to the provided Testing/Routes.yaml
file and adds tests covering mathing and resolving of
arbitrary routes.

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

[BUGFIX] Reset the router for each functional test
-----------------------------------------------------------------------------------------

Currently all functional tests share the same instance of
\\TYPO3\\FLOW3\\Mvc\\Routing\\Router because the InternalRequestEngine
is of scope singleton.
This leads to unexpected results and failing tests if tests add
custom routes.

This change fixes this by reinitializing the request engine for
each test case that has testableHttpEnabled set to TRUE.

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

[BUGFIX] BaseUri contains default HTTPS port
-----------------------------------------------------------------------------------------

By resolving #37770 now the BaseUri and thus the base tag when
using <f:base /> contains the HTTP port if it's not equal to 80.

This adjusts Request and Uri to omit the port if it is equal to
443 and the request scheme is https.

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

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

[TASK] Add "Introduction" to the guide
-----------------------------------------------------------------------------------------

Added introduction section for the guide.

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Related: `#27561 <http://forge.typo3.org/issues/27561>`_

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

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

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

[BUGFIX] Fix wrong check in atomic writes code
-----------------------------------------------------------------------------------------

Fixes a wrong check in Cache\\FileBackend and RsaWalletServicePhp
as well as a bunch of one-line if blocks.

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

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

[FEATURE] Inform about lock expiry in CLI
-----------------------------------------------------------------------------------------

When a CLI command is not executed because the FLOW3 system
is locked, the time remaining until lock expiry is shown in
the message to the user.

* Resolves: `#38419 <http://forge.typo3.org/issues/38419>`_
* Commit: `849e9e1 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=849e9e1c3d1e6bd7e918274eb95ad70c81056615>`_

[TASK] Add "Essential Design Patterns" to the guide
-----------------------------------------------------------------------------------------

Re-uses some AOP verbage from part III of the guide.

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Related: `#27561 <http://forge.typo3.org/issues/27561>`_

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

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

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

[BUGFIX] IdentityRoutePart should accept identity array
-----------------------------------------------------------------------------------------

IdentityRoutePart::matchValue() returns an identity array in
the format array('__identity' => '<Identifier>') (see #37403).

This change ajusts resolveValue() to accept arrays in that
format, too.
This is required for widgets that fetch arguments from the
current request and pass them to the UriBuilder.

* Resolves: `#38404 <http://forge.typo3.org/issues/38404>`_
* Commit: `23a2b37 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=23a2b37d218ad04c90957e4fe49fd3791e22f93d>`_

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

* Related: `#35298 <http://forge.typo3.org/issues/35298>`_
* Commit: `91141a3 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=91141a35001fc9f1a77c888bfdf906b42daac337>`_

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

It just looked weird this way…

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `63421e0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=63421e014ec3b9d687a2f9f19f85b98b6443b3e4>`_

[BUGFIX] Fix Objects.yaml className example in guide
-----------------------------------------------------------------------------------------

The guide still stated that setting className in Objects.yaml
was possible for classes, but it works only for interfaces.

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

[BUGFIX] Fix code documentation of DatetimeParser
-----------------------------------------------------------------------------------------

The parser code documentation would state the parse methods
expect \\DateTime instances, but in fact strings are expected.

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

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

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

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

* Resolves: `#36651 <http://forge.typo3.org/issues/36651>`_
* Commit: `20f273f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=20f273f4389698d3c9c40e1c0b831dc17f503da8>`_

[TASK] Show up hints for nesting inline ViewHelpers
-----------------------------------------------------------------------------------------

This adds a section with some examples about how to nest
and use inline ViewHelpers.
Besides, it does some minor typo and formatting corrections.

* Resolves: `#34749 <http://forge.typo3.org/issues/34749>`_
* Commit: `28ab103 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=28ab103142b0567498c4fc7ed744a72209f647bb>`_

[BUGFIX] Log route values if a route can't be resolved
-----------------------------------------------------------------------------------------

This re-introduces logging if a route could not be resolved.
This behaviour was lost with I9605731f78cb1be9b0fb5c439d7149a676b6ccb7

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

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

* Resolves: `#36651 <http://forge.typo3.org/issues/36651>`_
* Commit: `3633f65 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=3633f65053ad7f072d6aa7a29754d62e0eebd37b>`_

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

Does code cleanup, mostly to documentation, but also tweaks
unused variables, missing return statements and similar things.

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

[TASK] Add "Architectural Overview" to the guide
-----------------------------------------------------------------------------------------

Based on the introduction from the old DocBook manual,
tweaked and amended.

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

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

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

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

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

[BUGFIX] Only map file uploads to arguments if not empty
-----------------------------------------------------------------------------------------

Currently the HTTP request converts the FILES superglobal
to request arguments even if no file has been uploaded.
This leads to an exception when submitting a form without
uploading a file because the property mapper receives a
corrupt source array in that case.

This adjust the HTTP request to only map values from the
FILES superglobal to arguments if a file has been uploaded.

This also tweaks the ResourceTypeConverter to accept
an empty source. Besides the converter now only outputs
filer errors (for too large or corrupt files) to the user.
Server errors (e.g. non-existing/read-only tmp directory)
are logged to the systemLogger.

* Fixes: `#38184 <http://forge.typo3.org/issues/38184>`_
* Commit: `38fcda5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=38fcda543a3c4ad0600fdba19c6fbd31da895e20>`_

[BUGFIX] Inform about possible cause for "No class schema found"
-----------------------------------------------------------------------------------------

When mapping meta data for Doctrine an error about "No class schema
found for …" could occur. It would not tell in what model the mapping
was taking place, leaving the user to guesswork. This adds output
of the currently examined class to the exception.

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

[TASK] Add context information to cache clearing commands
-----------------------------------------------------------------------------------------

When using the flow3:cache:flush commands only the current
cli context is cleared. This is not clear when using the
commands and this change add the context information
to the command output.

* Resolves: `#38221 <http://forge.typo3.org/issues/38221>`_
* Commit: `44e04bf <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=44e04bfc8ca04f3fcc14b3dd5f3087388f8aad99>`_

[TASK] Fix section about Resources in FLOW3 manual
-----------------------------------------------------------------------------------------

This fixes the Fluid code snippet of the resource upload example
in the Resource Management section.
Besides this adds a sample domain model to make this easier to
understand.

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

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

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

* Related: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `13b891d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=13b891d201ec9605503b2c2be06db19efa04cbd6>`_

[BUGFIX] Routing cache only works for one request
-----------------------------------------------------------------------------------------

Currently the routing uses a TransientMemory cache backend by
default. Besides, objects in the routing values are converted
to hashes using spl_object_hash() - which generates a new hash
for every request.

This change configures the RouterCachingAspect to use a
SimpleFile cache backend and adjusts the aspect to use the
persistence manager in order to convert objects to their
identifiers before creating cache entries.

This also adds a signal to the FunctionalTestCase base
class that flushes the routing caches on teardown.

Furthermore this adds two convenience methods
getLastMatchedRoute() and getLastResolvedRoute() to the router
which should make debugging and testing easier.

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

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

This adds format.identifier documentation and a depreciation
notice for identity.json to the Fluid VH reference.

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

[BUGFIX] Non-standard ports are now considered by HttpRequest
-----------------------------------------------------------------------------------------

Ports that are not 80 for HTTP or 443 for HTTPS were simply not
passed through to the Request when being created by the create()
method.

Also Uri will now set the port to 443 for HTTPS if no port is
given in the string handed to the constructor.

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

[TASK] Comment fixes for accuracy and grammar
-----------------------------------------------------------------------------------------

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

[BUGFIX] Make PhpSession read settings from "PhpSession"
-----------------------------------------------------------------------------------------

The settings for the PhpSession are read from the key "PhpSession" now,
to ensure consistency. Before that they were read from "PHPSession".

* Fixes: `#37993 <http://forge.typo3.org/issues/37993>`_
* Commit: `96de170 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=96de170837473596138e42112839c14d75e6c17f>`_

[BUGFIX] Uri respects query and fragment even without path
-----------------------------------------------------------------------------------------

Corresponding to the appropriate RFC 3986, section 3.3
the query and fragment indeed may be present also if no
path is given.

* Fixes: `#37903 <http://forge.typo3.org/issues/37903>`_
* Commit: `75d9852 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=75d98528be52c83c6226b2eca162e166d4c98cc3>`_

[TASK] Make extending GenericObjectValidator easier
-----------------------------------------------------------------------------------------

This change moves the check for already validated objects out
of the isValid() method and into validate() instead. Since in
custom validators isValid() is the method to implement, this
makes correct implementation less error-prone.

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

[BUGFIX] Property Mapper chokes on already-converted objects
-----------------------------------------------------------------------------------------

This happens for example when using the TYPO3.Form Project with a DatePicker,
which already transforms the value to the correct data type.

* Fixes: `#36988 <http://forge.typo3.org/issues/36988>`_
* Commit: `6695a4c <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6695a4cb88c1d7cb9cc351bb99ce2322b9a73486>`_

[BUGFIX] Correctly implement validator resolver short notation
-----------------------------------------------------------------------------------------

Currently, the short notation for validators which has been introduced
with Id807dbfa78ae1388aa8cd53bfc578893eade427c does only support syntax
like TYPO3\\FLOW3:EmailAddress; but we should rather support TYPO3.FLOW3:EmailAddress
as this is how we use package keys at all other places which are not PHP code.

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

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

[TASK] Add note to View chapter about default model properties
-----------------------------------------------------------------------------------------

This note should be made seen the confusion around fixing #35894

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

[BUGFIX] Make baseUri setting work for resource publishing
-----------------------------------------------------------------------------------------

The baseUri setting was not observed in the filesystem resource
publisher.

* Fixes: `#37550 <http://forge.typo3.org/issues/37550>`_
* Commit: `92b4d99 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=92b4d9950e1ed0950062eebf01308c08dea907d7>`_

[BUGFIX] Use exception handling framework for CommandController
-----------------------------------------------------------------------------------------

The CommandRequestHandler brought its own tiny exception handling
with the main drawback exceptions not being logged anymore, unlike
the Error\\AbstractExceptionHandler features.

When handling a CommandRequest, a dedicated CommandExceptionHandler
is involved, taking care of occuring exceptions.

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

[FEATURE] Configuration validation through (adapted) JSON Schema
-----------------------------------------------------------------------------------------

Implementation of a PHP array schema validator modeled using the
JSON Schema specification as guideline.

The following CLI commands which utilize the validator are provided:

- configuration:validate validates the configuration of a certain type
  with respect to the provided schemata. The schema files are searched
  for in Resources/Private/Schema of all active packages.

- configuration:generateschema is a kickstarter which generates a basic
  schema to be used as a starting point for further adjustments

Furthermore, this change includes schemata for all FLOW3 settings and the other
configuration types (Caches, Objects, Policy and Routes).

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

[BUGFIX] Internal Request Engine needs to clear security context
-----------------------------------------------------------------------------------------

In order to get the security tokens matching the new request created
in the internal request engine, the security context should be cleared
using the "clearContext" method. This means that the tokens will be
matched with the configuration from the routing based on the new request
and not the parent request.

This patch also contains a small enhancement which adds two additional
headers to the virtual browser's response containing the code and message
of a possible exception.

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

[TASK] Fix markup errors in FLOW3 manual
-----------------------------------------------------------------------------------------

This change fixes another markup issue resulting in rendering
glitches.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `70e012a <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=70e012aa0dadea833484e52617f2c07e18c39e61>`_

[TASK] Fix markup errors in FLOW3 manual
-----------------------------------------------------------------------------------------

This change fixes a number of markup issues resulting in rendering
glitches.

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

[TASK] Update templating chapter
-----------------------------------------------------------------------------------------

Along with some style and markup tweaks this adds details
on XML namespace declaration and XSD generation.

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

[TASK] Update validation chapter
-----------------------------------------------------------------------------------------

Along with some style and markup tweaks this moves some sections
around and adds details on avoiding recursive/duplicate validation.

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

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

This updates the section on custom factories.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `70cf2d8 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=70cf2d80347bc1fa2b4f3bfaf49125e51af22708>`_

[TASK] Update persistence chapter
-----------------------------------------------------------------------------------------

Some layout/markup tweaks and removed some outdated parts about
the generic PDO persistence we had earlier. Also explain identity
and value object handling in more detail.

* Resolves: `#38037 <http://forge.typo3.org/issues/38037>`_
* Commit: `9ba6511 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9ba651114b766d7ecac17ba67e4f9dd31d0747f6>`_

[TASK] Update FLOW3 manual
-----------------------------------------------------------------------------------------

This change removes the glossary and colophon from the guide
and applies mostly markup changes to various parts.

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

[BUGFIX] Discourage people to expose anything but the Web folder
-----------------------------------------------------------------------------------------

This updates the Quickstart to explicitly push people into using Web
as the document root for their web server.

* Fixes: `#38016 <http://forge.typo3.org/issues/38016>`_
* Commit: `6545e47 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=6545e477153fd3d6026ab3673056e292bd5ded9e>`_

[TASK] Refactor constructor argument of ExceptionHandler implementors
-----------------------------------------------------------------------------------------

Moves the redundant constructor method of each AbstractExceptionHandler
implementor to the AbstractExceptionHandler itself.

* Resolves: `#38002 <http://forge.typo3.org/issues/38002>`_
* Commit: `62df179 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=62df179937f5ebdd120ce644787232ae4a349737>`_

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

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

[BUGFIX] Fix recursion detection in instantiateClass
-----------------------------------------------------------------------------------------

When in ObjectManager->instantiateClass() the speedup case was
used, recursion detection would potentially fail, as it returns
early without removing the class name from the list of classes
currently being instantiated.

* Fixes: `#37997 <http://forge.typo3.org/issues/37997>`_
* Commit: `88988c5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=88988c587cb1fd45597f46766ae79f76cee4ac5e>`_

[TASK] Code cleanup without functional changes
-----------------------------------------------------------------------------------------

This change fixes some comments, shuffles the order of things a
little and adds some empty lines.

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

[BUGFIX] Remove unused configuration option from settings
-----------------------------------------------------------------------------------------

This change removes a no longer used/supported option from the
shipped Development configuration.

* Fixes: `#37966 <http://forge.typo3.org/issues/37966>`_
* Commit: `9d72dba <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9d72dba06a5801d542b3c8f812ec2ea8d76b62c6>`_

[TASK] Update validator reference with correct option types
-----------------------------------------------------------------------------------------

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

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

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

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

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

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

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

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

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

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

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

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

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

[BUGFIX] Corrected "Uri host" regular expression
-----------------------------------------------------------------------------------------

The regular expression verifying the validity of
a host name in Uri's setHost method was of an incorrect
syntax leading to a PHP error message.
Besides correcting that, this patch adds a Test to
proof the intended functionality.

* Fixes: `#37554 <http://forge.typo3.org/issues/37554>`_
* Commit: `9b04755 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9b047552c5a560268fbe588d5d0f2d19605f4dbe>`_

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

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

[TASK] Update code migration to do two more fixes
-----------------------------------------------------------------------------------------

This adds adjustments for getOriginalRequestMappingResults() and
getOriginalRequest()->getArguments().

* Resolves: `#37762 <http://forge.typo3.org/issues/37762>`_
* Commit: `65a3e7b <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=65a3e7b65f0bebe162ba68cc7adbf40770da336a>`_

[BUGFIX] Packages can be frozen in Development only
-----------------------------------------------------------------------------------------

Freezing packages was not possible in other contexts than Development
with the related commands. But if a package was frozen according to
PackageStates.php, it would advertise itself as frozen in all contexts.

While this did not seem to have any real effects, it caused confusing
output with the cache:flush command in Production context.

This change makes the Package class ignore the frozen state in any
context except Development and adds a check in the freezePackage()
method of the PackageManager.

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

[BUGFIX] Purge Doctrine proxies that are no longer needed
-----------------------------------------------------------------------------------------

With this change the proxy target directory is emptied before
Doctrine proxies are (re)built, removing outdated proxy classes.

This solves fatal errors when (proxied) classes are removed, and
thus can no longer be found when referenced from their heirs.

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

[TASK] No longer freeze packages by default
-----------------------------------------------------------------------------------------

Due to the possible pitfalls with frozen packages, no packages will be frozen
by default. This way a developer has to learn about frozen packages before he
can be confronted with them (and their pitfalls).

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

[BUGFIX] Integrity constraint violation deleting resources
-----------------------------------------------------------------------------------------

If you have two resources using the same resource pointer,
deleting a Resource will trigger deletion of the
connected ResourcePointer which then leads to an integrity
constraint violation.

This patch tells doctrine NOT to cascade delete operations.
This will lead to orphan resource-pointers which have to
be deleted manually or on a regular base.

* Fixes: `#34448 <http://forge.typo3.org/issues/34448>`_
* Commit: `02a7d84 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=02a7d844e21f2481094a1dacc86ce51484a8d051>`_

[TASK] Update Security Framework chapter
-----------------------------------------------------------------------------------------

Quick update of the Security Framework chapter to reflect recent
changes in FLOW3. Also some minor spelling error fixes.

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

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

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

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

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

[TASK] Make validator resolver public API
-----------------------------------------------------------------------------------------

People should use it when validation is used in custom code instead of
creating validators using new; thus the ValidatorResolver must be marked
as public API.

* Resolves: `#37665 <http://forge.typo3.org/issues/37665>`_
* Commit: `8182c52 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8182c526ce6ee0c40f5845b4ac1d8df26cf87465>`_

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

* Resolves: `#37664 <http://forge.typo3.org/issues/37664>`_
* Commit: `9be5bb0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=9be5bb0b2b179dd7b3d24340be59cdcf61a19431>`_

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

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

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

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

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

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

[BUGFIX] Fix inconsistent Validate and IgnoreValidation behavior
-----------------------------------------------------------------------------------------

The Validate annotation does an ltrim of "$" on the argument which the
IgnoreValidation annotation did not do. This change makes the two behave
the same by adding that trim to IgnoreValidation as well.

* Fixes: `#37385 <http://forge.typo3.org/issues/37385>`_
* Commit: `24485a7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=24485a773ddc75867133d58d5980bda07885b0ab>`_

[TASK] Make "all" parameter optional in package:refreeze
-----------------------------------------------------------------------------------------

For freeze, unfreeze and refreeze the default value for
the packageKey is now "all".

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

[BUGFIX] PersistenceManager->add() now requires objects being new
-----------------------------------------------------------------------------------------

The add method in repositories did also update existing entities,
this can be dangerous, as it allows an attacker to misuse creation
forms (i.e. a register form) and change existing entities.

* Fixes: `#34527 <http://forge.typo3.org/issues/34527>`_
* Commit: `8d4b3c7 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=8d4b3c7099b597525ebb3406dbef0b9f204d67d2>`_

[TASK] Log skipped persistAll() due to closed EntityManager
-----------------------------------------------------------------------------------------

To avoid exceptions we only flush the EM if it is still open. To be
able to spot errors more easily, this adds a log entry if the EM
was closed and flushing was skipped.

* Related: `#30934 <http://forge.typo3.org/issues/30934>`_
* Commit: `660ee7e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=660ee7e9909766a4a93cb73263a2ca9f73295e66>`_

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

Add space to "foreach(".

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `1ff13c4 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1ff13c47bb21555d2169bef0d534b55716f48149>`_

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

Add spaces to "){"

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

[TASK] Create configuration directories only on save
-----------------------------------------------------------------------------------------

The configuration directories for cached configuration were created
inside the constructor of the ConfigurationManager. This caused the
unit test to create directories outside the VFS. Moving the creation
to the saveConfigurationCache method fixes that. Additionally cleans
up some unit tests related to ApplicationContext and
ConfigurationManager.

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

[BUGFIX] Keep existing PackageStates.php
-----------------------------------------------------------------------------------------

A wrong check for the existence of the configured "packagePath" caused
the loss of custom package states configuration on every request in
development mode or initially in production.

* Resolves: `#37607 <http://forge.typo3.org/issues/37607>`_
* Commit: `166b44e <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=166b44e139b7d93dd001ff9bd6502ce43a88cb06>`_

[BUGFIX] Router overrides request arguments
-----------------------------------------------------------------------------------------

With the reworked Request stack, the router kicks in after
the action request have been built, overriding all arguments
the respective route specifies.

This works for the most cases, but leads to issues when you
try to specify part of a complex target argument via the route
and part via request.

For example if you update a domain model via request body but
specify the model itself through the URI like
http://domain/products/product-1 - now the Identity-RoutePart
detects "product-1" and turns it into the corresponding
__identity-array but then the Router kicks in and overrides
the "product" argument completely resulting in a new object
to be created by the property mapper.

This change adjusts the Router to recursively merge arguments
with the route values instead, with precedence to the route
values.

* Fixes: `#37445 <http://forge.typo3.org/issues/37445>`_
* Commit: `170733f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=170733fb8d83ab208b74fc56e6e9894f80276362>`_

[BUGFIX] Avoid validating instances more often than needed
-----------------------------------------------------------------------------------------

The GenericObjectValidator uses a static variable to store objects being
validated. Objects were still validated over and over because at the
end of isValid() they were detached again.

This change replaces that detach() call with another concept. Now
any validator implementing the new ObjectValidatorInterface can be
given an SplObjectStorage to keep track of instances already
validated.

If you reset that container when it makes sense (before you
actively validate objects) you can avoid validating single instances
more than once in one validation run but still validate at various
points on your logic flow.

If you have implemented your own object validator you should
implement the new ObjectValidatorInterface - the easiest way is
to extend the GenericObjectValidator, if you haven't done that
so far.

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

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

[BUGFIX] Fix IP address validation
-----------------------------------------------------------------------------------------

The IP address validation done with filter_var() worked
on the development machine running PHP 5.3.12, however,
it failed on the integration server running PHP 5.3.5.
Apparently, the filter_var options for FILTER_VALIDATE_IP
behave differently in these versions.

This patch removes the validation for IPv4 / IPv6 addresses
because they didn't make sense anyway.

In that regard: hooray for PHP behavior changes. They actually
exploit bad application code. Sometimes.

* Related: `#37584 <http://forge.typo3.org/issues/37584>`_
* Commit: `744c759 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=744c7593aaf2faab82a2415a8e17015fd3bc60d0>`_

[FEATURE] Provide way to determine client IP address
-----------------------------------------------------------------------------------------

This adds a method getClientIpAddress() to the HTTP Request
class. It considers various kinds of environment variables
which are present when using proxies or certain server setups
for determining the actual client IP address.

* Resolves: `#37584 <http://forge.typo3.org/issues/37584>`_
* Commit: `66bcdf5 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=66bcdf54a158a4731259bad05a5eee39ae6f5dcb>`_

[!!!][FEATURE] Content Negotiation for Media Types
-----------------------------------------------------------------------------------------

This improves the support for detecting the Media
Type (that is, "format" in an ActionRequest context)
based on the request's Accept header.

This implementation supports Quality Values and Media
Ranges as specified in RFC 2616.

The way to define the supported formats of a controller
has changed: Previously a class property $supportedFormats
contained a list of filename extensions which would be
supported. This property is not supported anymore.
Instead, controllers may now specify a list of IANA
Internet Media Types in a property $supportedMediaTypes.

The default setting for these supported media types
in ActionController is "text/html". You'll need to adjust
your controllers accordingly if you relied on the
$supportedFormats feature.

Also note that the format in ActionRequest is now NULL
by default. The ActionController makes sure to set the
correct format, but if you created your own ActionRequest
for a special purpose, you need to take care of setting
it yourself.

* Resolves: `#37561 <http://forge.typo3.org/issues/37561>`_
* Commit: `03b6d85 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=03b6d85916e46ed8b2e99bc549d7248957dca935>`_

[BUGFIX] Save relative package path in PackageStates.php
-----------------------------------------------------------------------------------------

Using absolute paths in the PackageStates.php causes problems in a
chroot environment where the absolute path is different in CLI then
in the HTTPD process.

Also relative paths allow to put PackageStates.php under version
control to maintain a specific state even when paths differ
on development and production systems.

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

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

[Bugfix] Property mapper should distinguish between error and NULL
-----------------------------------------------------------------------------------------

currently, when a nested type converter returns NULL, this is silently
caught by the property mapper. Thus, it is not possible to reset f.e.
an integer value to NULL again.

This change fixes that behavior, and adds a functional test for it.

* Related: `#35136 <http://forge.typo3.org/issues/35136>`_
* Commit: `5badcdb <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5badcdb095b688e96460f579ec131fbaaa3c6e3f>`_

[!!!][TASK] Switch from MIME to Media Types
-----------------------------------------------------------------------------------------

The term MIME type is outdated, at least if used in a web context. The correct
term is "Internet Media Type". Furthermore, our list of MIME types (or media
types) was not up to date.

This patch introduces a new utility class "MediaTypes" which replaces
"FileTypes". Along with the new class comes a script which allows the core team
to conveniently update the list of Media Types and filename extensions.

This is a breaking change as the FileTypes class is deprecated with it. The old
methods are still available but should not be used anymore. A code migration to
use the new ones instead is shipped with the change.

* Related: `#37402 <http://forge.typo3.org/issues/37402>`_
* Related: `#33371 <http://forge.typo3.org/issues/33371>`_

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

[!!!][BUGFIX] Float and Integer converters do not correctly handle errors and empty values
------------------------------------------------------------------------------------------

When an argument of a controller action is annotated with
@param integer $var, the validation never fails if a string
is passed to the argument.
This is because the IntegerConverter implicitly casts the
string to an integer. The same problem exists with floats.

This change fixes this by checking the value and returning
an error object if it is not numeric. Besides this tweaks
the FloatConverter to accept float and integer values as
input and it adds a bunch of unit & functional tests.

Furthermore, empty strings are now correctly converted as NULL values.
This is a breaking change if you relied upon the old behavior that
empty values are converted to the number 0.

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

[BUGFIX] Make our var_dump() usable with Doctrine collections
-----------------------------------------------------------------------------------------

For Doctrine\\Collection instances we use Doctrine's export()
method now to render the dump.

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

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

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

[FEATURE] Add getHttpResponse() to HttpRequestHandler
-----------------------------------------------------------------------------------------

This adds a getter method to the HTTP request handler
which allows for retrieving the response corresponding
to the currently handled request.

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

[FEATURE] Make HTTP responses standards compliant
-----------------------------------------------------------------------------------------

This adds a new API method to the HTTP response which
is called by a request handler to assure conformity
with RFC 2616 and other related specifications.

While there are a lot of rules to consider, this patch
only introduces a first set of important checks which
are all explained by a corresponding test.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `63283d9 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=63283d92fa34cff7ce5b3dcd244b1aae1711e652>`_

[BUGFIX] Set property mapping configuration in RestController
-----------------------------------------------------------------------------------------

Since Iac7bbb2a58ad890701fff2b0ad6b16a0e0b15bba we use a
whitelist-based approach to configure property mapping.
This change hooks into the create/update action of the
RestController and sets the required property mapping
configuration.

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

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

[FEATURE] Allow configurable identity key in JsonView
-----------------------------------------------------------------------------------------

Providing _exposeObjectIdentifier option is
not restricted to result in __identity anymore,
but is configurable to be an arbitrary string.

* Resolves: `#34414 <http://forge.typo3.org/issues/34414>`_
* Commit: `29ffc63 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=29ffc635275a68fa84c76d4b3a30d4086255f0b5>`_

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

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

[BUGFIX] Fix Wrong exception message in Repository->remove()
-----------------------------------------------------------------------------------------

The message would say add() was involved, which is wrong.

* Fixes: `#37448 <http://forge.typo3.org/issues/37448>`_
* Commit: `57e1e95 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=57e1e955e4494f4fb506c753c9560cfe90234c03>`_

[FEATURE] Response setExpires() / getExpires()
-----------------------------------------------------------------------------------------

This adds two new convenience methods to the Response
API which allow for setting and retrieving the Expires
HTTP header.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `60c22ce <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=60c22ce6a6eb8ede184069ad52573ad3b4163c3a>`_

[FEATURE] Make Message / Response setters chainable
-----------------------------------------------------------------------------------------

This makes the setter methods of the Message and the
Response class chainable.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `149a012 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=149a012ea5afbc6e02014d6ec564ae7f0788a767>`_

[FEATURE] More convenience methods in Response
-----------------------------------------------------------------------------------------

This adds a few more convenience methods for setting
headers and cache control directives in the Response
object:

* setDate() / getDate()
* setLastmodified() / getLastModified()
* setMaximumAge() / getMaximumAge()
* setSharedMaximumAge() / getSharedMaximumAge()

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

[FEATURE] Support for HTTP Cache-Control headers
-----------------------------------------------------------------------------------------

This adds support for the Cache-Control header.
The "Headers" object now handles the Cache-Control
header in a special way by keeping track of the
various cache directives separately. Those can
be set through the method setCacheControlDirective()
and get('Cache-Control') returns a rendered version
based on the previously set directives.

Alternatively, a whole Cache-Control header can also
be set through set() / setHeader(). The given field
value will then be parsed and the individual cache
directives are stored internally.

This patch also corrects the behavior of set() and
get() to convert date / time values always to GMT.
Also added a related note in the comments of the
respective API methods.

This patch also adds the new API methods setPrivate()
and setPublic() to the Response class.

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

[BUGFIX] Fix error message about command controller classes
-----------------------------------------------------------------------------------------

If you create a CommandController which is not in the "Controller" directory
of a package or where the name does not end in "CommandController" you will
get an error saying "Invalid controller class name [...] 1305100019".

This change makes the error message a little more helpful.

* Fixes: `#33139 <http://forge.typo3.org/issues/33139>`_
* Commit: `5756509 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=575650915f69773733108052ba7da3e0e82e5c11>`_

[FEATURE] Add @depends annotation to ignored ones
-----------------------------------------------------------------------------------------

To allow test dependencies in Unit Tests, the @depends
annotation is added to the ignored annotation array.

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

[FEATURE] Add hasRole() method to Account entity
-----------------------------------------------------------------------------------------

At the moment the roles still have to be persisted as
strings in the serialized roles property in the database.
Already converting all roles to objects would require
some more refactoring.
This change is tested on already existing, and on new
users.

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

[FEATURE] Support for HTTP PUT/DELETE arguments
-----------------------------------------------------------------------------------------

This adds transparent argument support for arguments
in PUT and DELETE requests which are passed through
the request body. Depending on the content type of
the request, the message body is parsed and then
mapped into arguments for further use in controllers.

The following content content types are currently
supported:

* application/x-www-form-urlencoded
* application/json
* xml
* Resolves: `#36913 <http://forge.typo3.org/issues/36913>`_
* Related: `#37402 <http://forge.typo3.org/issues/37402>`_
* Related: `#33371 <http://forge.typo3.org/issues/33371>`_

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

[TASK] Common base class Message for Request / Response
-----------------------------------------------------------------------------------------

This introduces a new class "Message" which acts as a
common parent class for the HTTP Request and Response.
It provides shared functionality such as setting and
getting headers, charset handling and more.

It is in line with the terminology in RFC 2616.

* Related: `#37259 <http://forge.typo3.org/issues/37259>`_
* Commit: `7ac583f <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=7ac583ff633d7653ae45a84e4c36a280da6eba93>`_

[TASK] Temporarily remove nested response code
-----------------------------------------------------------------------------------------

This temporarily removes the code in HTTP Response which
tackles support of nested responses. This feature needs
to be implemented only when most of the other features,
including Cache Control, are in place.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `238efb0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=238efb0698735cf49457da7f9fe01671b757a905>`_

[FEATURE] Support for HTTP Age and Date header
-----------------------------------------------------------------------------------------

This patch adds API methods and internal handling of
the HTTP "Date" and "Age" headers, according to
RFC 2616. It also introduces the use of the "Now"
singleton as a time reference for age calculations.

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

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

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

[TASK] IdentityRoutePart should return __identity array
-----------------------------------------------------------------------------------------

IdentityRoutePart::matchValue() currently returns the identifier
of the ObjectPathMapping record directly.
This makes it difficult to merge arguments with data from the
requestBody (e.g. for PUT requests).

This change adjusts the route part so that it sets $this->value
to an array in the format array('__identity' => '<Identifier>')

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

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

[FEATURE] Fluent Interface for PropertyMappingConfiguration methods
-----------------------------------------------------------------------------------------

Setter and other methods not intended to return particular
values now return $this in order to provide a Fluent Interface
that allows chaining of multiple calls to the same object.

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

[BUGFIX] Http Response can be cast to string again
-----------------------------------------------------------------------------------------

This reverts the removal of the __toString() method for the
Http Response. We currently rely on this behavior in the
ActionController which combines response content by simple
string concatenation.

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

[TASK] HTTP Response: Status Code and Content Type
-----------------------------------------------------------------------------------------

This adds a few new methods to the HTTP Response
class - including the related unit tests.

* Related: `#37259 <http://forge.typo3.org/issues/37259>`_
* Commit: `1bf8bbd <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=1bf8bbd678c6f4ca76d087b83c6cb5fbbbb65cf7>`_

[FEATURE] Introduce "Now" as unique time reference
-----------------------------------------------------------------------------------------

This patch introduces a new class called "Now" which
inherits DateTime and has the scope Singleton. It can
be used in all cases where a reliably comparable value
of "now" is needed or where time needs to be mocked
in related tests.

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

[BUGFIX] Nested arrays in Annotation options are no longer dropped
-----------------------------------------------------------------------------------------

When giving a nested array of options to an annotation the rendered
form in proxy classes was cut off.

* Fixes: `#37193 <http://forge.typo3.org/issues/37193>`_
* Commit: `5a2cbd0 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5a2cbd05f001479e6bf2b9363a7f01e07b511c4e>`_

[BUGFIX] credentialsSource in Account should be nullable
-----------------------------------------------------------------------------------------

Not all authentication mechanisms need a "credentials source" (e.g. the
typo3.org SSO provider), so the column for the property should be nullable.

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

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

* Fixes: `#37224 <http://forge.typo3.org/issues/37224>`_
* Commit: `5d3a102 <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=5d3a102e22783b9293b2ac8834a00d8698539365>`_

[FEATURE] Day, month, year keys in DateTimeConverter source array
-----------------------------------------------------------------------------------------

This patch introduces additional possible array keys for the
source array of the DateTimeConverter. Now not only a string
representing the DateTime can be passed, but array keys
of the single day, month and year.

* Resolves: `#35195 <http://forge.typo3.org/issues/35195>`_
* Commit: `01d918d <http://git.typo3.org/FLOW3/Packages/TYPO3.FLOW3.git?a=commit;h=01d918d0b648374d88740caa5e1429f7f72727c5>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Fluid
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

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

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

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

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

* Commit: `06ac5bc <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=06ac5bce073785de32bec004a2c98c53726e8057>`_

[BUGFIX] Allow one of action and actionUri to be omitted in Form ViewHelper
-----------------------------------------------------------------------------------------

With I03fa30be2522ee53d5a8f184b57afe539ed4f991 the action argument
of the Form ViewHelper was made required. But in fact you can override the
action attribute by specifying the "actionUri" argument. In that case the
"action" argument should not be required.

This removes this requirement again. But if neither "action" nor "actionUri"
is specified, an exception will be thrown.

This also removes the obsolete method setFormActionUri()

* Related: `#43589 <http://forge.typo3.org/issues/43589>`_
* Commit: `8bc51f2 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=8bc51f201aa416478710e0642007ccf1ad19e4ce>`_

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

Remove the version field, so versions can be read from tags in git
instead. Fixes the description slightly.

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

[!!!][BUGFIX] Mark action argument required in routing related ViewHelpers
-----------------------------------------------------------------------------------------

Currently you can omit the action attribute when creating a link/URI in
Fluid. If no action was specified the default action of the matching route
was assumed. With #43589 the behavior changed and you'll have to specify
all defaults of a route.

This change makes the action argument of follwing ViewHelpers required:

* f:link.action
* f:uri.action
* f:form

This is a breaking change if you created a link without specifying the action.
In this case change your Fluid code from
<f:action> to <f:action action="index"> (or whatever action is the default
of the target controller).

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

[TASK] Avoid use of getPropertyInternal()
-----------------------------------------------------------------------------------------

The getPropertyInternal() method obviously is intended for internal use
in the ObjectAccess class. This change replaces it's use with a call to
getProperty().

* Related: `#43617 <http://forge.typo3.org/issues/43617>`_
* Commit: `c06652a <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=c06652a11bdf3643a81fe5c9c62aa700daa1a8ae>`_

[TASK] Removed testable HTTP flag from tests
-----------------------------------------------------------------------------------------

Testable HTTP is now always enabled, thus the flag to switch it on can
be removed.

* Related: `#43590 <http://forge.typo3.org/issues/43590>`_
* Commit: `2a188cb <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=2a188cb0aabbbecbec8b644b982d96e4db21b8c1>`_

[BUGFIX] Make name attribute of LayoutViewHelper optional
-----------------------------------------------------------------------------------------

This change removes the required = TRUE from the registerArgument()
call for the name attribute of LayoutViewHelper. This matches the
fallback behavior in the postParseEvent() method.

* Fixes: `#43579 <http://forge.typo3.org/issues/43579>`_
* Commit: `5ce7ad5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=5ce7ad51c1ce96b2376bb4a8b5a89cf6e1a4faee>`_

[!!!][FEATURE] Allow Fluid arrays only in ViewHelper arguments
-----------------------------------------------------------------------------------------

This change greatly enhances the JavaScript compatibility of Fluid.

Fluid Arrays are a subset of the JavaScript object syntax, making it
hard to work with them in mixed HTML/JavaScript documents. For example
before this change, the following JavaScript Object was parsed by Fluid::

	var uris = {
	  endPoint1: '{f:uri.action(…)}',
	  endPoint2: '{f:uri.action(…)}',
	};

Before this change, the above snippet resulted in the following template,
as the generated array was casted to a string:

	var uris = Array

With this change, Fluid only parses arrays which are used inside
ViewHelper arguments, such that an array inside normal text is not
converted anymore.

Breaking Change
===============

This change is only breaking in very rare cases where one relied on
the inner contents of the ViewHelper being an array, f.e. if one used
the debug ViewHelper as follows::

	<f:debug>{key1: 'value1', key2: 'value2'}</f:debug>

… or if anybody wrote custom ViewHelpers which use this convention.

Relying on that would be very fragile anyways, as the insertion of a
single space character before the opening curly bracket or after the
closing one would cast the array back to a string.

ViewHelpers which were written like this should be re-written to take
the array as ViewHelper argument::

	<f:debug value="{key1: 'value1', key2: 'value2'}" />

* Resolves: `#43356 <http://forge.typo3.org/issues/43356>`_
* Commit: `ba09ec5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=ba09ec53d0fc932e4d65a4acfd925398e058b37e>`_

[!!!][FEATURE] Allow ResourceViewHelper to accept resource:// paths
-----------------------------------------------------------------------------------------

This enables the path argument of the Uri.ResourceViewHelper
to accept also resource URIs in the format "resource://Package.Name/Public/...".
This functionality used to be achievable with the former uri
argument but was removed with I92dccba6b5acd623ff33eb538e62d0682f00b95e.

This is marked breaking because it introduces Exceptions in case
of incorrect argument usage or values.

* Commit: `5504bee <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=5504beef578d5ef2e6c0f394fbed1a6e240d70c5>`_

[BUGFIX] Fix Doc comment in link.email ViewHelper
-----------------------------------------------------------------------------------------

Fixes the code example in the classes doc comment
and replaces a minor whitespace issue

* Fixes: `#43121 <http://forge.typo3.org/issues/43121>`_
* Commit: `d21bd9e <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=d21bd9e0629db33040b59df2f341b366bc79c07f>`_

[TASK] Add member for PaginateController::objects
-----------------------------------------------------------------------------------------

Adds declaration for the $objects member in the controller of the
pagination widget.

* Commit: `5695651 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=56956519d46f1a3bdeb1ecb8c5dfcf54b9e3952f>`_

[BUGFIX] Fix broken WidgetTest
-----------------------------------------------------------------------------------------

The fix for #42511 broke the functional WidgetTest in Fluid, because
it relied on "broken" URIs being accepted. The AJAX URI is now prefixed
with "http://localhost/" to make the test work again.

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

* Commit: `65ea61e <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=65ea61e4c17f6d635ef828afd90f2e01b3795e52>`_

[!!!][FEATURE] I18n support for uri.resource VH in Fluid
-----------------------------------------------------------------------------------------

This adds the (already documented) localization of resources to the
uri.resource VH. Any path will be localized if possible, unless the
feature is switched off using the "localize" argument.

The change is marked as breaking because it removed the "uri"
argument formerly available to the VH.

* Resolves: `#32339 <http://forge.typo3.org/issues/32339>`_
* Resolves: `#39792 <http://forge.typo3.org/issues/39792>`_

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

[BUGFIX] Fluid should depend on the composer installer
-----------------------------------------------------------------------------------------

* Commit: `913272d <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=913272d4260fd75610a195192969a926af48e94d>`_

[TASK] Adjust to FLOW3 renamed to TYPO3 Flow
-----------------------------------------------------------------------------------------

Adjusts the code, comments, documentation as needed.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `284e8f8 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=284e8f86439b3c8e0eb9abb4933ab78841d2f4bb>`_

[TASK] Update composer type to new naming scheme
-----------------------------------------------------------------------------------------

In accordance with the rename to TYPO3 Flow, the
composer-type is now ``typo3-flow-*``

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `45a3117 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=45a3117dc1c800f226c658757bdfa2d3738846ce>`_

[TASK] Change dependency to require flow3/composer-installers
-----------------------------------------------------------------------------------------

* Commit: `5682214 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=56822145986c86b490a178b48f9e72ff02280570>`_

[TASK] Use composer version of installers
-----------------------------------------------------------------------------------------

* Commit: `8061eeb <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=8061eeb300cb891dee2353f43c8731097e7e1447>`_

[TASK] Add christianjul/installers dependency
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `4449c2a <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=4449c2aa41c378f06e17b2faa879b880b3ef8bcf>`_

[TASK] Update unit tests to vfsStream > 1.0
-----------------------------------------------------------------------------------------

This adjusts the unit tests to the new vfsStream API.

* Related: `#37813 <http://forge.typo3.org/issues/37813>`_
* Commit: `e42dfb0 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=e42dfb079f34d017837358764e5c71fe898675af>`_

[TASK] Make PSR-0 and composer compatible
-----------------------------------------------------------------------------------------

Moves all classes into a PSR-0 directory structure and adds a composer
manifest instead of Package.xml.

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

[FEATURE] Allow using Locale in Currency and Date ViewHelper
-----------------------------------------------------------------------------------------

This enables switching the use of the current active Locale
in Format.Currency and Format.Date ViewHelper.

* Resolves: `#33143 <http://forge.typo3.org/issues/33143>`_
* Commit: `afdbc77 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=afdbc774a68af9e1a9aaf72a61680078b510d7c0>`_

[TASK] Whitespace fix in class docblock
-----------------------------------------------------------------------------------------

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

[TASK] Code documentation fix on return types
-----------------------------------------------------------------------------------------

The variable container accepts any type, not only objects.

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

[TASK] Enhance exception for duplicate variables
-----------------------------------------------------------------------------------------

The exception message for 'Duplicate variable declarations!' now
contains the variablename which is doubled.

* Resolves: `#40828 <http://forge.typo3.org/issues/40828>`_
* Commit: `438da61 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=438da61f6f460dd84079223c3b936c4df6e435fb>`_

[FEATURE] Format.JsonViewHelper escapes tag characters per default
-----------------------------------------------------------------------------------------

Since occuring plain greater-than or less-than characters in HTML
context could be dangerous (even CDATA sequences can be stopped with
this), the tags are now converted to their hexadecimal representation.
Since this is standard JSON syntax, this is considered not to be a
breaking change.

* Resolves: `#39886 <http://forge.typo3.org/issues/39886>`_
* Commit: `3d6a932 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=3d6a9326a0f1d28127a09c339c7a3da7743af33a>`_

[TASK] Support literal strings in boolean arguments
-----------------------------------------------------------------------------------------

This change adds support for string literals in boolean comparisons.
String literals have to be surrounded by single or double quotes and
may contain escaped single or double quotes.

* Resolves: `#6757 <http://forge.typo3.org/issues/6757>`_
* Commit: `125413c <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=125413ca638696bb4eef9b5c26eceed51acdcf4e>`_

[BUGFIX] TemplateParser unquoteString does not trim escaped quotes correctly
-----------------------------------------------------------------------------------------

This change fixes wrong trimming of trailing quotes in escaped sequences
by replacing trim() calls with a preg_replace() alternative.

* Fixes: `#39604 <http://forge.typo3.org/issues/39604>`_
* Commit: `009b1fc <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=009b1fc60ca13edc8aa95a2716a8b07c479ca169>`_

[FEATURE] Reserved variables represent their meaning when accessing
-----------------------------------------------------------------------------------------

All reserved variables, ie true, false, on, off etc. now represent
their intended value when accessing them.

* Resolves: `#39410 <http://forge.typo3.org/issues/39410>`_
* Commit: `3000719 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=3000719576da649017a4cbed51da2c2c058737f6>`_

[BUGFIX] Action URI of the form ViewHelper is not reset
-----------------------------------------------------------------------------------------

Form ViewHelpers store the action URI attribute for performance
reasons.
But because instances of ViewHelpers are reused, this value needs
to be reset.
Besides this removes an obsolete property "formActionUriArguments"

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

* Commit: `6945389 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=694538964346bc39f0dbf90725fd5474c6c5ee08>`_

[BUGFIX] Make TextareaViewHelper HTML5 aware
-----------------------------------------------------------------------------------------

This makes the arguments "rows" and "cols" of the form.textarea
ViewHelper optional.

* Fixes: `#31189 <http://forge.typo3.org/issues/31189>`_
* Commit: `2ed2091 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=2ed20916d219fa7a885ba6f9b65ae7265ed59dda>`_

[TASK] Make reflectionService property in AbstractViewHelper protected
-----------------------------------------------------------------------------------------

The property "reflectionService" in the AbstractViewHelper should be
protected instead of private to allow usage of the reflection service in
view helpers without having to inject again with another property name.

* Resolves: `#39255 <http://forge.typo3.org/issues/39255>`_
* Commit: `4b3c096 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=4b3c0967b73ebe13e044dab061192999c016b60b>`_

[TASK] Correct StripTags test because of unintended incompletion result
-----------------------------------------------------------------------------------------

A test's data provider's method name began with the character sequence
'test', was hence regarded as test to be executed.
This resulted into an "Incomplete" result when running the tests.

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

[BUGFIX] Make use of dashes in attribute names possible
-----------------------------------------------------------------------------------------

When using e.g. data-foo in VH tags, the parser would choke. This
change fixes this.

* Fixes: `#38592 <http://forge.typo3.org/issues/38592>`_
* Commit: `88d7486 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=88d7486d961daa35af376559675e93bcffe7756c>`_

[BUGFIX] Move functional test configuration to Testing
-----------------------------------------------------------------------------------------

This moves the functional test configuration to the
Testing context, to avoid errors in other contexts.

* Related: `#38873 <http://forge.typo3.org/issues/38873>`_
* Commit: `50370f1 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=50370f1ae6080b77502457d26245d5ad1cb271bf>`_

[BUGFIX] Remove eval from StandaloneViewTest
-----------------------------------------------------------------------------------------

Removes the use of eval from the StandaloneViewTest so that
now a Fixture class is used that extends the StandaloneView.

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

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

[BUGFIX] Replace placeholders in fallback for id translation
-----------------------------------------------------------------------------------------

When using id based translation and no translation is defined in XLIFF,
the tag value is used as a fallback in TranslateViewHelper.

With this change, the fallback is passed to label based translation,
making placeholder replacement work also if no translation does exist
yet.

* Fixes: `#37387 <http://forge.typo3.org/issues/37387>`_
* Commit: `96189df <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=96189df3951e77ed115c33d4a12603e0571c3f7a>`_

[BUGFIX] Remove (wrong) use of Internal annotation
-----------------------------------------------------------------------------------------

The internal annotation is used to declare command methods
as internal, not to mark things as not being public API.

Furthermore, it is not allowed to be used on properties
and with #38667 fixed Fluid would cause exceptions.

* Related: `#38667 <http://forge.typo3.org/issues/38667>`_
* Commit: `55e055c <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=55e055c0f3bd3c48f5bce02eba9ddd8661fd7cb4>`_

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

Does code cleanup, mostly to documentation, but also tweaks
unused variables, missing return statements and similar things.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `edd10b4 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=edd10b4d737b3d21fc7e6b3d5b3a5dc69aa60cfb>`_

[BUGFIX] Only render hidden upload fields if a resource is available
-----------------------------------------------------------------------------------------

The UploadViewHelper always creates hidden fields for filename and
resource pointer so that previously uploaded files are not lost
if validation errors occur.

This change makes sure that those hidden fields are only rendered
if a file has been uploaded before because otherwise the property
mapper tries to create a Resource object and fails with an
exception (see #38184).

* Related: `#38184 <http://forge.typo3.org/issues/38184>`_
* Commit: `630992b <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=630992b7378e53ae51e2aa341837a4010dbe4bd2>`_

[TASK] Add query parameters for form action as hidden fields
-----------------------------------------------------------------------------------------

This change makes the form viewhelper usable with method GET by adding
query parameters of the action as hidden fields to the form. Otherwise
the browser would replace them by the form values
(http://www.w3.org/TR/html401/interact/forms.html#h-17.13.3.4).

* Resolves: `#11636 <http://forge.typo3.org/issues/11636>`_
* Commit: `488b238 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=488b238d9436d73df7e06679a6e76e83515f0fb7>`_

[BUGFIX] Fix unusable checkbox/radio if formObject is NULL
-----------------------------------------------------------------------------------------

When using a form object inside of a form view helper inside an index
action template and a checkbox is referring to a property $sth of
$someFormObject, the form object can be NULL with code like::

 indexAction(\\Some\\Type $someFormObject = NULL){ ... }

 <f:form ... object="{someFormObject}">
  <f:form.checkbox property="{sth}" value="yes" checked="{sth.value} == yes"/>
 </f:form>

Initially calling the index action makes someFormObject NULL. If the submitted
form had validation errors someFormObject is NULL, too. This possibility
was ignored in a call for the formObject from within the CheckboxViewHelper as
well as from the RadioViewHelper.

So you would get an exception telling you
 No value found for key "TYPO3\\Fluid\\ViewHelpers\\FormViewHelper->formObject"

This change fixes that bug and thus also sets the checkbox and radio
"checked" attribute properly when a validation error occurred.

* Fixes: `#35894 <http://forge.typo3.org/issues/35894>`_
* Commit: `cbe9304 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=cbe93048c094cdc1eec2feafc70bd1ee1d99c47b>`_

[FEATURE] Add a ViewHelper for entity identifier retrieval
-----------------------------------------------------------------------------------------

This adds a ViewHelper "format.identifier" that returns
the plain identifier for a given entity.

* Resolves: `#33494 <http://forge.typo3.org/issues/33494>`_
* Commit: `c8d53e9 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=c8d53e983c5a387b80560fd2bd62556a4c91833a>`_

[BUGFIX] ViewHelper exceptions should not be caught in testing context
-----------------------------------------------------------------------------------------

While it is correct that ViewHelper exceptions are silently logged in
production context, they should be displayed in development and testing
context; and not only in development context.

* Fixes: `#37671 <http://forge.typo3.org/issues/37671>`_
* Commit: `166e7e5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=166e7e54a8ff03e44cd5e692e273894280594b32>`_

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

* Commit: `575adc2 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=575adc243a7a820104d0d5506eb0377c2a38150b>`_

[TASK] Standalone View: set default format "html"
-----------------------------------------------------------------------------------------

Since the introduction of Content Negotiation to FLOW3
(I7d753155aa72f41e3df85b076e8067bcbfe7ac04), the default
Format of the ActionRequest is not "html" but undefined.
The Standalone View relied on the default "html" format
and thus now needs to set it itself.

* Related: `#37561 <http://forge.typo3.org/issues/37561>`_
* Commit: `db77eca <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=db77eca6d3f97471fc0970e634a9d3ccf30b2abc>`_

[BUGFIX] hidden fields should be rendered in extra section
-----------------------------------------------------------------------------------------

Currently form.select and form.checkbox ViewHelpers render
hidden fields before the actual input field in order to
force submission of a value.
This leads to the situation that labels wrapped around the
field do not correspond to the actual form field, but to
the hidden field.
This is fixed by letting the form ViewHelper taking care of
rendering the requried hidden fields in the already existing
section on top of the form.

* Fixes: `#26481 <http://forge.typo3.org/issues/26481>`_
* Fixes: `#13342 <http://forge.typo3.org/issues/13342>`_

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

[BUGFIX] Avoid empty output of TranslateViewHelper
-----------------------------------------------------------------------------------------

If translation by ID is used but no translation is found, the ID will now be
returned if the view helper tag has no content. Before this change it would
just return nothing (printable, at least).

* Fixes: `#35041 <http://forge.typo3.org/issues/35041>`_
* Commit: `68e3bad <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=68e3bad56dfc67911d8c968f792b90bc8d55579f>`_

[FEATURE] Allow access to attributes in TagBuilder
-----------------------------------------------------------------------------------------

* Resolves: `#37460 <http://forge.typo3.org/issues/37460>`_
* Commit: `afaaceb <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=afaacebed16d6b9ab2cb320fecc32be6a9d7d69a>`_

[TASK] Disable escapingInterceptor in Format.Json ViewHelper
-----------------------------------------------------------------------------------------

Because the provided ViewHelper children will never be put
through to the template but only be used for source value
retrieval, the escapingInterceptor gets disabled.

* Related: `#12442 <http://forge.typo3.org/issues/12442>`_
* Commit: `50dcde3 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=50dcde38eeac969241e5b148e4610e4c1c4edb72>`_

[FEATURE] Adds a format.json ViewHelper
-----------------------------------------------------------------------------------------

Provide a ViewHelper that enables putting JSON out of an array or
object. Basically wraps PHP's native json_encode() method.

* Resolves: `#12442 <http://forge.typo3.org/issues/12442>`_
* Commit: `87ea437 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=87ea437e05eb0838afa45c24722785f7c0630240>`_

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

Add spaces to "){" and to "foreach(", fixes some docblocks and
indentation. Also avoids a possible uninitialised variable warning.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `1a68840 <http://git.typo3.org/FLOW3/Packages/TYPO3.Fluid.git?a=commit;h=1a688404901cc77d75807d798df8db9fdef96718>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Party
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

* Commit: `587018d <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=587018d705b5b023699cf1ab10635a79475f2ab3>`_

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

Remove the version field, so versions can be read from tags in git
instead.

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

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

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

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

[BUGFIX] Fix down migration for Mysql, Version20120429213446
-----------------------------------------------------------------------------------------

* Fixes: `#41482 <http://forge.typo3.org/issues/41482>`_
* Commit: `930a1d4 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=930a1d41535f8fbe771e215d04eba5f71ccdb5bc>`_

[BUGFIX] Party should depend on the composer installer
-----------------------------------------------------------------------------------------

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

[TASK] Adjust to FLOW3 renamed to TYPO3 Flow
-----------------------------------------------------------------------------------------

Adjusts the code, comments, documentation as needed.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `483d978 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=483d978a7771a0e4f1fe6080ba34de7e17e2fa62>`_

[TASK] Update composer type to new naming scheme
-----------------------------------------------------------------------------------------

In accordance with the rename to TYPO3 Flow, the
composer-type is now ``typo3-flow-*``

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `4e0c4b3 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=4e0c4b342c2912e2edd52450b0e8ac4f32ade817>`_

[TASK] Adjust composer manifest
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `1b33e69 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=1b33e6977b3e804e36b339d9d812e6ea87c46e0e>`_

[TASK] Change dependency to require flow3/composer-installers
-----------------------------------------------------------------------------------------

* Commit: `9ef4f5f <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=9ef4f5f730ddcb0310766fdc051bd14f8c11fee7>`_

[TASK] Add christianjul/installers dependency
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `1961f20 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=1961f20b9375ea1bca90d6412846e12ef771c8e1>`_

[TASK] Make PSR-0 and composer compatible
-----------------------------------------------------------------------------------------

Moves all classes into a PSR-0 directory structure and adds a composer
manifest instead of Package.xml.

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

[TAKS] Whitespace fix in class docblock
-----------------------------------------------------------------------------------------

* Commit: `6201a38 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=6201a388d9d20ac3a4e73358d19127c10277288a>`_

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

Tweaks a single constructor docblock.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `ac08ac5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=ac08ac51415e1eef0da77f0d85be39e1597ee0e4>`_

[TASK] Adjust validators to avoid validating more than needed
-----------------------------------------------------------------------------------------

Corresponds to If2975bb2e4b79fd7227bda9c7c65b32a7f210e8e.

* Related: `#34154 <http://forge.typo3.org/issues/34154>`_
* Commit: `356939c <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=356939cec24a0194d4d6e5bff09cea8db6e60631>`_

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

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

[TASK] Make usagetype on ElectronicAddress nullable
-----------------------------------------------------------------------------------------

The usage property has no default value and thus should be
nullable to make "any" usage possible.

Adds a functional test (thanks Adrian Föder) as well.

* Related: `#35059 <http://forge.typo3.org/issues/35059>`_
* Commit: `e1d0e7b <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=e1d0e7bd46afb82b58a484122b0b9fcb0d5edc29>`_

[TASK] Adjust validators to avoid validating more than needed
-----------------------------------------------------------------------------------------

* Related: `#34145 <http://forge.typo3.org/issues/34145>`_
* Commit: `eece558 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=eece55844a51c5cf8eba9229d66bccfd128df0b8>`_

[BUGFIX] Duplicate email address throws exception
-----------------------------------------------------------------------------------------

Since #29547 is resolved, trying to store an email address that
already exists throws an exception.
This change drops the unique indexes for "identifier", "type" and
"usagetype" from the ElectronicAddress domain model.

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

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

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

Add space to "foreach(".

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `6445053 <http://git.typo3.org/FLOW3/Packages/TYPO3.Party.git?a=commit;h=6445053e14cc7ad45cf7fc486dec9f3c8fe4ee9c>`_

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Kickstart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

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

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

Remove the version field, so versions can be read from tags in git
instead.

* Related: `#43822 <http://forge.typo3.org/issues/43822>`_
* Commit: `3c7e9c5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=3c7e9c54b2eb2b4cdf91bd9da86755bc1c89b1c8>`_

[BUGFIX] Fix strpos() parameters in controller kickstart
-----------------------------------------------------------------------------------------

strpos() parameters were specified in reverse order which broke creation
of controllers for subpackages.

* Fixes: `#43423 <http://forge.typo3.org/issues/43423>`_
* Commit: `97c03c5 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=97c03c55dbf1a213b95b43cdae064752c91eb420>`_

[BUGFIX] Fix type hint of collections in generated model classes
-----------------------------------------------------------------------------------------

This makes sure that, when using collections with element type hints,
only the collection class name ends up in the type hint of the generated setter.

* Fixes: `#29791 <http://forge.typo3.org/issues/29791>`_
* Commit: `3060ff7 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=3060ff79b14ea8ff7ca3fefb54dad911b625bc2f>`_

[BUGFIX] Fix error message about invalid package key
-----------------------------------------------------------------------------------------

When specifying an invalid package key in the kickstart
commands, the error message now includes a note about the
vendor namespace that has to be added.

* Fixes: `#43194 <http://forge.typo3.org/issues/43194>`_
* Commit: `7a4886a <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=7a4886a83d696a9e2db3f10286875b2cac9be723>`_

[BUGFIX] Fix case of class names to generate
-----------------------------------------------------------------------------------------

This makes sure the created controller class names and
references are upper cased in order to avoid misleading
exceptions if the controller was specified lower cased.

* Fixes: `#43144 <http://forge.typo3.org/issues/43144>`_
* Commit: `ee5f026 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=ee5f02611f1a4ddc9b5e0db338ef7c47e1d85246>`_

[TASK] Update composer type to new naming scheme
-----------------------------------------------------------------------------------------

In accordance with the rename to TYPO3 Flow, the
composer-type is now ``typo3-flow-*``

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `4280efb <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=4280efb254988ba03c6c1d2013377fd026cd1e29>`_

[TASK] Adjust to FLOW3 renamed to TYPO3 Flow
-----------------------------------------------------------------------------------------

Adjusts the code, comments, documentation as needed.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `5ee2ca0 <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=5ee2ca0cab7a85f7ce804d1b80c527e017b9d48c>`_

[TASK] Add dependency to require flow3/composer-installers
-----------------------------------------------------------------------------------------

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

[TASK] Update to write in PSR-0 compatible path
-----------------------------------------------------------------------------------------

* Fixes: `#41180 <http://forge.typo3.org/issues/41180>`_
* Commit: `3cd555a <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=3cd555a208e7098c23af28bfd4e783b0bb7248bc>`_

[TASK] Make PSR-0 and composer compatible
-----------------------------------------------------------------------------------------

Moves all classes into a PSR-0 directory structure and adds a composer
manifest instead of Package.xml.

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

[TAKS] Whitespace fix in class docblock
-----------------------------------------------------------------------------------------

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

[BUGFIX] kickstart:package gives wrong hint for valid package key
-----------------------------------------------------------------------------------------

The kickstarter wrongly claims that a valid package key
may contain underscores. This patch corrects the respective
messages.

* Fixes: `#38999 <http://forge.typo3.org/issues/38999>`_
* Commit: `211dcab <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=211dcabe868d9679ba20be862acc843258b05cd2>`_

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

Does cleanup to code documentation.

* Related: `#34875 <http://forge.typo3.org/issues/34875>`_
* Commit: `d6228ba <http://git.typo3.org/FLOW3/Packages/TYPO3.Kickstart.git?a=commit;h=d6228bac6220e6c551dc9b1a7cbedacdd0e947eb>`_

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

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

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Welcome
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

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

[BUGFIX] Adjust tests to required action arguments
-----------------------------------------------------------------------------------------

Adjusts tests to changed requirements introduced with
I03fa30be2522ee53d5a8f184b57afe539ed4f991

* Related: `#43589 <http://forge.typo3.org/issues/43589>`_
* Commit: `7ad7b6c <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=7ad7b6c53a550f433415e433b095cc3623dfe1b2>`_

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

Remove the version field, so versions can be read from tags in git
instead. Fixes the description slightly.

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

[TASK] Update logo to TYPO3 Flow
-----------------------------------------------------------------------------------------

* Resolves: `#42766 <http://forge.typo3.org/issues/42766>`_
* Commit: `f05652e <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=f05652e2215e3dfad89984bc4f1468e2546186f8>`_

[TASK] Update composer type to new naming scheme
-----------------------------------------------------------------------------------------

In accordance with the rename to TYPO3 Flow, the
composer-type is now ``typo3-flow-*``

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `44a146a <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=44a146a59598a2e7e334372af0d480d4b9db5b5e>`_

[TASK] Adjust to FLOW3 renamed to TYPO3 Flow
-----------------------------------------------------------------------------------------

Adjusts the code, comments, documentation as needed.

* Related: `#41466 <http://forge.typo3.org/issues/41466>`_
* Commit: `9a04182 <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=9a041821dea0484f321a2a22dad79ec77046eefd>`_

[TASK] Adjust composer manifest
-----------------------------------------------------------------------------------------

* Related: `#41031 <http://forge.typo3.org/issues/41031>`_
* Commit: `79fade8 <http://git.typo3.org/FLOW3/Packages/TYPO3.Welcome.git?a=commit;h=79fade8bbbcee5dabcb3c20d7b97b71c9457e039>`_

[TASK] Make PSR-0 and composer compatible
-----------------------------------------------------------------------------------------

Moves all classes into a PSR-0 directory structure and adds a composer
manifest instead of Package.xml.

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

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

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

