/* * Copyright (c) 2009 - 2015 Deutsches Elektronen-Synchroton, * Member of the Helmholtz Association, (DESY), HAMBURG, GERMANY * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This library 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 Library General Public License for more details. * * You should have received a copy of the GNU Library General Public * License along with this program (see the file COPYING.LIB for more * details); if not, write to the Free Software Foundation, Inc., * 675 Mass Ave, Cambridge, MA 02139, USA. */ package org.dcache.xdr; import java.io.IOException; import org.dcache.xdr.portmap.OncRpcEmbeddedPortmap; public class SimpleRpcServer { static final int DEFAULT_PORT = 1717; private static final int PROG_NUMBER = 100017; private static final int PROG_VERS = 1; public static void main(String[] args) throws Exception { if( args.length > 1) { System.err.println("Usage: SimpleRpcServer <port>"); System.exit(1); } int port = DEFAULT_PORT; if( args.length == 1) { port = Integer.parseInt(args[0]); } new OncRpcEmbeddedPortmap(); RpcDispatchable dummy = new RpcDispatchable() { @Override public void dispatchOncRpcCall(RpcCall call) throws OncRpcException, IOException { call.reply(XdrVoid.XDR_VOID); } }; OncRpcSvc svc = new OncRpcSvcBuilder() .withTCP() .withAutoPublish() .withPort(port) .withSameThreadIoStrategy() .withJMX() .withRpcService(new OncRpcProgram(PROG_NUMBER, PROG_VERS), dummy) .build(); svc.start(); System.in.read(); svc.stop(); } }