Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package com.splout.db.qnode;
  
  /*
   * #%L
   * Splout SQL Server
   * %%
   * Copyright (C) 2012 Datasalt Systems S.L.
   * %%
   * This program is free software: you can redistribute it and/or modify
  * it under the terms of the GNU Affero General Public License as published by
  * the Free Software Foundation, either version 3 of the License, or
  * (at your option) any later version.
  * 
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  * 
  * You should have received a copy of the GNU Affero General Public License
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  * #L%
  */
 
 
Like the com.splout.db.dnode.DNode, this class is only the skeleton of the QNode service. It handles the HTTP requests and delegates them to the business logic in IQNodeHandler.

The HTTP handling is implemented using Jersey API in RESTAPI.

See also:
QNodeHandler
 
 public class QNode {
 
 	private IQNodeHandler handler;
 	private String address;
 	private Server server;
 
 	public void start(SploutConfiguration configIQNodeHandler handlerthrows Exception {
 		this. = handler;
 		boolean init = false;
 		int retries = 0;
 
 		handler.init(config);
 
 		do {
 			try {
 				 = new Server(config.getInt(.));
 
 				
 				WebAppContext context = new WebAppContext();
 				context.setContextPath("/");
 				DefaultServlet defaultServlet = new DefaultServlet();
 				
 				context.addServlet(new ServletHolder(new QueryServlet(handler)), "/api/query");
 				context.addServlet(new ServletHolder(new AdminServlet(handler)), "/api/admin");
 				context.addServlet(new ServletHolder(new DeployRollbackServlet(handler)), "/api/deploy");
 				
 				context.addServlet(new ServletHolder(defaultServlet), "/panel/*");
         context.addServlet(new ServletHolder(new com.yammer.metrics.reporting.AdminServlet()), "/metrics/*");
 				
 				// No cache header in all responses... otherwise some browsers
 				// can decide to cache some requests and they shouldn't
 				context.addFilter(NoCacheFilter.class"/*".);
 				
 				ResourceCollection resources = new ResourceCollection(new String[] { Resource
 				    .newClassPathResource("panel").toString() });
 
 				context.setBaseResource(resources);
 
 				rewrite.setHandler(context);
 				.setHandler(rewrite);
 
 				 = "http://" + config.getString(.) + ":"
 				    + config.getInt(.);
 
 				init = true;
 			} catch(java.net.BindException e) {
 					throw e;
 				}
 				retries++;
 			}
while(!init && retries < 100);
	}
	public String getAddress() {
		return ;
	}
		return ;
	}
	public void close() throws Exception {
	}
	public static void main(String[] argsthrows Exception {
		QNode qnode = new QNode();
		SploutConfiguration config = SploutConfiguration.get();
		qnode.start(confignew QNodeHandler());
		while(true) {
			Thread.sleep(100);
		}
	}
New to GrepCode? Check out our FAQ X