====================
1.1.0-beta2
====================

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

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

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

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

* Fixes: `#37569 <http://forge.typo3.org/issues/37569>`_
* Commit: `70608e7 <http://git.typo3.org/Flow/Distributions/Base.git?a=commit;h=70608e77eeb7ec75ad0e57e5c6fd9f034cefee96>`_

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

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

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

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

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

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

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

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

DataFixtures is at f201391349f3dc6bd9c9c698927ea7c78104c461.

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

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

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

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

Migrations is at fe98141b1e460baf5ab52f9139e1ae238101b28b.

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

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

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

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

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

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

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

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

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

Upstream release plus two of our own changes on top:

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

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

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

No changes

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

No changes

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

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

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

[BUGFIX] Fix inconsistent Validate and IgnoreValidation behavior
-----------------------------------------------------------------------------------------

The Validate annotation does an ltrim of "$" on the argument which the
IgnoreValidation annotation did not do. This change makes the two behave
the same by adding that trim to IgnoreValidation as well.

* Fixes: `#37385 <http://forge.typo3.org/issues/37385>`_
* Commit: `4ae13b5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4ae13b54054bfeee87f3f3c1afad561f74ccd303>`_

[BUGFIX] Fix error message about command controller classes
-----------------------------------------------------------------------------------------

If you create a CommandController which is not in the "Controller" directory
of a package or where the name does not end in "CommandController" you will
get an error saying "Invalid controller class name [...] 1305100019".

This change makes the error message a little more helpful.

* Fixes: `#33139 <http://forge.typo3.org/issues/33139>`_
* Commit: `42f4e5e <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=42f4e5ec0d5a071431d93a7e696956b172a7db91>`_

[TASK] IdentityRoutePart should return __identity array
-----------------------------------------------------------------------------------------

IdentityRoutePart::matchValue() currently returns the identifier
of the ObjectPathMapping record directly.
This makes it difficult to merge arguments with data from the
requestBody (e.g. for PUT requests).

This change adjusts the route part so that it sets $this->value
to an array in the format array('__identity' => '<Identifier>')

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

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

[TASK] Make "all" parameter optional in package:refreeze
-----------------------------------------------------------------------------------------

For freeze, unfreeze and refreeze the default value for
the packageKey is now "all".

* Resolves: `#37358 <http://forge.typo3.org/issues/37358>`_
* Commit: `0caf926 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=0caf926f31d31f8753eb9f2977f3db92b0280f28>`_

[BUGFIX] Fix IP address validation
-----------------------------------------------------------------------------------------

The IP address validation done with filter_var() worked
on the development machine running PHP 5.3.12, however,
it failed on the integration server running PHP 5.3.5.
Apparently, the filter_var options for FILTER_VALIDATE_IP
behave differently in these versions.

This patch removes the validation for IPv4 / IPv6 addresses
because they didn't make sense anyway.

In that regard: hooray for PHP behavior changes. They actually
exploit bad application code. Sometimes.

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

[FEATURE] Provide way to determine client IP address
-----------------------------------------------------------------------------------------

This adds a method getClientIpAddress() to the HTTP Request
class. It considers various kinds of environment variables
which are present when using proxies or certain server setups
for determining the actual client IP address.

* Resolves: `#37584 <http://forge.typo3.org/issues/37584>`_
* Commit: `253a939 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=253a939213dc6aaa8f4f18f6b364972fc82c9d6b>`_

[!!!][FEATURE] Content Negotiation for Media Types
-----------------------------------------------------------------------------------------

This improves the support for detecting the Media
Type (that is, "format" in an ActionRequest context)
based on the request's Accept header.

This implementation supports Quality Values and Media
Ranges as specified in RFC 2616.

The way to define the supported formats of a controller
has changed: Previously a class property $supportedFormats
contained a list of filename extensions which would be
supported. This property is not supported anymore.
Instead, controllers may now specify a list of IANA
Internet Media Types in a property $supportedMediaTypes.

The default setting for these supported media types
in ActionController is "text/html". You'll need to adjust
your controllers accordingly if you relied on the
$supportedFormats feature.

Also note that the format in ActionRequest is now NULL
by default. The ActionController makes sure to set the
correct format, but if you created your own ActionRequest
for a special purpose, you need to take care of setting
it yourself.

* Resolves: `#37561 <http://forge.typo3.org/issues/37561>`_
* Commit: `29618c5 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=29618c52b31a51acb1ddc4fb7796dfdab909cafe>`_

[TASK] Create configuration directories only on save
-----------------------------------------------------------------------------------------

