Compare commits

...

5 Commits

Author SHA1 Message Date
Jane Ding
206e1c89d3 Revert "fix(TUP-28898):Drag Exasol connection to a job choose tDBOutput(Exasol) (#7023)" (#7217) (#7218)
This reverts commit 6b82e95328.
2022-02-18 17:27:01 +08:00
AlixMetivier
7828ead0be feat(TBD-12989): add databricks to universal plugins (#7143) (#7215)
* feat(TBD-12989): add databricks to universal plugins

* feat(TBD-12989): add databricks to universal plugin
2022-02-17 17:48:42 +01:00
ypiel
0e3c7526c0 fix(TDI-46848): mscrm oauth2+on-premise + client secret (#7157)
* fix(TDI-46848): add mscrm oauth2 logs

* fix(TDI-46848): Add client secret for oauth2 on-premise

* fix(TDI-46848): Fix pom version.

* fix(TDI-46848): client_secret not mandatory
2022-02-17 11:26:07 +01:00
kjwang
65c9752f76 Revert "Fix TUP-32950 On Ubuntu 18.04.5 documentation comment is displayed as a (#7098)" (#7211) (#7212)
This reverts commit 20a1cd9476.
2022-02-17 17:44:18 +08:00
kjwang
2e1e3cf573 TUP-34156 UI is broken for TCK Table structures in 8.0.1 + nighty (#7203)
TUP-34156 UI is broken for TCK Table structures in 8.0.1 + nighty
https://jira.talendforge.org/browse/TUP-34156
2022-02-17 11:46:31 +08:00
15 changed files with 62 additions and 48 deletions

View File

@@ -3,10 +3,17 @@
<modelVersion>4.0.0</modelVersion>
<groupId>org.talend.components</groupId>
<artifactId>talend-mscrm</artifactId>
<version>3.9-20210713</version>
<version>3.11-20220124</version>
<packaging>jar</packaging>
<name>talend-mscrm</name>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.talendforge.org/modules/licenses/APACHE_v2.txt</url>
<distribution>may be downloaded from the Maven repository</distribution>
</license>
</licenses>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

View File

@@ -60,12 +60,13 @@ public class ClientConfigurationFactory {
}
public final static ClientConfiguration buildOAuthPremiseClientConfiguration(String userName, String password, String authoryEndpoint,
String serviceAPI, String clientId, String redirectUrl, String forcedResource) {
String serviceAPI, String clientId, String clientSecret, String redirectUrl, String forcedResource) {
ClientConfiguration clientConfiguration = new ClientConfiguration(AuthStrategyEnum.OAUTH_PREMISE);
clientConfiguration.setUserName(userName);
clientConfiguration.setPassword(password);
clientConfiguration.setAuthoryEndpoint(authoryEndpoint);
clientConfiguration.setClientId(clientId);
clientConfiguration.setClientSecret(clientSecret);
clientConfiguration.setRedirectURL(redirectUrl);
clientConfiguration.setServiceAPI(serviceAPI);
clientConfiguration.setForceResource(forcedResource);

View File

@@ -116,11 +116,8 @@ public class DynamicsCRMClient implements IHttpClientFactoryObserver {
public DynamicsCRMClient(ClientConfiguration clientConfiguration, String serviceRootURL, String entitySet)
throws AuthenticationException {
this.clientConfiguration = clientConfiguration;
this.serviceRootURL = serviceRootURL;
this.entitySet = entitySet;
init();
}

View File

@@ -146,6 +146,10 @@ public class OAuthPremiseStrategyImpl implements IAuthStrategy {
body.put("redirect_uri", conf.getRedirectURL());
body.put("client_id", conf.getClientId());
if(conf.getClientSecret() != null && !"".equals(conf.getClientSecret().trim())){
body.put("client_secret", conf.getClientSecret());
}
RequestHttpContext queryContext = new RequestHttpContext("POST",
computeTokenUrl(conf.getAuthoryEndpoint()),
Collections.emptyMap(),

View File

@@ -59,8 +59,6 @@ public final class HttpClient {
redirect = true;
}
//final HttpHeaders headers = resp.headers();
final Optional<String> location = response.getFirstValueHeader("location");
@@ -127,4 +125,4 @@ public final class HttpClient {
public RequestHttpContext getRequestHttpContext() {
return requestHttpContext;
}
}
}

View File

@@ -15,7 +15,7 @@ public final class HttpResponse {
private Map<String, List<String>> headers;
private String body;
private Optional<String> code = null;//Optional.empty();
private Optional<String> code = null;
public static HttpResponse fromHttpUrlConnection(HttpURLConnection conn) throws IOException {
final int status = conn.getResponseCode();
@@ -82,12 +82,12 @@ public final class HttpResponse {
return Optional.empty();
}
final List<String> ss = values.get();
if(ss.size() <= 0){
final List<String> v = values.get();
if (v.size() <= 0) {
return Optional.empty();
}
return Optional.ofNullable(ss.get(0));
return Optional.ofNullable(v.get(0));
}
public String getBody() {
@@ -107,11 +107,13 @@ public final class HttpResponse {
if (!optLocation.isPresent()) {
return Optional.empty();
}
final String[] split = optLocation.get().split("&|\\?");
final Optional<String> optCode = Arrays.stream(split).filter(e -> e.startsWith("code=")).findFirst();
final String optLocationValue = optLocation.get();
final String[] split = optLocationValue.split("&|\\?");
final Optional<String> optCode = Arrays.stream(split).filter(e -> e.startsWith("code=")).findFirst();
if (optCode.isPresent()) {
String code = optCode.get().substring(5);
final String optCodeValue = optCode.get();
String code = optCodeValue.substring(5);
return Optional.ofNullable(code);
}

View File

@@ -95,7 +95,7 @@ if ((metadatas != null) && (metadatas.size() > 0)) {
else{
%>
org.talend.ms.crm.odata.ClientConfiguration clientConfig_<%=cid%> = org.talend.ms.crm.odata.ClientConfigurationFactory
.buildOAuthPremiseClientConfiguration(<%=userName%>, decryptedPassword_<%=cid%>, <%=authority%>, <%=serviceURL%>,<%=applicationId%>, <%=redirectUrl%>, <%=oauth_resource%>);
.buildOAuthPremiseClientConfiguration(<%=userName%>, decryptedPassword_<%=cid%>, <%=authority%>, <%=serviceURL%>,<%=applicationId%>, <%=clientSecret%>, <%=redirectUrl%>, <%=oauth_resource%>);
<%
}
} else {

View File

@@ -137,7 +137,7 @@
<DEFAULT>"51f81489-12ee-4a9e-aaae-a2591f45987d"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="CLIENT_SECRET" FIELD="TEXT" NUM_ROW="30" REQUIRED="true" SHOW_IF="(AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2016_ODATA' OR API_VERSION=='API_2018_ODATA') AND (ONLINE_REGISTERED_APP != 'NATIVE')">
<PARAMETER NAME="CLIENT_SECRET" FIELD="TEXT" NUM_ROW="30" REQUIRED="false" SHOW_IF="((AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2016_ODATA' OR API_VERSION=='API_2018_ODATA') AND (ONLINE_REGISTERED_APP != 'NATIVE')) OR (AUTH_TYPE=='ON_PREMISE' AND MS_CRM_VERSION=='CRM_2016' AND PREMISE_AUTH=='OAUTH')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
@@ -27559,7 +27559,7 @@
<IMPORT NAME="jcifs" MODULE="jcifs-1.3.0.jar" MVN="mvn:org.talend.libraries/jcifs-1.3.0/6.0.0" REQUIRED_IF="((AUTH_TYPE == 'ON_PREMISE') AND (MS_CRM_VERSION == 'CRM_2011')) OR (API_VERSION=='API_2007')" />
<!-- 2011 -->
<!-- crm client -->
<IMPORT NAME="talend-mscrm" MODULE="talend-mscrm-3.10-20211021.jar" MVN="mvn:org.talend.components/talend-mscrm/3.10-20211021" REQUIRED_IF="(((AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2011' OR API_VERSION =='API_2016_ODATA' OR API_VERSION =='API_2018_ODATA')) OR ((AUTH_TYPE=='ON_PREMISE') AND (MS_CRM_VERSION == 'CRM_2016' OR MS_CRM_VERSION == 'CRM_2018')))" />
<IMPORT NAME="talend-mscrm" MODULE="talend-mscrm-3.11-20220124.jar" MVN="mvn:org.talend.components/talend-mscrm/3.11-20220124" REQUIRED_IF="(((AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2011' OR API_VERSION =='API_2016_ODATA' OR API_VERSION =='API_2018_ODATA')) OR ((AUTH_TYPE=='ON_PREMISE') AND (MS_CRM_VERSION == 'CRM_2016' OR MS_CRM_VERSION == 'CRM_2018')))" />
<!-- axis2 1.7.4 -->
<IMPORT NAME="activation-1.1" MODULE="activation-1.1.jar" MVN="mvn:org.talend.libraries/activation-1.1/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.apache.axis2/lib/activation-1.1.jar" REQUIRED_IF="(AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2011')" />
<IMPORT NAME="axiom-api-1.2.20" MODULE="axiom-api-1.2.20.jar" MVN="mvn:org.talend.libraries/axiom-api-1.2.20/6.0.0" REQUIRED_IF="(AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2011')" />

View File

@@ -80,7 +80,7 @@
else {
%>
org.talend.ms.crm.odata.ClientConfiguration clientConfig_<%=cid%> = org.talend.ms.crm.odata.ClientConfigurationFactory
.buildOAuthPremiseClientConfiguration(<%=userName%>, decryptedPassword_<%=cid%>, <%=authority%>, <%=serviceURL%>,<%=applicationId%>, <%=redirectUrl%>, <%=oauth_resource%>);
.buildOAuthPremiseClientConfiguration(<%=userName%>, decryptedPassword_<%=cid%>, <%=authority%>, <%=serviceURL%>,<%=applicationId%>, <%=clientSecret%>, <%=redirectUrl%>, <%=oauth_resource%>);
<%
}
} else {

View File

@@ -137,7 +137,7 @@
<DEFAULT>"51f81489-12ee-4a9e-aaae-a2591f45987d"</DEFAULT>
</PARAMETER>
<PARAMETER NAME="CLIENT_SECRET" FIELD="TEXT" NUM_ROW="40" REQUIRED="true" SHOW_IF="(AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2016_ODATA' OR API_VERSION=='API_2018_ODATA') AND (ONLINE_REGISTERED_APP != 'NATIVE')">
<PARAMETER NAME="CLIENT_SECRET" FIELD="TEXT" NUM_ROW="40" REQUIRED="false" SHOW_IF="((AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2016_ODATA' OR API_VERSION=='API_2018_ODATA') AND (ONLINE_REGISTERED_APP != 'NATIVE')) OR (AUTH_TYPE=='ON_PREMISE' AND MS_CRM_VERSION=='CRM_2016' AND PREMISE_AUTH=='OAUTH')">
<DEFAULT>""</DEFAULT>
</PARAMETER>
@@ -38318,7 +38318,7 @@
<IMPORT NAME="jcifs" MODULE="jcifs-1.3.0.jar" MVN="mvn:org.talend.libraries/jcifs-1.3.0/6.0.0" REQUIRED_IF="((AUTH_TYPE == 'ON_PREMISE') AND (MS_CRM_VERSION == 'CRM_2011')) OR (API_VERSION=='API_2007')" />
<!-- 2011 -->
<!-- crm client -->
<IMPORT NAME="talend-mscrm" MODULE="talend-mscrm-3.10-20211021.jar" MVN="mvn:org.talend.components/talend-mscrm/3.10-20211021" REQUIRED_IF="((AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2011' OR API_VERSION =='API_2016_ODATA' OR API_VERSION =='API_2018_ODATA')) OR ((AUTH_TYPE == 'ON_PREMISE') AND (MS_CRM_VERSION == 'CRM_2016' OR MS_CRM_VERSION == 'CRM_2018'))" />
<IMPORT NAME="talend-mscrm" MODULE="talend-mscrm-3.11-20220124.jar" MVN="mvn:org.talend.components/talend-mscrm/3.11-20220124" REQUIRED_IF="((AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2011' OR API_VERSION =='API_2016_ODATA' OR API_VERSION =='API_2018_ODATA')) OR ((AUTH_TYPE == 'ON_PREMISE') AND (MS_CRM_VERSION == 'CRM_2016' OR MS_CRM_VERSION == 'CRM_2018'))" />
<!-- axis2 1.7.4 -->
<IMPORT NAME="activation-1.1" MODULE="activation-1.1.jar" MVN="mvn:org.talend.libraries/activation-1.1/6.0.0" UrlPath="platform:/plugin/org.talend.libraries.apache.axis2/lib/activation-1.1.jar" REQUIRED_IF="(AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2011')" />
<IMPORT NAME="axiom-api-1.2.20" MODULE="axiom-api-1.2.20.jar" MVN="mvn:org.talend.libraries/axiom-api-1.2.20/6.0.0" REQUIRED_IF="(AUTH_TYPE=='ONLINE') AND (API_VERSION=='API_2011')" />

View File

@@ -149,6 +149,7 @@ import org.talend.hadoop.distribution.condition.NestedComponentCondition;
import org.talend.hadoop.distribution.condition.SimpleComponentCondition;
import org.talend.hadoop.distribution.constants.SparkBatchConstant;
import org.talend.hadoop.distribution.constants.apache.ESparkMode;
import org.talend.hadoop.distribution.constants.databricks.DatabricksRuntimeVersion;
import org.talend.hadoop.distribution.dynamic.template.AbstractDynamicDistributionTemplate;
import org.talend.hadoop.distribution.dynamic.template.IDynamicDistributionTemplate;
import org.talend.hadoop.distribution.helper.DistributionsManager;
@@ -1888,6 +1889,30 @@ public class EmfComponent extends AbstractBasicComponent {
newParam.setGroup(xmlParam.getGROUP());
newParam.setGroupDisplayName(parentParam.getGroupDisplayName());
newParam.setDefaultValues(sparkModesDefaultValues);
newParam.setRepositoryValue(SparkBatchConstant.SPARK_MODE_PARAMETER);
listParam.add(newParam);
// databricksRuntimeVersion for universal
String[] databricksRuntimeVersionLabels = DatabricksRuntimeVersion.getAvailableRuntimeAndSparkVersion().stream().map(x -> x.getRuntimeVersion())
.collect(Collectors.toList()).toArray(new String[0]);
String[] databricksRuntimeVersionDisplayConditions = DatabricksRuntimeVersion.getAvailableRuntimeAndSparkVersion().stream()
.map(x -> "(SPARK_VERSION=='"+x.getSparkVersion()+"')")
.collect(Collectors.toList()).toArray(new String[0]);
newParam = new ElementParameter(node);
newParam.setCategory(EComponentCategory.BASIC);
newParam.setName(SparkBatchConstant.DATABRICKS_RUNTIME_VERSION);
newParam.setDisplayName(SparkBatchConstant.getName(SparkBatchConstant.DATABRICKS_RUNTIME_VERSION));
newParam.setShowIf(DatabricksRuntimeVersion.showIfCondition);
newParam.setListItemsDisplayName(databricksRuntimeVersionLabels);
newParam.setListItemsDisplayCodeName(databricksRuntimeVersionLabels);
newParam.setListItemsValue(databricksRuntimeVersionLabels);
newParam.setListItemsShowIf(databricksRuntimeVersionDisplayConditions);
newParam.setListItemsNotShowIf(new String[DatabricksRuntimeVersion.getAvailableRuntimeAndSparkVersion().size()]);
newParam.setNumRow(xmlParam.getNUMROW() + 1);
newParam.setFieldType(EParameterFieldType.CLOSED_LIST);
newParam.setShow(true);
newParam.setGroup(xmlParam.getGROUP());
listParam.add(newParam);
}
}

View File

@@ -287,7 +287,7 @@ public class NodeContainerFigure extends Figure {
text += "\t- " + str + "<br>"; //$NON-NLS-1$ //$NON-NLS-2$
}
}
htmlStatusHint.setText(text);
htmlStatusHint.setText(text, true);
if (errorFigure.isVisible()) {
warningFigure.setToolTip(null);
errorFigure.setToolTip(htmlStatusHint);

View File

@@ -28,7 +28,6 @@ import org.eclipse.ui.IWorkbenchWindow;
import org.eclipse.ui.PlatformUI;
import org.talend.components.api.properties.ComponentProperties;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.model.components.IComponent;
import org.talend.core.model.components.IComponentsHandler;
import org.talend.core.model.components.IComponentsService;
@@ -138,7 +137,7 @@ public class UnifiedComponentUtil {
for (IComponent component : componentList) {
String databaseName = service.getUnifiedCompDisplayName(service.getDelegateComponent(component),
component.getName());
if (!isDatabaseMatch(dbTypeName, databaseName)) {
if (StringUtils.isNotBlank(databaseName) && !databaseName.equals(dbTypeName)) {
continue;
}
if (isAdditionalJDBC(databaseName)) {
@@ -191,19 +190,6 @@ public class UnifiedComponentUtil {
return componentList;
}
private static boolean isDatabaseMatch(String dbTypeName, String unifiedCompDisplayName) {
if (StringUtils.isBlank(dbTypeName) || StringUtils.isBlank(unifiedCompDisplayName)) {
return false;
}
boolean isMatch = StringUtils.isNotBlank(unifiedCompDisplayName) && unifiedCompDisplayName.equals(dbTypeName);
EDatabaseTypeName databaseType = EDatabaseTypeName.getTypeFromDbType(dbTypeName);
if (databaseType != null && (databaseType.getDbType().equals(unifiedCompDisplayName)
|| databaseType.getDisplayName().equals(unifiedCompDisplayName))) {
isMatch = true;
}
return isMatch;
}
public static IComponent getEmfComponent(IComponentName setting, IComponent selectedComponent) {
if (isDelegateComponent(selectedComponent)) {
IUnifiedComponentService service = GlobalServiceRegister.getDefault().getService(IUnifiedComponentService.class);

View File

@@ -22,7 +22,6 @@ import java.util.Map;
import java.util.Set;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.model.components.IComponent;
import org.talend.core.model.components.IComponentsFactory;
import org.talend.core.model.components.IComponentsService;
@@ -130,14 +129,6 @@ public class UnifiedComponentService implements IUnifiedComponentService {
UnifiedObject unifiedObjectByDatabase = selectedDcomp.getUnifiedObjectByDatabase(database);
if (unifiedObjectByDatabase != null) {
return unifiedObjectByDatabase.getDisplayComponentName();
} else if (EDatabaseTypeName.SYBASEASE.getDisplayName().equals(database)) {
// sybase can be dbType as database
// ref:org.talend.designer.unifiedcomponent.unifier.sybase.SybaseComponentsUnifier
unifiedObjectByDatabase = selectedDcomp
.getUnifiedObjectByDatabase(EDatabaseTypeName.SYBASEASE.getXmlName());
if (unifiedObjectByDatabase != null) {
return unifiedObjectByDatabase.getDisplayComponentName();
}
}
}

View File

@@ -14,6 +14,7 @@ package org.talend.sdk.component.studio.metadata.tableeditor;
import java.util.Arrays;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
@@ -52,13 +53,15 @@ public class TaCoKitPropertiesTableEditorView<B> extends PropertiesTableEditorVi
CCombo combo = (CCombo) cbc.getControl();
String val = null;
boolean needUpdateListItem = false;
if (combo.getEditable() && !StringUtils.isBlank(combo.getText())) {
val = String.valueOf(combo.getText());
needUpdateListItem = true;
}
int rowNumber = ((Table) combo.getParent()).getSelectionIndex();
Map<String, String> svs = new HashMap<String, String>();
Map<String, String> svs = new LinkedHashMap<String, String>();
if (currentParam.getListItemsValue() != null && currentParam.getListItemsValue().length > 0) {
for (Object o : currentParam.getListItemsValue()) {
@@ -70,7 +73,7 @@ public class TaCoKitPropertiesTableEditorView<B> extends PropertiesTableEditorVi
svs.put(val, val);
}
if (!svs.isEmpty()) {
if (!svs.isEmpty() && needUpdateListItem) {
TaCoKitUtil.updateElementParameter(currentParam, svs);
}