blob: 83a5510213c2e87e2e6dc18710ed1088e4e90d4e [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.rampart.samples.runner;
import java.io.File;
import org.apache.tools.ant.BuildLogger;
import org.apache.tools.ant.Project;
import org.apache.tools.ant.ProjectHelper;
final class Sample {
private final String group;
private final String sampleId;
Sample(String group, String sampleId) {
this.group = group;
this.sampleId = sampleId;
}
private void run(BuildLogger logger, int port, String target) {
Project project = new Project();
File targetDir = new File("target");
project.setUserProperty("env.AXIS2_HOME", new File(targetDir, "axis2").getAbsolutePath());
project.setUserProperty("build.dir", new File(targetDir, "build").getAbsolutePath());
project.setUserProperty("client.port", String.valueOf(port));
project.setUserProperty("server.port", String.valueOf(port));
StringBuilder vmargs = new StringBuilder();
vmargs.append("-Dlog4j.configuration=");
vmargs.append(new File("src/test/conf/log4j.properties").getAbsoluteFile().toURI().toString());
String jacocoArgLineTemplate = System.getProperty("jacoco.argLineTemplate");
if (jacocoArgLineTemplate != null) {
vmargs.append(" ");
vmargs.append(jacocoArgLineTemplate.replace("@id@", group + ":" + target));
}
project.setUserProperty("vmargs", vmargs.toString());
ProjectHelper.configureProject(project, new File(group + "/build.xml"));
project.addBuildListener(logger);
project.executeTarget(target);
}
void runServer(BuildLogger logger, int port) {
run(logger, port, "service." + sampleId);
}
void runClient(BuildLogger logger, int port) {
run(logger, port, "client." + sampleId);
}
}