Compare commits

...

57 Commits

Author SHA1 Message Date
bhe-talendbj
2970bab12b fix(TUP-41249): update manifest timestamp (#6665)
* fix(TUP-41249): update manifest timestamp

* fix(TUP-41249): update type of time
2023-12-22 19:45:55 +08:00
bhe-talendbj
5a2cc479ed chore(TUP-41184): update maven repo (#6663) 2023-12-22 16:58:53 +08:00
bhe-talendbj
1954f09c18 fix(TUP-41249): correct allowed seconds for pat (#6632) 2023-12-13 17:39:59 +08:00
apoltavtsev
dec6f1b934 APPINT-36161: Correct build type for child Route job (#6619) 2023-12-11 09:42:01 +01:00
kjwang
6409a47cdd Fix TUP-41174 old version of Teradata related jars download fail (#6620)
* Fix TUP-41174 old version of Teradata related jars download fail
https://jira.talendforge.org/browse/TUP-41174
2023-12-11 15:50:30 +08:00
Zhiwei Xue
704a6dcb26 fix(TUP-41154):TcompV0 metadata refresh issue when only parts feature (#6617)
installed
2023-12-08 18:20:41 +08:00
sbliu
1a96cdc0aa Revert "fix(TUP-41057) add dnd support for dynamic setting's tableviewer (#6592)" (#6613)
This reverts commit 2019954122.
2023-12-08 15:33:56 +08:00
kjwang
67ef82fede Fix TUP-41144 Unknown dbmsId: 'null' "show when open component tDBInput (#6604)
Fix TUP-41144 Unknown dbmsId: 'null' "show when open component tDBInput with jdbc db2 migrated from 73
https://jira.talendforge.org/browse/TUP-41144
2023-12-07 16:52:58 +08:00
Chao MENG
9adc6b7634 fix(TUP-40481): commandline can't connect to the proxy defined on maven jvm.arguments (#6560)
* fix(TUP-40481): commandline can't connect to the proxy defined on maven
jvm.arguments
https://jira.talendforge.org/browse/TUP-40481

* fix(TUP-40481): commandline can't connect to the proxy defined on maven
jvm.arguments
https://jira.talendforge.org/browse/TUP-40481

* fix(TUP-40481): commandline can't connect to the proxy defined on maven
jvm.arguments
https://jira.talendforge.org/browse/TUP-40481

avoid password print from eclipse

* fix(TUP-40481): commandline can't connect to the proxy defined on maven
jvm.arguments
https://jira.talendforge.org/browse/TUP-40481

avoid password print from eclipse

* fix(TUP-40481): commandline can't connect to the proxy defined on maven
jvm.arguments
https://jira.talendforge.org/browse/TUP-40481

avoid password print from eclipse
2023-12-07 16:12:41 +08:00
zyuan-talend
214f47d0d1 fix(TUP-41046):link some GAV to some license. (#6602) 2023-12-07 15:52:18 +08:00
msjian
835f89e891 fix(TDQ-21624): code refactor and fix tck jdbc DQ dependency update (#6584)
* fix(TDQ-21563): fix tck jdbc notifyDQSQLExplorer

* fix(TDQ-21562): fix add driver twice when import the project from login
2023-12-05 09:58:32 +08:00
zyuan-talend
4bdc3703c3 fix(TUP-40250):Replace GAV from org.talend.libraries with official GAV (#6420)
* fix(TUP-40250):Replace GAV from org.talend.libraries with official GAV.

* fix(TUP-40590): Type in mvn uri has higher priority than pom.xml.
2023-12-04 16:52:21 +08:00
jiezhang-tlnd
ebfa988a4f Revert "feat(TUP-39520)Deprecate AS400 CDC / RUNCDC (#6289)" (#6553)
This reverts commit 4a7a831c77.
2023-12-04 14:22:09 +08:00
sbliu
2019954122 fix(TUP-41057) add dnd support for dynamic setting's tableviewer (#6592) 2023-12-04 11:36:45 +08:00
sbliu
7c75d23ae8 chore(TUP-40453) upgrade avro from 1.11.2 to 1.11.3 (#6543) 2023-11-30 17:26:19 +08:00
Jane Ding
6d12874f4d Add localized files (#6595) (#6596)
Co-authored-by: Toshi Sasada <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-11-30 17:15:12 +08:00
jiezhang-tlnd
24ea68ce97 fix(TUP-29006)The attached db connection file can be imported as new (#6579)
* fix(TUP-29006)The attached db connection file can be imported as new
each time.
https://jira.talendforge.org/browse/TUP-29006

* fix(TUP-29006)The attached db connection file can be imported as new
each time
https://jira.talendforge.org/browse/TUP-29006
2023-11-27 09:26:13 +08:00
Zhiwei Xue
5aabff0e3d fix(TUP-40701):[bug] the directory structure display incorrect after (#6565)
delete to recycle bin
2023-11-23 17:45:02 +08:00
Jane Ding
6172fe622c Add localized files (#6582)
* Add localized files (#6578)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

* Add localized files (#6580)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

---------

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
Co-authored-by: Toshi Sasada <51699524+tsasada-talend@users.noreply.github.com>
2023-11-23 17:43:17 +08:00
Jane Ding
4b678206df fix(TUP-40721):SAP Context issue - Additional Properties (#6538)
* fix(TUP-40721):SAP Context issue - Additional Properties
https://jira.talendforge.org/browse/TUP-40721

* fix(TUP-40721):SAP Context issue - Additional Properties
https://jira.talendforge.org/browse/TUP-40721
2023-11-23 17:06:08 +08:00
jzhao
d3c9eff9c5 fix(TDI-50399): Json:20230227 | CVE-2023-5072 (#6568) 2023-11-22 17:02:16 +08:00
bhe-talendbj
b91ac54c40 feat(TUP-39181): Force PAT rotation on Studio login (#6546)
* feat(TUP-39181): initial impl

* feat(TUP-39181): need to block fetching license if old PAT

* feat(TUP-39181): need to block fetching license if old PAT

* feat(TUP-39181): need to block fetching license if old PAT
2023-11-22 09:32:20 +08:00
Jane Ding
ff3cee4aab Add localized files (#6570) (#6571)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-11-16 16:58:23 +08:00
kjwang
7798616c46 Fix TUP-40878 Add validation rule for jdbc db (#6563)
Fix TUP-40878 Add validation rule for jdbc db schema throw NPE when try to select a
reference table.
https://jira.talendforge.org/browse/TUP-40878
2023-11-15 16:20:08 +08:00
apoltavtsev
63f2485928 APPINT-35996: "Setup custom scripts by folder" does not work in Studio for a Route folder (#6502) 2023-11-14 09:25:39 +01:00
kjwang
b34075c36a TUP-40710 TCK-JDBC Dynamic setting view (#6536)
TUP-40710 TCK-JDBC Dynamic setting view
https://jira.talendforge.org/browse/TUP-40710
2023-11-13 17:58:38 +08:00
msjian
2d59042cfe chore(TDQ-21220): Remove useless MDM code (#6552) 2023-11-13 15:37:26 +08:00
Jane Ding
60022731f3 Add localized files (#6545) (#6550)
Co-authored-by: Toshi Sasada <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-11-13 14:20:01 +08:00
Zhiwei Xue
501e024c54 fix(TUP-40742):fix junit failure (#6548) 2023-11-10 11:01:33 +08:00
Emmanuel GALLOIS
accb4dc40c feat(TDI-50426): bump component-runtime to 1.62.1 (#6540) 2023-11-09 10:21:28 +01:00
Chao MENG
8b0dafab1d fix(TUP-40317): Metadata based Hadoop cluster Repository type is showing (#6444)
inconsistent grey out UI for Runtime mode.
https://jira.talendforge.org/browse/TUP-40317
2023-11-09 11:07:55 +08:00
Zhiwei Xue
b557195264 fix(TUP-40742):old job with stats&logs/Implicit context can't run with (#6537)
java 17 after migration
2023-11-09 10:08:38 +08:00
hzhao
9ff1bdb734 feat(TUP-36963):Display Row Number is zero when import (#6534) 2023-11-08 15:50:46 +08:00
Zhiwei Xue
3dc2d267d2 fix(TUP-40722):Add module access for Spark 3.4.x and 3.0.x (#6527) 2023-11-07 10:20:39 +08:00
hzhao
c2ed2d30d3 feat(TUP-36963):Display Row Number is zero when add column in tMap (#6516)
editor(Ubuntu)
2023-11-06 16:53:57 +08:00
apoltavtsev
6cc1fa47aa APPINT-35995: [801]Route with tHttpclient failed to run with docker image when build by CI (#6487) 2023-11-06 09:41:12 +01:00
jiezhang-tlnd
5b0fd33df5 feat(TUP-40311)[Refactor] Unify tPostgresPlus component to reuse (#6449)
* feat(TUP-40311)[Refactor] Unify tPostgresPlus component to reuse
tPostgres

* [Refactor] Unify tPostgresPlus component to reuse tPostgres

* [Refactor] Unify tPostgresPlus component to reuse tPostgres

* add migration

* code format

* remove postgresplus mapping file
2023-11-06 10:40:30 +08:00
Zhiwei Xue
74d2ba6332 fix(TUP-40637):The Java 17 compatibility notification should not show (#6517)
when studio logon a new project with Java 17 in Mac
2023-11-03 16:33:41 +08:00
Emmanuel GALLOIS
e680a31762 feat(TDI-50426): bump component-runtime to 1.62.0 (#6491)
* bump tomcat to 9.0.82
2023-11-02 19:34:04 +02:00
Jane Ding
6a2da84be3 Add localized files (#6526)
* Add localized files (#6521)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

* Add localized files (#6522)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

* Add localized files (#6523)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

---------

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-11-02 20:25:35 +08:00
Jane Ding
affaf0e4bc fix(TUP-36082):DetectCVE in Studio (#6471)
* fix(TUP-36082):DetectCVE in Studio
https://jira.talendforge.org/browse/TUP-36082

* fix(TUP-36082):DetectCVE in Studio
https://jira.talendforge.org/browse/TUP-36082

* fix(TUP-36082):DetectCVE in Studio
https://jira.talendforge.org/browse/TUP-36082

* fix(TUP-36082):DetectCVE in Studio
https://jira.talendforge.org/browse/TUP-36082
2023-11-02 17:54:24 +08:00
kjwang
0edc21cac3 Kjwang/feat tup 39096 new tck jdbc integrate (#6269)
* TUP-39096 Be able to create new TCK JDBC connection in repository with
expected tck and emf mode
https://jira.talendforge.org/browse/TUP-39096

* Remove edit connection action for tacokit node

* DND support

* Improve the code

* Fix dnd issues

* Improve the code

* Improve the code

* Improve the code

* TUP-39075 Handle the d&d of metadata tables/queries to DI/BD/APPINT jobs
after JDBC TCK integration

* Fix table parameter issue

* Improve the code

* Fix spark job dnd issue

* Improve the code

* feat(TUP-38956):Change the repository Db Connections display to prepare
for TCK JDBC integration

* Fix a build error

* Fix a build error

* Fix a build error

* TUP-39525 Save and Load TCK connection items from metadata/connections
instead of tacokit folder in project

* TUP-39525 Save and Load TCK connection items from metadata/connections
instead of tacokit folder in project

* TUP-39525 Save and Load TCK connection items from metadata/connections
instead of tacokit folder in project

* Remove unused code

* Support edit new jdbc schema

* Remove wrong class

* delete wrong icon

* fix(TUP-39575):Implement new jdbc mapping file field list in new jdbc
wizard.

* fix(TDQ-21221): dq support tck jdbc

* feat(TUP-38956):integrate tck jdbc and snowflake to db connections

* set default DatabaseType is JDBC(same as before)

* feat(TUP-38956):fix repository connection select and import dialog for
tck jdbc and snowflake

* Improve the code

* TUP-39577 Make data view function can work with new jdbc connection and
input component
https://jira.talendforge.org/browse/TUP-39577

* feat(TUP-38956): hide existing tcompv0 jdbc nodes from repository view

* fix(TUP-35088):Stats&logs with TCK JDBC.

* feat(TUP-39073):[JDBC TCK]: reuse SQL builder when click button beside on "Query" field (#6308)

* feat(TUP-39073):[JDBC TCK]: reuse SQL builder when click button beside
on "Query" field
https://jira.talendforge.org/browse/TUP-39073

* feat(TUP-39078):Make the TCK JDBC work with db unified system.

* Fix a NPE

* Fix data viewer issues

* Improve context menu

* Fix a migration error

* feat(TUP-39080):Delta lake/Single store move from tcompv0 JDBC to TCK

* Kjwang/feat tup 39096 new tck jdbc integrate with tup 25445 (#6343)

* feat(TUP-25445)acokit support context in repository metadata
https://jira.talendforge.org/browse/TUP-25445

* feat(TUP-38956):fix db item display on MacOS

* Test jdbc migration rename -- KK (#6348)

* Test jdbc migration rename
* Update component name

* Remove used code

* TUP-40142 Tacokit JDBC - can not list connection parameters when export
as context using existed context
https://jira.talendforge.org/browse/TUP-40142

* fix(TUP-40158):wrong jdbc icon size in DB select wizard

* fix(TUP-40159):can't import tompv0 jdbc if driver path is empty

* fix(TUP-40144):new jdbc node is not shown in import wizard

* Update version for test

* Update version for test

* update for test

* remove useless

* remove

* Fix a convert error

* fix(TUP-40249):[bug] Can't save non-jdbc connection to repository after
migration

* Improve the code

* fix(TUP-40331):[JDBC TCK] DB Type should be hidden for tJDBC components.

* fix(TDQ-21221): fix tDqReportRun run get error

* fix(TUP-40192):[Bug] tJDBCinput>save the property to metadata can not
work.

* Fix TUP-40321 [TCK JDBC Migration]: NPE in migration class :
ConvertTCompV0ToTckComponentMigrationTask
https://jira.talendforge.org/browse/TUP-40321

* temp

* # WARNING: head commit changed in the meantime

Merge branch 'maintenance/8.0' into
kjwang/Feat_TUP-39096_new_TCK_JDBC_integrate

* fix(TUP-40302):[bug] can't move in/out jdbc connection to folder

* TUP-40566 TCK JDBC driver issue in context mode
https://jira.talendforge.org/browse/TUP-40566

* fix(TUP-40376):[JDBC TCK] Connection is missing when D&D SP to workspace

* update jdbc icon in wizard

* fix(TDQ-21221): fix run tck jdbc analysis fail

* chore(): remove new DB wizard image

* improve

* Fix junit error part 1 (#6499)

Fix junit error part 1

* Fix failed junit (#6503)

Fix failed junit

* fix(TUP-40582):[bug] snowflake connection can't move in/out of folder

* fix(TUP-40616):[bug] "Update from repository connection" shows empty
filled parameters

* fix(TUP-40661):[Bug] ArrayIndexOutOfBoundsException show when close job

* Clean code

* fix tck connection copy lost map error

* fix(TUP-40582):[bug] snowflake connection can't move in/out of folder

* fix(TUP-40616):[bug] "Update from repository connection" shows empty
filled parameters

* fix all

---------

Co-authored-by: Zhiwei Xue <zwxue@talend.com>
Co-authored-by: Hongchun Yi <hcyi@talend.com>
Co-authored-by: msjian <msjian@talend.com>
Co-authored-by: Jane Ding <jding@talend.com>
2023-11-02 17:53:56 +08:00
Jill Yan
1d27501e60 APPINT-35965 use plexus-io 3.2.0 (#6514) 2023-10-31 12:42:56 +08:00
pyzhou
d1af724543 fix(TDI-50335):fix wrong mapping (#6488) 2023-10-31 08:17:06 +08:00
wang wei
491bb9652c fix(TDI-50317): tFileInputPositional don't parse properly when pattern units field is set to Symbols (#6421) 2023-10-30 14:57:36 +08:00
hzhao
48fbc6588b feat(TUP-36963): Display Row Number in Schema View (#6418)
* feat(TUP-36963): Display Row Number in Schema View

* feat(TUP-36963): Display Row Number in Schema View

* feat(TUP-36963): Display Row Number in Schema View

* feat(TUP-36963):remove first column
2023-10-27 11:40:00 +08:00
Jane Ding
659a089bef Add localized files (#6506)
* Add localized files (#6504)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

* Add localized files (#6505)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

---------

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-10-26 17:02:17 +08:00
Jane Ding
312299fc2d Add localized files (#6486)
* Add localized files (#6481)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

* Add localized files (#6482)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

* Add localized files (#6484)

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>

---------

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-10-20 14:53:32 +08:00
Jane Ding
76c1b6f942 fix(TUP-40439):In the ".sysConfig" of "support logs" that gather (#6445)
* fix(TUP-40439):In the ".sysConfig" of "support logs" that gather
"nexus.password" value is plain text
https://jira.talendforge.org/browse/TUP-40439

* fix(TUP-40439):In the ".sysConfig" of "support logs" that gather
"nexus.password" value is plain text
https://jira.talendforge.org/browse/TUP-40439

* fix(TUP-40439):In the ".sysConfig" of "support logs" that gather
"nexus.password" value is plain text
https://jira.talendforge.org/browse/TUP-40439
2023-10-20 11:29:39 +08:00
Jane Ding
3c29998973 Add localized files (#6459) (#6480)
Co-authored-by: Toshi Sasada <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-10-17 22:12:41 +08:00
qiongli
9af6a950ba feat(TDQ-21471):Iterate all context variables to check prompt needed (#6472) 2023-10-17 10:22:32 +08:00
Zhiwei Xue
46f5337dca chore():fix random junit failure (#6478) 2023-10-16 18:30:10 +08:00
hcyi
33a207ceaa fix(TUP-40299):fix a failed junit since update the message. (#6476) 2023-10-16 16:30:35 +08:00
qiongli
26ab3f97a4 fix(TDQ-21471):fix NPE (#6474) 2023-10-16 11:58:09 +08:00
Zhiwei Xue
f6ea29ec76 feat(TUP-40401): improve Java17 check (#6466) 2023-10-13 14:35:38 +08:00
Zhiwei Xue
51a436b552 Revert "feat(TUP-40401): skip new project option setup for tuj (#6462)" (#6463)
This reverts commit 0ab9b617f5.
2023-10-13 10:09:33 +08:00
Zhiwei Xue
0ab9b617f5 feat(TUP-40401): skip new project option setup for tuj (#6462) 2023-10-13 09:42:37 +08:00
237 changed files with 97113 additions and 71336 deletions

View File

@@ -69,6 +69,10 @@ public class DefaultTableLabelProvider implements ITableLabelProvider, ITableCol
returnValue = defaultValue;
}
} else {
if ("ID_COLUMN_ROW_NUM".equals(column.getId())) {
int indexOf = this.tableViewerCreator.getInputList().indexOf(element);
AccessorUtils.set(column, element, indexOf + 1);
}
Object value = AccessorUtils.get(element, column);
CellEditor cellEditor = column.getCellEditor();
CellEditorValueAdapter retrieverValue = column.getCellEditorValueAdapter();

View File

@@ -15,6 +15,7 @@ package org.talend.commons.runtime.service;
import java.io.File;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.eclipse.core.runtime.IProgressMonitor;
@@ -45,6 +46,10 @@ public interface ITaCoKitService {
boolean isNeedMigration(String componentName, Map<String, String> properties);
boolean isTaCoKitType(Object repoType);
boolean isTaCoKitRepositoryNode(Object node);
boolean isTaCoKitConnection(Object conn);
Object getDatastoreFromDataset(Object repositoryViewObject);
@@ -52,6 +57,12 @@ public interface ITaCoKitService {
boolean isValueSelectionParameter(Object parameter);
List<Map<String, Object>> convertToTable(String value);
List<String> getValuesFromTableParameter(Object parameter, String... keys);
List<String> getValuesFromTableParameterValue(String value, String ...keys);
public static ITaCoKitService getInstance() {
BundleContext bc = FrameworkUtil.getBundle(ITaCoKitService.class).getBundleContext();
Collection<ServiceReference<ITaCoKitService>> tacokitServices = Collections.emptyList();

View File

@@ -13,6 +13,7 @@
package org.talend.commons.utils;
import java.security.SecureRandom;
import java.util.regex.Pattern;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
@@ -34,6 +35,8 @@ public class PasswordEncryptUtil {
private static final SecureRandom SECURERANDOM = new SecureRandom();
private static final Pattern REG_ENCRYPTED_DATA = Pattern.compile("^enc\\:system\\.encryption\\.key\\.v\\d\\:\\p{Print}+");
private static SecretKey getSecretKey() throws Exception {
if (key == null) {
byte rawKeyData[] = StudioEncryption

View File

@@ -24,6 +24,7 @@ import java.net.URI;
import java.net.URL;
import java.net.UnknownHostException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.List;
@@ -31,6 +32,10 @@ import java.util.Set;
import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.eclipse.core.internal.net.ProxyManager;
import org.eclipse.core.net.proxy.IProxyData;
import org.eclipse.core.net.proxy.IProxyService;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.talend.commons.exception.CommonExceptionHandler;
@@ -42,6 +47,8 @@ import org.talend.commons.runtime.utils.io.FileCopyUtils;
*/
public class NetworkUtil {
private static final Logger LOGGER = Logger.getLogger(NetworkUtil.class);
private static final String[] windowsCommand = { "ipconfig", "/all" }; //$NON-NLS-1$ //$NON-NLS-2$
private static final String[] linuxCommand = { "/sbin/ifconfig", "-a" }; //$NON-NLS-1$ //$NON-NLS-2$
@@ -72,6 +79,136 @@ public class NetworkUtil {
private static final String PROP_NETWORK_STATUS = "network.status"; //$NON-NLS-1$
private static final String SYSTEM_PROXY_ENABLED = "talend.studio.proxy.enableSystemProxyByDefault";
public static void applyProxyFromSystemProperties() throws Exception {
if (!Boolean.valueOf(System.getProperty("talend.studio.proxy.applySystemProps", Boolean.FALSE.toString()))) {
return;
}
final String passwordMask = "***";
String httpProxyHost = System.getProperty("http.proxyHost");
String httpProxyPort = System.getProperty("http.proxyPort");
String httpUser = System.getProperty("http.proxyUser");
String httpPassword = System.getProperty("http.proxyPassword");
if (StringUtils.isNotBlank(httpPassword)) {
System.setProperty("http.proxyPassword", passwordMask);
}
String httpNonProxyHosts = System.getProperty("http.nonProxyHosts");
String httpsProxyHost = System.getProperty("https.proxyHost");
String httpsProxyPort = System.getProperty("https.proxyPort");
String httpsUser = System.getProperty("https.proxyUser");
String httpsPassword = System.getProperty("https.proxyPassword");
if (StringUtils.isNotBlank(httpsPassword)) {
System.setProperty("https.proxyPassword", passwordMask);
}
String httpsNonProxyHosts = System.getProperty("https.nonProxyHosts");
String socksProxyHost = System.getProperty("socksProxyHost");
String socksProxyPort = System.getProperty("socksProxyPort");
String socksProxyUser = System.getProperty("socksProxyUser");
if (socksProxyUser == null) {
socksProxyUser = System.getProperty("java.net.socks.username");
}
String socksProxyPassword = System.getProperty("socksProxyPassword");
if (StringUtils.isNotBlank(socksProxyPassword)) {
System.setProperty("socksProxyPassword", passwordMask);
}
if (socksProxyPassword == null) {
socksProxyPassword = System.getProperty("java.net.socks.password");
}
IProxyService proxyService = ProxyManager.getProxyManager();
boolean isHttpProxyEnabled = StringUtils.isNotBlank(httpProxyHost) && StringUtils.isNotBlank(httpProxyPort);
boolean isHttpsProxyEnabled = StringUtils.isNotBlank(httpsProxyHost) && StringUtils.isNotBlank(httpsProxyPort);
boolean isSocksProxyEnabled = StringUtils.isNotBlank(socksProxyHost) && StringUtils.isNotBlank(socksProxyPort);
if (!isHttpProxyEnabled && !isHttpsProxyEnabled && !isSocksProxyEnabled) {
proxyService
.setSystemProxiesEnabled(Boolean.valueOf(System.getProperty(SYSTEM_PROXY_ENABLED, Boolean.TRUE.toString())));
proxyService.setProxiesEnabled(false);
LOGGER.info("No proxy specified, disabled.");
} else {
proxyService.setSystemProxiesEnabled(false);
proxyService.setProxiesEnabled(true);
List<IProxyData> proxies = new ArrayList<>();
String initedProxyTypes = "";
if (isHttpProxyEnabled) {
try {
IProxyData httpProxy = proxyService.getProxyData(IProxyData.HTTP_PROXY_TYPE);
httpProxy.setHost(httpProxyHost);
httpProxy.setPort(Integer.valueOf(httpProxyPort));
if (StringUtils.isNotBlank(httpUser)) {
httpProxy.setUserid(httpUser);
if (httpPassword == null) {
httpPassword = "";
}
httpProxy.setPassword(httpPassword);
}
proxies.add(httpProxy);
initedProxyTypes += IProxyData.HTTP_PROXY_TYPE + " ";
} catch (Throwable e) {
LOGGER.error(e.getMessage(), e);
}
}
if (isHttpsProxyEnabled) {
try {
IProxyData httpsProxy = proxyService.getProxyData(IProxyData.HTTPS_PROXY_TYPE);
httpsProxy.setHost(httpsProxyHost);
httpsProxy.setPort(Integer.valueOf(httpsProxyPort));
if (StringUtils.isNotBlank(httpsUser)) {
httpsProxy.setUserid(httpsUser);
if (httpsPassword == null) {
httpsPassword = "";
}
httpsProxy.setPassword(httpsPassword);
}
proxies.add(httpsProxy);
initedProxyTypes += IProxyData.HTTPS_PROXY_TYPE + " ";
} catch (Throwable e) {
LOGGER.error(e.getMessage(), e);
}
}
if (isSocksProxyEnabled) {
try {
IProxyData socksProxy = proxyService.getProxyData(IProxyData.SOCKS_PROXY_TYPE);
socksProxy.setHost(socksProxyHost);
socksProxy.setPort(Integer.valueOf(socksProxyPort));
if (StringUtils.isNotBlank(socksProxyUser)) {
socksProxy.setUserid(socksProxyUser);
if (socksProxyPassword == null) {
socksProxyPassword = "";
}
socksProxy.setPassword(socksProxyPassword);
}
proxies.add(socksProxy);
initedProxyTypes += IProxyData.SOCKS_PROXY_TYPE;
} catch (Throwable e) {
LOGGER.error(e.getMessage(), e);
}
}
proxyService.setProxyData(proxies.toArray(new IProxyData[0]));
List<String> nonProxyHosts = new ArrayList<>();
if (StringUtils.isNotBlank(httpNonProxyHosts)) {
String[] split = httpNonProxyHosts.split("|");
nonProxyHosts.addAll(Arrays.asList(split));
}
if (StringUtils.isNotBlank(httpsNonProxyHosts)) {
String[] split = httpsNonProxyHosts.split("|");
nonProxyHosts.addAll(Arrays.asList(split));
}
proxyService.setNonProxiedHosts(nonProxyHosts.toArray(new String[0]));
if (passwordMask.equals(System.getProperty("http.proxyPassword"))) {
System.setProperty("http.proxyPassword", httpPassword);
}
if (passwordMask.equals(System.getProperty("https.proxyPassword"))) {
System.setProperty("https.proxyPassword", httpsPassword);
}
if (passwordMask.equals(System.getProperty("socksProxyPassword"))) {
System.setProperty("socksProxyPassword", socksProxyPassword);
}
LOGGER.info("Succeed to init proxy: " + initedProxyTypes);
}
}
public static boolean isNetworkValid() {
return isNetworkValid(DEFAULT_TIMEOUT);
}

View File

@@ -17,6 +17,7 @@ import java.util.List;
import org.eclipse.gef.commands.Command;
import org.talend.commons.ui.runtime.i18n.Messages;
import org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorNotModifiable;
import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
/**
@@ -88,6 +89,11 @@ public class ExtendedTableAddCommand extends Command implements IExtendedTableCo
// }
extendedTable.addAll(indexStartAdd, beansToAdd);
// when not lazy load need to do refresh to refresh the row number
if (!TableViewerCreatorNotModifiable.getRecommandLazyLoad()
&& !TableViewerCreatorNotModifiable.isLazyLoadingEnabled()) {
extendedTable.getTableViewer().refresh();
}
}

View File

@@ -20,6 +20,7 @@ import java.util.List;
import org.apache.commons.lang.ArrayUtils;
import org.eclipse.gef.commands.Command;
import org.talend.commons.ui.runtime.i18n.Messages;
import org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorNotModifiable;
import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
/**
@@ -130,6 +131,11 @@ public class ExtendedTableRemoveCommand extends Command implements IExtendedTabl
removedBeansIndices.add(index);
}
}
// when not lazy load need to do refresh to refresh the row number
if (!TableViewerCreatorNotModifiable.getRecommandLazyLoad()
&& !TableViewerCreatorNotModifiable.isLazyLoadingEnabled()) {
extendedTable.getTableViewer().refresh();
}
}

View File

@@ -187,10 +187,10 @@
<RepositoryComponent
name="GENERAL_JDBC"
withSchema="true"
input="tJDBCInput"
output="tJDBCOutput">
input="JDBCInput"
output="JDBCOutput">
<Item
clazz="org.talend.core.model.properties.DatabaseConnectionItem">
clazz="org.talend.core.model.properties.TacokitDatabaseConnectionItem">
</Item>
<DBType
type="GENERAL_JDBC">
@@ -420,18 +420,7 @@
type="ORACLESN">
</DBType>
</RepositoryComponent>
<RepositoryComponent
name="PLUSPSQL"
withSchema="true"
input="tPostgresPlusInput"
output="tPostgresPlusOutput">
<Item
clazz="org.talend.core.model.properties.DatabaseConnectionItem">
</Item>
<DBType
type="PLUSPSQL">
</DBType>
</RepositoryComponent>
<RepositoryComponent
name="PSQL"
withSchema="true"

View File

@@ -155,7 +155,6 @@ ProjectRepositoryNode.invalidItem=Invalid item
ProjectRepositoryNode.columns=Columns
ProjectRepositoryNode.validationRules=Validation Rules
ProjectRepositoryNode.cdcFoundation=CDC Foundation
ProjectRepositoryNode.cdcFoundation.deprecated=CDC Foundation (deprecated)
ProjectRepositoryNode.genericSchema=Generic schemas
ProjectRepositoryNode.queries=Queries
ProjectRepositoryNode.synonymSchemas=Synonym schemas

View File

@@ -35,6 +35,7 @@ import org.eclipse.jface.preference.IPreferenceStore;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.exception.PersistenceException;
import org.talend.commons.runtime.model.repository.ERepositoryStatus;
import org.talend.commons.runtime.service.ITaCoKitService;
import org.talend.commons.ui.runtime.exception.RuntimeExceptionHandler;
import org.talend.commons.ui.runtime.image.ECoreImage;
import org.talend.commons.ui.runtime.repository.IExtendRepositoryNode;
@@ -92,9 +93,11 @@ import org.talend.core.repository.model.repositoryObject.SAPIDocRepositoryObject
import org.talend.core.repository.model.repositoryObject.SalesforceModuleRepositoryObject;
import org.talend.core.repository.recyclebin.RecycleBinManager;
import org.talend.core.repository.ui.utils.ProjectRepositoryNodeCache;
import org.talend.core.repository.utils.RepositoryNodeManager;
import org.talend.core.runtime.services.IGenericDBService;
import org.talend.core.runtime.services.IGenericService;
import org.talend.core.runtime.services.IGenericWizardService;
import org.talend.core.service.ITCKUIService;
import org.talend.core.ui.ICDCProviderService;
import org.talend.core.ui.ITestContainerProviderService;
import org.talend.core.ui.branding.IBrandingService;
@@ -646,7 +649,9 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
}
}
}
if (RepositoryNodeManager.isSnowflake(currentType)) {
continue;
}
if (currentType != null) {
buildFolders(rootNode, currentType, folderPath, rootNode);
}
@@ -819,7 +824,8 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
* @return
*/
private RepositoryNode getFolder(ERepositoryObjectType currentType, String path, List<IRepositoryNode> rootNodes) {
if (RepositoryNodeUtilities.isGenericDBExtraType(currentType)) {
if (RepositoryNodeUtilities.isGenericDBExtraType(currentType) || RepositoryNodeManager.isSnowflake(currentType)
|| (ITaCoKitService.getInstance() != null && ITaCoKitService.getInstance().isTaCoKitType(currentType))) {
currentType = ERepositoryObjectType.METADATA_CONNECTIONS;
}
if (path == null || path.isEmpty()) {
@@ -1330,7 +1336,7 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
}
private void addNode(RepositoryNode parent, ERepositoryObjectType type, IRepositoryViewObject repositoryObject,
public void addNode(RepositoryNode parent, ERepositoryObjectType type, IRepositoryViewObject repositoryObject,
List<IRepositoryViewObject> validationRules) {
boolean isAvaliableInTOS = true; // this flag filter the databaseconnections which didn't supported by TOS but
@@ -1340,11 +1346,15 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
Connection conn = ((ConnectionItem) repositoryObject.getProperty().getItem()).getConnection();
if(conn instanceof DatabaseConnection){
dbMetadataConnection = (DatabaseConnection) conn;
isAvaliableInTOS = EDatabaseTypeName.getTypeFromDbType(dbMetadataConnection.getDatabaseType(), false) == null ? false
: true;
if (ERepositoryObjectType.JDBC == repositoryObject.getRepositoryObjectType()
&& ERepositoryObjectType.JDBC.getType().equals(dbMetadataConnection.getProductId())) {
// hide tcompv0 jdbc node
// remove the 2nd condition if later we need to migrate Delta Lake and SingleStore
return;
}
isAvaliableInTOS = EDatabaseTypeName.getTypeFromDbType(dbMetadataConnection.getDatabaseType(), false) != null;
}
}
Connection connection = null;
if (type == ERepositoryObjectType.METADATA_CONNECTIONS && isAvaliableInTOS) {
connection = dbMetadataConnection;
@@ -1410,22 +1420,32 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
}
}
}
if (isAvaliableInTOS) {
if (isAvaliableInTOS && node != null) {
parent.getChildren().add(node);
}
}
if (null != connection) {
if (null != connection && node != null) {
createTables(node, repositoryObject, connection, validationRules);
}
for (IRepositoryContentHandler handler : RepositoryContentManager.getHandlers()) {
handler.addNode(type, recBinNode, repositoryObject, node);
if (node != null) {
for (IRepositoryContentHandler handler : RepositoryContentManager.getHandlers()) {
handler.addNode(type, recBinNode, repositoryObject, node);
}
}
}
private RepositoryNode createRepositoryNode(RepositoryNode parent, ERepositoryObjectType repObjType,
IRepositoryViewObject repositoryObject, Connection connection) {
if (ERepositoryObjectType.METADATA_TACOKIT_JDBC.equals(repositoryObject.getRepositoryObjectType()) && ITCKUIService.get() != null) {
try {
return ITCKUIService.get().createTaCoKitRepositoryNode(parent, repObjType, repositoryObject, connection);
} catch (Exception e) {
ExceptionHandler.process(e);
return null;
}
}
RepositoryNode node = new RepositoryNode(repositoryObject, parent, ENodeType.REPOSITORY_ELEMENT);
node.setProperties(EProperties.CONTENT_TYPE, repObjType);
@@ -1592,7 +1612,7 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
return objs;
}
private void createTables(RepositoryNode node, final IRepositoryViewObject repObj, Connection metadataConnection,
public void createTables(RepositoryNode node, final IRepositoryViewObject repObj, Connection metadataConnection,
List<IRepositoryViewObject> validationRules) {
// // 5.GENERIC SCHEMAS
@@ -1703,11 +1723,11 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
DatabaseConnectionItem connectionItem = (DatabaseConnectionItem) item;
DatabaseConnection connection = (DatabaseConnection) connectionItem.getConnection();
if (PluginChecker.isCDCPluginLoaded()) {
ICDCProviderService service = GlobalServiceRegister.getDefault().getService(ICDCProviderService.class);
ICDCProviderService service = GlobalServiceRegister.getDefault()
.getService(ICDCProviderService.class);
if (service != null && service.canCreateCDCConnection(connection)) {
RepositoryNode cdcNode = new StableRepositoryNode(node,
Messages.getString("ProjectRepositoryNode.cdcFoundation.deprecated"), //$NON-NLS-1$
Messages.getString("ProjectRepositoryNode.cdcFoundation"), //$NON-NLS-1$
ECoreImage.FOLDER_CLOSE_ICON);
node.getChildren().add(cdcNode);
service.createCDCTypes(recBinNode, cdcNode, connection.getCdcConns());

View File

@@ -21,7 +21,9 @@ import java.util.List;
import java.util.Set;
import org.apache.commons.collections.map.MultiKeyMap;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.resources.ResourcesPlugin;
@@ -79,6 +81,7 @@ import org.talend.core.model.properties.ProcessItem;
import org.talend.core.model.properties.ProjectReference;
import org.talend.core.model.properties.Property;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.Folder;
import org.talend.core.model.repository.IRepositoryContentHandler;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.ISubRepositoryObject;
@@ -97,6 +100,7 @@ import org.talend.core.repository.ui.dialog.ContextReferenceDialog;
import org.talend.core.repository.ui.dialog.ItemReferenceDialog;
import org.talend.core.repository.utils.AbstractResourceChangesService;
import org.talend.core.repository.utils.RepositoryNodeDeleteManager;
import org.talend.core.repository.utils.RepositoryNodeManager;
import org.talend.core.repository.utils.RepositoryReferenceBeanUtils;
import org.talend.core.repository.utils.TDQServiceRegister;
import org.talend.core.runtime.CoreRuntimePlugin;
@@ -338,6 +342,25 @@ public class DeleteAction extends AContextualAction {
deletedFolder.add(node);
List<IRepositoryViewObject> deleteObjectList = new ArrayList<IRepositoryViewObject>();
deleteFolder(node, factory, deleteActionCache, deleteObjectList);
if (ERepositoryObjectType.SNOWFLAKE != null) {
IPath sfPath = RepositoryNodeUtilities.getPath(node);
String fullPath = ERepositoryObjectType.SNOWFLAKE.getFolder() + IPath.SEPARATOR
+ sfPath.toString();
IProject rsProject = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject());
IFolder sfFolder = ResourceUtils.getFolder(rsProject, fullPath, false);
if (sfFolder.exists()) {
RepositoryNode sfRootNode = ProjectRepositoryNode.getInstance()
.getRootRepositoryNode(ERepositoryObjectType.SNOWFLAKE);
FolderItem item = factory.getFolderItem(ProjectManager.getInstance().getCurrentProject(),
ERepositoryObjectType.SNOWFLAKE, sfPath);
Folder folder = new Folder(item.getProperty(), ERepositoryObjectType.SNOWFLAKE);
RepositoryNode sfFolderNode = new RepositoryNode(folder, sfRootNode,
ENodeType.REPOSITORY_ELEMENT);
sfFolderNode.setProperties(EProperties.LABEL, folder.getLabel());
sfFolderNode.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.SNOWFLAKE);
deleteFolder(sfFolderNode, factory, deleteActionCache, deleteObjectList);
}
}
}
} catch (PersistenceException e) {
MessageBoxExceptionHandler.process(e);
@@ -477,6 +500,13 @@ public class DeleteAction extends AContextualAction {
}
IPath path = RepositoryNodeUtilities.getPath(node);
ERepositoryObjectType objectType = (ERepositoryObjectType) node.getProperties(EProperties.CONTENT_TYPE);
if (RepositoryNodeManager.isSnowflake(objectType)) {
String pathStr = node.getObject().getLabel();
if (StringUtils.isNotBlank(node.getObject().getPath())) {
pathStr = node.getObject().getPath() + IPath.SEPARATOR + pathStr;
}
path = new Path(pathStr);
}
List<IRepositoryNode> repositoryList = node.getChildren();
boolean success = true;
Exception bex = null;

View File

@@ -18,6 +18,8 @@ import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
import org.eclipse.ui.PlatformUI;
@@ -30,12 +32,15 @@ import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.RepositoryManager;
import org.talend.core.repository.i18n.Messages;
import org.talend.core.repository.model.JobletReferenceBean;
import org.talend.core.repository.model.ProjectRepositoryNode;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.model.repositoryObject.MetadataTableRepositoryObject;
import org.talend.core.repository.ui.actions.metadata.CopyToGenericSchemaHelper;
import org.talend.core.repository.ui.dialog.JobletReferenceDialog;
import org.talend.core.repository.utils.AbstractResourceChangesService;
import org.talend.core.repository.utils.RepositoryNodeManager;
import org.talend.core.repository.utils.TDQServiceRegister;
import org.talend.repository.ProjectManager;
import org.talend.repository.model.IProxyRepositoryFactory;
import org.talend.repository.model.IRepositoryNode;
import org.talend.repository.model.IRepositoryNode.ENodeType;
@@ -155,8 +160,11 @@ public class MoveObjectAction {
switch (targetNode.getType()) {
case SYSTEM_FOLDER:
case SIMPLE_FOLDER:
boolean booleanValue = ((ERepositoryObjectType) targetNode.getProperties(EProperties.CONTENT_TYPE))
.equals(sourceNode.getProperties(EProperties.CONTENT_TYPE));
ERepositoryObjectType sourceType = (ERepositoryObjectType) sourceNode.getProperties(EProperties.CONTENT_TYPE);
ERepositoryObjectType targetType = (ERepositoryObjectType) targetNode.getProperties(EProperties.CONTENT_TYPE);
boolean booleanValue = sourceType == targetType || (ERepositoryObjectType.METADATA_CONNECTIONS == targetType
&& (ERepositoryObjectType.METADATA_TACOKIT_JDBC == sourceType
|| RepositoryNodeManager.isSnowflake(sourceType)));
if (isGenericSchema) {
return true;
} else {
@@ -274,7 +282,9 @@ public class MoveObjectAction {
targetPath = (targetNode == null ? new Path("") : RepositoryNodeUtilities.getPath(targetNode)); //$NON-NLS-1$
}
List<IRepositoryViewObject> objectToMoves = new ArrayList<IRepositoryViewObject>();
List<IRepositoryViewObject> snowflakeToMove = new ArrayList<>();
Map<IRepositoryViewObject, IPath> map = new HashMap<IRepositoryViewObject, IPath>();
Map<IRepositoryViewObject, IPath> snowflakeMap = new HashMap<>();
IProxyRepositoryFactory factory = ProxyRepositoryFactory.getInstance();
for (RepositoryNode sourceNode : nodeList) {
IPath sourcePath = RepositoryNodeUtilities.getPath(sourceNode);
@@ -298,6 +308,18 @@ public class MoveObjectAction {
// Move :
if (isGenericSchema) {
CopyToGenericSchemaHelper.copyToGenericSchema(factory, objectToMove, targetPath);
} else if (RepositoryNodeManager.isSnowflake(sourceNode.getObjectType())
&& ERepositoryObjectType.METADATA_CONNECTIONS == targetNode.getContentType()
&& (ENodeType.SYSTEM_FOLDER == targetNode.getType()
|| ENodeType.SIMPLE_FOLDER == targetNode.getType())) {
if (!ProjectRepositoryNode.class.isInstance(targetNode.getParent())
&& targetNode.getObject() != null) {
factory.createFolder(ERepositoryObjectType.SNOWFLAKE,
RepositoryNodeUtilities.getPath(targetNode.getParent()),
targetNode.getObject().getProperty().getLabel());
}
snowflakeToMove.add(objectToMove);
snowflakeMap.put(objectToMove, sourcePath);
} else {
// MOD gdbu 2011-9-29 TDQ-3546
ERepositoryObjectType repositoryObjectType = objectToMove.getRepositoryObjectType();
@@ -325,6 +347,18 @@ public class MoveObjectAction {
// Source is a folder :
ERepositoryObjectType sourceType = (ERepositoryObjectType) sourceNode.getProperties(EProperties.CONTENT_TYPE);
factory.moveFolder(sourceType, sourcePath, targetPath);
if (ERepositoryObjectType.SNOWFLAKE != null) {
String snowflakePath = ERepositoryObjectType.getFolderName(ERepositoryObjectType.SNOWFLAKE);
if (!sourcePath.isEmpty()) {
snowflakePath += IPath.SEPARATOR + sourcePath.toString();
}
IProject project = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject());
IFolder folder = ResourceUtils.getFolder(project, snowflakePath, false);
if (folder.exists() && folder.members().length > 0) {
factory.moveFolder(ERepositoryObjectType.SNOWFLAKE, sourcePath, targetPath);
}
}
}
}
if (objectToMoves.size() > 0) {
@@ -335,6 +369,10 @@ public class MoveObjectAction {
}
factory.moveObjectMulti(objectArray, targetPath, map);
}
if (!snowflakeToMove.isEmpty()) {
factory.moveObjectMulti(snowflakeToMove.toArray(new IRepositoryViewObject[] {}),
RepositoryNodeUtilities.getPath(targetNode), snowflakeMap);
}
}
public void execute(RepositoryNode sourceNode, RepositoryNode targetNode, boolean isDnd) throws Exception {

View File

@@ -18,6 +18,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.resources.ResourcesPlugin;
@@ -37,6 +39,7 @@ import org.talend.commons.runtime.model.repository.ERepositoryStatus;
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
import org.talend.commons.ui.runtime.image.EImage;
import org.talend.commons.ui.runtime.image.ImageProvider;
import org.talend.commons.utils.workbench.resources.ResourceUtils;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.ITDQRepositoryService;
import org.talend.core.model.metadata.builder.connection.AbstractMetadataObject;
@@ -49,6 +52,7 @@ import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.ISubRepositoryObject;
import org.talend.core.repository.i18n.Messages;
import org.talend.core.repository.model.ProxyRepositoryFactory;
import org.talend.core.repository.utils.RepositoryNodeManager;
import org.talend.core.service.ICoreUIService;
import org.talend.core.ui.ITestContainerProviderService;
import org.talend.repository.ProjectManager;
@@ -111,9 +115,42 @@ public class RestoreAction extends AContextualAction {
Item item = node.getObject().getProperty().getItem();
if (item instanceof FolderItem) {
item.getState().setDeleted(false);
if (nodeType == ERepositoryObjectType.METADATA_CONNECTIONS && ERepositoryObjectType.SNOWFLAKE != null) {
IPath sfPath = new Path(node.getObject().getPath()).append(node.getObject().getLabel());
String fullPath = ERepositoryObjectType.SNOWFLAKE.getFolder() + IPath.SEPARATOR + sfPath;
IProject rsProject = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject());
IFolder sfFolder = ResourceUtils.getFolder(rsProject, fullPath, false);
if (sfFolder.exists()) {
FolderItem sfItem = ProxyRepositoryFactory.getInstance().getFolderItem(ProjectManager.getInstance().getCurrentProject(),
ERepositoryObjectType.SNOWFLAKE, sfPath);
sfItem.getState().setDeleted(false);
while (sfPath.segmentCount() > 1) {
sfPath = sfPath.removeLastSegments(1);
FolderItem parentItem = ProxyRepositoryFactory.getInstance().getFolderItem(
ProjectManager.getInstance().getCurrentProject(), ERepositoryObjectType.SNOWFLAKE,
sfPath);
if (ProxyRepositoryFactory.getInstance().getStatus(parentItem) == ERepositoryStatus.DELETED) {
parentItem.getState().setDeleted(false);
}
}
}
}
} else {
RestoreObjectAction restoreObjectAction = RestoreObjectAction.getInstance();
restoreObjectAction.execute(node, null, path);
if (RepositoryNodeManager.isSnowflake(nodeType)) {
IPath sfPath = new Path(node.getObject().getPath()).append(node.getObject().getLabel());
while (sfPath.segmentCount() > 1) {
sfPath = sfPath.removeLastSegments(1);
FolderItem parentItem = ProxyRepositoryFactory.getInstance().getFolderItem(
ProjectManager.getInstance().getCurrentProject(), ERepositoryObjectType.SNOWFLAKE, sfPath);
if (ProxyRepositoryFactory.getInstance().getStatus(parentItem) == ERepositoryStatus.DELETED) {
parentItem.getState().setDeleted(false);
}
}
}
// MOD qiongli 2012-10-16 TDQ-6166 notify sql exploere when restore a connection.
if (item instanceof DatabaseConnectionItem) {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ITDQRepositoryService.class)) {

View File

@@ -62,6 +62,7 @@ import org.talend.core.repository.ui.actions.CopyObjectAction;
import org.talend.core.repository.ui.actions.MoveObjectAction;
import org.talend.core.repository.utils.AbstractResourceChangesService;
import org.talend.core.repository.utils.ConvertJobsUtil;
import org.talend.core.repository.utils.RepositoryNodeManager;
import org.talend.core.repository.utils.TDQServiceRegister;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.service.ITransformService;
@@ -379,7 +380,7 @@ public class RepositoryDropAdapter extends PluginDropAdapter {
if (target == null) {
return false;
}
super.validateDrop(target, operation, transferType);
// super.validateDrop(target, operation, transferType);
boolean isValid = true;
Set<IResource> parents = new HashSet<IResource>();
for (Object obj : ((StructuredSelection) getViewer().getSelection()).toArray()) {
@@ -459,6 +460,24 @@ public class RepositoryDropAdapter extends PluginDropAdapter {
}
}
}
} else if (object.getRepositoryObjectType() == ERepositoryObjectType.METADATA_TACOKIT_JDBC) {
if (target instanceof RepositoryNode) {
RepositoryNode targetRN = (RepositoryNode) target;
if (ENodeType.SYSTEM_FOLDER == targetRN.getType() || ENodeType.SIMPLE_FOLDER == targetRN.getType()) {
if (targetRN.getContentType() == ERepositoryObjectType.METADATA_CONNECTIONS) {
return isValid = true;
}
}
}
} else if (RepositoryNodeManager.isSnowflake(object.getRepositoryObjectType())) {
if (target instanceof RepositoryNode) {
RepositoryNode targetRN = (RepositoryNode) target;
if (ENodeType.SYSTEM_FOLDER == targetRN.getType() || ENodeType.SIMPLE_FOLDER == targetRN.getType()) {
if (targetRN.getContentType() == ERepositoryObjectType.METADATA_CONNECTIONS) {
return isValid = true;
}
}
}
}
}

View File

@@ -155,4 +155,8 @@ public class RepositoryNodeManager {
return isTacokit;
}
public static boolean isSnowflake(ERepositoryObjectType type) {
return ERepositoryObjectType.SNOWFLAKE != null && ERepositoryObjectType.SNOWFLAKE == type;
}
}

View File

@@ -6,6 +6,7 @@ Bundle-Version: 8.0.1.qualifier
Bundle-Localization: plugin
Bundle-Vendor: .Talend SA.
Export-Package: org.talend.analysistask,
org.talend.commons.report,
org.talend.commons.utils.generation,
org.talend.commons.utils.io,
org.talend.commons.utils.workbench.resources,
@@ -143,7 +144,7 @@ Require-Bundle: org.eclipse.jdt.core,
com.fasterxml.jackson.core.jackson-annotations,
com.fasterxml.jackson.core.jackson-databind,
com.fasterxml.jackson.core.jackson-core,
avro;bundle-version="1.11.2"
avro
Bundle-Activator: org.talend.core.runtime.CoreRuntimePlugin
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .,

View File

@@ -1,567 +0,0 @@
<?xml version="1.0"?>
<mapping>
<dbms product="POSTGRESPLUS" id="postgresplus_id" label="Mapping PostgresPlus"
default="true">
<dbTypes>
<dbType type="ABSTIME" ignoreLen="true" ignorePre="true" />
<dbType type="ACLITEM" ignoreLen="true" ignorePre="true" />
<dbType type="BIGSERIAL" ignoreLen="true" ignorePre="true" />
<dbType type="BIT" ignorePre="true" />
<dbType type="BOOL" ignoreLen="true" ignorePre="true" />
<dbType type="BOX" ignoreLen="true" ignorePre="true" />
<dbType type="BPCHAR" ignoreLen="true" ignorePre="true" />
<dbType type="BYTEA" ignoreLen="true" ignorePre="true" />
<dbType type="CHAR" defaultLength="50" ignorePre="true"/>
<dbType type="CID" ignoreLen="true" ignorePre="true" />
<dbType type="CIDR" ignoreLen="true" ignorePre="true" />
<dbType type="CIRCLE" ignoreLen="true" ignorePre="true" />
<dbType type="DATE" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT4" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT8" ignoreLen="true" ignorePre="true" />
<dbType type="INET" ignoreLen="true" ignorePre="true" />
<dbType type="INT2" ignoreLen="true" ignorePre="true" />
<dbType type="INT2VECTOR" ignoreLen="true" ignorePre="true" />
<dbType type="INT4" ignoreLen="true" ignorePre="true" />
<dbType type="INT8" ignoreLen="true" ignorePre="true" />
<dbType type="INTERVAL" ignorePre="true" />
<dbType type="LINE" ignoreLen="true" ignorePre="true" />
<dbType type="LSEG" ignoreLen="true" ignorePre="true" />
<dbType type="MACADDR" ignoreLen="true" ignorePre="true" />
<dbType type="MONEY" ignoreLen="true" ignorePre="true" />
<dbType type="NAME" ignoreLen="true" ignorePre="true" />
<dbType type="NUMERIC" defaultLength="20" defaultPrecision="10"/>
<dbType type="OID" ignoreLen="true" ignorePre="true" />
<dbType type="OIDVECTOR" ignoreLen="true" ignorePre="true" />
<dbType type="PATH" ignoreLen="true" ignorePre="true" />
<dbType type="POINT" ignoreLen="true" ignorePre="true" />
<dbType type="POLYGON" ignoreLen="true" ignorePre="true"/>
<dbType type="REFCURSOR" ignoreLen="true" ignorePre="true" />
<dbType type="RELTIME" ignoreLen="true" ignorePre="true" />
<dbType type="REGCLASS" ignoreLen="true" ignorePre="true" />
<dbType type="REGOPER" ignoreLen="true" ignorePre="true" />
<dbType type="REGOPERATOR" ignoreLen="true" ignorePre="true" />
<dbType type="REGPROC" ignoreLen="true" ignorePre="true" />
<dbType type="REGPROCEDURE" ignoreLen="true" ignorePre="true" />
<dbType type="REGTYPE" ignoreLen="true" ignorePre="true" />
<dbType type="SERIAL" ignoreLen="true" ignorePre="true" />
<dbType type="SMGR" ignoreLen="true" ignorePre="true" />
<dbType type="TEXT" ignoreLen="true" ignorePre="true" />
<dbType type="TID" ignoreLen="true" ignorePre="true" />
<dbType type="TIME" ignorePre="true" />
<dbType type="TINTERVAL" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMPTZ" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMP" ignorePre="true" />
<dbType type="TIMETZ" ignoreLen="true" ignorePre="true" />
<dbType type="VARBIT" ignoreLen="true" ignorePre="true" />
<dbType type="VARCHAR" defaultLength="200" ignorePre="true" />
<dbType type="XID" ignoreLen="true" ignorePre="true" />
<dbType type="_ABSTIME" ignoreLen="true" ignorePre="true" />
<dbType type="_ACLITEM" ignoreLen="true" ignorePre="true" />
<dbType type="_BIT" ignoreLen="true" ignorePre="true" />
<dbType type="_BOX" ignoreLen="true" ignorePre="true" />
<dbType type="_BOOL" ignoreLen="true" ignorePre="true" />
<dbType type="_BPCHAR" ignoreLen="true" ignorePre="true" />
<dbType type="_BYTEA" ignoreLen="true" ignorePre="true" />
<dbType type="_CHAR" ignoreLen="true" ignorePre="true" />
<dbType type="_CID" ignoreLen="true" ignorePre="true" />
<dbType type="_CIDR" ignoreLen="true" ignorePre="true" />
<dbType type="_CIRCLE" ignoreLen="true" ignorePre="true" />
<dbType type="_DATE" ignoreLen="true" ignorePre="true" />
<dbType type="_FLOAT4" ignoreLen="true" ignorePre="true" />
<dbType type="_FLOAT8" ignoreLen="true" ignorePre="true" />
<dbType type="_INET" ignoreLen="true" ignorePre="true" />
<dbType type="_INT2VECTOR" ignoreLen="true" ignorePre="true" />
<dbType type="_INT4" ignoreLen="true" ignorePre="true" />
<dbType type="_INT8" ignoreLen="true" ignorePre="true" />
<dbType type="_INTERVAL" ignoreLen="true" ignorePre="true" />
<dbType type="_LINE" ignoreLen="true" ignorePre="true" />
<dbType type="_LSEG" ignoreLen="true" ignorePre="true" />
<dbType type="_MACADDR" ignoreLen="true" ignorePre="true" />
<dbType type="_MONEY" ignoreLen="true" ignorePre="true" />
<dbType type="_NAME" ignoreLen="true" ignorePre="true" />
<dbType type="_NUMERIC" ignoreLen="true" ignorePre="true" />
<dbType type="_OID" ignoreLen="true" ignorePre="true" />
<dbType type="_OIDVECTOR" ignoreLen="true" ignorePre="true" />
<dbType type="_PATH" ignoreLen="true" ignorePre="true"/>
<dbType type="_POINT" ignoreLen="true" ignorePre="true" />
<dbType type="_POLYGON" ignoreLen="true" ignorePre="true" />
<dbType type="_REFCURSOR" ignoreLen="true" ignorePre="true" />
<dbType type="_REGCLASS" ignoreLen="true" ignorePre="true" />
<dbType type="_REGOPER" ignoreLen="true" ignorePre="true" />
<dbType type="_REGOPERATOR" ignoreLen="true" ignorePre="true" />
<dbType type="_REGPROC" ignoreLen="true" ignorePre="true" />
<dbType type="_REGPROCEDURE" ignoreLen="true" ignorePre="true" />
<dbType type="_REGTYPE" ignoreLen="true" ignorePre="true" />
<dbType type="_RELTIME" ignoreLen="true" ignorePre="true" />
<dbType type="_TEXT" ignoreLen="true" ignorePre="true" />
<dbType type="_TID" ignoreLen="true" ignorePre="true" />
<dbType type="_TIME" ignoreLen="true" ignorePre="true" />
<dbType type="_TIMESTAMP" ignoreLen="true" ignorePre="true" />
<dbType type="_TIMESTAMPTZ" ignoreLen="true" ignorePre="true" />
<dbType type="_TIMETZ" ignoreLen="true" ignorePre="true" />
<dbType type="_TINTERVAL" ignoreLen="true" ignorePre="true" />
<dbType type="_VARBIT" ignoreLen="true" ignorePre="true" />
<dbType type="_VARCHAR" ignoreLen="true" ignorePre="true" />
<dbType type="_XID" ignoreLen="true" ignorePre="true" />
</dbTypes>
<language name="java">
<talendToDbTypes><!-- Adviced mappings -->
<talendType type="id_List"/>
<talendType type="id_Boolean">
<dbType type="BOOL" default="true" />
</talendType>
<talendType type="id_Byte">
</talendType>
<talendType type="id_byte[]">
<dbType type="BIT" default="true" />
<dbType type="VARBIT" />
</talendType>
<talendType type="id_Character">
<dbType type="CHAR" default="true" />
<dbType type="BPCHAR" />
<dbType type="VARCHAR" />
<dbType type="TEXT" />
</talendType>
<talendType type="id_Date">
<dbType type="DATE" default="true" />
<dbType type="ABSTIME" />
<dbType type="TIMETZ" />
<dbType type="TIME" />
<dbType type="TIMESTAMPTZ" />
<dbType type="TIMESTAMP" />
<dbType type="INTERVAL" />
<dbType type="TINTERVAL" />
<dbType type="RELTIME" />
</talendType>
<talendType type="id_BigDecimal">
<dbType type="NUMERIC" default="true" />
<dbType type="FLOAT4" />
<dbType type="FLOAT8"/>
</talendType>
<talendType type="id_Double">
<dbType type="FLOAT4" />
<dbType type="FLOAT8" default="true" />
<dbType type="NUMERIC" />
</talendType>
<talendType type="id_Float">
<dbType type="FLOAT4" default="true" />
<dbType type="FLOAT8" />
<dbType type="NUMERIC" />
</talendType>
<talendType type="id_Integer">
<dbType type="INT2" />
<dbType type="INT4" default="true" />
<dbType type="SERIAL" />
<dbType type="INT8" />
<dbType type="BIGSERIAL" />
</talendType>
<talendType type="id_Long">
<dbType type="INT2" />
<dbType type="INT4" />
<dbType type="SERIAL" />
<dbType type="INT8" default="true" />
<dbType type="BIGSERIAL" />
</talendType>
<talendType type="id_Object">
<dbType type="_POINT" />
<dbType type="_POLYGON" />
<dbType type="_FLOAT4" />
<dbType type="_REFCURSOR" />
<dbType type="_REGCLASS" />
<dbType type="_REGOPER" />
<dbType type="_REGOPERATOR" />
<dbType type="_REGPROC" />
<dbType type="_REGPROCEDURE" />
<dbType type="_REGTYPE" />
<dbType type="_RELTIME" />
<dbType type="_TEXT" />
<dbType type="_TID" />
<dbType type="_TIMETZ" />
<dbType type="_TIME" />
<dbType type="_TIMESTAMPTZ" />
<dbType type="_TIMESTAMP" />
<dbType type="_TINTERVAL" />
<dbType type="_XID" />
<dbType type="ACLITEM" />
<dbType type="BYTEA" />
<dbType type="CID" />
<dbType type="CIDR" />
<dbType type="CIRCLE" />
<dbType type="INET" />
<dbType type="MACADDR" />
<dbType type="MONEY" />
<dbType type="OID" />
<dbType type="PATH" />
<dbType type="POLYGON" />
<dbType type="REFCURSOR" />
<dbType type="REGCLASS" />
<dbType type="REGOPER" />
<dbType type="REGOPERATOR" />
<dbType type="REGPROC" />
<dbType type="REGPROCEDURE" />
<dbType type="REGTYPE" />
<dbType type="SMGR" />
<dbType type="TID" />
<dbType type="XID" />
<dbType type="_CHAR" />
<dbType type="_ABSTIME" />
<dbType type="_ACLITEM" />
<dbType type="_INT8" />
<dbType type="_VARBIT" />
<dbType type="_BIT" />
<dbType type="_BOOL" />
<dbType type="BOX" />
<dbType type="_BOX" />
<dbType type="_BYTEA" />
<dbType type="_VARCHAR" />
<dbType type="_BPCHAR" />
<dbType type="_CID" />
<dbType type="_CIDR" />
<dbType type="_CIRCLE" />
<dbType type="_DATE" />
<dbType type="_FLOAT8" />
<dbType type="_INET" />
<dbType type="INT2VECTOR" />
<dbType type="_INT2VECTOR" />
<dbType type="_INT4" />
<dbType type="_INTERVAL" />
<dbType type="LINE" />
<dbType type="_LINE" />
<dbType type="LSEG" />
<dbType type="_LSEG" />
<dbType type="_MACADDR" />
<dbType type="_MONEY" />
<dbType type="NAME" />
<dbType type="_NAME" />
<dbType type="_NUMERIC" />
<dbType type="_OID" />
<dbType type="OIDVECTOR" />
<dbType type="_OIDVECTOR" />
<dbType type="_PATH" />
<dbType type="POINT" default="true" />
</talendType>
<talendType type="id_Short">
<dbType type="INT2" default="true" />
<dbType type="INT4" />
<dbType type="SERIAL" />
<dbType type="INT8" />
<dbType type="BIGSERIAL" />
</talendType>
<talendType type="id_String">
<dbType type="BPCHAR" />
<dbType type="VARCHAR" default="true" />
<dbType type="TEXT" />
</talendType>
</talendToDbTypes>
<dbToTalendTypes>
<dbType type="INT2" >
<talendType type="id_Short" default="true" />
</dbType>
<dbType type="INT4" >
<talendType type="id_Integer" default="true" />
</dbType>
<dbType type="SERIAL" >
<talendType type="id_Integer" default="true" />
</dbType>
<dbType type="INT8" >
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="BIGSERIAL" >
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="FLOAT4" >
<talendType type="id_Float" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="FLOAT8" >
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="NUMERIC">
<talendType type="id_Double"/>
<talendType type="id_BigDecimal" default="true"/>
</dbType>
<dbType type="BOOL" >
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BIT" >
<talendType type="id_byte[]" default="true" />
</dbType>
<dbType type="VARBIT" >
<talendType type="id_byte[]" default="true" />
</dbType>
<dbType type="CHAR" >
<talendType type="id_String" default="true" />
</dbType>
<dbType type="BPCHAR" >
<talendType type="id_String" default="true" />
</dbType>
<dbType type="VARCHAR" >
<talendType type="id_String" default="true" />
</dbType>
<dbType type="TEXT" >
<talendType type="id_String" default="true" />
</dbType>
<dbType type="DATE" >
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="ABSTIME" >
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIMETZ" >
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIME" >
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIMESTAMPTZ" >
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIMESTAMP" >
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="INTERVAL" >
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TINTERVAL" >
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="RELTIME" >
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="ACLITEM" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="BYTEA" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="CID" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="CIDR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="CIRCLE" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="INET" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="MACADDR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="MONEY" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="OID" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="PATH" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="POLYGON" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="REFCURSOR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="REGCLASS" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="REGOPER" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="REGOPERATOR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="REGPROC" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="REGPROCEDURE" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="REGTYPE" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="SMGR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="TID" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="XID" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="BOX" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="INT2VECTOR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="LINE" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="LSEG" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="NAME" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="OIDVECTOR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="POINT" >
<talendType type="id_Object" default="true" />
</dbType>
<!-- object -->
<dbType type="_OIDVECTOR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_PATH" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_NAME" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_NUMERIC" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_OID" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_LSEG" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_MACADDR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_MONEY" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_LINE" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_INT2VECTOR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_INT4" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_INTERVAL" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_BOX" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_BYTEA" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_VARCHAR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_BPCHAR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_CID" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_CIDR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_CIRCLE" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_DATE" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_FLOAT8" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_INET" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_CHAR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_ABSTIME" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_ACLITEM" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_INT8" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_VARBIT" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_BIT" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_BOOL" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_POINT" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_POLYGON" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_FLOAT4" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_REFCURSOR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_REGCLASS" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_REGOPER" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_REGOPERATOR" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_REGPROC" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_REGPROCEDURE" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_REGTYPE" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_RELTIME" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_TEXT" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_TID" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_TIMETZ" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_TIME" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_TIMESTAMPTZ" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_TIMESTAMP" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_TINTERVAL" >
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="_XID" >
<talendType type="id_Object" default="true" />
</dbType>
</dbToTalendTypes>
</language>
</dbms>
</mapping>

View File

@@ -43,9 +43,9 @@
<dbType type="BIT" default="true" />
</talendType>
<talendType type="id_Byte">
<dbType type="TINYINT" default="true" />
<dbType type="INT" default="true" />
<dbType type="BIGINT" />
<dbType type="INT" />
<dbType type="TINYINT" />
<dbType type="SMALLINT" />
</talendType>
<talendType type="id_byte[]">
@@ -204,8 +204,8 @@
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TINYINT">
<talendType type="id_Byte" default="true" />
<talendType type="id_Integer"/>
<talendType type="id_Integer" default="true" />
<talendType type="id_Byte"/>
<talendType type="id_Long"/>
<talendType type="id_Short"/>
</dbType>

View File

@@ -53,7 +53,9 @@ tWebServiceInput=java.base/java.lang
TCK_COMMON_ARGS=java.base/java.io,java.base/java.lang.invoke,java.base/java.lang.reflect,java.base/java.lang,java.base/java.net,java.base/java.nio,java.base/java.util,java.base/sun.nio.ch
# BigData distribution
SPARK_3_4_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
SPARK_3_3_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
SPARK_3_2_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
SPARK_3_1_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
SPARK_3_0_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar
SPARK_2_4_x=java.base/java.nio,java.base/sun.nio.ch,java.base/java.util,java.base/java.lang.invoke,java.base/sun.util.calendar

View File

@@ -26,26 +26,12 @@ import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
import org.eclipse.core.runtime.jobs.Job;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.widgets.WidgetFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.report.ItemsReportUtil;
import org.talend.commons.utils.io.FilesUtils;
import org.talend.commons.report.ReportAccessDialog;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.model.general.Project;
import org.talend.core.model.properties.Item;
@@ -175,8 +161,10 @@ public class ItemAnalysisReportManager {
boolean generateSuccess = ItemsReportUtil.generateReportFile(reportFile, ANALYSIS_REPORT_HEAD, recordLines);
if (generateSuccess) {
Display.getDefault().asyncExec(() -> {
AnalysisReportAccessDialog accessDialog = new AnalysisReportAccessDialog(
ReportAccessDialog accessDialog = new ReportAccessDialog(
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(),
Messages.getString("AnalysisReportAccessDialog.shellTitle"),
Messages.getString("AnalysisReportAccessDialog.generateSuccess"),
reportFile.getAbsolutePath());
accessDialog.open();
});
@@ -240,76 +228,3 @@ public class ItemAnalysisReportManager {
}
}
class AnalysisReportAccessDialog extends Dialog {
private String reportGeneratedFile;
protected AnalysisReportAccessDialog(Shell parentShell, String reportGeneratedFile) {
super(parentShell);
this.reportGeneratedFile = reportGeneratedFile;
}
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText(Messages.getString("AnalysisReportAccessDialog.shellTitle"));
}
@Override
protected void initializeBounds() {
getShell().setSize(700, 190);
Point location = getInitialLocation(getShell().getSize());
getShell().setLocation(location.x, location.y);
}
@Override
protected Control createDialogArea(Composite parent) {
GridLayout layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
Composite container = WidgetFactory.composite(SWT.NONE).layout(layout).layoutData(new GridData(GridData.FILL_BOTH))
.create(parent);
applyDialogFont(container);
Composite composite = new Composite(container, SWT.NONE);
GridLayout compositeLayout = new GridLayout();
compositeLayout.numColumns = 1;
compositeLayout.marginWidth = 0;
compositeLayout.marginTop = 8;
compositeLayout.marginLeft = 10;
composite.setLayout(compositeLayout);
Label successMsgLabel = new Label(composite, SWT.NONE);
successMsgLabel.setText(Messages.getString("AnalysisReportAccessDialog.generateSuccess"));
GridData gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL);
successMsgLabel.setLayoutData(gridData);
Link accessLink = new Link(composite, SWT.NONE);
accessLink.setText(Messages.getString("AnalysisReportAccessDialog.completeReportAvailable") + " <a>"
+ Messages.getString("AnalysisReportAccessDialog.accessReport") + "</a> ");
accessLink.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL));
accessLink.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
File reportFile = new File(reportGeneratedFile);
if (reportFile != null && reportFile.exists()) {
try {
FilesUtils.selectFileInSystemExplorer(reportFile);
} catch (Exception excep) {
ExceptionHandler.process(excep);
}
}
}
});
return container;
}
@Override
protected void createButtonsForButtonBar(Composite parent) {
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
}
}

View File

@@ -0,0 +1,128 @@
// ============================================================================
//
// Copyright (C) 2006-2023 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.commons.report;
import java.io.File;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.widgets.WidgetFactory;
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.utils.io.FilesUtils;
import org.talend.core.runtime.i18n.Messages;
/**
* DOC jding class global comment. Detailled comment
*/
public class ReportAccessDialog extends Dialog {
private String shellTitle;
private String message;
private String reportGeneratedFile;
public ReportAccessDialog(Shell parentShell, String shellTitle, String message, String reportGeneratedFile) {
super(parentShell);
this.shellTitle = shellTitle;
this.message = message;
this.reportGeneratedFile = reportGeneratedFile;
}
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText(shellTitle);
}
@Override
protected void initializeBounds() {
getShell().setSize(700, 190);
Point location = getInitialLocation(getShell().getSize());
getShell().setLocation(location.x, location.y);
}
@Override
protected Control createDialogArea(Composite parent) {
GridLayout layout = new GridLayout();
layout.marginWidth = 0;
layout.marginHeight = 0;
Composite container = WidgetFactory.composite(SWT.NONE).layout(layout).layoutData(new GridData(GridData.FILL_BOTH))
.create(parent);
applyDialogFont(container);
Composite composite = new Composite(container, SWT.NONE);
GridLayout compositeLayout = new GridLayout();
compositeLayout.numColumns = 1;
compositeLayout.marginWidth = 0;
compositeLayout.marginTop = 8;
compositeLayout.marginLeft = 10;
composite.setLayout(compositeLayout);
Label successMsgLabel = new Label(composite, SWT.NONE);
successMsgLabel.setText(message);
GridData gridData = new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL);
successMsgLabel.setLayoutData(gridData);
Composite noteComp = new Composite(composite, SWT.NONE);
noteComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
noteComp.setLayout(new FormLayout());
Label noteLabel = new Label(noteComp, SWT.NONE);
noteLabel.setText(Messages.getString("AnalysisReportAccessDialog.completeReportAvailable"));
FormData noteLabelFormData = new FormData();
noteLabelFormData.bottom = new FormAttachment(100, -5);
noteLabelFormData.left = new FormAttachment(0, 0);
noteLabel.setLayoutData(noteLabelFormData);
Button browseBtn = new Button(noteComp, SWT.NONE);
browseBtn.setText(Messages.getString("AnalysisReportAccessDialog.accessBrowse"));
FormData linkFormData = new FormData();
linkFormData.top = new FormAttachment(0, 0);
linkFormData.left = new FormAttachment(noteLabel, 5);
browseBtn.setLayoutData(linkFormData);
browseBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
File reportFile = new File(reportGeneratedFile);
if (reportFile != null && reportFile.exists()) {
try {
FilesUtils.selectFileInSystemExplorer(reportFile);
} catch (Exception excep) {
ExceptionHandler.process(excep);
}
}
}
});
return container;
}
@Override
protected void createButtonsForButtonBar(Composite parent) {
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
}
}

View File

@@ -54,4 +54,6 @@ public interface ILibraryManagerUIService extends IService {
public boolean confirmDialog(String originalJarFileName);
public IConfigModuleDialog getConfigModuleDialog(Shell parentShell, String initValue, boolean allowDetectDependencies);
public String getLicenseUrlByName(String licenceName);
}

View File

@@ -60,8 +60,6 @@ public interface ITDQRepositoryService extends IService {
*/
public void notifySQLExplorer(Item... items);
public void fillMetadata(ConnectionItem connItem);
public void refresh();
// Added 20120503 yyin

View File

@@ -66,7 +66,6 @@ public enum EDatabase4DriverClassName {
// Take care, PSQL is set as first here since actually the audit will take the first db with the postgresql driver
// if change the order, it might break the audit for PSQL.
PSQL(EDatabaseTypeName.PSQL, "org.postgresql.Driver"), //$NON-NLS-1$
PLUSPSQL(EDatabaseTypeName.PLUSPSQL, "org.postgresql.Driver"), //$NON-NLS-1$
GREENPLUM(EDatabaseTypeName.GREENPLUM, "com.pivotal.jdbc.GreenplumDriver"), //$NON-NLS-1$
GREENPLUM_PSQL(EDatabaseTypeName.GREENPLUM, "org.postgresql.Driver"), //$NON-NLS-1$
SAS(EDatabaseTypeName.SAS, "com.sas.rio.MVADriver"), //$NON-NLS-1$

View File

@@ -118,6 +118,7 @@ public enum EDatabaseTypeName {
// General JDBC not support schema defalut
GENERAL_JDBC(
"General JDBC", "General JDBC", Boolean.FALSE, "JDBC", EDatabaseSchemaOrCatalogMapping.Sid, EDatabaseSchemaOrCatalogMapping.None), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
EXASOL(
"Exasol", "Exasol", Boolean.TRUE, "Exasol", EDatabaseSchemaOrCatalogMapping.Sid, EDatabaseSchemaOrCatalogMapping.None), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$

View File

@@ -49,10 +49,6 @@ public enum EDatabaseConnTemplate {
"jdbc:postgresql://<host>:<port>/<sid>?<property>", //$NON-NLS-1$
"5432")), //$NON-NLS-1$
PLUSPSQL(new DbConnStr(EDatabaseTypeName.PLUSPSQL, //
"jdbc:postgresql://<host>:<port>/<sid>?<property>", //$NON-NLS-1$
"5432")), //$NON-NLS-1$
GREENPLUM(new DbConnStr(EDatabaseTypeName.GREENPLUM, //
"jdbc:pivotal:greenplum://<host>:<port>;;DatabaseName=<sid>;<property>", //$NON-NLS-1$
"5432")), //$NON-NLS-1$
@@ -382,7 +378,6 @@ public enum EDatabaseConnTemplate {
case ORACLE_OCI:
case ORACLE_CUSTOM:
case PSQL:
case PLUSPSQL:
case GREENPLUM:
case REDSHIFT:
case REDSHIFT_SSO:
@@ -426,7 +421,6 @@ public enum EDatabaseConnTemplate {
case REDSHIFT_SSO:
case SAPHana:
case PSQL:
case PLUSPSQL:
case GREENPLUM:
case INGRES:
case VECTORWISE:
@@ -470,7 +464,6 @@ public enum EDatabaseConnTemplate {
case HSQLDB_IN_PROGRESS:
case MAXDB:
case PSQL:
case PLUSPSQL:
return true;
default:
}

View File

@@ -22,7 +22,7 @@ import org.talend.core.database.EDatabaseTypeName;
*/
public class DbVersion4DriversForOracle11 extends DbVersion4Drivers {
public static final String DRIVER_1_6 = "ojdbc6.jar"; //$NON-NLS-1$
public static final String DRIVER_1_6 = "ojdbc6-11.2.0.4.jar"; //$NON-NLS-1$
public static final String DRIVER_1_5 = "ojdbc5.jar"; //$NON-NLS-1$

View File

@@ -54,12 +54,12 @@ public enum EDatabaseVersion4Drivers {
H2(new DbVersion4Drivers(EDatabaseTypeName.H2, "h2-2.1.214.jar")), //$NON-NLS-1$
//
JAVADB_EMBEDED(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_EMBEDED, "derby.jar")), //$NON-NLS-1$
JAVADB_EMBEDED(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_EMBEDED, "derby-10.14.2.0.jar")), //$NON-NLS-1$
SQLITE(new DbVersion4Drivers(EDatabaseTypeName.SQLITE, "sqlite-jdbc-3.40.0.0.jar")), //$NON-NLS-1$
FIREBIRD(new DbVersion4Drivers(EDatabaseTypeName.FIREBIRD, "jaybird-full-2.1.1.jar")), //$NON-NLS-1$
FIREBIRD(new DbVersion4Drivers(EDatabaseTypeName.FIREBIRD, "jaybird-2.1.1.jar")), //$NON-NLS-1$
TERADATA(new DbVersion4Drivers(EDatabaseTypeName.TERADATA,
new String[] { "terajdbc4-17.10.00.27.jar" })), //$NON-NLS-1$
JAVADB_DERBYCLIENT(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_DERBYCLIENT, "derbyclient.jar")), //$NON-NLS-1$
JAVADB_DERBYCLIENT(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_DERBYCLIENT, "derbyclient-10.14.2.0.jar")), //$NON-NLS-1$
NETEZZA(new DbVersion4Drivers(EDatabaseTypeName.NETEZZA, "nzjdbc.jar")), //$NON-NLS-1$
INFORMIX(new DbVersion4Drivers(EDatabaseTypeName.INFORMIX, "ifxjdbc.jar")), //$NON-NLS-1$
@@ -96,9 +96,6 @@ public enum EDatabaseVersion4Drivers {
PSQL_V9_X(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "v9 and later", "V9_X", "postgresql-42.6.0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
PSQL_PRIOR_TO_V9(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "Prior to v9 (Deprecated)", "PRIOR_TO_V9", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
PLUSPSQL_PRIOR_TO_V9(new DbVersion4Drivers(EDatabaseTypeName.PLUSPSQL,
"Prior to v9 (Deprecated)", "PRIOR_TO_V9", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
PLUSPSQL_V9_X(new DbVersion4Drivers(EDatabaseTypeName.PLUSPSQL, "v9 and later", "V9_X", "postgresql-42.6.0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
IBMDB2(new DbVersion4Drivers(EDatabaseTypeName.IBMDB2, new String[] { "db2jcc4.jar", "db2jcc_license_cu.jar", //$NON-NLS-1$ //$NON-NLS-2$
"db2jcc_license_cisuz.jar" })), //$NON-NLS-1$
IBMDB2ZOS(new DbVersion4Drivers(EDatabaseTypeName.IBMDB2ZOS, new String[] { "db2jcc4.jar", "db2jcc_license_cu.jar", //$NON-NLS-1$ //$NON-NLS-2$

View File

@@ -109,6 +109,10 @@ public interface IMetadataColumn {
public void setComment(String comment);
public int getRowNum();
public void setRowNum(int value);
public IMetadataColumn clone();
public IMetadataColumn clone(boolean withCustoms);

View File

@@ -346,6 +346,15 @@ public class MetadataColumn implements IMetadataColumn, Cloneable {
return this.comment;
}
int rowNum = 0;
public int getRowNum() {
return rowNum;
};
public void setRowNum(int value) {
this.rowNum = value;
}
/*
* (non-Javadoc)
*

View File

@@ -52,6 +52,7 @@ import org.talend.core.model.metadata.builder.connection.MDMConnection;
import org.talend.core.model.metadata.builder.connection.MetadataColumn;
import org.talend.core.model.metadata.builder.connection.MetadataTable;
import org.talend.core.model.metadata.builder.connection.SAPBWTable;
import org.talend.core.model.metadata.builder.connection.TacokitDatabaseConnection;
import org.talend.core.prefs.SSLPreferenceConstants;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.utils.KeywordsValidator;
@@ -785,4 +786,17 @@ public final class ConvertionHelper {
}
return entryString;
}
public static DatabaseConnection fillJDBCParams4TacokitDatabaseConnection(Connection conn) {
if (conn instanceof TacokitDatabaseConnection) {
TacokitDatabaseConnection tacokitDatabaseConnection = (TacokitDatabaseConnection) (conn);
if (tacokitDatabaseConnection.getDbmsId() == null) {
String trueDbType = getDbTypeByClassNameAndDriverJar(tacokitDatabaseConnection.getDriverClass(), null);
String product = EDatabaseTypeName.getTypeFromDisplayName(trueDbType).getProduct();
String mapping = MetadataTalendType.getDefaultDbmsFromProduct(product).getId();
tacokitDatabaseConnection.setDbmsId(mapping);
}
}
return (DatabaseConnection) conn;
}
}

View File

@@ -76,6 +76,7 @@ import org.talend.core.model.metadata.builder.connection.SAPFunctionUnit;
import org.talend.core.model.metadata.builder.connection.SalesforceModuleUnit;
import org.talend.core.model.metadata.builder.connection.SalesforceSchemaConnection;
import org.talend.core.model.metadata.builder.connection.SchemaTarget;
import org.talend.core.model.metadata.builder.connection.TacokitDatabaseConnection;
import org.talend.core.model.metadata.builder.connection.WSDLParameter;
import org.talend.core.model.metadata.builder.connection.WSDLSchemaConnection;
import org.talend.core.model.metadata.builder.connection.XMLFileNode;
@@ -1034,6 +1035,9 @@ public class RepositoryToComponentProperty {
return typeByProduct;
}
}
if (connection instanceof TacokitDatabaseConnection) {
return getTacokitDatabaseConnectionValue((TacokitDatabaseConnection)connection, value, table, targetComponent);
}
if (value.equals("FRAMEWORK_TYPE")) { //$NON-NLS-1$
if (isContextMode(connection, databaseType)) {
if (databaseType.equals("JavaDB Embeded")) { //$NON-NLS-1$
@@ -1176,7 +1180,6 @@ public class RepositoryToComponentProperty {
|| EDatabaseConnTemplate.ORACLE_CUSTOM.getDBDisplayName().equals(databaseType)
|| EDatabaseConnTemplate.ORACLEFORSID.getDBDisplayName().equals(databaseType)
|| EDatabaseConnTemplate.ORACLESN.getDBDisplayName().equals(databaseType)
|| EDatabaseConnTemplate.PLUSPSQL.getDBDisplayName().equals(databaseType)
|| EDatabaseConnTemplate.PSQL.getDBDisplayName().equals(databaseType)
|| EDatabaseConnTemplate.SAPHana.getDBDisplayName().equals(databaseType)
|| EDatabaseConnTemplate.MSSQL.getDBDisplayName().equals(databaseType)) {
@@ -1317,7 +1320,7 @@ public class RepositoryToComponentProperty {
}
return value2;
}
}
if(value.equals("SUPPORT_NLS")) {
return connection.isSupportNLS();
@@ -1892,6 +1895,122 @@ public class RepositoryToComponentProperty {
}
return null;
}
private static Object getTacokitDatabaseConnectionValue(TacokitDatabaseConnection connection, String value,
IMetadataTable table, String targetComponent) {
if (TacokitDatabaseConnection.KEY_DATASTORE_URL.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_URL.equals(value)
|| TacokitDatabaseConnection.KEY_URL.equals(value) || "URL".equals(value)) {
return getAppropriateValue(connection, connection.getURL());
}
if (TacokitDatabaseConnection.KEY_DATASTORE_HOST.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_HOST.equals(value)
|| TacokitDatabaseConnection.KEY_HOST.equals(value)) {
return getAppropriateValue(connection, connection.getServerName());
}
if (TacokitDatabaseConnection.KEY_DATASTORE_PORT.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_PORT.equals(value)
|| TacokitDatabaseConnection.KEY_PORT.equals(value)) {
return getAppropriateValue(connection, connection.getPort());
}
if (TacokitDatabaseConnection.KEY_DRIVER.equals(value)) {
return connection.getDrivers();
}
if (TacokitDatabaseConnection.KEY_DATASTORE_DRIVER.equals(value) || "DRIVER_JAR".equals(value)) {
List<Map<String, Object>> drivers = new ArrayList<Map<String, Object>>();
// map to datastore key
for (Map<String, Object> map : connection.getDrivers()) {
HashMap<String, Object> newMap = new HashMap<String, Object>();
for (Map.Entry<String, Object> entry : map.entrySet()) {
if (TacokitDatabaseConnection.KEY_DRIVER_PATH.equals(entry.getKey()) || TacokitDatabaseConnection.KEY_DATASTORE_DRIVER_PATH.equals(entry.getKey())) {
newMap.put(TacokitDatabaseConnection.KEY_DATASTORE_DRIVER_PATH, entry.getValue());
}
}
drivers.add(newMap);
}
return drivers;
}
if (TacokitDatabaseConnection.KEY_SP_DATASTORE_DRIVER.equals(value)) {
List<Map<String, Object>> drivers = new ArrayList<>();
for (Map<String, Object> map : connection.getDrivers()) {
HashMap<String, Object> newMap = new HashMap<>();
for (Map.Entry<String, Object> entry : map.entrySet()) {
if (TacokitDatabaseConnection.KEY_DRIVER_PATH.equals(entry.getKey())
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_DRIVER_PATH.equals(entry.getKey())) {
newMap.put(TacokitDatabaseConnection.KEY_SP_DATASTORE_DRIVER_PATH, entry.getValue());
}
}
drivers.add(newMap);
}
return drivers;
}
if (TacokitDatabaseConnection.KEY_DATASTORE_DRIVER_CLASS.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_DRIVER_CLASS.equals(value)
|| TacokitDatabaseConnection.KEY_DRIVER_CLASS.equals(value) || "DRIVER_CLASS".equals(value)) {
return getAppropriateValue(connection, connection.getDriverClass());
}
if (TacokitDatabaseConnection.KEY_DATASTORE_USER_ID.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_USER_ID.equals(value)
|| TacokitDatabaseConnection.KEY_USER_ID.equals(value) || "USERNAME".equals(value)) {
return getAppropriateValue(connection, connection.getUsername());
}
if (TacokitDatabaseConnection.KEY_DATASTORE_PASSWORD.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_PASSWORD.equals(value)
|| TacokitDatabaseConnection.KEY_PASSWORD.equals(value) || "PASSWORD".equals(value)) {
return getAppropriateValue(connection, connection.getRawPassword());
}
if (TacokitDatabaseConnection.KEY_DATASTORE_DATABASE_MAPPING.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_DATABASE_MAPPING.equals(value)
|| TacokitDatabaseConnection.KEY_DATABASE_MAPPING.equals(value)) {
return getAppropriateValue(connection, connection.getDatabaseMappingFile());
}
if (TacokitDatabaseConnection.KEY_DATASTORE_DATASOURCE_ALIAS.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_DATASOURCE_ALIAS.equals(value)
|| TacokitDatabaseConnection.KEY_DATASOURCE_ALIAS.equals(value)) {
return getAppropriateValue(connection, connection.getDatasourceAlias());
}
if (TacokitDatabaseConnection.KEY_DATASTORE_USE_SHARED_DB_CONNECTION.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_USE_SHARED_DB_CONNECTION.equals(value)
|| TacokitDatabaseConnection.KEY_USE_SHARED_DB_CONNECTION.equals(value)) {
return connection.useSharedDBConnection();
}
if (TacokitDatabaseConnection.KEY_DATASTORE_SHARED_DB_CONNECTION.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_SHARED_DB_CONNECTION.equals(value)
|| TacokitDatabaseConnection.KEY_SHARED_DB_CONNECTION.equals(value)) {
return getAppropriateValue(connection, connection.getSharedDBConnectionName());
}
if (TacokitDatabaseConnection.KEY_DATASTORE_USE_DATASOURCE.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_USE_DATASOURCE.equals(value)
|| TacokitDatabaseConnection.KEY_USE_DATASOURCE.equals(value)) {
return connection.useDatasourceAlias();
}
if (TacokitDatabaseConnection.KEY_DATASTORE_AUTHENTICATION_TYPE.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_AUTHENTICATION_TYPE.equals(value)
|| TacokitDatabaseConnection.KEY_AUTHENTICATION_TYPE.equals(value)) {
return getAppropriateValue(connection, connection.getAuthenticationType());
}
if (TacokitDatabaseConnection.KEY_DATASTORE_USE_AUTO_COMMIT.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_USE_AUTO_COMMIT.equals(value)
|| TacokitDatabaseConnection.KEY_USE_AUTO_COMMIT.equals(value)) {
return connection.useAutoCommit();
}
if (TacokitDatabaseConnection.KEY_DATASTORE_AUTO_COMMIT.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_AUTO_COMMIT.equals(value)
|| TacokitDatabaseConnection.KEY_AUTO_COMMIT.equals(value)) {
return connection.autoCommit();
}
if (TacokitDatabaseConnection.KEY_DATASTORE_ENABLE_DB_TYPE.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_ENABLE_DB_TYPE.equals(value)
|| TacokitDatabaseConnection.KEY_ENABLE_DB_TYPE.equals(value)) {
return connection.enableDBType();
}
if (TacokitDatabaseConnection.KEY_DATASTORE_DB_TYPE.equals(value)
|| TacokitDatabaseConnection.KEY_SP_DATASTORE_DB_TYPE.equals(value)
|| TacokitDatabaseConnection.KEY_DB_TYPE.equals(value)) {
return connection.getDatabaseType();
}
return connection.getPropertyValue(value);
}
private static String getAppropriateValue(Connection connection, String rawValue) {
if (isContextMode(connection, rawValue)) {
@@ -1901,17 +2020,6 @@ public class RepositoryToComponentProperty {
}
}
/**
* DOC nrousseau Comment method "getDatabaseValue".
*
* @param connection
* @param value
* @return
*/
private static Object getDatabaseValue(DatabaseConnection connection, String value) {
return getDatabaseValue(connection, value, null, null);
}
private static boolean isContextMode(Connection connection, String value) {
IMetadataManagmentUiService mmService = null;
if (GlobalServiceRegister.getDefault().isServiceRegistered(IMetadataManagmentUiService.class)) {
@@ -3115,7 +3223,7 @@ public class RepositoryToComponentProperty {
String paramName) {
for (IDragAndDropServiceHandler handler : DragAndDropManager.getHandlers()) {
if (handler.canHandle(connection)) {
return handler.isGenericRepositoryValue(componentProperties, paramName);
return handler.isGenericRepositoryValue(connection, componentProperties, paramName);
}
}
return false;
@@ -3125,7 +3233,7 @@ public class RepositoryToComponentProperty {
String paramName) {
for (IDragAndDropServiceHandler handler : DragAndDropManager.getHandlers()) {
if (handler.canHandle(connection)) {
return handler.getGenericRepositoryValue(componentProperties, paramName);
return handler.getGenericRepositoryValue(connection, componentProperties, paramName);
}
}
return null;

View File

@@ -629,7 +629,7 @@ public final class ElementParameterParser {
return processItem.getProperty().getLabel();
}
// hywang add for 6484
else if ("SELECTED_FILE".equals(param.getRepositoryValue())) { //$NON-NLS-1$
else if ("SELECTED_FILE".equals(param.calcRepositoryValue())) { //$NON-NLS-1$
IElementParameter propertyParam = param.getElement().getElementParameter("PROPERTY:REPOSITORY_PROPERTY_TYPE"); //$NON-NLS-1$
if (propertyParam != null && propertyParam.getValue() != null && !propertyParam.getValue().equals("")) { //$NON-NLS-1$
try {

View File

@@ -84,10 +84,30 @@ public interface IElementParameter {
public Object[] getListItemsValue();
public String getRepositoryValue();
public String calcRepositoryValue();
/**
* use {@link #calcRepositoryValue()} instead
*/
@Deprecated
default public String getRepositoryValue() {
return calcRepositoryValue();
}
default public String getRawRepositoryValue() {
return calcRepositoryValue();
}
public void setRepositoryValue(String repositoryValue);
default public String getRepositoryValueIf() {
return null;
}
default public void setRepositoryValueIf(String repositoryValue) {
}
public String getRepositoryProperty();
public void setRepositoryProperty(String repositoryProperty);

View File

@@ -69,6 +69,7 @@ import org.talend.core.model.properties.SalesforceSchemaConnectionItem;
import org.talend.core.model.properties.SnippetItem;
import org.talend.core.model.properties.SnippetVariable;
import org.talend.core.model.properties.TDQItem;
import org.talend.core.model.properties.TacokitDatabaseConnectionItem;
import org.talend.core.model.properties.ValidationRulesConnectionItem;
import org.talend.core.model.properties.WSDLSchemaConnectionItem;
import org.talend.core.model.properties.XmlFileConnectionItem;
@@ -592,6 +593,14 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
.valueOf("METADATA_SAP_BW_INFOOBJECT"); //$NON-NLS-1$
public final static ERepositoryObjectType JDBC = ERepositoryObjectType.valueOf("JDBC"); //$NON-NLS-1$
public static final ERepositoryObjectType METADATA_TACOKIT_JDBC = ERepositoryObjectType
.valueOf("repository.metadata.tacokit.jdbc.jdbcdatastore"); //$NON-NLS-1$
/**
* <font color="red">This value may be <b>null</b> if Snowflake is not installed, <b>should add NPE check</b></font>
*/
public final static ERepositoryObjectType SNOWFLAKE = ERepositoryObjectType.valueOf("Snowflake"); //$NON-NLS-1$
private static Map<String, ERepositoryObjectType> typeCacheById = new HashMap<String, ERepositoryObjectType>();
@@ -1075,6 +1084,10 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
public Object caseDatabaseConnectionItem(DatabaseConnectionItem object) {
return METADATA_CONNECTIONS;
}
public Object caseTacokitDatabaseConnectionItem(TacokitDatabaseConnectionItem object) {
return METADATA_TACOKIT_JDBC;
}
@Override
public Object caseSAPConnectionItem(SAPConnectionItem object) {

View File

@@ -102,6 +102,7 @@ import org.talend.designer.core.model.utils.emf.talendfile.ContextParameterType;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
import org.talend.designer.runprocess.ItemCacheManager;
import org.talend.repository.model.IProxyRepositoryFactory;
import org.talend.repository.model.IRepositoryNode;
import org.talend.repository.model.IRepositoryService;
import org.talend.repository.model.RepositoryNode;
@@ -1923,7 +1924,7 @@ public abstract class RepositoryUpdateManager {
return updateQueryObject(query, true, false);
}
public static boolean updateQuery(Query query, RepositoryNode node) {
public static boolean updateQuery(Query query, IRepositoryNode node) {
return updateQueryObject(query, true, false, node);
}
@@ -1965,7 +1966,7 @@ public abstract class RepositoryUpdateManager {
return repositoryUpdateManager.doWork(show, onlySimpleShow);
}
private static boolean updateQueryObject(Object parameter, boolean show, boolean onlySimpleShow, RepositoryNode node) {
private static boolean updateQueryObject(Object parameter, boolean show, boolean onlySimpleShow, IRepositoryNode node) {
Item item = node.getObject().getProperty().getItem();
List<Relation> relations = null;
if (parameter instanceof Query) {

View File

@@ -60,7 +60,7 @@ public abstract class AbstractDragAndDropServiceHandler implements IDragAndDropS
}
@Override
public boolean isGenericRepositoryValue(List<ComponentProperties> componentProperties, String paramName) {
public boolean isGenericRepositoryValue(Connection connection, List<ComponentProperties> componentProperties, String paramName) {
return false;
}
@@ -71,12 +71,12 @@ public abstract class AbstractDragAndDropServiceHandler implements IDragAndDropS
* java.lang.String)
*/
@Override
public Object getGenericRepositoryValue(List<ComponentProperties> componentProperties, String paramName) {
public Object getGenericRepositoryValue(Connection connection, List<ComponentProperties> componentProperties, String paramName) {
return null;
}
@Override
public boolean isGenericPropertiesValue(String paramName){
public boolean isGenericPropertiesValue(Connection connection, String paramName){
return false;
}
}

View File

@@ -119,9 +119,9 @@ public interface IDragAndDropServiceHandler {
* @param paramName
* @return
*/
public boolean isGenericRepositoryValue(List<ComponentProperties> componentProperties, String paramName);
public boolean isGenericRepositoryValue(Connection connection, List<ComponentProperties> componentProperties, String paramName);
public Object getGenericRepositoryValue(List<ComponentProperties> componentProperties, String paramName);
public Object getGenericRepositoryValue(Connection connection, List<ComponentProperties> componentProperties, String paramName);
public boolean isGenericPropertiesValue(String paramName);
public boolean isGenericPropertiesValue(Connection connection, String paramName);
}

View File

@@ -856,7 +856,8 @@ public final class ParameterValueUtil {
if (param != null) {
Object docValue = param.getValue();
if (docValue != null) {
if ((param.getRepositoryValue() != null && param.getRepositoryValue().toUpperCase().contains("PASSWORD") //$NON-NLS-1$
String repositoryValue = param.calcRepositoryValue();
if ((repositoryValue != null && repositoryValue.toUpperCase().contains("PASSWORD") //$NON-NLS-1$
|| EParameterFieldType.isPassword(param.getFieldType()))//
&& !ContextParameterUtils.containContextVariables((String) docValue)) {

View File

@@ -640,7 +640,7 @@ TalendLibsServerManager.cannotGetUserLibraryServer=Cannot get the user library s
MigrationReportAccessDialog.title=Project items migration
MigrationReportAccessDialog.migrateSuccess=Project items migrated successfully.
MigrationReportAccessDialog.completeReportAvailable=Check the report
MigrationReportAccessDialog.accessReport=here
MigrationReportAccessDialog.accessBrowse=Browse...
MigrationReportAccessDialog.provideAnalysisTool=You can run project analysis now to analyze your migrated project. This experimental tool will generate a report containing:
MigrationReportAccessDialog.listOfProblems=- List of items to fix manually.
MigrationReportAccessDialog.listItems=- List of items to check.
@@ -655,7 +655,7 @@ ItemAnalysisReportManager.Warning.message=Can't run a new analysis now. Wait for
AnalysisReportAccessDialog.shellTitle=Project analysis
AnalysisReportAccessDialog.generateSuccess=Project analysis completed successfully.
AnalysisReportAccessDialog.completeReportAvailable=Check the report
AnalysisReportAccessDialog.accessReport=here
AnalysisReportAccessDialog.accessBrowse=Browse...
AbstractPomTemplateProjectSettingPage.defaultTabLabel=Default
AbstractPomTemplateProjectSettingPage.customTabLabel=Custom
AbstractPomTemplateProjectSettingPage.previewButton=Preview

View File

@@ -492,8 +492,8 @@ EUpdateResult.Reload=Recharger les composants
EUpdateResult.Rename=Changer le nom
EUpdateResult.Add=Ajouter \u00E0 partir du r\u00E9f\u00E9rentiel
EUpdateResult.Delete=Supprimer du r\u00E9f\u00E9rentiel
UpdatesConstants.Context=Contexte
UpdatesConstants.ContextGroup=Groupe de contextes
UpdatesConstants.ContextVariable=Variable de contexte
UpdatesConstants.ContextEnvironment=Environnement de contexte
UpdatesConstants.Component=Composant
UpdatesConstants.Joblet=Joblet
UpdatesConstants.Spark_Joblet=Spark_Joblet
@@ -640,7 +640,7 @@ TalendLibsServerManager.cannotGetUserLibraryServer=Impossible d'obtenir le serve
MigrationReportAccessDialog.title=Migration des \u00E9l\u00E9ments du projet
MigrationReportAccessDialog.migrateSuccess=Les \u00E9l\u00E9ments du projet ont bien \u00E9t\u00E9 migr\u00E9s.
MigrationReportAccessDialog.completeReportAvailable=Consulter le rapport
MigrationReportAccessDialog.accessReport=ici
MigrationReportAccessDialog.accessBrowse=Parcourir...
MigrationReportAccessDialog.provideAnalysisTool=Vous pouvez ex\u00E9cuter une analyse de projet pour analyser votre projet migr\u00E9. Cet outil exp\u00E9rimental va g\u00E9n\u00E9rer un rapport contenant\u00A0:
MigrationReportAccessDialog.listOfProblems=- la liste des \u00E9l\u00E9ments \u00E0 corriger manuellement,
MigrationReportAccessDialog.listItems=- la liste des \u00E9l\u00E9ments \u00E0 v\u00E9rifier.
@@ -655,7 +655,7 @@ ItemAnalysisReportManager.Warning.message=Impossible d'ex\u00E9cuter une analyse
AnalysisReportAccessDialog.shellTitle=Analyse du projet
AnalysisReportAccessDialog.generateSuccess=Analyse du projet termin\u00E9e.
AnalysisReportAccessDialog.completeReportAvailable=Consulter le rapport
AnalysisReportAccessDialog.accessReport=ici
AnalysisReportAccessDialog.accessBrowse=Parcourir...
AbstractPomTemplateProjectSettingPage.defaultTabLabel=Par d\u00E9faut
AbstractPomTemplateProjectSettingPage.customTabLabel=Personnalis\u00E9
AbstractPomTemplateProjectSettingPage.previewButton=Aper\u00E7u

View File

@@ -492,8 +492,8 @@ EUpdateResult.Reload=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\u3092\u30EA\u30E
EUpdateResult.Rename=\u540D\u524D\u3092\u5909\u66F4
EUpdateResult.Add=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u304B\u3089\u8FFD\u52A0
EUpdateResult.Delete=\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u304B\u3089\u524A\u9664
UpdatesConstants.Context=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8
UpdatesConstants.ContextGroup=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7
UpdatesConstants.ContextVariable=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u5909\u6570
UpdatesConstants.ContextEnvironment=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u74B0\u5883
UpdatesConstants.Component=\u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8
UpdatesConstants.Joblet=\u30B8\u30E7\u30D6\u30EC\u30C3\u30C8
UpdatesConstants.Spark_Joblet=Spark_Joblet
@@ -640,7 +640,7 @@ TalendLibsServerManager.cannotGetUserLibraryServer=\u30EA\u30E2\u30FC\u30C8\u7BA
MigrationReportAccessDialog.title=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u9805\u76EE\u3092\u79FB\u884C
MigrationReportAccessDialog.migrateSuccess=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u9805\u76EE\u304C\u6B63\u3057\u304F\u79FB\u884C\u3055\u308C\u307E\u3057\u305F\u3002
MigrationReportAccessDialog.completeReportAvailable=\u30EC\u30DD\u30FC\u30C8\u3092\u30C1\u30A7\u30C3\u30AF
MigrationReportAccessDialog.accessReport=\u3053\u3061\u3089
MigrationReportAccessDialog.accessBrowse=\u53C2\u7167...
MigrationReportAccessDialog.provideAnalysisTool=\u4ECA\u3059\u3050\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206\u6790\u3092\u5B9F\u884C\u3057\u3066\u3001\u79FB\u884C\u3055\u308C\u305F\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u3092\u5206\u6790\u3067\u304D\u307E\u3059\u3002\u3053\u306E\u8A66\u9A13\u7684\u306A\u30C4\u30FC\u30EB\u306B\u3088\u3063\u3066\u3001\u4EE5\u4E0B\u304C\u542B\u307E\u308C\u308B\u30EC\u30DD\u30FC\u30C8\u304C\u751F\u6210\u3055\u308C\u307E\u3059:
MigrationReportAccessDialog.listOfProblems=- \u624B\u52D5\u3067\u4FEE\u6B63\u3059\u308B\u30A2\u30A4\u30C6\u30E0\u306E\u30EA\u30B9\u30C8\u3002
MigrationReportAccessDialog.listItems=- \u30C1\u30A7\u30C3\u30AF\u3059\u308B\u30A2\u30A4\u30C6\u30E0\u306E\u30EA\u30B9\u30C8\u3002
@@ -655,7 +655,7 @@ ItemAnalysisReportManager.Warning.message=\u65B0\u3057\u3044\u5206\u6790\u3092\u
AnalysisReportAccessDialog.shellTitle=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206\u6790
AnalysisReportAccessDialog.generateSuccess=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206\u6790\u304C\u6B63\u3057\u304F\u5B8C\u4E86\u3057\u307E\u3057\u305F\u3002
AnalysisReportAccessDialog.completeReportAvailable=\u30EC\u30DD\u30FC\u30C8\u3092\u30C1\u30A7\u30C3\u30AF
AnalysisReportAccessDialog.accessReport=\u3053\u3061\u3089
AnalysisReportAccessDialog.accessBrowse=\u53C2\u7167...
AbstractPomTemplateProjectSettingPage.defaultTabLabel=\u30C7\u30D5\u30A9\u30EB\u30C8
AbstractPomTemplateProjectSettingPage.customTabLabel=\u30AB\u30B9\u30BF\u30E0
AbstractPomTemplateProjectSettingPage.previewButton=\u30D7\u30EC\u30D3\u30E5\u30FC

View File

@@ -492,8 +492,8 @@ EUpdateResult.Reload=\u91CD\u65B0\u52A0\u8F7D\u7EC4\u4EF6
EUpdateResult.Rename=\u66F4\u6539\u540D\u79F0
EUpdateResult.Add=\u4ECE\u5B58\u50A8\u5E93\u6DFB\u52A0
EUpdateResult.Delete=\u4ECE\u5B58\u50A8\u5E93\u4E2D\u5220\u9664
UpdatesConstants.Context=\u4E0A\u4E0B\u6587
UpdatesConstants.ContextGroup=\u4E0A\u4E0B\u6587\u7EC4
UpdatesConstants.ContextVariable=\u4E0A\u4E0B\u6587\u53D8\u91CF
UpdatesConstants.ContextEnvironment=\u4E0A\u4E0B\u6587\u73AF\u5883
UpdatesConstants.Component=\u7EC4\u4EF6
UpdatesConstants.Joblet=Joblet
UpdatesConstants.Spark_Joblet=Spark_Joblet
@@ -640,7 +640,7 @@ TalendLibsServerManager.cannotGetUserLibraryServer=\u65E0\u6CD5\u4ECE\u8FDC\u7A0
MigrationReportAccessDialog.title=\u5DE5\u7A0B\u9879\u76EE\u8FC1\u79FB
MigrationReportAccessDialog.migrateSuccess=\u5DE5\u7A0B\u9879\u76EE\u8FC1\u79FB\u6210\u529F\u3002
MigrationReportAccessDialog.completeReportAvailable=\u8BF7\u68C0\u67E5\u62A5\u544A
MigrationReportAccessDialog.accessReport=\u6B64\u5904
MigrationReportAccessDialog.accessBrowse=\u6D4F\u89C8...
MigrationReportAccessDialog.provideAnalysisTool=\u60A8\u73B0\u5728\u53EF\u4EE5\u8FD0\u884C\u5DE5\u7A0B\u5206\u6790\u4EE5\u5206\u6790\u8FC1\u79FB\u7684\u5DE5\u7A0B\u3002\u6B64\u5B9E\u9A8C\u6027\u5DE5\u5177\u5C06\u751F\u6210\u4E00\u4EFD\u5206\u6790\u62A5\u544A\uFF0C\u5176\u4E2D\u5305\u542B:
MigrationReportAccessDialog.listOfProblems=- \u9700\u8981\u624B\u52A8\u4FEE\u590D\u7684\u9879\u76EE\u6E05\u5355\u3002
MigrationReportAccessDialog.listItems=- \u9700\u8981\u68C0\u67E5\u7684\u9879\u76EE\u6E05\u5355\u3002
@@ -655,7 +655,7 @@ ItemAnalysisReportManager.Warning.message=\u73B0\u5728\u65E0\u6CD5\u8FD0\u884C\u
AnalysisReportAccessDialog.shellTitle=\u5DE5\u7A0B\u5206\u6790
AnalysisReportAccessDialog.generateSuccess=\u5DE5\u7A0B\u5206\u6790\u6210\u529F\u5B8C\u6210\u3002
AnalysisReportAccessDialog.completeReportAvailable=\u8BF7\u68C0\u67E5\u62A5\u544A
AnalysisReportAccessDialog.accessReport=\u6B64\u5904
AnalysisReportAccessDialog.accessBrowse=\u6D4F\u89C8...
AbstractPomTemplateProjectSettingPage.defaultTabLabel=\u9ED8\u8BA4
AbstractPomTemplateProjectSettingPage.customTabLabel=\u81EA\u5B9A\u4E49
AbstractPomTemplateProjectSettingPage.previewButton=\u9884\u89C8

View File

@@ -19,6 +19,7 @@ import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.swt.widgets.Composite;
import org.talend.components.api.properties.ComponentProperties;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.model.metadata.IMetadataTable;
import org.talend.core.model.metadata.builder.connection.Connection;
@@ -68,4 +69,11 @@ public interface IGenericDBService extends IService{
public List<ERepositoryObjectType> getAllGenericMetadataDBRepositoryType();
public static IGenericDBService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IGenericDBService.class)) {
return GlobalServiceRegister.getDefault().getService(IGenericDBService.class);
}
return null;
}
}

View File

@@ -14,7 +14,9 @@ package org.talend.core.runtime.services;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.talend.components.api.component.ComponentDefinition;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.model.components.IComponent;
@@ -64,6 +66,10 @@ public interface IGenericService extends IService {
public void validateGenericConnection(Connection conn) throws Exception;
void mergeGenericNodes(RepositoryNode parent, String type);
Set<ComponentDefinition> getJDBCComponentDefinitions();
public static IGenericService getService() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IGenericService.class)) {
return GlobalServiceRegister.getDefault().getService(IGenericService.class);

View File

@@ -15,10 +15,14 @@ package org.talend.core.runtime.services;
import java.util.List;
import java.util.Map;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jface.wizard.IWizard;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.IWorkbench;
import org.talend.commons.ui.swt.actions.ITreeContextualAction;
import org.talend.components.api.properties.ComponentProperties;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.model.metadata.Dbms;
import org.talend.core.model.metadata.IMetadataTable;
@@ -31,6 +35,7 @@ import org.talend.core.model.process.IElement;
import org.talend.core.model.process.INode;
import org.talend.core.model.properties.Item;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.repository.model.RepositoryNode;
/**
@@ -152,4 +157,17 @@ public interface IGenericWizardService extends IService {
public String getDatabseNameByNode(IElement node);
public Dbms getDbms4AdditionalJDBC(String typeName);
public IWizard newSchemaWizard(IWorkbench workbench, boolean creation, IRepositoryViewObject object,
MetadataTable metadataTable, String[] existingNames, boolean forceReadOnly);
void openGenericWizard(String type, boolean creation, IPath path, String[] existingNames);
public static IGenericWizardService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IGenericWizardService.class)) {
return GlobalServiceRegister.getDefault().getService(IGenericWizardService.class);
}
return null;
}
}

View File

@@ -20,6 +20,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.Properties;
import java.util.Set;
@@ -148,7 +149,7 @@ public class ModuleAccessHelper {
Set<JobInfo> allJobInfos = new HashSet<>();
allJobInfos.add(new JobInfo(mainJobItem, mainJobItem.getProcess().getDefaultContext()));
allJobInfos.addAll(processor.getBuildChildrenJobsAndJoblets());
return ModuleAccessHelper.getModuleAccessVMArgs(property, allJobInfos);
return getModuleAccessVMArgs(property, allJobInfos);
}
@SuppressWarnings("unchecked")
@@ -193,6 +194,9 @@ public class ModuleAccessHelper {
.anyMatch(p -> ((ElementParameterType) p).getField() != null
&& EParameterFieldType.TECHNICAL.getName().equals(((ElementParameterType) p).getField())
&& ((ElementParameterType) p).getName().equals("TACOKIT_COMPONENT_ID")));
if (!hasTck) {
hasTck = hasExtraSettings(parameters);
}
}
}
if (hasTck) {
@@ -206,6 +210,29 @@ public class ModuleAccessHelper {
return vmArgs;
}
private static boolean hasExtraSettings(EList<ElementParameterType> parameters) {
if (parameters == null) {
return false;
}
Map<String, String> paramMap = parameters.stream().filter(p -> p.getName() != null && p.getValue() != null)
.collect(Collectors.toMap(ElementParameterType::getName, ElementParameterType::getValue, (a1, a2) -> a1));
// Implicit context
if (Boolean.valueOf(paramMap.getOrDefault("IMPLICIT_TCONTEXTLOAD", "false"))
&& Boolean.valueOf(paramMap.getOrDefault("FROM_DATABASE_FLAG_IMPLICIT_CONTEXT", "false"))
&& "JDBCInput".equals(paramMap.get("DB_TYPE_IMPLICIT_CONTEXT"))) {
return true;
}
// Stats&Logs
if ((Boolean.valueOf(paramMap.getOrDefault("ON_STATCATCHER_FLAG", "false"))
|| Boolean.valueOf(paramMap.getOrDefault("ON_LOGCATCHER_FLAG", "false"))
|| Boolean.valueOf(paramMap.getOrDefault("ON_METERCATCHER_FLAG", "false")))
&& Boolean.valueOf(paramMap.getOrDefault("ON_DATABASE_FLAG", "false"))
&& "JDBCOutput".equals(paramMap.get("DB_TYPE"))) {
return true;
}
return false;
}
public static void reset() {
PROPS = null;
}

View File

@@ -14,6 +14,7 @@ package org.talend.core.service;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.signon.util.PAT;
import org.talend.signon.util.TokenMode;
import org.talend.signon.util.listener.LoginEventListener;
@@ -53,4 +54,21 @@ public interface ICloudSignOnService extends IService {
}
return null;
}
/**
* Introspect PAT to retrieve the pat_created date and user info
* @param pat Personal access token of TMC
* @param dataCenter data center of TMC
* @return Introspected PAT
*/
PAT introspectPAT(String pat, String dataCenter);
/**
* Introspect pat and check whether pat is allowed
*
* @param pat Personal access token
* @param tmcUrl tmc url
* @return valid or not
*/
boolean validatePAT(String pat, String tmcUrl);
}

View File

@@ -24,7 +24,9 @@ import java.util.List;
import java.util.Set;
import org.apache.commons.lang3.StringUtils;
import org.talend.commons.CommonsPlugin;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.model.general.Project;
import org.talend.core.model.properties.Item;
@@ -88,6 +90,13 @@ public interface IDetectCVEService extends IService {
*/
void clearCache();
public static IDetectCVEService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IDetectCVEService.class)) {
return GlobalServiceRegister.getDefault().getService(IDetectCVEService.class);
}
return null;
}
public static String mavenUri2GAV(String uri) {
if (MavenUrlHelper.isMvnUrl(uri)) {
MavenArtifact art = MavenUrlHelper.parseMvnUrl(uri);
@@ -1009,7 +1018,7 @@ public interface IDetectCVEService extends IService {
this.version = ver;
}
private Date parseVersion() {
public Date parseVersion() {
String ver = version;
if (ver != null) {
if (ver.startsWith("R")) {
@@ -1019,7 +1028,10 @@ public interface IDetectCVEService extends IService {
try {
return df.parse(ver);
} catch (ParseException e) {
ExceptionHandler.process(e);
if (CommonsPlugin.isDebugMode()) {
// avoid too much log
ExceptionHandler.process(e);
}
}
}
return null;

View File

@@ -0,0 +1,56 @@
// ============================================================================
//
// Copyright (C) 2006-2023 Talend Inc. - www.talend.com
//
// This source code is available under agreement available at
// %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt
//
// You should have received a copy of the agreement
// along with this program; if not, write to Talend SA
// 9 rue Pages 92150 Suresnes, France
//
// ============================================================================
package org.talend.core.service;
import java.util.function.BiFunction;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jface.wizard.Wizard;
import org.eclipse.swt.graphics.Image;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.model.components.IComponent;
import org.talend.core.model.metadata.builder.connection.Connection;
import org.talend.core.model.repository.ERepositoryObjectType;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.repository.model.RepositoryNode;
public interface ITCKUIService extends IService {
RepositoryNode createTaCoKitRepositoryNode(RepositoryNode parent, ERepositoryObjectType repObjType,
IRepositoryViewObject repositoryObject, Connection connection) throws Exception;
Image getTCKImage(Object element, BiFunction<Image, IRepositoryViewObject, Image> decorator);
boolean isTCKRepoistoryNode(RepositoryNode node);
ERepositoryObjectType getTCKRepositoryType(String componentName);
ERepositoryObjectType getTCKJDBCType();
Wizard createTCKWizard(String type, IPath path);
Wizard createTCKWizard(String type, IPath path, boolean isNew);
Wizard editTCKWizard(RepositoryNode node);
String getComponentFamilyName(IComponent component);
public static ITCKUIService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ITCKUIService.class)) {
return GlobalServiceRegister.getDefault().getService(ITCKUIService.class);
}
return null;
}
}

View File

@@ -174,6 +174,8 @@ public class ConnectionParameters {
private Map<String, String> parameters;
private String selectContext = null;
private boolean isTacokitJDBC = false;
/**
* Sets the connectionComment.
@@ -917,4 +919,16 @@ public class ConnectionParameters {
this.selectContext = selectContext;
}
public boolean isTacokitJDBC() {
return isTacokitJDBC;
}
public void setTacokitJDBC(boolean isTacokitJDBC) {
this.isTacokitJDBC = isTacokitJDBC;
}
}

View File

@@ -453,7 +453,6 @@ public final class TalendQuoteUtils {
return QUOTATION_MARK;
case PSQL:
case GREENPLUM:
case PLUSPSQL:
return QUOTATION_MARK;
case SYBASEASE:
return QUOTATION_MARK;

View File

@@ -21,13 +21,15 @@ import org.eclipse.swt.SWT;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.FormAttachment;
import org.eclipse.swt.layout.FormData;
import org.eclipse.swt.layout.FormLayout;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Link;
import org.eclipse.swt.widgets.Shell;
import org.talend.analysistask.ItemAnalysisReportManager;
import org.talend.commons.exception.ExceptionHandler;
@@ -84,11 +86,23 @@ public class MigrationReportAccessDialog extends Dialog {
migrationInfoLayout.marginLeft = 10;
migrationInfoArea.setLayout(migrationInfoLayout);
createMessageLabel(migrationInfoArea, Messages.getString("MigrationReportAccessDialog.migrateSuccess"));
Link accessLink = new Link(migrationInfoArea, SWT.NONE);
accessLink.setText(Messages.getString("MigrationReportAccessDialog.completeReportAvailable") + " <a>"
+ Messages.getString("MigrationReportAccessDialog.accessReport") + "</a> .");
accessLink.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL | GridData.FILL_VERTICAL));
accessLink.addSelectionListener(new SelectionAdapter() {
Composite noteComp = new Composite(migrationInfoArea, SWT.NONE);
noteComp.setLayoutData(new GridData(SWT.FILL, SWT.FILL, false, false));
noteComp.setLayout(new FormLayout());
Label noteLabel = new Label(noteComp, SWT.NONE);
noteLabel.setText(Messages.getString("MigrationReportAccessDialog.completeReportAvailable"));
FormData noteLabelFormData = new FormData();
noteLabelFormData.bottom = new FormAttachment(100, -5);
noteLabelFormData.left = new FormAttachment(0, 0);
noteLabel.setLayoutData(noteLabelFormData);
Button browseBtn = new Button(noteComp, SWT.NONE);
browseBtn.setText(Messages.getString("MigrationReportAccessDialog.accessBrowse"));
FormData linkFormData = new FormData();
linkFormData.top = new FormAttachment(0, 0);
linkFormData.left = new FormAttachment(noteLabel, 5);
browseBtn.setLayoutData(linkFormData);
browseBtn.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {

View File

@@ -262,6 +262,9 @@ public class RepositoryNodeUtilities {
}
RepositoryNode node = null;
IRepositoryNode nodeFromType = view.getRoot().getRootRepositoryNode(curNode.getRepositoryObjectType());
if (curNode.getRepositoryObjectType() == ERepositoryObjectType.METADATA_TACOKIT_JDBC) {
nodeFromType = view.getRoot().getRootRepositoryNode(ERepositoryObjectType.METADATA_CONNECTIONS);
}
if (nodeFromType != null) {
node = getRepositoryNode(nodeFromType, curNode, view, expanded);
}
@@ -715,7 +718,7 @@ public class RepositoryNodeUtilities {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IGenericWizardService.class)) {
wizardService = GlobalServiceRegister.getDefault().getService(IGenericWizardService.class);
}
if (wizardService != null && wizardService.isGenericType(type)) {
if (wizardService != null && wizardService.isGenericType(type) || ERepositoryObjectType.METADATA_TACOKIT_JDBC == type) {
return getGenericSchemaNode(connection, tableName);
}
if (repType == ERepositoryObjectType.METADATA_CON_QUERY) {

View File

@@ -586,3 +586,11 @@ I18nPreferencePage.wait_process=Le processus va prendre plusieurs minutes, patie
MetadataPreferencePage.EnableBasic.name=Autorise l'en-t\u00EAte d'authentification basique
MetadataPreferencePage.MessageDialog.Restart=Le Studio doit red\u00E9marrer pour que ce param\u00E8tre soit pris en compte.\nContinuer malgr\u00E9 tout ?
TalendTabbedPropertyTitle.componentHelpTooltip=Ouvrir l'aide en ligne
Java17NotificationPopup.title=Compatibilit\u00E9 avec Java 17
Java17NotificationPopup.info=Activez la compatibilit\u00E9 avec Java 17 pour tirer parti de votre Studio au maximum.\n<a>Ouvrir les param\u00E8tres du projet</a>
CapabilityCheckDialog.title=Compatibilit\u00E9 avec le moteur d'ex\u00E9cution
CapabilityCheckDialog.message=Avant de publier, assurez-vous que votre moteur d'ex\u00E9cution utilise Java 11 ou une version sup\u00E9rieure.
CapabilityCheckDialog.link=<a>En savoir plus</a>
CapabilityCheckDialog.toggle=Ne plus afficher ce message
CapabilityCheckDialog.cancel=Annuler
CapabilityCheckDialog.publish=Publier quand m\u00EAme

View File

@@ -586,3 +586,11 @@ I18nPreferencePage.wait_process=\u3053\u306E\u51E6\u7406\u306B\u306F\u6570\u5206
MetadataPreferencePage.EnableBasic.name=\u57FA\u672C\u8A8D\u8A3C\u30D8\u30C3\u30C0\u30FC\u3092\u6709\u52B9\u5316
MetadataPreferencePage.MessageDialog.Restart=\u3053\u306E\u8A2D\u5B9A\u304C\u6709\u52B9\u306B\u306A\u308B\u3088\u3046\u3001Studio\u3092\u518D\u8D77\u52D5\u3059\u308B\u5FC5\u8981\u304C\u3042\u308A\u307E\u3059\u3002\n\u7D9A\u884C\u3057\u307E\u3059\u304B?
TalendTabbedPropertyTitle.componentHelpTooltip=\u30AA\u30F3\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u3092\u958B\u304F
Java17NotificationPopup.title=Java 17\u3068\u306E\u4E92\u63DB\u6027
Java17NotificationPopup.info=Java 17\u3068\u306E\u4E92\u63DB\u6027\u3092\u6709\u52B9\u306B\u3057\u3066Studio\u3092\u6700\u5927\u9650\u306B\u6D3B\u7528\u3057\u307E\u3057\u3087\u3046\u3002\n<a>\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u8A2D\u5B9A\u3092\u958B\u304F</a>
CapabilityCheckDialog.title=\u30E9\u30F3\u30BF\u30A4\u30E0\u306E\u4E92\u63DB\u6027
CapabilityCheckDialog.message=\u516C\u958B\u3059\u308B\u524D\u306B\u3001\u30E9\u30F3\u30BF\u30A4\u30E0\u304CJava 11\u4EE5\u964D\u3067\u3042\u308B\u3053\u3068\u3092\u78BA\u8A8D\u3057\u3066\u304F\u3060\u3055\u3044\u3002
CapabilityCheckDialog.link=<a>\u8A73\u7D30</a>
CapabilityCheckDialog.toggle=\u6B21\u56DE\u304B\u3089\u3053\u306E\u30E1\u30C3\u30BB\u30FC\u30B8\u3092\u8868\u793A\u3057\u306A\u3044
CapabilityCheckDialog.cancel=\u30AD\u30E3\u30F3\u30BB\u30EB
CapabilityCheckDialog.publish=\u516C\u958B\u3059\u308B

View File

@@ -586,3 +586,11 @@ I18nPreferencePage.wait_process=\u8FD9\u4E2A\u8FC7\u7A0B\u5C06\u6301\u7EED\u51E0
MetadataPreferencePage.EnableBasic.name=\u542F\u7528\u57FA\u672C\u8EAB\u4EFD\u9A8C\u8BC1\u6807\u5934
MetadataPreferencePage.MessageDialog.Restart=\u6B64\u8BBE\u7F6E\u5C06\u5728 Studio \u91CD\u542F\u540E\u751F\u6548\u3002\n\u662F\u5426\u786E\u5B9A\uFF1F
TalendTabbedPropertyTitle.componentHelpTooltip=\u6253\u5F00\u5728\u7EBF\u5E2E\u52A9
Java17NotificationPopup.title=Java 17 \u517C\u5BB9\u6027
Java17NotificationPopup.info=\u542F\u7528 Java 17 \u517C\u5BB9\u6027\u4EE5\u5145\u5206\u5229\u7528\u60A8\u7684 Studio\u3002\n<a>\u6253\u5F00\u5DE5\u7A0B\u8BBE\u7F6E</a>
CapabilityCheckDialog.title=\u8FD0\u884C\u65F6\u517C\u5BB9\u6027
CapabilityCheckDialog.message=\u53D1\u5E03\u4E4B\u524D\uFF0C\u786E\u4FDD\u8FD0\u884C\u65F6\u4F7F\u7528\u7684\u662F Java 11 \u6216\u66F4\u9AD8\u7248\u672C\u3002
CapabilityCheckDialog.link=<a>\u4E86\u89E3\u66F4\u591A</a>
CapabilityCheckDialog.toggle=\u4E0D\u518D\u663E\u793A\u6B64\u6D88\u606F
CapabilityCheckDialog.cancel=\u53D6\u6D88
CapabilityCheckDialog.publish=\u4ECD\u7136\u53D1\u5E03

View File

@@ -48,6 +48,9 @@ public class ContextValueLabelAccumulator extends ColumnOverrideLabelAccumulator
public void accumulateConfigLabels(LabelStack configLabels, int columnPosition, int rowPosition) {
super.accumulateConfigLabels(configLabels, columnPosition, rowPosition);
boolean isAddedValueNotMatchStyle = false;
if (modelManager.getProcess() == null) {
return;
}
String currentColumnName = ContextRowDataListFixture.getPropertyNamesAsList(modelManager).get(columnPosition);
ContextTreeNode rowNode = ((GlazedListsDataProvider<ContextTreeNode>) dataProvider).getList().get(rowPosition);
if (configLabels.contains(ContextTableConstants.COLUMN_CONTEXT_VALUE)) {
@@ -62,7 +65,7 @@ public class ContextValueLabelAccumulator extends ColumnOverrideLabelAccumulator
}
}
}
if (!isAddedValueNotMatchStyle) {
if (rowNode.getTreeData() instanceof ContextTableTabParentModel) {
ContextTableTabParentModel rowModel = (ContextTableTabParentModel) rowNode.getTreeData();

View File

@@ -271,6 +271,7 @@ public class ExternalNodeComponentHandler extends AbstractComponentHandler {
value = eleObj.toString();
}
String repositoryValue = null;
if (elemparameter.getName().equals(EParameterFieldType.PROPERTY_TYPE.getName())
&& value.equals(IHTMLDocConstants.REPOSITORY)) {
String repositoryValueForPropertyType = getRepositoryValueForPropertyType(copyElementParameterList,
@@ -298,8 +299,8 @@ public class ExternalNodeComponentHandler extends AbstractComponentHandler {
// value = checkString(type.getListItemsDisplayName()[index]);
// }
else if (elemparameter.getRepositoryValue() != null
&& elemparameter.getRepositoryValue().toUpperCase().contains("PASSWORD") //$NON-NLS-1$
else if ((repositoryValue = elemparameter.calcRepositoryValue()) != null
&& repositoryValue.toUpperCase().contains("PASSWORD") //$NON-NLS-1$
|| EParameterFieldType.isPassword(elemparameter.getFieldType())) {
value = ParameterValueUtil.getValue4Doc(elemparameter).toString();
}

View File

@@ -205,6 +205,7 @@ public class InternalNodeComponentHandler extends AbstractComponentHandler {
if (eleObj != null) {
value = eleObj.toString();
}
String repositoryValue = null;
if (elemparameter.getFieldType() == EParameterFieldType.PROPERTY_TYPE) {
param = getElementParameter(elemparameter, EParameterFieldType.PROPERTY_TYPE);
if (param != null) {
@@ -241,8 +242,8 @@ public class InternalNodeComponentHandler extends AbstractComponentHandler {
// int index = type.getIndexOfItemFromList(type.getDisplayName());
// value = checkString(type.getListItemsDisplayName()[index]);
// }
else if (elemparameter.getRepositoryValue() != null
&& elemparameter.getRepositoryValue().toUpperCase().contains("PASSWORD") //$NON-NLS-1$
else if ((repositoryValue = elemparameter.calcRepositoryValue()) != null
&& repositoryValue.toUpperCase().contains("PASSWORD") //$NON-NLS-1$
|| EParameterFieldType.isPassword(elemparameter.getFieldType())) {
name = elemparameter.getDisplayName();
value = ParameterValueUtil.getValue4Doc(elemparameter).toString();

View File

@@ -210,10 +210,12 @@ public class MetadataDialog extends Dialog {
if (component.isSupportDbType() || component.getOriginalFamilyName().startsWith(DATABASE_LABEL)
|| eltComponent || isEBCDIC) {
dbComponent = !isEBCDIC;
for (IElementParameter currentParam : node.getElementParameters()) {
if (currentParam.getFieldType().equals(EParameterFieldType.MAPPING_TYPE)) {
metaView.setCurrentDbms((String) currentParam.getValue());
hasMappingType = true;
if (!isNewFram) {
for (IElementParameter currentParam : node.getElementParameters()) {
if (currentParam.getFieldType().equals(EParameterFieldType.MAPPING_TYPE)) {
metaView.setCurrentDbms((String) currentParam.getValue());
hasMappingType = true;
}
}
}
@@ -241,8 +243,9 @@ public class MetadataDialog extends Dialog {
}
String componentDbType = ""; //$NON-NLS-1$
for (IElementParameter param : (List<IElementParameter>) node.getElementParameters()) {
if (param.getRepositoryValue() != null) {
if (param.getRepositoryValue().equals("TYPE")) { //$NON-NLS-1$
String repositoryValue = param.calcRepositoryValue();
if (repositoryValue != null) {
if (repositoryValue.equals("TYPE")) { //$NON-NLS-1$
componentDbType = (String) param.getValue();
}
}

View File

@@ -109,6 +109,8 @@ public abstract class AbstractMetadataTableEditorView<B> extends AbstractDataTab
public static final String ID_COLUMN_USEFUL = "ID_COLUMN_USEFUL";
public static final String ID_COLUMN_ROW_NUM = "ID_COLUMN_ROW_NUM";
protected boolean showDbColumnName, showOriginalLength;
protected boolean showDbTypeColumn;
@@ -231,12 +233,7 @@ public abstract class AbstractMetadataTableEditorView<B> extends AbstractDataTab
@Override
protected void createColumns(TableViewerCreator<B> tableViewerCreator, Table table) {
// //////////////////////////////////////////////////////////////////////////////////////
tableViewerCreator.setReadOnly(false);
TableViewerCreatorColumn column = new TableViewerCreatorColumn(tableViewerCreator);
column.setTitle(""); //$NON-NLS-1$
column.setDefaultInternalValue(""); //$NON-NLS-1$
column.setWidth(15);
configureRowNumColumn(tableViewerCreator);
if (isRepository) {
configureUsefulColumn(tableViewerCreator);
}
@@ -333,6 +330,21 @@ public abstract class AbstractMetadataTableEditorView<B> extends AbstractDataTab
}
}
protected abstract IBeanPropertyAccessors<B, Integer> getRowNumAccessor();
protected void configureRowNumColumn(TableViewerCreator<B> tableViewerCreator) {
TableViewerCreatorColumn column;
column = new TableViewerCreatorColumn(tableViewerCreator);
column.setTitle("");
column.setToolTipHeader("");
column.setId(ID_COLUMN_ROW_NUM);
column.setBeanPropertyAccessors(getRowNumAccessor());
column.setWeight(5);
column.setModifiable(false);
column.setMinimumWidth(10);
column.setSortable(true);
}
protected void configureUsefulColumn(TableViewerCreator<B> tableViewerCreator) {
TableViewerCreatorColumn column;
column = new TableViewerCreatorColumn(tableViewerCreator);

View File

@@ -29,6 +29,7 @@ import org.talend.core.model.metadata.builder.connection.impl.MetadataColumnImpl
import org.talend.core.model.metadata.types.TypesManager;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.ui.proposal.JavaSimpleDateFormatProposalProvider;
import orgomg.cwm.objectmodel.core.TaggedValue;
/**
@@ -574,4 +575,22 @@ public class MetadataEmfTableEditorView extends AbstractMetadataTableEditorView<
// TODO Auto-generated method stub
return null;
}
@Override
protected IBeanPropertyAccessors<MetadataColumn, Integer> getRowNumAccessor() {
return new IBeanPropertyAccessors<MetadataColumn, Integer>() {
@Override
public Integer get(MetadataColumn bean) {
return bean.getRowNum();
}
@Override
public void set(MetadataColumn bean, Integer value) {
bean.setRowNum(value);
}
};
}
}

View File

@@ -181,6 +181,25 @@ public class MetadataTableEditorView extends AbstractMetadataTableEditorView<IMe
};
}
int rowNum = 0;
@Override
protected IBeanPropertyAccessors<IMetadataColumn, Integer> getRowNumAccessor() {
return new IBeanPropertyAccessors<IMetadataColumn, Integer>() {
@Override
public Integer get(IMetadataColumn bean) {
return bean.getRowNum();
}
@Override
public void set(IMetadataColumn bean, Integer value) {
bean.setRowNum(value);
}
};
}
@Override
protected IBeanPropertyAccessors<IMetadataColumn, String> getCommentAccessor() {
return new IBeanPropertyAccessors<IMetadataColumn, String>() {

View File

@@ -21,6 +21,7 @@ import javax.xml.parsers.ParserConfigurationException;
import org.eclipse.gef.commands.Command;
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
import org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorNotModifiable;
import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
import org.talend.core.model.metadata.MetadataColumnsAndDbmsId;
import org.talend.core.model.metadata.MetadataSchema;
@@ -81,7 +82,11 @@ public class MetadataEmfImportXmlCommand extends Command {
editor.getEditorView().setCurrentDbms(dbmsId);
}
}
// when not lazy load need to do refresh to refresh the row number
if (!TableViewerCreatorNotModifiable.getRecommandLazyLoad()
&& !TableViewerCreatorNotModifiable.isLazyLoadingEnabled()) {
extendedTableModel.getTableViewer().refresh();
}
} catch (ParserConfigurationException e) {
ExceptionHandler.process(e);
} catch (SAXException e) {

View File

@@ -21,6 +21,7 @@ import javax.xml.parsers.ParserConfigurationException;
import org.eclipse.gef.commands.Command;
import org.talend.commons.ui.runtime.exception.ExceptionHandler;
import org.talend.commons.ui.runtime.swt.tableviewer.TableViewerCreatorNotModifiable;
import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
import org.talend.core.model.metadata.IMetadataColumn;
import org.talend.core.model.metadata.MetadataSchema;
@@ -68,7 +69,11 @@ public class MetadataImportXmlCommand extends Command {
extendedTableModel.removeAll(removed);
added = MetadataSchema.initializeColumns(file);
extendedTableModel.addAll(added);
// when not lazy load need to do refresh to refresh the row number
if (!TableViewerCreatorNotModifiable.getRecommandLazyLoad()
&& !TableViewerCreatorNotModifiable.isLazyLoadingEnabled()) {
extendedTableModel.getTableViewer().refresh();
}
} catch (ParserConfigurationException e) {
ExceptionHandler.process(e);
} catch (SAXException e) {

View File

@@ -122,7 +122,7 @@ public class Java17NotificationPopup extends ArrangedNotificationPopup {
return false;
}
version = TalendQuoteUtils.removeQuotesIfExist(version);
if (Integer.parseInt(version.split("\\.")[0]) > 8) {
if (Integer.parseInt(version.split("[^\\d]+")[0]) > 8) {
// since Java 9
return true;
}
@@ -135,7 +135,7 @@ public class Java17NotificationPopup extends ArrangedNotificationPopup {
private static boolean isJava17() {
boolean isJava17 = false;
String javaVersion = System.getProperty("java.version");
String[] arr = javaVersion.split("\\.");
String[] arr = javaVersion.split("[^\\d]+");
try {
isJava17 = Integer.parseInt(arr[0]) >= 17;
} catch (NumberFormatException e) {
@@ -144,5 +144,5 @@ public class Java17NotificationPopup extends ArrangedNotificationPopup {
}
return isJava17;
}
}

View File

@@ -17,6 +17,7 @@ import java.util.List;
import org.talend.core.CorePlugin;
import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.language.LanguageManager;
import org.talend.core.model.metadata.builder.connection.TacokitDatabaseConnection;
import org.talend.core.model.metadata.query.GenerateQueryFactory;
import org.talend.core.model.metadata.query.IQueryGenerator;
import org.talend.core.model.process.EParameterFieldType;
@@ -58,7 +59,6 @@ public class QueryUtil {
case ORACLEFORSID:
case ORACLESN:
case PSQL:
case PLUSPSQL:
case AS400:
case ACCESS:
case MYSQL:
@@ -408,6 +408,9 @@ public class QueryUtil {
if(param == null){
param = node.getElementParameterFromField(EParameterFieldType.NAME_SELECTION_REFERENCE);
}
if(param == null){
param = node.getElementParameter(TacokitDatabaseConnection.KEY_DATASET_TABLE_NAME);
}
if (param != null && param.isShow(node.getElementParameters())) {
return (String) param.getValue();
}
@@ -415,17 +418,6 @@ public class QueryUtil {
return null;
}
private static String getDbName(Element node) {
String dbName = null;
if (node != null) { // for job settings extra.(feature 2710)
IElementParameter param = node.getElementParameter("DBNAME");
if (param != null && param.isShow(node.getElementParameters())) {
dbName = TalendTextUtils.removeQuotes((String) param.getValue());
}
}
return dbName;
}
private static String checkAndConcatString(String str1, String str2) {
if (str1 == null) {
str1 = ""; //$NON-NLS-1$

View File

@@ -21,6 +21,7 @@ import org.talend.core.language.LanguageManager;
import org.talend.core.model.metadata.IMetadataColumn;
import org.talend.core.model.metadata.IMetadataTable;
import org.talend.core.model.metadata.QueryUtil;
import org.talend.core.model.metadata.builder.connection.TacokitDatabaseConnection;
import org.talend.core.model.process.EParameterFieldType;
import org.talend.core.model.process.IElement;
import org.talend.core.model.process.IElementParameter;
@@ -143,6 +144,9 @@ public abstract class AbstractQueryGenerator implements IQueryGenerator {
IElementParameter param = elem.getElementParameterFromField(EParameterFieldType.DBTABLE);
if(param == null){
param = elem.getElementParameterFromField(EParameterFieldType.NAME_SELECTION_REFERENCE);
}
if(param == null){
param = elem.getElementParameter(TacokitDatabaseConnection.KEY_DATASET_TABLE_NAME);
}
if (param != null) {
if (param.isShow(elem.getElementParameters())) {
@@ -219,7 +223,7 @@ public abstract class AbstractQueryGenerator implements IQueryGenerator {
protected String getSchema(IElement elem) {
if (elem != null) {
for (IElementParameter param : elem.getElementParameters()) {
if ("SCHEMA".equals(param.getRepositoryValue())) { //$NON-NLS-1$
if ("SCHEMA".equals(param.calcRepositoryValue())) { //$NON-NLS-1$
if (param.isShow(elem.getElementParameters())) {
String value = (String) param.getValue();
if (value != null) {

View File

@@ -53,7 +53,6 @@ public final class GenerateQueryFactory {
return new ImpalaQueryGenerator(dbType);
case NETEZZA:
return new NetezzaQueryGenerator();
case PLUSPSQL:
case PSQL:
return new PostgreQueryGenerator(dbType);
case AS400:

View File

@@ -49,12 +49,12 @@ public enum EConnectionParameterName {
// TDQ-17294~
GENERIC_TABLENAME("tableSelection.tablename"),//$NON-NLS-1$
GENERIC_USERNAME("connection.userPassword.userId"),//$NON-NLS-1$
GENERIC_PASSWORD("connection.userPassword.password"),//$NON-NLS-1$
GENERIC_URL("connection.jdbcUrl"),//$NON-NLS-1$
GENERIC_DRIVER_JAR("connection.driverTable"),//$NON-NLS-1$
GENERIC_DRIVER_CLASS("connection.driverClass"), //$NON-NLS-1$
GENERIC_MAPPING_FILE("mappingFile"); //$NON-NLS-1$
GENERIC_USERNAME("configuration.userId"), //$NON-NLS-1$
GENERIC_PASSWORD("configuration.password"), //$NON-NLS-1$
GENERIC_URL("configuration.jdbcUrl"), //$NON-NLS-1$
GENERIC_DRIVER_JAR("configuration.jdbcDriver"), //$NON-NLS-1$
GENERIC_DRIVER_CLASS("configuration.jdbcClass"), //$NON-NLS-1$
GENERIC_MAPPING_FILE("configuration.dbMapping"); //$NON-NLS-1$
private String displayName;

View File

@@ -361,7 +361,7 @@ public class ObjectElementParameter implements IElementParameter {
* @see org.talend.core.model.process.IElementParameter#getRepositoryValue()
*/
@Override
public String getRepositoryValue() {
public String calcRepositoryValue() {
return null;
}

View File

@@ -613,7 +613,7 @@ public class TalendTextUtils {
* @return
*/
private static boolean isPSQLSimilar(EDatabaseTypeName name) {
return !name.equals(EDatabaseTypeName.PSQL) && !name.equals(EDatabaseTypeName.PLUSPSQL)
return !name.equals(EDatabaseTypeName.PSQL)
&& !name.equals(EDatabaseTypeName.GREENPLUM);
}

View File

@@ -67,6 +67,8 @@ public class CorePreferenceInitializer extends AbstractPreferenceInitializer {
node.put(ITalendCorePrefConstants.JAVA_INTERPRETER, javaPath + JAVA_WIN32_INTERPRETER);
} else if (os.equals(Platform.OS_LINUX)) {
node.put(ITalendCorePrefConstants.JAVA_INTERPRETER, javaPath + JAVA_LINUX_INTERPRETER_PATH);
} else if (os.toLowerCase().contains("mac")) {
node.put(ITalendCorePrefConstants.JAVA_INTERPRETER, javaPath + JAVA_LINUX_INTERPRETER_PATH);
}
// Sets default language

View File

@@ -1085,7 +1085,7 @@ public class ProcessorUtilities {
if (childBuildType == null) {
Property parentProperty = parentJobInfo.getProcessor().getProperty();
String parentBuildType = (String)parentProperty.getAdditionalProperties().get(TalendProcessArgumentConstant.ARG_BUILD_TYPE);
if ("ROUTE".equalsIgnoreCase(parentBuildType)) {
if (parentBuildType!= null && parentBuildType.contains("ROUTE")) {
childProperty.getAdditionalProperties().put(TalendProcessArgumentConstant.ARG_BUILD_TYPE, "OSGI");
}
}

View File

@@ -20,7 +20,7 @@
<microprofile.version>1.2.1</microprofile.version>
<owb.version>2.0.27</owb.version>
<slf4j.version>1.7.34</slf4j.version>
<tomcat.version>9.0.80</tomcat.version>
<tomcat.version>9.0.82</tomcat.version>
<xbean.version>4.20</xbean.version>
<reload4j.version>1.2.22</reload4j.version>
<log4j2.version>2.20.0</log4j2.version>

View File

@@ -72,7 +72,7 @@
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20230227</version>
<version>20231013</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>

View File

@@ -84,6 +84,21 @@
<artifactId>plexus-archiver</artifactId>
<version>4.8.0</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-io</artifactId>
<version>3.2.0</version>
<exclusions><!-- fix CVE to plexus-io:3.2.0-->
<exclusion>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-xml</artifactId>

View File

@@ -42,7 +42,7 @@
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20230227</version>
<version>20231013</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>

View File

@@ -11,7 +11,7 @@
<packaging>pom</packaging>
<properties>
<tcomp.version>1.61.2</tcomp.version>
<tcomp.version>1.62.1</tcomp.version>
<slf4j.version>1.7.34</slf4j.version>
<reload4j.version>1.2.22</reload4j.version>
</properties>

View File

@@ -11,7 +11,7 @@
<packaging>pom</packaging>
<repositories>
<repository>
<id>Talend OpenSource Release</id>
<id>talend_open</id>
<url>https://artifacts-oss.talend.com/nexus/content/repositories/TalendOpenSourceRelease/</url>
</repository>
</repositories>

View File

@@ -26,7 +26,9 @@ import java.util.List;
import java.util.Properties;
import javax.xml.parsers.DocumentBuilder;
import org.apache.commons.lang3.StringUtils;
import org.apache.log4j.Logger;
import org.apache.maven.cli.configuration.SettingsXmlConfigurationProcessor;
import org.apache.maven.settings.Profile;
import org.apache.maven.settings.Proxy;
@@ -66,6 +68,8 @@ import org.w3c.dom.Node;
@SuppressWarnings({ "rawtypes", "unchecked" })
public class M2eUserSettingForTalendLoginTask extends AbstractLoginTask {
private static final Logger LOGGER = Logger.getLogger(M2eUserSettingForTalendLoginTask.class);
public static final String MAVEN_REPO_CONFIG = "maven.repository"; //$NON-NLS-1$
public static final String VERSION_KEY = "version"; //$NON-NLS-1$
@@ -444,6 +448,8 @@ public class M2eUserSettingForTalendLoginTask extends AbstractLoginTask {
proxyService.setNonProxiedHosts(bypassHosts.toArray(new String[bypassHosts.size()]));
}
}
LOGGER.info("Updated studio proxy settings from maven settings.");
}
private boolean updateProfileSettings(IProgressMonitor monitor, IMaven maven, Settings settings, Path configPath,

View File

@@ -809,10 +809,9 @@ public class AggregatorPomsHelper {
childJobProperty.getAdditionalProperties().remove(MavenConstants.NAME_PUBLISH_AS_SNAPSHOT);
}
if ("ROUTE".equalsIgnoreCase(routeBuildType) || null == routeBuildType) {
if (!ProcessUtils.isRoutelet(item.getProperty())) {
childJobProperty.getAdditionalProperties().put(TalendProcessArgumentConstant.ARG_BUILD_TYPE, "OSGI");
} else {
childJobProperty.getAdditionalProperties().put(TalendProcessArgumentConstant.ARG_BUILD_TYPE, "Standalone");
}
runProcessService.generatePom(childJob.getProcessItem(), TalendProcessOptionConstants.GENERATE_POM_NO_FILTER);

View File

@@ -135,6 +135,31 @@ public class CreateMavenBundleTemplatePom extends CreateMaven {
}
return null;
}
protected Model createFeatureModel() {
InputStream inputStream = null;
try {
Model model = null;
inputStream = getFeatureTemplateStream();
if (inputStream != null) {
model = MODEL_MANAGER.readMavenModel(inputStream);
}
return model;
} catch (IOException e) {
ExceptionHandler.process(e);
} catch (CoreException e) {
ExceptionHandler.process(e);
} finally {
if (inputStream != null) {
try {
inputStream.close();
} catch (IOException e) {
//
}
}
}
return null;
}
protected InputStream getTemplateStream() throws IOException {
try {
@@ -143,6 +168,16 @@ public class CreateMavenBundleTemplatePom extends CreateMaven {
throw new IOException(e);
}
}
protected InputStream getFeatureTemplateStream() throws IOException {
try {
return MavenTemplateManager.getBundleTemplateStream(JOB_TEMPLATE_BUNDLE, getBundleTemplatePath());
} catch (Exception e) {
throw new IOException(e);
}
}
/*
* (non-Javadoc)

View File

@@ -297,7 +297,7 @@ public class PomUtil {
}
String path = "../"; //$NON-NLS-1$
// TODO should not allow user-defined folder named poms.
if (file != null && !file.getParentFile().getName().equals(baseFolder)) {
if (file != null && file.getParentFile() != null && !file.getParentFile().getName().equals(baseFolder)) {
path += getPomRelativePath(file.getParentFile(), baseFolder);
} else {
path = ""; //$NON-NLS-1$

View File

@@ -5,6 +5,6 @@ Bundle-SymbolicName: org.talend.libraries.javacsv;singleton:=true
Bundle-Version: 8.0.1.qualifier
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .,
lib/javacsv.jar
lib/javacsv-2.0.jar;mvn:net.sourceforge.javacsv/javacsv/2.0
Export-Package: com.csvreader
Eclipse-BundleShape: dir

View File

@@ -6,7 +6,7 @@
context="plugin:org.talend.libraries.javacsv"
language="java"
message="Needed for Java CVS Reader and Writer"
name="javacsv.jar" mvn_uri="mvn:org.talend.libraries/javacsv/6.0.0"
name="javacsv-2.0.jar" mvn_uri="mvn:net.sourceforge.javacsv/javacsv/2.0"
required="true">
</libraryNeeded>
</extension>

View File

@@ -5,7 +5,7 @@ Bundle-Name: Jboss
Bundle-SymbolicName: org.talend.libraries.jboss;singleton:=true
Bundle-Version: 8.0.1.qualifier
Bundle-ClassPath: .,
lib/trove.jar,
lib/trove-1.0.2.jar;mvn:trove/trove/1.0.2,
lib/jboss-serialization.jar
Eclipse-BuddyPolicy: registered
Export-Package: org.jboss.serial,

View File

@@ -6,14 +6,14 @@
context="plugin:org.talend.libraries.jboss"
language="java"
message="Needed for JBoss"
name="jboss-serialization.jar" mvn_uri="mvn:org.talend.libraries/jboss-serialization/6.0.0"
name="jboss-serialization-1.0.3.GA.jar" mvn_uri="mvn:jboss/jboss-serialization/1.0.3.GA"
required="true">
</libraryNeeded>
<libraryNeeded
context="plugin:org.talend.libraries.jboss"
language="java"
message="Needed for JBoss"
name="trove.jar" mvn_uri="mvn:org.talend.libraries/trove/6.0.0"
name="trove-1.0.2.jar" mvn_uri="mvn:trove/trove/1.0.2"
required="true">
</libraryNeeded>
</extension>

View File

@@ -13,7 +13,7 @@
context="plugin:org.talend.libraries.jdbc.mysql"
language="java"
message="Needed for Mysql jdbc plugin"
name="mysql-connector-java-5.1.30-bin.jar" mvn_uri="mvn:org.talend.libraries/mysql-connector-java-5.1.30-bin/6.0.0"
name="mysql-connector-java-5.1.30.jar" mvn_uri="mvn:mysql/mysql-connector-java/5.1.30"
required="true">
</libraryNeeded>
<libraryNeeded
@@ -29,8 +29,8 @@
context="plugin:org.talend.libraries.jdbc.mysql"
language="java"
message="Needed for Mysql jdbc plugin"
mvn_uri="mvn:org.talend.libraries/mysql-connector-java-3.1.14-bin/6.0.0"
name="mysql-connector-java-3.1.14-bin.jar"
mvn_uri="mvn:mysql/mysql-connector-java/3.1.14"
name="mysql-connector-java-3.1.14.jar"
required="true">
</libraryNeeded>
</extension>

View File

@@ -6,7 +6,7 @@
context="plugin:org.talend.libraries.jexcel"
language="java"
message="Needed for jexcel component"
name="jxl.jar" mvn_uri="mvn:org.talend.libraries/jxl/6.0.0"
name="jxl-2.6.12.jar" mvn_uri="mvn:net.sourceforge.jexcelapi/jxl/2.6.12"
required="true">
</libraryNeeded>
<libraryNeeded

View File

@@ -0,0 +1,61 @@
<!-- saved from url=(0042)http://www.apache.org/licenses/LICENSE-1.1 -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">/* ====================================================================
* The Apache Software License, Version 1.1
*
* Copyright (c) 2000 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution,
* if any, must include the following acknowledgment:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowledgment may appear in the software itself,
* if and wherever such third-party acknowledgments normally appear.
*
* 4. The names "Apache" and "Apache Software Foundation" must
* not be used to endorse or promote products derived from this
* software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache",
* nor may "Apache" appear in their name, without prior written
* permission of the Apache Software Foundation.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* &lt;http://www.apache.org/&gt;.
*
* Portions of this software are based upon public domain software
* originally written at the National Center for Supercomputing Applications,
* University of Illinois, Urbana-Champaign.
*/
</pre></body></html>

View File

@@ -1,6 +1,7 @@
[
{"licenseUrl":"http://www.talendforge.org/modules/licenses/PUBLIC_DOMAIN.txt","licenseName":"PUBLIC_DOMAIN"},
{"licenseUrl":"http://www.talendforge.org/modules/licenses/APACHE_v2.txt","licenseName":"Apache-2.0"},
{"licenseUrl":"http://www.talendforge.org/modules/licenses/APACHE_v1.1.txt","licenseName":"Apache-1.1"},
{"licenseUrl":"http://www.talendforge.org/modules/licenses/Oracle-Binary.txt","licenseName":"Oracle-Binary"},
{"licenseUrl":"http://www.talendforge.org/modules/licenses/BSD_v2.txt","licenseName":"BSD-2-Clause"},
{"licenseUrl":"http://www.talendforge.org/modules/licenses/BSD_v3.txt","licenseName":"BSD-3-Clause"},

View File

@@ -40,6 +40,7 @@ import org.talend.librariesmanager.prefs.LibrariesManagerUtils;
import org.talend.librariesmanager.ui.dialogs.ConfigModuleDialog;
import org.talend.librariesmanager.ui.i18n.Messages;
import org.talend.librariesmanager.ui.service.RoutineProviderManager;
import org.talend.librariesmanager.utils.LicenseTextUtil;
import org.talend.librariesmanager.utils.ModulesInstaller;
/**
@@ -188,4 +189,8 @@ public class LibraryManagerUIService implements ILibraryManagerUIService {
public IConfigModuleDialog getConfigModuleDialog(Shell parentShell, String initValue, boolean allowDetectDependencies) {
return new ConfigModuleDialog(parentShell, initValue, allowDetectDependencies);
}
public String getLicenseUrlByName(String licenceName) {
return LicenseTextUtil.getLicenseUrlByName(licenceName);
}
}

View File

@@ -102,6 +102,15 @@ public class LicenseTextUtil {
return null;
}
public static String getLicenseUrlByName(String name) {
for (String url : licenseMap.keySet()) {
if (name != null && name.equalsIgnoreCase(licenseMap.get(url))) {
return url;
}
}
return "";
}
private static String getStringFromText(File file) throws Exception {
StringBuilder sb = new StringBuilder();
List<String> lines = Files.readAllLines(file.toPath(), StandardCharsets.UTF_8);

View File

@@ -622,15 +622,17 @@ public class RemoteModulesHelper {
message.put("module", child);//$NON-NLS-1$
String url = serviceUrl + "?data=" + message;
JSONObject resultStr = readJsonFromUrl(url);
JSONArray jsonArray = resultStr.getJSONArray("result");//$NON-NLS-1$
if (jsonArray != null) {
JSONObject object = jsonArray.getJSONObject(0);
if (object != null) {
String licenseText = object.getString("licenseText");//$NON-NLS-1$
if (licenseText != null) {
licenseText.replace("http://", "https://");//$NON-NLS-1$ //$NON-NLS-2$
if (resultStr != null) {
JSONArray jsonArray = resultStr.getJSONArray("result");//$NON-NLS-1$
if (jsonArray != null) {
JSONObject object = jsonArray.getJSONObject(0);
if (object != null) {
String licenseText = object.getString("licenseText");//$NON-NLS-1$
if (licenseText != null) {
licenseText.replace("http://", "https://");//$NON-NLS-1$ //$NON-NLS-2$
}
return licenseText;
}
return licenseText;
}
}
} catch (JSONException e) {

View File

@@ -5,6 +5,7 @@ import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PushbackInputStream;
import java.io.Reader;
import java.nio.CharBuffer;
public class UnicodeReader extends Reader {
private static final int BOM_SIZE = 4;
@@ -71,4 +72,16 @@ public class UnicodeReader extends Reader {
public void close() throws IOException {
reader.close();
}
public boolean ready() throws IOException {
return reader.ready();
}
public int read() throws IOException {
return reader.read();
}
public int read(CharBuffer target) throws IOException {
return reader.read(target);
}
}

View File

@@ -153,8 +153,14 @@ public class LibraryDataService {
}
public void buildLibraryLicenseData(Set<String> mvnUrlList) {
buildLibraryLicenseData(mvnUrlList, null);
}
public void buildLibraryLicenseData(Set<String> mvnUrlList, Map<String, List<String[]>> licenseMap) {
for (String mvnUrl : mvnUrlList) {
Library libraryObj = resolve(mvnUrl);
Library libraryObj = getLicenseDataFromMap(mvnUrl, licenseMap);
if (libraryObj == null)
libraryObj = resolve(mvnUrl);
if (!libraryObj.isLicenseMissing() || !libraryObj.isPomMissing()) {
mvnToLibraryMap.put(getShortMvnUrl(mvnUrl), libraryObj);
}
@@ -171,10 +177,10 @@ public class LibraryDataService {
isRemoved = true;
}
}
if(lib.isPomMissing()) {
if (lib.isPomMissing()) {
lib.getLicenses().clear();
lib.getLicenses().add(unknownLicense);
}else {
} else {
if ((isRemoved && licenses.size() == 0)) {
licenses.add(unknownLicense);
lib.setLicenseMissing(true);
@@ -183,6 +189,38 @@ public class LibraryDataService {
}
dataProvider.saveLicenseData(mvnToLibraryMap);
}
private Library getLicenseDataFromMap(String mvnUrl, Map<String, List<String[]>> licenseMap) {
if (licenseMap == null)
return null;
MavenArtifact artifact = MavenUrlHelper.parseMvnUrl(mvnUrl);
String shourtMvnUrl = getShortMvnUrl(mvnUrl);
String gav = String.format("%s:%s:%s", artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion());
List<String[]> licenses = licenseMap.get(gav);
Library libraryObj = null;
if (licenses != null && licenses.size() > 0) {
libraryObj = new Library();
libraryObj.setGroupId(artifact.getGroupId());
libraryObj.setArtifactId(artifact.getArtifactId());
libraryObj.setVersion(artifact.getVersion());
libraryObj.setMvnUrl(shourtMvnUrl);
libraryObj.setType(artifact.getType());
libraryObj.setClassifier(artifact.getClassifier());
libraryObj.setPomMissing(false);
for (String[] licenseContent : licenses) {
LibraryLicense license = new LibraryLicense();
if (licenseContent != null && licenseContent.length == 2) {
license.setName(licenseContent[0]);
license.setUrl(licenseContent[1]);
}
libraryObj.getLicenses().add(license);
}
} else {
return null;
}
return libraryObj;
}
private Library resolve(String mvnUrl) {
MavenArtifact artifact = MavenUrlHelper.parseMvnUrl(mvnUrl);

View File

@@ -34,7 +34,7 @@ Require-Bundle: org.eclipse.ui,
org.talend.daikon,
org.talend.libraries.apache,
org.talend.studio.studio-utils,
avro;bundle-version="1.11.2"
avro
Bundle-ActivationPolicy: lazy
Bundle-Vendor: .Talend SA.
Bundle-Localization: plugin

View File

@@ -38,7 +38,7 @@ ConnectionContextHelper.InConextMessages=La connexion est en mode Contexte.
ConnectionContextHelper.OutConextMessages=La connexion n'est pas en mode Contexte.
ConnectionContextHelper.UpdateMessages=Voulez-vous mettre \u00E0 jour les param\u00E8tres de contexte ?
ConnectionContextHelper.UpdateTitle=Mise \u00E0 jour du contexte
ContextSetsSelectionDialog.ContextSets=Jeux de contextes
ContextSetsSelectionDialog.ContextEnvironments=Environnement
ContextSetsSelectionDialog.Messages=La connexion en cours est en mode contexte.
ContextSetsSelectionDialog.ReportMessages=Le rapport est en mode contexte.
ContextSetsSelectionDialog.Source=Source du contexte du r\u00E9f\u00E9rentiel :
@@ -522,10 +522,10 @@ ContextModeSelectPage.contextModes=Cr\u00E9er un contexte ou r\u00E9utiliser le
ContextModeSelectPage.createContext=Cr\u00E9er un contexte dans le r\u00E9f\u00E9rentiel
ContextModeSelectPage.reuseContext=R\u00E9utiliser un contexte existant dans le r\u00E9f\u00E9rentiel
ReuseRepositoryContext.name=Contexte
ShowRepositoryContextPage.title=S\u00E9lectionnez un groupe de contextes
ShowRepositoryContextPage.warnMsg=S\u00E9lectionnez un groupe de contextes.
ShowRepositoryContextPage.aviableContexts=Groupes de contextes disponibles
ShowRepositoryContextPage.SelectReuseContext=S\u00E9lectionnez un groupe de contextes et cliquez sur Suivant.
ShowRepositoryContextPage.context.title=S\u00E9lectionner le contexte
ShowRepositoryContextPage.context.warnMsg=S\u00E9lectionnez un contexte.
ShowRepositoryContextPage.context.aviableContexts=Contextes disponibles
ShowRepositoryContextPage.context.SelectReuseContext=S\u00E9lectionnez un contexte et cliquez sur Suivant.
ContextAdaptConectionSelectPage.selectOrCustomVariable=S\u00E9lectionnez un champ de connexion pour les variables de contexte existantes
ContextAdaptConectionSelectPage.selectOrCustomVariableNew=S\u00E9lectionnez un champ de param\u00E8tre de contexte pour la variable de contexte existante
ContextAdaptConectionSelectPage.title=S\u00E9lectionnez les champs de connexion

Some files were not shown because too many files have changed in this diff Show More