The configuration directories for cached configuration were created
inside the constructor of the ConfigurationManager. This caused the
unit test to create directories outside the VFS. Moving the creation
to the saveConfigurationCache method fixes that. Additionally cleans
up some unit tests related to ApplicationContext and
ConfigurationManager.

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

[BUGFIX] Avoid validating instances more often than needed
-----------------------------------------------------------------------------------------

The GenericObjectValidator uses a static variable to store objects being
validated. Objects were still validated over and over because at the
end of isValid() they were detached again.

This change replaces that detach() call with another concept. Now
any validator implementing the new ObjectValidatorInterface can be
given an SplObjectStorage to keep track of instances already
validated.

If you reset that container when it makes sense (before you
actively validate objects) you can avoid validating single instances
more than once in one validation run but still validate at various
points on your logic flow.

If you have implemented your own object validator you should
implement the new ObjectValidatorInterface - the easiest way is
to extend the GenericObjectValidator, if you haven't done that
so far.

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

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

[BUGFIX] Router overrides request arguments
-----------------------------------------------------------------------------------------

With the reworked Request stack, the router kicks in after
the action request have been built, overriding all arguments
the respective route specifies.

This works for the most cases, but leads to issues when you
try to specify part of a complex target argument via the route
and part via request.

For example if you update a domain model via request body but
specify the model itself through the URI like
http://domain/products/product-1 - now the Identity-RoutePart
detects "product-1" and turns it into the corresponding
__identity-array but then the Router kicks in and overrides
the "product" argument completely resulting in a new object
to be created by the property mapper.

This change adjusts the Router to recursively merge arguments
with the route values instead, with precedence to the route
values.

* Fixes: `#37445 <http://forge.typo3.org/issues/37445>`_
* Commit: `4ffcef3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=4ffcef32bca0ee9d05c743126ce9c4fd0904d726>`_

[BUGFIX] Keep existing PackageStates.php
-----------------------------------------------------------------------------------------

A wrong check for the existence of the configured "packagePath" caused
the loss of custom package states configuration on every request in
development mode or initially in production.

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

[!!!][TASK] Switch from MIME to Media Types
-----------------------------------------------------------------------------------------

The term MIME type is outdated, at least if used in a web context. The correct
term is "Internet Media Type". Furthermore, our list of MIME types (or media
types) was not up to date.

This patch introduces a new utility class "MediaTypes" which replaces
"FileTypes". Along with the new class comes a script which allows the core team
to conveniently update the list of Media Types and filename extensions.

This is a breaking change as the FileTypes class is deprecated with it. The old
methods are still available but should not be used anymore. A code migration to
use the new ones instead is shipped with the change.

* Related: `#37402 <http://forge.typo3.org/issues/37402>`_
* Related: `#33371 <http://forge.typo3.org/issues/33371>`_

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

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

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

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

[!!!][BUGFIX] Float and Integer converters do not correctly handle errors and empty values
------------------------------------------------------------------------------------------

When an argument of a controller action is annotated with
@param integer $var, the validation never fails if a string
is passed to the argument.
This is because the IntegerConverter implicitly casts the
string to an integer. The same problem exists with floats.

This change fixes this by checking the value and returning
an error object if it is not numeric. Besides this tweaks
the FloatConverter to accept float and integer values as
input and it adds a bunch of unit & functional tests.

Furthermore, empty strings are now correctly converted as NULL values.
This is a breaking change if you relied upon the old behavior that
empty values are converted to the number 0.

* Fixes: `#35136 <http://forge.typo3.org/issues/35136>`_
* Commit: `996f20c <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=996f20ce3a61fd4c9f4645d64df44235246b79bf>`_

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

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

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

[BUGFIX] Save relative package path in PackageStates.php
-----------------------------------------------------------------------------------------

Using absolute paths in the PackageStates.php causes problems in a
chroot environment where the absolute path is different in CLI then
in the HTTPD process.

Also relative paths allow to put PackageStates.php under version
control to maintain a specific state even when paths differ
on development and production systems.

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

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

[BUGFIX] PersistenceManager->add() now requires objects being new
-----------------------------------------------------------------------------------------

The add method in repositories did also update existing entities,
this can be dangerous, as it allows an attacker to misuse creation
forms (i.e. a register form) and change existing entities.

* Fixes: `#34527 <http://forge.typo3.org/issues/34527>`_
* Commit: `2290d9f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=2290d9febc7b7fc9a5bb0d67d8f89e97c8a345f0>`_

[FEATURE] Add getHttpResponse() to HttpRequestHandler
-----------------------------------------------------------------------------------------

This adds a getter method to the HTTP request handler
which allows for retrieving the response corresponding
to the currently handled request.

