Update JavaGuide2.md

add addtional lines to modelsTest.java to prevent compilation error.

import java.util.List;
import com.avaje.ebean.*;
import play.libs.*;
Fixed regression in rendering repeated Java form fields

Fixes #2499

The actual bug was that the the Java Field.indexes implementation was
not returning distinct indexes when the form had no value associated
with it (eg, if it failed validation), so if a field that was repeated
had multiple sub fields, the repeat hepler would render it once for
every sub field.

Additionally, in that case, the ordering of the indexes was made
random by virtue of being calculated fdrom the keys of a HashMap, where
but the indexes should be returned in order.

This only just exposed itself because the old repeat helper simply
rendered as many fields as the maximum index.  The new one however
renders fields equivalent to what indexes exist in the form.

New tests test both that only one of each index appears, and that
indexes are always returned in order.
Make ExecutionContext vals into objects so their classnames are nicer for debugging
Bounce JavaAction code on a trampoline

By avoiding context switches we improve performance for Java actions.
Fix: typo in hacking documentation
Merge pull request #2614 from richdougherty/names-for-executioncontexts

Make ExecutionContext vals into objects
Merge pull request #2615 from richdougherty/java-action-trampoline

Bounce JavaAction code on a trampoline
Enhanced doco in response to community feedback.
Merge branch 'master' of github.com:playframework/playframework
Merge pull request #2499 from jroper/2499-java-repeat-fix

[2.2.2-java] duplicated list entries view for Lists. @repeat helper is wrong
Optimize router HandlerInvoker construction and lookup

Before this change routers created a HandlerInvoker for every request.
With this change, each route's HandlerInvoker is created once and
cached in its own lazy val.

We can use the cached HandlerInvoker to cache route information such
as Java reflection info and request tags. That lets us remove the
ConcurrentHashMap that was previously used to cache Java reflection
info.

These changes improves both Scala and Java performance, but Java
performance improves the most.

To implement the change, we change all the implicits that we
previously used for creating HandlerInvokers into implicits for
creating HandlerInvokerFactories. HandlerInvokerFactories are used
to create the HandlerInvokerFactory for each route.

We need to use a hack to implicitly resolve the correct
HandlerInvokerFactory.

Before, HandlerInvokers were implicitly resolved while a request was
being handled. That meant that the correct implicit HandlerInvoker
could be found by calling the controller method with the request
parameters.

Now, we can't call the controller method, since we want to create a
HandlerInvokerFactories even when we're not handling a request, so
we can't call the controller method with the request parameters.

What we do instead is *pretend* to call the controller method in a
call-by-name thunk, but never actually call that thunk.

It's a bit hacky, but it works. Maybe in the future we could use
macros to directly get the return type of the controller method.
Removed the hard dependency on the Activator version.
Merge branch 'master' of github.com:playframework/playframework
Merge pull request #2622 from richdougherty/router-handlerinvoker-caching

Optimize router HandlerInvoker construction and lookup
Merge pull request #2489 from sombatsombat/patch-1

Update JavaGuide2.md
Merge pull request #2616 from yokomizor/fix_typo_in_hacking_documentation

Fix: typo in hacking documentation
Check that Java BodyParser runs in the user thread pool
Use a trampoline for Java BodyParsers

Removes a single context switch, improving performance slightly
Merge pull request #2627 from richdougherty/java-bodyparser-trampoline

Bounce Java BodyParsers on a trampoline
Fixed jsdelivr link in RequireJS doc