
com.liferay.gradle.plugins.internal.TestIntegrationDefaultsPlugin Maven / Gradle / Ivy
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
package com.liferay.gradle.plugins.internal;
import com.liferay.gradle.plugins.BaseDefaultsPlugin;
import com.liferay.gradle.plugins.LiferayOSGiPlugin;
import com.liferay.gradle.plugins.extensions.LiferayExtension;
import com.liferay.gradle.plugins.extensions.TomcatAppServer;
import com.liferay.gradle.plugins.internal.util.GradleUtil;
import com.liferay.gradle.plugins.test.integration.TestIntegrationPlugin;
import com.liferay.gradle.plugins.test.integration.TestIntegrationTomcatExtension;
import com.liferay.gradle.plugins.test.integration.task.SetUpTestableTomcatTask;
import com.liferay.gradle.plugins.test.integration.task.StartTestableTomcatTask;
import com.liferay.gradle.plugins.test.integration.task.StopAppServerTask;
import com.liferay.gradle.plugins.util.PortalTools;
import com.liferay.gradle.util.Validator;
import java.io.File;
import java.util.Arrays;
import java.util.List;
import java.util.concurrent.Callable;
import org.gradle.api.Action;
import org.gradle.api.Plugin;
import org.gradle.api.Project;
import org.gradle.api.Task;
import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.artifacts.DependencySet;
import org.gradle.api.plugins.ExtensionContainer;
import org.gradle.api.tasks.TaskProvider;
/**
* @author Andrea Di Giorgi
*/
public class TestIntegrationDefaultsPlugin
extends BaseDefaultsPlugin {
public static final Plugin INSTANCE =
new TestIntegrationDefaultsPlugin();
@Override
protected void applyPluginDefaults(
Project project, TestIntegrationPlugin testIntegrationPlugin) {
// Extensions
ExtensionContainer extensionContainer = project.getExtensions();
LiferayExtension liferayExtension = extensionContainer.getByType(
LiferayExtension.class);
TestIntegrationTomcatExtension testIntegrationTomcatExtension =
extensionContainer.getByType(TestIntegrationTomcatExtension.class);
TomcatAppServer tomcatAppServer =
(TomcatAppServer)liferayExtension.getAppServer("tomcat");
_configureExtensionTestIntegrationTomcat(
liferayExtension, testIntegrationTomcatExtension, tomcatAppServer);
// Configurations
ConfigurationContainer configurationContainer =
project.getConfigurations();
Configuration testModulesConfiguration =
configurationContainer.getByName(
TestIntegrationPlugin.TEST_MODULES_CONFIGURATION_NAME);
_configureConfigurationTestModules(project, testModulesConfiguration);
// Tasks
TaskProvider copyTestModulesTaskProvider =
GradleUtil.getTaskProvider(
project, TestIntegrationPlugin.COPY_TEST_MODULES_TASK_NAME);
TaskProvider setUpTestableTomcatTaskProvider =
GradleUtil.getTaskProvider(
project, TestIntegrationPlugin.SET_UP_TESTABLE_TOMCAT_TASK_NAME,
SetUpTestableTomcatTask.class);
TaskProvider startTestableTomcatTaskProvider =
GradleUtil.getTaskProvider(
project, TestIntegrationPlugin.START_TESTABLE_TOMCAT_TASK_NAME,
StartTestableTomcatTask.class);
TaskProvider stopTestableTomcatTaskProvider =
GradleUtil.getTaskProvider(
project, TestIntegrationPlugin.STOP_TESTABLE_TOMCAT_TASK_NAME,
StopAppServerTask.class);
_configureTaskCopyTestModulesProvider(copyTestModulesTaskProvider);
_configureTaskSetUpTestableTomcatProvider(
project, setUpTestableTomcatTaskProvider, tomcatAppServer);
_configureTaskStartTestableTomcatProvider(
project, startTestableTomcatTaskProvider, tomcatAppServer);
_configureTaskStopTestableTomcatProvider(
stopTestableTomcatTaskProvider, tomcatAppServer);
}
@Override
protected Class getPluginClass() {
return TestIntegrationPlugin.class;
}
private TestIntegrationDefaultsPlugin() {
}
private void _configureConfigurationTestModules(
final Project project, Configuration testModulesConfiguration) {
testModulesConfiguration.defaultDependencies(
new Action() {
@Override
public void execute(DependencySet dependencySet) {
String version = PortalTools.getPortalVersion(project);
if (PortalTools.PORTAL_VERSION_7_0_X.equals(version) ||
PortalTools.PORTAL_VERSION_7_1_X.equals(version) ||
PortalTools.PORTAL_VERSION_7_2_X.equals(version)) {
GradleUtil.addDependency(
project,
TestIntegrationPlugin.
TEST_MODULES_CONFIGURATION_NAME,
"com.liferay.portal",
"com.liferay.portal.test.integration", "3.0.0");
}
}
});
}
private void _configureExtensionTestIntegrationTomcat(
final LiferayExtension liferayExtension,
TestIntegrationTomcatExtension testIntegrationTomcatExtension,
final TomcatAppServer tomcatAppServer) {
testIntegrationTomcatExtension.setCheckPath(
new Callable() {
@Override
public String call() throws Exception {
return tomcatAppServer.getCheckPath();
}
});
testIntegrationTomcatExtension.setPortNumber(
new Callable() {
@Override
public Integer call() throws Exception {
return tomcatAppServer.getPortNumber();
}
});
testIntegrationTomcatExtension.setDir(
new Callable() {
@Override
public File call() throws Exception {
return tomcatAppServer.getDir();
}
});
testIntegrationTomcatExtension.setJmxRemotePort(
new Callable() {
@Override
public Integer call() throws Exception {
return liferayExtension.getJmxRemotePort();
}
});
testIntegrationTomcatExtension.setLiferayHome(
new Callable() {
@Override
public File call() throws Exception {
return liferayExtension.getLiferayHome();
}
});
testIntegrationTomcatExtension.setManagerPassword(
new Callable() {
@Override
public String call() throws Exception {
return tomcatAppServer.getManagerPassword();
}
});
testIntegrationTomcatExtension.setManagerUserName(
new Callable() {
@Override
public String call() throws Exception {
return tomcatAppServer.getManagerUserName();
}
});
}
private void _configureTaskCopyTestModulesProvider(
TaskProvider copyTestModulesTaskProvider) {
copyTestModulesTaskProvider.configure(
new Action() {
@Override
public void execute(Task copyTestModulesTask) {
GradleUtil.setProperty(
copyTestModulesTask,
LiferayOSGiPlugin.AUTO_CLEAN_PROPERTY_NAME, false);
}
});
}
private void _configureTaskSetUpTestableTomcatProvider(
final Project project,
TaskProvider setUpTestableTomcatTaskProvider,
final TomcatAppServer tomcatAppServer) {
setUpTestableTomcatTaskProvider.configure(
new Action() {
@Override
public void execute(
SetUpTestableTomcatTask setUpTestableTomcatTask) {
setUpTestableTomcatTask.setJaCoCoAgentConfiguration(
GradleUtil.getProperty(
project, "jacoco.agent.configuration",
(String)null));
setUpTestableTomcatTask.setJaCoCoAgentFile(
GradleUtil.getProperty(
project, "jacoco.agent.jar", (String)null));
setUpTestableTomcatTask.setAspectJAgent(
GradleUtil.getProperty(
project, "aspectj.agent", (String)null));
setUpTestableTomcatTask.setAspectJConfiguration(
GradleUtil.getProperty(
project, "aspectj.configuration", (String)null));
setUpTestableTomcatTask.setZipUrl(
new Callable() {
@Override
public String call() throws Exception {
return tomcatAppServer.getZipUrl();
}
});
}
});
}
private void _configureTaskStartTestableTomcatProvider(
final Project project,
TaskProvider startTestableTomcatTaskProvider,
final TomcatAppServer tomcatAppServer) {
startTestableTomcatTaskProvider.configure(
new Action() {
@Override
public void execute(
StartTestableTomcatTask startTestableTomcatTask) {
Object checkTimeout = GradleUtil.getProperty(
project, "timeout.app.server.wait");
if (checkTimeout != null) {
startTestableTomcatTask.setCheckTimeout(
GradleUtil.toInteger(checkTimeout) * 1000);
}
startTestableTomcatTask.setExecutable(
new Callable() {
@Override
public String call() throws Exception {
return tomcatAppServer.getStartExecutable();
}
});
startTestableTomcatTask.setExecutableArgs(
new Callable>() {
@Override
public List call() throws Exception {
String argLine = System.getProperty(
"app.server.start.executable.arg.line");
if (Validator.isNotNull(argLine)) {
return Arrays.asList(argLine.split(" "));
}
return tomcatAppServer.getStartExecutableArgs();
}
});
}
});
}
private void _configureTaskStopTestableTomcatProvider(
TaskProvider stopTestableTomcatTaskProvider,
final TomcatAppServer tomcatAppServer) {
stopTestableTomcatTaskProvider.configure(
new Action() {
@Override
public void execute(StopAppServerTask stopAppServerTask) {
stopAppServerTask.setExecutable(
new Callable() {
@Override
public String call() throws Exception {
return tomcatAppServer.getStopExecutable();
}
});
stopAppServerTask.setExecutableArgs(
new Callable>() {
@Override
public List call() throws Exception {
return tomcatAppServer.getStopExecutableArgs();
}
});
}
});
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy