package org.marketcetera.util.ws.sample; import java.io.File; import org.apache.log4j.PropertyConfigurator; import org.marketcetera.util.log.I18NMessage2P; import org.marketcetera.util.misc.ClassVersion; import org.marketcetera.util.test.TestCaseBase; import org.marketcetera.util.ws.stateful.Server; import org.marketcetera.util.ws.stateful.SessionManager; /** * A sample server. It exposes a single service, which is configured * via command-line arguments. * * @author tlerios@marketcetera.com * @since 1.0.0 * @version $Id: SampleServer.java 16154 2012-07-14 16:34:05Z colin $ */ /* $License$ */ @ClassVersion("$Id: SampleServer.java 16154 2012-07-14 16:34:05Z colin $") //$NON-NLS-1$ public class SampleServer extends TestCaseBase { // MAIN PROGRAM. public static void main(String[] args) throws Exception { // Configure log4j. PropertyConfigurator.configure (DIR_ROOT+File.separator+"ws"+File.separator+"sample"+ File.separator+"log_server.properties"); // Parse command-line. String user=null; char[] password=null; I18NMessage2P greeting=SampleMessages.SHORT_GREETING; for (int i=0;i<args.length;i++) { if ("-user".equals(args[i])) { if ((++i)==args.length) { throw new IllegalArgumentException("Missing user"); } user=args[i]; continue; } if ("-password".equals(args[i])) { if ((++i)==args.length) { throw new IllegalArgumentException("Missing password"); } password=args[i].toCharArray(); continue; } if ("-longGreeting".equals(args[i])) { greeting=SampleMessages.LONG_GREETING; continue; } throw new IllegalArgumentException("Unknown option: "+args[i]); } // Configure server. Server<SampleSession> s=new Server<SampleSession> (new SampleAuthenticator(user,password), new SessionManager<SampleSession>()); // Publish stateless service. s.publish(new SampleStatelessServiceImpl(greeting), SampleStatelessService.class); // Publish service. s.publish(new SampleServiceImpl(s.getSessionManager(),greeting), SampleService.class); // Wait indefinitely. s.wait(); } }