* Resolves: `#36696 <http://forge.typo3.org/issues/36696>`_
* Commit: `3469127 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=34691272f6a2ea722d475762ada0a27c35eaa3d5>`_

[FEATURE] Make HTTP responses standards compliant
-----------------------------------------------------------------------------------------

This adds a new API method to the HTTP response which
is called by a request handler to assure conformity
with RFC 2616 and other related specifications.

While there are a lot of rules to consider, this patch
only introduces a first set of important checks which
are all explained by a corresponding test.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `462fec1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=462fec11312d0ad520e0ced8a201bf7adde2e544>`_

[FEATURE] Response setExpires() / getExpires()
-----------------------------------------------------------------------------------------

This adds two new convenience methods to the Response
API which allow for setting and retrieving the Expires
HTTP header.

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

[FEATURE] Make Message / Response setters chainable
-----------------------------------------------------------------------------------------

This makes the setter methods of the Message and the
Response class chainable.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `11f8eb8 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=11f8eb8e96ad0f103b384734e17062bd57777d6b>`_

[FEATURE] More convenience methods in Response
-----------------------------------------------------------------------------------------

This adds a few more convenience methods for setting
headers and cache control directives in the Response
object:

* setDate() / getDate()
* setLastmodified() / getLastModified()
* setMaximumAge() / getMaximumAge()
* setSharedMaximumAge() / getSharedMaximumAge()

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

[FEATURE] Support for HTTP Cache-Control headers
-----------------------------------------------------------------------------------------

This adds support for the Cache-Control header.
The "Headers" object now handles the Cache-Control
header in a special way by keeping track of the
various cache directives separately. Those can
be set through the method setCacheControlDirective()
and get('Cache-Control') returns a rendered version
based on the previously set directives.

Alternatively, a whole Cache-Control header can also
be set through set() / setHeader(). The given field
value will then be parsed and the individual cache
directives are stored internally.

This patch also corrects the behavior of set() and
get() to convert date / time values always to GMT.
Also added a related note in the comments of the
respective API methods.

This patch also adds the new API methods setPrivate()
and setPublic() to the Response class.

* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `27f1622 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=27f162261c23b560e4fe408a03b7237dede3454a>`_

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

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

[TASK] Log skipped persistAll() due to closed EntityManager
-----------------------------------------------------------------------------------------

To avoid exceptions we only flush the EM if it is still open. To be
able to spot errors more easily, this adds a log entry if the EM
was closed and flushing was skipped.

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

[BUGFIX] Make our var_dump() usable with Doctrine collections
-----------------------------------------------------------------------------------------

For Doctrine\\Collection instances we use Doctrine's export()
method now to render the dump.

* Fixes: `#37481 <http://forge.typo3.org/issues/37481>`_
* Commit: `55b5a55 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=55b5a555ec747466bbe83b3dfa7eea13f3a5010e>`_

[BUGFIX] Fix Wrong exception message in Repository->remove()
-----------------------------------------------------------------------------------------

The message would say add() was involved, which is wrong.

* Fixes: `#37448 <http://forge.typo3.org/issues/37448>`_
* Commit: `91cb54f <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=91cb54f9ca1c09e0adc42b4e554fcdea115dfa69>`_

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

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

[FEATURE] Support for HTTP PUT/DELETE arguments
-----------------------------------------------------------------------------------------

This adds transparent argument support for arguments
in PUT and DELETE requests which are passed through
the request body. Depending on the content type of
the request, the message body is parsed and then
mapped into arguments for further use in controllers.

The following content content types are currently
supported:

* application/x-www-form-urlencoded
* application/json
* xml


* Resolves: `#36913 <http://forge.typo3.org/issues/36913>`_
* Related: `#37402 <http://forge.typo3.org/issues/37402>`_
* Related: `#33371 <http://forge.typo3.org/issues/33371>`_
* Commit: `8ce2f8d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=8ce2f8da04576f850dc1bb02c22fdd582f02df86>`_

[TASK] Common base class Message for Request / Response
-----------------------------------------------------------------------------------------

This introduces a new class "Message" which acts as a
common parent class for the HTTP Request and Response.
It provides shared functionality such as setting and
getting headers, charset handling and more.

It is in line with the terminology in RFC 2616.

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

[TASK] Temporarily remove nested response code
-----------------------------------------------------------------------------------------

This temporarily removes the code in HTTP Response which
tackles support of nested responses. This feature needs
to be implemented only when most of the other features,
including Cache Control, are in place.

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

[FEATURE] Support for HTTP Age and Date header
-----------------------------------------------------------------------------------------

