Compare commits

...

199 Commits

Author SHA1 Message Date
qiongli
82174dc5ea feat(TDQ-21471):Iterate all context variables to check prompt needed (#6475) 2023-10-16 15:07:27 +08:00
Zhiwei Xue
c942e2ee35 feat(TUP-40401): improve Java17 check (#6468) 2023-10-13 14:35:34 +08:00
qiongli
51f3e07528 feat(TDQ-21471):Loop all context variables when prompt by DQ Report (#6454) 2023-10-12 17:14:10 +08:00
Jane Ding
1af34cb93f feat(TUP-39889):tJira and tSplunk migration to TCK (#6434)
https://jira.talendforge.org/browse/TUP-39889
2023-10-12 16:48:54 +08:00
hzhao
d575088589 fix(TUP-40036): Context name defined in component didn't update after it (#6441) 2023-10-11 19:25:02 +08:00
qiongli
cbd9486931 feat(TDQ-21334):Support oracle custom ssl for DQ (#6447)
* feat(TDQ-21334):Support oracle custom ssl for DQ

* feat(TDQ-21334):Change oracle SSL variable to public static
2023-10-11 17:29:57 +08:00
Zhiwei Xue
c2511328fd feat(TUP-40401):Enable Java 17 support (#6442)
* feat(TUP-40401):Enable Java 17 support

* feat(TUP-40401):add runtime capability check for publishing
2023-10-11 16:28:02 +08:00
sbliu
5c629d27b8 fix(TUP-39890) amend the judgment of snapshot version (#6383) 2023-10-11 10:40:29 +08:00
apoltavtsev
b63ff6f17f APPINT-35122: Sync projects timestamp with patch build (#6452) 2023-10-09 19:48:12 +02:00
hcyi
e6d3e2b37a Hcyi/tup 40299 8.0 (#6426)
* fix(TUP-40299):"Validation Failed" dialog is missing if Set string into
double type text field for Context Variable.

* fix(TUP-40299):update messages

* fix(TUP-40299):update messages

* fix(TUP-40299):if default context is not named as context, better show
"dev(Default)" which was request in this figma but not impelmented.

* fix(TUP-40299):the boarder of the title display ugly on mac.

* fix(TUP-40299):view environment dropdown box has display issue randomly
2023-10-09 10:06:08 +08:00
zyuan-talend
d5716b9d63 fix(TUP-40332):download jar for bundle packaging type. (#6425) 2023-10-07 14:50:13 +08:00
Jane Ding
aa3e090f18 Add localized files (#6432) (#6439)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-10-07 11:39:00 +08:00
bhe-talendbj
6e31236ae2 fix(TUP-35626): Cannot retrieve module or table when password include "\" (#6414)
* fix(TUP-35626): encrypt value if not null

* fix(TUP-35626): do not escape characters inside password

* fix(TUP-35626): minize impact

* fix(TUP-35626): escape special characters

* fix(TUP-35626): reduce impact

* fix(TUP-35626): escape double quote only for password
2023-09-28 21:31:25 +08:00
apoltavtsev
ae5f950a78 APPINT-18113: Fix Junit test (#6430) 2023-09-28 09:53:38 +02:00
apoltavtsev
23b5df5c4f APPINT-18113: Sync parameters of cKafka component (#6360)
* Update IElementParameter.java

* Update ObjectElementParameter.java

* Update IComponent.java
2023-09-27 09:51:14 +02:00
bhe-talendbj
98ee4f4ba1 fix(TUP-40400): add NPE check (#6423) 2023-09-27 15:08:15 +08:00
sbliu
ffc70af105 fix(TUP-38273) upgrade avro, replace org.apache.servicemix.bundles.avro with avro (#6338)
* fix(TUP-38273) upgrade avro, replace org.apache.servicemix.bundles.av… (#6298)

* fix(TUP-38273) upgrade avro, replace org.apache.servicemix.bundles.avro with avro

* revert last change on this .classpath file

* add avro bundle to required

* replace org.apache.servicemix.bundles.avro with avro bundle with higher version 1.11.2

* replace bundle org.apache.servicemix.bundles.avro with avro

* set default value to null for date type
set validate defaults to false to compatible with previous avro
# Conflicts:
#	main/plugins/org.talend.core.runtime/META-INF/MANIFEST.MF
#	main/plugins/org.talend.metadata.managment.ui/META-INF/MANIFEST.MF

* fix(TUP-38273) upgrade spring-boot-dependencies to 2.7.7 according to avro upgrade (#6318)

* fix(TUP-38273) upgrade spring-boot-dependencies to 2.7.7 according to avro upgrade

* upgrade *-bom dependencies of crypto-utils 7.1.16
# Conflicts:
#	main/plugins/org.talend.designer.maven.tos/resources/unzip/pom.xml

* fix(TUP-38273) upgrade jackson bundle to 2.14.3 to align to TDI (#6334)

* fix(TUP-38273) upgrade jackson bundle to 2.14.3 to align to TDI

* fix unit test failure in MetadataToolAvroHelperTest

* Wwang talend/tdi 49492 jackson (#6330)

# Conflicts:
#	main/plugins/org.talend.core.runtime/src/main/java/org/talend/core/database/conn/version/EDatabaseVersion4Drivers.java

* fix(TDI-49492): Upgrade Avro to 1.11.x tck connectors m2 (#6417)

* feat(TDI-50294): bump component-runtime to 1.61.0

* align cxf for tck upgrade

---------

Co-authored-by: wang wei <wwang@talend.com>
Co-authored-by: undx <egallois@talend.com>
2023-09-25 14:50:12 +08:00
sbliu
5e59f89dea feat(TUP-33474) add ssl support for oracle 18 and above (#6347)
* feat(TUP-33474) add ssl support for oracle 18 and above

* select ssl jars according to oracle version

* just keep same version with tdi

* add library needed

* amend judgement if it's oracle custom ssl connection

* fix cannot retrieve ssl dependencies

* resolve guess schema error.
2023-09-25 10:40:21 +08:00
Jane Ding
0e697d0ef6 Add localized files (#6419)
* Add localized files (#6415)

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

* Add localized files (#6416)

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-09-21 18:58:31 +08:00
Jane Ding
9a2e7c2381 Add localized files (#6413)
* Add localized files (#6401)

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

* Add localized files (#6402)

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

* Add localized files (#6403)

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: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2023-09-20 16:33:22 +08:00
Chao MENG
8b4f177efc fix(TUP-39537): improvement of studio collected logs (#6368)
https://jira.talendforge.org/browse/TUP-39537
2023-09-19 10:56:28 +08:00
zshen-talend
4ff907bf75 fix(TDQ-20339): use official jar instead of Talend library jar (#6385) 2023-09-15 09:43:49 +08:00
hcyi
abfd3b7c1b fix(TUP-38042):fix a context display problem on Mac. (#6397) (#6399)
* fix(TUP-38042):fix a display problem on Mac.

* fix(TUP-38042):update a message
2023-09-13 16:52:24 +08:00
apoltavtsev
4ef6f6a95e APPINT-35897: Routelet version is corrected 2023-09-12 16:46:10 +02:00
apoltavtsev
0ae7943cf2 APPINT-35888: Resolve performance issues 2023-09-11 15:26:27 +02:00
apoltavtsev
a2ce928d6a APPINT-35888: Avoid "duplicated in the reactor" for Jobs with Routines 2023-09-11 10:35:07 +02:00
Jane Ding
85f2664512 Add localized files (#6380) (#6386)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-09-08 17:39:01 +08:00
jiezhang-tlnd
452ef9896a chore(TUP-39865)commons-configuration2:2.8.0 | CVE-2022-23305 (#6371) 2023-09-07 17:01:29 +08:00
hcyi
81da114430 feat(TUP-38042):update a message (#6378) 2023-09-07 15:36:25 +08:00
hcyi
8b34d91c2a feat(TUP-38042):Improve context view display. (#6332)
* feat(TUP-38042):Improve context view display.

* feat(TUP-38042):Improve context view display.

* feat(TUP-38042):Improve context view display.

* feat(TUP-38042):Improve for Move the "Enable prompt" and Remove "Prompt
label" column.

* feat(TUP-38042):update context message and improve for GUI

* feat(TUP-38042):improve for GUI

* feat(TUP-38042):Refactoring context view.

* feat(TUP-38042):TUP-40126 [bug] "Enable prompt" still use old settings
after migration

* feat(TUP-38042):TUP-40126 [bug] "Enable prompt" still use old settings
after migration

* feat(TUP-38042):TUP-40178 [bug] UI Problems

* feat(TUP-38042):TUP-40126 [bug] "Enable prompt" still use old settings
after migration

* feat(TUP-38042):TUP-40126 [bug] "Enable prompt" still use old settings
after migration

* feat(TUP-38042):TUP-40126 [bug] "Enable prompt" still use old settings
after migration

* feat(TUP-38042):TUP-40126 [bug] "Enable prompt" still use old settings
after migration and update messages

* feat(TUP-38042):TUP-40215[bug] Browse button is missing in File Type
Field

* feat(TUP-38042):TUP-40127[bug] Improve: Dropdown list doesn't shows well
after click button "V"
2023-09-07 11:01:38 +08:00
zyuan-talend
14673efa17 fix(TUP-39605): Cleanup Exchange related code. (#6373) 2023-09-06 16:32:00 +08:00
apoltavtsev
efd8c964b8 APINT-35122: Solve CI Build problems when using child jobs and routelets 2023-09-06 08:50:14 +02:00
Jane Ding
fc0aa30340 Add localized files (#6372) (#6375)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-09-05 16:48:37 +08:00
Zhiwei Xue
3c056baeb7 fix(TUP-40082):[8.0.1 SAP] Column name containing / in input field (#6366)
schema in tSAPBapi changes to _
2023-09-05 12:05:11 +08:00
sbliu
e0d5352efa feat(TUP-39758) upgrade jdbc drivers for Postgresql, deprecate pre V9 (#6357) 2023-08-30 17:41:52 +08:00
Jane Ding
440effae2d Add localized files (#6365) (#6367)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-08-30 10:54:27 +08:00
sbliu
0e399e778f fix(TUP-37091) fix checkbox show problem. (#5757) 2023-08-28 09:47:12 +08:00
hcyi
5e798295ea Hcyi/add localized files 2023 8 11 (#6354)
* Add localized files (#6352)

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

* Add localized files (#6353)

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-08-11 10:21:52 +08:00
zyuan-talend
177287eebf fix(TUP-39924): upgrade org.codehaus.plexus:plexus-archiver to 4.8.0, (#6345)
plexus-io to 3.4.1 , maven-assembly-plugin to 3.6.0 and plexus-util to
4.0.0 for incompatibility.
2023-08-10 16:36:22 +08:00
AlixMetivier
c4ee889b3e feat(TBD-14984): support Datafabric with universal (#6080) 2023-08-09 18:10:52 +02:00
Jane Ding
26ead1e043 feat(TUP-39065):Implement secured credential storage in Studio for Nexus (#6328)
* feat(TUP-39065):Implement secured credential storage in Studio for Nexus
credentials.
https://jira.talendforge.org/browse/TUP-39065

* feat(TUP-39065):Implement secured credential storage in Studio for Nexus
credentials.
https://jira.talendforge.org/browse/TUP-39065

* feat(TUP-39065):Implement secured credential storage in Studio for Nexus
credentials.
https://jira.talendforge.org/browse/TUP-39065

* feat(TUP-39065):Implement secured credential storage in Studio for Nexus
credentials.
https://jira.talendforge.org/browse/TUP-39065
2023-08-09 09:23:09 +08:00
Emmanuel GALLOIS
5553ce8694 feat(TDI-50084): bump component-runtime to 1.59.0 (#6313) 2023-08-07 09:43:06 +02:00
zyuan-talend
caa99b5658 feat(TUP-38945):upgrade oracle jdbc driver. (#6339) 2023-08-04 18:49:57 +08:00
hcyi
057580aa9e Add localized files (#6340) (#6342)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-08-04 10:50:44 +08:00
Chao MENG
d66aa2af38 fix(TUP-39759): Perspective getting reset all the time when toggling (#6324)
between old and new projects in the same workspace
https://jira.talendforge.org/browse/TUP-39759
2023-08-03 14:27:32 +08:00
wang wei
95f7b845b3 fix(TDI-45063): support bigquery metadata (#6283) 2023-08-02 09:53:22 +08:00
zyuan-talend
21d1ea7f84 fix(TUP-39090):Generate SCD component editor info in the documentation. (#6329) 2023-08-01 17:17:28 +08:00
hcyi
d3a6096bc0 Hcyi/add localized files 2023 7 31 (#6333)
* Add localized files (#6322)

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

* Add localized files (#6326)

---------

Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2023-07-31 15:52:34 +08:00
jiezhang-tlnd
5705ca4789 chore(TUP-39647)CVE-2017-1000487 (#6321) 2023-07-28 14:12:14 +08:00
jiezhang-tlnd
4a7a831c77 feat(TUP-39520)Deprecate AS400 CDC / RUNCDC (#6289)
* feat(TUP-39520)Deprecate AS400 CDC / RUNCDC
https://jira.talendforge.org/browse/TUP-39520

* Deprecate Studio CDC

* code format
2023-07-27 15:28:34 +08:00
jiezhang-tlnd
e169b49a01 chore(TUP-39352)Improve / fix missing translations from product (#6316) (#6317) 2023-07-25 14:57:44 +08:00
jiezhang-tlnd
d302023eea chore(TUP-39647)CVE-2017-1000487,plexus-utils-3.0.8 (#6307)
* chore(TUP-39647)CVE-2017-1000487,plexus-utils-3.0.8

* add surefire-booter and surefire-api
2023-07-24 16:28:03 +08:00
Xilai Dai
2256de6b73 feat(APPINT-34616) fix the NPE when import demo project (#5992)
* feat(APPINT-34616) fix the NPE when import demo project

* feat(APPINT-34616) minor code clean up

---------

Co-authored-by: jillyan <yan95599@gmail.com>
Co-authored-by: hwei <hwei@talend.com>
2023-07-24 15:08:24 +08:00
hcyi
c2162b4074 Hcyi/add localized files 2023 7 20 (#6314)
* Add localized files (#6310)

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

* Add localized files (#6311)

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-07-20 19:45:39 +08:00
hcyi
2ee30fecd0 Add localized files (#6306) (#6309)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-07-14 15:23:58 +08:00
bhe-talendbj
340a06876c fix(TUP-39645): add NPE check (#6303) 2023-07-12 17:16:43 +08:00
jiezhang-tlnd
f3c39d14d5 feat(TUP-38391)Help menu revamp - Planning (#6301) 2023-07-12 16:21:41 +08:00
Emmanuel GALLOIS
9c2e26bcab feat(TDI-49951): bump component-runtime to 1.58 (#6251) 2023-07-12 10:16:45 +02:00
zyuan-talend
65e7cfb71e fix(TUP-39291): Remove Talend Exchange link from Studio. (#6285) 2023-07-10 18:33:03 +08:00
pyzhou
b338afee4c fix(TDI-49933): snowflake metadata time issue (#6278)
* fix(TDI-49933): snowflake metadata time issue

* fix compile error

* add some test

* test

* remove test code
2023-07-10 12:11:28 +08:00
hcyi
87d7a849ac Hcyi/add localized files 2023 7 7 (#6296)
* Add localized files (#6290)

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

* Add localized files (#6291)

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-07-07 19:22:08 +08:00
jiezhang-tlnd
73a2ac7971 fix(TUP-38391)remove Support button (#6282)
* fix(TUP-38391)remove Support button

* remove blank space

* change guided tour text
2023-07-06 17:33:30 +08:00
jiezhang-tlnd
e22dfb1215 chore(TUP-39332)guava:30.0-jre | CVE-2020-8908 (#6277)
* chore(TUP-39332)guava:30.0-jre | CVE-2020-8908
https://jira.talendforge.org/browse/TUP-39332

* update guava to 32.0.1
2023-07-06 10:43:17 +08:00
Jane Ding
9781e2fe08 fix(TUP-39398):"Argument not valid" Error shows in error log after edit (#6284)
* fix(TUP-39398):"Argument not valid" Error shows in error log after edit
Comment in job>Contexts View and press Enter
https://jira.talendforge.org/browse/TUP-39398

* fix(TUP-39398):"Argument not valid" Error shows in error log after edit
Comment in job>Contexts View and press Enter
https://jira.talendforge.org/browse/TUP-39398
2023-07-06 10:31:44 +08:00
qiongli
60cc7742ad feat(TDQ-21251):Support foreign/external table for Postgresql/Redshift (#6273) 2023-07-04 11:29:41 +08:00
jiezhang-tlnd
5369ee2142 4 basics walkthrough should be 4 basic walkthrough (#6270) 2023-07-03 17:35:12 +08:00
zyuan-talend
4406d35a69 fix(TUP-39467): CVE-2022-29599,maven-shared-utils:0.9.0. (#6274) 2023-07-03 14:53:42 +08:00
sbliu
33d797e16c fix(TUP-39463) fix cannot open Hive Metadata connection with context parameters(without bigdata feature installed) (#6266) 2023-06-28 16:15:17 +08:00
sbliu
c282d32a80 feat(TUP-38946) add support vertica 12 (#6214)
* feat(TUP-38946) add support vertica 12

* remove VERTICA 9

* remove vertica 9 driver class

* transform db connection string from vertica 9 to vertica 12
2023-06-27 14:51:12 +08:00
sbliu
543c5a29f8 Add localized files (#6264)
* Add localized files (#6259)

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

* Add localized files (#6260)

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

* Add localized files (#6261)

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: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2023-06-26 10:29:06 +08:00
Jane Ding
f91f791c24 fix(TUP-38646):Environment variables values are lost during the job (#6257)
export
https://jira.talendforge.org/browse/TUP-38646
2023-06-25 09:56:15 +08:00
Zhiwei Xue
be96adb142 fix(TUP-39262):Unable to save Talend type setup (#6236) 2023-06-21 11:21:19 +08:00
sbliu
33d1276627 chore(TUP-39233) upgrade json-smart, accessors-smart to 2.4.11 (#6215)
* chore(TUP-39233) upgrade json-smart, accessors-smart to 2.4.11

* modify omitted
2023-06-20 16:19:57 +08:00
sbliu
f6d544c5e3 fix(TUP-39239) not same ordering of the columns between table schema and (#6227)
synonym schema for oracle
2023-06-20 16:17:26 +08:00
Zhiwei Xue
2b8777269d fix(TUP-38235):Job in a project that references other projects load very (#6192)
slowly in Studio
2023-06-20 09:47:27 +08:00
jiezhang-tlnd
fb360093a8 Jzhang/80/tup 38391 (#6224)
* feat(TUP-38391)Help menu revamp
https://jira.talendforge.org/browse/TUP-38391

* add links

* replace icons

* add icons

* added icons

* fix install software menu

* add icons folder

* keep Support menu

* code format

* code format

* format xml

* code format

* add icons

* code format
2023-06-19 14:14:35 +08:00
jiezhang-tlnd
38fdc62738 fix(TUP-39057)schema of txxxCatcher component can not be exported (#6199)
https://jira.talendforge.org/browse/TUP-39057
2023-06-19 10:05:50 +08:00
sbliu
8f1cc68be3 feat(TUP-38947) upgrade mariadb jdbc driver mariadb-java-client to 3.1.4 (#6242) 2023-06-16 17:21:47 +08:00
sbliu
f34bb8520c Add localized files (#6252)
* Add localized files (#6247)

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

* Add localized files (#6248)

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

* Add localized files (#6249)

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: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2023-06-16 17:15:15 +08:00
jiezhang-tlnd
888c3281f6 fix(TUP-38643)The custom mvn URI is not valid (#6205)
* fix(TUP-38643)The custom mvn URI is not valid
https://jira.talendforge.org/browse/TUP-38643

* junits
2023-06-16 17:12:28 +08:00
sbliu
db614cc415 Add localized files (#6233) (#6235)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-06-09 11:24:55 +08:00
Zhiwei Xue
5210b033d0 feat(TUP-38140):SAP CDS Views over Talend (#6178) 2023-06-08 15:17:17 +08:00
hzhao
e91b347450 fix(TUP-38590): CI/CD Pipeline generating different code (#6177) 2023-06-08 09:38:58 +08:00
Emmanuel GALLOIS
ea459b8710 feat(TDI-49854): bump component-runtime to 1.57 (#6207) 2023-06-07 15:48:28 +02:00
wang wei
2ee58ac9d0 fix(TDI-49753): improve tsetkeystore 2023-06-07 18:14:12 +08:00
Jane Ding
0e668b3239 feat(TUP-38589):Managed updates improvements (#6196)
* feat(TUP-38589):Managed updates improvements
https://jira.talendforge.org/browse/TUP-38589

* feat(TUP-38589):Managed updates improvements
https://jira.talendforge.org/browse/TUP-38589
2023-06-07 16:41:28 +08:00
msjian
1fe8bec5cf fix(TDQ-21109): fix Dialog on tStandardizeRow support dark mode (#6212) 2023-06-07 16:03:11 +08:00
zyuan-talend
74d5eb4d90 fix(TUP-38922): Clear old storage of git project. (#6210) 2023-06-05 15:25:09 +08:00
jiezhang-tlnd
12a842a565 Add localized files (#6221) (#6225)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-06-05 14:10:09 +08:00
sponomarova
9419f94c07 feat(TBD-15036): Beta - Universal Spark 3.1 for HDInsight 5.0 (#6203) 2023-06-01 08:26:53 +03:00
Abdulhamid Rashankar
0beef6b531 APPINT-35612:Metadata failed to propagate modifications to routes (#6197)
* APPINT-35612:Metadata failed to propagate modifications to routes

* APPINT-35612:Metadata failed to propagate modifications to routes

* APPINT-35612:Metadata failed to propagate modifications to routes
2023-05-31 09:11:42 +02:00
jiezhang-tlnd
d19f0dbce7 feat(TUP-38935)Add support to AWS (Mysql) Aurora 3.X (#6173)
* feat(TUP-38935)Add support to AWS (Mysql) Aurora 3.X
https://jira.talendforge.org/browse/TUP-38935

* update mysql driver

* add dbversion for drag and drop

* set default version

* add libray needed
2023-05-29 10:45:59 +08:00
jiezhang-tlnd
6ff18c0449 Add localized files (#6208) (#6209)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-05-26 16:10:23 +08:00
jiezhang-tlnd
4c93a1bed0 chore(TUP-38346)maven-core:3.8.6 (#6079)
* chore(TUP-38346)maven-core:3.8.6

* for update time stamp
2023-05-24 09:38:22 +08:00
kjwang
2462a7a792 Kjwang/feat tup 31305 improve the code to avoid encrypt (#6135)
* TUP-31305 Improve the code to avoid encrypt the password in job
everytime
https://jira.talendforge.org/browse/TUP-31305
2023-05-22 17:33:54 +08:00
jiezhang-tlnd
e18ffe5f0f Add localized files (#6194) (#6195)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-05-19 19:06:56 +08:00
sbliu
b22b9decce chore(TUP-38577) upgrade spring-framework-bom to 5.2.9.RELEASE (#6188) 2023-05-18 16:41:36 +08:00
sbliu
9a3307bace chore(TUP-38415) upgrade xercesImpl to 2.12.2 (#6143) 2023-05-17 17:19:20 +08:00
jiezhang-tlnd
dd5400af61 chore(TUP-38624)Request for an API to determine if a joblet refactoring (#6166)
is ongoing
2023-05-15 18:52:38 +08:00
jiezhang-tlnd
505609aa4b Add localized files (#6183) (#6184)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-05-12 16:08:06 +08:00
msjian
99da8e2286 fix(TDQ-21121): upgrade snowflake connection driver (#6142) 2023-05-11 15:07:09 +08:00
Emmanuel GALLOIS
239ece2966 feat(TDI-49707): bump component-runtime to 1.56.1 (#6128)
Co-authored-by: jzhao-talend <jzhao@talend.com>
2023-05-10 15:37:43 +02:00
apoltavtsev
ce4740ce83 fix(APPINT-35554) Missing build type for child job is added 2023-05-09 15:49:19 +02:00
Dmytro Sylaiev
7c795f724c fix(TDI-49659): Add new version of lib to module (#6150) 2023-05-09 12:59:44 +03:00
wang wei
67784188df fix(TDI-49546): CVE-2022-45688, org.json:json:(<=20220924) (#6063) 2023-05-09 16:52:26 +08:00
kjwang
248a7d74dc kjwang/Fix TUP-38901 Studio can invoke SSO client if no jre on mac os (#6163)
Fix TUP-38901 Studio can invoke SSO client if no jre on mac os
https://jira.talendforge.org/browse/TUP-38901
2023-05-09 10:39:18 +08:00
sbliu
c09c406c32 fix(TUP-38551) improvement, avoid potential NPE (#6156) 2023-05-08 16:22:50 +08:00
sponomarova
bd5b8b0f51 fix(TBD-15065): add missing property in EHadoopProperties (#6169) 2023-05-08 10:57:08 +08:00
sbliu
eb7c195d3e fix(TUP-38462) add junit to check if invaid report generated (#6133)
* fix(TUP-38462) add junit to check if invaid report generated

* update test data

* update test data, remove sap connection and system objects
2023-05-08 09:32:11 +08:00
sponomarova
33162c8be4 feat(TBD-15065): Synapse with universal : GA (#6149) 2023-05-05 15:45:59 +03:00
hcyi
7169a3101a fix(TUP-38348):[8.0.1] Retrieve scheme for DB2 database in Talend does (#6068)
not retrieve PK.
2023-05-05 15:56:30 +08:00
Abdulhamid Rashankar
192e47b6a3 APPINT-35490:App & API Integration - Studio Metrics gathering: build types & APIs usage (#6161) 2023-05-03 11:17:06 +02:00
sbliu
28eda4c880 Add localized files (#6151) (#6153)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-04-28 15:00:06 +08:00
zyuan-talend
309c2ac056 fix(TUP-38557): fix XXE issues. (#6125) 2023-04-28 10:59:05 +08:00
sbliu
64c530b6b4 chore(TUP-38551) json-smart:2.4.7 ( CVE-2023-1370) (#6094)
* chore(TUP-38551) json-smart:2.4.7 ( CVE-2023-1370)

* update json-smart version 2.4.10 to 2.4.9

* update maven url index for upgrade json-smart
2023-04-26 10:28:33 +08:00
sbliu
71f93b5165 Add localized files (#6146) (#6148)
Co-authored-by: jzhangbj <jzhang@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-04-26 10:06:35 +08:00
hcyi
41b50e16c1 fix(TUP-38181):Remove old arvo libraries. (#6104) 2023-04-25 16:11:47 +08:00
jiezhang-tlnd
b7711e1dd5 chore(TUP-38578CVE-2020-13956 (#6111)
org.apache.httpcomponents:httpclient:4.2.6)
2023-04-25 15:43:02 +08:00
jiezhang-tlnd
8ed759c0d8 chore(TUP-38552)Remove source code of libs (#6134) 2023-04-25 14:12:02 +08:00
zyuan-talend
3ff40da876 fix(TUP-38735): velocity:1.5 | CVE-2020-13936 on TOS. (#6138) 2023-04-24 15:24:04 +08:00
sbliu
da6a983f29 Add localized files (#6136) (#6137)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-04-20 17:48:06 +08:00
kjwang
2913c80aef Fix TUP-38743 Dark Mode: Job editor color is still using light theme in (#6130) (#6131)
Fix TUP-38743 Dark Mode: Job editor color is still using light theme in Remote Project
https://jira.talendforge.org/browse/TUP-38743
2023-04-18 16:56:14 +08:00
kjwang
fa2abaf8f3 Kjwang/fix tup 38656 improve job designer in dark mode (#6121) (#6126)
* TUP-38645 On dark mode, Job designer & subjob color can't restore to
correct default color
https://jira.talendforge.org/browse/TUP-38645
2023-04-17 18:14:54 +08:00
sbliu
81e63ecab0 chore(TUP-38572) upgrade xstream to 1.4.20 (#6101) 2023-04-14 10:21:05 +08:00
Emmanuel GALLOIS
3b647c2316 feat(TDI-49562): bump component-runtime to 1.55 (#6054) 2023-04-13 12:00:27 +02:00
kjwang
4ff0184a49 TUP-38591 Text in unselected row isn't clear in FileJson wizard>"Fields (#6116)
TUP-38591 Text in unselected row isn't clear in FileJson wizard>"Fields to extract"
https://jira.talendforge.org/browse/TUP-38591
2023-04-13 14:35:24 +08:00
sbliu
0e37b9632e fix(TUP-38637) fix context update problem from TUP-38212 (#6114) 2023-04-13 10:58:40 +08:00
bhe-talendbj
f2a4328037 fix(TUP-38617): add new api (#6103) 2023-04-13 09:52:12 +08:00
Jane Ding
771a1bf810 fix(TUP-37227):Issue building when items names too long (#6067) (#6087)
https://jira.talendforge.org/browse/TUP-37227
2023-04-12 16:38:38 +08:00
kjwang
3f7d1a83d9 TUP-37441 Improve mapper display in dark mode (#5906)
* TUP-37441 Improve mapper display in dark mode
2023-04-12 10:35:08 +08:00
Jane Ding
c20078c3d1 feat(TUP-38424):Add dark mode info to the pendo of Login Project (#6088)
https://jira.talendforge.org/browse/TUP-38424
2023-04-11 17:09:46 +08:00
Zhiwei Xue
d13ae7e637 fix(TUP-38316):[801 CI/CD] Duplicate Parameter error in the artifact and (#6058)
creating the task
2023-04-11 09:23:44 +08:00
bhe-talendbj
6b094dd4fd feat(TUP-38297): Improve Update settings for user/password (#6075)
* feat(TUP-38297): delete basic auth credential

* feat(TUP-38297): throw error
2023-04-10 16:54:41 +08:00
sponomarova
1ebdb18d27 feat(TBD-12991): Azure Synapse with Universal (#6070) 2023-04-10 11:40:44 +03:00
sbliu
98930c8c96 Add localized files (#6093) (#6098)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-04-07 10:47:55 +08:00
sbliu
a7ab220672 fix(TUP-38212) using updated context (#6089) 2023-04-06 15:59:34 +08:00
sbliu
553b2770c9 fix(TUP-37855) add log to network check exception (#5987)
* fix(TUP-37855) add log to network check exception

* fix(TUP-37855) add check ulr to networkutil error log
2023-04-03 11:28:28 +08:00
jiezhang-tlnd
dd851d3202 Add localized files (#6082) (#6084)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-30 17:20:09 +08:00
vyu-talend
f47f991977 chore(TDI-49458):bump file enhanced. (#6076) 2023-03-30 16:31:59 +08:00
Zhiwei Xue
a2e44cb5c2 fix(TUP-37990):remove custom bundle org.bouncycastle.bcprov (#6049) 2023-03-29 17:08:03 +08:00
hcyi
e36f0690f0 fix(TUP-38199):Remove updates section from Studio preferences. (#6052) 2023-03-29 11:49:58 +08:00
Jill Yan
9c4a9c1589 8.0/APPINT-35452 correct snapshot post fix (#6060)
* APPINT-35452 correct snapshot post fix

* APPINT-35452 correct snapshot post fix

* APPINT-35452 correct snapshot post fix
2023-03-28 09:34:25 +08:00
sbliu
da4ba3f1a0 Add localized files (#6066) (#6071)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-27 15:20:18 +08:00
bhe-talendbj
087dac391d chore(TUP-38259): refactor proxyrepositoryfactory (#6057) 2023-03-27 09:22:03 +08:00
dicarcab
ab843f7a55 fix(TBD-14951):OracleDB Migration task affecting DI Jobs (#6041) 2023-03-23 09:16:02 +01:00
jiezhang-tlnd
5949ce647d chore(TUP-38180)CVE-2022-45787,org.apache.james:apache-mime4j:0.6 (#6050) 2023-03-21 17:05:55 +08:00
hcyi
f9e7be104e fix(TUP-38139):context tab doesn't get updated after press 'undo'. (#6017) 2023-03-21 09:48:48 +08:00
sbliu
774e6dea26 Add localized files (#6051) (#6056)
Co-authored-by: Alexiane Yvonet <ayvonet@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-17 11:03:54 +08:00
Oleksandr Zhelezniak
3eccad0352 fix(TDI-31777): bump talendcsv (#5926) 2023-03-10 12:46:52 +02:00
kjwang
ada4bcf7e3 Fix TUP-38298 Can't edit the two default contexts in testcase (#6046)
* Fix TUP-38298 Can't edit the two default contexts in testcase
https://jira.talendforge.org/browse/TUP-38298
2023-03-10 17:39:34 +08:00
jiezhang-tlnd
7c72d190de Add localized files (#6040) (#6045)
Co-authored-by: jzhangbj <jzhang@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-10 09:29:09 +08:00
jiezhang-tlnd
025cec4828 Add localized files (#6039)
* Add localized files

* Add localized files (#6038)

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

---------

Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2023-03-09 18:20:50 +08:00
bhe-talendbj
91df21afcd feat(TUP-38202): Preference for repositories where the username and password can be set in the settings (Window > preferences > Talend > Update settings) of the Talend studio (#6032)
* feat(TUP-38202): Add p2 credential api

* feat(TUP-38202): add basic auth api

* feat(TUP-38202): add basic auth api

* feat(TUP-38202): add check for forbidden status code
2023-03-08 15:20:11 +08:00
Jane Ding
a3af2de13a feat(TUP-37093):Send Mapper data to PTP (#5982)
* feat(TUP-37093):Send Mapper data to PTP
https://jira.talendforge.org/browse/TUP-37093

* feat(TUP-37093):Send Mapper data to PTP
https://jira.talendforge.org/browse/TUP-37093

* feat(TUP-37093):Send Mapper data to PTP
https://jira.talendforge.org/browse/TUP-37093
2023-03-08 11:11:00 +08:00
kjwang
5c6fd374f1 Kjwang/tup 35058 issues on tmc after publishing (#5954)
TUP-35058 Issues on TMC after publishing artifact with Int type parameter but string values
https://jira.talendforge.org/browse/TUP-35058
2023-03-07 16:45:17 +08:00
AlixMetivier-zz
c11aa42cee feat(TBD-13123): K8S with Livy (#5090)
* feat(TBD-13123): K8S with Livy

* fix for wizard

---------

Co-authored-by: unknown <ametivier@talend.com>
2023-03-03 11:03:33 +01:00
Jill Yan
5506094ec3 tcommon-studio-se/m80/APPINT-35365 (#6006)
* APPINT-35365 fix output flow empty

* APPINT-35365 fix output flow empty

* APPINT-35365 fix empty outflow name

* APPINT-35365 fix empty outflow name
2023-03-03 10:24:36 +08:00
sbliu
a0a7b7cc52 chore(TUP-37430) cleanup orgtalendlibraries (#5985)
* chore(TUP-37430) cleanup default group id org.talend.libraries

* remove extension of library needed

* recovery last removed 'librariesNeeded' extension for unit test

* revert , keep not changed

* revert for org.talend.libraries
2023-03-02 20:29:19 +08:00
sbliu
0a7eb0653f Add localized files (#6027) (#6028)
Co-authored-by: jzhangbj <jzhang@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-02 20:03:44 +08:00
sbliu
baabcf9167 Add localized files (#6024) (#6026)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-03-02 17:46:06 +08:00
Jane Ding
d24160aaf7 Revert "fix(TUP-37227):Issue building when items names too long (#5905)" (#6023)
This reverts commit 6e88e334a3.
2023-03-02 15:59:50 +08:00
Emmanuel GALLOIS
ff42b63947 feat(TDI-49432): bump component-runtime to 1.54 (#5994) 2023-03-01 16:48:33 +01:00
kjwang
bc536f772e TUP-38032 [Studio 8.0]"Overwrite existing item" option is not display (#5983)
TUP-38032 [Studio 8.0]"Overwrite existing item" option is not display even increase the window height to maximum
https://jira.talendforge.org/browse/TUP-38032
2023-03-01 09:32:50 +08:00
Jane Ding
6e88e334a3 fix(TUP-37227):Issue building when items names too long (#5905)
* fix(TUP-37227):Issue building when items names too long (#5828)

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

* fix(TUP-37227):Issue building when items names too long
https://jira.talendforge.org/browse/TUP-37227

Conflicts:
	main/plugins/org.talend.designer.maven.ui/src/main/java/messages.properties
2023-02-27 19:04:04 +08:00
Jane Ding
5b86f87d99 Add localized files (#6010) (#6011)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-02-24 16:46:50 +08:00
Jane Ding
11ff6ac63d fix(TUP-37569):Update Support>Documentation link with CLM link (#5979)
* fix(TUP-37569):Update Support>Documentation link with CLM link
https://jira.talendforge.org/browse/TUP-37569

* fix(TUP-37569):Update Support>Documentation link with CLM link
https://jira.talendforge.org/browse/TUP-37569
2023-02-24 16:22:00 +08:00
Jane Ding
a4679a906a fix(TUP-37568):Edits to the Help Contents menu (#5981)
* fix(TUP-37568):Edits to the Help Contents menu
https://jira.talendforge.org/browse/TUP-37568

* fix(TUP-37568):Edits to the Help Contents menu
https://jira.talendforge.org/browse/TUP-37568
2023-02-24 16:21:45 +08:00
Oleksandr Zhelezniak
a4a0bc0649 fix(TDI-49284): talend file enhanced (#5989) 2023-02-23 13:49:05 +02:00
jiezhang-tlnd
0709202ae3 fix(TUP-37874)SQL inject risk (#6007) 2023-02-23 15:13:12 +08:00
ypiel
899c5a03f6 Revert "chore(TDI-49432): bump component-runtime:1.54.0 (#6001)" (#6003)
This reverts commit 5e1bca282f.
2023-02-22 14:20:32 +01:00
ypiel
5e1bca282f chore(TDI-49432): bump component-runtime:1.54.0 (#6001) 2023-02-22 14:04:54 +01:00
jiezhang-tlnd
61a8ed2b73 fix(TUP-37874)SQL inject risk (#5955)
* fix(TUP-37874)SQL inject risk

* add back

* add back

* SQL inject risk
2023-02-22 18:17:19 +08:00
kjwang
ab88eda019 TUP-37176 SSO logs out way too often on the Studio (#5800)
* TUP-37176 SSO logs out way too often on the Studio
https://jira.talendforge.org/browse/TUP-37176
2023-02-22 17:35:43 +08:00
zyuan-talend
c4942af4b0 fix(TUP-35060): tWarn does not show the TalendDate.TO_CHAR method. (#5962) 2023-02-21 11:57:43 +08:00
Jane Ding
80ccccb407 Add localized files (#5995)
* Add localized files (#5986)

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

* Add localized files (#5991)

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: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2023-02-21 11:22:27 +08:00
hcyi
4063e6888b fix(TUP-37696):Issue on redshift SSO metadata after update aws-java-sdk. (#5925)
* fix(TUP-37696):Issue on redshift SSO metadata after update aws-java-sdk.

* fix(TUP-37696):Issue on redshift SSO metadata after update aws-java-sdk.
2023-02-21 09:57:27 +08:00
Colm O hEigeartaigh
54d1a85c1f TDI-49282 - maxDate in TalendDate is not validated (#5944) 2023-02-13 14:21:53 +08:00
Jane Ding
a2c23dd110 Add localized files (#5978)
* Add localized files (#5976)

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

* Add localized files (#5977)

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

---------

Co-authored-by: jzhangbj <jzhang@talend.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
2023-02-10 09:44:10 +08:00
Zhiwei Xue
9e56acd4e5 feat(TUP-37353):Guess Schema for tBigQueryInput (#5953) 2023-02-09 17:00:24 +08:00
Zhiwei Xue
a9f5e42f6d fix(TUP-37971):Studio 8 failed to update using "NIGHTLY" Update URL if (#5973)
Studio was used before
2023-02-09 11:30:22 +08:00
zyuan-talend
e4250d1120 fix(TUP-37700):generate microservice dependencies into componentIndex (#5923)
file.
2023-02-07 15:14:37 +08:00
sbliu
7225c51654 fix(TUP-37692) XPath json use context can't get any data when running job (#5909)
* fix(TUP-37692) some change not finished

* to show tree node according to if add root or add root/object
2023-02-07 09:32:21 +08:00
bhe-talendbj
11bf826613 feat(TUP-37595): reintroduce ingres/vectorwise in metedata (#5902)
* feat(TUP-37595): add back ingres and vectorwise db

* feat(TUP-37595): add back ingres and vectorwise db

* feat(TUP-37595): enable ingres and vectorwise
2023-02-06 17:24:29 +08:00
bhe-talendbj
2039df6058 fix(TUP-37920): fix sqllite retrieve tables (#5959) 2023-02-06 17:22:22 +08:00
hcyi
59147d2bf3 fix(TUP-36823):Generated SQL Query for Teradata misses reserved word (#5915)
"TIME"
2023-02-06 15:29:54 +08:00
bhe-talendbj
a272ce7fe3 feat(TUP-37841): Generating jsonform for all of components automatically (#5947)
* feat(TUP-37841): add jsonform generator

* feat(TUP-37841): add jsonform generator

* feat(TUP-37841): correct class path

* feat(TUP-37841): correct class path

* feat(TUP-37841): refactor

* feat(TUP-37841): refactor
2023-02-06 10:00:19 +08:00
jiezhang-tlnd
d32d4c1c2c fix(TUP-37349)Data viewer for tCouchBaseInput get npe error (#5848)
* fix(TUP-37349)Data viewer for tCouchBaseInput get npe error
https://jira.talendforge.org/browse/TUP-37349

* Data viewer for tCouchBaseInput get npe error
2023-02-06 09:39:51 +08:00
Emmanuel GALLOIS
51ca13e2ee fix(TCOMP-2368): align log4j version (#5966) 2023-02-03 14:31:10 +01:00
Zhiwei Xue
3d697f472c fix(TUP-35407):project rootPom template not considered anymore. (#5917)
* fix(TUP-35407):project rootPom template not considered anymore.

* fix(TUP-35407):improve UI
2023-02-03 17:41:07 +08:00
kjwang
0dcd60f44b TUP-37344 If access token & refresh token change to invalid, can't show (#5835)
TUP-37344 If access token & refresh token change to invalid, can't show log in dialog when user selected auto login
https://jira.talendforge.org/browse/TUP-37344
2023-02-03 11:02:47 +08:00
Jane Ding
8f59c857d8 fix(TUP-37358):Adding org.ops4j.pax.url.mvn.useFallbackRepositories=false for studio ops4j (#5868)
* fix(TUP-37358):Adding
org.ops4j.pax.url.mvn.useFallbackRepositories=false for studio ops4j
https://jira.talendforge.org/browse/TUP-37358

* fix(TUP-37358):Adding
org.ops4j.pax.url.mvn.useFallbackRepositories=false for studio ops4j
https://jira.talendforge.org/browse/TUP-37358
2023-02-02 17:26:06 +08:00
Jane Ding
442631c61b fix(TUP-37253):Excel Metadata fails to set column names and results in (#5816)
IndexOutOfBounds for æ character
https://jira.talendforge.org/browse/TUP-37253
2023-02-02 17:25:45 +08:00
Emmanuel GALLOIS
31303fa608 feat(TDI-49275): bump component-runtime to 1.53.0 (#5943) 2023-02-01 11:21:34 +01:00
bhe-talendbj
fea26cbefa fix(TUP-37425): Performance: Not Responding while Retrieving schema and the database contains many tables (#5950)
* fix(TUP-37425): fix retrieve schema

* fix(TUP-37425): check NPE
2023-01-30 19:38:16 +08:00
Jane Ding
21254ffaca Add localized files (#5945) (#5946)
Co-authored-by: tsasada-talend <51699524+tsasada-talend@users.noreply.github.com>
Co-authored-by: build-talend-doc <build-talend-doc@talend.com>
2023-01-28 11:48:39 +08:00
bhe-talendbj
caa4b51cc4 chore(TUP-37660): upgrade sqlite-jdbc (#5899) 2023-01-18 14:37:10 +08:00
bhe-talendbj
b2fdccc3e7 chore: fix junit exe resolve (#5936)
* chore: fix exe resolve

* chore: revert unnecessay changes

* chore: remove exe dependency test
2023-01-17 17:55:34 +08:00
jiezhang-tlnd
da208c72f6 force update time stamp (#5934) 2023-01-17 16:11:39 +08:00
bhe-talendbj
bd6a271805 bugfix(TUP-37425): Performance: Not Responding while Retrieving schema and the database contains many tables (#5864)
* fix(TUP-37425): retrieve table comment once

* fix(TUP-37425): add busy indicator

* fix(TUP-37425): fix UI responsiveness
2023-01-16 19:26:43 +08:00
1461 changed files with 71020 additions and 369489 deletions

View File

@@ -5,7 +5,6 @@
<copyright url="http://www.example.com/copyright">[Enter Copyright Description here.]</copyright>
<license url="http://www.example.com/license">[Enter License Description here.]</license>
<requires>
<import plugin="org.bouncycastle.bcprov" version="1.70.0" match="greaterOrEqual"/>
<import plugin="com.cedarsoftware.json-io" version="0.0.0" match="greaterOrEqual"/>
<import plugin="com.fasterxml.jackson.core.jackson-annotations" version="2.9.0" match="greaterOrEqual"/>
<import plugin="com.fasterxml.jackson.core.jackson-core" version="2.9.8" match="greaterOrEqual"/>
@@ -17,7 +16,7 @@
<import plugin="org.apache.commons.lang" version="0.0.0" match="greaterOrEqual"/>
<import plugin="org.apache.commons.lang3" version="0.0.0" match="greaterOrEqual"/>
<import plugin="org.apache.log4j" version="0.0.0" match="greaterOrEqual"/>
<import plugin="org.apache.servicemix.bundles.avro" version="0.0.0" match="greaterOrEqual"/>
<import plugin="avro" version="0.0.0" match="greaterOrEqual"/>
<import plugin="org.junit" version="4.13.2" match="greaterOrEqual"/>
<import plugin="org.slf4j.api" version="0.0.0" match="greaterOrEqual"/>
<import plugin="org.slf4j.binding.log4j12" version="0.0.0" match="greaterOrEqual"/>

View File

@@ -9,4 +9,7 @@
</parent>
<artifactId>org.talend.utils.feature</artifactId>
<packaging>eclipse-feature</packaging>
<properties>
<tycho.buildtimestamp.format>${timestamp}</tycho.buildtimestamp.format>
</properties>
</project>

Binary file not shown.

After

Width:  |  Height:  |  Size: 288 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

View File

@@ -37,6 +37,8 @@ public interface ColorConstants {
static final Color YELLOW_COLOR = new Color(null, 255, 173, 37);// 254, 182, 84
static final Color RED_COLOR = new Color(null, new RGB(204, 87, 89));// 255
static final Color ERROR_FONT_COLOR = new Color(null, new RGB(255, 0, 0));// 255
static final Color VERTICAL_SEPERATOR_LINE_COLOR = new Color(null, 162, 179, 195);
@@ -55,12 +57,17 @@ public interface ColorConstants {
static Color getTableBackgroundColor() {
return ITalendThemeService.getColor(ColorConstants.BUNDLE_ID_COMMON_UI_RUNTIME, ColorConstants.KEY_TABLE_BACKGROUND)
.orElse(WHITE_COLOR);
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_LIST_BACKGROUND));
}
static Color getTableForegroundColor() {
return ITalendThemeService.getColor(ColorConstants.BUNDLE_ID_COMMON_UI_RUNTIME, ColorConstants.KEY_TABLE_FOREGROUND)
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_LIST_FOREGROUND));
}
static Color getTableReadOnlyForegroundColor() {
return ITalendThemeService.getColor("CONTEXT_TABLE_READONLY_FOREGROUND")
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_WIDGET_DARK_SHADOW));
}
}

View File

@@ -15,6 +15,7 @@ package org.talend.commons.ui.runtime;
import java.util.Optional;
import org.apache.commons.lang.StringUtils;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.util.IPropertyChangeListener;
import org.eclipse.swt.graphics.Color;
import org.osgi.framework.BundleContext;
@@ -29,6 +30,8 @@ public interface ITalendThemeService {
public static String DEFAULT_PREFERENCE_ID = "org.eclipse.ui.workbench";
public static String THEME_PREFERENCE_ID = "org.eclipse.e4.ui.css.swt.theme";
/**
* Get color from instance scope preference of default bundleId, which managed by theme; the standard way eclipse
* uses
@@ -132,6 +135,8 @@ public interface ITalendThemeService {
void removePropertyChangeListenerFor(String bundleId, IPropertyChangeListener listener);
IPreferenceStore getThemePreferenceStore();
static ITalendThemeService get() {
try {
BundleContext bc = FrameworkUtil.getBundle(ITalendThemeService.class).getBundleContext();

View File

@@ -96,7 +96,7 @@ ProposalUtils.CtrlProposal.ErrorMsg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u5236\u
RemovePushButton.RemoveButton.Tip=\u9078\u629E\u3057\u305F\u30A2\u30A4\u30C6\u30E0\u3092\u524A\u9664
ResetDBTypesButton.ResetDBTypesButton.Tip=DB\u30BF\u30A4\u30D7\u3092\u30EA\u30BB\u30C3\u30C8
Rule.rule=\u30EB\u30FC\u30EB[{0}]
SaveAsGenericSchemaPushButton.saveAsSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
SaveAsGenericSchemaPushButton.saveAsSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
SelectContextVariablesPushButton.Label=\u30B3\u30F3\u30C6\u30AF\u30B9\u30C8\u5909\u6570\u3092\u9078\u629E
SWTCalendarWithTime.contentEvening=\u5915\u65B9
SWTCalendarWithTime.contentHr=\u6642:

View File

@@ -115,6 +115,8 @@ public enum ECoreImage implements IImage {
METADATA_SAPCONNECTION_ICON("/icons1/sapconnection.png"), //$NON-NLS-1$
METADATA_SAPCONNECTION_WIZ("/icons1/connection_wiz.gif"), //$NON-NLS-1$
METADATA_BIGQUERYCONNECTION_ICON("/icons1/bigqueryconnection.png"), //$NON-NLS-1$
METADATA_HEADERFOOTER_ICON("/icons1/headerfooter_icon32.png"), //$NON-NLS-1$

View File

@@ -40,8 +40,8 @@ public enum EImage implements IImage {
READ_ICON("/icons/read_obj.gif"), //$NON-NLS-1$
QUESTION_ICON("/icons/question.gif"), //$NON-NLS-1$
HELP_ICON("/icons/help.png"), //$NON-NLS-1$
MOREINFO_ICON("/icons/moreInfo.png"), //$NON-NLS-1$
CREATE_CONNECTION_ICON("/icons/connection.gif"), //$NON-NLS-1$

View File

@@ -283,6 +283,7 @@
<KEYWORD1>smallint</KEYWORD1>
<KEYWORD1>smallmoney</KEYWORD1>
<KEYWORD1>text</KEYWORD1>
<KEYWORD1>TIME</KEYWORD1>
<KEYWORD1>timestamp</KEYWORD1>
<KEYWORD1>tinyint</KEYWORD1>
<KEYWORD1>uniqueidentifier</KEYWORD1>

View File

@@ -92,7 +92,7 @@
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.12.0</version>
<version>2.12.2</version>
</dependency>
<dependency>
<groupId>ch.qos.reload4j</groupId>
@@ -125,7 +125,7 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>30.0-jre</version>
<version>32.0.1-jre</version>
</dependency>
</dependencies>
<configuration>

View File

@@ -36,6 +36,11 @@ public final class CommonExceptionHandler {
Priority priority = getPriority(ex);
process(ex, priority);
}
public static void process(Throwable ex, String msg) {
Priority priority = getPriority(ex);
process(ex, msg, priority);
}
public static void process(Throwable ex, Priority priority) {
String message = ex.getMessage();
@@ -43,6 +48,13 @@ public final class CommonExceptionHandler {
log.log(priority, message, ex);
}
public static void process(Throwable ex, String msg, Priority priority) {
String message = ex.getMessage() + ": " + msg;
log.log(priority, message, ex);
}
public static void log(String message) {
log.log(Level.INFO, message);

View File

@@ -0,0 +1,85 @@
// ============================================================================
//
// 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.runtime.model.emf;
import java.util.Iterator;
import java.util.Map;
import java.util.StringJoiner;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.xmi.XMLHelper;
import org.eclipse.emf.ecore.xmi.XMLResource;
import org.eclipse.emf.ecore.xmi.XMLSave;
import org.eclipse.emf.ecore.xmi.impl.XMISaveImpl;
import org.eclipse.emf.ecore.xmi.impl.XMLString;
/**
* DOC jding class global comment. Detailled comment
*/
public class CustomXMIResource extends TalendXMIResource {
public static final String ENCODING = "UTF-8"; //$NON-NLS-1$
CustomXMISave xmiSave;
public CustomXMIResource() {
super();
}
public CustomXMIResource(URI uri) {
super(uri);
}
@Override
protected void init() {
super.init();
encoding = ENCODING;
}
@Override
protected XMLSave createXMLSave() {
xmiSave = new CustomXMISave(createXMLHelper());
return xmiSave;
}
public String getResourceContent(Map<?, ?> options) {
if (xmiSave == null) {
createXMLSave();
}
return xmiSave.getXMLContent(this, options);
}
}
class CustomXMISave extends XMISaveImpl {
public CustomXMISave(XMLHelper helper) {
super(helper);
}
public String getXMLContent(XMLResource resource, Map<?, ?> options) {
StringJoiner strJoin = new StringJoiner("");
super.init(resource, options);
super.traverse(resource.getContents());
XMLString xmlString = this.doc;
Iterator<String> iterator = xmlString.stringIterator();
while (iterator.hasNext()) {
String string = (String) iterator.next();
if (string != null) {
strJoin.add(string);
}
}
return strJoin.toString();
}
}

View File

@@ -16,6 +16,7 @@ import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
@@ -263,4 +264,12 @@ public class EmfHelper {
return result;
}
public static String getEmfModelContent(EObject model) throws Exception {
String content = "";
CustomXMIResource xmiResource = new CustomXMIResource();
xmiResource.getContents().add(model);
content = xmiResource.getResourceContent(Collections.EMPTY_MAP);
return content;
}
}

View File

@@ -145,7 +145,30 @@ public class DB2ForZosDataBaseMetadata extends PackageFakeDatabaseMetadata {
*/
@Override
public ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException {
return new DB2ForZosResultSet();
ResultSet rs = super.getPrimaryKeys(catalog, schema, table);
if (rs == null) {
rs = new DB2ForZosResultSet();
}
return rs;
}
/*
* (non-Javadoc)
*
* @see org.talend.commons.utils.database.FakeDatabaseMetaData#getExportedKeys(java.lang.String, java.lang.String,
* java.lang.String)
*/
@Override
public ResultSet getExportedKeys(String catalog, String schema, String table) throws SQLException {
ResultSet rs = super.getExportedKeys(catalog, schema, table);
if (rs == null) {
if (this.metaData != null) {
rs = this.metaData.getExportedKeys(catalog, schema, table);
} else {
rs = new DB2ForZosResultSet();
}
}
return rs;
}
/*
@@ -174,17 +197,6 @@ public class DB2ForZosDataBaseMetadata extends PackageFakeDatabaseMetadata {
return tableResultSet;
}
/*
* (non-Javadoc)
*
* @see org.talend.commons.utils.database.FakeDatabaseMetaData#getExportedKeys(java.lang.String, java.lang.String,
* java.lang.String)
*/
@Override
public ResultSet getExportedKeys(String catalog, String schema, String table) throws SQLException {
return new DB2ForZosResultSet();
}
/*
* (non-Javadoc)
*

View File

@@ -33,6 +33,7 @@ import java.util.regex.Pattern;
import org.apache.commons.lang.StringUtils;
import org.eclipse.core.runtime.preferences.IEclipsePreferences;
import org.eclipse.core.runtime.preferences.InstanceScope;
import org.talend.commons.exception.CommonExceptionHandler;
import org.talend.commons.exception.ExceptionHandler;
import org.talend.commons.runtime.utils.io.FileCopyUtils;
@@ -108,6 +109,7 @@ public class NetworkUtil {
return true;
}
} catch (Exception e) {
CommonExceptionHandler.process(e, getCheckUrl());
return false;
} finally {
conn.disconnect();
@@ -144,6 +146,7 @@ public class NetworkUtil {
conn.setRequestMethod("HEAD"); //$NON-NLS-1$
conn.getResponseMessage();
} catch (Exception e) {
CommonExceptionHandler.process(e, urlString);
// if not reachable , will throw exception(time out/unknown host) .So if catched exception, make it a
// invalid server
return false;

View File

@@ -20,7 +20,8 @@ Require-Bundle: org.eclipse.core.runtime,
org.talend.commons.runtime,
org.talend.common.ui.runtime;visibility:=reexport,
org.talend.libraries.ui;visibility:=reexport,
org.eclipse.ui.workbench
org.eclipse.ui.workbench,
org.eclipse.jface.notifications
Eclipse-LazyStart: true
Bundle-Vendor: .Talend SA.
Export-Package: org.talend.commons.ui.command,
@@ -28,6 +29,7 @@ Export-Package: org.talend.commons.ui.command,
org.talend.commons.ui.gmf.util,
org.talend.commons.ui.html,
org.talend.commons.ui.i18n,
org.talend.commons.ui.nofitication,
org.talend.commons.ui.swt.actions,
org.talend.commons.ui.swt.advanced.composite,
org.talend.commons.ui.swt.advanced.dataeditor,

View File

@@ -92,7 +92,7 @@ ProposalUtils.CtrlProposal.ErrorMsg=\u3053\u306E\u30BF\u30A4\u30D7\u306E\u5236\u
RemovePushButton.RemoveButton.Tip=\u9078\u629E\u3057\u305F\u30A2\u30A4\u30C6\u30E0\u3092\u524A\u9664
ResetDBTypesButton.ResetDBTypesButton.Tip=DB\u30BF\u30A4\u30D7\u3092\u30EA\u30BB\u30C3\u30C8
Rule.rule=\u30EB\u30FC\u30EB[{0}]
SaveAsGenericSchemaPushButton.saveAsSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
SaveAsGenericSchemaPushButton.saveAsSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE\u3068\u3057\u3066\u4FDD\u5B58
SelectContextVariablesPushButton.Label=\u30B3\u30F3\u30C6\u30AF\u30B9\u30C8\u5909\u6570\u3092\u9078\u629E
SWTCalendarWithTime.contentEvening=\u5915\u65B9
SWTCalendarWithTime.contentHr=\u6642:

View File

@@ -0,0 +1,133 @@
// ============================================================================
//
// Copyright (C) 2006-2022 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.ui.nofitication;
import java.util.List;
import org.eclipse.jface.notifications.AbstractNotificationPopup;
import org.eclipse.jface.window.Window;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Monitor;
import org.eclipse.swt.widgets.Shell;
public abstract class ArrangedNotificationPopup extends AbstractNotificationPopup {
protected static final int MAX_WIDTH = 400;
protected static final int MIN_HEIGHT = 100;
protected static final int PADDING_EDGE = 5;
private static NotificationManager manager;
public ArrangedNotificationPopup(Display display) {
super(display);
}
public ArrangedNotificationPopup(Display display, int style) {
super(display, style);
}
@Override
protected void createContentArea(Composite parent) {
createControl(parent);
afterCreate();
}
protected abstract void createControl(Composite parent);
@Override
protected Shell getParentShell() {
return getNotificationManager().getParentShell();
}
@Override
public void initializeBounds() {
Rectangle clArea = getPrimaryClientArea();
Point initialSize = getShell().computeSize(SWT.DEFAULT, SWT.DEFAULT);
int height = Math.max(initialSize.y, MIN_HEIGHT);
int width = Math.min(initialSize.x, MAX_WIDTH);
Point size = new Point(width, height);
getShell().setLocation(clArea.width + clArea.x - size.x - PADDING_EDGE, clArea.height + clArea.y - size.y - PADDING_EDGE);
getShell().setSize(size);
}
private Rectangle getPrimaryClientArea() {
Shell parentShell = getParentShell();
if (parentShell != null) {
// calculate client area in display-relative coordinates
// (i.e. without window border / decorations)
Rectangle bounds = parentShell.getBounds();
Rectangle trim = parentShell.computeTrim(0, 0, 0, 0);
List<Window> toasts = getNotificationManager().getWindows();
Rectangle rect = new Rectangle(bounds.x - trim.x, bounds.y - trim.y, bounds.width - trim.width,
bounds.height - trim.height);
if (!toasts.isEmpty()) {
int index = 0;
if (toasts.contains(this)) {
// parent shell resize or move
index = toasts.indexOf(this);
if (index == 0) {
// return parent shell rectangle if it's the first one at bottom
return rect;
}
// the one under current toast
index -= 1;
} else {
// toast creation
// the one on the top
index = toasts.size() - 1;
}
Rectangle toastRect = toasts.get(index).getShell().getBounds();
rect = new Rectangle(rect.x, rect.y, rect.width, toastRect.y - rect.y);
}
return rect;
}
// else display on primary monitor
Monitor primaryMonitor = this.getShell().getDisplay().getPrimaryMonitor();
return (primaryMonitor != null) ? primaryMonitor.getClientArea() : this.getShell().getDisplay().getClientArea();
}
protected void afterCreate() {
//
}
@Override
public int open() {
int open = super.open();
// add after open
getNotificationManager().add(this);
return open;
}
@Override
public boolean close() {
boolean close = super.close();
getNotificationManager().remove(this);
getNotificationManager().refresh();
return close;
}
private NotificationManager getNotificationManager() {
if (manager == null) {
manager = NotificationManager.getInstance();
}
return manager;
}
}

View File

@@ -0,0 +1,81 @@
// ============================================================================
//
// 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.ui.nofitication;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.eclipse.jface.window.Window;
import org.eclipse.jface.window.WindowManager;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
public class NotificationManager implements Listener {
private static NotificationManager notificationManager;
private WindowManager windowManager = new WindowManager();
private NotificationManager() {
Shell shell = getParentShell();
if (shell != null) {
shell.addListener(SWT.Resize, this);
shell.addListener(SWT.Move, this);
}
}
public static NotificationManager getInstance() {
if (notificationManager == null) {
notificationManager = new NotificationManager();
}
return notificationManager;
}
@Override
public void handleEvent(Event event) {
refresh();
}
public void refresh() {
Stream.of(windowManager.getWindows()).map(ArrangedNotificationPopup.class::cast)
.forEach(ArrangedNotificationPopup::initializeBounds);
}
public List<Window> getWindows() {
return Stream.of(windowManager.getWindows()).collect(Collectors.toList());
}
public void add(Window window) {
windowManager.add(window);
}
public void remove(Window window) {
windowManager.remove(window);
}
public Shell getParentShell() {
Shell shell = null;
if (PlatformUI.getWorkbench().getActiveWorkbenchWindow() != null) {
shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
if (shell == null) {
shell = PlatformUI.getWorkbench().getDisplay().getActiveShell();
}
}
return shell;
}
}

View File

@@ -130,11 +130,10 @@ public abstract class ExportPushButtonForExtendedTable extends ExportPushButton
AbstractExtendedTableViewer extendedTableViewer = (AbstractExtendedTableViewer) extendedControlViewer;
ExtendedTableModel extendedTableModel = extendedTableViewer.getExtendedTableModel();
boolean enabled = false;
if (extendedTableModel != null && extendedTableModel.isDataRegistered()
&& extendedTableModel.getBeansList().size() > 0) {
if (extendedTableModel != null && extendedTableModel.isDataRegistered() && extendedTableModel.getBeansList().size() > 0) {
enabled = true;
}
return super.getEnabledState() && enabled;
return extendedTableModel != null || enabled;
}
}

View File

@@ -19,6 +19,7 @@ import org.talend.commons.ui.runtime.image.EImage;
import org.talend.commons.ui.runtime.image.ImageProvider;
import org.talend.commons.ui.swt.advanced.dataeditor.control.ExtendedPushButton;
import org.talend.commons.ui.swt.extended.table.AbstractExtendedTableViewer;
import org.talend.commons.ui.swt.extended.table.ExtendedTableModel;
/**
* DOC Administrator class global comment. Detailled comment <br/>
@@ -33,4 +34,11 @@ public abstract class SaveAsGenericSchemaPushButton extends ExtendedPushButton {
@Override
protected abstract Command getCommandToExecute();
@Override
public boolean getEnabledState() {
AbstractExtendedTableViewer extendedTableViewer = (AbstractExtendedTableViewer) extendedControlViewer;
ExtendedTableModel extendedTableModel = extendedTableViewer.getExtendedTableModel();
return extendedTableModel != null;
}
}

View File

@@ -18,12 +18,12 @@ import java.util.Iterator;
import java.util.Map;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.preference.PreferenceConverter;
import org.eclipse.jface.resource.StringConverter;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Display;
import org.talend.commons.ui.runtime.ITalendThemeService;
import org.talend.commons.ui.swt.colorstyledtext.scanner.ColoringScanner;
/**
@@ -33,7 +33,7 @@ import org.talend.commons.ui.swt.colorstyledtext.scanner.ColoringScanner;
*
*/
public class ColorManager {
public static final RGB DEFAULT_STRING_COLOR = new RGB(0, 0, 0);
public static final RGB DEFAULT_KEYWORD1_COLOR = new RGB(50, 32, 160);
@@ -106,15 +106,19 @@ public class ColorManager {
}
public Color getColor(String colorName) {
RGB prefColor = PreferenceConverter.getColor(store, colorName);
Color color = null;
if (colorMap.containsKey(colorName) && (colorMap.get(colorName)).getRGB().equals(prefColor)) {
color = (Color) colorMap.get(colorName);
Color prefColor = getThemeColor(colorName);
if (colorMap.containsKey(colorName) && (colorMap.get(colorName)).equals(prefColor)) {
return colorMap.get(colorName);
} else {
color = new Color(Display.getDefault(), prefColor);
colorMap.put(colorName, color);
colorMap.put(colorName, prefColor);
}
return color;
return prefColor;
}
private static Color getThemeColor(String colorName) {
Color c = ITalendThemeService.getColor(colorName)
.orElse(Display.getDefault().getSystemColor(SWT.COLOR_INFO_FOREGROUND));
return c;
}
public void dispose() {
@@ -164,20 +168,20 @@ public class ColorManager {
}
public static void initDefaultColors(IPreferenceStore store) {
store.setDefault(NULL_COLOR, StringConverter.asString(DEFAULT_STRING_COLOR));
store.setDefault(COMMENT1_COLOR, StringConverter.asString(DEFAULT_COMMENT1_COLOR));
store.setDefault(COMMENT2_COLOR, StringConverter.asString(DEFAULT_COMMENT2_COLOR));
store.setDefault(LITERAL1_COLOR, StringConverter.asString(DEFAULT_LITERAL1_COLOR));
store.setDefault(LITERAL2_COLOR, StringConverter.asString(DEFAULT_LITERAL2_COLOR));
store.setDefault(LABEL_COLOR, StringConverter.asString(DEFAULT_LABEL_COLOR));
store.setDefault(KEYWORD1_COLOR, StringConverter.asString(DEFAULT_KEYWORD1_COLOR));
store.setDefault(KEYWORD2_COLOR, StringConverter.asString(DEFAULT_KEYWORD2_COLOR));
store.setDefault(KEYWORD3_COLOR, StringConverter.asString(DEFAULT_KEYWORD3_COLOR));
store.setDefault(FUNCTION_COLOR, StringConverter.asString(DEFAULT_FUNCTION_COLOR));
store.setDefault(MARKUP_COLOR, StringConverter.asString(DEFAULT_MARKUP_COLOR));
store.setDefault(OPERATOR_COLOR, StringConverter.asString(DEFAULT_OPERATOR_COLOR));
store.setDefault(DIGIT_COLOR, StringConverter.asString(DEFAULT_DIGIT_COLOR));
store.setDefault(INVALID_COLOR, StringConverter.asString(DEFAULT_INVALID_COLOR));
store.setDefault(NULL_COLOR, StringConverter.asString(getThemeColor(NULL_COLOR).getRGB()));
store.setDefault(COMMENT1_COLOR, StringConverter.asString(getThemeColor(COMMENT1_COLOR).getRGB()));
store.setDefault(COMMENT2_COLOR, StringConverter.asString(getThemeColor(COMMENT2_COLOR).getRGB()));
store.setDefault(LITERAL1_COLOR, StringConverter.asString(getThemeColor(LITERAL1_COLOR).getRGB()));
store.setDefault(LITERAL2_COLOR, StringConverter.asString(getThemeColor(LITERAL2_COLOR).getRGB()));
store.setDefault(LABEL_COLOR, StringConverter.asString(getThemeColor(LABEL_COLOR).getRGB()));
store.setDefault(KEYWORD1_COLOR, StringConverter.asString(getThemeColor(KEYWORD1_COLOR).getRGB()));
store.setDefault(KEYWORD2_COLOR, StringConverter.asString(getThemeColor(KEYWORD2_COLOR).getRGB()));
store.setDefault(KEYWORD3_COLOR, StringConverter.asString(getThemeColor(KEYWORD3_COLOR).getRGB()));
store.setDefault(FUNCTION_COLOR, StringConverter.asString(getThemeColor(FUNCTION_COLOR).getRGB()));
store.setDefault(MARKUP_COLOR, StringConverter.asString(getThemeColor(MARKUP_COLOR).getRGB()));
store.setDefault(OPERATOR_COLOR, StringConverter.asString(getThemeColor(OPERATOR_COLOR).getRGB()));
store.setDefault(DIGIT_COLOR, StringConverter.asString(getThemeColor(DIGIT_COLOR).getRGB()));
store.setDefault(INVALID_COLOR, StringConverter.asString(getThemeColor(INVALID_COLOR).getRGB()));
String bold = BOLD_SUFFIX;
store.setDefault(COMMENT1_COLOR + bold, false);

View File

@@ -1,368 +1,384 @@
// ============================================================================
//
// Copyright (C) 2006-2021 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.ui.swt.colorstyledtext;
import java.util.ArrayList;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ExtendedModifyEvent;
import org.eclipse.swt.custom.ExtendedModifyListener;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.talend.commons.runtime.xml.XmlUtil;
import org.talend.commons.ui.runtime.i18n.Messages;
import org.talend.commons.ui.runtime.image.ImageProvider;
import org.talend.commons.ui.swt.colorstyledtext.jedit.Mode;
import org.talend.commons.ui.swt.colorstyledtext.jedit.Modes;
import org.talend.commons.ui.swt.colorstyledtext.rules.CToken;
import org.talend.commons.ui.swt.colorstyledtext.scanner.ColoringScanner;
import org.talend.commons.utils.threading.ExecutionLimiter;
/**
* This component is an adaptation of a Color Editor for a StyledText.
*
* The original editor can be found on http://www.gstaff.org/colorEditor/ <br/>
*
* <b>How to use it, example :</b> <br/>
* ColorStyledText text = new ColorStyledText(parent, SWT.H_SCROLL | SWT.V_SCROLL,
* CorePlugin.getDefault().getPreferenceStore(), ECodeLanguage.PERL.getName());</i> <br/>
* <br/>
*
* $Id: ColorStyledText.java 7183 2007-11-23 11:03:36Z amaumont $
*
*/
public class ColorStyledText extends StyledText {
private final static int MAXIMUM_CHARACTERS_BEFORE_USE_TIMER = 1000;
private final ColorManager colorManager;
private final ColoringScanner scanner;
private final String languageMode;
private final MenuItem pasteItem;
private boolean coloring = true;
private UndoRedoManager undoRedoManager;
public ColorStyledText(Composite parent, int style, IPreferenceStore store, String languageMode) {
super(parent, style);
this.languageMode = languageMode;
this.colorManager = new ColorManager(store);
/*
* set the Shortcuts of the undo/redo
*/
this.setKeyBinding('Z' | SWT.CTRL, ActionCode.UNDO);
this.setKeyBinding('Y' | SWT.CTRL, ActionCode.REDO);
UndoRedoManager undoManager = new UndoRedoManager(50);
undoManager.connect(this);
this.setUndoManager(undoManager);
ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages();
Menu popupMenu = new Menu(this);
MenuItem redoItem = new MenuItem(popupMenu, SWT.PUSH);
redoItem.setText(Messages.getString("ColorStyledText.RedoItem.Text")); //$NON-NLS-1$
redoItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
redo();
}
});
MenuItem undoItem = new MenuItem(popupMenu, SWT.PUSH);
undoItem.setText(Messages.getString("ColorStyledText.UndoItem.Text")); //$NON-NLS-1$
undoItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
undo();
}
});
Image image = ImageProvider.getImage(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
MenuItem copyItem = new MenuItem(popupMenu, SWT.PUSH);
copyItem.setText(Messages.getString("ColorStyledText.CopyItem.Text")); //$NON-NLS-1$
copyItem.setImage(image);
copyItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
copy();
}
});
image = ImageProvider.getImage(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
pasteItem = new MenuItem(popupMenu, SWT.PUSH);
pasteItem.setText(Messages.getString("ColorStyledText.PasteItem.Text")); //$NON-NLS-1$
pasteItem.setData(this);
pasteItem.setImage(image);
pasteItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
paste();
}
});
pasteItem.setEnabled(getEditable());
this.setMenu(popupMenu);
MenuItem selectAllItem = new MenuItem(popupMenu, SWT.PUSH);
selectAllItem.setText(Messages.getString("ColorStyledText.SelectAllItem.Text")); //$NON-NLS-1$
selectAllItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
selectAll();
}
});
this.setMenu(popupMenu);
Listener selectAllListener = new Listener() {
public void handleEvent(Event event) {
if (event.character == '\u0001') { // CTRL + A
selectAll();
}
}
};
addListener(SWT.KeyDown, selectAllListener);
Mode mode = Modes.getMode(languageMode + XmlUtil.FILE_XML_SUFFIX);
scanner = new ColoringScanner(mode, colorManager);
addExtendedModifyListener(modifyListener);
}
/**
* DOC qli Comment method "invokeAction".
*
* @param action
*
* */
public void invokeAction(int action) {
super.invokeAction(action);
switch (action) {
case ActionCode.UNDO:
undo(); // ctrl+Z
break;
case ActionCode.REDO:
redo(); // ctrl+Y
break;
}
}
/**
* Getter for undoRedoManager.
*
* @return the undoRedoManager
*/
public UndoRedoManager getUndoManager() {
return this.undoRedoManager;
}
/**
* Sets the undoRedoManager.
*
* @param undoRedoManager the undoRedoManager to set
*/
public void setUndoManager(UndoRedoManager undoRedoManager) {
this.undoRedoManager = undoRedoManager;
}
public static class ActionCode {
public static final int UNDO = Integer.MAX_VALUE;
public static final int REDO = UNDO - 1;
}
private void undo() {
if (undoRedoManager != null) {
undoRedoManager.undo();
}
}
private void redo() {
if (undoRedoManager != null) {
undoRedoManager.redo();
}
}
protected void colorize(final ColoringScanner scanner) {
final ArrayList<StyleRange> styles = new ArrayList<StyleRange>();
if (this.coloring) {
IToken token;
if (this.isDisposed()) {
return;
}
scanner.parse(this.getText().replaceAll("\"", " ").replaceAll("'", " ")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
do {
token = scanner.nextToken();
if (!token.isEOF()) {
if (token instanceof CToken) {
CToken ctoken = (CToken) token;
StyleRange styleRange;
styleRange = new StyleRange();
styleRange.start = scanner.getTokenOffset();
styleRange.length = scanner.getTokenLength();
if (ctoken.getType() == null) {
styleRange.fontStyle = colorManager.getStyleFor(ctoken.getColor());
styleRange.foreground = colorManager.getColor(ctoken.getColor());
} else {
styleRange.fontStyle = colorManager.getStyleForType(ctoken.getColor());
styleRange.foreground = colorManager.getColorForType(ctoken.getColor());
}
styles.add(styleRange);
}
}
} while (!token.isEOF());
setStyles(styles);
} else {
StyleRange styleRange = new StyleRange();
styles.add(styleRange);
styleRange.start = 0;
styleRange.length = this.getText().getBytes().length;
styleRange.foreground = null;
setStyles(styles);
}
}
public void setStyles(final ArrayList<StyleRange> styles) {
if (ColorStyledText.this.isDisposed()) {
return;
}
int countChars = getCharCount();
for (int i = 0; i < styles.size(); i++) {
StyleRange styleRange = styles.get(i);
// System.out.println("styleRange.start=" + styleRange.start);
// System.out.println("styleRange.length=" + styleRange.length);
if (!(0 <= styleRange.start && styleRange.start + styleRange.length <= countChars)) {
continue;
}
setStyleRange(styleRange);
}
}
ExtendedModifyListener modifyListener = new ExtendedModifyListener() {
public void modifyText(ExtendedModifyEvent event) {
if (ColorStyledText.this.getCharCount() > MAXIMUM_CHARACTERS_BEFORE_USE_TIMER) {
colorizeLimiter.resetTimer();
colorizeLimiter.startIfExecutable(true, null);
} else {
getDisplay().asyncExec(new Runnable() {
public void run() {
colorize(scanner);
}
});
}
}
};
public ColorManager getColorManager() {
return this.colorManager;
}
public String getLanguageMode() {
return this.languageMode;
}
public ColoringScanner getScanner() {
return this.scanner;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.custom.StyledText#setEditable(boolean)
*/
@Override
public void setEditable(boolean editable) {
super.setEditable(editable);
if (pasteItem != null) {
pasteItem.setEnabled(editable);
}
}
/**
* Getter for coloring.
*
* @return the coloring
*/
public boolean isColoring() {
return this.coloring;
}
/**
* Sets the coloring.
*
* @param coloring the coloring to set
*/
public void setColoring(boolean coloring) {
boolean wasDifferent = this.coloring != coloring;
this.coloring = coloring;
if (!coloring) {
removeExtendedModifyListener(modifyListener);
} else if (wasDifferent) {
colorizeLimiter.resetTimer();
colorizeLimiter.startIfExecutable(true, null);
addExtendedModifyListener(modifyListener);
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.widgets.Widget#dispose()
*/
@Override
public void dispose() {
super.dispose();
colorManager.dispose();
}
private final ExecutionLimiter colorizeLimiter = new ExecutionLimiter(1000, true) {
@Override
public void execute(final boolean isFinalExecution, Object data) {
if (!isDisposed()) {
getDisplay().asyncExec(new Runnable() {
public void run() {
colorize(scanner);
}
});
}
}
};
}
// ============================================================================
//
// Copyright (C) 2006-2021 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.ui.swt.colorstyledtext;
import java.util.ArrayList;
import org.eclipse.jface.preference.IPreferenceStore;
import org.eclipse.jface.text.rules.IToken;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.ExtendedModifyEvent;
import org.eclipse.swt.custom.ExtendedModifyListener;
import org.eclipse.swt.custom.StyleRange;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Menu;
import org.eclipse.swt.widgets.MenuItem;
import org.eclipse.ui.ISharedImages;
import org.eclipse.ui.PlatformUI;
import org.talend.commons.runtime.xml.XmlUtil;
import org.talend.commons.ui.runtime.ITalendThemeService;
import org.talend.commons.ui.runtime.i18n.Messages;
import org.talend.commons.ui.runtime.image.ImageProvider;
import org.talend.commons.ui.swt.colorstyledtext.jedit.Mode;
import org.talend.commons.ui.swt.colorstyledtext.jedit.Modes;
import org.talend.commons.ui.swt.colorstyledtext.rules.CToken;
import org.talend.commons.ui.swt.colorstyledtext.scanner.ColoringScanner;
import org.talend.commons.utils.threading.ExecutionLimiter;
/**
* This component is an adaptation of a Color Editor for a StyledText.
*
* The original editor can be found on http://www.gstaff.org/colorEditor/ <br/>
*
* <b>How to use it, example :</b> <br/>
* ColorStyledText text = new ColorStyledText(parent, SWT.H_SCROLL | SWT.V_SCROLL,
* CorePlugin.getDefault().getPreferenceStore(), ECodeLanguage.PERL.getName());</i> <br/>
* <br/>
*
* $Id: ColorStyledText.java 7183 2007-11-23 11:03:36Z amaumont $
*
*/
public class ColorStyledText extends StyledText {
public static final String PREFERENCE_COLOR_FOREGROUND= "ColorStyledText.Color.Foreground"; //$NON-NLS-1$
public static final String PREFERENCE_COLOR_BACKGROUND= "ColorStyledText.Color.Background"; //$NON-NLS-1$
public static final String PREFERENCE_COLOR_SELECTION_FOREGROUND= "ColorStyledText.Color.SelectionForeground"; //$NON-NLS-1$
public static final String PREFERENCE_COLOR_SELECTION_BACKGROUND= "ColorStyledText.Color.SelectionBackground"; //$NON-NLS-1$
private final static int MAXIMUM_CHARACTERS_BEFORE_USE_TIMER = 1000;
private final ColorManager colorManager;
private final ColoringScanner scanner;
private final String languageMode;
private final MenuItem pasteItem;
private boolean coloring = true;
private UndoRedoManager undoRedoManager;
public ColorStyledText(Composite parent, int style, IPreferenceStore store, String languageMode) {
super(parent, style);
this.languageMode = languageMode;
this.colorManager = new ColorManager(store);
/*
* set the Shortcuts of the undo/redo
*/
this.setKeyBinding('Z' | SWT.CTRL, ActionCode.UNDO);
this.setKeyBinding('Y' | SWT.CTRL, ActionCode.REDO);
UndoRedoManager undoManager = new UndoRedoManager(50);
undoManager.connect(this);
this.setUndoManager(undoManager);
ISharedImages sharedImages = PlatformUI.getWorkbench().getSharedImages();
Menu popupMenu = new Menu(this);
MenuItem redoItem = new MenuItem(popupMenu, SWT.PUSH);
redoItem.setText(Messages.getString("ColorStyledText.RedoItem.Text")); //$NON-NLS-1$
redoItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
redo();
}
});
MenuItem undoItem = new MenuItem(popupMenu, SWT.PUSH);
undoItem.setText(Messages.getString("ColorStyledText.UndoItem.Text")); //$NON-NLS-1$
undoItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
undo();
}
});
Image image = ImageProvider.getImage(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_COPY));
MenuItem copyItem = new MenuItem(popupMenu, SWT.PUSH);
copyItem.setText(Messages.getString("ColorStyledText.CopyItem.Text")); //$NON-NLS-1$
copyItem.setImage(image);
copyItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
copy();
}
});
image = ImageProvider.getImage(sharedImages.getImageDescriptor(ISharedImages.IMG_TOOL_PASTE));
pasteItem = new MenuItem(popupMenu, SWT.PUSH);
pasteItem.setText(Messages.getString("ColorStyledText.PasteItem.Text")); //$NON-NLS-1$
pasteItem.setData(this);
pasteItem.setImage(image);
pasteItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
paste();
}
});
pasteItem.setEnabled(getEditable());
this.setMenu(popupMenu);
MenuItem selectAllItem = new MenuItem(popupMenu, SWT.PUSH);
selectAllItem.setText(Messages.getString("ColorStyledText.SelectAllItem.Text")); //$NON-NLS-1$
selectAllItem.addListener(SWT.Selection, new Listener() {
public void handleEvent(Event event) {
selectAll();
}
});
this.setMenu(popupMenu);
Listener selectAllListener = new Listener() {
public void handleEvent(Event event) {
if (event.character == '\u0001') { // CTRL + A
selectAll();
}
}
};
addListener(SWT.KeyDown, selectAllListener);
Mode mode = Modes.getMode(languageMode + XmlUtil.FILE_XML_SUFFIX);
scanner = new ColoringScanner(mode, colorManager);
addExtendedModifyListener(modifyListener);
initColorSetting();
}
protected void initColorSetting() {
this.setForeground(ITalendThemeService.getColor(PREFERENCE_COLOR_FOREGROUND).orElse(null));
this.setBackground(ITalendThemeService.getColor(PREFERENCE_COLOR_BACKGROUND).orElse(null));
this.setSelectionBackground(ITalendThemeService.getColor(PREFERENCE_COLOR_SELECTION_BACKGROUND).orElse(null));
this.setSelectionForeground(ITalendThemeService.getColor(PREFERENCE_COLOR_SELECTION_FOREGROUND).orElse(null));
}
/**
* DOC qli Comment method "invokeAction".
*
* @param action
*
* */
public void invokeAction(int action) {
super.invokeAction(action);
switch (action) {
case ActionCode.UNDO:
undo(); // ctrl+Z
break;
case ActionCode.REDO:
redo(); // ctrl+Y
break;
}
}
/**
* Getter for undoRedoManager.
*
* @return the undoRedoManager
*/
public UndoRedoManager getUndoManager() {
return this.undoRedoManager;
}
/**
* Sets the undoRedoManager.
*
* @param undoRedoManager the undoRedoManager to set
*/
public void setUndoManager(UndoRedoManager undoRedoManager) {
this.undoRedoManager = undoRedoManager;
}
public static class ActionCode {
public static final int UNDO = Integer.MAX_VALUE;
public static final int REDO = UNDO - 1;
}
private void undo() {
if (undoRedoManager != null) {
undoRedoManager.undo();
}
}
private void redo() {
if (undoRedoManager != null) {
undoRedoManager.redo();
}
}
protected void colorize(final ColoringScanner scanner) {
final ArrayList<StyleRange> styles = new ArrayList<StyleRange>();
if (this.coloring) {
IToken token;
if (this.isDisposed()) {
return;
}
scanner.parse(this.getText().replaceAll("\"", " ").replaceAll("'", " ")); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
do {
token = scanner.nextToken();
if (!token.isEOF()) {
if (token instanceof CToken) {
CToken ctoken = (CToken) token;
StyleRange styleRange;
styleRange = new StyleRange();
styleRange.start = scanner.getTokenOffset();
styleRange.length = scanner.getTokenLength();
if (ctoken.getType() == null) {
styleRange.fontStyle = colorManager.getStyleFor(ctoken.getColor());
styleRange.foreground = colorManager.getColor(ctoken.getColor());
} else {
styleRange.fontStyle = colorManager.getStyleForType(ctoken.getColor());
styleRange.foreground = colorManager.getColorForType(ctoken.getColor());
}
styles.add(styleRange);
}
}
} while (!token.isEOF());
setStyles(styles);
} else {
StyleRange styleRange = new StyleRange();
styles.add(styleRange);
styleRange.start = 0;
styleRange.length = this.getText().getBytes().length;
styleRange.foreground = null;
setStyles(styles);
}
}
public void setStyles(final ArrayList<StyleRange> styles) {
if (ColorStyledText.this.isDisposed()) {
return;
}
int countChars = getCharCount();
for (int i = 0; i < styles.size(); i++) {
StyleRange styleRange = styles.get(i);
// System.out.println("styleRange.start=" + styleRange.start);
// System.out.println("styleRange.length=" + styleRange.length);
if (!(0 <= styleRange.start && styleRange.start + styleRange.length <= countChars)) {
continue;
}
setStyleRange(styleRange);
}
}
ExtendedModifyListener modifyListener = new ExtendedModifyListener() {
public void modifyText(ExtendedModifyEvent event) {
if (ColorStyledText.this.getCharCount() > MAXIMUM_CHARACTERS_BEFORE_USE_TIMER) {
colorizeLimiter.resetTimer();
colorizeLimiter.startIfExecutable(true, null);
} else {
getDisplay().asyncExec(new Runnable() {
public void run() {
colorize(scanner);
}
});
}
}
};
public ColorManager getColorManager() {
return this.colorManager;
}
public String getLanguageMode() {
return this.languageMode;
}
public ColoringScanner getScanner() {
return this.scanner;
}
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.custom.StyledText#setEditable(boolean)
*/
@Override
public void setEditable(boolean editable) {
super.setEditable(editable);
if (pasteItem != null) {
pasteItem.setEnabled(editable);
}
}
/**
* Getter for coloring.
*
* @return the coloring
*/
public boolean isColoring() {
return this.coloring;
}
/**
* Sets the coloring.
*
* @param coloring the coloring to set
*/
public void setColoring(boolean coloring) {
boolean wasDifferent = this.coloring != coloring;
this.coloring = coloring;
if (!coloring) {
removeExtendedModifyListener(modifyListener);
} else if (wasDifferent) {
colorizeLimiter.resetTimer();
colorizeLimiter.startIfExecutable(true, null);
addExtendedModifyListener(modifyListener);
}
}
/*
* (non-Javadoc)
*
* @see org.eclipse.swt.widgets.Widget#dispose()
*/
@Override
public void dispose() {
super.dispose();
colorManager.dispose();
}
private final ExecutionLimiter colorizeLimiter = new ExecutionLimiter(1000, true) {
@Override
public void execute(final boolean isFinalExecution, Object data) {
if (!isDisposed()) {
getDisplay().asyncExec(new Runnable() {
public void run() {
colorize(scanner);
}
});
}
}
};
}

View File

@@ -16,8 +16,10 @@ import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.viewers.ICellEditorListener;
import org.eclipse.jface.viewers.TextCellEditor;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.widgets.Text;
import org.talend.commons.ui.runtime.ColorConstants;
import org.talend.commons.ui.runtime.i18n.Messages;
import org.talend.commons.ui.runtime.swt.tableviewer.data.ModifiedObjectInfo;
import org.talend.commons.ui.runtime.thread.AsynchronousThreading;
@@ -39,6 +41,8 @@ public abstract class DialogErrorForCellEditorListener implements ICellEditorLis
protected TableViewerCreatorColumn column;
protected TableViewerCreator tableViewerCreator;
private Color tableBackground = ColorConstants.getTableBackgroundColor();
/**
* DOC amaumont CellEditorListener constructor comment.
@@ -89,7 +93,7 @@ public abstract class DialogErrorForCellEditorListener implements ICellEditorLis
final String errorMessage = validateValue(newValue, beanPosition);
if (errorMessage == null) {
newValidValueTyped(beanPosition, lastValidValue, newValue, state);
text.setBackground(text.getDisplay().getSystemColor(SWT.COLOR_WHITE));
text.setBackground(tableBackground);
lastValidValue = newValue;
} else {
text.setBackground(text.getDisplay().getSystemColor(SWT.COLOR_RED));

View File

@@ -31,6 +31,7 @@ import org.eclipse.swt.graphics.GC;
import org.eclipse.swt.graphics.RGB;
import org.eclipse.swt.widgets.Display;
import org.talend.commons.ui.gmf.util.DisplayUtils;
import org.talend.commons.ui.runtime.ITalendThemeService;
/**
* Figure managing some simple HTML styles. <br/>
@@ -77,6 +78,8 @@ public class SimpleHtmlFigure extends Figure {
private static Font boldFont = null;
private static Font boldItalicFont = null;
private static final Color DEFAULT_LABEL_COLOR = ITalendThemeService.getColor("NODE_FIGURE_LABEL_FORCEGROUND").orElse(Display.getDefault().getSystemColor(SWT.COLOR_BLACK));
/**
* Constructs a new SimpleHtmlFigure.
@@ -262,6 +265,8 @@ public class SimpleHtmlFigure extends Figure {
label.setFont(fontToUse);
if (colorStack.size() > 0) {
label.setForegroundColor(colorStack.get(colorStack.size() - 1));
} else {
label.setForegroundColor(DEFAULT_LABEL_COLOR); // Set label default foreground color
}
horizContainer.add(label);
}

View File

@@ -285,6 +285,30 @@
type="INFORMIX">
</DBType>
</RepositoryComponent>
<RepositoryComponent
name="INGRES"
withSchema="true"
input="tIngresInput"
output="tIngresOutput">
<Item
clazz="org.talend.core.model.properties.DatabaseConnectionItem">
</Item>
<DBType
type="INGRES">
</DBType>
</RepositoryComponent>
<RepositoryComponent
name="VECTORWISE"
withSchema="true"
input="tVectorWiseInput"
output="tVectorWiseOutput">
<Item
clazz="org.talend.core.model.properties.DatabaseConnectionItem">
</Item>
<DBType
type="VECTORWISE">
</DBType>
</RepositoryComponent>
<RepositoryComponent
name="JAVADB"
withSchema="true"

View File

@@ -127,14 +127,13 @@ JobletReferenceDialog.NodeTotalsTip=The totals of node reference
JobletReferenceDialog.project=Project
JobletReferenceDialog.ReferenceJob=Reference Job
JobletReferenceDialog.Title=Delete the joblet failure
ContextReferenceDialog.Title=Delete Context Group
ContextReferenceDialog.DeleteContext.Title=Delete Context
ContextReferenceDialog.Recycle=in Recycle Bin
ContextReferenceDialog.ReferenceJob=Reference Objects
ContextReferenceDialog.Types=Type
ContextReferenceDialog.NodeTypeTip=The type of node reference
ContextReferenceDialog.Messages=Context({0} {1}) is referenced from\:\n
ContextReferenceDialog.kindMessages=The context group of {0} {1} is referred by the following list, if you really want to delete it, the context group is used in job will be changed to built-in when job is opened again. Would you still like to delete it?
ContextReferenceDialog.kindMessages1=The context group of {0} {1} is referred by the following list, Would you still like to delete it?
ContextReferenceDialog.kindMessages2=The context of {0} {1} is referred by the following list, would you still like to delete it?
CopyToGenericSchemaHelper.cannotGenarateItem=Cannot generate pasted item label.
ProxyRepositoryFactory.ReplaceJobHazardDescription=\nDependence on the original connection may be lost\!
ItemReferenceDialog.title=Items which cannot be deleted
@@ -156,6 +155,7 @@ 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
@@ -175,6 +175,7 @@ ProjectRepositoryNode.sapBWDataStoreObject=SAP DSO
ProjectRepositoryNode.sapBWInfoCube=SAP InfoCube
ProjectRepositoryNode.sapBWInfoObject=SAP InfoObject
ProjectRepositoryNode.sapContentExtractor=SAP BI Content Extractor
ProjectRepositoryNode.sapCDSView=SAP CDS View
RepositoryDropAdapter_copyingItems=Copying items...
RepositoryDropAdapter_errorMsg=This directory contains the locked item,it can not be moved now
RepositoryDropAdapter_lockedByOthers=This item is locked by other users, it can not be moved now.
@@ -204,3 +205,4 @@ RenameFolderAction.warning.cannotFind.title=Action not available
ConvertJobsUtil.warning.title=Warning
ConvertJobsUtil.warning.message=The target framework is not fully supported for this release.
SyncLibrariesLoginTask.createStatsLogAndImplicitParamter=Create stats log and implicit parameters
WizardPageAPIDefinition_operationIdMissing=API is missing operationIds. operationIds are used to initialize tRESTRequest/cRest output flows. See tRESTRequest/cRest online help.

View File

@@ -127,14 +127,13 @@ JobletReferenceDialog.NodeTotalsTip=Total des r\u00E9f\u00E9rences des noeuds
JobletReferenceDialog.project=Projet
JobletReferenceDialog.ReferenceJob=Job de r\u00E9f\u00E9rence
JobletReferenceDialog.Title=Supprimer l'\u00E9chec du Joblet
ContextReferenceDialog.Title=Supprimer le groupe de contextes
ContextReferenceDialog.DeleteContext.Title=Supprimer le contexte
ContextReferenceDialog.Recycle=dans la Corbeille
ContextReferenceDialog.ReferenceJob=Objets de r\u00E9f\u00E9rence
ContextReferenceDialog.Types=Type
ContextReferenceDialog.NodeTypeTip=Type de r\u00E9f\u00E9rences du n\u0153ud
ContextReferenceDialog.Messages=Le contexte({0} {1}) est r\u00E9f\u00E9renc\u00E9 dans :\n
ContextReferenceDialog.kindMessages=Le groupe de contextes de {0} {1} est r\u00E9f\u00E9renc\u00E9 par la liste suivante. Si vous souhaitez le supprimer, le groupe de contextes du Job sera chang\u00E9 en Built-In \u00E0 la prochaine ouverture du Job. Le supprimer malgr\u00E9 tout ?
ContextReferenceDialog.kindMessages1=Le groupe de contextes {0} {1} est r\u00E9f\u00E9renc\u00E9 par la liste suivante. Le supprimer malgr\u00E9 tout ?
ContextReferenceDialog.kindMessages2=Les \u00E9l\u00E9ments de la liste suivante font r\u00E9f\u00E9rence au contexte de {0} {1} . Souhaitez-vous quand m\u00EAme le supprimer\u00A0?
CopyToGenericSchemaHelper.cannotGenarateItem=Impossible de g\u00E9n\u00E9rer le libell\u00E9 de l'\u00E9l\u00E9ment coll\u00E9.
ProxyRepositoryFactory.ReplaceJobHazardDescription=\nLes d\u00E9pendances envers la connexion originale peuvent \u00EAtre perdues.
ItemReferenceDialog.title=\u00C9lements ne pouvant \u00EAtre supprim\u00E9s
@@ -156,6 +155,7 @@ ProjectRepositoryNode.invalidItem=\u00C9l\u00E9ment invalide
ProjectRepositoryNode.columns=Colonnes
ProjectRepositoryNode.validationRules=R\u00E8gles de validation
ProjectRepositoryNode.cdcFoundation=Fondation CDC
ProjectRepositoryNode.cdcFoundation.deprecated=Fondation CDC (d\u00E9pr\u00E9ci\u00E9)
ProjectRepositoryNode.genericSchema=Sch\u00E9mas g\u00E9n\u00E9riques
ProjectRepositoryNode.queries=Requ\u00EAtes
ProjectRepositoryNode.synonymSchemas=Sch\u00E9mas synonymes
@@ -175,6 +175,7 @@ ProjectRepositoryNode.sapBWDataStoreObject=Objet Data Store SAP
ProjectRepositoryNode.sapBWInfoCube=InfoCube SAP
ProjectRepositoryNode.sapBWInfoObject=InfoObject SAP
ProjectRepositoryNode.sapContentExtractor=Extracteur SAP BI Content
ProjectRepositoryNode.sapCDSView=Vue SAP CDS
RepositoryDropAdapter_copyingItems=Copie des \u00E9l\u00E9ments...
RepositoryDropAdapter_errorMsg=Ce r\u00E9pertoire contient l'\u00E9l\u00E9ment verrouill\u00E9, il ne peut \u00EAtre d\u00E9plac\u00E9
RepositoryDropAdapter_lockedByOthers=Cet \u00E9l\u00E9ment est verrouill\u00E9 par d'autres utilisateurs, impossible de le d\u00E9placer.
@@ -204,3 +205,4 @@ RenameFolderAction.warning.cannotFind.title=Action non disponible
ConvertJobsUtil.warning.title=Avertissement
ConvertJobsUtil.warning.message=Le framework cible n'est pas totalement support\u00E9 dans cette version.
SyncLibrariesLoginTask.createStatsLogAndImplicitParamter=Cr\u00E9er des logs de stat et des param\u00E8tres implicites.
WizardPageAPIDefinition_operationIdMissing=Des operationIds manquent dans l'API. Ces operationIds sont utilis\u00E9s pour initialiser les flux de sortie du tRESTRequest/cRest. Consultez l'aide en ligne des composants tRESTRequest/cRest.

View File

@@ -127,14 +127,13 @@ JobletReferenceDialog.NodeTotalsTip=\u30CE\u30FC\u30C9\u53C2\u7167\u306E\u5408\u
JobletReferenceDialog.project=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8
JobletReferenceDialog.ReferenceJob=\u53C2\u7167\u30B8\u30E7\u30D6
JobletReferenceDialog.Title=\u30B8\u30E7\u30D6\u30EC\u30C3\u30C8\u306E\u5931\u6557\u3092\u524A\u9664
ContextReferenceDialog.Title=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u3092\u524A\u9664
ContextReferenceDialog.DeleteContext.Title=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u306E\u524A\u9664
ContextReferenceDialog.Recycle=\u3054\u307F\u7BB1\u5185
ContextReferenceDialog.ReferenceJob=\u53C2\u7167\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8
ContextReferenceDialog.Types=\u30BF\u30A4\u30D7
ContextReferenceDialog.NodeTypeTip=\u30CE\u30FC\u30C9\u53C2\u7167\u306E\u30BF\u30A4\u30D7
ContextReferenceDialog.Messages=\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8({0} {1})\u306E\u53C2\u7167\u5143:\n
ContextReferenceDialog.kindMessages={0} {1}\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u306F\u6B21\u306E\u30EA\u30B9\u30C8\u306B\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u524A\u9664\u3057\u305F\u3044\u5834\u5408\u306F\u3001\u30B8\u30E7\u30D6\u304C\u3082\u3046\u4E00\u5EA6\u958B\u304B\u308C\u305F\u6642\u306B\u3001\u30B8\u30E7\u30D6\u3067\u4F7F\u7528\u3055\u308C\u308B\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u306F\u7D44\u307F\u8FBC\u307F\u306B\u5909\u63DB\u3055\u308C\u307E\u3059\u3002\u524A\u9664\u3057\u307E\u3059\u304B?
ContextReferenceDialog.kindMessages1={0} {1}\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u30B0\u30EB\u30FC\u30D7\u304C\u4EE5\u4E0B\u306E\u30EA\u30B9\u30C8\u306B\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u524A\u9664\u3057\u307E\u3059\u304B?
ContextReferenceDialog.kindMessages2={0}{1}\u306E\u30B3\u30F3\u30C6\u30AD\u30B9\u30C8\u304C\u6B21\u306E\u30EA\u30B9\u30C8\u306B\u53C2\u7167\u3055\u308C\u3066\u3044\u307E\u3059\u3002\u524A\u9664\u3057\u307E\u3059\u304B?
CopyToGenericSchemaHelper.cannotGenarateItem=\u8CBC\u4ED8\u3051\u3055\u308C\u305F\u30A2\u30A4\u30C6\u30E0\u30E9\u30D9\u30EB\u3092\u751F\u6210\u3067\u304D\u307E\u305B\u3093\u3002
ProxyRepositoryFactory.ReplaceJobHazardDescription=\n\u5143\u306E\u63A5\u7D9A\u3078\u306E\u4F9D\u5B58\u304C\u5931\u308F\u308C\u308B\u53EF\u80FD\u6027\u304C\u3042\u308A\u307E\u3059!
ItemReferenceDialog.title=\u524A\u9664\u3067\u304D\u306A\u3044\u30A2\u30A4\u30C6\u30E0
@@ -156,7 +155,8 @@ ProjectRepositoryNode.invalidItem=\u7121\u52B9\u306A\u30A2\u30A4\u30C6\u30E0
ProjectRepositoryNode.columns=\u30AB\u30E9\u30E0
ProjectRepositoryNode.validationRules=\u691C\u8A3C\u30EB\u30FC\u30EB
ProjectRepositoryNode.cdcFoundation=CDC Foundation
ProjectRepositoryNode.genericSchema=\u6C4E\u7528\u30B9\u30AD\u30FC\u30DE
ProjectRepositoryNode.cdcFoundation.deprecated=CDC Foundation (\u975E\u63A8\u5968)
ProjectRepositoryNode.genericSchema=\u30B8\u30A7\u30CD\u30EA\u30C3\u30AF\u30B9\u30AD\u30FC\u30DE
ProjectRepositoryNode.queries=\u30AF\u30A8\u30EA\u30FC
ProjectRepositoryNode.synonymSchemas=\u30B7\u30CE\u30CB\u30E0\u30B9\u30AD\u30FC\u30DE
ProjectRepositoryNode.calculationViewSchemas=\u8A08\u7B97\u30D3\u30E5\u30FC\u30B9\u30AD\u30FC\u30DE
@@ -175,6 +175,7 @@ ProjectRepositoryNode.sapBWDataStoreObject=SAP DSO
ProjectRepositoryNode.sapBWInfoCube=SAP InfoCube
ProjectRepositoryNode.sapBWInfoObject=SAP InfoObject
ProjectRepositoryNode.sapContentExtractor=SAP BI\u30B3\u30F3\u30C6\u30F3\u30C4\u30A8\u30AF\u30B9\u30C8\u30E9\u30AF\u30BF\u30FC
ProjectRepositoryNode.sapCDSView=SAP CDS\u30D3\u30E5\u30FC
RepositoryDropAdapter_copyingItems=\u30A2\u30A4\u30C6\u30E0\u3092\u30B3\u30D4\u30FC\u4E2D...
RepositoryDropAdapter_errorMsg=\u30C7\u30A3\u30EC\u30AF\u30C8\u30EA\u30FC\u306B\u30ED\u30C3\u30AF\u3055\u308C\u305F\u30A2\u30A4\u30C6\u30E0\u304C\u542B\u307E\u308C\u3066\u3044\u307E\u3059\u3002\u73FE\u5728\u3001\u79FB\u52D5\u3067\u304D\u307E\u305B\u3093,
RepositoryDropAdapter_lockedByOthers=\u3053\u306E\u30A2\u30A4\u30C6\u30E0\u304C\u4ED6\u306E\u30E6\u30FC\u30B6\u30FC\u306B\u3088\u3063\u3066\u30ED\u30C3\u30AF\u3055\u308C\u307E\u3057\u305F\u3002\u73FE\u5728\u3001\u79FB\u52D5\u3067\u304D\u307E\u305B\u3093\u3002
@@ -204,3 +205,4 @@ RenameFolderAction.warning.cannotFind.title=\u4F7F\u7528\u3067\u304D\u306A\u3044
ConvertJobsUtil.warning.title=\u8B66\u544A
ConvertJobsUtil.warning.message=\u3053\u306E\u30EA\u30EA\u30FC\u30B9\u3067\u306F\u3001\u30BF\u30FC\u30B2\u30C3\u30C8\u30D5\u30EC\u30FC\u30E0\u30EF\u30FC\u30AF\u304C\u5B8C\u5168\u306B\u30B5\u30DD\u30FC\u30C8\u3055\u308C\u3066\u3044\u307E\u305B\u3093\u3002
SyncLibrariesLoginTask.createStatsLogAndImplicitParamter=\u7D71\u8A08\u30ED\u30B0\u3068\u6697\u9ED9\u7684\u30D1\u30E9\u30E1\u30FC\u30BF\u30FC\u3092\u4F5C\u6210
WizardPageAPIDefinition_operationIdMissing=API\u3067operationIds\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093\u3002operationIds\u306F\u3001tRESTRequest/cRest\u51FA\u529B\u30D5\u30ED\u30FC\u3092\u521D\u671F\u5316\u3059\u308B\u305F\u3081\u306B\u4F7F\u308F\u308C\u307E\u3059\u3002tRESTRequest/cRest\u306E\u30AA\u30F3\u30E9\u30A4\u30F3\u30D8\u30EB\u30D7\u3092\u3054\u89A7\u304F\u3060\u3055\u3044\u3002

View File

@@ -127,14 +127,13 @@ JobletReferenceDialog.NodeTotalsTip=\u8282\u70B9\u5F15\u7528\u603B\u6570
JobletReferenceDialog.project=\u5DE5\u7A0B
JobletReferenceDialog.ReferenceJob=\u5F15\u7528\u4F5C\u4E1A
JobletReferenceDialog.Title=\u5220\u9664\u5C0F\u4F5C\u4E1A\u5931\u8D25
ContextReferenceDialog.Title=\u5220\u9664\u73AF\u5883\u7EC4
ContextReferenceDialog.DeleteContext.Title=\u5220\u9664\u4E0A\u4E0B\u6587
ContextReferenceDialog.Recycle=\u5728\u56DE\u6536\u7AD9
ContextReferenceDialog.ReferenceJob=\u5F15\u7528\u5BF9\u8C61
ContextReferenceDialog.Types=\u7C7B\u578B
ContextReferenceDialog.NodeTypeTip=\u8282\u70B9\u5F15\u7528\u7684\u7C7B\u578B
ContextReferenceDialog.Messages=\u4E0A\u4E0B\u6587 ({0} {1}) \u5F15\u7528\u81EA\uFF1A\n
ContextReferenceDialog.kindMessages={0} {1} \u7684\u4E0A\u4E0B\u6587\u7EC4\u88AB\u4EE5\u4E0B\u5217\u8868\u5F15\u7528\uFF0C\u5982\u679C\u786E\u5B9E\u60F3\u8981\u5C06\u5176\u5220\u9664\uFF0C\u518D\u6B21\u6253\u5F00\u4F5C\u4E1A\u65F6\uFF0C\u4F5C\u4E1A\u4E2D\u6240\u7528\u7684\u4E0A\u4E0B\u6587\u7EC4\u5C06\u6539\u4E3A\u5185\u7F6E\u3002\u662F\u5426\u4ECD\u60F3\u5C06\u5176\u5220\u9664\uFF1F
ContextReferenceDialog.kindMessages1={0} {1} \u7684\u4E0A\u4E0B\u6587\u7EC4\u88AB\u4EE5\u4E0B\u5217\u8868\u5F15\u7528\uFF0C\u662F\u5426\u4ECD\u60F3\u5C06\u5176\u5220\u9664\uFF1F
ContextReferenceDialog.kindMessages2={0} {1} \u7684\u4E0A\u4E0B\u6587\u7EC4\u4EE5\u4E0B\u5217\u8868\u5F15\u7528\uFF0C\u662F\u5426\u4ECD\u60F3\u5C06\u5176\u5220\u9664\uFF1F
CopyToGenericSchemaHelper.cannotGenarateItem=\u65E0\u6CD5\u751F\u6210\u7C98\u8D34\u9879\u76EE\u6807\u7B7E\u3002
ProxyRepositoryFactory.ReplaceJobHazardDescription=\n\u5BF9\u539F\u59CB\u8FDE\u63A5\u7684\u4F9D\u8D56\u53EF\u80FD\u4F1A\u4E22\u5931\uFF01
ItemReferenceDialog.title=\u65E0\u6CD5\u5220\u9664\u7684\u9879\u76EE
@@ -156,6 +155,7 @@ ProjectRepositoryNode.invalidItem=\u65E0\u6548\u9879\u76EE
ProjectRepositoryNode.columns=\u5217
ProjectRepositoryNode.validationRules=\u9A8C\u8BC1\u89C4\u5219
ProjectRepositoryNode.cdcFoundation=CDC Foundation
ProjectRepositoryNode.cdcFoundation.deprecated=CDC Foundation (\u5DF2\u5F03\u7528)
ProjectRepositoryNode.genericSchema=\u901A\u7528 schema
ProjectRepositoryNode.queries=\u67E5\u8BE2
ProjectRepositoryNode.synonymSchemas=\u540C\u4E49\u5B57 schema
@@ -175,6 +175,7 @@ ProjectRepositoryNode.sapBWDataStoreObject=SAP DSO
ProjectRepositoryNode.sapBWInfoCube=SAP InfoCube
ProjectRepositoryNode.sapBWInfoObject=SAP InfoObject
ProjectRepositoryNode.sapContentExtractor=SAP BI \u5185\u5BB9\u63D0\u53D6\u5668
ProjectRepositoryNode.sapCDSView=SAP CDS \u89C6\u56FE
RepositoryDropAdapter_copyingItems=\u6B63\u5728\u590D\u5236\u9879\u76EE...
RepositoryDropAdapter_errorMsg=\u6B64\u76EE\u5F55\u5305\u542B\u9501\u5B9A\u7684\u9879\u76EE\uFF0C\u73B0\u5728\u65E0\u6CD5\u79FB\u52A8
RepositoryDropAdapter_lockedByOthers=\u6B64\u9879\u76EE\u88AB\u5176\u4ED6\u7528\u6237\u9501\u5B9A\uFF0C\u73B0\u5728\u65E0\u6CD5\u79FB\u52A8\u3002
@@ -204,3 +205,4 @@ RenameFolderAction.warning.cannotFind.title=\u64CD\u4F5C\u4E0D\u53EF\u7528
ConvertJobsUtil.warning.title=\u8B66\u544A
ConvertJobsUtil.warning.message=\u6B64\u7248\u672C\u4E0D\u5B8C\u5168\u652F\u6301\u76EE\u6807\u6846\u67B6.
SyncLibrariesLoginTask.createStatsLogAndImplicitParamter=\u521B\u5EFA\u7EDF\u8BA1\u65E5\u5FD7\u548C\u9690\u5F0F\u53C2\u6570
WizardPageAPIDefinition_operationIdMissing=API \u7F3A\u5931 operationId \u53C2\u6570\uFF0C\u8FD9\u4E9B operationId \u53C2\u6570\u7528\u6765\u521D\u59CB\u5316 tRESTRequest \u6216 cRest \u8F93\u51FA\u6D41\u3002\u8BF7\u53C2\u89C1 tRESTRequest \u6216 cRest \u5728\u7EBF\u5E2E\u52A9\u6587\u6863\u3002

View File

@@ -67,7 +67,6 @@ import org.talend.core.model.repository.Folder;
import org.talend.core.model.repository.IRepositoryViewObject;
import org.talend.core.model.repository.LockInfo;
import org.talend.core.model.repository.RepositoryViewObject;
import org.talend.core.model.routines.RoutinesUtil;
import org.talend.core.repository.i18n.Messages;
import org.talend.core.repository.utils.XmiResourceManager;
import org.talend.core.runtime.CoreRuntimePlugin;
@@ -131,7 +130,7 @@ public abstract class AbstractEMFRepositoryFactory extends AbstractRepositoryFac
ERepositoryObjectType.METADATA_FILE_RULES, ERepositoryObjectType.METADATA_FILE_HL7,
ERepositoryObjectType.METADATA_FILE_FTP, ERepositoryObjectType.METADATA_FILE_BRMS,
ERepositoryObjectType.METADATA_MDMCONNECTION, ERepositoryObjectType.METADATA_HEADER_FOOTER,
ERepositoryObjectType.JOB_SCRIPT };
ERepositoryObjectType.JOB_SCRIPT, ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS };
List<IRepositoryViewObject> deletedItems = new ArrayList<IRepositoryViewObject>();
for (ERepositoryObjectType type : types) {
@@ -874,25 +873,38 @@ public abstract class AbstractEMFRepositoryFactory extends AbstractRepositoryFac
@Override
public IRepositoryViewObject getLastVersion(Project project, String id, String relativeFolder, ERepositoryObjectType type)
throws PersistenceException {
List<IRepositoryViewObject> serializableAllVersion = null;
Object fullFolder = getFullFolder(project, type, relativeFolder);
serializableAllVersion = getSerializableFromFolder(project, fullFolder, id, type, false, false, true, true);
List<IRepositoryViewObject> serializableAllVersion = new ArrayList<>();
if (lastFolderForItemMap.containsKey(id)) {
ERepositoryObjectType itemType = lastRepositoryTypeForItemMap.get(id);
String currentPath = lastFolderForItemMap.get(id);
Object fullFolder = getFullFolder(project, itemType, currentPath);
try {
if (fullFolder != null && (fullFolder instanceof FolderItem || ((IFolder) fullFolder).exists())) {
serializableAllVersion.addAll(getSerializableFromFolder(project, fullFolder, id, itemType, false, false, true, true));
}
} catch (PersistenceException e) {
// do nothing.
// if any exception happen or can't find the item, just try to look for it everywhere.
}
}
if (serializableAllVersion.isEmpty()) {
// look in all folders for this item type
serializableAllVersion = getSerializableFromFolder(project, fullFolder, id, type, false, true, true, true, true);
Object fullFolder = getFullFolder(project, type, relativeFolder);
serializableAllVersion = getSerializableFromFolder(project, fullFolder, id, type, false, false, true, true);
if (serializableAllVersion.isEmpty()) {
// look in all folders for this item type
serializableAllVersion = getSerializableFromFolder(project, fullFolder, id, type, false, true, true, true, true);
}
}
int size = serializableAllVersion.size();
if (size > 1) {
String message = getItemsMessages(serializableAllVersion, size);
throw new PersistenceException(Messages.getString(
"AbstractEMFRepositoryFactory.presistenceException.OnlyOneOccurenceMustbeFound", message)); //$NON-NLS-1$
} else if (size == 1) {
return serializableAllVersion.get(0);
} else {
return null;
}
if (size == 1) {
return serializableAllVersion.get(0);
}
return null;
}
protected void computePropertyMaxInformationLevel(Property property) {

View File

@@ -184,6 +184,7 @@ public abstract class AbstractRepositoryFactory implements IRepositoryFactory {
collect(getMetadata(project, ERepositoryObjectType.METADATA_FILE_LDIF), result);
collect(getMetadata(project, ERepositoryObjectType.METADATA_CONNECTIONS), result);
collect(getMetadata(project, ERepositoryObjectType.METADATA_SAPCONNECTIONS), result);
collect(getMetadata(project, ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS), result);
collect(getMetadata(project, ERepositoryObjectType.METADATA_HEADER_FOOTER), result);
collect(getMetadata(project, ERepositoryObjectType.METADATA_LDAP_SCHEMA), result);
collect(getMetadata(project, ERepositoryObjectType.METADATA_GENERIC_SCHEMA), result);

View File

@@ -102,6 +102,7 @@ import org.talend.cwm.helper.ConnectionHelper;
import org.talend.cwm.helper.SAPBWTableHelper;
import org.talend.cwm.helper.SubItemHelper;
import org.talend.cwm.helper.TableHelper;
import org.talend.cwm.helper.TaggedValueHelper;
import org.talend.designer.core.IDesignerCoreService;
import org.talend.repository.ProjectManager;
import org.talend.repository.model.BinRepositoryNode;
@@ -1349,6 +1350,8 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
connection = dbMetadataConnection;
} else if (type == ERepositoryObjectType.METADATA_SAPCONNECTIONS) {
connection = ((ConnectionItem) repositoryObject.getProperty().getItem()).getConnection();
} else if (type == ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS) {
connection = ((ConnectionItem) repositoryObject.getProperty().getItem()).getConnection();
} else if (type == ERepositoryObjectType.METADATA_FILE_DELIMITED) {
connection = ((ConnectionItem) repositoryObject.getProperty().getItem()).getConnection();
} else if (type == ERepositoryObjectType.METADATA_FILE_POSITIONAL) {
@@ -1700,11 +1703,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"), //$NON-NLS-1$
Messages.getString("ProjectRepositoryNode.cdcFoundation.deprecated"), //$NON-NLS-1$
ECoreImage.FOLDER_CLOSE_ICON);
node.getChildren().add(cdcNode);
service.createCDCTypes(recBinNode, cdcNode, connection.getCdcConns());
@@ -1751,6 +1754,9 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
// 10. BW Business Content Extractor:
createSAPContentExtractorNodes(repObj, metadataConnection, node, validationRules);
// 11. CDS views:
createSAPCDSViewNodes(repObj, metadataConnection, node, validationRules);
} else if (metadataConnection instanceof SalesforceSchemaConnection) {
createSalesforceModuleNodes(repObj, metadataConnection, node, validationRules);
} else {
@@ -1784,7 +1790,9 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
for (MetadataTable tablesWithOrder : tablesWithOrders) {
EMap<String, String> properties = tablesWithOrder.getAdditionalProperties();
String partitionKey = properties.get(EProperties.CONTENT_TYPE.name());
if (!ERepositoryObjectType.METADATA_SAP_CONTENT_EXTRACTOR.name().equals(partitionKey)) {
String cdsType = TaggedValueHelper.getValueString(EProperties.CONTENT_TYPE.name(), tablesWithOrder);
if (!ERepositoryObjectType.METADATA_SAP_CONTENT_EXTRACTOR.name().equals(partitionKey)
&& !ERepositoryObjectType.METADATA_SAP_CDS_VIEW.name().equals(cdsType)) {
tables.add(tablesWithOrder);
}
}
@@ -1967,6 +1975,32 @@ public class ProjectRepositoryNode extends RepositoryNode implements IProjectRep
createTables(tableContainer, repObj, tables, ERepositoryObjectType.METADATA_CON_TABLE, validationRules);
}
private void createSAPCDSViewNodes(IRepositoryViewObject repObj, Connection metadataConnection, RepositoryNode node,
List<IRepositoryViewObject> validationRules) {
StableRepositoryNode tableContainer = new StableRepositoryNode(node,
Messages.getString("ProjectRepositoryNode.sapCDSView"), ECoreImage.FOLDER_CLOSE_ICON); //$NON-NLS-1$
tableContainer.setChildrenObjectType(ERepositoryObjectType.METADATA_CON_TABLE);
tableContainer.setProperties(EProperties.CONTENT_TYPE, ERepositoryObjectType.METADATA_SAP_CDS_VIEW);
IRepositoryNode cacheNode = nodeCache.getCache(tableContainer);
if (cacheNode != null && cacheNode instanceof StableRepositoryNode) {
tableContainer = (StableRepositoryNode) cacheNode;
tableContainer.getChildren().clear();
} else {
nodeCache.addCache(tableContainer, true);
}
node.getChildren().add(tableContainer);
List<MetadataTable> tablesWithOrders = ConnectionHelper.getTablesWithOrders(metadataConnection);
EList<MetadataTable> tables = new BasicEList<>();
for (MetadataTable tablesWithOrder : tablesWithOrders) {
String cdsType = TaggedValueHelper.getValueString(EProperties.CONTENT_TYPE.name(), tablesWithOrder);
if (ERepositoryObjectType.METADATA_SAP_CDS_VIEW.name().equals(cdsType)) {
tables.add(tablesWithOrder);
}
}
createTables(tableContainer, repObj, tables, ERepositoryObjectType.METADATA_CON_TABLE, validationRules);
}
private void createSalesforceModuleNodes(IRepositoryViewObject rebObj, Connection metadataConnection,
RepositoryNode connectionNode, List<IRepositoryViewObject> validationRules) {
EList modules = ((SalesforceSchemaConnection) metadataConnection).getModules();

View File

@@ -54,9 +54,7 @@ import org.eclipse.jface.dialogs.InputDialog;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.osgi.internal.serviceregistry.ServiceReferenceImpl;
import org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.MessageBox;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.navigator.CommonNavigator;
import org.eclipse.ui.navigator.CommonViewer;
@@ -153,6 +151,7 @@ import org.talend.core.runtime.services.IMavenUIService;
import org.talend.core.runtime.util.ItemDateParser;
import org.talend.core.runtime.util.JavaHomeUtil;
import org.talend.core.runtime.util.SharedStudioUtils;
import org.talend.core.service.IComponentJsonformGeneratorService;
import org.talend.core.service.ICoreUIService;
import org.talend.core.service.IDetectCVEService;
import org.talend.core.utils.CodesJarResourceCache;
@@ -239,14 +238,14 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
return singleton;
}
private ICoreService getCoreService() {
public ICoreService getCoreService() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreService.class)) {
return GlobalServiceRegister.getDefault().getService(ICoreService.class);
}
return null;
}
private IRunProcessService getRunProcessService() {
public IRunProcessService getRunProcessService() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(IRunProcessService.class)) {
return GlobalServiceRegister.getDefault().getService(IRunProcessService.class);
}
@@ -351,7 +350,7 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
* @param project
* @throws LoginException
*/
private void checkProjectCompatibility(Project project) throws LoginException {
public void checkProjectCompatibility(Project project) throws LoginException {
IMigrationToolService migrationToolService = GlobalServiceRegister.getDefault().getService(
IMigrationToolService.class);
// update migration system.
@@ -446,12 +445,10 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
if (currentShell == null) {
currentShell = DisplayUtils.getDefaultShell(false);
}
MessageBox box = new MessageBox(currentShell, SWT.ICON_WARNING | SWT.OK | SWT.CANCEL);
box.setText(Messages.getString("ProxyRepositoryFactory.JobNameErroe")); //$NON-NLS-1$
box.setMessage(Messages.getString("ProxyRepositoryFactory.Label") + " " + name + " " + Messages.getString("ProxyRepositoryFactory.ReplaceJob")); //$NON-NLS-1$ //$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$
if (box.open() == SWT.OK) {
if (MessageDialog.openQuestion(currentShell,
Messages.getString("ProxyRepositoryFactory.JobNameErroe"), //$NON-NLS-1$
Messages.getString("ProxyRepositoryFactory.Label") + " " + name + " " //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
+ Messages.getString("ProxyRepositoryFactory.ReplaceJob"))) { //$NON-NLS-1$
ok[0] = true;
}
}
@@ -1848,7 +1845,7 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
* @param project
* @throws PersistenceException
*/
private void emptyTempFolder(Project project) throws PersistenceException {
public void emptyTempFolder(Project project) throws PersistenceException {
try {
String str = SharedStudioUtils.getTempFolderPath().toPortableString();
FilesUtils.deleteFolder(new File(str), false);
@@ -2210,6 +2207,13 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
ExceptionHandler.process(e);
}
if (IHadoopDistributionService.get() != null) {
try {
IHadoopDistributionService.get().checkAndMigrateDistributionProxyCredential(project);
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
// init dynamic distirbution after `beforeLogon`, before loading libraries.
initDynamicDistribution(monitor);
@@ -2379,6 +2383,15 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
}
String str[] = new String[] { getRepositoryContext().getUser() + "", projectManager.getCurrentProject() + "" }; //$NON-NLS-1$ //$NON-NLS-2$
log.info(Messages.getString("ProxyRepositoryFactory.log.loggedOn", str)); //$NON-NLS-1$
// no performance impact for studio or commandline
if (GlobalServiceRegister.getDefault().isServiceRegistered(IComponentJsonformGeneratorService.class)) {
IComponentJsonformGeneratorService jsonformSvc = GlobalServiceRegister.getDefault().getService(IComponentJsonformGeneratorService.class);
if (jsonformSvc != null && IComponentJsonformGeneratorService.isEnabled()) {
jsonformSvc.generate(null);
}
}
} catch (LoginException e) {
if (!LoginException.RESTART.equals(e.getKey())) {
try {
@@ -2518,7 +2531,7 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
}
}
private void checkReferenceProjectsProblems(Project project) throws BusinessException, PersistenceException {
public void checkReferenceProjectsProblems(Project project) throws BusinessException, PersistenceException {
if (ReferenceProjectProblemManager.getInstance().getAllInvalidProjectReferenceSet().size() > 0) {
StringBuffer sb = new StringBuffer();
for (String technicalLabel : ReferenceProjectProblemManager.getInstance().getAllInvalidProjectReferenceSet()) {
@@ -3016,4 +3029,11 @@ public final class ProxyRepositoryFactory implements IProxyRepositoryFactory {
this.repositoryFactoryFromProvider.saveProject(project);
}
public void setCancelled(boolean cancelled) {
this.isCancelled = cancelled;
}
public boolean isCancelled() {
return this.isCancelled;
}
}

View File

@@ -606,6 +606,8 @@ public class DuplicateAction extends AContextualAction {
item = PropertiesFactory.eINSTANCE.createSalesforceSchemaConnectionItem();
} else if (repositoryType == ERepositoryObjectType.METADATA_SAPCONNECTIONS) {
item = PropertiesFactory.eINSTANCE.createSAPConnectionItem();
} else if (repositoryType == ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS) {
item = PropertiesFactory.eINSTANCE.createBigQueryConnectionItem();
} else if (repositoryType == ERepositoryObjectType.METADATA_WSDL_SCHEMA) {
item = PropertiesFactory.eINSTANCE.createWSDLSchemaConnectionItem();
} else if (repositoryType == ERepositoryObjectType.PROCESS) {

View File

@@ -129,7 +129,7 @@ public class ContextReferenceDialog extends SelectionDialog {
Item item = objToDelete.getProperty().getItem();
if (item != null) {
setMessage(Messages.getString(
"ContextReferenceDialog.kindMessages1", item.getProperty().getLabel(), item.getProperty().getVersion())); //$NON-NLS-1$
"ContextReferenceDialog.kindMessages2", item.getProperty().getLabel(), item.getProperty().getVersion())); //$NON-NLS-1$
}
}
setHelpAvailable(false);
@@ -138,7 +138,7 @@ public class ContextReferenceDialog extends SelectionDialog {
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText(Messages.getString("ContextReferenceDialog.Title")); //$NON-NLS-1$
newShell.setText(Messages.getString("ContextReferenceDialog.DeleteContext.Title")); //$NON-NLS-1$
newShell.setSize(650, 250);
}

View File

@@ -40,6 +40,7 @@ import org.talend.core.model.utils.CloneConnectionUtils;
import org.talend.core.model.utils.ContextParameterUtils;
import org.talend.core.utils.TalendQuoteUtils;
import org.talend.cwm.helper.ConnectionHelper;
import org.talend.cwm.helper.StudioEncryptionHelper;
import org.talend.designer.core.model.utils.emf.talendfile.ContextType;
import org.talend.model.bridge.ReponsitoryContextBridge;
@@ -67,6 +68,7 @@ public class StandaloneConnectionContextUtils {
String server = getOriginalValue(contextProperties, dbConn.getServerName());
String username = getOriginalValue(contextProperties, dbConn.getUsername());
String password = getOriginalValue(contextProperties, dbConn.getRawPassword());
String originEncryptedPassword = getOriginalValue(contextProperties, dbConn.getPassword());
String port = getOriginalValue(contextProperties, dbConn.getPort());
String sidOrDatabase = getOriginalValue(contextProperties, dbConn.getSID());
String datasource = getOriginalValue(contextProperties, dbConn.getDatasourceName());
@@ -87,6 +89,8 @@ public class StandaloneConnectionContextUtils {
cloneConn.setDatasourceName(datasource);
cloneConn.setDBRootPath(dbRootPath);
cloneConn.setFileFieldName(filePath);
//To avoid encrypt the same value
cloneConn.setPassword(originEncryptedPassword);
cloneConn.setRawPassword(password); // the password is raw.
cloneConn.setPort(port);
cloneConn.setUiSchema(schemaOracle);

View File

@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Core Runtime Plug-in
Bundle-SymbolicName: org.talend.core.runtime;singleton:=true
@@ -125,12 +125,25 @@ Require-Bundle: org.eclipse.jdt.core,
org.talend.commons.ui,
org.ops4j.pax.url.mvn,
org.talend.components.api,
org.apache.servicemix.bundles.avro,
jackson-core-asl,
org.talend.libraries.jackson,
org.eclipse.m2e.core,
org.talend.libraries.apache.common,
org.talend.signon.util
org.talend.signon.util,
org.eclipse.core.runtime,
org.talend.studio.studio-utils,
org.eclipse.emf.ecore,
org.eclipse.core.resources,
org.eclipse.emf.ecore.xmi,
org.talend.common.ui.runtime,
org.talend.cwm.mip,
org.talend.daikon,
org.talend.libraries.apache,
org.apache.commons.lang3,
com.fasterxml.jackson.core.jackson-annotations,
com.fasterxml.jackson.core.jackson-databind,
com.fasterxml.jackson.core.jackson-core,
avro;bundle-version="1.11.2"
Bundle-Activator: org.talend.core.runtime.CoreRuntimePlugin
Bundle-ActivationPolicy: lazy
Bundle-ClassPath: .,
@@ -139,3 +152,5 @@ Bundle-ClassPath: .,
lib/delight-rhino-sandbox-0.0.15.jar,
lib/rhino-1.7.13.jar
Eclipse-RegisterBuddy: org.talend.testutils
Import-Package: org.eclipse.equinox.p2.repository,
org.eclipse.equinox.security.storage

View File

@@ -0,0 +1,216 @@
<?xml version="1.0"?>
<mapping>
<dbms product="INGRES" id="ingres_id" label="Mapping Ingres"
default="true">
<dbTypes>
<dbType type="ANSIDATE" ignoreLen="true" ignorePre="true" />
<dbType type="BOOLEAN" ignoreLen="true" ignorePre="true" />
<dbType type="BIGINT" ignoreLen="true" ignorePre="true" />
<dbType type="BYTE" ignoreLen="true" ignorePre="true" />
<dbType type="BYTE VARYING" ignoreLen="true" ignorePre="true" />
<dbType type="C" ignoreLen="true" ignorePre="true" />
<dbType type="CHAR" ignorePre="true" />
<dbType type="DECIMAL" defaultLength="20" defaultPrecision="10" />
<dbType type="DATE" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT4" ignoreLen="true" ignorePre="true" />
<dbType type="INTEGER" ignoreLen="true" ignorePre="true" />
<dbType type="INGRESDATE" ignoreLen="true" ignorePre="true" />
<dbType type="INTERVAL" ignoreLen="true" ignorePre="true" />
<dbType type="LONG NVARCHAR" ignorePre="true" />
<dbType type="LONG VARCHAR" ignoreLen="true" ignorePre="true" />
<dbType type="MONEY" ignoreLen="true" ignorePre="true" />
<dbType type="NCHAR" ignorePre="true" defaultLength="10"/>
<dbType type="NVARCHAR" ignorePre="true" defaultLength="10"/>
<dbType type="OBJECT_KEY" ignoreLen="true" ignorePre="true"/>
<dbType type="SMALLINT" ignoreLen="true" ignorePre="true"/>
<dbType type="TEXT" ignoreLen="true" ignorePre="true" />
<dbType type="TINYINT" ignoreLen="true" ignorePre="true" />
<dbType type="TIME" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMP" ignoreLen="true" ignorePre="true"/>
<dbType type="TABLE_KEY" ignoreLen="true" ignorePre="true" />
<dbType type="VARCHAR" default="true" defaultLength="1200" ignorePre="true"/>
</dbTypes>
<language name="java">
<talendToDbTypes><!-- Adviced mappings -->
<talendType type="id_List"/>
<talendType type="id_Boolean">
<dbType type="BOOLEAN" default="true" />
</talendType>
<talendType type="id_Byte">
<dbType type="BYTE" default="true" />
<dbType type="BYTE VARYING" />
</talendType>
<talendType type="id_byte[]">
</talendType>
<talendType type="id_Character">
<dbType type="CHAR" default="true" />
<dbType type="VARCHAR"/>
<dbType type="C"/>
<dbType type="TEXT"/>
<dbType type="LONG VARCHAR"/>
<dbType type="NCHAR"/>
<dbType type="NVARCHAR"/>
<dbType type="LONG NVARCHAR"/>
</talendType>
<talendType type="id_Date">
<dbType type="DATE" default="true" />
<dbType type="ANSIDATE" />
<dbType type="INGRESDATE" />
<dbType type="TIME" />
<dbType type="TIMESTAMP" />
<dbType type="INTERVAL"/>
</talendType>
<talendType type="id_BigDecimal">
<dbType type="DECIMAL" default="true" />
<dbType type="FLOAT4" />
<dbType type="FLOAT"/>
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Double">
<dbType type="FLOAT" default="true" />
<dbType type="FLOAT4" />
<dbType type="DECIMAL"/>
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Float">
<dbType type="FLOAT4" default="true" />
<dbType type="FLOAT"/>
<dbType type="DECIMAL" />
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Integer">
<dbType type="INTEGER" default="true" />
<dbType type="BIGINT" />
<dbType type="SMALLINT"/>
<dbType type="TINYINT"/>
</talendType>
<talendType type="id_Long">
<dbType type="BIGINT" default="true" />
<dbType type="INTEGER"/>
<dbType type="SMALLINT"/>
<dbType type="TINYINT"/>
</talendType>
<talendType type="id_Object">
<dbType type="MONEY" default="true"/>
<dbType type="OBJECT_KEY" />
<dbType type="TABLE_KEY" />
</talendType>
<talendType type="id_Short">
<dbType type="SMALLINT" default="true" />
<dbType type="INTEGER" />
<dbType type="BIGINT"/>
<dbType type="TINYINT" />
</talendType>
<talendType type="id_String">
<dbType type="VARCHAR" default="true" />
<dbType type="LONG VARCHAR" />
<dbType type="NCHAR"/>
<dbType type="NVARCHAR" />
<dbType type="LONG NVARCHAR" />
<dbType type="TEXT" />
<dbType type="C"/>
<dbType type="CHAR"/>
</talendType>
</talendToDbTypes>
<dbToTalendTypes>
<dbType type="ANSIDATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="BOOLEAN">
<talendType type="id_Boolean" default="true" />
</dbType>
<dbType type="BIGINT">
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="BYTE">
<talendType type="id_Byte" default="true" />
</dbType>
<dbType type="BYTE VARYING">
<talendType type="id_Byte" default="true" />
</dbType>
<dbType type="C">
<talendType type="id_String" default="true" />
<talendType type="id_Character"/>
</dbType>
<dbType type="CHAR">
<talendType type="id_String" default="true" />
<talendType type="id_Character"/>
</dbType>
<dbType type="DECIMAL">
<talendType type="id_Float"/>
<talendType type="id_BigDecimal" default="true"/>
</dbType>
<dbType type="DATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="FLOAT">
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="FLOAT4">
<talendType type="id_Float" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="INTEGER">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
<talendType type="id_Short"/>
</dbType>
<dbType type="INGRESDATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="INTERVAL">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="LONG NVARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="LONG VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="MONEY">
<talendType type="id_Float" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="NCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="NVARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="OBJECT_KEY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="SMALLINT">
<talendType type="id_Short" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Long"/>
</dbType>
<dbType type="TEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="TINYINT">
<talendType type="id_Byte" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Short"/>
<talendType type="id_Long" />
</dbType>
<dbType type="TIME">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIMESTAMP">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TABLE_KEY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
</dbToTalendTypes>
</language>
</dbms>
</mapping>

View File

@@ -0,0 +1,211 @@
<?xml version="1.0"?>
<mapping>
<dbms product="VECTORWISE" id="vectorwise_id" label="Mapping VectorWise"
default="true">
<dbTypes>
<dbType type="ANSIDATE" ignoreLen="true" ignorePre="true" />
<dbType type="BIGINT" ignoreLen="true" ignorePre="true" />
<dbType type="BYTE" ignoreLen="true" ignorePre="true" />
<dbType type="BYTE VARYING" ignoreLen="true" ignorePre="true" />
<dbType type="C" ignoreLen="true" ignorePre="true" />
<dbType type="CHAR" ignorePre="true" />
<dbType type="DECIMAL" defaultLength="20" defaultPrecision="10" />
<dbType type="DATE" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT" ignoreLen="true" ignorePre="true" />
<dbType type="FLOAT4" ignoreLen="true" ignorePre="true" />
<dbType type="INTEGER" ignoreLen="true" ignorePre="true" />
<dbType type="INGRESDATE" ignoreLen="true" ignorePre="true" />
<dbType type="INTERVAL" ignoreLen="true" ignorePre="true" />
<dbType type="LONG NVARCHAR" ignorePre="true" />
<dbType type="LONG VARCHAR" ignoreLen="true" ignorePre="true" />
<dbType type="MONEY" ignoreLen="true" ignorePre="true" />
<dbType type="NCHAR" ignorePre="true" defaultLength="10"/>
<dbType type="NVARCHAR" ignorePre="true" defaultLength="10"/>
<dbType type="OBJECT_KEY" ignoreLen="true" ignorePre="true"/>
<dbType type="SMALLINT" ignoreLen="true" ignorePre="true"/>
<dbType type="TEXT" ignoreLen="true" ignorePre="true" />
<dbType type="TINYINT" ignoreLen="true" ignorePre="true" />
<dbType type="TIME" ignoreLen="true" ignorePre="true" />
<dbType type="TIMESTAMP" ignoreLen="true" ignorePre="true"/>
<dbType type="TABLE_KEY" ignoreLen="true" ignorePre="true" />
<dbType type="VARCHAR" default="true" defaultLength="1200" ignorePre="true"/>
</dbTypes>
<language name="java">
<talendToDbTypes><!-- Adviced mappings -->
<talendType type="id_List"/>
<talendType type="id_Boolean">
</talendType>
<talendType type="id_Byte">
<dbType type="BYTE" default="true" />
<dbType type="BYTE VARYING" />
</talendType>
<talendType type="id_byte[]">
</talendType>
<talendType type="id_Character">
<dbType type="CHAR" default="true" />
<dbType type="VARCHAR"/>
<dbType type="C"/>
<dbType type="TEXT"/>
<dbType type="LONG VARCHAR"/>
<dbType type="NCHAR"/>
<dbType type="NVARCHAR"/>
<dbType type="LONG NVARCHAR"/>
</talendType>
<talendType type="id_Date">
<dbType type="ANSIDATE" default="true"/>
<dbType type="DATE"/>
<dbType type="INGRESDATE" />
<dbType type="TIME" />
<dbType type="TIMESTAMP" />
<dbType type="INTERVAL"/>
</talendType>
<talendType type="id_BigDecimal">
<dbType type="DECIMAL" default="true" />
<dbType type="FLOAT4" />
<dbType type="FLOAT"/>
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Double">
<dbType type="FLOAT" default="true" />
<dbType type="FLOAT4" />
<dbType type="DECIMAL"/>
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Float">
<dbType type="FLOAT4" default="true" />
<dbType type="FLOAT"/>
<dbType type="DECIMAL" />
<dbType type="MONEY"/>
</talendType>
<talendType type="id_Integer">
<dbType type="INTEGER" default="true" />
<dbType type="BIGINT" />
<dbType type="SMALLINT"/>
<dbType type="TINYINT"/>
</talendType>
<talendType type="id_Long">
<dbType type="BIGINT" default="true" />
<dbType type="INTEGER"/>
<dbType type="SMALLINT"/>
<dbType type="TINYINT"/>
</talendType>
<talendType type="id_Object">
<dbType type="MONEY" default="true"/>
<dbType type="OBJECT_KEY" />
<dbType type="TABLE_KEY" />
</talendType>
<talendType type="id_Short">
<dbType type="SMALLINT" default="true" />
<dbType type="INTEGER" />
<dbType type="BIGINT"/>
<dbType type="TINYINT" />
</talendType>
<talendType type="id_String">
<dbType type="VARCHAR" default="true" />
<dbType type="LONG VARCHAR" />
<dbType type="NCHAR"/>
<dbType type="NVARCHAR" />
<dbType type="LONG NVARCHAR" />
<dbType type="TEXT" />
<dbType type="C"/>
<dbType type="CHAR"/>
</talendType>
</talendToDbTypes>
<dbToTalendTypes>
<dbType type="ANSIDATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="BIGINT">
<talendType type="id_Long" default="true" />
</dbType>
<dbType type="BYTE">
<talendType type="id_Byte" default="true" />
</dbType>
<dbType type="BYTE VARYING">
<talendType type="id_Byte" default="true" />
</dbType>
<dbType type="C">
<talendType type="id_String" default="true" />
<talendType type="id_Character"/>
</dbType>
<dbType type="CHAR">
<talendType type="id_String" default="true" />
<talendType type="id_Character"/>
</dbType>
<dbType type="DECIMAL">
<talendType type="id_Float"/>
<talendType type="id_BigDecimal" default="true"/>
</dbType>
<dbType type="DATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="FLOAT">
<talendType type="id_Double" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="FLOAT4">
<talendType type="id_Float" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="INTEGER">
<talendType type="id_Integer" default="true" />
<talendType type="id_Long"/>
<talendType type="id_Short"/>
</dbType>
<dbType type="INGRESDATE">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="INTERVAL">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="LONG NVARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="LONG VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="MONEY">
<talendType type="id_Float" default="true" />
<talendType type="id_BigDecimal"/>
</dbType>
<dbType type="NCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="NVARCHAR">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="OBJECT_KEY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="SMALLINT">
<talendType type="id_Short" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Long"/>
</dbType>
<dbType type="TEXT">
<talendType type="id_String" default="true" />
</dbType>
<dbType type="TINYINT">
<talendType type="id_Byte" default="true" />
<talendType type="id_Integer" />
<talendType type="id_Short"/>
<talendType type="id_Long" />
</dbType>
<dbType type="TIME">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TIMESTAMP">
<talendType type="id_Date" default="true" />
</dbType>
<dbType type="TABLE_KEY">
<talendType type="id_Object" default="true" />
</dbType>
<dbType type="VARCHAR">
<talendType type="id_String" default="true" />
</dbType>
</dbToTalendTypes>
</language>
</dbms>
</mapping>

View File

@@ -43,6 +43,8 @@ public class PluginChecker {
private static final String CDC_PLUGIN_ID = "org.talend.designer.cdc"; //$NON-NLS-1$
private static final String SAP_WZIARD_PLUGIN_ID = "org.talend.repository.sap"; //$NON-NLS-1$
private static final String BIGQUERY_WZIARD_PLUGIN_ID = "org.talend.repository.bigquery"; //$NON-NLS-1$
private static final String EBCDIC_PLUGIN_ID = "org.talend.repository.ebcdic"; //$NON-NLS-1$
@@ -246,6 +248,10 @@ public class PluginChecker {
public static boolean isSAPWizardPluginLoaded() {
return isPluginLoaded(SAP_WZIARD_PLUGIN_ID);
}
public static boolean isBigQueryWizardPluginLoaded() {
return isPluginLoaded(BIGQUERY_WZIARD_PLUGIN_ID);
}
public static boolean isEBCDICPluginLoaded() {
return isPluginLoaded(EBCDIC_PLUGIN_ID);
@@ -267,10 +273,6 @@ public class PluginChecker {
return isPluginLoaded(MDM_PLUGIN_ID);
}
public static boolean isExchangeSystemLoaded() {
return isPluginLoaded(EXCHANGE_SYSTEM_PLUGIN_ID);
}
public static boolean isRulesPluginLoaded() { // added by hyWang
return isPluginLoaded(RULES_PLUGIN_ID);
}

View File

@@ -34,6 +34,9 @@ public enum EDatabase4DriverClassName {
INFORMIX(EDatabaseTypeName.INFORMIX, "com.informix.jdbc.IfxDriver"), //$NON-NLS-1$
INGRES(EDatabaseTypeName.INGRES, "com.ingres.jdbc.IngresDriver"),
VECTORWISE(EDatabaseTypeName.VECTORWISE, "com.ingres.jdbc.IngresDriver"),
JAVADB_DERBYCLIENT(EDatabaseTypeName.JAVADB_DERBYCLIENT, "org.apache.derby.jdbc.ClientDriver"), //$NON-NLS-1$
JAVADB_EMBEDED(EDatabaseTypeName.JAVADB_EMBEDED, "org.apache.derby.jdbc.EmbeddedDriver"), //$NON-NLS-1$
JAVADB_JCCJDBC(EDatabaseTypeName.JAVADB_JCCJDBC, "com.ibm.db2.jcc.DB2Driver"), //$NON-NLS-1$
@@ -49,6 +52,7 @@ public enum EDatabase4DriverClassName {
MYSQL8(EDatabaseTypeName.MYSQL, "com.mysql.cj.jdbc.Driver"), //$NON-NLS-1$
MARIADB(EDatabaseTypeName.MYSQL, "org.mariadb.jdbc.Driver"), //$NON-NLS-1$
AMAZON_AURORA(EDatabaseTypeName.AMAZON_AURORA, "org.gjt.mm.mysql.Driver"), //$NON-NLS-1$
AMAZON_AURORA_3(EDatabaseTypeName.AMAZON_AURORA, "com.mysql.cj.jdbc.Driver"), //$NON-NLS-1$
NETEZZA(EDatabaseTypeName.NETEZZA, "org.netezza.Driver"), //$NON-NLS-1$
ORACLEFORSID(EDatabaseTypeName.ORACLEFORSID, "oracle.jdbc.OracleDriver", "oracle.jdbc.driver.OracleDriver"), //$NON-NLS-1$ //$NON-NLS-2$
@@ -84,8 +88,8 @@ public enum EDatabase4DriverClassName {
// MOD klliu 2010-06-04 bug 12819: upgrade jdbc driver class used in sql explorer
TERADATA(EDatabaseTypeName.TERADATA, "com.teradata.jdbc.TeraDriver"), //$NON-NLS-1$
VERTICA(EDatabaseTypeName.VERTICA, "com.vertica.Driver"), //$NON-NLS-1$
VERTICA2(EDatabaseTypeName.VERTICA, "com.vertica.jdbc.Driver"), //$NON-NLS-1$
// VERTICA(EDatabaseTypeName.VERTICA, "com.vertica.Driver"), //$NON-NLS-1$
VERTICA(EDatabaseTypeName.VERTICA, "com.vertica.jdbc.Driver"), //$NON-NLS-1$
HIVE(EDatabaseTypeName.HIVE, "org.apache.hadoop.hive.jdbc.HiveDriver"), //$NON-NLS-1$

View File

@@ -347,8 +347,7 @@ public enum EDatabaseTypeName {
isSupport = isSupportODBC;
} else if (EDatabaseTypeName.SAS == this) {
isSupport = false;
} else if (EDatabaseTypeName.INGRES == this || EDatabaseTypeName.INTERBASE == this || EDatabaseTypeName.VECTORWISE == this
|| EDatabaseTypeName.PARACCEL == this) {
} else if (EDatabaseTypeName.INTERBASE == this || EDatabaseTypeName.PARACCEL == this) {
return false;
}

View File

@@ -252,6 +252,8 @@ public class ConnParameterKeys {
public static final String CONN_PARA_KEY_EXECUTOR_MEMORY = "CONN_PARA_KEY_EXECUTOR_MEMORY"; //$NON-NLS-1$
public static final String CONN_PARA_KEY_EXECUTOR_CORES = "CONN_PARA_KEY_EXECUTOR_CORES";
public static final String CONN_PARA_KEY_TUNING_PROPERTIES = "CONN_PARA_KEY_TUNING_PROPERTIES"; //$NON-NLS-1$
/******************************************/
@@ -366,7 +368,57 @@ public class ConnParameterKeys {
public static final String CONN_PARA_KEY_DATABRICKS_RUNTIME_VERSION="CONN_PARA_KEY_DATABRICKS_RUNTIME_VERSION";
public static final String CONN_PARA_KEY_DATABRICKS_DBFS_DEP_FOLDER="CONN_PARA_KEY_DATABRICKS_DBFS_DEP_FOLDER";
/**kubernetes*/
public static final String CONN_PARA_KEY_K8S_SUBMIT_MODE="CONN_PARA_KEY_K8S_SUBMIT_MODE";
public static final String CONN_PARA_KEY_K8S_MASTER="CONN_PARA_KEY_K8S_MASTER";
public static final String CONN_PARA_KEY_K8S_INSTANCES="CONN_PARA_KEY_K8S_INSTANCES";
public static final String CONN_PARA_KEY_K8S_REGISTRYSECRET_CHECK="CONN_PARA_KEY_K8S_REGISTRYSECRET_CHECK";
public static final String CONN_PARA_KEY_K8S_REGISTRYSECRET="CONN_PARA_KEY_K8S_REGISTRYSECRET";
public static final String CONN_PARA_KEY_K8S_IMAGE="CONN_PARA_KEY_K8S_IMAGE";
public static final String CONN_PARA_KEY_K8S_NAMESPACE="CONN_PARA_KEY_K8S_NAMESPACE";
public static final String CONN_PARA_KEY_K8S_SERVICEACCOUNT="CONN_PARA_KEY_K8S_SERVICEACCOUNT";
public static final String CONN_PARA_KEY_K8S_DISTUPLOAD="CONN_PARA_KEY_K8S_DISTUPLOAD";
public static final String CONN_PARA_KEY_K8S_S3BUCKET="CONN_PARA_KEY_K8S_S3BUCKET";
public static final String CONN_PARA_KEY_K8S_S3FOLDER="CONN_PARA_KEY_K8S_S3FOLDER";
public static final String CONN_PARA_KEY_K8S_S3CREDENTIALS="CONN_PARA_KEY_K8S_S3CREDENTIALS";
public static final String CONN_PARA_KEY_K8S_S3ACCESSKEY="CONN_PARA_KEY_K8S_S3ACCESSKEY";
public static final String CONN_PARA_KEY_K8S_S3SECRETKEY="CONN_PARA_KEY_K8S_S3SECRETKEY";
public static final String CONN_PARA_KEY_K8S_BLOBACCOUNT="CONN_PARA_KEY_K8S_BLOBACCOUNT";
public static final String CONN_PARA_KEY_K8S_BLOBCONTAINER="CONN_PARA_KEY_K8S_BLOBCONTAINER";
public static final String CONN_PARA_KEY_K8S_BLOBSECRETKEY="CONN_PARA_KEY_K8S_BLOBSECRETKEY";
public static final String CONN_PARA_KEY_K8S_AZUREACCOUNT="CONN_PARA_KEY_K8S_AZUREACCOUNT";
public static final String CONN_PARA_KEY_K8S_AZURECREDENTIALS="CONN_PARA_KEY_K8S_AZURECREDENTIALS";
public static final String CONN_PARA_KEY_K8S_AZURECONTAINER="CONN_PARA_KEY_K8S_AZURECONTAINER";
public static final String CONN_PARA_KEY_K8S_AZURESECRETKEY="CONN_PARA_KEY_K8S_AZURESECRETKEY";
public static final String CONN_PARA_KEY_K8S_AZUREAADKEY="CONN_PARA_KEY_K8S_AZUREAADKEY";
public static final String CONN_PARA_KEY_K8S_AZUREAADCLIENTID="CONN_PARA_KEY_K8S_AZUREAADCLIENTID";
public static final String CONN_PARA_KEY_K8S_AZUREAADDIRECTORYID="CONN_PARA_KEY_K8S_AZUREAADDIRECTORYID";
/**
* Override hadoop configuration
*/
@@ -403,6 +455,9 @@ public class ConnParameterKeys {
public static final String CONN_PARA_KEY_UNIV_STANDALONE_EXEC_MEMORY="CONN_PARA_KEY_UNIV_STANDALONE_EXEC_MEMORY";
public static final String CONN_PARA_KEY_UNIV_STANDALONE_EXEC_CORE="CONN_PARA_KEY_UNIV_STANDALONE_EXEC_CORE";
// Spark Submit Scripts
public static final String CONN_PARA_KEY_UNIV_SPARK_SUBMIT_SCRIPT_HOME="CONN_PARA_KEY_UNIV_SPARK_SUBMIT_SCRIPT_HOME";
/**
* Redshift
*/

View File

@@ -112,6 +112,13 @@ public enum EDatabaseConnTemplate {
SQLITE(new DbConnStr(EDatabaseTypeName.SQLITE, //
"jdbc:sqlite:/<filename>")), //$NON-NLS-1$
INGRES(new DbConnStr(EDatabaseTypeName.INGRES, //
"jdbc:ingres://<host>:<port>/<sid>;<property>", //$NON-NLS-1$
"II7")), //$NON-NLS-1$
VECTORWISE(new DbConnStr(EDatabaseTypeName.VECTORWISE, //
"jdbc:ingres://<host>:<port>/<sid>;<property>", //$NON-NLS-1$
"II7")),
FIREBIRD(new DbConnStr(EDatabaseTypeName.FIREBIRD, //
"jdbc:firebirdsql:<host>/<port>:<filename>?<property>", //$NON-NLS-1$
"3050")), //$NON-NLS-1$
@@ -421,6 +428,8 @@ public enum EDatabaseConnTemplate {
case PSQL:
case PLUSPSQL:
case GREENPLUM:
case INGRES:
case VECTORWISE:
case FIREBIRD:
case JAVADB_EMBEDED:
case JAVADB_JCCJDBC:
@@ -447,6 +456,8 @@ public enum EDatabaseConnTemplate {
case SYBASEASE_16_SA:
case IBMDB2:
case IBMDB2_ZOS:
case INGRES:
case VECTORWISE:
case MSSQL:
case INFORMIX:
case TERADATA:

View File

@@ -33,7 +33,7 @@ public enum EDatabaseVersion4Drivers {
ACCESS_2007(new DbVersion4Drivers(EDatabaseTypeName.ACCESS, "Access 2007", "Access_2007")), //$NON-NLS-1$ //$NON-NLS-2$
// oracle
ORACLE_18(new DbVersion4Drivers(new EDatabaseTypeName[] { EDatabaseTypeName.ORACLEFORSID, EDatabaseTypeName.ORACLESN,
EDatabaseTypeName.ORACLE_OCI, EDatabaseTypeName.ORACLE_CUSTOM }, "Oracle 18 and above", "ORACLE_18", "ojdbc8-19.3.0.0.jar")),
EDatabaseTypeName.ORACLE_OCI, EDatabaseTypeName.ORACLE_CUSTOM }, "Oracle 18 and above", "ORACLE_18", "ojdbc8-19.19.0.0.jar")),
ORACLE_12(new DbVersion4Drivers(new EDatabaseTypeName[] { EDatabaseTypeName.ORACLEFORSID, EDatabaseTypeName.ORACLESN,
EDatabaseTypeName.ORACLE_OCI, EDatabaseTypeName.ORACLE_CUSTOM }, "Oracle 12 (Deprecated)", "ORACLE_12",
"ojdbc7.jar")),
@@ -55,7 +55,7 @@ public enum EDatabaseVersion4Drivers {
//
JAVADB_EMBEDED(new DbVersion4Drivers(EDatabaseTypeName.JAVADB_EMBEDED, "derby.jar")), //$NON-NLS-1$
SQLITE(new DbVersion4Drivers(EDatabaseTypeName.SQLITE, "sqlitejdbc-v056.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$
TERADATA(new DbVersion4Drivers(EDatabaseTypeName.TERADATA,
new String[] { "terajdbc4-17.10.00.27.jar" })), //$NON-NLS-1$
@@ -69,9 +69,9 @@ public enum EDatabaseVersion4Drivers {
"SAS 9.2", "SAS_9.2", new String[] { "sas.core.jar", "sas.security.sspi.jar", "sas.svc.connection.jar", "reload4j-1.2.22.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
SAPHana(new DbVersion4Drivers(EDatabaseTypeName.SAPHana, "HDB 1.0", "HDB_1_0", "ngdbc.jar")), //$NON-NLS-1$
// MYSQL, add for 9594
MYSQL_8(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MySQL 8", "MYSQL_8", "mysql-connector-java-8.0.18.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
MYSQL_8(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MySQL 8", "MYSQL_8", "mysql-connector-j-8.0.33.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
MYSQL_5(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MySQL 5", "MYSQL_5", "mysql-connector-java-5.1.49.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
MARIADB(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MariaDB", "MARIADB", "mariadb-java-client-2.5.3.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
MARIADB(new DbVersion4Drivers(EDatabaseTypeName.MYSQL, "MariaDB", "MARIADB", "mariadb-java-client-3.1.4.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// add for 9594
MSSQL(new DbVersion4Drivers(EDatabaseTypeName.MSSQL,"Open source JTDS", "JTDS", "jtds-1.3.1-patch-20190523.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
MSSQL_2012(new DbVersion4Drivers(EDatabaseTypeName.MSSQL,
@@ -79,23 +79,26 @@ public enum EDatabaseVersion4Drivers {
MSSQL_PROP(new DbVersion4Drivers(EDatabaseTypeName.MSSQL,
"Microsoft", "MSSQL_PROP", //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "mssql-jdbc.jar", "slf4j-api-1.7.34.jar", "slf4j-reload4j-1.7.34.jar", "msal4j-1.11.0.jar", //$NON-NLS-1$
"oauth2-oidc-sdk-9.7.jar", "reload4j-1.2.22.jar", "jackson-core-2.13.4.jar",
"jackson-databind-2.13.4.2.jar", "jackson-annotations-2.13.4.jar", "jcip-annotations-1.0-1.jar",
"json-smart-2.4.7.jar", "nimbus-jose-jwt-9.22.jar", "accessors-smart-2.4.7.jar", "asm-9.1.jar",
"oauth2-oidc-sdk-9.7.jar", "reload4j-1.2.22.jar", "jackson-core-2.14.3.jar",
"jackson-databind-2.14.3.jar", "jackson-annotations-2.14.3.jar", "jcip-annotations-1.0-1.jar",
"json-smart-2.4.11.jar", "nimbus-jose-jwt-9.22.jar", "accessors-smart-2.4.11.jar", "asm-9.5.jar",
"content-type-2.1.jar", "lang-tag-1.5.jar" })),
VERTICA_9(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 9.X", "VERTICA_9_0", "vertica-jdbc-9.3.1-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// VERTICA_9(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 9.X (Deprecated)", "VERTICA_9_0", "vertica-jdbc-9.3.1-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
//https://mvnrepository.com/artifact/com.vertica.jdbc/vertica-jdbc/12.0.4-0
VERTICA_12(new DbVersion4Drivers(EDatabaseTypeName.VERTICA, "VERTICA 12.X", "VERTICA_12_0", "vertica-jdbc-12.0.4-0.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
// for bug 0017930
GREENPLUM_PSQL(new DbVersion4Drivers(EDatabaseTypeName.GREENPLUM,"PostgreSQL", "POSTGRESQL", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$
GREENPLUM(new DbVersion4Drivers(EDatabaseTypeName.GREENPLUM,"Greenplum", "GREENPLUM", "greenplum-5.1.4.000275.jar")), //$NON-NLS-1$
// PSQL_V10(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "v10", "V10", "postgresql-42.2.5.jar")),
PSQL_V9_X(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "v9 and later", "V9_X", "postgresql-42.2.26.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
PSQL_PRIOR_TO_V9(new DbVersion4Drivers(EDatabaseTypeName.PSQL, "Prior to v9", "PRIOR_TO_V9", "postgresql-8.4-703.jdbc4.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
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", "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.2.26.jar")), //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"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$
@@ -108,6 +111,8 @@ public enum EDatabaseVersion4Drivers {
EXASOL(new DbVersion4Drivers(EDatabaseTypeName.EXASOL, "exajdbc-6.0.9302.jar")), //$NON-NLS-1$
MAXDB(new DbVersion4Drivers(EDatabaseTypeName.MAXDB, "sapdbc.jar")), //$NON-NLS-1$
INGRES(new DbVersion4Drivers(EDatabaseTypeName.INGRES, "iijdbc-10.2-4.1.10.jar")),
VECTORWISE(new DbVersion4Drivers(EDatabaseTypeName.VECTORWISE, "iijdbc-10.2-4.1.10.jar")),
// HIVE(new DbVersion4Drivers(EDatabaseTypeName.HIVE, "STANDALONE", "STANDALONE", new String[] {
// "hive-jdbc-0.8.1.jar",
// "hive-metastore-0.8.1.jar", "hive-exec-0.8.1.jar", "hive-service-0.8.1.jar", "libfb303_new.jar",
@@ -148,12 +153,16 @@ public enum EDatabaseVersion4Drivers {
REDSHIFT(new DbVersion4Drivers(EDatabaseTypeName.REDSHIFT, "redshift", "REDSHIFT", //$NON-NLS-1$ //$NON-NLS-2$
new String[]{ "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar" })), //$NON-NLS-1$ //$NON-NLS-2$
REDSHIFT_SSO(new DbVersion4Drivers(EDatabaseTypeName.REDSHIFT_SSO, "redshift sso", "REDSHIFT_SSO", //$NON-NLS-1$ //$NON-NLS-2$
new String[] { "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar", "aws-java-sdk-1.11.848.jar", "jackson-core-2.13.4.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
"jackson-databind-2.13.4.2.jar", "jackson-annotations-2.13.4.jar", "httpcore-4.4.13.jar", "httpclient-4.5.13.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
new String[] { "redshift-jdbc42-no-awssdk-1.2.55.1083.jar", "antlr4-runtime-4.8-1.jar", "jackson-core-2.14.3.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"jackson-databind-2.14.3.jar", "jackson-annotations-2.14.3.jar", "httpcore-4.4.13.jar", "httpclient-4.5.13.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$//$NON-NLS-4$
"joda-time-2.8.1.jar", "commons-logging-1.2.jar", "commons-codec-1.14.jar", //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
"aws-java-sdk-redshift-internal-1.12.x.jar" })), //$NON-NLS-1$
"aws-java-sdk-redshift-internal-1.12.x.jar", "aws-java-sdk-core-1.12.315.jar", //$NON-NLS-1$ //$NON-NLS-2$
"aws-java-sdk-sts-1.12.315.jar", "aws-java-sdk-redshift-1.12.315.jar", "jmespath-java-1.12.315.jar" })), //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$
AMAZON_AURORA(new DbVersion4Drivers(EDatabaseTypeName.AMAZON_AURORA, "mysql-connector-java-5.1.49.jar")); //$NON-NLS-1$
AMAZON_AURORA(new DbVersion4Drivers(EDatabaseTypeName.AMAZON_AURORA, "MySQL 5", "MYSQL_5", //$NON-NLS-1$
"mysql-connector-java-5.1.49.jar")),
AMAZON_AURORA_3(new DbVersion4Drivers(EDatabaseTypeName.AMAZON_AURORA, "MySQL 8", "MYSQL_8", //$NON-NLS-1$
"mysql-connector-j-8.0.33.jar"));
private DbVersion4Drivers dbVersionBean;

View File

@@ -15,8 +15,10 @@ package org.talend.core.hadoop;
import java.util.Collection;
import java.util.HashSet;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.EMap;
import org.talend.commons.exception.CommonExceptionHandler;
import org.talend.commons.exception.ExceptionHandler;
@@ -25,6 +27,9 @@ import org.talend.core.model.properties.Item;
import org.talend.core.model.properties.Property;
import org.talend.core.runtime.hd.IDynamicDistributionManager;
import org.talend.core.runtime.i18n.Messages;
import org.talend.designer.core.model.utils.emf.talendfile.ElementParameterType;
import org.talend.designer.core.model.utils.emf.talendfile.NodeType;
import org.talend.designer.core.model.utils.emf.talendfile.TalendFileFactory;
/**
* created by cmeng on Jul 20, 2015 Detailled comment
@@ -145,4 +150,58 @@ public class BigDataBasicUtil {
return null;
}
public static String getDistributionByVersion(String version) {
if (StringUtils.isEmpty(version))
return null;
if (version.startsWith("EMR")) {
return "AMAZON_EMR";
} else if (version.equals("SYNAPSE")) {
return "AZURE_SYNAPSE";
} else if (version.contains("CDH") || version.contains("CDP")) {
return "CLOUDERA";
} else if (version.startsWith("Databricks")) {
return "DATABRICKS";
} else if (version.contains("HDP")) {
return "HORTONWORKS";
} else if (version.startsWith("MICROSOFT_HD_INSIGHT")) {
return "MICROSOFT_HD_INSIGHT";
} else if (version.startsWith("SPARK")) {
return "SPARK";
}
return null;
}
public static void setDistribution(NodeType node, String dbVersionName) {
if (node == null || dbVersionName == null) {
return;
}
EList<ElementParameterType> elementParameters = node.getElementParameter();
String distribution = null;
String dbVersion = null;
// Iterate over the item elementParameters in order to find the "DISTRIBUTION" and "SPARK_VERSION"
// parameters values.
for (int i = 0; i < elementParameters.size(); i++) {
ElementParameterType param = elementParameters.get(i);
if (dbVersionName.equals(param.getName())) {
dbVersion = param.getValue();
break;
}
}
try {
ElementParameterType property = TalendFileFactory.eINSTANCE.createElementParameterType();
distribution = BigDataBasicUtil.getDistributionByVersion(dbVersion);
if (distribution != null) {
property.setName("DISTRIBUTION"); //$NON-NLS-1$
property.setField("CLOSED_LIST"); //$NON-NLS-1$
property.setValue(distribution);
elementParameters.add(property);
} else {
ExceptionHandler.log("no matched distribution for version " + dbVersion);//$NON-NLS-1$
}
} catch (Exception e) {
ExceptionHandler.log(e.getMessage());
}
}
}

View File

@@ -28,6 +28,10 @@ public class HadoopConstants {
public static final String SPARK_MODE_YARN_CLUSTER = "YARN_CLUSTER";
public static final String SPARK_MODE_DATAPROC = "DATAPROC";
public static final String SPARK_MODE_SYNAPSE = "SYNAPSE";
public static final String SPARK_MODE_HDI = "HDI";
public static final String FRAMEWORK = "FRAMEWORK";

View File

@@ -16,6 +16,7 @@ import java.util.Map;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.model.general.Project;
import org.talend.core.runtime.hd.IDistributionsManager;
import org.talend.core.runtime.hd.IDynamicDistributionManager;
import org.talend.core.runtime.hd.IHDistribution;
@@ -132,6 +133,8 @@ public interface IHadoopDistributionService extends IService {
IDynamicDistributionManager getDynamicDistributionManager();
void checkAndMigrateDistributionProxyCredential(Project project) throws Exception;
public static IHadoopDistributionService get() {
GlobalServiceRegister gsr = GlobalServiceRegister.getDefault();
if (gsr.isServiceRegistered(IHadoopDistributionService.class)) {

View File

@@ -142,6 +142,8 @@ public enum EHadoopProperties {
SPARK_EXECUTOR_MEMORY,
SPARK_EXECUTOR_CORES,
DATABRICKS_ENDPOINT,
DATABRICKS_CLOUD_PROVIDER,
@@ -153,6 +155,52 @@ public enum EHadoopProperties {
DATABRICKS_TOKEN,
DATABRICKS_DBFS_DEP_FOLDER,
K8S_SUBMIT_MODE,
K8S_MASTER,
K8S_INSTANCES,
K8S_REGISTRYSECRET,
K8S_IMAGE,
K8S_NAMESPACE,
K8S_SERVICEACCOUNT,
K8S_DISTUPLOAD,
K8S_S3BUCKET,
K8S_S3FOLDER,
K8S_S3CREDENTIALS,
K8S_S3ACCESSKEY,
K8S_S3SECRETKEY,
K8S_BLOBACCOUNT,
K8S_BLOBCONTAINER,
K8S_BLOBSECRETKEY,
K8S_AZUREACCOUNT,
K8S_AZURECREDENTIALS,
K8S_AZURECONTAINER,
K8S_AZURESECRETKEY,
K8S_AZUREAADKEY,
K8S_AZUREAADCLIENTID,
K8S_AZUREAADDIRECTORYID,
DATABRICKS_NODE_TYPE,
@@ -166,7 +214,9 @@ public enum EHadoopProperties {
UNIV_STANDALONE_EXEC_MEMORY,
UNIV_STANDALONE_EXEC_CORE;
UNIV_STANDALONE_EXEC_CORE,
UNIV_SPARK_SUBMIT_SCRIPT_HOME;
public String getName() {
return this.name();

View File

@@ -93,8 +93,8 @@ public final class ComponentUtilities {
// TODO SML Use getNodeProperty
EList elementParameter = node.getElementParameter();
Iterator iterator = elementParameter.iterator();
for (Object o = iterator.next(); iterator.hasNext(); o = iterator.next()) {
ElementParameterType t = (ElementParameterType) o;
while (iterator.hasNext()) {
ElementParameterType t = (ElementParameterType) iterator.next();
if (t.getName().equals(property)) {
iterator.remove();
}

View File

@@ -39,6 +39,8 @@ public interface IComponent {
String SPARK_JOBLET_STREAMING_PID = "org.talend.designer.sparkstreamingjoblet"; //$NON-NLS-1$
String PROP_NAME = "NAME"; //$NON-NLS-1$
String PROP_DESCRIPTION = "DESCRIPTION"; //$NON-NLS-1$
String PROP_LONG_NAME = "LONG_NAME"; //$NON-NLS-1$

View File

@@ -522,10 +522,16 @@ public class ContextUtils {
return itemMap;
}
private static Set<String> missingContexts = new HashSet<>();
public static void clearMissingContextCache() {
missingContexts.clear();
}
/**
*
* get the repository context item,now contextId can be either joblet node or context node.
*/
* get the repository context item, now contextId can be either joblet node or context node.
*/
public static Item getRepositoryContextItemById(String contextId) {
if (IContextParameter.BUILT_IN.equals(contextId)) {
return null;
@@ -533,6 +539,9 @@ public class ContextUtils {
if (checkObject(contextId)) {
return null;
}
if (missingContexts.contains(contextId)) {
return null;
}
List<ERepositoryObjectType> possibleTypes = new ArrayList<ERepositoryObjectType>();
possibleTypes.add(ERepositoryObjectType.CONTEXT);
@@ -547,6 +556,8 @@ public class ContextUtils {
return item;
}
}
missingContexts.add(contextId);
ExceptionHandler.log("Can't find Context item[id=" + contextId + "].");
} catch (PersistenceException e) {
ExceptionHandler.process(e);
}
@@ -857,6 +868,7 @@ public class ContextUtils {
ItemContextLink itemContextLink) {
Map<String, String> renamedMap = new HashMap<String, String>();
Map<String, Item> tempItemMap = new HashMap<String, Item>();
clearMissingContextCache();
for (ContextType contextType : contextTypeList) {
for (Object obj : contextType.getContextParameter()) {
if (obj instanceof ContextParameterType) {
@@ -919,6 +931,7 @@ public class ContextUtils {
*/
public static Map<String, String> calculateRenamedMapFromLinkFile(String projectLabel, String itemId,
List<IContext> contextList) {
clearMissingContextCache();
Map<String, String> renamedMap = new HashMap<String, String>();
Map<String, Item> idToItemMap = new HashMap<String, Item>();
try {
@@ -984,6 +997,14 @@ public class ContextUtils {
}
public boolean remove(Item item, String param) {
Set<String> params = map.get(item);
if (params != null && params.contains(param)) {
return params.remove(param);
}
return false;
}
public boolean isEmpty() {
return map.isEmpty();
}
@@ -1186,5 +1207,23 @@ public class ContextUtils {
}
return jobContext;
}
public static boolean isPromptNeeded(List<IContext> contexts, String contextParaName) {
for (IContext context : contexts) {
List<IContextParameter> list = context.getContextParameterList();
if (list != null && list.size() > 0) {
for (IContextParameter contextPara : list) {
String tempContextParaName = contextPara.getName();
if (tempContextParaName.equals(contextParaName)) {
if (contextPara.isPromptNeeded()) {
return true;
}
}
}
}
}
return false;
}
}

View File

@@ -30,6 +30,8 @@ public class JobContext implements IContext, Cloneable {
boolean confirmationNeeded;
boolean hide;
public JobContext(String name) {
this.name = name;
if (this.name == null) {
@@ -66,6 +68,14 @@ public class JobContext implements IContext, Cloneable {
this.confirmationNeeded = confirmationNeeded;
}
public boolean isHide() {
return this.hide;
}
public void setHide(boolean hide) {
this.hide = hide;
}
public IContext clone() {
IContext clonedContext = null;
try {
@@ -131,14 +141,16 @@ public class JobContext implements IContext, Cloneable {
* @return
*/
public IContextParameter getContextParameter(String sourceId, String paraName) {
if (sourceId == null || paraName == null)
if (sourceId == null || paraName == null) {
return null;
}
if (contextParameterList != null && contextParameterList.size() > 0) {
for (IContextParameter contextParam : contextParameterList) {
String tempSouceId = contextParam.getSource();
String tempParaName = contextParam.getName();
if (sourceId.equals(tempSouceId) && paraName.equals(tempParaName))
if (sourceId.equals(tempSouceId) && paraName.equals(tempParaName)) {
return contextParam;
}
}
}
return null;
@@ -156,8 +168,9 @@ public class JobContext implements IContext, Cloneable {
if (contextParameterList != null && contextParameterList.size() > 0) {
for (IContextParameter contextParam : contextParameterList) {
String tempParaName = contextParam.getName();
if (tempParaName.equals(paraName))
if (tempParaName.equals(paraName)) {
list.add(contextParam);
}
}
}
return list;

View File

@@ -56,6 +56,11 @@ public class JobContextManager implements IContextManager {
*/
private Map<String, String> nameMap = new HashMap<String, String>();
/*
* record rename context for node
*/
private Map<String, String> nameMapNode = new HashMap<String, String>();
private Map<ContextItem, Map<String, String>> repositoryRenamedMap = new HashMap<ContextItem, Map<String, String>>();
/*
@@ -299,6 +304,7 @@ public class JobContextManager implements IContextManager {
}
List<ContextItem> contextItemList = ContextUtils.getAllContextItem();
boolean setDefault = false;
ContextUtils.clearMissingContextCache();
for (int i = 0; i < contextTypeList.size(); i++) {
contextType = (ContextType) contextTypeList.get(i);
String name = contextType.getName();
@@ -307,6 +313,7 @@ public class JobContextManager implements IContextManager {
}
context = new JobContext(name);
context.setConfirmationNeeded(contextType.isConfirmationNeeded());
context.setHide(contextType.isHide());
contextParamList = new ArrayList<IContextParameter>();
contextTypeParamList = contextType.getContextParameter();
Set<String> paramNamesInCurrentContext = new HashSet<String>();
@@ -335,6 +342,8 @@ public class JobContextManager implements IContextManager {
} else {
contextParam.setType(MetadataTalendType.getDefaultTalendType());
}
//To avoid encrypt the same value}
contextParam.setOriginEncryptedValue(contextParamType.getValue());
contextParam.setValue(contextParamType.getRawValue());
contextParam.setPromptNeeded(contextParamType.isPromptNeeded());
@@ -401,6 +410,18 @@ public class JobContextManager implements IContextManager {
updateNewParameters(newName, oldName);
}
public void addNameMapForNode(String newName, String oldName) {
nameMapNode.put(newName, oldName);
}
public void clearNameMapForNode() {
nameMapNode.clear();
}
public Map<String, String> getNameMapNode() {
return nameMapNode;
}
public Map<String, String> getNameMap() {
return nameMap;
}
@@ -526,6 +547,7 @@ public class JobContextManager implements IContextManager {
EList newcontextTypeList = new BasicEList();
Map<String, Item> idToItemMap = new HashMap<String, Item>();
ContextUtils.clearMissingContextCache();
for (int i = 0; i < listContext.size(); i++) {
IContext context = listContext.get(i);
String contextGroupName = renameGroupContext.get(context);
@@ -538,6 +560,7 @@ public class JobContextManager implements IContextManager {
}
contextType.setName(context.getName());
contextType.setConfirmationNeeded(context.isConfirmationNeeded());
contextType.setHide(context.isHide());
newcontextTypeList.add(contextType);
EList contextTypeParamList = contextType.getContextParameter();
@@ -560,7 +583,10 @@ public class JobContextManager implements IContextManager {
contextParamType.setName(contextParam.getName());
contextParamType.setPrompt(contextParam.getPrompt());
contextParamType.setType(contextParam.getType());
//To avoid encrypt the same value
contextParamType.setValue(contextParam.getOriginEncryptedValue());
contextParamType.setRawValue(contextParam.getValue());
contextParam.setOriginEncryptedValue(contextParamType.getValue()); // For origin encrypted value is null or encryption key upgrade
contextParamType.setPromptNeeded(contextParam.isPromptNeeded());
contextParamType.setComment(contextParam.getComment());
if (!contextParam.isBuiltIn()) {

View File

@@ -46,6 +46,9 @@ public class JobContextParameter implements IContextParameter, Cloneable {
String[] valueList;
String internalId;
/*This value may dirty, only use to cache encrypted value*/
String originEncryptedValue;
/**
* change to save id always for bug 13184.
@@ -301,6 +304,15 @@ public class JobContextParameter implements IContextParameter, Cloneable {
this.source = source;
}
public String getOriginEncryptedValue() {
return originEncryptedValue;
}
public void setOriginEncryptedValue(String originEncryptedValue) {
this.originEncryptedValue = originEncryptedValue;
}
/*
* (non-Javadoc)
*

View File

@@ -51,6 +51,7 @@ public abstract class AbstractItemContextLinkService implements IItemContextLink
itemContextLink.setItemId(itemId);
Map<String, Item> tempCache = new HashMap<String, Item>();
if (contextTypeList != null && contextTypeList.size() > 0) {
ContextUtils.clearMissingContextCache();
for (Object object : contextTypeList) {
if (object instanceof ContextType) {
ContextType jobContextType = (ContextType) object;

View File

@@ -206,6 +206,7 @@ public class ContextLinkService {
Map<String, Map<String, String>> changedContextParameterId) throws PersistenceException {
List<Relation> relationList = RelationshipItemBuilder.getInstance()
.getItemsHaveRelationWith(sourceId, RelationshipItemBuilder.LATEST_VERSION, false);
ContextUtils.clearMissingContextCache();
for (Relation relation : relationList) {
String id = relation.getId();
IFile linkFile = calContextLinkFile(ProjectManager.getInstance().getCurrentProject().getTechnicalLabel(), id);

View File

@@ -463,29 +463,31 @@ public final class MetadataTalendType {
return list;
}
public static URL getSystemFolderURLOfMappingsFile() throws SystemException {
public static File getSystemFolderURLOfMappingsFile() throws SystemException {
String dirPath = "/" + INTERNAL_MAPPINGS_FOLDER; //$NON-NLS-1$
URL url = null;
Path filePath = new Path(dirPath);
Bundle b = Platform.getBundle(CoreRuntimePlugin.PLUGIN_ID);
if (b != null) {
try {
// Enumeration<URL> entries = b.findEntries(dirPath, "mapping_*.xml", false);
url = FileLocator.toFileURL(FileLocator.find(b, filePath, null));
return new File(FileLocator.toFileURL(FileLocator.find(b, filePath, null)).getFile());
} catch (IOException e) {
throw new SystemException(e);
}
}
return url;
return null;
}
public static URL getProjectFolderURLOfMappingsFile() throws SystemException {
public static File getProjectFolderURLOfMappingsFile() throws SystemException {
try {
String dirPath = "/" + INTERNAL_MAPPINGS_FOLDER; //$NON-NLS-1$
IProject project = ResourceUtils.getProject(ProjectManager.getInstance().getCurrentProject());
IPath settingPath = new ProjectScope(project).getLocation();
File mappingFolder = settingPath.append(dirPath).toFile();
return mappingFolder.toURI().toURL();
if (!mappingFolder.exists()) {
mappingFolder.mkdirs();
}
return mappingFolder;
} catch (Exception e) {
throw new SystemException(e);
}
@@ -592,8 +594,7 @@ public final class MetadataTalendType {
public static JSONObject getRevisionObject() {
try {
File revisonFile = new File(MetadataTalendType.getSystemFolderURLOfMappingsFile().getFile(),
MetadataTalendType.FILE_MAPPING_REVISION);
File revisonFile = new File(getSystemFolderURLOfMappingsFile(), FILE_MAPPING_REVISION);
String jsonStr = new String(Files.readAllBytes(revisonFile.toPath()));
return new JSONObject(jsonStr);
} catch (Exception e) {
@@ -605,13 +606,13 @@ public final class MetadataTalendType {
public static boolean restoreMappingFiles() throws Exception {
List<File> toDelete = new ArrayList<>();
JSONObject revision = getRevisionObject();
File projectMappingFolder = new File(getProjectFolderURLOfMappingsFile().getFile());
File projectMappingFolder = getProjectFolderURLOfMappingsFile();
if (projectMappingFolder.exists()) {
File[] projectMappingFiles = projectMappingFolder.listFiles(f -> f.getName().matches(MAPPING_FILE_PATTERN));
if (projectMappingFiles != null) {
for (File file : projectMappingFiles) {
if (revision.has(file.getName())) {
String sha1 = MetadataTalendType.getSha1OfFile(file);
String sha1 = getSha1OfFile(file);
if (revision.getJSONObject(file.getName()).has(sha1)) {
toDelete.add(file);
}
@@ -668,9 +669,9 @@ public final class MetadataTalendType {
}
public static List<File> getWorkingMappingFiles() throws SystemException {
File projectMappingFolder = new File(getProjectFolderURLOfMappingsFile().getFile());
File projectMappingFolder = getProjectFolderURLOfMappingsFile();
File[] projectMappingFiles = projectMappingFolder.listFiles(f -> f.getName().matches(MAPPING_FILE_PATTERN));
File systemMappingFolder = new File(getSystemFolderURLOfMappingsFile().getFile());
File systemMappingFolder = getSystemFolderURLOfMappingsFile();
File[] systemMappingFiles = systemMappingFolder.listFiles(f -> f.getName().matches(MAPPING_FILE_PATTERN));
if (projectMappingFiles == null || projectMappingFiles.length == 0) {
return Arrays.asList(systemMappingFiles);
@@ -686,7 +687,7 @@ public final class MetadataTalendType {
public static String getSha1OfSystemMappingFile(String fileName) {
try {
return getSha1OfFile(new File(getSystemFolderURLOfMappingsFile().getFile(), fileName));
return getSha1OfFile(new File(getSystemFolderURLOfMappingsFile(), fileName));
} catch (SystemException e) {
ExceptionHandler.process(e);
return null;

View File

@@ -156,6 +156,7 @@ public final class MetadataToolAvroHelper {
copyColumnProperties(fb, in);
fb.prop(DiSchemaConstants.TALEND6_LABEL, label);
Object defaultValue = null;
Expression initialValue = in.getInitialValue();
@@ -209,6 +210,8 @@ public final class MetadataToolAvroHelper {
// FIXME - this one should go away
type = AvroUtils._date();
}
defaultValue = null;
}
// String-ish types.
else if (JavaTypesManager.STRING.getId().equals(tt) || JavaTypesManager.FILE.getId().equals(tt)
@@ -369,6 +372,7 @@ public final class MetadataToolAvroHelper {
*/
private static <T extends PropBuilder<T>> PropBuilder<T> copyColumnProperties(PropBuilder<T> builder,
org.talend.core.model.metadata.builder.connection.MetadataColumn in) {
// Properties common to tables and columns.
if (in.getId() != null) {
builder.prop(DiSchemaConstants.TALEND6_ID, in.getId());
@@ -385,6 +389,8 @@ public final class MetadataToolAvroHelper {
builder.prop(DiSchemaConstants.TALEND6_IS_READ_ONLY, tv.getValue());
}else if(DiSchemaConstants.AVRO_TECHNICAL_KEY.equals(additionalTag)){
builder.prop(DiSchemaConstants.AVRO_TECHNICAL_KEY, tv.getValue());
}else if(DiSchemaConstants.LOGICAL_TIME_TYPE_AS.equals(additionalTag)) {
builder.prop(DiSchemaConstants.LOGICAL_TIME_TYPE_AS, tv.getValue());
}else if (tv.getValue() != null) {
builder.prop(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES + additionalTag, tv.getValue());
}
@@ -462,7 +468,7 @@ public final class MetadataToolAvroHelper {
TaggedValue tv = TaggedValueHelper.createTaggedValue(DiSchemaConstants.TALEND6_IS_READ_ONLY, prop);
table.getTaggedValue().add(tv);
}
for (String key : in.getJsonProps().keySet()) {
for (String key : in.getObjectProps().keySet()) {
if (key.startsWith(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES)) {
String originalKey = key.substring(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES.length());
TaggedValue tv = TaggedValueHelper.createTaggedValue(originalKey, in.getProp(key));
@@ -508,7 +514,7 @@ public final class MetadataToolAvroHelper {
TaggedValue tv = TaggedValueHelper.createTaggedValue(DiSchemaConstants.TALEND6_IS_READ_ONLY, prop);
col.getTaggedValue().add(tv);
}
for (String key : schema.getJsonProps().keySet()) {
for (String key : schema.getObjectProps().keySet()) {
if (key.startsWith(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES)) {
String originalKey = key.substring(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES.length());
TaggedValue tv = TaggedValueHelper.createTaggedValue(originalKey, schema.getProp(key));
@@ -626,6 +632,7 @@ public final class MetadataToolAvroHelper {
} else if (AvroUtils.isSameType(nonnullable, AvroUtils._float())) {
col.setTalendType(JavaTypesManager.FLOAT.getId());
} else if (AvroUtils.isSameType(nonnullable, AvroUtils._int())) {
if (logicalType == LogicalTypes.date()) {
col.setTalendType(JavaTypesManager.DATE.getId());
TaggedValue tv = TaggedValueHelper.createTaggedValue(DiSchemaConstants.TALEND6_COLUMN_DATE_DATE, "true");
@@ -637,6 +644,8 @@ public final class MetadataToolAvroHelper {
String logical_time_type_as = field.getProp(DiSchemaConstants.LOGICAL_TIME_TYPE_AS);
if(DiSchemaConstants.AS_TALEND_DATE.equals(logical_time_type_as)) {
col.setTalendType(JavaTypesManager.DATE.getId());
TaggedValue tv2 = TaggedValueHelper.createTaggedValue(DiSchemaConstants.LOGICAL_TIME_TYPE_AS, DiSchemaConstants.AS_TALEND_DATE);
col.getTaggedValue().add(tv2);
} else {
col.setTalendType(JavaTypesManager.INTEGER.getId());
}
@@ -681,7 +690,7 @@ public final class MetadataToolAvroHelper {
TaggedValue tv = TaggedValueHelper.createTaggedValue(DiSchemaConstants.TALEND6_IS_READ_ONLY, prop);
col.getTaggedValue().add(tv);
}
for (String key : field.getJsonProps().keySet()) {
for (String key : field.getObjectProps().keySet()) {
if (key.startsWith(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES)) {
String originalKey = key.substring(DiSchemaConstants.TALEND6_ADDITIONAL_PROPERTIES.length());
TaggedValue tv = TaggedValueHelper.createTaggedValue(originalKey, field.getProp(key));

View File

@@ -293,7 +293,8 @@ public final class MetadataToolHelper {
boolean isKeyword = KeywordsValidator.isKeyword(originalColumnName);
StringBuilder sb = new StringBuilder();
int[] charBit = new int[columnName.length()];
// keep charBit length align with the length of originalColumnName (StringBuilder)
int[] charBit = new int[originalColumnName.length()];
if (!isKeyword) {
boolean isAllowSpecific = isAllowSpecificCharacters();

View File

@@ -33,6 +33,7 @@ import org.talend.core.database.EDatabaseTypeName;
import org.talend.core.database.ERedshiftDriver;
import org.talend.core.database.conn.ConnParameterKeys;
import org.talend.core.database.conn.template.EDatabaseConnTemplate;
import org.talend.core.database.conn.version.EDatabaseVersion4Drivers;
import org.talend.core.model.metadata.Dbms;
import org.talend.core.model.metadata.DiSchemaConstants;
import org.talend.core.model.metadata.IConvertionConstants;
@@ -272,7 +273,7 @@ public final class ConvertionHelper {
}
private static String getDriverVersionString(DatabaseConnection dbConn) {
public static String getDriverVersionString(DatabaseConnection dbConn) {
String dbVersionString = dbConn.getDbVersionString();
if (EDatabaseTypeName.REDSHIFT.getDisplayName().equals(dbConn.getDatabaseType())
|| EDatabaseTypeName.REDSHIFT_SSO.getDisplayName().equals(dbConn.getDatabaseType())) {
@@ -286,6 +287,9 @@ public final class ConvertionHelper {
}
}
}
if (EDatabaseTypeName.VERTICA.getDisplayName().equals(dbConn.getDatabaseType())) {
dbVersionString = EDatabaseVersion4Drivers.VERTICA_12.getVersionValue();
}
return dbVersionString;
}

View File

@@ -36,6 +36,7 @@ import org.talend.core.model.metadata.IMetadataTable;
import org.talend.core.model.metadata.MetadataTalendType;
import org.talend.core.model.metadata.builder.ConvertionHelper;
import org.talend.core.model.metadata.builder.connection.BRMSConnection;
import org.talend.core.model.metadata.builder.connection.BigQueryConnection;
import org.talend.core.model.metadata.builder.connection.Connection;
import org.talend.core.model.metadata.builder.connection.ConnectionFactory;
import org.talend.core.model.metadata.builder.connection.DatabaseConnection;
@@ -213,6 +214,8 @@ public class ComponentToRepositoryProperty {
setFileExcelValue((FileExcelConnection) connection, node, param);
} else if (connection instanceof SAPConnection) {
setSAPValue((SAPConnection) connection, node, param);
} else if (connection instanceof BigQueryConnection) {
setBigQueryValue((BigQueryConnection) connection, node, param);
} else if (connection instanceof SalesforceSchemaConnection) {
setSalesforceSchema((SalesforceSchemaConnection) connection, node, param);
} else if (connection instanceof MDMConnection) {
@@ -433,6 +436,16 @@ public class ComponentToRepositoryProperty {
connection.setDatabaseType(EDatabaseTypeName.IBMDB2.getDisplayName());
connection.setProductId(EDatabaseTypeName.IBMDB2.getProduct());
}
// Ingres
else if (EDatabaseTypeName.INGRES.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.INGRES.getDisplayName());
connection.setProductId(EDatabaseTypeName.INGRES.getProduct());
}
// VECTORWISE
else if (EDatabaseTypeName.VECTORWISE.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.VECTORWISE.getDisplayName());
connection.setProductId(EDatabaseTypeName.VECTORWISE.getProduct());
}
// Sqlite
else if (EDatabaseTypeName.SQLITE.getProduct().equalsIgnoreCase((String) parameter.getValue())) {
connection.setDatabaseType(EDatabaseTypeName.SQLITE.getDisplayName());
@@ -1783,6 +1796,30 @@ public class ComponentToRepositoryProperty {
}
}
}
private static void setBigQueryValue(BigQueryConnection connection, INode node, IElementParameter param) {
if ("SERVICE_ACCOUNT_CREDENTIALS_FILE".equals(param.getRepositoryValue())) {
String value = getParameterValue(connection, node, param);
if (value != null) {
connection.setServiceAccountCredentialsFile(value);
}
} else if ("PROJECT_ID".equals(param.getRepositoryValue())) {
String value = getParameterValue(connection, node, param);
if (value != null) {
connection.setProjectId(value);
}
} else if ("USE_REGION_ENDPOINT".equals(param.getRepositoryValue())) {
String value = getParameterValue(connection, node, param);
if (value != null) {
connection.setUseRegionEndpoint(Boolean.valueOf(value));
}
} else if ("REGION_ENDPOINT_BQ".equals(param.getRepositoryValue())) {
String value = getParameterValue(connection, node, param);
if (value != null) {
connection.setRegionEndpoint(value);
}
}
}
/**
*

View File

@@ -20,6 +20,7 @@ import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.runtime.Path;
@@ -47,6 +48,7 @@ import org.talend.core.model.metadata.MultiSchemasUtil;
import org.talend.core.model.metadata.builder.ConvertionHelper;
import org.talend.core.model.metadata.builder.connection.AdditionalConnectionProperty;
import org.talend.core.model.metadata.builder.connection.BRMSConnection;
import org.talend.core.model.metadata.builder.connection.BigQueryConnection;
import org.talend.core.model.metadata.builder.connection.Concept;
import org.talend.core.model.metadata.builder.connection.ConceptTarget;
import org.talend.core.model.metadata.builder.connection.Connection;
@@ -148,6 +150,10 @@ public class RepositoryToComponentProperty {
if (connection instanceof SAPConnection) {
return getSAPValue((SAPConnection) connection, value);
}
if (connection instanceof BigQueryConnection) {
return getBigQueryValue((BigQueryConnection) connection, value, table);
}
if (connection instanceof SalesforceSchemaConnection) {
return getSalesforceSchemaValue((SalesforceSchemaConnection) connection, value, table);
@@ -456,6 +462,62 @@ public class RepositoryToComponentProperty {
}
return null;
}
public static Object getBigQueryValue(BigQueryConnection connection, String value, IMetadataTable table) {
if ("SERVICE_ACCOUNT_CREDENTIALS_FILE".equals(value)) {
if (isContextMode(connection, connection.getServiceAccountCredentialsFile())) {
return connection.getServiceAccountCredentialsFile();
} else {
return TalendQuoteUtils.addQuotes(connection.getServiceAccountCredentialsFile());
}
} else if ("PROJECT_ID".equals(value)) {
if (isContextMode(connection, connection.getProjectId())) {
return connection.getProjectId();
} else {
return TalendQuoteUtils.addQuotes(connection.getProjectId());
}
} else if ("USE_REGION_ENDPOINT".equals(value)) {
return connection.isUseRegionEndpoint();
} else if ("REGION_ENDPOINT_BQ".equals(value)) {
if (isContextMode(connection, connection.getRegionEndpoint())) {
return connection.getRegionEndpoint();
} else {
return TalendQuoteUtils.addQuotes(connection.getRegionEndpoint());
}
} else if ("DATASET".equals(value)) {
if(table!=null) {
Map<String, String> properties = table.getAdditionalProperties();
if(properties!=null) {
String dataSet = properties.get("dataSet");
if (isContextMode(connection, dataSet)) {
return dataSet;
} else {
return TalendQuoteUtils.addQuotes(dataSet);
}
}
}
} else if ("QUERY".equals(value)) {
if(table!=null) {
Map<String, String> properties = table.getAdditionalProperties();
if(properties!=null) {
String dataSet = properties.get("dataSet");
String tableName = table.getLabel();
if(dataSet!=null && tableName!=null) {
List<IMetadataColumn> columns = table.getListColumns();
StringBuilder strBuilder = new StringBuilder();
strBuilder.append("SELECT");
if(columns!=null) {
strBuilder.append(columns.stream().map(column -> column.getOriginalDbColumnName()).collect(Collectors.joining(",", " ", " ")));
}
strBuilder.append("FROM ").append(dataSet).append('.').append(tableName);
return TalendQuoteUtils.addQuotes(strBuilder.toString());
}
}
}
}
return null;
}
/**
* DOC gcui Comment method "getHL7Value".
@@ -1091,6 +1153,10 @@ public class RepositoryToComponentProperty {
if (dbVersionString != null) {
return dbVersionString.toUpperCase();
}
} else if (EDatabaseConnTemplate.AMAZON_AURORA.getDBDisplayName().equals(databaseType)) {
if (dbVersionString != null) {
return dbVersionString.toUpperCase();
}
} else if (EDatabaseTypeName.HIVE.getDisplayName().equals(databaseType)) {
return connection.getParameters().get(ConnParameterKeys.CONN_PARA_KEY_HIVE_VERSION);
} else if (EDatabaseTypeName.HBASE.getDisplayName().equals(databaseType)) {

View File

@@ -18,6 +18,7 @@ import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
import org.apache.commons.codec.binary.StringUtils;
import org.talend.components.api.properties.ComponentProperties;
import org.talend.core.model.components.IComponent;
import org.talend.core.model.components.IMultipleComponentManager;
@@ -509,7 +510,7 @@ public abstract class AbstractNode implements INode {
}
for (String key : childParameters.keySet()) {
IElementParameter param = childParameters.get(key);
if (param.getName().equals(name)) {
if (StringUtils.equals(name, param.getName())) {
return param;
}
}
@@ -676,7 +677,8 @@ public abstract class AbstractNode implements INode {
return null;
}
for (IMetadataTable table : metadataList) {
if (table.getAttachedConnector().equals(connector)) {
String attachedConnector = table.getAttachedConnector();
if (attachedConnector != null && attachedConnector.equals(connector)) {
return table;
}
}

View File

@@ -38,6 +38,7 @@ public enum EParameterFieldType {
SCHEMA_XPATH_QUERYS,
QUERYSTORE_TYPE,
GUESS_SCHEMA,
DYNAMIC_GUESS_SCHEMA,
PROPERTY_TYPE,
EXTERNAL,
FILE,

View File

@@ -32,6 +32,10 @@ public interface IContext {
public void setConfirmationNeeded(boolean confirmationNeeded);
public boolean isHide();
public void setHide(boolean hide);
public List<IContextParameter> getContextParameterList();
public void setContextParameterList(List<IContextParameter> contextParameterList);

View File

@@ -75,4 +75,9 @@ public interface IContextParameter {
public String getInternalId();
public void setInternalId(String internalId);
/*This value may dirty, only use to cache encrypted value*/
public String getOriginEncryptedValue();
public void setOriginEncryptedValue(String originEncryptedValue);
}

View File

@@ -234,4 +234,13 @@ public interface IElementParameter {
public void setSerialized(boolean isSerialized);
public boolean isSelectedFromItemValue();
/*This value may dirty, only use to cache encrypted value*/
public String getOrignEncryptedValue();
public void setOrignEncryptedValue(String value);
public void setDescription (String description);
public String getDescription ();
}

View File

@@ -71,6 +71,9 @@ public interface IProcess2 extends IRepositoryObject, IProcess {
@Override
void setActivate(boolean b);
public boolean isRefactoringToJoblet();
public void refactoringToJoblet(boolean isRefactoring);
/**
* DOC qzhang Comment method "checkStartNodes".
*/

View File

@@ -729,7 +729,7 @@ public final class ProcessUtils {
return null;
}
private static boolean isRoute(Property property) {
public static boolean isRoute(Property property) {
return property!= null && (ERepositoryObjectType.getType(property).equals(ERepositoryObjectType.PROCESS_ROUTE) ||
ERepositoryObjectType.getType(property).equals(ERepositoryObjectType.PROCESS_ROUTE_MICROSERVICE));
}
@@ -768,6 +768,39 @@ public final class ProcessUtils {
return false;
}
public static boolean isRouteWithRoutelets(Item item) {
if (item!= null && item instanceof ProcessItem) {
for (Object obj : ((ProcessItem) item).getProcess().getNode()) {
if (obj instanceof NodeType) {
if (isRouteletNode((NodeType) obj)) {
return true;
}
}
}
}
return false;
}
public static boolean isRouteletNode(NodeType node) {
String jobIds = getParameterValue(node.getElementParameter(), "PROCESS_TYPE:PROCESS_TYPE_PROCESS");
String jobVersion = getParameterValue(node.getElementParameter(), "PROCESS_TYPE:PROCESS_TYPE_VERSION"); //$NON-NLS-1$
ProcessItem processItem = ItemCacheManager.getProcessItem(jobIds, jobVersion);
if (processItem != null) {
return ERepositoryObjectType.getType(processItem.getProperty()).equals(
ERepositoryObjectType.PROCESS_ROUTELET);
}
return false;
}
public static String getParameterValue(EList<ElementParameterType> listParamType, String paramName) {
for (ElementParameterType pType : listParamType) {
if (pType != null && paramName.equals(pType.getName())) {
return pType.getValue();
}
}
return null;
}
public static int getAssertAmount(IProcess process) {
int count = 0;
@@ -1058,6 +1091,28 @@ public final class ProcessUtils {
}
return false;
}
public static boolean isChildRouteProcess(Item item) {
if (item!= null && item instanceof ProcessItem) {
for (Object obj : ((ProcessItem) item).getProcess().getNode()) {
if (obj instanceof NodeType) {
if (((NodeType) obj).getComponentName().equals("tRouteInput")) {
return true;
}
}
}
}
return false;
}
public static boolean isRoutelet(Property p) {
if (p != null) {
return ERepositoryObjectType.getType(p).equals(ERepositoryObjectType.PROCESS_ROUTELET);
}
return false;
}
public static String escapeJava(String input) {
return StringEscapeUtils.escapeJava(input);

View File

@@ -31,6 +31,7 @@ import org.talend.core.IESBService;
import org.talend.core.PluginChecker;
import org.talend.core.model.general.Project;
import org.talend.core.model.properties.BRMSConnectionItem;
import org.talend.core.model.properties.BigQueryConnectionItem;
import org.talend.core.model.properties.CSVFileConnectionItem;
import org.talend.core.model.properties.ConnectionItem;
import org.talend.core.model.properties.ContextItem;
@@ -334,10 +335,6 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
"SYSTEM_INDICATORS_TEXT_STATISTICS", 97, true, "repository.systemIndicators.textStatistics.alias",
new String[] { PROD_DQ }, new String[] {}, false);
public final static ERepositoryObjectType TDQ_EXCHANGE = new ERepositoryObjectType("repository.tdqExchange", //$NON-NLS-1$
"TDQ_Libraries/Exchange", "TDQ_EXCHANGE", 98, true, "repository.tdqExchange.alias", new String[] { PROD_DQ }, //$NON-NLS-1$
new String[] {});
public final static ERepositoryObjectType METADATA_SALESFORCE_MODULE = new ERepositoryObjectType(
"repository.metadataSalesforceModule", "METADATA_SALESFORCE_MODULE", 99, true, true, new String[] { PROD_DI }, //$NON-NLS-1$ //$NON-NLS-2$
new String[] {}, false);
@@ -360,14 +357,17 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
public final static ERepositoryObjectType METADATA_SAP_TABLE = new ERepositoryObjectType("repository.SAPTable", //$NON-NLS-1$
"METADATA_SAP_TABLE", 104, true, true, new String[] { PROD_DI }, new String[] {}, false);
public final static ERepositoryObjectType METADATA_SAP_CONTENT_EXTRACTOR = new ERepositoryObjectType("repository.SAPTable", //$NON-NLS-1$
"METADATA_SAP_CONTENT_EXTRACTOR", 105, true, true, new String[] { PROD_DI }, new String[] {}, false);
public final static ERepositoryObjectType METADATA_CON_CALCULATION_VIEW = new ERepositoryObjectType(
"repository.metadataCalculationView", "METADATA_CON_CALCULATION_VIEW", 106, true, true, new String[] { PROD_DI },
new String[] {}, false);
public final static ERepositoryObjectType METADATA_SAP_CDS_VIEW = new ERepositoryObjectType("repository.SAPTable", //$NON-NLS-1$
"METADATA_SAP_CDS_VIEW", 107, true, true, new String[] { PROD_DI }, new String[] {}, false);
private String label;
private String alias;
@@ -505,6 +505,8 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
public final static ERepositoryObjectType METADATA_FILE_FTP = ERepositoryObjectType.valueOf("METADATA_FILE_FTP");
public final static ERepositoryObjectType METADATA_SAPCONNECTIONS = ERepositoryObjectType.valueOf("METADATA_SAPCONNECTIONS");
public final static ERepositoryObjectType METADATA_BIGQUERYCONNECTIONS = ERepositoryObjectType.valueOf("METADATA_BIGQUERYCONNECTIONS");
public final static ERepositoryObjectType METADATA_FILE_EBCDIC = ERepositoryObjectType.valueOf("METADATA_FILE_EBCDIC");
@@ -865,6 +867,8 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
return "DB connection"; //$NON-NLS-1$
} else if (type == METADATA_SAPCONNECTIONS) {
return "SAPconnection"; //$NON-NLS-1$
} else if (type == METADATA_BIGQUERYCONNECTIONS) {
return "BigQueryconnection"; //$NON-NLS-1$
} else if (type == METADATA_FILE_EBCDIC) {
return "fileEBCDIC"; //$NON-NLS-1$
} else if (type == METADATA_FILE_HL7) {
@@ -1076,6 +1080,11 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
public Object caseSAPConnectionItem(SAPConnectionItem object) {
return METADATA_SAPCONNECTIONS;
}
@Override
public Object caseBigQueryConnectionItem(BigQueryConnectionItem object) {
return METADATA_BIGQUERYCONNECTIONS;
}
@Override
public Object caseDelimitedFileConnectionItem(DelimitedFileConnectionItem object) {
@@ -1477,12 +1486,8 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
return allTypes;
}
public static List<ERepositoryObjectType> getAllTypesOfJoblet() {
public static List<ERepositoryObjectType> getAllBigDataTypesOfJoblet(){
List<ERepositoryObjectType> allTypes = new ArrayList<ERepositoryObjectType>();
if (ERepositoryObjectType.JOBLET != null) {
allTypes.add(ERepositoryObjectType.JOBLET);
}
if (ERepositoryObjectType.SPARK_JOBLET != null) {
allTypes.add(ERepositoryObjectType.SPARK_JOBLET);
}
@@ -1492,6 +1497,15 @@ public class ERepositoryObjectType extends DynaEnum<ERepositoryObjectType> {
return allTypes;
}
public static List<ERepositoryObjectType> getAllTypesOfJoblet() {
List<ERepositoryObjectType> allTypes = new ArrayList<ERepositoryObjectType>();
allTypes.addAll(getAllBigDataTypesOfJoblet());
if (ERepositoryObjectType.JOBLET != null) {
allTypes.add(ERepositoryObjectType.JOBLET);
}
return allTypes;
}
public static List<ERepositoryObjectType> getAllTypesOfTestContainer() {
List<ERepositoryObjectType> allTypes = new ArrayList<ERepositoryObjectType>();

View File

@@ -770,6 +770,15 @@ public abstract class RepositoryUpdateManager {
updateConnectionContextParam((ConnectionItem) item, citem, valueMap);
}
}
List<IRepositoryViewObject> bigqueryConnList = FACTORY.getAll(ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS, true);
for (IRepositoryViewObject obj : bigqueryConnList) {
Item item = obj.getProperty().getItem();
if (item instanceof ConnectionItem) {
updateConnectionContextParam((ConnectionItem) item, citem, valueMap);
}
}
for (String updateType : UpdateRepositoryHelper.getAllHadoopConnectionTypes()) {
List<IRepositoryViewObject> hadoopConnList = FACTORY
.getAll(ERepositoryObjectType.valueOf(ERepositoryObjectType.class, updateType), true);

View File

@@ -52,9 +52,9 @@ public final class UpdatesConstants {
* Category
*/
public static final String CONTEXT = Messages.getString("UpdatesConstants.Context"); //$NON-NLS-1$
public static final String CONTEXT = Messages.getString("UpdatesConstants.ContextVariable"); //$NON-NLS-1$
public static final String CONTEXT_GROUP = Messages.getString("UpdatesConstants.ContextGroup"); //$NON-NLS-1$
public static final String CONTEXT_GROUP = Messages.getString("UpdatesConstants.ContextEnvironment"); //$NON-NLS-1$
public static final String COMPONENT = Messages.getString("UpdatesConstants.Component"); //$NON-NLS-1$

View File

@@ -27,17 +27,6 @@ public final class TalendPropertiesUtil {
return Boolean.parseBoolean(value);
}
/**
*
* DOC ggu Comment method "isHideExchange".
*
*
* @return
*/
public static boolean isHideExchange() {
return isEnabled("talend.hide.exchange") || isEnabled("talend.disable.internet"); //$NON-NLS-1$ //$NON-NLS-2$
}
/**
*
* DOC ggu Comment method "isHideBuildNumber".
@@ -79,4 +68,8 @@ public final class TalendPropertiesUtil {
public static String getProductApp() {
return System.getProperty(PROD_APP);
}
public static boolean isEnabledUseShortJobletName() {
return isEnabled("talend.job.build.useShortJobletName"); //$NON-NLS-1$
}
}

View File

@@ -12,7 +12,9 @@
// ============================================================================
package org.talend.core.nexus;
import java.net.URLEncoder;
import java.util.Date;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.talend.commons.exception.ExceptionHandler;
@@ -25,9 +27,9 @@ import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.runtime.i18n.Messages;
import org.talend.core.runtime.projectsetting.ProjectPreferenceManager;
import org.talend.core.service.IRemoteService;
import org.talend.core.utils.SecurityStorageUtil;
import org.talend.repository.model.IProxyRepositoryFactory;
import org.talend.repository.model.RepositoryConstants;
import org.talend.utils.security.StudioEncryption;
/**
* created by wchen on 2015年6月16日 Detailled comment
@@ -81,6 +83,8 @@ public class TalendLibsServerManager {
public static final String ENABLE_PROXY_SETTING = "nexus.proxy.enable";
public static final String NEXUS_PROXY_STORAGE_CATEGORY = "org.talend.artifact.proxy.setting";
public static final String TALEND_LIB_USER = "";//$NON-NLS-1$
public static final String TALEND_LIB_PASSWORD = "";//$NON-NLS-1$
@@ -255,10 +259,14 @@ public class TalendLibsServerManager {
boolean enableProxyFlag = prefManager.getBoolean(TalendLibsServerManager.ENABLE_PROXY_SETTING);
if (enableProxyFlag) {
serverBean.setServer(prefManager.getValue(TalendLibsServerManager.NEXUS_PROXY_URL));
serverBean.setUserName(prefManager.getValue(TalendLibsServerManager.NEXUS_PROXY_USERNAME));
serverBean.setPassword(StudioEncryption.getStudioEncryption(StudioEncryption.EncryptionKeyName.SYSTEM).decrypt(prefManager.getValue(TalendLibsServerManager.NEXUS_PROXY_PASSWORD)));
serverBean.setRepositoryId(prefManager.getValue(TalendLibsServerManager.NEXUS_PROXY_REPOSITORY_ID));
serverBean.setType(prefManager.getValue(TalendLibsServerManager.NEXUS_PROXY_TYPE));
String[] credentials = getProxyArtifactCredentials(serverBean.getServer(), serverBean.getRepositoryId(),
NEXUS_PROXY_USERNAME, NEXUS_PROXY_PASSWORD);
if (credentials != null) {
serverBean.setUserName(credentials[0]);
serverBean.setPassword(credentials[1]);
}
}
}
if (StringUtils.isNotEmpty(serverBean.getServer())) {
@@ -267,6 +275,89 @@ public class TalendLibsServerManager {
return null;
}
public String[] getProxyArtifactCredentials(String url, String repositoryId, String usernameKey, String passwordKey) {
if (StringUtils.isBlank(url)) {
return null;
}
try {
String path = getStoragePath(url, repositoryId);
Map<String, String> storageNodePairs = SecurityStorageUtil.getSecurityStorageNodePairs(path);
if (storageNodePairs != null) {
String username = storageNodePairs.get(usernameKey);
String password = storageNodePairs.get(passwordKey);
if (username == null && password == null) {
return null;
}
return new String[] { username, password };
}
} catch (Exception e) {
ExceptionHandler.process(e);
}
return null;
}
public void saveProxyArtifactCredentials(String url, String repositoryId, String usernameKey, String username,
String passwordKey, String password) {
if (StringUtils.isBlank(url)) {
return;
}
try {
String path = getStoragePath(url, repositoryId);
SecurityStorageUtil.saveToSecurityStorage(path, usernameKey, username, false, false);
SecurityStorageUtil.saveToSecurityStorage(path, passwordKey, password, true, false);
SecurityStorageUtil.flushSecurityStorage();
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
public void saveProxyArtifactCredentialsUserName(String url, String repositoryId, String usernameKey, String username,
boolean flush) {
if (StringUtils.isBlank(url)) {
return;
}
try {
String path = getStoragePath(url, repositoryId);
SecurityStorageUtil.saveToSecurityStorage(path, usernameKey, username, false, flush);
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
public void saveProxyArtifactCredentialsPassword(String url, String repositoryId, String passwordKey, String password,
boolean flush) {
if (StringUtils.isBlank(url)) {
return;
}
try {
String path = getStoragePath(url, repositoryId);
SecurityStorageUtil.saveToSecurityStorage(path, passwordKey, password, true, flush);
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
public void flushSecurityStorage() {
try {
SecurityStorageUtil.flushSecurityStorage();
} catch (Exception e) {
ExceptionHandler.process(e);
}
}
private String getStoragePath(String url, String repositoryId) throws Exception {
String node = url;
if (StringUtils.isNotBlank(repositoryId)) {
if (!url.endsWith("/")) {
node = node + "/";
}
node = node + repositoryId;
}
node = URLEncoder.encode(node, "UTF-8");
String path = NEXUS_PROXY_STORAGE_CATEGORY + "/" + node;
return path;
}
public ArtifactRepositoryBean getTalentArtifactServer() {
ArtifactRepositoryBean serverBean = getProxyArtifactServer();
if (serverBean == null) {

View File

@@ -13,7 +13,7 @@
package org.talend.core.pendo;
import org.talend.core.pendo.properties.IPendoDataProperties;
import org.talend.core.service.IRemoteService;
import org.talend.core.service.ICoreTisRuntimeService;
/**
* DOC jding class global comment. Detailled comment
@@ -22,11 +22,11 @@ public class PendoDataTrackFactory {
private static PendoDataTrackFactory instance;
private static IRemoteService remoteService;
private static ICoreTisRuntimeService coreRuntimeService;
static {
instance = new PendoDataTrackFactory();
remoteService = IRemoteService.get();
coreRuntimeService = ICoreTisRuntimeService.get();
}
private PendoDataTrackFactory() {
@@ -37,35 +37,35 @@ public class PendoDataTrackFactory {
}
public boolean isTrackSendAvailable() throws Exception {
if (remoteService != null) {
return remoteService.isPendoTrackAvailable();
if (coreRuntimeService != null) {
return coreRuntimeService.isPendoTrackAvailable();
}
return false;
}
public void sendTrackData(TrackEvent event, IPendoDataProperties properties) throws Exception {
if (remoteService != null) {
remoteService.sendPendoTrackData(event, properties);
if (coreRuntimeService != null) {
coreRuntimeService.sendPendoTrackData(event, properties);
}
}
public void sendProjectLoginTrack() {
if (remoteService != null) {
AbstractPendoTrackManager pendoProjectLoginManager = remoteService.getPendoProjectLoginManager();
if (coreRuntimeService != null) {
AbstractPendoTrackManager pendoProjectLoginManager = coreRuntimeService.getPendoProjectLoginManager();
pendoProjectLoginManager.sendTrackToPendo();
}
}
public void sendGenericTrack(TrackEvent event, IPendoDataProperties properties) {
if (remoteService != null) {
AbstractPendoTrackManager genericManager = remoteService.getPendoGenericManager(event, properties);
if (coreRuntimeService != null) {
AbstractPendoTrackManager genericManager = coreRuntimeService.getPendoGenericManager(event, properties);
genericManager.sendTrackToPendo();
}
}
public String getTmcUser(String url, String token) {
if (remoteService != null) {
return remoteService.getTmcUser(url, token);
if (coreRuntimeService != null) {
return coreRuntimeService.getTmcUser(url, token);
}
return "";
}

View File

@@ -15,6 +15,7 @@ package org.talend.core.runtime.evaluator;
import java.util.List;
import org.apache.commons.lang3.StringEscapeUtils;
import org.apache.commons.lang3.StringUtils;
import org.talend.core.model.utils.ContextParameterUtils;
import org.talend.core.runtime.util.GenericTypeUtils;
import org.talend.core.utils.TalendQuoteUtils;
@@ -127,6 +128,9 @@ public abstract class AbstractPropertyValueEvaluator implements PropertyValueEva
if (GenericTypeUtils.isStringType(property)) {
if (property.isFlag(Property.Flags.ENCRYPT)) {
if (!StringUtils.isEmpty(stringValue)) {
stringValue = stringValue.replace("\\\"", "\"");
}
return TalendQuoteUtils.removeQuotes(stringValue);
}
return TalendQuoteUtils.removeQuotes(StringEscapeUtils.unescapeJava(stringValue));

View File

@@ -492,8 +492,8 @@ EUpdateResult.Reload=Reload components
EUpdateResult.Rename=Change the name
EUpdateResult.Add=Add from repository
EUpdateResult.Delete=Delete from repository
UpdatesConstants.Context=Context
UpdatesConstants.ContextGroup=Context Group
UpdatesConstants.ContextVariable=Context variable
UpdatesConstants.ContextEnvironment=Context environment
UpdatesConstants.Component=Component
UpdatesConstants.Joblet=Joblet
UpdatesConstants.Spark_Joblet=Spark_Joblet
@@ -655,4 +655,9 @@ 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.accessReport=here
AbstractPomTemplateProjectSettingPage.defaultTabLabel=Default
AbstractPomTemplateProjectSettingPage.customTabLabel=Custom
AbstractPomTemplateProjectSettingPage.previewButton=Preview
AbstractPomTemplateProjectSettingPage.previewButtonTip=Preview the complete customized project POM settings.
AbstractPomTemplateProjectSettingPage.learnMoreLink=Learn more

View File

@@ -620,7 +620,7 @@ ProgressMonitorDialogWithCancel.executeTimeout=Suspension de l'ex\u00E9cution, l
ProgressMonitorDialogWithCancel.CheckingConnectionJob.waitingFinish=en attente de la fin de {0}...
ProgressMonitorDialogWithCancel.CheckingConnectionJob.emptyWaitingfinish=en attente de la fin...
OverTimePopupDialogTask.title=Ex\u00E9cution...
OverTimePopupDialogTask.message=T\u00E2che d'ex\u00E9cution en arri\u00E8re plan, patientez...
OverTimePopupDialogTask.message=T\u00E2che d'ex\u00E9cution en arri\u00E8re-plan, patientez...
OverTimePopupDialogTask.executeTimeout=Suspension de l'ex\u00E9cution, le Studio a essay\u00E9 d'interrompre la v\u00E9rification en t\u00E2che de fond.
OverTimePopupDialogTask.killed=Ex\u00E9cution arr\u00EAt\u00E9e
OverTimePopupDialogTask.waitingFinishMessage.default=Interruption impossible de la t\u00E2che en fond,\n
@@ -656,3 +656,7 @@ AnalysisReportAccessDialog.shellTitle=Analyse du projet
AnalysisReportAccessDialog.generateSuccess=Analyse du projet termin\u00E9e.
AnalysisReportAccessDialog.completeReportAvailable=Consulter le rapport
AnalysisReportAccessDialog.accessReport=ici
AbstractPomTemplateProjectSettingPage.defaultTabLabel=Par d\u00E9faut
AbstractPomTemplateProjectSettingPage.customTabLabel=Personnalis\u00E9
AbstractPomTemplateProjectSettingPage.previewButton=Aper\u00E7u
AbstractPomTemplateProjectSettingPage.learnMoreLink=En savoir plus

View File

@@ -637,8 +637,8 @@ DynamicPlugin.addExtension.empty=ExtensionPoint\u307E\u305F\u306FID\u304C\u7A7A\
BigDataBasicUtil.loadDynamicDistribution.IDynamicDistributionManager.notFound={0}\u306E\u30A4\u30F3\u30B9\u30BF\u30F3\u30B9\u304C\u898B\u3064\u304B\u308A\u307E\u305B\u3093
TalendLibsServerManager.connectUserLibraryFailureMessage=\u7BA1\u7406\u8005\u30E2\u30FC\u30C9\u3067\u8A2D\u5B9A\u3055\u308C\u305F\u30E6\u30FC\u30B6\u30FC\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u30A2\u30FC\u30C6\u30A3\u30D5\u30A1\u30AF\u30C8\u30EA\u30DD\u30B8\u30C8\u30EA\u30FC\u304C\u63A5\u7D9A\u3067\u304D\u307E\u305B\u3093\u3002{0}\u3078\u306E\u63A5\u7D9A\u304C\u62D2\u5426\u3055\u308C\u307E\u3057\u305F
TalendLibsServerManager.cannotGetUserLibraryServer=\u30EA\u30E2\u30FC\u30C8\u7BA1\u7406\u8005\u304B\u3089\u30E6\u30FC\u30B6\u30FC\u30E9\u30A4\u30D6\u30E9\u30EA\u30FC\u30B5\u30FC\u30D0\u30FC\u3092\u53D6\u5F97\u3067\u304D\u307E\u305B\u3093
MigrationReportAccessDialog.title=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30A4\u30C6\u30E0\u3092\u79FB\u884C
MigrationReportAccessDialog.migrateSuccess=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u30A2\u30A4\u30C6\u30E0\u304C\u6B63\u3057\u304F\u79FB\u884C\u3055\u308C\u307E\u3057\u305F\u3002
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.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:
@@ -656,3 +656,7 @@ AnalysisReportAccessDialog.shellTitle=\u30D7\u30ED\u30B8\u30A7\u30AF\u30C8\u5206
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
AbstractPomTemplateProjectSettingPage.defaultTabLabel=\u30C7\u30D5\u30A9\u30EB\u30C8
AbstractPomTemplateProjectSettingPage.customTabLabel=\u30AB\u30B9\u30BF\u30E0
AbstractPomTemplateProjectSettingPage.previewButton=\u30D7\u30EC\u30D3\u30E5\u30FC
AbstractPomTemplateProjectSettingPage.learnMoreLink=\u8A73\u7D30

View File

@@ -656,3 +656,7 @@ 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
AbstractPomTemplateProjectSettingPage.defaultTabLabel=\u9ED8\u8BA4
AbstractPomTemplateProjectSettingPage.customTabLabel=\u81EA\u5B9A\u4E49
AbstractPomTemplateProjectSettingPage.previewButton=\u9884\u89C8
AbstractPomTemplateProjectSettingPage.learnMoreLink=\u4E86\u89E3\u66F4\u591A

View File

@@ -41,6 +41,8 @@ public interface MavenConstants {
static final String DEFAULT_VERSION = "6.0.0";
static final String SNAPSHOT = "-SNAPSHOT";
static final String DOT_SNAPSHOT = ".SNAPSHOT";
static final String POM_FILTER = "POM_FILTER";
@@ -76,5 +78,7 @@ public interface MavenConstants {
static final String PACKAGING_JAR = "jar";
static final String PACKAGING_POM = "pom";
static final String PACKAGING_BUNDLE = "bundle";
}

View File

@@ -42,6 +42,8 @@ public class JobInfoProperties extends Properties {
public static final String PROJECT_NAME = "project"; //$NON-NLS-1$
public static final String JOB_ID = "jobId"; //$NON-NLS-1$
public static final String JOB_PARENT_ID = "jobParentId"; //$NON-NLS-1$
public static final String JOB_NAME = "job"; //$NON-NLS-1$
@@ -98,6 +100,10 @@ public class JobInfoProperties extends Properties {
setProperty(BRANCH, branchSelection);
}
if (processItem.getProperty() != null && processItem.getProperty().getParentItem() != null) {
setProperty(JOB_PARENT_ID, processItem.getProperty().getParentItem().getProperty().getId());
}
setProperty(JOB_ID, jobInfo.getJobId());
setProperty(JOB_NAME, jobInfo.getJobName());
String jobType = processItem.getProcess().getJobType();

View File

@@ -0,0 +1,183 @@
// ============================================================================
//
// Copyright (C) 2006-2021 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.runtime.projectsetting;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.events.ModifyEvent;
import org.eclipse.swt.events.ModifyListener;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Color;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.program.Program;
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.ui.forms.events.HyperlinkAdapter;
import org.eclipse.ui.forms.events.HyperlinkEvent;
import org.eclipse.ui.forms.widgets.Hyperlink;
import org.talend.core.runtime.CoreRuntimePlugin;
import org.talend.core.runtime.i18n.Messages;
import org.talend.repository.model.IProxyRepositoryFactory;
public abstract class AbstractPomTemplateProjectSettingPage extends AbstractProjectSettingPage {
private static final Color COLOR_LINK = new Color(null, 0, 0, 255);
protected StyledText defaultText;
protected StyledText customText;
private boolean isDefaultPresentedForScriptTxt = false;
private boolean readonly;
public AbstractPomTemplateProjectSettingPage() {
super();
IProxyRepositoryFactory factory = CoreRuntimePlugin.getInstance().getProxyRepositoryFactory();
readonly = factory.isUserReadOnlyOnCurrentProject();
}
protected boolean isReadonly() {
return readonly;
}
public void setReadonly(boolean readonly) {
this.readonly = readonly;
}
protected abstract String getPreferenceKey();
protected StyledText getScriptTxt() {
return customText;
}
@Override
protected Control createContents(Composite p) {
Composite parent = (Composite) super.createContents(p);
Composite noteComposite = new Composite(parent, SWT.NONE);
noteComposite.setLayout(new GridLayout(2, false));
Label scriptLabel = new Label(noteComposite, SWT.NONE);
String headerMessages = getHeaderMessage();
scriptLabel.setText(headerMessages);
Hyperlink link = new Hyperlink(noteComposite, SWT.NONE);
link.setText(Messages.getString("AbstractPomTemplateProjectSettingPage.learnMoreLink")); //$NON-NLS-1$
link.setUnderlined(true);
link.setForeground(COLOR_LINK);
link.addHyperlinkListener(new HyperlinkAdapter() {
@Override
public void linkActivated(HyperlinkEvent e) {
Program.launch(getMoreInfoUrl());
}
});
CTabFolder tabFolder = new CTabFolder(parent, SWT.BORDER);
// tabFolder.setTabPosition(SWT.BOTTOM);
tabFolder.setSimple(false);
GridData data = new GridData(GridData.FILL, GridData.FILL, true, true);
tabFolder.setLayoutData(data);
data.heightHint = 280;
data.minimumHeight = 280;
data.widthHint = 500;
data.minimumWidth = 500;
CTabItem defaultTabItem = new CTabItem(tabFolder, SWT.NULL);
defaultTabItem.setText(Messages.getString("AbstractPomTemplateProjectSettingPage.defaultTabLabel")); //$NON-NLS-1$
CTabItem customTabItem = new CTabItem(tabFolder, SWT.NULL);
customTabItem.setText(Messages.getString("AbstractPomTemplateProjectSettingPage.customTabLabel")); //$NON-NLS-1$
tabFolder.setSelection(defaultTabItem);
int style = SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL;
defaultText = new StyledText(tabFolder, style);
defaultText.setText(getDefaultText());
defaultText.setBackground(new Color(null, 233, 233, 233));
defaultText.setEditable(false);
defaultTabItem.setControl(defaultText);
customText = new StyledText(tabFolder, style);
customText.setText(getCustomText());
customText.setEditable(!isReadonly());
customTabItem.setControl(customText);
customText.addModifyListener(new ModifyListener() {
@Override
public void modifyText(ModifyEvent e) {
isDefaultPresentedForScriptTxt = false;
}
});
Button preview = new Button(parent, SWT.NONE);
preview.setText(Messages.getString("AbstractPomTemplateProjectSettingPage.previewButton")); //$NON-NLS-1$
preview.setToolTipText(Messages.getString("AbstractPomTemplateProjectSettingPage.previewButtonTip")); //$NON-NLS-1$
preview.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
checkModel(true);
}
});
return parent;
}
protected abstract String getHeaderMessage();
protected abstract String getDefaultText();
protected String getCustomText() {
return getPreferenceStore().getString(getPreferenceKey());
}
protected abstract boolean checkModel(boolean preview);
protected abstract String getMoreInfoUrl();
@Override
protected void performDefaults() {
super.performDefaults();
if (customText != null && !customText.isDisposed()) {
isDefaultPresentedForScriptTxt = true;
customText.setText(getPreferenceStore().getDefaultString(getPreferenceKey()));
}
}
@Override
public boolean performOk() {
boolean ok = super.performOk();
if (customText != null && !customText.isDisposed()) {
if (isDefaultPresentedForScriptTxt) {
getPreferenceStore().setToDefault(getPreferenceKey());
return ok;
}
if (!checkModel(false)) {
return false;
}
getPreferenceStore().setValue(getPreferenceKey(), customText.getText());
}
return ok;
}
}

View File

@@ -60,6 +60,8 @@ public interface IProjectSettingTemplateConstants {
final static String PROJECT_TEMPLATE_FILE_NAME = "pom_project_template.xml";
final static String PROJECT_CUSTOM_TEMPLATE_FILE_NAME = "pom_project_custom_template.xml";
final static String MAVEN_USER_SETTING_TEMPLATE_FILE_NAME = "maven_user_settings.xml";
/*

View File

@@ -0,0 +1,66 @@
// ============================================================================
//
// 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.runtime.projectsetting;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.StyledText;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Shell;
public class PomPreviewDialog extends Dialog {
private String title;
private String content;
public PomPreviewDialog(Shell parentShell, String title, String content) {
super(parentShell);
this.title = title;
this.content = content;
setShellStyle(getShellStyle() | SWT.RESIZE);
}
@Override
protected void configureShell(Shell newShell) {
super.configureShell(newShell);
newShell.setText(title);
}
@Override
protected Control createDialogArea(Composite parent) {
Composite composite = (Composite) super.createDialogArea(parent);
GridData data = new GridData(GridData.FILL, GridData.FILL, true, true);
data.heightHint = 280;
data.minimumHeight = 1000;
data.widthHint = 500;
data.minimumWidth = 1100;
composite.setLayoutData(data);
StyledText text = new StyledText(composite, SWT.MULTI | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL);
text.setLayoutData(new GridData(GridData.FILL, GridData.FILL, true, true));
text.setText(content);
text.setEditable(false);
return composite;
}
@Override
protected void createButtonsForButtonBar(Composite parent) {
createButton(parent, IDialogConstants.OK_ID, IDialogConstants.OK_LABEL, true);
}
}

View File

@@ -22,6 +22,8 @@ public interface IBuildParametes {
static final String SERVICE = "Service"; //$NON-NLS-1$
static final String ITEM = "Item"; //$NON-NLS-1$
static final String PARENT_ITEM = "ParentItem"; //$NON-NLS-1$
static final String VERSION = "Version"; //$NON-NLS-1$

View File

@@ -111,7 +111,7 @@ public class ModuleAccessHelper {
return Collections.emptySet();
}
private static boolean allowJavaInternalAcess(Property property) {
public static boolean allowJavaInternalAcess(Property property) {
String allow = System.getProperty(JavaUtils.ALLOW_JAVA_INTERNAL_ACCESS);
if (allow != null) {
return Boolean.valueOf(allow);

View File

@@ -0,0 +1,31 @@
// ============================================================================
//
// 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.Map;
import org.talend.core.IProviderService;
import org.talend.core.model.process.INode;
import org.talend.core.model.properties.BigQueryConnectionItem;
import org.talend.repository.model.RepositoryNode;
public interface IBigQueryProviderService extends IProviderService {
public BigQueryConnectionItem getRepositoryItem(final INode node);
public boolean isBigQueryNode(final INode node);
public boolean isBigQueryNode(final RepositoryNode node);
public boolean isRepositorySchemaLine(INode node, Map<String, Object> lineValue);
}

View File

@@ -21,10 +21,6 @@ public interface ICloudSignOnService extends IService {
TokenMode getToken(String authCode, String codeVerifier, String dataCenter) throws Exception;
void startHeartBeat() throws Exception;
void stopHeartBeat();
String generateCodeVerifier();
String getCodeChallenge(String seed) throws Exception;
@@ -43,11 +39,13 @@ public interface ICloudSignOnService extends IService {
boolean isNeedShowSSOPage();
public void showReloginDialog();
public boolean showReloginDialog();
public boolean isReloginDialogRunning();
public void reload();
public boolean isRelogined4CurrentTask(String clazz);
public static ICloudSignOnService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICloudSignOnService.class)) {

View File

@@ -0,0 +1,64 @@
// ============================================================================
//
// 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.io.File;
import org.talend.commons.CommonsPlugin;
import org.talend.core.IService;
/**
* @author bhe created on Jan 19, 2023
*
*/
public interface IComponentJsonformGeneratorService extends IService {
/**
* System property to enable whether to generate jsonform or not, not enabled by default
*/
public static final String JSONFORM_GENERATE_PROP = "jsonform.generate";
public static final String JSONFORM_GENERATE_FOLDER_PROP = "jsonform.generate.dir";
public static final String JSONFORM_GENERATE_FOLDER_NAME_PROP = "jsonforms";
/**
* Generate jsonform json files for all of components
*
* <pre>
* Folder structure
*
* targetFolder
* --Category
* ----tRowgenerator.json
* ----tLogRow.json
*
* </pre>
*
* @param targetFolder all of jsonform jsons will be saved into the targetFolder
*/
void generate(File targetFolder);
/**
* If enabled by -Djsonform.generate or by running junit, then generate jsonform for components, otherwise will not generate.
*
* @return enabled or not
*/
public static boolean isEnabled() {
return Boolean.getBoolean(JSONFORM_GENERATE_PROP) || CommonsPlugin.isJUnitTest() || CommonsPlugin.isJunitWorking();
}
public static String getDirectoryFromProperty() {
return System.getProperty(JSONFORM_GENERATE_FOLDER_PROP);
}
}

View File

@@ -0,0 +1,45 @@
// ============================================================================
//
// 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 org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.pendo.AbstractPendoTrackManager;
import org.talend.core.pendo.TrackEvent;
import org.talend.core.pendo.properties.IPendoDataProperties;
/**
* DOC jding class global comment. Detailled comment
*/
public interface ICoreTisRuntimeService extends IService {
String getTmcUser(String url, String token);
AbstractPendoTrackManager getPendoProjectLoginManager();
AbstractPendoTrackManager getPendoGenericManager(TrackEvent event, IPendoDataProperties peoperties);
boolean isPendoTrackAvailable() throws Exception;
void sendPendoTrackData(TrackEvent event, IPendoDataProperties properties) throws Exception;
void sendPTPTrackData(String componentName, String componentUniqName, String jobId, String data);
static ICoreTisRuntimeService get() {
if (GlobalServiceRegister.getDefault().isServiceRegistered(ICoreTisRuntimeService.class)) {
return GlobalServiceRegister.getDefault().getService(ICoreTisRuntimeService.class);
}
return null;
}
}

View File

@@ -75,4 +75,6 @@ public interface IESBMicroService extends IService {
* @return
*/
IBuildJobHandler createBuildJobHandler(ProcessItem itemToExport, String version, String context, Map exportChoiceMap);
public List<String> getExternalizedDependencies();
}

View File

@@ -44,8 +44,26 @@ public interface IMetadataManagmentUiService extends IService {
public IContext promptConfirmLauch(Shell shell, List<IContext> contexts, IContext defaultContext);
/**
*
* @param shell
* @param context
* @return
* @deprecated use instead promptConfirmLauchIterateContexts
*/
@Deprecated
public boolean promptConfirmLauch(Shell shell, IContext context);
/**
* Iterate all variables from each context to check prompt needed
*
* @param shell
* @param contexts
* @param context
* @return
*/
public boolean promptConfirmLauchIterateContexts(Shell shell, List<IContext> contexts, IContext context);
public boolean isPromptNeeded(List<IContext> contexts);
}

View File

@@ -17,9 +17,6 @@ import org.talend.commons.exception.PersistenceException;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.nexus.ArtifactRepositoryBean;
import org.talend.core.pendo.AbstractPendoTrackManager;
import org.talend.core.pendo.TrackEvent;
import org.talend.core.pendo.properties.IPendoDataProperties;
import org.talend.utils.json.JSONException;
import org.talend.utils.json.JSONObject;
@@ -39,16 +36,6 @@ public interface IRemoteService extends IService {
boolean isAuthorized(String value);
boolean isPendoTrackAvailable() throws Exception;
void sendPendoTrackData(TrackEvent event, IPendoDataProperties properties) throws Exception;
AbstractPendoTrackManager getPendoProjectLoginManager();
AbstractPendoTrackManager getPendoGenericManager(TrackEvent event, IPendoDataProperties peoperties);
String getTmcUser(String url, String token);
public boolean isCloudConnection();
public static IRemoteService get() {

View File

@@ -12,14 +12,23 @@
// ============================================================================
package org.talend.core.service;
import java.net.HttpURLConnection;
import java.net.URI;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.StringUtils;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.equinox.p2.repository.IRepository;
import org.eclipse.equinox.security.storage.ISecurePreferences;
import org.eclipse.equinox.security.storage.SecurePreferencesFactory;
import org.talend.core.GlobalServiceRegister;
import org.talend.core.IService;
import org.talend.core.model.general.Project;
@@ -30,6 +39,8 @@ import org.talend.core.model.update.IStudioUpdateConfig;
*/
public interface IStudioLiteP2Service extends IService {
public static final String PROP_CLEARPERSISTEDSTATE = "talend.studio.switchProject.clearPersistedState";
public static final String CONFIG_STORAGE_FOLDER = "talend/studioLite/";
public static final String BUNDLES_INFOS_STORAGE_FOLDER = CONFIG_STORAGE_FOLDER + "bundlesInfo/";
@@ -128,6 +139,10 @@ public interface IStudioLiteP2Service extends IService {
void setupTmcUpdate(IProgressMonitor monitor, IStudioUpdateConfig updateConfig) throws Exception;
void handleTmcUpdateObserve(boolean trunOn);
boolean isUpdateManagedByTmc(IProgressMonitor monitor);
boolean removeM2() throws Exception;
void saveRemoveM2(boolean remove) throws Exception;
@@ -201,6 +216,12 @@ public interface IStudioLiteP2Service extends IService {
}
public static interface UpdateSiteConfig {
public static final int DEFAULT_TIMEOUT = 4000;
public static final String PROTOCOL_HTTP = "http";
public static final String PROTOCOL_HTTPS = "https";
boolean isReleaseEditable();
@@ -239,6 +260,83 @@ public interface IStudioLiteP2Service extends IService {
boolean isOverwriteTmcUpdateSettings(IProgressMonitor monitor) throws Exception;
void overwriteTmcUpdateSettings(IProgressMonitor monitor, boolean overwrite) throws Exception;
void enableBasicAuth(String uri, boolean enable) throws Exception;
boolean isEnabledBasicAuth(String uri) throws Exception;
public static boolean requireCredentials(URI uri, String nameAndPwd) throws Exception {
String scheme = uri.getScheme();
if (StringUtils.isEmpty(scheme) || (!StringUtils.equals(scheme, PROTOCOL_HTTP) && !StringUtils.equals(scheme, PROTOCOL_HTTPS))) {
return false;
}
URL url = new URL(uri.toString() + "/p2.index");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(DEFAULT_TIMEOUT);
conn.setReadTimeout(DEFAULT_TIMEOUT);
conn.setRequestMethod("HEAD");
if (!StringUtils.isEmpty(nameAndPwd)) {
nameAndPwd = Base64.encodeBase64String(nameAndPwd.getBytes());
conn.addRequestProperty("Authorization", "Basic " + nameAndPwd);
}
int responseCode = conn.getResponseCode();
if (responseCode == HttpURLConnection.HTTP_UNAUTHORIZED || responseCode == HttpURLConnection.HTTP_FORBIDDEN) {
return true;
}
if (responseCode != HttpURLConnection.HTTP_OK) {
throw new Exception("status code: " + responseCode);
}
return false;
}
public static void saveCredentialsIntoSecureStore(URI uri, String uname, String pwd) throws Exception {
ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault();
String nodeKey = URLEncoder.encode(uri.getHost(), StandardCharsets.UTF_8.name());
String nodeName = IRepository.PREFERENCE_NODE + '/' + nodeKey;
ISecurePreferences prefNode = null;
prefNode = securePreferences.node(nodeName);
prefNode.put(IRepository.PROP_USERNAME, uname, true);
prefNode.put(IRepository.PROP_PASSWORD, pwd, true);
securePreferences.flush();
}
public static String[] loadCredentialsFromSecureStore(URI uri) throws Exception {
ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault();
String nodeKey = URLEncoder.encode(uri.getHost(), StandardCharsets.UTF_8.name());
String nodeName = IRepository.PREFERENCE_NODE + '/' + nodeKey;
ISecurePreferences prefNode = null;
String[] namePwd = new String[2];
if (!securePreferences.nodeExists(nodeName)) {
return null;
}
prefNode = securePreferences.node(nodeName);
namePwd[0] = prefNode.get(IRepository.PROP_USERNAME, "");
namePwd[1] = prefNode.get(IRepository.PROP_PASSWORD, "");
return namePwd;
}
public static void deleteCredentialsFromSecureStore(URI uri) throws Exception {
ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault();
String nodeKey = URLEncoder.encode(uri.getHost(), StandardCharsets.UTF_8.name());
String nodeName = IRepository.PREFERENCE_NODE + '/' + nodeKey;
if (securePreferences.nodeExists(nodeName)) {
securePreferences.node(nodeName).removeNode();
securePreferences.flush();
}
}
}

View File

@@ -53,6 +53,8 @@ public class RepositoryImageProvider {
return ECoreImage.METADATA_CONNECTION_ICON;
} else if (type == ERepositoryObjectType.METADATA_SAPCONNECTIONS || type == ERepositoryObjectType.METADATA_SAP_FUNCTION) {
return ECoreImage.METADATA_SAPCONNECTION_ICON;
} else if (type == ERepositoryObjectType.METADATA_BIGQUERYCONNECTIONS) {
return ECoreImage.METADATA_BIGQUERYCONNECTION_ICON;
} else if (type == ERepositoryObjectType.SQLPATTERNS) {
return ECoreImage.METADATA_SQLPATTERN_ICON;
} else if (type == ERepositoryObjectType.METADATA_CON_TABLE || type == ERepositoryObjectType.METADATA_SAP_IDOC) {

View File

@@ -0,0 +1,67 @@
// ============================================================================
//
// 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.utils;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.equinox.security.storage.ISecurePreferences;
import org.eclipse.equinox.security.storage.SecurePreferencesFactory;
/**
* DOC jding class global comment. Detailled comment
*/
public class SecurityStorageUtil {
public static void saveToSecurityStorage(String pathName, String key, String value, boolean encrypt) throws Exception {
saveToSecurityStorage(pathName, key, value, encrypt, true);
}
public static void saveToSecurityStorage(String pathName, String key, String value, boolean encrypt, boolean flush)
throws Exception {
ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault();
ISecurePreferences node = securePreferences.node(pathName);
node.put(key, value, encrypt);
if (flush) {
securePreferences.flush();
}
}
public static void flushSecurityStorage() throws Exception {
ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault();
securePreferences.flush();
}
public static String getValueFromSecurityStorage(String pathName, String key) throws Exception {
ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault();
if (!securePreferences.nodeExists(pathName)) {
return null;
}
ISecurePreferences node = securePreferences.node(pathName);
return node.get(key, null);
}
public static Map<String, String> getSecurityStorageNodePairs(String pathName) throws Exception {
ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault();
if (!securePreferences.nodeExists(pathName)) {
return null;
}
Map<String, String> keyValuePair = new HashMap<String, String>();
ISecurePreferences node = securePreferences.node(pathName);
for (String key : node.keys()) {
keyValuePair.put(key, node.get(key, null));
}
return keyValuePair;
}
}

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