All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jgap.distr.grid.JGAPServer Maven / Gradle / Ivy

Go to download

JGAP is a Genetic Algorithms and Genetic Programming component provided as a Java framework.

The newest version!
/*
 * This file is part of JGAP.
 *
 * JGAP offers a dual license model containing the LGPL as well as the MPL.
 *
 * For licensing information please see the file license.txt included with JGAP
 * or have a look at the top of class org.jgap.Chromosome which representatively
 * includes the JGAP license policy applicable for any file delivered with JGAP.
 */
package org.jgap.distr.grid;

import java.io.*;
import org.apache.commons.cli.*;
import org.apache.log4j.*;
import org.homedns.dade.jcgrid.cmd.*;
import org.homedns.dade.jcgrid.server.*;

/**
 * A grid server is able to:
 *
 *   a) receive work requests from JGAPClients
 *   b) send work units to JGAPWorkers
 *   c) receive solutions from JGAPWorkers, and
 *   d) send back these solutions to the requesting JGAPClient.
 *
 * @author Klaus Meffert
 * @since 3.01
 */
public class JGAPServer {
  /** String containing the CVS revision. Read out via reflection!*/
  private final static String CVS_REVISION = "$Revision: 1.7 $";

  private final static String className = JGAPServer.class.getName();

  private static Logger log = Logger.getLogger(className);

  private GridServer m_gs;

  public JGAPServer(String[] args)
      throws Exception {
    m_gs = new GridServer(JGAPClientHandlerThread.class);
    Options options = new Options();
    CommandLine cmd = MainCmd.parseCommonOptions(options, m_gs.getNodeConfig(),
        args);
    // Start Server.
    // -------------
    m_gs.start();
//    addFile("c:/temp/jgap/jgap.jar");
  }

  // Just for testing purposes
  public void addFile(String a_filename)
      throws Exception {
    String path = m_gs.getVFSSessionPool().getPath();
    if (path == null) {
      return;
    }
    if (path.charAt(path.length() - 1) != '\\') {
      path += "\\";
    }
    copyFile(a_filename, path);
  }

  public static void copyFile(String source, String dest)
      throws Exception {
    File destFile = new File(dest);
    if (!destFile.isFile()) {
      String origFilename = new File(source).getName();
      dest = dest + origFilename;
    }
    File inputFile = new File(source);
    File outputFile = new File(dest);
//     FileReader in = new FileReader(inputFile);
//     FileWriter out = new FileWriter(outputFile);

    FileInputStream in;
    FileOutputStream out;
    in = new FileInputStream(inputFile);
    out = new FileOutputStream(outputFile);
    int c;
    while ( (c = in.read()) != -1) {
      out.write(c);
    }
    in.close();
    out.close();
  }

  public static void main(String[] args)
      throws Exception {
    MainCmd.setUpLog4J("server", true);
    // Create the server.
    // ------------------
    new JGAPServer(args);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy