Float support added for transchoice in the Translation Component
Revise Mongo session storage

 * Default to _id for storing session ID
 * Use MongoDate instead of MongoTimestamp (BC break)
 * Rename default field names ("sess_" is redundant)
 * "justOne" is redundant for session removal
 * Assert true return values in method tests
 * Add note about TTL collections for gc()
 * Don't set identifier in upsert (invalid behavior)
merged branch jmikola/2.1-mongo-session (PR #5916)

This PR was submitted for the 2.1 branch but it was merged into the master branch instead (closes #5916).

Commits
-------

917cc14 [HttpFoundation] Revise Mongo session storage

Discussion
----------

[HttpFoundation] Revise MongoDB session storage

```
Bug fix: yes
Feature addition: no
Backwards compatibility break: yes
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -
```

I decided to take a look at the MongoDB session driver after reading @pgodel's [blog post](http://blog.servergrove.com/2012/11/05/storing-sessions-in-mongodb-with-symfony2/) today. This PR contains some fixes to make this session handler integrate better with MongoDB, as well as make it more in line with the work I did in zendframework/zf2/#2031:

 * Default to _id for storing session ID (BC break)
 * Use MongoDate instead of MongoTimestamp (BC break)
 * Rename default field names ("sess_" is redundant)
 * "justOne" is redundant for session removal
 * Assert true return values in method tests
 * Add note about TTL collections for gc()
 * Don't set identifier in upsert (invalid behavior)

In my opinion, the BC breaks are reasonable. `_id` is the logical field to store the session ID, as I'd expect many users may not even think to index the `sess_id` field to avoid inefficient queries otherwise. Also, MongoTimestamp should never have been used in the existing manner. Per the [documentation](http://php.net/manual/en/class.mongotimestamp.php):

> This class is not for measuring time, creating a timestamp on a document or automatically adding or updating a timestamp on a document. Unless you are writing something that interacts with the sharding internals, stop, go directly to MongoDate, do not pass go, do not collect 200 dollars. This is not the class you are looking for.

On a side note, I'm not sure why `sess_` prefixes exist for the PDO driver. It seems redundant in either case (the table/collection would logically have "session" in the name).

The fix to the update statement actually addresses a bug were `_id` to appear in the `$set` query.

I'm not sure how to document the BC breaks or changes, as the 2.1 branch's readme files look a lot sparser than those for 2.0. Let me know if there's something else to be done, though.

---------------------------------------------------------------------------

by jmikola at 2012-11-06T02:49:06Z

FYI: the Travis CI build failure looks unrelated to these changes (something to do with Form tests): https://travis-ci.org/#!/jmikola/symfony/jobs/3076587

---------------------------------------------------------------------------

by pgodel at 2012-11-06T04:27:24Z

I think the BC breaks are very mino, so there is no reason to not merge this.

---------------------------------------------------------------------------

by jmikola at 2012-11-06T07:32:44Z

Thanks, @stof. That looked like something @pborreli would have caught sooner or later :)

---------------------------------------------------------------------------

by fabpot at 2012-11-06T08:00:48Z

As there is a BC break, I'm going to merge it on master.

---------------------------------------------------------------------------

by pborreli at 2012-11-06T08:05:08Z

@jmikola merging with master you will have a little conflict as i already fixed the citeria => criteria typo :)
changed the remember-me listener to be a proper subscriber
changed the Firewall to be a proper subscriber
merged branch nicoschwartz/translation_transchoice_float_support (PR #5890)

This PR was merged into the master branch.

Commits
-------

55a0fef Float support added for transchoice in the Translation Component

Discussion
----------

Float support added for transchoice in the Translation Component

Bug fix: no
Feature addition: yes
Backwards compatibility break: no
Symfony2 tests pass: yes
License of the code: MIT

---------------------------------------------------------------------------

by pborreli at 2012-11-01T23:22:50Z

:+1: nice PR
fixed typo
merged branch fabpot/subscribers (PR #5919)

This PR was merged into the master branch.

Commits
-------

af87c2b changed the Firewall to be a proper subscriber
02bd359 changed the remember-me listener to be a proper subscriber

Discussion
----------

Changed some security classes to implement the EventSubscriberInterface interface

---------------------------------------------------------------------------

by fabpot at 2012-11-06T10:11:28Z

That could also be done in 2.1. What do you think?
[FrameworkBundle] Router skip defaults resolution for arrays
[HttpFoundation] Document MongoDbSessionHandler changes
merged branch jmikola/2.2-mongodb-session (PR #5927)

This PR was merged into the master branch.

Commits
-------

ded3a83 [HttpFoundation] Document MongoDbSessionHandler changes

Discussion
----------

[HttpFoundation] Document MongoDbSessionHandler changes

```
Bug fix: no
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: -
Todo: -
License of the code: MIT
Documentation PR: -
```

Documentation changes for #5916

---------------------------------------------------------------------------

by Baachi at 2012-11-06T20:41:11Z

:+1:
merged branch Herzult/fix/route_defaults_array (PR #5924)

This PR was merged into the 2.1 branch.

Commits
-------

208e134 [FrameworkBundle] Router skip defaults resolution for arrays

Discussion
----------

[FrameworkBundle] Router skip defaults resolution for arrays

The router should not resolve complex defaults/options parameters but it is not the case for arrays. So this small PR simply adds a check for arrays to prevent array-to-string fatal errors with deep array defaults.

```
Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: ~
Todo: ~
License of the code: MIT
Documentation PR: ~
```
Merge branch '2.1'

* 2.1:
  [FrameworkBundle] Router skip defaults resolution for arrays

Conflicts:
	src/Symfony/Bundle/FrameworkBundle/Routing/Router.php
Update UPGRADE-2.1.md

Change on selectedchoice part, because "choice.value" wont work, but just "value" does.
[Security] updated CHANGELOG
[Form] Fixed NumberToLocalizedStringTransformer to throw an exception if numbers contain illegal characters
merged branch bschussek/issue5707 (PR #5943)

This PR was merged into the master branch.

Commits
-------

c16d6bf [Form] Fixed NumberToLocalizedStringTransformer to throw an exception if numbers contain illegal characters

Discussion
----------

[Form] Fixed NumberType to fail if numbers contain letters

Bug fix: yes
Feature addition: no
Backwards compatibility break: no
Symfony2 tests pass: yes
Fixes the following tickets: #5707
Todo: -
License of the code: MIT
Documentation PR: -
merged branch mborgmann/patch-1 (PR #5930)

This PR was merged into the master branch.

Commits
-------

04e93d8 Update UPGRADE-2.1.md

Discussion
----------

Update UPGRADE-2.1.md

Change on selectedchoice part, because "choice.value" wont work, but just "value" does.
[ClassLoader] Make ApcClassLoader properly decorate ClassLoader.
merged branch sun/classloader-apc-decorate (PR #5950)

This PR was merged into the master branch.

Commits
-------

d231b8f [ClassLoader] Make ApcClassLoader properly decorate ClassLoader.

Discussion
----------

[ClassLoader] Make ApcClassLoader properly decorate ClassLoader.

ApcClassLoader only implements the findFile() and loadClass() methods, but none of the other methods.  That's an implementation detail, which isn't particularly trivial.

I can't see a reason for why ApcClassLoader cannot simply decorate ClassLoader in a proper way, passing forward all unknown method calls to ClassLoader.

---------------------------------------------------------------------------

by sun at 2012-11-09T03:00:51Z

mmm, the test failures seem to be irrelevant.  It passed on the PHP 5.4 environment.  The others failed on early pre-test infrastructure operations.