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

oms3.dsl.Exec Maven / Gradle / Ivy

There is a newer version: 0.10.8
Show newest version
///*
// * To change this template, choose Tools | Templates
// * and open the template in the editor.
// */
//package oms3.dsl;
//
//import java.io.File;
//import java.io.FileReader;
//import java.io.IOException;
//import java.io.Writer;
//import java.util.Properties;
//import java.util.logging.Level;
//import java.util.logging.Logger;
//import oms3.CLI;
//import oms3.ComponentException;
//import oms3.util.Processes1;
//
///** 
// *
// * @author od
// */
//public class Exec implements Buildable {
//
//    protected static final Logger log = Logger.getLogger("oms3.sim");
//
//    /** execution types */
//    public static enum Type {
//
//        GROOVY,
//        ANT,
//        EXE, // not used yet
//        JAVA, // not used yet
//    }
//    /** the file to execute */
//    String file;
//    /** The execution type */
//    Type type;
//    /** optional ant target to run, if null it runs the default target */
//    String targets = "";
//
//    public Exec(Type type) {
//        this.type = type;
//    }
//
//    public void setFile(String file) {
//        this.file = file;
//    }
//
//    public void setTargets(String targets) {
//        this.targets = targets;
//    }
//
//    public void setTarget(String targets) {
//        this.targets = targets;
//    }
//
//    public String getTargets() {
//        return targets;
//    }
//
//    public void run() throws Exception {
//        File runFile = new File(file);
//        if (!runFile.exists()) {
//            throw new ComponentException("Not found : " + file);
//        }
//        if (log.isLoggable(Level.INFO)) {
//            log.info("Executing: " + file);
//        }
//        switch (type) {
//            // groovy execution
//            case GROOVY:
//                CLI.evaluateGroovyScript(runFile.getAbsolutePath());
//                break;
//            // Ant execution
//            case ANT:
//                String q = File.pathSeparatorChar == ';' ? "\"" : "";
//                String version = System.getProperty("oms.version");
//                String oms3Home = System.getProperty("oms.home");
//
//                String[] antoptions = {};
//                File conf = new File(System.getProperty("oms.prj") + File.separatorChar + ".oms", "project.properties");
//                if (conf.exists()) {
//                    Properties p = new Properties();
//                    FileReader fr = new FileReader(conf);
//                    p.load(fr);
//                    fr.close();
//                    String opt = p.getProperty("ant.options");
//                    if (log.isLoggable(Level.INFO)) {
//                        log.info("ant.options: " + opt);
//                    }
//                    if (opt != null) {
//                        antoptions = opt.trim().split("\\s+");
//                    }
//                }
//                Processes1 p = new Processes1(new File(File.pathSeparatorChar == ';' ? "ant.bat" : "ant"));
//                p.setLog(log);
//                p.setArguments(antoptions,
//                        "-Doms.version=" + version,
//                        "-lib", q + oms3Home + q,
//                        "-f", q + runFile.toString() + q,
//                        targets.trim().split("\\s+"));
//
//                p.redirectOutput(new Writer() {
//
//                    @Override
//                    public void write(char[] cbuf, int off, int len) throws IOException {
//                        System.out.println(new String(cbuf, off, len));
//                    }
//
//                    @Override
//                    public void flush() throws IOException {
//                        System.out.flush();
//                    }
//
//                    @Override
//                    public void close() throws IOException {
//                    }
//                });
//
//                p.redirectError(new Writer() {
//
//                    @Override
//                    public void write(char[] cbuf, int off, int len) throws IOException {
//                        System.err.println(new String(cbuf, off, len));
//                    }
//
//                    @Override
//                    public void flush() throws IOException {
//                        System.err.flush();
//                    }
//
//                    @Override
//                    public void close() throws IOException {
//                    }
//                });
//
//                try {
//                    if (log.isLoggable(Level.INFO)) {
//                        log.info("Starting ...");
//                    }
//                    int exitValue = p.exec();
//                    if (log.isLoggable(Level.INFO)) {
//                        log.info("Finished with exit code " + exitValue);
//                    }
//                    if (exitValue != 0) {
//                        throw new ComponentException("ant failed, simulation stopped.");
//                    }
//                } catch (IOException E) {
//                    throw new ComponentException("Check your 'PATH', " + E.getMessage());
//                }
//                break;
//            default:
//                throw new ComponentException("Unknown Execution type. " + type);
//        }
//    }
//
//    @Override
//    public Buildable create(Object name, Object value) {
//        return LEAF;
//    }
//}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy