/** * 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; }