docs: public static void main(String[] args)
  	{
  		Runtime.getRuntime().addShutdownHook(new Thread()
  		{
  			public void run()
  			{
  				log.info("Shutting down GreenPepper Remote Agent...");
  				shutdown();
  			}
  		});
  		
  		try
  		{
  			AgentConfiguration configuration = new AgentConfiguration(args);
  
  			if (configuration.isSecured())
  			{
  				SecurityTool.setKeyStore(configuration.getKeyStore());
  				SecurityTool.setKeyStorePassword(configuration.getKeyStorePassword() == null ?
  												 askPassword() : configuration.getKeyStorePassword());
  
  				webServer = new SecureWebServer(configuration.getPort());
  			}
  			else
  			{
  				webServer = new WebServer(configuration.getPort());
  			}
  
  			Service service = new ServiceImpl();
  			webServer.addHandler("greenpepper-agent1", service);
  			webServer.start();
  
  			log.info(String.format("GreenPepper Remote Agent is listening for %sconnections on port %s... ",
  								   configuration.isSecured() ? "SSL " : "", configuration.getPort()));
  
  			log.info(String.format("File encoding : %s, Charset : %s",
  								   System.getProperty("file.encoding"),
  								   Charset.defaultCharset().toString()));
  		}
  		catch (Exception ex)
  		{
  			log.error("Error starting GreenPepper Remote Agent", ex);
  		}
  	}