Permalink
Commits on Aug 12, 2013
Commits on May 10, 2013
Commits on Apr 24, 2013
  1. Added uuidParam argument to {Json,}SyncService; tweaks to ResponseMat…

    …chers and JsonValidationCombinators
    davegurnell committed Apr 24, 2013
Commits on Apr 18, 2013
  1. Revamped ResponseMatchers

    davegurnell committed Apr 18, 2013
  2. Added JsonConfig.removeNulls

    davegurnell committed Apr 18, 2013
Commits on Apr 17, 2013
Commits on Apr 16, 2013
Commits on Apr 10, 2013
Commits on Apr 9, 2013
Commits on Apr 8, 2013
Commits on Apr 5, 2013
Commits on Apr 4, 2013
Commits on Apr 3, 2013
Commits on Apr 2, 2013
Commits on Mar 29, 2013
  1. Revisions FutureValidation and Problem to catch Akka-level exceptions…

    … and work towards a Try-like model of Problem handling.
    
     - FutureValidation has had its error type fixed to Problem.
    
     - Problem now extends Throwable and can be chained off of other Throwables to maintain stack trace information.
    
     - The combinators on FutureValidation (flatMap, Map, et al) now have recover/recoverWith arms to catch
       Akka-level exceptions such as timeouts.
    
     - JSON/request parsing yields a separate JsonValidation type. JsonValidations can be merged in an applicative
       style and then converted to Problems to report multiple parse errors at once.
    
    A typical HTTP handler now looks like this (adapted from SessionServices.scala):
    
        val createSessionService =
          service {
            (req: HttpRequest[Future[JValue]]) =>
              (for {
                json                 <- req.json
                (username, password) <- tuple(
                                          json.mandatory[String]("username"),
                                          json.mandatory[String]("password")
                                        ).toClientProblem.fv
                result               <- sessionActions.create(username, password)
              } yield result).toResponse(externalFormat, log)
          }
    
    Note that there is an idiosyncrasy checking for timeouts. The await() method on FutureValidationW specifically catches TimeoutExceptions and returns them in a Problems.Unknown. However, the await() method in FutureW does not.
    
    We should perhaps consider removing await() from FutureW, to enforce a consistent semantics. Then again, these two are only usually used in tests so (a) perhaps it's not a big deal or (b) perhaps we should remove both of them.
    davegurnell committed Dec 21, 2012
Commits on Dec 11, 2012
  1. Create Chunk <-> Json bijection that correctly handles multiple chunks.

    Shockingly, the unapply method for BijectionsChunkJson was incorrect, only reading the first chunk of data, and not following the link to the next chunk. This is a problem if using the client and receiving a large amount of data. This add a custom implementation that fixes the issue, and migrates Bigtop utilities to use the fixed bijection.
    
    We also correctly encode output as utf-8, instead of relying on the default charset.
    
    Will merge in BE 0.6 in due course.
    noelwelsh committed Dec 11, 2012
Commits on Nov 29, 2012
Commits on Nov 26, 2012
  1. The prefix (group in Metrics speak) is specified by a configuration p…

    …arameter. This allows you to distinguish which machine is sending the metrics you're viewing.
    noelwelsh committed Nov 26, 2012
Commits on Nov 22, 2012
  1. Merge branch 'wip-uuid'

    davegurnell committed Nov 22, 2012
Commits on Nov 8, 2012
Commits on Oct 28, 2012
  1. Add a new service to catch exceptions. Allow malformedRequest Problem…

    … to specify more detail.
    noelwelsh committed Oct 28, 2012
Commits on Oct 27, 2012
Commits on Oct 25, 2012
  1. Non-zero timeout on JSON parsing and unparsing and a new service to m…

    …ake debugging easier.
    noelwelsh committed Oct 25, 2012
  2. Merge branch 'master' of github.com:bigtop/bigtop

    Conflicts:
    	core/src/main/scala/bigtop/concurrent/FutureValidation.scala
    noelwelsh committed Oct 25, 2012
Commits on Oct 14, 2012
Commits on Sep 16, 2012