This patch adds API methods and internal handling of
the HTTP "Date" and "Age" headers, according to
RFC 2616. It also introduces the use of the "Now"
singleton as a time reference for age calculations.

* Related: `#37259 <http://forge.typo3.org/issues/37259>`_
* Commit: `86350b1 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=86350b16355bfced486d2ee2af64180ee62efc26>`_

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

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

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

Add space to "foreach(".

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

[BUGFIX] Http Response can be cast to string again
-----------------------------------------------------------------------------------------

This reverts the removal of the __toString() method for the
Http Response. We currently rely on this behavior in the
ActionController which combines response content by simple
string concatenation.

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

[TASK] HTTP Response: Status Code and Content Type
-----------------------------------------------------------------------------------------

This adds a few new methods to the HTTP Response
class - including the related unit tests.

* Related: `#37259 <http://forge.typo3.org/issues/37259>`_
* Commit: `03ccfed <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=03ccfedd23591b0ad8eba0cba6ac6032034e1802>`_

[FEATURE] Introduce "Now" as unique time reference
-----------------------------------------------------------------------------------------

This patch introduces a new class called "Now" which
inherits DateTime and has the scope Singleton. It can
be used in all cases where a reliably comparable value
of "now" is needed or where time needs to be mocked
in related tests.

* Resolves: `#37376 <http://forge.typo3.org/issues/37376>`_
* Commit: `87120b3 <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=87120b37fa21b92c02fcce53279a03cc0b0c987a>`_

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[BUGFIX] credentialsSource in Account should be nullable
-----------------------------------------------------------------------------------------

Not all authentication mechanisms need a "credentials source" (e.g. the
typo3.org SSO provider), so the column for the property should be nullable.

* Fixes: `#37341 <http://forge.typo3.org/issues/37341>`_
* Commit: `01f9e3d <http://git.typo3.org/Flow/Packages/TYPO3.Flow.git?a=commit;h=01f9e3d082fd7b72bc994dc5abd594b9a737f9b6>`_

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

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

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

Add spaces to "){"

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

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

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

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

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

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

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

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Fluid
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

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

[TASK] Standalone View: enable escaping for "html"
-----------------------------------------------------------------------------------------

Since the introduction of Content Negotiation to FLOW3
(I7d753155aa72f41e3df85b076e8067bcbfe7ac04), the default
Format of the ActionRequest is not "html" but undefined.
The Standalone View relied on the default "html" format.

This change enables the escape interceptor if the format
is *either* "html" or not set at all
* Related: `#37561 <http://forge.typo3.org/issues/37561>`_

* Commit: `6f1b39d <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=6f1b39d8c75a2ce37e3e5ef1a725790b4283c2ef>`_

[FEATURE] Allow access to attributes in TagBuilder
-----------------------------------------------------------------------------------------

* Resolves: `#37460 <http://forge.typo3.org/issues/37460>`_
* Commit: `f533788 <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=f5337883f083ff2ec7226a7f7fb4f0a5560701c8>`_

[BUGFIX] Avoid empty output of TranslateViewHelper
-----------------------------------------------------------------------------------------

If translation by ID is used but no translation is found, the ID will now be
returned if the view helper tag has no content. Before this change it would
just return nothing (printable, at least).

* Fixes: `#35041 <http://forge.typo3.org/issues/35041>`_
* Commit: `cd86a2d <http://git.typo3.org/Flow/Packages/TYPO3.Fluid.git?a=commit;h=cd86a2dd032dc564e7a5eb10cbd75dfbcee478c5>`_

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

Add spaces to "){" and to "foreach(", fixes some docblocks and
indentation. Also avoids a possible uninitialised variable warning.

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

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

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

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Kickstart
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

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

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

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

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Party
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

* Commit: `02a04f6 <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=02a04f6e74de4e99009118e6e88a705214005bb3>`_

[TASK] Make usagetype on ElectronicAddress nullable
-----------------------------------------------------------------------------------------

The usage property has no default value and thus should be
nullable to make "any" usage possible.

Adds a functional test (thanks Adrian Föder) as well.

* Related: `#35059 <http://forge.typo3.org/issues/35059>`_
* Commit: `735ccef <http://git.typo3.org/Flow/Packages/TYPO3.Party.git?a=commit;h=735ccefcaf41c46f60cc2327a7ca259e22f34d6b>`_

[BUGFIX] Duplicate email address throws exception
-----------------------------------------------------------------------------------------

Since #29547 is resolved, trying to store an email address that
already exists throws an exception.
This change drops the unique indexes for "identifier", "type" and
"usagetype" from the ElectronicAddress domain model.

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

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

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

Add space to "foreach(".

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

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

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

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
TYPO3.Welcome
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

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

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

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

