/**
* Copyright (c) 2000-present Liferay, Inc. All rights reserved.
*
* This library is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version.
*
* This library 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.
*/
package com.liferay.gradle.plugins.upgrade.table.builder;
import com.liferay.gradle.util.FileUtil;
import com.liferay.gradle.util.GradleUtil;
import com.liferay.portal.tools.upgrade.table.builder.UpgradeTableBuilderArgs;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import org.gradle.api.tasks.Input;
import org.gradle.api.tasks.InputDirectory;
import org.gradle.api.tasks.InputFile;
import org.gradle.api.tasks.JavaExec;
import org.gradle.api.tasks.Optional;
/**
* @author Andrea Di Giorgi
*/
public class BuildUpgradeTableTask extends JavaExec {
public BuildUpgradeTableTask() {
setMain(
"com.liferay.portal.tools.upgrade.table.builder." +
"UpgradeTableBuilder");
}
@Override
public void exec() {
setArgs(_getCompleteArgs());
super.exec();
}
@InputDirectory
public File getBaseDir() {
return GradleUtil.toFile(getProject(), _baseDir);
}
@InputFile
@Optional
public File getReleaseInfoFile() {
return GradleUtil.toFile(getProject(), _releaseInfoFile);
}
@InputDirectory
public File getUpgradeTableDir() {
return GradleUtil.toFile(getProject(), _upgradeTableDir);
}
@Input
public boolean isOsgiModule() {
return _osgiModule;
}
public void setBaseDir(Object baseDir) {
_baseDir = baseDir;
}
public void setOsgiModule(boolean osgiModule) {
_osgiModule = osgiModule;
}
public void setReleaseInfoFile(Object releaseInfoFile) {
_releaseInfoFile = releaseInfoFile;
}
public void setUpgradeTableDir(Object upgradeTableDir) {
_upgradeTableDir = upgradeTableDir;
}
private List<String> _getCompleteArgs() {
List<String> args = new ArrayList<>(getArgs());
args.add("upgrade.base.dir=" + FileUtil.getAbsolutePath(getBaseDir()));
args.add("upgrade.osgi.module=" + isOsgiModule());
File releaseInfoFile = getReleaseInfoFile();
if (releaseInfoFile != null) {
args.add(
"upgrade.release.info.file=" +
FileUtil.getAbsolutePath(releaseInfoFile));
}
args.add(
"upgrade.table.dir=" +
FileUtil.getAbsolutePath(getUpgradeTableDir()));
return args;
}
private Object _baseDir = UpgradeTableBuilderArgs.BASE_DIR_NAME;
private boolean _osgiModule = UpgradeTableBuilderArgs.OSGI_MODULE;
private Object _releaseInfoFile;
private Object _upgradeTableDir;
}