Compare commits

...

3 Commits

Author SHA1 Message Date
Hongchun Yi
97376373e2 fix(TUP-34593):Cannot connect to Salesforce with password starting with
double-quotes
2022-02-28 21:39:38 +08:00
hcyi
752446520d fix(TUP-34593):Cannot connect to Salesforce with password starting with double-quotes (#5069)
* fix(TUP-34593):Cannot connect to Salesforce with password starting with
double-quotes

* fix(TUP-34593):Cannot connect to Salesforce with password starting with
double-quotes
2022-02-25 17:41:10 +08:00
Jill Yan
00610214ac revert APPINT-34310 (#5073)
Co-authored-by: jillyan <yan955599@gmail.com>
2022-02-25 15:56:08 +08:00
3 changed files with 83 additions and 100 deletions

View File

@@ -654,84 +654,12 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
Set<String> talendLibCoordinate = new HashSet<>();
Set<String> _3rdLibCoordinate = new HashSet<>();
Map<String, Set<Dependency>> duplicateLibs = new HashMap<>();
Set<Dependency> parentJobDependencies = new HashSet<Dependency>();
IProcessor processor = getJobProcessor();
Map<String, Object> processorArgs = processor.getArguments();
boolean buidTypeAsMs = false;
boolean needLauncher = false;
for (Map.Entry<String, Object> entry : processorArgs.entrySet()) {
String key = entry.getKey();
Object val = entry.getValue();
if (!buidTypeAsMs && TalendProcessArgumentConstant.ARG_BUILD_TYPE.equals(key)
&& ("ROUTE_MICROSERVICE".equals(val) || "REST_MS".equals(val))) {
buidTypeAsMs = true;
}
if (!needLauncher && TalendProcessArgumentConstant.ARG_NEED_LAUNCHER.equals(key)
&& Boolean.TRUE.equals(val)) {
needLauncher = true;
}
}
boolean isBuildAsMsZip = buidTypeAsMs && needLauncher;
// talend libraries and codes
List<Dependency> dependencies = new ArrayList<>();
Set<ModuleNeeded> modules = new HashSet<>();
// current job
// current job
Property currentJobProperty = processor.getProperty();
jobCoordinate.add(getJobCoordinate(currentJobProperty));
if(!isBuildAsMsZip) {
// codes
List<Dependency> codeDependencies = new ArrayList<>();
addCodesDependencies(codeDependencies);
// codesjar
codeDependencies.addAll(getCodesJarDependenciesFromChildren());
dependencies.addAll(codeDependencies);
// codes dependencies (optional)
ERepositoryObjectType.getAllTypesOfCodes().forEach(t -> dependencies.addAll(PomUtil.getCodesDependencies(t)));
// libraries of talend/3rd party
parentJobDependencies = processor
.getNeededModules(
TalendProcessOptionConstants.MODULES_EXCLUDE_SHADED | TalendProcessOptionConstants.MODULES_WITH_CODESJAR)
.stream()
.filter(m -> !m.isExcluded()).map(m -> createDenpendency(m, false))
.collect(Collectors.toSet());
dependencies.addAll(parentJobDependencies);
// get codesjar libraries from related joblets
dependencies.addAll(processor.getCodesJarModulesNeededOfJoblets().stream().map(m -> createDenpendency(m, false))
.collect(Collectors.toSet()));
// testcase modules from current job (optional)
modules.addAll(ProcessorDependenciesManager.getTestcaseNeededModules(currentJobProperty));
dependencies.addAll(
modules.stream().filter(m -> !m.isExcluded()).map(m -> createDenpendency(m, true)).collect(Collectors.toSet()));
dependencies.stream().filter(d -> !MavenConstants.PACKAGING_POM.equals(d.getType())).forEach(d -> {
String coordinate = getCoordinate(d);
String groupId = d.getGroupId();
boolean optional = ((SortableDependency) d).isAssemblyOptional();
if (jobCoordinate.contains(coordinate) || talendLibCoordinate.contains(coordinate)
|| _3rdLibCoordinate.contains(coordinate)) {
return;
}
if (MavenConstants.DEFAULT_LIB_GROUP_ID.equals(groupId) || codeDependencies.contains(d)) {
if (!optional) {
talendLibCoordinate.add(coordinate);
}
} else {
if (!optional) {
_3rdLibCoordinate.add(coordinate);
}
addToDuplicateLibs(duplicateLibs, d);
}
});
}
// children jobs without test cases
Set<JobInfo> childrenJobInfo = processor.getBuildChildrenJobs().stream().filter(j -> !j.isTestContainer())
.collect(Collectors.toSet());
@@ -739,6 +667,30 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
childrenJobInfo.forEach(j -> jobCoordinate.add(getJobCoordinate(j.getProcessItem().getProperty())));
}
// talend libraries and codes
List<Dependency> dependencies = new ArrayList<>();
List<Dependency> codeDependencies = new ArrayList<>();
// codes
addCodesDependencies(codeDependencies);
// codesjar
codeDependencies.addAll(getCodesJarDependenciesFromChildren());
// codes dependencies (optional)
ERepositoryObjectType.getAllTypesOfCodes().forEach(t -> dependencies.addAll(PomUtil.getCodesDependencies(t)));
dependencies.addAll(codeDependencies);
// libraries of talend/3rd party
Set<Dependency> parentJobDependencies = processor
.getNeededModules(
TalendProcessOptionConstants.MODULES_EXCLUDE_SHADED | TalendProcessOptionConstants.MODULES_WITH_CODESJAR)
.stream()
.filter(m -> !m.isExcluded()).map(m -> createDenpendency(m, false))
.collect(Collectors.toSet());
dependencies.addAll(parentJobDependencies);
// get codesjar libraries from related joblets
dependencies.addAll(processor.getCodesJarModulesNeededOfJoblets().stream().map(m -> createDenpendency(m, false))
.collect(Collectors.toSet()));
// missing modules from the job generation of children
Map<String, Set<Dependency>> childjobDependencies = new HashMap<String, Set<Dependency>>();
childrenJobInfo.forEach(j -> {
@@ -747,15 +699,40 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
LastGenerationInfo.getInstance().getCodesJarModulesNeededPerJob(j.getJobId(), j.getJobVersion())
.stream())
.filter(m -> !m.isExcluded()).map(m -> createDenpendency(m, false)).collect(Collectors.toSet());
if(!isBuildAsMsZip) {
dependencies.addAll(collectDependency);
}
dependencies.addAll(collectDependency);
childjobDependencies.put(j.getJobId(), collectDependency);});
Set<ModuleNeeded> modules = new HashSet<>();
// testcase modules from current job (optional)
modules.addAll(ProcessorDependenciesManager.getTestcaseNeededModules(currentJobProperty));
// testcase modules from children job (optional)
childrenJobInfo.forEach(
j -> modules.addAll(ProcessorDependenciesManager.getTestcaseNeededModules(j.getProcessItem().getProperty())));
dependencies.addAll(
modules.stream().filter(m -> !m.isExcluded()).map(m -> createDenpendency(m, true)).collect(Collectors.toSet()));
dependencies.stream().filter(d -> !MavenConstants.PACKAGING_POM.equals(d.getType())).forEach(d -> {
String coordinate = getCoordinate(d);
String groupId = d.getGroupId();
boolean optional = ((SortableDependency) d).isAssemblyOptional();
if (jobCoordinate.contains(coordinate) || talendLibCoordinate.contains(coordinate)
|| _3rdLibCoordinate.contains(coordinate)) {
return;
}
if (MavenConstants.DEFAULT_LIB_GROUP_ID.equals(groupId) || codeDependencies.contains(d)) {
if (!optional) {
talendLibCoordinate.add(coordinate);
}
} else {
if (!optional) {
_3rdLibCoordinate.add(coordinate);
}
addToDuplicateLibs(duplicateLibs, d);
}
});
Iterator<String> iterator = duplicateLibs.keySet().iterator();
while (iterator.hasNext()) {
Set<Dependency> dupDependencies = duplicateLibs.get(iterator.next());
@@ -774,28 +751,25 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
try {
Document document = PomUtil.loadAssemblyFile(null, assemblyFile);
if(!isBuildAsMsZip) {
// add talend libs & codes
setupDependencySetNode(document, talendLibCoordinate, "lib", "${artifact.artifactId}.${artifact.extension}", false,
false, false);
// add 3rd party libs: groupId:artifactId:type:version
setupDependencySetNode(document,
_3rdLibCoordinate.stream().filter(s -> s.split(":").length == 4).collect(Collectors.toSet()), "lib", null,
false, false, false);
// add 3rd party libs with classifier: groupId:artifactId:type:classifier:version
setupDependencySetNode(document,
_3rdLibCoordinate.stream().filter(s -> s.split(":").length == 5).collect(Collectors.toSet()), "lib", null,
false, false, false);
// FIXME if later add classifier for org.talend.libraries libs, code and job artifact, need to handle it
// like 3rd libs as well
// add duplicate dependencies if exists
setupFileNode(document, parentJobDependencies, childjobDependencies, duplicateLibs);
}
// add talend libs & codes
setupDependencySetNode(document, talendLibCoordinate, "lib", "${artifact.artifactId}.${artifact.extension}", false,
false);
// add 3rd party libs: groupId:artifactId:type:version
setupDependencySetNode(document,
_3rdLibCoordinate.stream().filter(s -> s.split(":").length == 4).collect(Collectors.toSet()), "lib", null,
false, false);
// add 3rd party libs with classifier: groupId:artifactId:type:classifier:version
setupDependencySetNode(document,
_3rdLibCoordinate.stream().filter(s -> s.split(":").length == 5).collect(Collectors.toSet()), "lib", null,
false, false);
// FIXME if later add classifier for org.talend.libraries libs, code and job artifact, need to handle it
// like 3rd libs as well
// add jobs
setupDependencySetNode(document, jobCoordinate, "${talend.job.name}",
"${artifact.build.finalName}.${artifact.extension}", true, false, isBuildAsMsZip);
"${artifact.build.finalName}.${artifact.extension}", true, false);
// add duplicate dependencies if exists
setupFileNode(document, parentJobDependencies, childjobDependencies, duplicateLibs);
PomUtil.saveAssemblyFile(assemblyFile, document);
} catch (Exception e) {
@@ -895,12 +869,12 @@ public class CreateMavenJobPom extends AbstractMavenProcessorPom {
}
protected void setupDependencySetNode(Document document, Set<String> libIncludes, String outputDir, String fileNameMapping,
boolean useProjectArtifact, boolean unpack, boolean isBuildAsMsZip) {
if (!isBuildAsMsZip && libIncludes.isEmpty()) {
boolean useProjectArtifact, boolean unpack) {
if (libIncludes.isEmpty()) {
return;
}
Node dependencySetsNode = document.getElementsByTagName("dependencySets").item(0);
if (!isBuildAsMsZip && dependencySetsNode == null) {
if (dependencySetsNode == null) {
return;
}
Node dependencySetNode = document.createElement("dependencySet");

View File

@@ -202,7 +202,7 @@ public class CreateMavenStandardJobOSGiPom extends CreateMavenJobPom {
Document document = PomUtil.loadAssemblyFile(null, assemblyFile);
// add jobs
setupDependencySetNode(document, jobCoordinate, null, "${artifact.build.finalName}.${artifact.extension}", true,
true, false);
true);
PomUtil.saveAssemblyFile(assemblyFile, document);
} catch (Exception e) {
ExceptionHandler.process(e);

View File

@@ -16,12 +16,14 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.avro.Schema;
import org.apache.commons.lang3.StringEscapeUtils;
import org.talend.commons.runtime.model.components.IComponentConstants;
import org.talend.core.model.general.ModuleNeeded;
import org.talend.core.model.metadata.builder.connection.Connection;
import org.talend.core.model.utils.ContextParameterUtils;
import org.talend.core.runtime.evaluator.AbstractPropertyValueEvaluator;
import org.talend.core.runtime.maven.MavenUrlHelper;
import org.talend.core.runtime.util.GenericTypeUtils;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.daikon.properties.property.Property;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
@@ -84,6 +86,13 @@ public class MetadataContextPropertyValueEvaluator extends AbstractPropertyValue
}
}
if (GenericTypeUtils.isStringType(property)) {
String val = String.valueOf(storedValue);
if (property.isFlag(Property.Flags.ENCRYPT)) {
return val;
}
}
return getTypedValue(property, currentStoredValue, storedValue);
}