/**
  * Tries to find and return the application for the passed request.
  *
  * @param \Guzzle\Http\Message\RequestInterface $request The request to find and return the application instance for
  *
  * @return \AppserverIo\Psr\Application\ApplicationInterface The application instance
  * @throws \AppserverIo\Lab\WebSocketProtocol\BadRequestException Is thrown if no application can be found for the passed application name
  */
 public function findApplication(RequestInterface $request)
 {
     // load the path information and the server name
     $pathInfo = $request->getPath();
     // initialize the handler path
     $request->setHandlerPath($request->getPath());
     // strip the leading slash and explode the application name
     list($applicationName, ) = explode('/', substr($pathInfo, 1));
     // if not, check if the request matches a folder
     if (array_key_exists($applicationName, $this->applications)) {
         // load the application from the array
         $application = $this->applications[$applicationName];
     } else {
         throw new BadRequestException("Can't find application for '{$applicationName}'");
     }
     // inject the application context into the handler request
     $request->injectContext($application);
     // return, because request has been prepared successfully
     return $application;
 }