1. Make sure a tile or piecen submitted is submitted by the current turn
holder.
2. Wait to end the turn until after we've received the elementAdded
notification for piecen placement and done the scoring. This ensures that
all events that need to be dispatched before the turn ends are dispatched
and that piecen removal is completed before we end the game and
potentially do more scoring.
3. When scoring a tile, always use an array that we can modify during the
scoring process to ensure that we don't score a claim group twice by
virtue of it being completed by a tile with two of the same feature, both
of which are linked into the same claim group. By removing piecens from
the array immediately, we can tell that we scored a claim group the first
time because the piecens belonging to the claim group will have been
removed from the local array whereas they would not yet have been removed
from the distributed set by virtue of the element removed events not yet
having been dispatched. Distributed programming is tricky.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@437 6335cc39-0255-0410-8fd6-9bcaacd3b74c
group list because that may contain the same tile multiple times when
tiles that contain multiple features are included in a single claim group
with both of their features. So we have to do some extra jockeying to
ensure that we count a tile only once.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@436 6335cc39-0255-0410-8fd6-9bcaacd3b74c
manager now supports site-specific translation messages; application
automatically configures Velocity to use things like the
SiteResourceManager and the ImportDirective.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@434 6335cc39-0255-0410-8fd6-9bcaacd3b74c
there) and to bring things up to date with some Velocity changes Geir made
at my prompting.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@428 6335cc39-0255-0410-8fd6-9bcaacd3b74c
ant. The test drivers are located in a separate hierarchy and are built
and invoked as a single ant target.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@419 6335cc39-0255-0410-8fd6-9bcaacd3b74c
application context and implemented a servlet context resource loader
which loads resources via ServletContext.getResourceAsStream().
git-svn-id: https://samskivert.googlecode.com/svn/trunk@414 6335cc39-0255-0410-8fd6-9bcaacd3b74c
like createSiteIdentifier() can happen after the application is
initialized and has access to things like connection providers.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@409 6335cc39-0255-0410-8fd6-9bcaacd3b74c
public FooRepository
extends SimpleRepository implements SimpleRepository.Operation
{
}
which seems wacky to me but I can see how we may not have entered the
protected namespace of the extended class while we're processing our
interface implementation declarations. Seems a bit like a bug though.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@408 6335cc39-0255-0410-8fd6-9bcaacd3b74c
service can't make its services available (like the database is down, or
their team lost, or their girlfriend turned out to be a guy).
git-svn-id: https://samskivert.googlecode.com/svn/trunk@406 6335cc39-0255-0410-8fd6-9bcaacd3b74c
the values from the request parameters. Modified dispatcher servlet to put
one in the context for every request.
git-svn-id: https://samskivert.googlecode.com/svn/trunk@399 6335cc39-0255-0410-8fd6-9bcaacd3b74c
up some other stuff (removed multiple application support because it was
pointless). Moved some general purpose things into servlet.util (still
need to modify the WebMacro version of the framework to use the general
purpose versions).
git-svn-id: https://samskivert.googlecode.com/svn/trunk@397 6335cc39-0255-0410-8fd6-9bcaacd3b74c