Compare commits
11 Commits
bugfix/pat
...
patch/7.2.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fddff3b8ad | ||
|
|
acdf127890 | ||
|
|
453ac0377b | ||
|
|
0d4d9c4940 | ||
|
|
963f90ad22 | ||
|
|
0301920131 | ||
|
|
ab7c0c0833 | ||
|
|
4a1e06e010 | ||
|
|
8ff0e806cf | ||
|
|
3149ac1e6b | ||
|
|
8f513789aa |
@@ -21,6 +21,7 @@ import org.eclipse.swt.SWT;
|
||||
import org.eclipse.swt.graphics.Image;
|
||||
import org.eclipse.swt.graphics.Point;
|
||||
import org.eclipse.swt.layout.GridData;
|
||||
import org.eclipse.swt.widgets.Button;
|
||||
import org.eclipse.swt.widgets.Composite;
|
||||
import org.eclipse.swt.widgets.Control;
|
||||
import org.eclipse.swt.widgets.Shell;
|
||||
@@ -38,6 +39,8 @@ public class ExceptionMessageDialog extends MessageDialog {
|
||||
|
||||
private String exceptionString = null;
|
||||
|
||||
private int[] diabledButtonIndex = new int[] {};
|
||||
|
||||
public ExceptionMessageDialog(Shell parentShell, String dialogTitle, Image dialogTitleImage, String dialogMessage,
|
||||
int dialogImageType, String[] dialogButtonLabels, int defaultIndex, Throwable ex) {
|
||||
super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels, defaultIndex);
|
||||
@@ -147,4 +150,21 @@ public class ExceptionMessageDialog extends MessageDialog {
|
||||
this.exceptionString = exceptionString;
|
||||
}
|
||||
|
||||
public void setDisabledButtons(int[] index) {
|
||||
this.diabledButtonIndex = index;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void createButtonsForButtonBar(Composite parent) {
|
||||
super.createButtonsForButtonBar(parent);
|
||||
if (diabledButtonIndex == null) {
|
||||
return;
|
||||
}
|
||||
for (int index : diabledButtonIndex) {
|
||||
Button button = super.getButton(index);
|
||||
button.setEnabled(false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -14,6 +14,7 @@ package org.talend.core.repository.recyclebin;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
@@ -24,6 +25,7 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.runtime.IPath;
|
||||
import org.eclipse.emf.common.util.EList;
|
||||
@@ -106,7 +108,8 @@ public class RecycleBinManager {
|
||||
List<IRepositoryViewObject> deletedObjects = new ArrayList<IRepositoryViewObject>();
|
||||
final EList<TalendItem> deletedItems = projectRecyclebins.get(project.getTechnicalLabel()).getDeletedItems();
|
||||
List<TalendItem> notDeletedItems = new ArrayList<TalendItem>();
|
||||
for (TalendItem deletedItem : deletedItems) {
|
||||
List<TalendItem> dup_deletedItems = new ArrayList<>(deletedItems);
|
||||
for (TalendItem deletedItem : dup_deletedItems) {
|
||||
try {
|
||||
final ERepositoryObjectType type = ERepositoryObjectType.getType(deletedItem.getType());
|
||||
// ignore the generated doc in recycle bin
|
||||
@@ -274,7 +277,40 @@ public class RecycleBinManager {
|
||||
resource = createRecycleBinResource(project);
|
||||
}
|
||||
resource.getContents().clear();
|
||||
recycleBin.setLastUpdate(new Date());
|
||||
EList<String> deletedFolders = recycleBin.getDeletedFolders();
|
||||
if (deletedFolders != null) {
|
||||
List<String> folders = new LinkedList<>(deletedFolders);
|
||||
Collections.sort(folders);
|
||||
deletedFolders.clear();
|
||||
deletedFolders.addAll(folders);
|
||||
}
|
||||
EList<TalendItem> deletedItems = recycleBin.getDeletedItems();
|
||||
if (deletedItems != null) {
|
||||
List<TalendItem> items = new LinkedList<>(deletedItems);
|
||||
items.sort((l, r) -> {
|
||||
if (l == null && r == null) {
|
||||
return 0;
|
||||
} else if (l == null) {
|
||||
return -1;
|
||||
} else if (r == null) {
|
||||
return 1;
|
||||
}
|
||||
int result = StringUtils.compare(l.getType(), r.getType());
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
result = StringUtils.compare(l.getPath(), r.getPath());
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
return StringUtils.compare(l.getId(), r.getId());
|
||||
});
|
||||
deletedItems.clear();
|
||||
deletedItems.addAll(items);
|
||||
}
|
||||
|
||||
// set date to null to avoid timezone conflict
|
||||
recycleBin.setLastUpdate(null);
|
||||
resource.getContents().add(recycleBin);
|
||||
EmfHelper.saveResource(resource);
|
||||
lastSavedRecycleBinMap.put(recycleBin, EcoreUtil.copy(recycleBin));
|
||||
|
||||
@@ -427,6 +427,11 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
|
||||
*/
|
||||
public final static ERepositoryObjectType JOBLET = ERepositoryObjectType.valueOf("JOBLET"); //$NON-NLS-1$
|
||||
|
||||
/**
|
||||
* <font color="red">This value may be <b>null</b> in some products, <b>should add NPE check</b></font>
|
||||
*/
|
||||
public final static ERepositoryObjectType SERVICES = ERepositoryObjectType.valueOf("SERVICES"); //$NON-NLS-1$
|
||||
|
||||
public final static ERepositoryObjectType JOBLET_DESIGNS = ERepositoryObjectType.valueOf("JOBLET_DESIGNS"); //$NON-NLS-1$
|
||||
|
||||
public final static ERepositoryObjectType SPARK_JOBLET = ERepositoryObjectType.valueOf("SPARK_JOBLET"); //$NON-NLS-1$
|
||||
@@ -439,6 +444,8 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
|
||||
|
||||
public final static ERepositoryObjectType ROUTINES = ERepositoryObjectType.valueOf("ROUTINES"); //$NON-NLS-1$
|
||||
|
||||
public final static ERepositoryObjectType BEANS = ERepositoryObjectType.valueOf("BEANS"); //$NON-NLS-1$
|
||||
|
||||
public final static ERepositoryObjectType METADATA_HEADER_FOOTER = ERepositoryObjectType.valueOf("METADATA_HEADER_FOOTER"); //$NON-NLS-1$
|
||||
|
||||
public final static ERepositoryObjectType JOB_SCRIPT = ERepositoryObjectType.valueOf("JOB_SCRIPT"); //$NON-NLS-1$
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.eclipse.jdt.core.IJavaProject;
|
||||
import org.eclipse.jface.action.IAction;
|
||||
import org.eclipse.jface.preference.IPreferenceStore;
|
||||
import org.eclipse.jface.viewers.IStructuredSelection;
|
||||
import org.talend.core.GlobalServiceRegister;
|
||||
import org.talend.core.IService;
|
||||
import org.talend.core.language.ECodeLanguage;
|
||||
import org.talend.core.language.ICodeProblemsChecker;
|
||||
@@ -239,6 +240,12 @@ public interface IRunProcessService extends IService {
|
||||
public void handleJobDependencyLoop(JobInfo mainJobInfo, List<JobInfo> listJobs, IProgressMonitor progressMonitor)
|
||||
throws Exception;
|
||||
|
||||
public boolean isCIMode();
|
||||
public static IRunProcessService get() {
|
||||
if (GlobalServiceRegister.getDefault().isServiceRegistered(IRunProcessService.class)) {
|
||||
return GlobalServiceRegister.getDefault().getService(IRunProcessService.class);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public boolean isCIMode();
|
||||
}
|
||||
|
||||
@@ -21,6 +21,7 @@ import java.util.Locale;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.eclipse.core.resources.IFile;
|
||||
import org.eclipse.core.resources.IProject;
|
||||
import org.eclipse.core.resources.ResourcesPlugin;
|
||||
@@ -91,11 +92,14 @@ public final class ProjectManager {
|
||||
|
||||
private Set<Object> updatedRemoteHandlerRecords;
|
||||
|
||||
private Set<Project> tempProjects;
|
||||
|
||||
private ProjectManager() {
|
||||
beforeLogonRecords = new HashSet<String>();
|
||||
logonRecords = new HashSet<String>();
|
||||
migrationRecords = new HashSet<String>();
|
||||
updatedRemoteHandlerRecords = new HashSet<Object>();
|
||||
tempProjects = new HashSet<>();
|
||||
initCurrentProject();
|
||||
}
|
||||
|
||||
@@ -106,6 +110,18 @@ public final class ProjectManager {
|
||||
return singleton;
|
||||
}
|
||||
|
||||
public void clearTempProjects() {
|
||||
tempProjects.clear();
|
||||
}
|
||||
|
||||
public boolean removeTempProject(Project project) {
|
||||
return tempProjects.remove(project);
|
||||
}
|
||||
|
||||
public boolean addTempProject(Project project) {
|
||||
return tempProjects.add(project);
|
||||
}
|
||||
|
||||
public Project getProjectFromProjectLabel(String label) {
|
||||
if (currentProject == null) {
|
||||
initCurrentProject();
|
||||
@@ -119,6 +135,12 @@ public final class ProjectManager {
|
||||
return project;
|
||||
}
|
||||
}
|
||||
|
||||
for (Project project : tempProjects) {
|
||||
if (StringUtils.equals(project.getLabel(), label)) {
|
||||
return project;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
@@ -136,6 +158,11 @@ public final class ProjectManager {
|
||||
return project;
|
||||
}
|
||||
}
|
||||
for (Project project : tempProjects) {
|
||||
if (StringUtils.equals(project.getTechnicalLabel(), label)) {
|
||||
return project;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -33,6 +33,8 @@ public class RepositoryConstants {
|
||||
|
||||
public static final String PROJECT_BRANCH_ID = "repository.project.branch"; //$NON-NLS-1$
|
||||
|
||||
public static final String PROJECT_ID = "repository.project.id";
|
||||
|
||||
public static final String IMG_DIRECTORY = "images"; //$NON-NLS-1$
|
||||
|
||||
public static final String IMG_DIRECTORY_OF_JOB_OUTLINE = "images/job_outlines"; //$NON-NLS-1$
|
||||
|
||||
@@ -32,6 +32,7 @@ import org.talend.designer.maven.template.AbstractMavenTemplateManager;
|
||||
import org.talend.designer.maven.template.MavenTemplateManager;
|
||||
import org.talend.designer.maven.tools.extension.PomExtensionRegistry;
|
||||
import org.talend.designer.maven.ui.DesignerMavenUiPlugin;
|
||||
import org.talend.designer.maven.utils.PomUtil;
|
||||
|
||||
/**
|
||||
* DOC ggu class global comment. Detailled comment
|
||||
@@ -68,6 +69,7 @@ public class MavenScriptsProjectSettingInitializer extends AbstractProjectPrefer
|
||||
Model model = MavenPlugin.getMavenModelManager().readMavenModel(stream);
|
||||
PomExtensionRegistry.getInstance().updatePomTemplate(model);
|
||||
ByteArrayOutputStream out = new ByteArrayOutputStream();
|
||||
PomUtil.sortModules(model);
|
||||
MavenPlugin.getMaven().writeModel(model, out);
|
||||
String content = out.toString(TalendMavenConstants.DEFAULT_ENCODING);
|
||||
if (content != null) {
|
||||
|
||||
@@ -655,12 +655,13 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
|
||||
ERepositoryObjectType.getAllTypesOfCodes().forEach(t -> dependencies.addAll(PomUtil.getCodesDependencies(t)));
|
||||
|
||||
// libraries of talend/3rd party
|
||||
dependencies.addAll(convertToDistinctedJobDependencies(currentJobProperty.getId(), currentJobProperty.getVersion(),
|
||||
processor.getNeededModules(TalendProcessOptionConstants.MODULES_EXCLUDE_SHADED)));
|
||||
dependencies.addAll(processor.getNeededModules(TalendProcessOptionConstants.MODULES_EXCLUDE_SHADED).stream()
|
||||
.filter(m -> !m.isExcluded()).map(m -> createDenpendency(m, false)).collect(Collectors.toSet()));
|
||||
|
||||
// missing modules from the job generation of children
|
||||
childrenJobInfo.forEach(j -> dependencies.addAll(convertToDistinctedJobDependencies(j.getJobId(), j.getJobVersion(),
|
||||
LastGenerationInfo.getInstance().getModulesNeededPerJob(j.getJobId(), j.getJobVersion()))));
|
||||
childrenJobInfo.forEach(j -> dependencies
|
||||
.addAll(LastGenerationInfo.getInstance().getModulesNeededPerJob(j.getJobId(), j.getJobVersion()).stream()
|
||||
.filter(m -> !m.isExcluded()).map(m -> createDenpendency(m, false)).collect(Collectors.toSet())));
|
||||
|
||||
Set<ModuleNeeded> modules = new HashSet<>();
|
||||
// testcase modules from current job (optional)
|
||||
@@ -732,6 +733,8 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
|
||||
|
||||
// remove duplicate job dependencies and only keep the latest one
|
||||
// keep high priority dependencies if set by tLibraryLoad
|
||||
// FIXME not used now since tacokit component use specific dependency version. so we must include all job dependencies.
|
||||
// but problem will remain for CI when need to download jars from nexus, maven will only resolve one of them.
|
||||
private Set<Dependency> convertToDistinctedJobDependencies(String jobId, String jobVersion, Set<ModuleNeeded> neededModules) {
|
||||
Set<Dependency> highPriorityDependencies = LastGenerationInfo.getInstance()
|
||||
.getHighPriorityModuleNeededPerJob(jobId, jobVersion).stream().map(m -> createDenpendency(m, false))
|
||||
|
||||
@@ -45,6 +45,7 @@ import org.talend.core.model.relationship.RelationshipItemBuilder;
|
||||
import org.talend.core.model.repository.ERepositoryObjectType;
|
||||
import org.talend.core.model.repository.IRepositoryViewObject;
|
||||
import org.talend.core.repository.model.ProxyRepositoryFactory;
|
||||
import org.talend.core.runtime.maven.MavenConstants;
|
||||
import org.talend.core.runtime.process.ITalendProcessJavaProject;
|
||||
import org.talend.core.runtime.process.TalendProcessArgumentConstant;
|
||||
import org.talend.core.runtime.process.TalendProcessOptionConstants;
|
||||
@@ -53,6 +54,7 @@ import org.talend.core.runtime.projectsetting.IProjectSettingTemplateConstants;
|
||||
import org.talend.designer.maven.model.TalendMavenConstants;
|
||||
import org.talend.designer.maven.template.MavenTemplateManager;
|
||||
import org.talend.designer.maven.tools.AggregatorPomsHelper;
|
||||
import org.talend.designer.maven.utils.PomIdsHelper;
|
||||
import org.talend.designer.maven.utils.PomUtil;
|
||||
import org.talend.designer.runprocess.IProcessor;
|
||||
import org.talend.repository.model.IProxyRepositoryFactory;
|
||||
@@ -228,7 +230,25 @@ public class CreateMavenStandardJobOSGiPom extends CreateMavenJobPom {
|
||||
// add children jobs
|
||||
Set<JobInfo> childrenJobInfo = getJobProcessor().getBuildChildrenJobs();
|
||||
for (JobInfo jobInfo : childrenJobInfo) {
|
||||
jobCoordinate.add(getJobCoordinate(jobInfo.getProcessItem().getProperty()));
|
||||
Property property = jobInfo.getProcessItem().getProperty();
|
||||
|
||||
String bundle = "";
|
||||
|
||||
if (!jobInfo.isJoblet()) {
|
||||
property = jobInfo.getProcessItem().getProperty();
|
||||
if ("OSGI".equals(property.getAdditionalProperties().get(TalendProcessArgumentConstant.ARG_BUILD_TYPE))) {
|
||||
bundle = "-bundle";
|
||||
}
|
||||
}
|
||||
|
||||
String coordinate = getCoordinate(
|
||||
PomIdsHelper.getJobGroupId(property),
|
||||
PomIdsHelper.getJobArtifactId(jobInfo) + bundle,
|
||||
MavenConstants.PACKAGING_JAR,
|
||||
PomIdsHelper.getJobVersion(property),
|
||||
null);
|
||||
|
||||
jobCoordinate.add(coordinate);
|
||||
}
|
||||
}
|
||||
// add current job
|
||||
|
||||
@@ -29,6 +29,7 @@ import java.util.Collections;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.LinkedHashSet;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Properties;
|
||||
@@ -138,6 +139,7 @@ public class PomUtil {
|
||||
* copied the codes from createMavenModel of MavenModelManager
|
||||
*/
|
||||
ByteArrayOutputStream buf = new ByteArrayOutputStream();
|
||||
sortModules(model);
|
||||
MavenPlugin.getMaven().writeModel(model, buf);
|
||||
|
||||
ByteArrayInputStream source = new ByteArrayInputStream(buf.toByteArray());
|
||||
@@ -159,6 +161,7 @@ public class PomUtil {
|
||||
properties.putAll(model.getProperties());
|
||||
model.setProperties(properties);
|
||||
ByteArrayOutputStream buf = new ByteArrayOutputStream();
|
||||
sortModules(model);
|
||||
MavenPlugin.getMaven().writeModel(model, buf);
|
||||
|
||||
ByteArrayInputStream source = new ByteArrayInputStream(buf.toByteArray());
|
||||
@@ -180,6 +183,17 @@ public class PomUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public static void sortModules(Model model) {
|
||||
if (model != null) {
|
||||
List<String> modules = model.getModules();
|
||||
if (modules != null && !modules.isEmpty()) {
|
||||
List<String> sortedModules = new LinkedList<>(modules);
|
||||
Collections.sort(sortedModules);
|
||||
model.setModules(sortedModules);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void safeClose(Closeable stream) {
|
||||
try {
|
||||
if (stream != null) {
|
||||
@@ -619,7 +633,9 @@ public class PomUtil {
|
||||
File pomFile = new File(baseFolder, TalendMavenConstants.POM_FILE_NAME);
|
||||
|
||||
ByteArrayOutputStream buf = new ByteArrayOutputStream();
|
||||
MavenPlugin.getMaven().writeModel(createModel(artifact), buf);
|
||||
Model model = createModel(artifact);
|
||||
sortModules(model);
|
||||
MavenPlugin.getMaven().writeModel(model, buf);
|
||||
|
||||
DocumentBuilderFactory documentBuilderFactory = XmlUtils.getSecureDocumentBuilderFactory();
|
||||
documentBuilderFactory.setNamespaceAware(false);
|
||||
|
||||
@@ -29,6 +29,7 @@ import org.talend.core.PluginChecker;
|
||||
import org.talend.core.hadoop.IHadoopClusterService;
|
||||
import org.talend.core.hadoop.repository.HadoopRepositoryUtil;
|
||||
import org.talend.core.model.properties.Item;
|
||||
import org.talend.core.model.properties.ItemState;
|
||||
import org.talend.core.model.properties.Project;
|
||||
import org.talend.core.model.repository.ERepositoryObjectType;
|
||||
import org.talend.core.ui.ITestContainerProviderService;
|
||||
@@ -234,9 +235,12 @@ public class ImportNodesBuilder {
|
||||
parentImportNode = findAndCreateFolderNode(typeImportNode, path);
|
||||
parentImportNode.setItemRecord(itemRecord);
|
||||
} else {
|
||||
String path = item.getState().getPath();
|
||||
if (StringUtils.isNotEmpty(path)) { // if has path, will find the real path node.
|
||||
parentImportNode = findAndCreateFolderNode(typeImportNode, new Path(path));
|
||||
ItemState state = item.getState();
|
||||
if (state != null) {
|
||||
String path = state.getPath();
|
||||
if (StringUtils.isNotEmpty(path)) { // if has path, will find the real path node.
|
||||
parentImportNode = findAndCreateFolderNode(typeImportNode, new Path(path));
|
||||
}
|
||||
}
|
||||
ItemImportNode itemNode = new ItemImportNode(itemRecord);
|
||||
parentImportNode.addChild(itemNode);
|
||||
|
||||
@@ -28,6 +28,7 @@ import java.util.Iterator;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
|
||||
import org.apache.commons.collections.keyvalue.MultiKey;
|
||||
@@ -899,6 +900,14 @@ public class LocalRepositoryFactory extends AbstractEMFRepositoryFactory impleme
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Avoid conflicts between different timezone
|
||||
*/
|
||||
Optional.ofNullable(project).map(p -> p.getEmfProject()).ifPresent(p -> {
|
||||
p.setCreationDate(null);
|
||||
p.setDeleteDate(null);
|
||||
});
|
||||
|
||||
xmiResourceManager.saveResource(projectResource);
|
||||
project.getEmfProject().getMigrationTask().addAll(realMigrationTaskList);
|
||||
ProjectDataJsonProvider.saveProjectData(project.getEmfProject());
|
||||
@@ -3066,7 +3075,7 @@ public class LocalRepositoryFactory extends AbstractEMFRepositoryFactory impleme
|
||||
public void createUser(Project project) throws PersistenceException {
|
||||
Resource projectResource = project.getEmfProject().eResource();
|
||||
projectResource.getContents().add(getRepositoryContext().getUser());
|
||||
xmiResourceManager.saveResource(projectResource);
|
||||
saveProject(project);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -71,21 +71,6 @@ public class VersionUtilsTest {
|
||||
assertEquals(talendVersion, VersionUtils.getMojoVersion("ci.builder.version"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testGetPluginVersion__MojoProperties() throws Exception {
|
||||
String talendVersion = VersionUtils.getTalendVersion();
|
||||
assertEquals(talendVersion + "-SNAPSHOT", VersionUtils.getMojoVersion("ci.builder.version"));
|
||||
if (mojo_properties.exists()) {
|
||||
mojo_properties.delete();
|
||||
}
|
||||
mojo_properties.createNewFile();
|
||||
setPropertiesValue(mojo_properties, "ci.builder.version", talendVersion + "-patch1");
|
||||
assertEquals(talendVersion + "-patch1", VersionUtils.getMojoVersion("ci.builder.version"));
|
||||
|
||||
setPropertiesValue(mojo_properties, "ci.builder.version", "6.0.0");
|
||||
assertEquals(talendVersion + "-SNAPSHOT", VersionUtils.getMojoVersion("ci.builder.version"));
|
||||
}
|
||||
|
||||
private void setPropertiesValue(File propertiesFile, String key, String value) throws Exception {
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty(key, value);
|
||||
|
||||
Reference in New Issue
Block a user