Rev 4644 | Rev 4651 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
package in.shop2020.payment.service;import org.apache.thrift.protocol.TBinaryProtocol;import org.apache.thrift.protocol.TProtocolFactory;import org.apache.thrift.server.TServer;import org.apache.thrift.server.TThreadPoolServer;import org.apache.thrift.server.TThreadPoolServer.Args;import org.apache.thrift.transport.TFramedTransport;import org.apache.thrift.transport.TServerSocket;import org.apache.thrift.transport.TServerTransport;import org.apache.thrift.transport.TTransportFactory;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import in.shop2020.payment.service.handler.PaymentServiceHandler;import in.shop2020.payments.PaymentService.Iface;import in.shop2020.payments.PaymentService.Processor;import in.shop2020.thrift.clients.config.ConfigClient;import in.shop2020.utils.ConfigClientKeys;public class PaymentServer {private static Logger logger = LoggerFactory.getLogger(PaymentServer.class);private static PaymentServiceHandler handler;private static Processor<Iface> processor;public static String dbHost;public static void main(String[] args){try{int port = 9012;try {dbHost = "jdbc:mysql://" + ConfigClient.getClient().get(ConfigClientKeys.payments_service_db_hostname.toString()) + "/payment";String portNo = ConfigClient.getClient().get(ConfigClientKeys.payments_service_server_port.toString());port = Integer.parseInt(portNo);}catch(Exception e){logger.warn("Unable to get port number from the Config server because of:", e);}// Setting dbHost env property to make this value accessible in context.xml// while spring context creation.System.setProperty("dbHost", dbHost);handler = new PaymentServiceHandler();processor = new Processor<Iface>(handler);logger.info("DB Connection String is: " + dbHost);org.apache.commons.dbcp.BasicDataSource ds = (org.apache.commons.dbcp.BasicDataSource)handler.context.getBean("dataSource");logger.info("URL read by data source before setting is: " + ds.getUrl());ds.setUrl(dbHost);logger.info("URL read by data source after setting is: " + ds.getUrl());TServerTransport serverTransport = new TServerSocket(port);TTransportFactory tFactory = new TFramedTransport.Factory();TProtocolFactory pFactory = new TBinaryProtocol.Factory();Args serverParams = new Args(serverTransport);serverParams.processor(processor);serverParams.transportFactory(tFactory);serverParams.protocolFactory(pFactory);TServer server = new TThreadPoolServer(serverParams);logger.info("Payment service started on port 9012");server.serve();}catch(Exception ex){ex.printStackTrace();}}}