protected function getLocator()
    {
    	if ($this->locator) {
    		return $this->locator;
    	}
    	
    	$controller = $this->getController();
    
    	if (!$controller instanceof ServiceLocatorAwareInterface) {
    		throw new \Exception('ServiceBroker plugin requires controller implements ServiceLocatorAwareInterface');
    	}
    	
    	$locator = $controller->getServiceLocator();
    	
    	if (!$locator instanceof ServiceLocatorInterface) {
    		throw new \Exception('ServiceBroker plugin requires controller implements ServiceLocatorInterface');
    	}
    	
    	$this->locator = $locator;
    	return $this->locator;
    }