Package net.jsunit

Source Code of net.jsunit.JsUnitAggregateServerConfigurationProvider

package net.jsunit;

import com.opensymphony.xwork.Action;
import com.opensymphony.xwork.config.Configuration;
import com.opensymphony.xwork.config.ConfigurationProvider;
import com.opensymphony.xwork.config.entities.*;
import com.opensymphony.xwork.config.providers.XmlConfigurationProvider;
import com.opensymphony.xwork.interceptor.ParametersInterceptor;
import net.jsunit.action.AggregateConfigurationAction;
import net.jsunit.action.DistributedTestRunnerAction;
import net.jsunit.action.XmlResult;
import net.jsunit.interceptor.AggregateServerInterceptor;
import net.jsunit.interceptor.BrowserTestRunnerInterceptor;
import net.jsunit.interceptor.RemoteServerHitterInterceptor;
import net.jsunit.interceptor.RequestSourceInterceptor;

import java.util.HashMap;

public class JsUnitAggregateServerConfigurationProvider implements ConfigurationProvider {

    public JsUnitAggregateServerConfigurationProvider() {
        super();
    }

    public void init(Configuration configuration) {
        new XmlConfigurationProvider("webwork-default.xml").init(configuration);
        PackageConfig packageConfig = new PackageConfig();
        addInterceptorConfigsTo(packageConfig);
        addActionConfigsTo(packageConfig);
        configuration.addPackageConfig("default", packageConfig);
    }

    private void addInterceptorConfigsTo(PackageConfig packageConfig) {
        packageConfig.addInterceptorConfig(new InterceptorConfig("aggregateServer", AggregateServerInterceptor.class, new HashMap()));
        packageConfig.addInterceptorConfig(new InterceptorConfig("requestSource", RequestSourceInterceptor.class, new HashMap()));
        packageConfig.addInterceptorConfig(new InterceptorConfig("remoteRunnerHitter", BrowserTestRunnerInterceptor.class, new HashMap()));
    }

    private void addActionConfigsTo(PackageConfig packageConfig) {
        packageConfig.addActionConfig("config", configActionConfig());
        packageConfig.addActionConfig("runner", runnerActionConfig());
    }

    private ActionConfig runnerActionConfig() {
        ActionConfig result = newActionConfig();
        result.setClassName(DistributedTestRunnerAction.class.getName());
        result.addResultConfig(new ResultConfig(Action.SUCCESS, XmlResult.class));
        result.addResultConfig(new ResultConfig("error", XmlResult.class));
        result.addInterceptor(new InterceptorMapping("aggregateServer", new AggregateServerInterceptor()));
        result.addInterceptor(new InterceptorMapping("params", new ParametersInterceptor()));
        result.addInterceptor(new InterceptorMapping("requestSource", new RequestSourceInterceptor()));
        result.addInterceptor(new InterceptorMapping("remoteServerHitter", new RemoteServerHitterInterceptor()));
        return result;
    }

    private ActionConfig newActionConfig() {
        ActionConfig actionConfig = new ActionConfig();
        actionConfig.setPackageName("net.jsunit.action");
        return actionConfig;
    }

    private ActionConfig configActionConfig() {
        ActionConfig result = newActionConfig();
        result.setClassName(AggregateConfigurationAction.class.getName());
        result.addResultConfig(new ResultConfig(Action.SUCCESS, XmlResult.class));
        result.addInterceptor(new InterceptorMapping("aggregateServer", new AggregateServerInterceptor()));
        return result;
    }

    public boolean needsReload() {
        return true;
    }

    public void destroy() {
    }
}
TOP

Related Classes of net.jsunit.JsUnitAggregateServerConfigurationProvider

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.