Package org.apache.xmlrpc.test

Source Code of org.apache.xmlrpc.test.ServletWebServerProvider

/*
* Copyright 1999,2005 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*      http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.xmlrpc.test;

import java.io.IOException;
import java.net.URL;

import javax.servlet.ServletException;

import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import org.apache.xmlrpc.client.XmlRpcSunHttpTransportFactory;
import org.apache.xmlrpc.client.XmlRpcTransportFactory;
import org.apache.xmlrpc.server.XmlRpcHandlerMapping;
import org.apache.xmlrpc.server.XmlRpcServer;
import org.apache.xmlrpc.server.XmlRpcServerConfigImpl;
import org.apache.xmlrpc.webserver.ServletWebServer;
import org.apache.xmlrpc.webserver.XmlRpcServlet;


/** A provider class for testing the {@link ServletWebServer}.
*/
public class ServletWebServerProvider extends ClientProviderImpl {
  protected final ServletWebServer webServer;
  private final boolean contentLength;
  private final int port;

  /** Creates a new instance.
   * @param pMapping The test servers handler mapping.
   * @throws ServletException
   * @throws IOException
   */
  protected ServletWebServerProvider(XmlRpcHandlerMapping pMapping, boolean pContentLength) throws ServletException, IOException {
    super(pMapping);
    contentLength = pContentLength;
    XmlRpcServlet servlet = new XmlRpcServlet();
    webServer = new ServletWebServer(servlet, 0);
    XmlRpcServer server = servlet.getXmlRpcServletServer();
    server.setHandlerMapping(mapping);
    XmlRpcServerConfigImpl serverConfig = (XmlRpcServerConfigImpl) server.getConfig();
    serverConfig.setEnabledForExtensions(true);
    serverConfig.setContentLengthOptional(!contentLength);
    webServer.start();
    port = webServer.getPort();
   }

  public final XmlRpcClientConfigImpl getConfig() throws Exception {
    return getConfig(new URL("http://127.0.0.1:" + port + "/"));
  }

  protected XmlRpcClientConfigImpl getConfig(URL pServerURL) throws Exception {
    XmlRpcClientConfigImpl config = super.getConfig();
    config.setServerURL(pServerURL);
    config.setContentLengthOptional(!contentLength);
    return config;
  }

  protected XmlRpcTransportFactory getTransportFactory(XmlRpcClient pClient) {
    return new XmlRpcSunHttpTransportFactory(pClient);
  }
}
TOP

Related Classes of org.apache.xmlrpc.test.ServletWebServerProvider

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.