Compare commits
5 Commits
dochkas/ti
...
release/8.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
206e1c89d3 | ||
|
|
7828ead0be | ||
|
|
0e3c7526c0 | ||
|
|
65c9752f76 | ||
|
|
2e1e3cf573 |
@@ -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>
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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(),
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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')" />
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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')" />
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user