com.eviware.soapui.tools.SoapUIMockAsWarGenerator.java Source code

Java tutorial

Introduction

Here is the source code for com.eviware.soapui.tools.SoapUIMockAsWarGenerator.java

Source

/*
 *  soapUI, copyright (C) 2004-2012 smartbear.com 
 *
 *  soapUI is free software; you can redistribute it and/or modify it under the 
 *  terms of version 2.1 of the GNU Lesser General Public License as published by 
 *  the Free Software Foundation.
 *
 *  soapUI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without 
 *  even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 
 *  See the GNU Lesser General Public License for more details at gnu.org.
 */

package com.eviware.soapui.tools;

import java.io.File;

import org.apache.commons.cli.CommandLine;

import com.eviware.soapui.SoapUI;
import com.eviware.soapui.impl.wsdl.WsdlProject;
import com.eviware.soapui.model.project.ProjectFactoryRegistry;
import com.eviware.soapui.settings.ProjectSettings;
import com.eviware.soapui.support.StringUtils;

public class SoapUIMockAsWarGenerator extends AbstractSoapUIRunner {
    public static String TITLE = "soapUI " + SoapUI.SOAPUI_VERSION + " War Generator";

    private boolean includeActions;
    private boolean includeListeners;
    private boolean includeLibraries;
    private boolean enableWebUI;
    private String localEndpoint;
    private String warFile;

    public SoapUIMockAsWarGenerator() {
        super(TITLE);
    }

    public SoapUIMockAsWarGenerator(String title) {
        super(title);
    }

    /**
     * Runs the specified tool in the specified soapUI project file, see soapUI
     * xdocs for details.
     * 
     * @param args
     * @throws Exception
     */

    public static void main(String[] args) throws Exception {
        System.exit(new SoapUIMockAsWarGenerator().runFromCommandLine(args));
    }

    @Override
    protected boolean processCommandLine(CommandLine cmd) {
        setEnableWebUI(cmd.hasOption('w'));
        setIncludeActions(cmd.hasOption('a'));
        setIncludeLibraries(cmd.hasOption('x'));
        setIncludeListeners(cmd.hasOption('l'));

        if (cmd.hasOption("s"))
            setSettingsFile(getCommandLineOptionSubstSpace(cmd, "s"));

        if (cmd.hasOption("p"))
            setProjectPassword(cmd.getOptionValue("p"));

        if (cmd.hasOption("v"))
            setSoapUISettingsPassword(cmd.getOptionValue("v"));

        if (cmd.hasOption("d"))
            setOutputFolder(cmd.getOptionValue("d"));

        if (cmd.hasOption("f"))
            setWarFile(cmd.getOptionValue("f"));

        if (cmd.hasOption("e"))
            setLocalEndpoint(cmd.getOptionValue("e"));

        return true;
    }

    @Override
    protected SoapUIOptions initCommandLineOptions() {
        SoapUIOptions options = new SoapUIOptions("wargenerator");
        options.addOption("x", true, "Specify if libraries in ext folder should be included");
        options.addOption("a", true, "Specify if custom actions should be included");
        options.addOption("l", true, "Specify if custom listeners should be included");
        options.addOption("w", true, "Specify if web UI should be enabled");
        options.addOption("e", true, "Set the local endpoint of the MockService");
        options.addOption("f", true, "Specify the name of the generated WAR file");
        options.addOption("d", true, "Sets the local folder to use for war generation");
        options.addOption("s", true, "Sets the soapui-settings.xml file to use");
        options.addOption("p", true, "Sets project password for decryption if project is encrypted");
        options.addOption("v", true, "Sets password for soapui-settings.xml file");

        return options;
    }

    @Override
    protected boolean runRunner() throws Exception {
        WsdlProject project = (WsdlProject) ProjectFactoryRegistry.getProjectFactory("wsdl")
                .createNew(getProjectFile(), getProjectPassword());

        String pFile = getProjectFile();

        project.getSettings().setString(ProjectSettings.SHADOW_PASSWORD, null);

        File tmpProjectFile = new File(System.getProperty("java.io.tmpdir"));
        tmpProjectFile = new File(tmpProjectFile, project.getName() + "-project.xml");

        project.beforeSave();
        project.saveIn(tmpProjectFile);

        pFile = tmpProjectFile.getAbsolutePath();

        String endpoint = StringUtils.hasContent(localEndpoint) ? localEndpoint : project.getName();

        log.info("Creating WAR file with endpoint [" + endpoint + "]");

        MockAsWar mockAsWar = new MockAsWar(pFile, getSettingsFile(), getOutputFolder(), warFile, includeLibraries,
                includeActions, includeListeners, endpoint, enableWebUI);

        mockAsWar.createMockAsWarArchive();
        log.info("WAR Generation complete");
        return true;
    }

    public boolean isIncludeActions() {
        return includeActions;
    }

    public void setIncludeActions(boolean includeActions) {
        this.includeActions = includeActions;
    }

    public boolean isIncludeListeners() {
        return includeListeners;
    }

    public void setIncludeListeners(boolean includeListeners) {
        this.includeListeners = includeListeners;
    }

    public boolean isIncludeLibraries() {
        return includeLibraries;
    }

    public void setIncludeLibraries(boolean includeLibraries) {
        this.includeLibraries = includeLibraries;
    }

    public boolean isEnableWebUI() {
        return enableWebUI;
    }

    public void setEnableWebUI(boolean enableWebUI) {
        this.enableWebUI = enableWebUI;
    }

    public String getLocalEndpoint() {
        return localEndpoint;
    }

    public void setLocalEndpoint(String localEndpoint) {
        this.localEndpoint = localEndpoint;
    }

    public String getWarFile() {
        return warFile;
    }

    public void setWarFile(String warFile) {
        this.warFile = warFile;
    }
}