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

io.vertx.codetrans.ConversionRunner Maven / Gradle / Ivy

There is a newer version: 4.1.0.Beta1
Show newest version
package io.vertx.codetrans;

import java.io.File;
import java.io.FileWriter;
import java.io.InputStream;
import java.net.URL;
import java.net.URLClassLoader;
import java.nio.file.Files;
import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * @author Julien Viet
 */
public class ConversionRunner {

  public static void main(String[] args) throws Exception {

    Lang lang = new JavaScriptLang();
    switch (System.getProperty("lang")) {
      case "groovy":
        lang = new GroovyLang();
        break;
      case "js":
        lang = new JavaScriptLang();
        break;
      default:
        throw new UnsupportedOperationException();
    }

    Map result = ConvertingProcessor.convert(ConversionRunner.class.getClassLoader(), lang,
        "echo/EchoServer.java",
        "echo/EchoClient.java",
        "http/Client.java",
        "http/Server.java",
        "https/Client.java",
        "https/Server.java",
        "proxy/Proxy.java",
        "proxy/Server.java",
        "proxy/Client.java",
        "eventbus_pointtopoint/Sender.java",
        "eventbus_pointtopoint/Receiver.java",
        "eventbus_pubsub/Sender.java",
        "eventbus_pubsub/Receiver.java",
        "eventbusbridge/BridgeServer.java",
        "sendfile/SendFile.java",
        "route_match/RouteMatchServer.java",
        "simpleform/SimpleFormServer.java",
        "simpleformupload/SimpleFormUploadServer.java",
        "sockjs/SockJSExample.java",
        "ssl/Server.java",
        "ssl/Client.java",
        "upload/Client.java",
        "upload/Server.java",
        "websockets/WebSocketsServer.java",
        "websockets/WebSocketsClient.java"
    );

    List resources = Arrays.asList(
        "server-keystore.jks",
        "route_match/index.html",
        "eventbusbridge/index.html",
        "eventbusbridge/vertxbus.js",
        "sendfile/index.html",
        "sendfile/page1.html",
        "sendfile/page2.html",
        "simpleform/index.html",
        "simpleformupload/index.html",
        "sockjs/index.html",
        "upload/upload.txt",
        "websockets/ws.html"
    );
    for (String resource : resources) {
      InputStream in = ConversionRunner.class.getClassLoader().getResourceAsStream(resource);
      File dst = new File(resource).getAbsoluteFile();
      dst.getParentFile().mkdirs();
      Files.copy(in, dst.toPath());
    }

    for (Map.Entry generated : result.entrySet()) {
      File dst = new File(generated.getKey());
      dst.getParentFile().mkdirs();
      try (FileWriter writer = new FileWriter(dst)) {
        writer.append(generated.getValue());
      }
    }

    //
    ClassLoader loader = new URLClassLoader(new URL[]{new File(".").getAbsoluteFile().toURI().toURL()}, Thread.currentThread().getContextClassLoader());
    Thread.currentThread().setContextClassLoader(loader);
    Runner.main(new String[0]);
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy