Package org.openstreetmap.osmosis.replicationhttp.v0_6

Source Code of org.openstreetmap.osmosis.replicationhttp.v0_6.ReplicationDataClientFactory

// This software is released into the Public Domain.  See copying.txt for details.
package org.openstreetmap.osmosis.replicationhttp.v0_6;

import java.net.InetSocketAddress;

import org.openstreetmap.osmosis.core.pipeline.common.TaskConfiguration;
import org.openstreetmap.osmosis.core.pipeline.common.TaskManager;
import org.openstreetmap.osmosis.core.pipeline.common.TaskManagerFactory;
import org.openstreetmap.osmosis.core.pipeline.v0_6.RunnableChangeSourceManager;


/**
* The task manager factory for a HTTP replication data client.
*
* @author Brett Henderson
*/
public class ReplicationDataClientFactory extends TaskManagerFactory {
  private static final String ARG_HOST = "host";
  private static final String ARG_PORT = "port";
  private static final String ARG_PATH_PREFIX = "pathPrefix";
  private static final String DEFAULT_HOST = "localhost";
  private static final int DEFAULT_PORT = 0;
  private static final String DEFAULT_PATH_PREFIX = "";


  /**
   * {@inheritDoc}
   */
  @Override
  protected TaskManager createTaskManagerImpl(TaskConfiguration taskConfig) {
    String host;
    int port;
    StringBuilder basePath;

    // Get the task arguments.
    host = getStringArgument(taskConfig, ARG_HOST, DEFAULT_HOST);
    port = getIntegerArgument(taskConfig, ARG_PORT, DEFAULT_PORT);
    basePath = new StringBuilder(getStringArgument(taskConfig, ARG_PATH_PREFIX, DEFAULT_PATH_PREFIX));
   
    // Ensure that the base path if it exists has a leading slash but no trailing slash.
    while (basePath.length() > 0 && basePath.charAt(0) == '/') {
      basePath.delete(0, 1);
    }
    while (basePath.length() > 0 && basePath.charAt(basePath.length() - 1) == '/') {
      basePath.delete(basePath.length() - 1, basePath.length());
    }
    if (basePath.length() > 0) {
      basePath.insert(0, '/');
    }
   
    return new RunnableChangeSourceManager(
      taskConfig.getId(),
      new ReplicationDataClient(new InetSocketAddress(host, port), basePath.toString()),
      taskConfig.getPipeArgs()
    );
  }
}
TOP

Related Classes of org.openstreetmap.osmosis.replicationhttp.v0_6.ReplicationDataClientFactory

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.