You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by nd...@apache.org on 2015/05/01 23:32:57 UTC

[10/57] [partial] airavata-php-gateway git commit: AIRAVATA 1632 + Job Description for Admin Dashboard

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Http/Request.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Http/Request.php b/vendor/laravel/framework/src/Illuminate/Http/Request.php
new file mode 100755
index 0000000..580f119
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Http/Request.php
@@ -0,0 +1,608 @@
+<?php namespace Illuminate\Http;
+
+use SplFileInfo;
+use Symfony\Component\HttpFoundation\ParameterBag;
+use Symfony\Component\HttpFoundation\Request as SymfonyRequest;
+
+class Request extends SymfonyRequest {
+
+	/**
+	 * The decoded JSON content for the request.
+	 *
+	 * @var string
+	 */
+	protected $json;
+
+	/**
+	 * The Illuminate session store implementation.
+	 *
+	 * @var \Illuminate\Session\Store
+	 */
+	protected $sessionStore;
+
+	/**
+	 * Return the Request instance.
+	 *
+	 * @return $this
+	 */
+	public function instance()
+	{
+		return $this;
+	}
+
+	/**
+	 * Get the request method.
+	 *
+	 * @return string
+	 */
+	public function method()
+	{
+		return $this->getMethod();
+	}
+
+	/**
+	 * Get the root URL for the application.
+	 *
+	 * @return string
+	 */
+	public function root()
+	{
+		return rtrim($this->getSchemeAndHttpHost().$this->getBaseUrl(), '/');
+	}
+
+	/**
+	 * Get the URL (no query string) for the request.
+	 *
+	 * @return string
+	 */
+	public function url()
+	{
+		return rtrim(preg_replace('/\?.*/', '', $this->getUri()), '/');
+	}
+
+	/**
+	 * Get the full URL for the request.
+	 *
+	 * @return string
+	 */
+	public function fullUrl()
+	{
+		$query = $this->getQueryString();
+
+		return $query ? $this->url().'?'.$query : $this->url();
+	}
+
+	/**
+	 * Get the current path info for the request.
+	 *
+	 * @return string
+	 */
+	public function path()
+	{
+		$pattern = trim($this->getPathInfo(), '/');
+
+		return $pattern == '' ? '/' : $pattern;
+	}
+
+	/**
+	 * Get the current encoded path info for the request.
+	 *
+	 * @return string
+	 */
+	public function decodedPath()
+	{
+		return rawurldecode($this->path());
+	}
+
+	/**
+	 * Get a segment from the URI (1 based index).
+	 *
+	 * @param  string  $index
+	 * @param  mixed   $default
+	 * @return string
+	 */
+	public function segment($index, $default = null)
+	{
+		return array_get($this->segments(), $index - 1, $default);
+	}
+
+	/**
+	 * Get all of the segments for the request path.
+	 *
+	 * @return array
+	 */
+	public function segments()
+	{
+		$segments = explode('/', $this->path());
+
+		return array_values(array_filter($segments, function($v) { return $v != ''; }));
+	}
+
+	/**
+	 * Determine if the current request URI matches a pattern.
+	 *
+	 * @param  mixed  string
+	 * @return bool
+	 */
+	public function is()
+	{
+		foreach (func_get_args() as $pattern)
+		{
+			if (str_is($pattern, urldecode($this->path())))
+			{
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Determine if the request is the result of an AJAX call.
+	 *
+	 * @return bool
+	 */
+	public function ajax()
+	{
+		return $this->isXmlHttpRequest();
+	}
+
+	/**
+	 * Determine if the request is over HTTPS.
+	 *
+	 * @return bool
+	 */
+	public function secure()
+	{
+		return $this->isSecure();
+	}
+
+	/**
+	 * Returns the client IP address.
+	 *
+	 * @return string
+	 */
+	public function ip()
+	{
+		return $this->getClientIp();
+	}
+
+	/**
+	 * Returns the client IP addresses.
+	 *
+	 * @return array
+	 */
+	public function ips()
+	{
+		return $this->getClientIps();
+	}
+
+	/**
+	 * Determine if the request contains a given input item key.
+	 *
+	 * @param  string|array  $key
+	 * @return bool
+	 */
+	public function exists($key)
+	{
+		$keys = is_array($key) ? $key : func_get_args();
+
+		$input = $this->all();
+
+		foreach ($keys as $value)
+		{
+			if ( ! array_key_exists($value, $input)) return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Determine if the request contains a non-empty value for an input item.
+	 *
+	 * @param  string|array  $key
+	 * @return bool
+	 */
+	public function has($key)
+	{
+		$keys = is_array($key) ? $key : func_get_args();
+
+		foreach ($keys as $value)
+		{
+			if ($this->isEmptyString($value)) return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Determine if the given input key is an empty string for "has".
+	 *
+	 * @param  string  $key
+	 * @return bool
+	 */
+	protected function isEmptyString($key)
+	{
+		$boolOrArray = is_bool($this->input($key)) || is_array($this->input($key));
+
+		return ! $boolOrArray && trim((string) $this->input($key)) === '';
+	}
+
+	/**
+	 * Get all of the input and files for the request.
+	 *
+	 * @return array
+	 */
+	public function all()
+	{
+		return array_replace_recursive($this->input(), $this->files->all());
+	}
+
+	/**
+	 * Retrieve an input item from the request.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return string
+	 */
+	public function input($key = null, $default = null)
+	{
+		$input = $this->getInputSource()->all() + $this->query->all();
+
+		return array_get($input, $key, $default);
+	}
+
+	/**
+	 * Get a subset of the items from the input data.
+	 *
+	 * @param  array  $keys
+	 * @return array
+	 */
+	public function only($keys)
+	{
+		$keys = is_array($keys) ? $keys : func_get_args();
+
+		$results = [];
+
+		$input = $this->all();
+
+		foreach ($keys as $key)
+		{
+			array_set($results, $key, array_get($input, $key));
+		}
+
+		return $results;
+	}
+
+	/**
+	 * Get all of the input except for a specified array of items.
+	 *
+	 * @param  array  $keys
+	 * @return array
+	 */
+	public function except($keys)
+	{
+		$keys = is_array($keys) ? $keys : func_get_args();
+
+		$results = $this->all();
+
+		array_forget($results, $keys);
+
+		return $results;
+	}
+
+	/**
+	 * Retrieve a query string item from the request.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return string
+	 */
+	public function query($key = null, $default = null)
+	{
+		return $this->retrieveItem('query', $key, $default);
+	}
+
+	/**
+	 * Determine if a cookie is set on the request.
+	 *
+	 * @param  string  $key
+	 * @return bool
+	 */
+	public function hasCookie($key)
+	{
+		return ! is_null($this->cookie($key));
+	}
+
+	/**
+	 * Retrieve a cookie from the request.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return string
+	 */
+	public function cookie($key = null, $default = null)
+	{
+		return $this->retrieveItem('cookies', $key, $default);
+	}
+
+	/**
+	 * Retrieve a file from the request.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return \Symfony\Component\HttpFoundation\File\UploadedFile|array
+	 */
+	public function file($key = null, $default = null)
+	{
+		return array_get($this->files->all(), $key, $default);
+	}
+
+	/**
+	 * Determine if the uploaded data contains a file.
+	 *
+	 * @param  string  $key
+	 * @return bool
+	 */
+	public function hasFile($key)
+	{
+		if ( ! is_array($files = $this->file($key))) $files = array($files);
+
+		foreach ($files as $file)
+		{
+			if ($this->isValidFile($file)) return true;
+		}
+
+		return false;
+	}
+
+	/**
+	 * Check that the given file is a valid file instance.
+	 *
+	 * @param  mixed  $file
+	 * @return bool
+	 */
+	protected function isValidFile($file)
+	{
+		return $file instanceof SplFileInfo && $file->getPath() != '';
+	}
+
+	/**
+	 * Retrieve a header from the request.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return string
+	 */
+	public function header($key = null, $default = null)
+	{
+		return $this->retrieveItem('headers', $key, $default);
+	}
+
+	/**
+	 * Retrieve a server variable from the request.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return string
+	 */
+	public function server($key = null, $default = null)
+	{
+		return $this->retrieveItem('server', $key, $default);
+	}
+
+	/**
+	 * Retrieve an old input item.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return mixed
+	 */
+	public function old($key = null, $default = null)
+	{
+		return $this->session()->getOldInput($key, $default);
+	}
+
+	/**
+	 * Flash the input for the current request to the session.
+	 *
+	 * @param  string  $filter
+	 * @param  array   $keys
+	 * @return void
+	 */
+	public function flash($filter = null, $keys = array())
+	{
+		$flash = ( ! is_null($filter)) ? $this->$filter($keys) : $this->input();
+
+		$this->session()->flashInput($flash);
+	}
+
+	/**
+	 * Flash only some of the input to the session.
+	 *
+	 * @param  mixed  string
+	 * @return void
+	 */
+	public function flashOnly($keys)
+	{
+		$keys = is_array($keys) ? $keys : func_get_args();
+
+		return $this->flash('only', $keys);
+	}
+
+	/**
+	 * Flash only some of the input to the session.
+	 *
+	 * @param  mixed  string
+	 * @return void
+	 */
+	public function flashExcept($keys)
+	{
+		$keys = is_array($keys) ? $keys : func_get_args();
+
+		return $this->flash('except', $keys);
+	}
+
+	/**
+	 * Flush all of the old input from the session.
+	 *
+	 * @return void
+	 */
+	public function flush()
+	{
+		$this->session()->flashInput(array());
+	}
+
+	/**
+	 * Retrieve a parameter item from a given source.
+	 *
+	 * @param  string  $source
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return string
+	 */
+	protected function retrieveItem($source, $key, $default)
+	{
+		if (is_null($key))
+		{
+			return $this->$source->all();
+		}
+
+		return $this->$source->get($key, $default, true);
+	}
+
+	/**
+	 * Merge new input into the current request's input array.
+	 *
+	 * @param  array  $input
+	 * @return void
+	 */
+	public function merge(array $input)
+	{
+		$this->getInputSource()->add($input);
+	}
+
+	/**
+	 * Replace the input for the current request.
+	 *
+	 * @param  array  $input
+	 * @return void
+	 */
+	public function replace(array $input)
+	{
+		$this->getInputSource()->replace($input);
+	}
+
+	/**
+	 * Get the JSON payload for the request.
+	 *
+	 * @param  string  $key
+	 * @param  mixed   $default
+	 * @return mixed
+	 */
+	public function json($key = null, $default = null)
+	{
+		if ( ! isset($this->json))
+		{
+			$this->json = new ParameterBag((array) json_decode($this->getContent(), true));
+		}
+
+		if (is_null($key)) return $this->json;
+
+		return array_get($this->json->all(), $key, $default);
+	}
+
+	/**
+	 * Get the input source for the request.
+	 *
+	 * @return \Symfony\Component\HttpFoundation\ParameterBag
+	 */
+	protected function getInputSource()
+	{
+		if ($this->isJson()) return $this->json();
+
+		return $this->getMethod() == 'GET' ? $this->query : $this->request;
+	}
+
+	/**
+	 * Determine if the request is sending JSON.
+	 *
+	 * @return bool
+	 */
+	public function isJson()
+	{
+		return str_contains($this->header('CONTENT_TYPE'), '/json');
+	}
+
+	/**
+	 * Determine if the current request is asking for JSON in return.
+	 *
+	 * @return bool
+	 */
+	public function wantsJson()
+	{
+		$acceptable = $this->getAcceptableContentTypes();
+
+		return isset($acceptable[0]) && $acceptable[0] == 'application/json';
+	}
+
+	/**
+	 * Get the data format expected in the response.
+	 *
+	 * @param  string  $default
+	 * @return string
+	 */
+	public function format($default = 'html')
+	{
+		foreach ($this->getAcceptableContentTypes() as $type)
+		{
+			if ($format = $this->getFormat($type)) return $format;
+		}
+
+		return $default;
+	}
+
+	/**
+	 * Create an Illuminate request from a Symfony instance.
+	 *
+	 * @param  \Symfony\Component\HttpFoundation\Request  $request
+	 * @return \Illuminate\Http\Request
+	 */
+	public static function createFromBase(SymfonyRequest $request)
+	{
+		if ($request instanceof static) return $request;
+
+		$content = $request->content;
+
+		$request = (new static)->duplicate(
+
+			$request->query->all(), $request->request->all(), $request->attributes->all(),
+
+			$request->cookies->all(), $request->files->all(), $request->server->all()
+		);
+
+		$request->content = $content;
+
+		$request->request = $request->getInputSource();
+
+		return $request;
+	}
+
+	/**
+	 * Get the session associated with the request.
+	 *
+	 * @return \Illuminate\Session\Store
+	 *
+	 * @throws \RuntimeException
+	 */
+	public function session()
+	{
+		if ( ! $this->hasSession())
+		{
+			throw new \RuntimeException("Session store not set on request.");
+		}
+
+		return $this->getSession();
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Http/Response.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Http/Response.php b/vendor/laravel/framework/src/Illuminate/Http/Response.php
new file mode 100755
index 0000000..f5d5151
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Http/Response.php
@@ -0,0 +1,85 @@
+<?php namespace Illuminate\Http;
+
+use ArrayObject;
+use Illuminate\Support\Contracts\JsonableInterface;
+use Illuminate\Support\Contracts\RenderableInterface;
+
+class Response extends \Symfony\Component\HttpFoundation\Response {
+
+	use ResponseTrait;
+
+	/**
+	 * The original content of the response.
+	 *
+	 * @var mixed
+	 */
+	public $original;
+
+	/**
+	 * Set the content on the response.
+	 *
+	 * @param  mixed  $content
+	 * @return $this
+	 */
+	public function setContent($content)
+	{
+		$this->original = $content;
+
+		// If the content is "JSONable" we will set the appropriate header and convert
+		// the content to JSON. This is useful when returning something like models
+		// from routes that will be automatically transformed to their JSON form.
+		if ($this->shouldBeJson($content))
+		{
+			$this->headers->set('Content-Type', 'application/json');
+
+			$content = $this->morphToJson($content);
+		}
+
+		// If this content implements the "RenderableInterface", then we will call the
+		// render method on the object so we will avoid any "__toString" exceptions
+		// that might be thrown and have their errors obscured by PHP's handling.
+		elseif ($content instanceof RenderableInterface)
+		{
+			$content = $content->render();
+		}
+
+		return parent::setContent($content);
+	}
+
+	/**
+	 * Morph the given content into JSON.
+	 *
+	 * @param  mixed   $content
+	 * @return string
+	 */
+	protected function morphToJson($content)
+	{
+		if ($content instanceof JsonableInterface) return $content->toJson();
+
+		return json_encode($content);
+	}
+
+	/**
+	 * Determine if the given content should be turned into JSON.
+	 *
+	 * @param  mixed  $content
+	 * @return bool
+	 */
+	protected function shouldBeJson($content)
+	{
+		return $content instanceof JsonableInterface ||
+			   $content instanceof ArrayObject ||
+			   is_array($content);
+	}
+
+	/**
+	 * Get the original response content.
+	 *
+	 * @return mixed
+	 */
+	public function getOriginalContent()
+	{
+		return $this->original;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php b/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php
new file mode 100644
index 0000000..2cfd9be
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Http/ResponseTrait.php
@@ -0,0 +1,35 @@
+<?php namespace Illuminate\Http;
+
+use Symfony\Component\HttpFoundation\Cookie;
+
+trait ResponseTrait {
+
+	/**
+	 * Set a header on the Response.
+	 *
+	 * @param  string  $key
+	 * @param  string  $value
+	 * @param  bool    $replace
+	 * @return $this
+	 */
+	public function header($key, $value, $replace = true)
+	{
+		$this->headers->set($key, $value, $replace);
+
+		return $this;
+	}
+
+	/**
+	 * Add a cookie to the response.
+	 *
+	 * @param  \Symfony\Component\HttpFoundation\Cookie  $cookie
+	 * @return $this
+	 */
+	public function withCookie(Cookie $cookie)
+	{
+		$this->headers->setCookie($cookie);
+
+		return $this;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Http/composer.json
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Http/composer.json b/vendor/laravel/framework/src/Illuminate/Http/composer.json
new file mode 100755
index 0000000..d8d6b80
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Http/composer.json
@@ -0,0 +1,29 @@
+{
+    "name": "illuminate/http",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Taylor Otwell",
+            "email": "taylorotwell@gmail.com"
+        }
+    ],
+    "require": {
+        "php": ">=5.4.0",
+        "illuminate/session": "4.2.*",
+        "illuminate/support": "4.2.*",
+        "symfony/http-foundation": "2.5.*",
+        "symfony/http-kernel": "2.5.*"
+    },
+    "autoload": {
+        "psr-0": {
+            "Illuminate\\Http": ""
+        }
+    },
+    "target-dir": "Illuminate/Http",
+    "extra": {
+        "branch-alias": {
+            "dev-master": "4.2-dev"
+        }
+    },
+    "minimum-stability": "dev"
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php
new file mode 100755
index 0000000..77f8f05
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Log/LogServiceProvider.php
@@ -0,0 +1,55 @@
+<?php namespace Illuminate\Log;
+
+use Monolog\Logger;
+use Illuminate\Support\ServiceProvider;
+
+class LogServiceProvider extends ServiceProvider {
+
+	/**
+	 * Indicates if loading of the provider is deferred.
+	 *
+	 * @var bool
+	 */
+	protected $defer = true;
+
+	/**
+	 * Register the service provider.
+	 *
+	 * @return void
+	 */
+	public function register()
+	{
+		$logger = new Writer(
+			new Logger($this->app['env']), $this->app['events']
+		);
+
+		// Once we have an instance of the logger we'll bind it as an instance into
+		// the container so that it is available for resolution. We'll also bind
+		// the PSR Logger interface to resolve to this Monolog implementation.
+		$this->app->instance('log', $logger);
+
+		$this->app->bind('Psr\Log\LoggerInterface', function($app)
+		{
+			return $app['log']->getMonolog();
+		});
+
+		// If the setup Closure has been bound in the container, we will resolve it
+		// and pass in the logger instance. This allows this to defer all of the
+		// logger class setup until the last possible second, improving speed.
+		if (isset($this->app['log.setup']))
+		{
+			call_user_func($this->app['log.setup'], $logger);
+		}
+	}
+
+	/**
+	 * Get the services provided by the provider.
+	 *
+	 * @return array
+	 */
+	public function provides()
+	{
+		return array('log', 'Psr\Log\LoggerInterface');
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Log/Writer.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Log/Writer.php b/vendor/laravel/framework/src/Illuminate/Log/Writer.php
new file mode 100755
index 0000000..12b59f5
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Log/Writer.php
@@ -0,0 +1,311 @@
+<?php namespace Illuminate\Log;
+
+use Closure;
+use Illuminate\Events\Dispatcher;
+use Monolog\Handler\StreamHandler;
+use Monolog\Logger as MonologLogger;
+use Monolog\Formatter\LineFormatter;
+use Monolog\Handler\ErrorLogHandler;
+use Monolog\Handler\RotatingFileHandler;
+use Illuminate\Support\Contracts\JsonableInterface;
+use Illuminate\Support\Contracts\ArrayableInterface;
+
+class Writer {
+
+	/**
+	 * The Monolog logger instance.
+	 *
+	 * @var \Monolog\Logger
+	 */
+	protected $monolog;
+
+	/**
+	 * All of the error levels.
+	 *
+	 * @var array
+	 */
+	protected $levels = array(
+		'debug',
+		'info',
+		'notice',
+		'warning',
+		'error',
+		'critical',
+		'alert',
+		'emergency',
+	);
+
+	/**
+	 * The event dispatcher instance.
+	 *
+	 * @var \Illuminate\Events\Dispatcher
+	 */
+	protected $dispatcher;
+
+	/**
+	 * Create a new log writer instance.
+	 *
+	 * @param  \Monolog\Logger  $monolog
+	 * @param  \Illuminate\Events\Dispatcher  $dispatcher
+	 * @return void
+	 */
+	public function __construct(MonologLogger $monolog, Dispatcher $dispatcher = null)
+	{
+		$this->monolog = $monolog;
+
+		if (isset($dispatcher))
+		{
+			$this->dispatcher = $dispatcher;
+		}
+	}
+
+	/**
+	 * Call Monolog with the given method and parameters.
+	 *
+	 * @param  string  $method
+	 * @param  mixed   $parameters
+	 * @return mixed
+	 */
+	protected function callMonolog($method, $parameters)
+	{
+		if (is_array($parameters[0]))
+		{
+			$parameters[0] = json_encode($parameters[0]);
+		}
+
+		return call_user_func_array(array($this->monolog, $method), $parameters);
+	}
+
+	/**
+	 * Register a file log handler.
+	 *
+	 * @param  string  $path
+	 * @param  string  $level
+	 * @return void
+	 */
+	public function useFiles($path, $level = 'debug')
+	{
+		$level = $this->parseLevel($level);
+
+		$this->monolog->pushHandler($handler = new StreamHandler($path, $level));
+
+		$handler->setFormatter($this->getDefaultFormatter());
+	}
+
+	/**
+	 * Register a daily file log handler.
+	 *
+	 * @param  string  $path
+	 * @param  int     $days
+	 * @param  string  $level
+	 * @return void
+	 */
+	public function useDailyFiles($path, $days = 0, $level = 'debug')
+	{
+		$level = $this->parseLevel($level);
+
+		$this->monolog->pushHandler($handler = new RotatingFileHandler($path, $days, $level));
+
+		$handler->setFormatter($this->getDefaultFormatter());
+	}
+
+	/**
+	 * Register an error_log handler.
+	 *
+	 * @param  string  $level
+	 * @param  int     $messageType
+	 * @return void
+	 */
+	public function useErrorLog($level = 'debug', $messageType = ErrorLogHandler::OPERATING_SYSTEM)
+	{
+		$level = $this->parseLevel($level);
+
+		$this->monolog->pushHandler($handler = new ErrorLogHandler($messageType, $level));
+
+		$handler->setFormatter($this->getDefaultFormatter());
+	}
+
+	/**
+	 * Get a default Monolog formatter instance.
+	 *
+	 * @return \Monolog\Formatter\LineFormatter
+	 */
+	protected function getDefaultFormatter()
+	{
+		return new LineFormatter(null, null, true);
+	}
+
+	/**
+	 * Parse the string level into a Monolog constant.
+	 *
+	 * @param  string  $level
+	 * @return int
+	 *
+	 * @throws \InvalidArgumentException
+	 */
+	protected function parseLevel($level)
+	{
+		switch ($level)
+		{
+			case 'debug':
+				return MonologLogger::DEBUG;
+
+			case 'info':
+				return MonologLogger::INFO;
+
+			case 'notice':
+				return MonologLogger::NOTICE;
+
+			case 'warning':
+				return MonologLogger::WARNING;
+
+			case 'error':
+				return MonologLogger::ERROR;
+
+			case 'critical':
+				return MonologLogger::CRITICAL;
+
+			case 'alert':
+				return MonologLogger::ALERT;
+
+			case 'emergency':
+				return MonologLogger::EMERGENCY;
+
+			default:
+				throw new \InvalidArgumentException("Invalid log level.");
+		}
+	}
+
+	/**
+	 * Register a new callback handler for when
+	 * a log event is triggered.
+	 *
+	 * @param  \Closure  $callback
+	 * @return void
+	 *
+	 * @throws \RuntimeException
+	 */
+	public function listen(Closure $callback)
+	{
+		if ( ! isset($this->dispatcher))
+		{
+			throw new \RuntimeException("Events dispatcher has not been set.");
+		}
+
+		$this->dispatcher->listen('illuminate.log', $callback);
+	}
+
+	/**
+	 * Get the underlying Monolog instance.
+	 *
+	 * @return \Monolog\Logger
+	 */
+	public function getMonolog()
+	{
+		return $this->monolog;
+	}
+
+	/**
+	 * Get the event dispatcher instance.
+	 *
+	 * @return \Illuminate\Events\Dispatcher
+	 */
+	public function getEventDispatcher()
+	{
+		return $this->dispatcher;
+	}
+
+	/**
+	 * Set the event dispatcher instance.
+	 *
+	 * @param  \Illuminate\Events\Dispatcher
+	 * @return void
+	 */
+	public function setEventDispatcher(Dispatcher $dispatcher)
+	{
+		$this->dispatcher = $dispatcher;
+	}
+
+	/**
+	 * Fires a log event.
+	 *
+	 * @param  string  $level
+	 * @param  string  $message
+	 * @param  array   $context
+	 * @return void
+	 */
+	protected function fireLogEvent($level, $message, array $context = array())
+	{
+		// If the event dispatcher is set, we will pass along the parameters to the
+		// log listeners. These are useful for building profilers or other tools
+		// that aggregate all of the log messages for a given "request" cycle.
+		if (isset($this->dispatcher))
+		{
+			$this->dispatcher->fire('illuminate.log', compact('level', 'message', 'context'));
+		}
+	}
+
+	/**
+	 * Dynamically pass log calls into the writer.
+	 *
+	 * @param  mixed (level, param, param)
+	 * @return mixed
+	 */
+	public function write()
+	{
+		$level = head(func_get_args());
+
+		return call_user_func_array(array($this, $level), array_slice(func_get_args(), 1));
+	}
+
+	/**
+	 * Dynamically handle error additions.
+	 *
+	 * @param  string  $method
+	 * @param  mixed   $parameters
+	 * @return mixed
+	 *
+	 * @throws \BadMethodCallException
+	 */
+	public function __call($method, $parameters)
+	{
+		if (in_array($method, $this->levels))
+		{
+			$this->formatParameters($parameters);
+
+			call_user_func_array(array($this, 'fireLogEvent'), array_merge(array($method), $parameters));
+
+			$method = 'add'.ucfirst($method);
+
+			return $this->callMonolog($method, $parameters);
+		}
+
+		throw new \BadMethodCallException("Method [$method] does not exist.");
+	}
+
+	/**
+	 * Format the parameters for the logger.
+	 *
+	 * @param  mixed  $parameters
+	 * @return void
+	 */
+	protected function formatParameters(&$parameters)
+	{
+		if (isset($parameters[0]))
+		{
+			if (is_array($parameters[0]))
+			{
+				$parameters[0] = var_export($parameters[0], true);
+			}
+			elseif ($parameters[0] instanceof JsonableInterface)
+			{
+				$parameters[0] = $parameters[0]->toJson();
+			}
+			elseif ($parameters[0] instanceof ArrayableInterface)
+			{
+				$parameters[0] = var_export($parameters[0]->toArray(), true);
+			}
+		}
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Log/composer.json
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Log/composer.json b/vendor/laravel/framework/src/Illuminate/Log/composer.json
new file mode 100755
index 0000000..155dc57
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Log/composer.json
@@ -0,0 +1,30 @@
+{
+    "name": "illuminate/log",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Taylor Otwell",
+            "email": "taylorotwell@gmail.com"
+        }
+    ],
+    "require": {
+        "php": ">=5.4.0",
+        "illuminate/support": "4.2.*",
+        "monolog/monolog": "~1.6"
+    },
+    "require-dev": {
+        "illuminate/events": "4.2.*"
+    },
+    "autoload": {
+        "psr-0": {
+            "Illuminate\\Log": ""
+        }
+    },
+    "target-dir": "Illuminate/Log",
+    "extra": {
+        "branch-alias": {
+            "dev-master": "4.2-dev"
+        }
+    },
+    "minimum-stability": "dev"
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php
new file mode 100755
index 0000000..e05818a
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Mail/MailServiceProvider.php
@@ -0,0 +1,261 @@
+<?php namespace Illuminate\Mail;
+
+use Swift_Mailer;
+use Illuminate\Support\ServiceProvider;
+use Swift_SmtpTransport as SmtpTransport;
+use Swift_MailTransport as MailTransport;
+use Illuminate\Mail\Transport\LogTransport;
+use Illuminate\Mail\Transport\MailgunTransport;
+use Illuminate\Mail\Transport\MandrillTransport;
+use Swift_SendmailTransport as SendmailTransport;
+
+class MailServiceProvider extends ServiceProvider {
+
+	/**
+	 * Indicates if loading of the provider is deferred.
+	 *
+	 * @var bool
+	 */
+	protected $defer = true;
+
+	/**
+	 * Register the service provider.
+	 *
+	 * @return void
+	 */
+	public function register()
+	{
+		$me = $this;
+
+		$this->app->bindShared('mailer', function($app) use ($me)
+		{
+			$me->registerSwiftMailer();
+
+			// Once we have create the mailer instance, we will set a container instance
+			// on the mailer. This allows us to resolve mailer classes via containers
+			// for maximum testability on said classes instead of passing Closures.
+			$mailer = new Mailer(
+				$app['view'], $app['swift.mailer'], $app['events']
+			);
+
+			$this->setMailerDependencies($mailer, $app);
+
+			// If a "from" address is set, we will set it on the mailer so that all mail
+			// messages sent by the applications will utilize the same "from" address
+			// on each one, which makes the developer's life a lot more convenient.
+			$from = $app['config']['mail.from'];
+
+			if (is_array($from) && isset($from['address']))
+			{
+				$mailer->alwaysFrom($from['address'], $from['name']);
+			}
+
+			// Here we will determine if the mailer should be in "pretend" mode for this
+			// environment, which will simply write out e-mail to the logs instead of
+			// sending it over the web, which is useful for local dev environments.
+			$pretend = $app['config']->get('mail.pretend', false);
+
+			$mailer->pretend($pretend);
+
+			return $mailer;
+		});
+	}
+
+	/**
+	 * Set a few dependencies on the mailer instance.
+	 *
+	 * @param  \Illuminate\Mail\Mailer  $mailer
+	 * @param  \Illuminate\Foundation\Application  $app
+	 * @return void
+	 */
+	protected function setMailerDependencies($mailer, $app)
+	{
+		$mailer->setContainer($app);
+
+		if ($app->bound('log'))
+		{
+			$mailer->setLogger($app['log']);
+		}
+
+		if ($app->bound('queue'))
+		{
+			$mailer->setQueue($app['queue']);
+		}
+	}
+
+	/**
+	 * Register the Swift Mailer instance.
+	 *
+	 * @return void
+	 */
+	public function registerSwiftMailer()
+	{
+		$config = $this->app['config']['mail'];
+
+		$this->registerSwiftTransport($config);
+
+		// Once we have the transporter registered, we will register the actual Swift
+		// mailer instance, passing in the transport instances, which allows us to
+		// override this transporter instances during app start-up if necessary.
+		$this->app['swift.mailer'] = $this->app->share(function($app)
+		{
+			return new Swift_Mailer($app['swift.transport']);
+		});
+	}
+
+	/**
+	 * Register the Swift Transport instance.
+	 *
+	 * @param  array  $config
+	 * @return void
+	 *
+	 * @throws \InvalidArgumentException
+	 */
+	protected function registerSwiftTransport($config)
+	{
+		switch ($config['driver'])
+		{
+			case 'smtp':
+				return $this->registerSmtpTransport($config);
+
+			case 'sendmail':
+				return $this->registerSendmailTransport($config);
+
+			case 'mail':
+				return $this->registerMailTransport($config);
+
+			case 'mailgun':
+				return $this->registerMailgunTransport($config);
+
+			case 'mandrill':
+				return $this->registerMandrillTransport($config);
+
+			case 'log':
+				return $this->registerLogTransport($config);
+
+			default:
+				throw new \InvalidArgumentException('Invalid mail driver.');
+		}
+	}
+
+	/**
+	 * Register the SMTP Swift Transport instance.
+	 *
+	 * @param  array  $config
+	 * @return void
+	 */
+	protected function registerSmtpTransport($config)
+	{
+		$this->app['swift.transport'] = $this->app->share(function($app) use ($config)
+		{
+			extract($config);
+
+			// The Swift SMTP transport instance will allow us to use any SMTP backend
+			// for delivering mail such as Sendgrid, Amazon SES, or a custom server
+			// a developer has available. We will just pass this configured host.
+			$transport = SmtpTransport::newInstance($host, $port);
+
+			if (isset($encryption))
+			{
+				$transport->setEncryption($encryption);
+			}
+
+			// Once we have the transport we will check for the presence of a username
+			// and password. If we have it we will set the credentials on the Swift
+			// transporter instance so that we'll properly authenticate delivery.
+			if (isset($username))
+			{
+				$transport->setUsername($username);
+
+				$transport->setPassword($password);
+			}
+
+			return $transport;
+		});
+	}
+
+	/**
+	 * Register the Sendmail Swift Transport instance.
+	 *
+	 * @param  array  $config
+	 * @return void
+	 */
+	protected function registerSendmailTransport($config)
+	{
+		$this->app['swift.transport'] = $this->app->share(function($app) use ($config)
+		{
+			return SendmailTransport::newInstance($config['sendmail']);
+		});
+	}
+
+	/**
+	 * Register the Mail Swift Transport instance.
+	 *
+	 * @param  array  $config
+	 * @return void
+	 */
+	protected function registerMailTransport($config)
+	{
+		$this->app['swift.transport'] = $this->app->share(function()
+		{
+			return MailTransport::newInstance();
+		});
+	}
+
+	/**
+	 * Register the Mailgun Swift Transport instance.
+	 *
+	 * @param  array  $config
+	 * @return void
+	 */
+	protected function registerMailgunTransport($config)
+	{
+		$mailgun = $this->app['config']->get('services.mailgun', array());
+
+		$this->app->bindShared('swift.transport', function() use ($mailgun)
+		{
+			return new MailgunTransport($mailgun['secret'], $mailgun['domain']);
+		});
+	}
+
+	/**
+	 * Register the Mandrill Swift Transport instance.
+	 *
+	 * @param  array  $config
+	 * @return void
+	 */
+	protected function registerMandrillTransport($config)
+	{
+		$mandrill = $this->app['config']->get('services.mandrill', array());
+
+		$this->app->bindShared('swift.transport', function() use ($mandrill)
+		{
+			return new MandrillTransport($mandrill['secret']);
+		});
+	}
+
+	/**
+	 * Register the "Log" Swift Transport instance.
+	 *
+	 * @param  array  $config
+	 * @return void
+	 */
+	protected function registerLogTransport($config)
+	{
+		$this->app->bindShared('swift.transport', function($app)
+		{
+			return new LogTransport($app->make('Psr\Log\LoggerInterface'));
+		});
+	}
+
+	/**
+	 * Get the services provided by the provider.
+	 *
+	 * @return array
+	 */
+	public function provides()
+	{
+		return array('mailer', 'swift.mailer', 'swift.transport');
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php b/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php
new file mode 100755
index 0000000..fb10040
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Mail/Mailer.php
@@ -0,0 +1,504 @@
+<?php namespace Illuminate\Mail;
+
+use Closure;
+use Swift_Mailer;
+use Swift_Message;
+use Illuminate\Log\Writer;
+use Illuminate\View\Factory;
+use Illuminate\Events\Dispatcher;
+use Illuminate\Queue\QueueManager;
+use Illuminate\Container\Container;
+use Illuminate\Support\SerializableClosure;
+
+class Mailer {
+
+	/**
+	 * The view factory instance.
+	 *
+	 * @var \Illuminate\View\Factory
+	 */
+	protected $views;
+
+	/**
+	 * The Swift Mailer instance.
+	 *
+	 * @var \Swift_Mailer
+	 */
+	protected $swift;
+
+	/**
+	 * The event dispatcher instance.
+	 *
+	 * @var \Illuminate\Events\Dispatcher
+	 */
+	protected $events;
+
+	/**
+	 * The global from address and name.
+	 *
+	 * @var array
+	 */
+	protected $from;
+
+	/**
+	 * The log writer instance.
+	 *
+	 * @var \Illuminate\Log\Writer
+	 */
+	protected $logger;
+
+	/**
+	 * The IoC container instance.
+	 *
+	 * @var \Illuminate\Container\Container
+	 */
+	protected $container;
+
+	/*
+	 * The QueueManager instance.
+	 *
+	 * @var \Illuminate\Queue\QueueManager
+	 */
+	protected $queue;
+
+	/**
+	 * Indicates if the actual sending is disabled.
+	 *
+	 * @var bool
+	 */
+	protected $pretending = false;
+
+	/**
+	 * Array of failed recipients.
+	 *
+	 * @var array
+	 */
+	protected $failedRecipients = array();
+
+	/**
+	 * Array of parsed views containing html and text view name.
+	 *
+	 * @var array
+	 */
+	protected $parsedViews = array();
+
+	/**
+	 * Create a new Mailer instance.
+	 *
+	 * @param  \Illuminate\View\Factory  $views
+	 * @param  \Swift_Mailer  $swift
+	 * @param  \Illuminate\Events\Dispatcher  $events
+	 * @return void
+	 */
+	public function __construct(Factory $views, Swift_Mailer $swift, Dispatcher $events = null)
+	{
+		$this->views = $views;
+		$this->swift = $swift;
+		$this->events = $events;
+	}
+
+	/**
+	 * Set the global from address and name.
+	 *
+	 * @param  string  $address
+	 * @param  string  $name
+	 * @return void
+	 */
+	public function alwaysFrom($address, $name = null)
+	{
+		$this->from = compact('address', 'name');
+	}
+
+	/**
+	 * Send a new message when only a plain part.
+	 *
+	 * @param  string  $view
+	 * @param  array   $data
+	 * @param  mixed   $callback
+	 * @return int
+	 */
+	public function plain($view, array $data, $callback)
+	{
+		return $this->send(array('text' => $view), $data, $callback);
+	}
+
+	/**
+	 * Send a new message using a view.
+	 *
+	 * @param  string|array  $view
+	 * @param  array  $data
+	 * @param  \Closure|string  $callback
+	 * @return void
+	 */
+	public function send($view, array $data, $callback)
+	{
+		// First we need to parse the view, which could either be a string or an array
+		// containing both an HTML and plain text versions of the view which should
+		// be used when sending an e-mail. We will extract both of them out here.
+		list($view, $plain) = $this->parseView($view);
+
+		$data['message'] = $message = $this->createMessage();
+
+		$this->callMessageBuilder($callback, $message);
+
+		// Once we have retrieved the view content for the e-mail we will set the body
+		// of this message using the HTML type, which will provide a simple wrapper
+		// to creating view based emails that are able to receive arrays of data.
+		$this->addContent($message, $view, $plain, $data);
+
+		$message = $message->getSwiftMessage();
+
+		$this->sendSwiftMessage($message);
+	}
+
+	/**
+	 * Queue a new e-mail message for sending.
+	 *
+	 * @param  string|array  $view
+	 * @param  array   $data
+	 * @param  \Closure|string  $callback
+	 * @param  string  $queue
+	 * @return mixed
+	 */
+	public function queue($view, array $data, $callback, $queue = null)
+	{
+		$callback = $this->buildQueueCallable($callback);
+
+		return $this->queue->push('mailer@handleQueuedMessage', compact('view', 'data', 'callback'), $queue);
+	}
+
+	/**
+	 * Queue a new e-mail message for sending on the given queue.
+	 *
+	 * @param  string  $queue
+	 * @param  string|array  $view
+	 * @param  array   $data
+	 * @param  \Closure|string  $callback
+	 * @return mixed
+	 */
+	public function queueOn($queue, $view, array $data, $callback)
+	{
+		return $this->queue($view, $data, $callback, $queue);
+	}
+
+	/**
+	 * Queue a new e-mail message for sending after (n) seconds.
+	 *
+	 * @param  int  $delay
+	 * @param  string|array  $view
+	 * @param  array  $data
+	 * @param  \Closure|string  $callback
+	 * @param  string  $queue
+	 * @return mixed
+	 */
+	public function later($delay, $view, array $data, $callback, $queue = null)
+	{
+		$callback = $this->buildQueueCallable($callback);
+
+		return $this->queue->later($delay, 'mailer@handleQueuedMessage', compact('view', 'data', 'callback'), $queue);
+	}
+
+	/**
+	 * Queue a new e-mail message for sending after (n) seconds on the given queue.
+	 *
+	 * @param  string  $queue
+	 * @param  int  $delay
+	 * @param  string|array  $view
+	 * @param  array  $data
+	 * @param  \Closure|string  $callback
+	 * @return mixed
+	 */
+	public function laterOn($queue, $delay, $view, array $data, $callback)
+	{
+		return $this->later($delay, $view, $data, $callback, $queue);
+	}
+
+	/**
+	 * Build the callable for a queued e-mail job.
+	 *
+	 * @param  mixed  $callback
+	 * @return mixed
+	 */
+	protected function buildQueueCallable($callback)
+	{
+		if ( ! $callback instanceof Closure) return $callback;
+
+		return serialize(new SerializableClosure($callback));
+	}
+
+	/**
+	 * Handle a queued e-mail message job.
+	 *
+	 * @param  \Illuminate\Queue\Jobs\Job  $job
+	 * @param  array  $data
+	 * @return void
+	 */
+	public function handleQueuedMessage($job, $data)
+	{
+		$this->send($data['view'], $data['data'], $this->getQueuedCallable($data));
+
+		$job->delete();
+	}
+
+	/**
+	 * Get the true callable for a queued e-mail message.
+	 *
+	 * @param  array  $data
+	 * @return mixed
+	 */
+	protected function getQueuedCallable(array $data)
+	{
+		if (str_contains($data['callback'], 'SerializableClosure'))
+		{
+			return with(unserialize($data['callback']))->getClosure();
+		}
+
+		return $data['callback'];
+	}
+
+	/**
+	 * Add the content to a given message.
+	 *
+	 * @param  \Illuminate\Mail\Message  $message
+	 * @param  string  $view
+	 * @param  string  $plain
+	 * @param  array   $data
+	 * @return void
+	 */
+	protected function addContent($message, $view, $plain, $data)
+	{
+		if (isset($view))
+		{
+			$message->setBody($this->getView($view, $data), 'text/html');
+		}
+
+		if (isset($plain))
+		{
+			$message->addPart($this->getView($plain, $data), 'text/plain');
+		}
+	}
+
+	/**
+	 * Parse the given view name or array.
+	 *
+	 * @param  string|array  $view
+	 * @return array
+	 *
+	 * @throws \InvalidArgumentException
+	 */
+	protected function parseView($view)
+	{
+		if (is_string($view)) return array($view, null);
+
+		// If the given view is an array with numeric keys, we will just assume that
+		// both a "pretty" and "plain" view were provided, so we will return this
+		// array as is, since must should contain both views with numeric keys.
+		if (is_array($view) && isset($view[0]))
+		{
+			return $view;
+		}
+
+		// If the view is an array, but doesn't contain numeric keys, we will assume
+		// the the views are being explicitly specified and will extract them via
+		// named keys instead, allowing the developers to use one or the other.
+		elseif (is_array($view))
+		{
+			return array(
+				array_get($view, 'html'), array_get($view, 'text')
+			);
+		}
+
+		throw new \InvalidArgumentException("Invalid view.");
+	}
+
+	/**
+	 * Send a Swift Message instance.
+	 *
+	 * @param  \Swift_Message  $message
+	 * @return void
+	 */
+	protected function sendSwiftMessage($message)
+	{
+		if ($this->events)
+		{
+			$this->events->fire('mailer.sending', array($message));
+		}
+
+		if ( ! $this->pretending)
+		{
+			$this->swift->send($message, $this->failedRecipients);
+		}
+		elseif (isset($this->logger))
+		{
+			$this->logMessage($message);
+		}
+	}
+
+	/**
+	 * Log that a message was sent.
+	 *
+	 * @param  \Swift_Message  $message
+	 * @return void
+	 */
+	protected function logMessage($message)
+	{
+		$emails = implode(', ', array_keys((array) $message->getTo()));
+
+		$this->logger->info("Pretending to mail message to: {$emails}");
+	}
+
+	/**
+	 * Call the provided message builder.
+	 *
+	 * @param  \Closure|string  $callback
+	 * @param  \Illuminate\Mail\Message  $message
+	 * @return mixed
+	 *
+	 * @throws \InvalidArgumentException
+	 */
+	protected function callMessageBuilder($callback, $message)
+	{
+		if ($callback instanceof Closure)
+		{
+			return call_user_func($callback, $message);
+		}
+		elseif (is_string($callback))
+		{
+			return $this->container[$callback]->mail($message);
+		}
+
+		throw new \InvalidArgumentException("Callback is not valid.");
+	}
+
+	/**
+	 * Create a new message instance.
+	 *
+	 * @return \Illuminate\Mail\Message
+	 */
+	protected function createMessage()
+	{
+		$message = new Message(new Swift_Message);
+
+		// If a global from address has been specified we will set it on every message
+		// instances so the developer does not have to repeat themselves every time
+		// they create a new message. We will just go ahead and push the address.
+		if (isset($this->from['address']))
+		{
+			$message->from($this->from['address'], $this->from['name']);
+		}
+
+		return $message;
+	}
+
+	/**
+	 * Render the given view.
+	 *
+	 * @param  string  $view
+	 * @param  array   $data
+	 * @return \Illuminate\View\View
+	 */
+	protected function getView($view, $data)
+	{
+		return $this->views->make($view, $data)->render();
+	}
+
+	/**
+	 * Tell the mailer to not really send messages.
+	 *
+	 * @param  bool  $value
+	 * @return void
+	 */
+	public function pretend($value = true)
+	{
+		$this->pretending = $value;
+	}
+
+	/**
+	 * Check if the mailer is pretending to send messages.
+	 *
+	 * @return bool
+	 */
+	public function isPretending()
+	{
+		return $this->pretending;
+	}
+
+	/**
+	 * Get the view factory instance.
+	 *
+	 * @return \Illuminate\View\Factory
+	 */
+	public function getViewFactory()
+	{
+		return $this->views;
+	}
+
+	/**
+	 * Get the Swift Mailer instance.
+	 *
+	 * @return \Swift_Mailer
+	 */
+	public function getSwiftMailer()
+	{
+		return $this->swift;
+	}
+
+	/**
+	 * Get the array of failed recipients.
+	 *
+	 * @return array
+	 */
+	public function failures()
+	{
+		return $this->failedRecipients;
+	}
+
+	/**
+	 * Set the Swift Mailer instance.
+	 *
+	 * @param  \Swift_Mailer  $swift
+	 * @return void
+	 */
+	public function setSwiftMailer($swift)
+	{
+		$this->swift = $swift;
+	}
+
+	/**
+	 * Set the log writer instance.
+	 *
+	 * @param  \Illuminate\Log\Writer  $logger
+	 * @return $this
+	 */
+	public function setLogger(Writer $logger)
+	{
+		$this->logger = $logger;
+
+		return $this;
+	}
+
+	/**
+	 * Set the queue manager instance.
+	 *
+	 * @param  \Illuminate\Queue\QueueManager  $queue
+	 * @return $this
+	 */
+	public function setQueue(QueueManager $queue)
+	{
+		$this->queue = $queue;
+
+		return $this;
+	}
+
+	/**
+	 * Set the IoC container instance.
+	 *
+	 * @param  \Illuminate\Container\Container  $container
+	 * @return void
+	 */
+	public function setContainer(Container $container)
+	{
+		$this->container = $container;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Mail/Message.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Message.php b/vendor/laravel/framework/src/Illuminate/Mail/Message.php
new file mode 100755
index 0000000..4085571
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Mail/Message.php
@@ -0,0 +1,295 @@
+<?php namespace Illuminate\Mail;
+
+use Swift_Image;
+use Swift_Attachment;
+
+class Message {
+
+	/**
+	 * The Swift Message instance.
+	 *
+	 * @var \Swift_Message
+	 */
+	protected $swift;
+
+	/**
+	 * Create a new message instance.
+	 *
+	 * @param  \Swift_Message  $swift
+	 * @return void
+	 */
+	public function __construct($swift)
+	{
+		$this->swift = $swift;
+	}
+
+	/**
+	 * Add a "from" address to the message.
+	 *
+	 * @param  string  $address
+	 * @param  string  $name
+	 * @return $this
+	 */
+	public function from($address, $name = null)
+	{
+		$this->swift->setFrom($address, $name);
+
+		return $this;
+	}
+
+	/**
+	 * Set the "sender" of the message.
+	 *
+	 * @param  string  $address
+	 * @param  string  $name
+	 * @return $this
+	 */
+	public function sender($address, $name = null)
+	{
+		$this->swift->setSender($address, $name);
+
+		return $this;
+	}
+
+	/**
+	 * Set the "return path" of the message.
+	 *
+	 * @param  string  $address
+	 * @return $this
+	 */
+	public function returnPath($address)
+	{
+		$this->swift->setReturnPath($address);
+
+		return $this;
+	}
+
+	/**
+	 * Add a recipient to the message.
+	 *
+	 * @param  string|array  $address
+	 * @param  string  $name
+	 * @return $this
+	 */
+	public function to($address, $name = null)
+	{
+		return $this->addAddresses($address, $name, 'To');
+	}
+
+	/**
+	 * Add a carbon copy to the message.
+	 *
+	 * @param  string  $address
+	 * @param  string  $name
+	 * @return $this
+	 */
+	public function cc($address, $name = null)
+	{
+		return $this->addAddresses($address, $name, 'Cc');
+	}
+
+	/**
+	 * Add a blind carbon copy to the message.
+	 *
+	 * @param  string  $address
+	 * @param  string  $name
+	 * @return $this
+	 */
+	public function bcc($address, $name = null)
+	{
+		return $this->addAddresses($address, $name, 'Bcc');
+	}
+
+	/**
+	 * Add a reply to address to the message.
+	 *
+	 * @param  string  $address
+	 * @param  string  $name
+	 * @return $this
+	 */
+	public function replyTo($address, $name = null)
+	{
+		return $this->addAddresses($address, $name, 'ReplyTo');
+	}
+
+	/**
+	 * Add a recipient to the message.
+	 *
+	 * @param  string|array  $address
+	 * @param  string  $name
+	 * @param  string  $type
+	 * @return $this
+	 */
+	protected function addAddresses($address, $name, $type)
+	{
+		if (is_array($address))
+		{
+			$this->swift->{"set{$type}"}($address, $name);
+		}
+		else
+		{
+			$this->swift->{"add{$type}"}($address, $name);
+		}
+
+		return $this;
+	}
+
+	/**
+	 * Set the subject of the message.
+	 *
+	 * @param  string  $subject
+	 * @return $this
+	 */
+	public function subject($subject)
+	{
+		$this->swift->setSubject($subject);
+
+		return $this;
+	}
+
+	/**
+	 * Set the message priority level.
+	 *
+	 * @param  int  $level
+	 * @return $this
+	 */
+	public function priority($level)
+	{
+		$this->swift->setPriority($level);
+
+		return $this;
+	}
+
+	/**
+	 * Attach a file to the message.
+	 *
+	 * @param  string  $file
+	 * @param  array   $options
+	 * @return $this
+	 */
+	public function attach($file, array $options = array())
+	{
+		$attachment = $this->createAttachmentFromPath($file);
+
+		return $this->prepAttachment($attachment, $options);
+	}
+
+	/**
+	 * Create a Swift Attachment instance.
+	 *
+	 * @param  string  $file
+	 * @return \Swift_Attachment
+	 */
+	protected function createAttachmentFromPath($file)
+	{
+		return Swift_Attachment::fromPath($file);
+	}
+
+	/**
+	 * Attach in-memory data as an attachment.
+	 *
+	 * @param  string  $data
+	 * @param  string  $name
+	 * @param  array   $options
+	 * @return $this
+	 */
+	public function attachData($data, $name, array $options = array())
+	{
+		$attachment = $this->createAttachmentFromData($data, $name);
+
+		return $this->prepAttachment($attachment, $options);
+	}
+
+	/**
+	 * Create a Swift Attachment instance from data.
+	 *
+	 * @param  string  $data
+	 * @param  string  $name
+	 * @return \Swift_Attachment
+	 */
+	protected function createAttachmentFromData($data, $name)
+	{
+		return Swift_Attachment::newInstance($data, $name);
+	}
+
+	/**
+	 * Embed a file in the message and get the CID.
+	 *
+	 * @param  string  $file
+	 * @return string
+	 */
+	public function embed($file)
+	{
+		return $this->swift->embed(Swift_Image::fromPath($file));
+	}
+
+	/**
+	 * Embed in-memory data in the message and get the CID.
+	 *
+	 * @param  string  $data
+	 * @param  string  $name
+	 * @param  string  $contentType
+	 * @return string
+	 */
+	public function embedData($data, $name, $contentType = null)
+	{
+		$image = Swift_Image::newInstance($data, $name, $contentType);
+
+		return $this->swift->embed($image);
+	}
+
+	/**
+	 * Prepare and attach the given attachment.
+	 *
+	 * @param  \Swift_Attachment  $attachment
+	 * @param  array  $options
+	 * @return $this
+	 */
+	protected function prepAttachment($attachment, $options = array())
+	{
+		// First we will check for a MIME type on the message, which instructs the
+		// mail client on what type of attachment the file is so that it may be
+		// downloaded correctly by the user. The MIME option is not required.
+		if (isset($options['mime']))
+		{
+			$attachment->setContentType($options['mime']);
+		}
+
+		// If an alternative name was given as an option, we will set that on this
+		// attachment so that it will be downloaded with the desired names from
+		// the developer, otherwise the default file names will get assigned.
+		if (isset($options['as']))
+		{
+			$attachment->setFilename($options['as']);
+		}
+
+		$this->swift->attach($attachment);
+
+		return $this;
+	}
+
+	/**
+	 * Get the underlying Swift Message instance.
+	 *
+	 * @return \Swift_Message
+	 */
+	public function getSwiftMessage()
+	{
+		return $this->swift;
+	}
+
+	/**
+	 * Dynamically pass missing methods to the Swift instance.
+	 *
+	 * @param  string  $method
+	 * @param  array   $parameters
+	 * @return mixed
+	 */
+	public function __call($method, $parameters)
+	{
+		$callable = array($this->swift, $method);
+
+		return call_user_func_array($callable, $parameters);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php
new file mode 100644
index 0000000..1fe8136
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Mail/Transport/LogTransport.php
@@ -0,0 +1,87 @@
+<?php namespace Illuminate\Mail\Transport;
+
+use Swift_Transport;
+use Swift_Mime_Message;
+use Swift_Mime_MimeEntity;
+use Psr\Log\LoggerInterface;
+use Swift_Events_EventListener;
+
+class LogTransport implements Swift_Transport {
+
+	/**
+	 * The Logger instance.
+	 *
+	 * @var \Psr\Log\LoggerInterface
+	 */
+	protected $logger;
+
+	/**
+	 * Create a new log transport instance.
+	 *
+	 * @param  \Psr\Log\LoggerInterface  $logger
+	 * @return void
+	 */
+	public function __construct(LoggerInterface $logger)
+	{
+		$this->logger = $logger;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function isStarted()
+	{
+		return true;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function start()
+	{
+		return true;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function stop()
+	{
+		return true;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function send(Swift_Mime_Message $message, &$failedRecipients = null)
+	{
+		$this->logger->debug($this->getMimeEntityString($message));
+	}
+
+	/**
+	 * Get a loggable string out of a Swiftmailer entity.
+	 *
+	 * @param  \Swift_Mime_MimeEntity $entity
+	 * @return string
+	 */
+	protected function getMimeEntityString(Swift_Mime_MimeEntity $entity)
+	{
+		$string = (string) $entity->getHeaders().PHP_EOL.$entity->getBody();
+
+		foreach ($entity->getChildren() as $children)
+		{
+			$string .= PHP_EOL.PHP_EOL.$this->getMimeEntityString($children);
+		}
+
+		return $string;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function registerPlugin(Swift_Events_EventListener $plugin)
+	{
+		//
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php
new file mode 100644
index 0000000..3b19f88
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Mail/Transport/MailgunTransport.php
@@ -0,0 +1,168 @@
+<?php namespace Illuminate\Mail\Transport;
+
+use Swift_Transport;
+use GuzzleHttp\Client;
+use Swift_Mime_Message;
+use GuzzleHttp\Post\PostFile;
+use Swift_Events_EventListener;
+
+class MailgunTransport implements Swift_Transport {
+
+	/**
+	 * The Mailgun API key.
+	 *
+	 * @var string
+	 */
+	protected $key;
+
+	/**
+	 * The Mailgun domain.
+	 *
+	 * @var string
+	 */
+	protected $domain;
+
+	/**
+	 * THe Mailgun API end-point.
+	 *
+	 * @var string
+	 */
+	protected $url;
+
+	/**
+	 * Create a new Mailgun transport instance.
+	 *
+	 * @param  string  $key
+	 * @param  string  $domain
+	 * @return void
+	 */
+	public function __construct($key, $domain)
+	{
+		$this->key = $key;
+		$this->setDomain($domain);
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function isStarted()
+	{
+		return true;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function start()
+	{
+		return true;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function stop()
+	{
+		return true;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function send(Swift_Mime_Message $message, &$failedRecipients = null)
+	{
+		$client = $this->getHttpClient();
+
+		$client->post($this->url, ['auth' => ['api', $this->key],
+			'body' => [
+				'to' => $this->getTo($message),
+				'message' => new PostFile('message', (string) $message),
+			],
+		]);
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function registerPlugin(Swift_Events_EventListener $plugin)
+	{
+		//
+	}
+
+	/**
+	 * Get the "to" payload field for the API request.
+	 *
+	 * @param  \Swift_Mime_Message  $message
+	 * @return array
+	 */
+	protected function getTo(Swift_Mime_Message $message)
+	{
+		$formatted = [];
+
+		$contacts = array_merge(
+			(array) $message->getTo(), (array) $message->getCc(), (array) $message->getBcc()
+		);
+
+		foreach ($contacts as $address => $display)
+		{
+			$formatted[] = $display ? $display." <$address>" : $address;
+		}
+
+		return implode(',', $formatted);
+	}
+
+	/**
+	 * Get a new HTTP client instance.
+	 *
+	 * @return \GuzzleHttp\Client
+	 */
+	protected function getHttpClient()
+	{
+		return new Client;
+	}
+
+	/**
+	 * Get the API key being used by the transport.
+	 *
+	 * @return string
+	 */
+	public function getKey()
+	{
+		return $this->key;
+	}
+
+	/**
+	 * Set the API key being used by the transport.
+	 *
+	 * @param  string  $key
+	 * @return void
+	 */
+	public function setKey($key)
+	{
+		return $this->key = $key;
+	}
+
+	/**
+	 * Get the domain being used by the transport.
+	 *
+	 * @return string
+	 */
+	public function getDomain()
+	{
+		return $this->domain;
+	}
+
+	/**
+	 * Set the domain being used by the transport.
+	 *
+	 * @param  string  $domain
+	 * @return void
+	 */
+	public function setDomain($domain)
+	{
+		$this->url = 'https://api.mailgun.net/v2/'.$domain.'/messages.mime';
+
+		return $this->domain = $domain;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php b/vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php
new file mode 100644
index 0000000..daa823b
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Mail/Transport/MandrillTransport.php
@@ -0,0 +1,107 @@
+<?php namespace Illuminate\Mail\Transport;
+
+use Swift_Transport;
+use GuzzleHttp\Client;
+use Swift_Mime_Message;
+use Swift_Events_EventListener;
+
+class MandrillTransport implements Swift_Transport {
+
+	/**
+	 * The Mandrill API key.
+	 *
+	 * @var string
+	 */
+	protected $key;
+
+	/**
+	 * Create a new Mandrill transport instance.
+	 *
+	 * @param  string  $key
+	 * @return void
+	 */
+	public function __construct($key)
+	{
+		$this->key = $key;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function isStarted()
+	{
+		return true;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function start()
+	{
+		return true;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function stop()
+	{
+		return true;
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function send(Swift_Mime_Message $message, &$failedRecipients = null)
+	{
+		$client = $this->getHttpClient();
+
+		$client->post('https://mandrillapp.com/api/1.0/messages/send-raw.json', [
+			'body' => [
+				'key' => $this->key,
+				'raw_message' => (string) $message,
+				'async' => false,
+			],
+		]);
+	}
+
+	/**
+	 * {@inheritdoc}
+	 */
+	public function registerPlugin(Swift_Events_EventListener $plugin)
+	{
+		//
+	}
+
+	/**
+	 * Get a new HTTP client instance.
+	 *
+	 * @return \GuzzleHttp\Client
+	 */
+	protected function getHttpClient()
+	{
+		return new Client;
+	}
+
+	/**
+	 * Get the API key being used by the transport.
+	 *
+	 * @return string
+	 */
+	public function getKey()
+	{
+		return $this->key;
+	}
+
+	/**
+	 * Set the API key being used by the transport.
+	 *
+	 * @param  string  $key
+	 * @return void
+	 */
+	public function setKey($key)
+	{
+		return $this->key = $key;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Mail/composer.json
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Mail/composer.json b/vendor/laravel/framework/src/Illuminate/Mail/composer.json
new file mode 100755
index 0000000..0fe7384
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Mail/composer.json
@@ -0,0 +1,33 @@
+{
+    "name": "illuminate/mail",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Taylor Otwell",
+            "email": "taylorotwell@gmail.com"
+        }
+    ],
+    "require": {
+        "php": ">=5.4.0",
+        "illuminate/container": "4.2.*",
+        "illuminate/log": "4.2.*",
+        "illuminate/support": "4.2.*",
+        "illuminate/view": "4.2.*",
+        "swiftmailer/swiftmailer": "~5.1"
+    },
+    "require-dev": {
+        "illuminate/queue": "4.2.*"
+    },
+    "autoload": {
+        "psr-0": {
+            "Illuminate\\Mail": ""
+        }
+    },
+    "target-dir": "Illuminate/Mail",
+    "extra": {
+        "branch-alias": {
+            "dev-master": "4.2-dev"
+        }
+    },
+    "minimum-stability": "dev"
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Pagination/BootstrapPresenter.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/BootstrapPresenter.php b/vendor/laravel/framework/src/Illuminate/Pagination/BootstrapPresenter.php
new file mode 100644
index 0000000..dc9c7c2
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Pagination/BootstrapPresenter.php
@@ -0,0 +1,42 @@
+<?php namespace Illuminate\Pagination;
+
+class BootstrapPresenter extends Presenter {
+
+	/**
+	 * Get HTML wrapper for a page link.
+	 *
+	 * @param  string  $url
+	 * @param  int  $page
+	 * @param  string  $rel
+	 * @return string
+	 */
+	public function getPageLinkWrapper($url, $page, $rel = null)
+	{
+		$rel = is_null($rel) ? '' : ' rel="'.$rel.'"';
+
+		return '<li><a href="'.$url.'"'.$rel.'>'.$page.'</a></li>';
+	}
+
+	/**
+	 * Get HTML wrapper for disabled text.
+	 *
+	 * @param  string  $text
+	 * @return string
+	 */
+	public function getDisabledTextWrapper($text)
+	{
+		return '<li class="disabled"><span>'.$text.'</span></li>';
+	}
+
+	/**
+	 * Get HTML wrapper for active text.
+	 *
+	 * @param  string  $text
+	 * @return string
+	 */
+	public function getActivePageWrapper($text)
+	{
+		return '<li class="active"><span>'.$text.'</span></li>';
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Pagination/Factory.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/Factory.php b/vendor/laravel/framework/src/Illuminate/Pagination/Factory.php
new file mode 100755
index 0000000..4026495
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Pagination/Factory.php
@@ -0,0 +1,289 @@
+<?php namespace Illuminate\Pagination;
+
+use Illuminate\Http\Request;
+use Illuminate\View\Factory as ViewFactory;
+use Symfony\Component\Translation\TranslatorInterface;
+
+class Factory {
+
+	/**
+	 * The request instance.
+	 *
+	 * @var \Symfony\Component\HttpFoundation\Request
+	 */
+	protected $request;
+
+	/**
+	 * The view factory instance.
+	 *
+	 * @var \Illuminate\View\Factory
+	 */
+	protected $view;
+
+	/**
+	 * The translator implementation.
+	 *
+	 * @var \Symfony\Component\Translation\TranslatorInterface
+	 */
+	protected $trans;
+
+	/**
+	 * The name of the pagination view.
+	 *
+	 * @var string
+	 */
+	protected $viewName;
+
+	/**
+	 * The number of the current page.
+	 *
+	 * @var int
+	 */
+	protected $currentPage;
+
+	/**
+	 * The locale to be used by the translator.
+	 *
+	 * @var string
+	 */
+	protected $locale;
+
+	/**
+	 * The base URL in use by the paginator.
+	 *
+	 * @var string
+	 */
+	protected $baseUrl;
+
+	/**
+	 * The input parameter used for the current page.
+	 *
+	 * @var string
+	 */
+	protected $pageName;
+
+	/**
+	 * Create a new pagination factory.
+	 *
+	 * @param  \Symfony\Component\HttpFoundation\Request  $request
+	 * @param  \Illuminate\View\Factory  $view
+	 * @param  \Symfony\Component\Translation\TranslatorInterface  $trans
+	 * @param  string  $pageName
+	 * @return void
+	 */
+	public function __construct(Request $request, ViewFactory $view, TranslatorInterface $trans, $pageName = 'page')
+	{
+		$this->view = $view;
+		$this->trans = $trans;
+		$this->request = $request;
+		$this->pageName = $pageName;
+		$this->setupPaginationEnvironment();
+	}
+
+	/**
+	 * Setup the pagination environment.
+	 *
+	 * @return void
+	 */
+	protected function setupPaginationEnvironment()
+	{
+		$this->view->addNamespace('pagination', __DIR__.'/views');
+	}
+
+	/**
+	 * Get a new paginator instance.
+	 *
+	 * @param  array  $items
+	 * @param  int    $total
+	 * @param  int|null  $perPage
+	 * @return \Illuminate\Pagination\Paginator
+	 */
+	public function make(array $items, $total, $perPage = null)
+	{
+		$paginator = new Paginator($this, $items, $total, $perPage);
+
+		return $paginator->setupPaginationContext();
+	}
+
+	/**
+	 * Get the pagination view.
+	 *
+	 * @param  \Illuminate\Pagination\Paginator  $paginator
+	 * @param  string  $view
+	 * @return \Illuminate\View\View
+	 */
+	public function getPaginationView(Paginator $paginator, $view = null)
+	{
+		$data = array('environment' => $this, 'paginator' => $paginator);
+
+		return $this->view->make($this->getViewName($view), $data);
+	}
+
+	/**
+	 * Get the number of the current page.
+	 *
+	 * @return int
+	 */
+	public function getCurrentPage()
+	{
+		$page = (int) $this->currentPage ?: $this->request->input($this->pageName, 1);
+
+		if ($page < 1 || filter_var($page, FILTER_VALIDATE_INT) === false)
+		{
+			return 1;
+		}
+
+		return $page;
+	}
+
+	/**
+	 * Set the number of the current page.
+	 *
+	 * @param  int  $number
+	 * @return void
+	 */
+	public function setCurrentPage($number)
+	{
+		$this->currentPage = $number;
+	}
+
+	/**
+	 * Get the root URL for the request.
+	 *
+	 * @return string
+	 */
+	public function getCurrentUrl()
+	{
+		return $this->baseUrl ?: $this->request->url();
+	}
+
+	/**
+	 * Set the base URL in use by the paginator.
+	 *
+	 * @param  string  $baseUrl
+	 * @return void
+	 */
+	public function setBaseUrl($baseUrl)
+	{
+		$this->baseUrl = $baseUrl;
+	}
+
+	/**
+	 * Set the input page parameter name used by the paginator.
+	 *
+	 * @param  string  $pageName
+	 * @return void
+	 */
+	public function setPageName($pageName)
+	{
+		$this->pageName = $pageName;
+	}
+
+	/**
+	 * Get the input page parameter name used by the paginator.
+	 *
+	 * @return string
+	 */
+	public function getPageName()
+	{
+		return $this->pageName;
+	}
+
+	/**
+	 * Get the name of the pagination view.
+	 *
+	 * @param  string  $view
+	 * @return string
+	 */
+	public function getViewName($view = null)
+	{
+		if ( ! is_null($view)) return $view;
+
+		return $this->viewName ?: 'pagination::slider';
+	}
+
+	/**
+	 * Set the name of the pagination view.
+	 *
+	 * @param  string  $viewName
+	 * @return void
+	 */
+	public function setViewName($viewName)
+	{
+		$this->viewName = $viewName;
+	}
+
+	/**
+	 * Get the locale of the paginator.
+	 *
+	 * @return string
+	 */
+	public function getLocale()
+	{
+		return $this->locale;
+	}
+
+	/**
+	 * Set the locale of the paginator.
+	 *
+	 * @param  string  $locale
+	 * @return void
+	 */
+	public function setLocale($locale)
+	{
+		$this->locale = $locale;
+	}
+
+	/**
+	 * Get the active request instance.
+	 *
+	 * @return \Symfony\Component\HttpFoundation\Request
+	 */
+	public function getRequest()
+	{
+		return $this->request;
+	}
+
+	/**
+	 * Set the active request instance.
+	 *
+	 * @param  \Symfony\Component\HttpFoundation\Request  $request
+	 * @return void
+	 */
+	public function setRequest(Request $request)
+	{
+		$this->request = $request;
+	}
+
+	/**
+	 * Get the current view factory.
+	 *
+	 * @return \Illuminate\View\Factory
+	 */
+	public function getViewFactory()
+	{
+		return $this->view;
+	}
+
+	/**
+	 * Set the current view factory.
+	 *
+	 * @param  \Illuminate\View\Factory  $view
+	 * @return void
+	 */
+	public function setViewFactory(ViewFactory $view)
+	{
+		$this->view = $view;
+	}
+
+	/**
+	 * Get the translator instance.
+	 *
+	 * @return \Symfony\Component\Translation\TranslatorInterface
+	 */
+	public function getTranslator()
+	{
+		return $this->trans;
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php b/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php
new file mode 100755
index 0000000..dfec6df
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Pagination/PaginationServiceProvider.php
@@ -0,0 +1,43 @@
+<?php namespace Illuminate\Pagination;
+
+use Illuminate\Support\ServiceProvider;
+
+class PaginationServiceProvider extends ServiceProvider {
+
+	/**
+	 * Indicates if loading of the provider is deferred.
+	 *
+	 * @var bool
+	 */
+	protected $defer = true;
+
+	/**
+	 * Register the service provider.
+	 *
+	 * @return void
+	 */
+	public function register()
+	{
+		$this->app->bindShared('paginator', function($app)
+		{
+			$paginator = new Factory($app['request'], $app['view'], $app['translator']);
+
+			$paginator->setViewName($app['config']['view.pagination']);
+
+			$app->refresh('request', $paginator, 'setRequest');
+
+			return $paginator;
+		});
+	}
+
+	/**
+	 * Get the services provided by the provider.
+	 *
+	 * @return array
+	 */
+	public function provides()
+	{
+		return array('paginator');
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php b/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php
new file mode 100755
index 0000000..7c1f8b7
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Pagination/Paginator.php
@@ -0,0 +1,544 @@
+<?php namespace Illuminate\Pagination;
+
+use Countable;
+use ArrayAccess;
+use ArrayIterator;
+use IteratorAggregate;
+use Illuminate\Support\Collection;
+use Illuminate\Support\Contracts\JsonableInterface;
+use Illuminate\Support\Contracts\ArrayableInterface;
+
+class Paginator implements ArrayableInterface, ArrayAccess, Countable, IteratorAggregate, JsonableInterface {
+
+	/**
+	 * The pagination factory.
+	 *
+	 * @var \Illuminate\Pagination\Factory
+	 */
+	protected $factory;
+
+	/**
+	 * The items being paginated.
+	 *
+	 * @var array
+	 */
+	protected $items;
+
+	/**
+	 * The total number of items.
+	 *
+	 * @var int
+	 */
+	protected $total;
+
+	/**
+	 * Indicates if a pagination doing "quick" pagination has more items.
+	 *
+	 * @var bool
+	 */
+	protected $hasMore;
+
+	/**
+	 * The amount of items to show per page.
+	 *
+	 * @var int
+	 */
+	protected $perPage;
+
+	/**
+	 * Get the current page for the request.
+	 *
+	 * @var int
+	 */
+	protected $currentPage;
+
+	/**
+	 * Get the last available page number.
+	 *
+	 * @return int
+	 */
+	protected $lastPage;
+
+	/**
+	 * The number of the first item in this range.
+	 *
+	 * @var int
+	 */
+	protected $from;
+
+	/**
+	 * The number of the last item in this range.
+	 *
+	 * @var int
+	 */
+	protected $to;
+
+	/**
+	 * All of the additional query string values.
+	 *
+	 * @var array
+	 */
+	protected $query = array();
+
+	/**
+	 * The fragment to be appended to all URLs.
+	 *
+	 * @var string
+	 */
+	protected $fragment;
+
+	/**
+	 * Create a new Paginator instance.
+	 *
+	 * @param  \Illuminate\Pagination\Factory  $factory
+	 * @param  array     $items
+	 * @param  int       $total
+	 * @param  int|null  $perPage
+	 * @return void
+	 */
+	public function __construct(Factory $factory, array $items, $total, $perPage = null)
+	{
+		$this->factory = $factory;
+
+		if (is_null($perPage))
+		{
+			$this->perPage = (int) $total;
+			$this->hasMore = count($items) > $this->perPage;
+			$this->items = array_slice($items, 0, $this->perPage);
+		}
+		else
+		{
+			$this->items = $items;
+			$this->total = (int) $total;
+			$this->perPage = (int) $perPage;
+		}
+	}
+
+	/**
+	 * Setup the pagination context (current and last page).
+	 *
+	 * @return $this
+	 */
+	public function setupPaginationContext()
+	{
+		$this->calculateCurrentAndLastPages();
+
+		$this->calculateItemRanges();
+
+		return $this;
+	}
+
+	/**
+	 * Calculate the current and last pages for this instance.
+	 *
+	 * @return void
+	 */
+	protected function calculateCurrentAndLastPages()
+	{
+		if ($this->isQuickPaginating())
+		{
+			$this->currentPage = $this->factory->getCurrentPage();
+
+			$this->lastPage = $this->hasMore ? $this->currentPage + 1 : $this->currentPage;
+		}
+		else
+		{
+			$this->lastPage = max((int) ceil($this->total / $this->perPage), 1);
+
+			$this->currentPage = $this->calculateCurrentPage($this->lastPage);
+		}
+	}
+
+	/**
+	 * Calculate the first and last item number for this instance.
+	 *
+	 * @return void
+	 */
+	protected function calculateItemRanges()
+	{
+		$this->from = $this->total ? ($this->currentPage - 1) * $this->perPage + 1 : 0;
+
+		$this->to = min($this->total, $this->currentPage * $this->perPage);
+	}
+
+	/**
+	 * Get the current page for the request.
+	 *
+	 * @param  int  $lastPage
+	 * @return int
+	 */
+	protected function calculateCurrentPage($lastPage)
+	{
+		$page = $this->factory->getCurrentPage();
+
+		// The page number will get validated and adjusted if it either less than one
+		// or greater than the last page available based on the count of the given
+		// items array. If it's greater than the last, we'll give back the last.
+		if (is_numeric($page) && $page > $lastPage)
+		{
+			return $lastPage > 0 ? $lastPage : 1;
+		}
+
+		return $this->isValidPageNumber($page) ? (int) $page : 1;
+	}
+
+	/**
+	 * Determine if the given value is a valid page number.
+	 *
+	 * @param  int  $page
+	 * @return bool
+	 */
+	protected function isValidPageNumber($page)
+	{
+		return $page >= 1 && filter_var($page, FILTER_VALIDATE_INT) !== false;
+	}
+
+	/**
+	 * Get the pagination links view.
+	 *
+	 * @param  string  $view
+	 * @return \Illuminate\View\View
+	 */
+	public function links($view = null)
+	{
+		return $this->factory->getPaginationView($this, $view);
+	}
+
+	/**
+	 * Get a URL for a given page number.
+	 *
+	 * @param  int  $page
+	 * @return string
+	 */
+	public function getUrl($page)
+	{
+		$parameters = array(
+			$this->factory->getPageName() => $page,
+		);
+
+		// If we have any extra query string key / value pairs that need to be added
+		// onto the URL, we will put them in query string form and then attach it
+		// to the URL. This allows for extra information like sortings storage.
+		if (count($this->query) > 0)
+		{
+			$parameters = array_merge($this->query, $parameters);
+		}
+
+		$fragment = $this->buildFragment();
+
+		return $this->factory->getCurrentUrl().'?'.http_build_query($parameters, null, '&').$fragment;
+	}
+
+	/**
+	 * Get / set the URL fragment to be appended to URLs.
+	 *
+	 * @param  string|null  $fragment
+	 * @return $this|string
+	 */
+	public function fragment($fragment = null)
+	{
+		if (is_null($fragment)) return $this->fragment;
+
+		$this->fragment = $fragment;
+
+		return $this;
+	}
+
+	/**
+	 * Build the full fragment portion of a URL.
+	 *
+	 * @return string
+	 */
+	protected function buildFragment()
+	{
+		return $this->fragment ? '#'.$this->fragment : '';
+	}
+
+	/**
+	 * Add a query string value to the paginator.
+	 *
+	 * @param  string  $key
+	 * @param  string  $value
+	 * @return $this
+	 */
+	public function appends($key, $value = null)
+	{
+		if (is_array($key)) return $this->appendArray($key);
+
+		return $this->addQuery($key, $value);
+	}
+
+	/**
+	 * Add an array of query string values.
+	 *
+	 * @param  array  $keys
+	 * @return $this
+	 */
+	protected function appendArray(array $keys)
+	{
+		foreach ($keys as $key => $value)
+		{
+			$this->addQuery($key, $value);
+		}
+
+		return $this;
+	}
+
+	/**
+	 * Add a query string value to the paginator.
+	 *
+	 * @param  string  $key
+	 * @param  string  $value
+	 * @return $this
+	 */
+	public function addQuery($key, $value)
+	{
+		if ($key !== $this->factory->getPageName())
+		{
+			$this->query[$key] = $value;
+		}
+
+		return $this;
+	}
+
+	/**
+	 * Determine if the paginator is doing "quick" pagination.
+	 *
+	 * @return bool
+	 */
+	public function isQuickPaginating()
+	{
+		return is_null($this->total);
+	}
+
+	/**
+	 * Get the current page for the request.
+	 *
+	 * @param  int|null  $total
+	 * @return int
+	 */
+	public function getCurrentPage($total = null)
+	{
+		if (is_null($total))
+		{
+			return $this->currentPage;
+		}
+
+		return min($this->currentPage, (int) ceil($total / $this->perPage));
+	}
+
+	/**
+	 * Get the last page that should be available.
+	 *
+	 * @return int
+	 */
+	public function getLastPage()
+	{
+		return $this->lastPage;
+	}
+
+	/**
+	 * Get the number of the first item on the paginator.
+	 *
+	 * @return int
+	 */
+	public function getFrom()
+	{
+		return $this->from;
+	}
+
+	/**
+	 * Get the number of the last item on the paginator.
+	 *
+	 * @return int
+	 */
+	public function getTo()
+	{
+		return $this->to;
+	}
+
+	/**
+	 * Get the number of items to be displayed per page.
+	 *
+	 * @return int
+	 */
+	public function getPerPage()
+	{
+		return $this->perPage;
+	}
+
+	/**
+	 * Get a collection instance containing the items.
+	 *
+	 * @return \Illuminate\Support\Collection
+	 */
+	public function getCollection()
+	{
+		return new Collection($this->items);
+	}
+
+	/**
+	 * Get the items being paginated.
+	 *
+	 * @return array
+	 */
+	public function getItems()
+	{
+		return $this->items;
+	}
+
+	/**
+	 * Set the items being paginated.
+	 *
+	 * @param  mixed  $items
+	 * @return void
+	 */
+	public function setItems($items)
+	{
+		$this->items = $items;
+	}
+
+	/**
+	 * Get the total number of items in the collection.
+	 *
+	 * @return int
+	 */
+	public function getTotal()
+	{
+		return $this->total;
+	}
+
+	/**
+	* Set the base URL in use by the paginator.
+	*
+	* @param  string  $baseUrl
+	* @return void
+	*/
+	public function setBaseUrl($baseUrl)
+	{
+		$this->factory->setBaseUrl($baseUrl);
+	}
+
+	/**
+	 * Get the pagination factory.
+	 *
+	 * @return \Illuminate\Pagination\Factory
+	 */
+	public function getFactory()
+	{
+		return $this->factory;
+	}
+
+	/**
+	 * Get an iterator for the items.
+	 *
+	 * @return \ArrayIterator
+	 */
+	public function getIterator()
+	{
+		return new ArrayIterator($this->items);
+	}
+
+	/**
+	 * Determine if the list of items is empty or not.
+	 *
+	 * @return bool
+	 */
+	public function isEmpty()
+	{
+		return empty($this->items);
+	}
+
+	/**
+	 * Get the number of items for the current page.
+	 *
+	 * @return int
+	 */
+	public function count()
+	{
+		return count($this->items);
+	}
+
+	/**
+	 * Determine if the given item exists.
+	 *
+	 * @param  mixed  $key
+	 * @return bool
+	 */
+	public function offsetExists($key)
+	{
+		return array_key_exists($key, $this->items);
+	}
+
+	/**
+	 * Get the item at the given offset.
+	 *
+	 * @param  mixed  $key
+	 * @return mixed
+	 */
+	public function offsetGet($key)
+	{
+		return $this->items[$key];
+	}
+
+	/**
+	 * Set the item at the given offset.
+	 *
+	 * @param  mixed  $key
+	 * @param  mixed  $value
+	 * @return void
+	 */
+	public function offsetSet($key, $value)
+	{
+		$this->items[$key] = $value;
+	}
+
+	/**
+	 * Unset the item at the given key.
+	 *
+	 * @param  mixed  $key
+	 * @return void
+	 */
+	public function offsetUnset($key)
+	{
+		unset($this->items[$key]);
+	}
+
+	/**
+	 * Get the instance as an array.
+	 *
+	 * @return array
+	 */
+	public function toArray()
+	{
+		return array(
+			'total' => $this->total, 'per_page' => $this->perPage,
+			'current_page' => $this->currentPage, 'last_page' => $this->lastPage,
+			'from' => $this->from, 'to' => $this->to, 'data' => $this->getCollection()->toArray(),
+		);
+	}
+
+	/**
+	 * Convert the object to its JSON representation.
+	 *
+	 * @param  int  $options
+	 * @return string
+	 */
+	public function toJson($options = 0)
+	{
+		return json_encode($this->toArray(), $options);
+	}
+
+	/**
+	 * Call a method on the underlying Collection
+	 *
+	 * @param  string  $method
+	 * @param  array   $arguments
+	 * @return mixed
+	 */
+	public function __call($method, $arguments)
+	{
+		return call_user_func_array(array($this->getCollection(), $method), $arguments);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/01413d65/vendor/laravel/framework/src/Illuminate/Pagination/Presenter.php
----------------------------------------------------------------------
diff --git a/vendor/laravel/framework/src/Illuminate/Pagination/Presenter.php b/vendor/laravel/framework/src/Illuminate/Pagination/Presenter.php
new file mode 100755
index 0000000..ea77be8
--- /dev/null
+++ b/vendor/laravel/framework/src/Illuminate/Pagination/Presenter.php
@@ -0,0 +1,277 @@
+<?php namespace Illuminate\Pagination;
+
+abstract class Presenter {
+
+	/**
+	 * The paginator instance being rendered.
+	 *
+	 * @var \Illuminate\Pagination\Paginator
+	 */
+	protected $paginator;
+
+	/**
+	 * The current page of the paginator.
+	 *
+	 * @var int
+	 */
+	protected $currentPage;
+
+	/**
+	 * The last available page of the paginator.
+	 *
+	 * @var int
+	 */
+	protected $lastPage;
+
+	/**
+	 * Create a new Presenter instance.
+	 *
+	 * @param  \Illuminate\Pagination\Paginator  $paginator
+	 * @return void
+	 */
+	public function __construct(Paginator $paginator)
+	{
+		$this->paginator = $paginator;
+		$this->lastPage = $this->paginator->getLastPage();
+		$this->currentPage = $this->paginator->getCurrentPage();
+	}
+
+	/**
+	 * Get HTML wrapper for a page link.
+	 *
+	 * @param  string  $url
+	 * @param  int  $page
+	 * @param  string  $rel
+	 * @return string
+	 */
+	abstract public function getPageLinkWrapper($url, $page, $rel = null);
+
+	/**
+	 * Get HTML wrapper for disabled text.
+	 *
+	 * @param  string  $text
+	 * @return string
+	 */
+	abstract public function getDisabledTextWrapper($text);
+
+	/**
+	 * Get HTML wrapper for active text.
+	 *
+	 * @param  string  $text
+	 * @return string
+	 */
+	abstract public function getActivePageWrapper($text);
+
+	/**
+	 * Render the Pagination contents.
+	 *
+	 * @return string
+	 */
+	public function render()
+	{
+		// The hard-coded thirteen represents the minimum number of pages we need to
+		// be able to create a sliding page window. If we have less than that, we
+		// will just render a simple range of page links insteadof the sliding.
+		if ($this->lastPage < 13)
+		{
+			$content = $this->getPageRange(1, $this->lastPage);
+		}
+		else
+		{
+			$content = $this->getPageSlider();
+		}
+
+		return $this->getPrevious().$content.$this->getNext();
+	}
+
+	/**
+	 * Create a range of pagination links.
+	 *
+	 * @param  int  $start
+	 * @param  int  $end
+	 * @return string
+	 */
+	public function getPageRange($start, $end)
+	{
+		$pages = array();
+
+		for ($page = $start; $page <= $end; $page++)
+		{
+			// If the current page is equal to the page we're iterating on, we will create a
+			// disabled link for that page. Otherwise, we can create a typical active one
+			// for the link. We will use this implementing class's methods to get HTML.
+			if ($this->currentPage == $page)
+			{
+				$pages[] = $this->getActivePageWrapper($page);
+			}
+			else
+			{
+				$pages[] = $this->getLink($page);
+			}
+		}
+
+		return implode('', $pages);
+	}
+
+	/**
+	 * Create a pagination slider link window.
+	 *
+	 * @return string
+	 */
+	protected function getPageSlider()
+	{
+		$window = 6;
+
+		// If the current page is very close to the beginning of the page range, we will
+		// just render the beginning of the page range, followed by the last 2 of the
+		// links in this list, since we will not have room to create a full slider.
+		if ($this->currentPage <= $window)
+		{
+			$ending = $this->getFinish();
+
+			return $this->getPageRange(1, $window + 2).$ending;
+		}
+
+		// If the current page is close to the ending of the page range we will just get
+		// this first couple pages, followed by a larger window of these ending pages
+		// since we're too close to the end of the list to create a full on slider.
+		elseif ($this->currentPage >= $this->lastPage - $window)
+		{
+			$start = $this->lastPage - 8;
+
+			$content = $this->getPageRange($start, $this->lastPage);
+
+			return $this->getStart().$content;
+		}
+
+		// If we have enough room on both sides of the current page to build a slider we
+		// will surround it with both the beginning and ending caps, with this window
+		// of pages in the middle providing a Google style sliding paginator setup.
+		else
+		{
+			$content = $this->getAdjacentRange();
+
+			return $this->getStart().$content.$this->getFinish();
+		}
+	}
+
+	/**
+	 * Get the page range for the current page window.
+	 *
+	 * @return string
+	 */
+	public function getAdjacentRange()
+	{
+		return $this->getPageRange($this->currentPage - 3, $this->currentPage + 3);
+	}
+
+	/**
+	 * Create the beginning leader of a pagination slider.
+	 *
+	 * @return string
+	 */
+	public function getStart()
+	{
+		return $this->getPageRange(1, 2).$this->getDots();
+	}
+
+	/**
+	 * Create the ending cap of a pagination slider.
+	 *
+	 * @return string
+	 */
+	public function getFinish()
+	{
+		$content = $this->getPageRange($this->lastPage - 1, $this->lastPage);
+
+		return $this->getDots().$content;
+	}
+
+	/**
+	 * Get the previous page pagination element.
+	 *
+	 * @param  string  $text
+	 * @return string
+	 */
+	public function getPrevious($text = '&laquo;')
+	{
+		// If the current page is less than or equal to one, it means we can't go any
+		// further back in the pages, so we will render a disabled previous button
+		// when that is the case. Otherwise, we will give it an active "status".
+		if ($this->currentPage <= 1)
+		{
+			return $this->getDisabledTextWrapper($text);
+		}
+
+		$url = $this->paginator->getUrl($this->currentPage - 1);
+
+		return $this->getPageLinkWrapper($url, $text, 'prev');
+	}
+
+	/**
+	 * Get the next page pagination element.
+	 *
+	 * @param  string  $text
+	 * @return string
+	 */
+	public function getNext($text = '&raquo;')
+	{
+		// If the current page is greater than or equal to the last page, it means we
+		// can't go any further into the pages, as we're already on this last page
+		// that is available, so we will make it the "next" link style disabled.
+		if ($this->currentPage >= $this->lastPage)
+		{
+			return $this->getDisabledTextWrapper($text);
+		}
+
+		$url = $this->paginator->getUrl($this->currentPage + 1);
+
+		return $this->getPageLinkWrapper($url, $text, 'next');
+	}
+
+	/**
+	 * Get a pagination "dot" element.
+	 *
+	 * @return string
+	 */
+	public function getDots()
+	{
+		return $this->getDisabledTextWrapper("...");
+	}
+
+	/**
+	 * Create a pagination slider link.
+	 *
+	 * @param  mixed   $page
+	 * @return string
+	 */
+	public function getLink($page)
+	{
+		$url = $this->paginator->getUrl($page);
+
+		return $this->getPageLinkWrapper($url, $page);
+	}
+
+	/**
+	 * Set the value of the current page.
+	 *
+	 * @param  int   $page
+	 * @return void
+	 */
+	public function setCurrentPage($page)
+	{
+		$this->currentPage = $page;
+	}
+
+	/**
+	 * Set the value of the last page.
+	 *
+	 * @param  int   $page
+	 * @return void
+	 */
+	public function setLastPage($page)
+	{
+		$this->lastPage = $page;
+	}
+
+}